diff --git a/.dprint.jsonc b/.dprint.jsonc index 92befa51e5..c4352b346a 100644 --- a/.dprint.jsonc +++ b/.dprint.jsonc @@ -59,7 +59,7 @@ // Note: if adding new languages, make sure settings.template.json is updated too. // Also, if updating typescript, update the one in package.json. "plugins": [ - "https://plugins.dprint.dev/typescript-0.95.5.wasm", + "https://plugins.dprint.dev/typescript-0.95.7.wasm", "https://plugins.dprint.dev/json-0.20.0.wasm", "https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.1.wasm", "https://plugins.dprint.dev/exec-0.5.1.json@492414e39dea4dccc07b4af796d2f4efdb89e84bae2bd4e1e924c0cc050855bf" diff --git a/NOTICE.txt b/NOTICE.txt index d04bc33fde..4a13eb8af6 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -264,7 +264,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------- -golang.org/x/sync v0.14.0 - BSD-3-Clause +golang.org/x/sync v0.15.0 - BSD-3-Clause Copyright 2009 The Go Authors. diff --git a/README.md b/README.md index fb59792dc3..f6286786a1 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## Preview -A preview build is available on npm as `@typescript/native-preview`. +A preview build is available on npm as [`@typescript/native-preview`](https://www.npmjs.com/package/@typescript/native-preview). ```sh npm install @typescript/native-preview diff --git a/_submodules/TypeScript b/_submodules/TypeScript index 746c23236a..c356203d2b 160000 --- a/_submodules/TypeScript +++ b/_submodules/TypeScript @@ -1 +1 @@ -Subproject commit 746c23236a7884d1b26a2c01d0c53b2a2dd44132 +Subproject commit c356203d2bd5bf9edf0012d179128a02f74b7bf3 diff --git a/_tools/go.mod b/_tools/go.mod index 03fe29ace6..71a647aee5 100644 --- a/_tools/go.mod +++ b/_tools/go.mod @@ -3,13 +3,13 @@ module github.com/microsoft/typescript-go/_tools go 1.24.0 require ( - github.com/golangci/plugin-module-register v0.1.2-0.20250519122030-95854f10c778 - golang.org/x/mod v0.24.0 - golang.org/x/tools v0.33.0 + github.com/golangci/plugin-module-register v0.1.2 + golang.org/x/mod v0.25.0 + golang.org/x/tools v0.34.0 gotest.tools/v3 v3.5.2 ) require ( github.com/google/go-cmp v0.6.0 // indirect - golang.org/x/sync v0.14.0 // indirect + golang.org/x/sync v0.15.0 // indirect ) diff --git a/_tools/go.sum b/_tools/go.sum index a70bf1c86f..448f8c3839 100644 --- a/_tools/go.sum +++ b/_tools/go.sum @@ -1,12 +1,12 @@ -github.com/golangci/plugin-module-register v0.1.2-0.20250519122030-95854f10c778 h1:a5T2fJwhfuTPuhCau4IPP4ZGGndS/ysLzDorg1mA2P4= -github.com/golangci/plugin-module-register v0.1.2-0.20250519122030-95854f10c778/go.mod h1:1+QGTsKBvAIvPvoY/os+G5eoqxWn70HYDm2uvUyGuVw= +github.com/golangci/plugin-module-register v0.1.2 h1:e5WM6PO6NIAEcij3B053CohVp3HIYbzSuP53UAYgOpg= +github.com/golangci/plugin-module-register v0.1.2/go.mod h1:1+QGTsKBvAIvPvoY/os+G5eoqxWn70HYDm2uvUyGuVw= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= -golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= -golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= -golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= -golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= +golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo= +golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg= gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= diff --git a/go.mod b/go.mod index 17708b2bc0..0c7f7420a8 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/go-json-experiment/json v0.0.0-20250517221953-25912455fbc8 github.com/google/go-cmp v0.7.0 github.com/peter-evans/patience v0.3.0 - golang.org/x/sync v0.14.0 + golang.org/x/sync v0.15.0 golang.org/x/sys v0.33.0 gotest.tools/v3 v3.5.2 ) diff --git a/go.sum b/go.sum index 27d22a1f29..96fbae77b7 100644 --- a/go.sum +++ b/go.sum @@ -20,8 +20,8 @@ github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0t github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= -golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= -golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= diff --git a/internal/api/api.go b/internal/api/api.go index 99dca04727..b522371125 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -81,9 +81,9 @@ func (api *API) TypingsInstaller() *project.TypingsInstaller { return nil } -// DocumentRegistry implements ProjectHost. -func (api *API) DocumentRegistry() *project.DocumentRegistry { - return api.documentStore.DocumentRegistry() +// DocumentStore implements ProjectHost. +func (api *API) DocumentStore() *project.DocumentStore { + return api.documentStore } // ConfigFileRegistry implements ProjectHost. @@ -101,21 +101,6 @@ func (api *API) GetCurrentDirectory() string { return api.host.GetCurrentDirectory() } -// GetOrCreateScriptInfoForFile implements ProjectHost. -func (api *API) GetOrCreateScriptInfoForFile(fileName string, path tspath.Path, scriptKind core.ScriptKind) *project.ScriptInfo { - return api.getOrCreateScriptInfo(fileName, path, scriptKind) -} - -// GetScriptInfoByPath implements ProjectHost. -func (api *API) GetScriptInfoByPath(path tspath.Path) *project.ScriptInfo { - return api.documentStore.GetScriptInfoByPath(path) -} - -// OnDiscoveredSymlink implements ProjectHost. -func (api *API) OnDiscoveredSymlink(info *project.ScriptInfo) { - api.documentStore.AddRealpathMapping(info) -} - // Log implements ProjectHost. func (api *API) Log(s string) { api.options.Logger.Info(s) @@ -372,10 +357,6 @@ func (api *API) releaseHandle(handle string) error { return nil } -func (api *API) getOrCreateScriptInfo(fileName string, path tspath.Path, scriptKind core.ScriptKind) *project.ScriptInfo { - return api.documentStore.GetOrCreateScriptInfo(fileName, path, scriptKind, api.host.FS()) -} - func (api *API) toAbsoluteFileName(fileName string) string { return tspath.GetNormalizedAbsolutePath(fileName, api.host.GetCurrentDirectory()) } diff --git a/internal/api/encoder/encoder_test.go b/internal/api/encoder/encoder_test.go index d72fafe5ae..4d1be79d36 100644 --- a/internal/api/encoder/encoder_test.go +++ b/internal/api/encoder/encoder_test.go @@ -13,18 +13,16 @@ import ( "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/parser" "github.com/microsoft/typescript-go/internal/repo" - "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/testutil/baseline" "gotest.tools/v3/assert" ) -var parseCompilerOptions = &core.SourceFileAffectingCompilerOptions{ - EmitScriptTarget: core.ScriptTargetLatest, -} - func TestEncodeSourceFile(t *testing.T) { t.Parallel() - sourceFile := parser.ParseSourceFile("/test.ts", "/test.ts", "import { bar } from \"bar\";\nexport function foo(a: string, b: string): any {}\nfoo();", parseCompilerOptions, nil, scanner.JSDocParsingModeParseAll) + sourceFile := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: "/test.ts", + Path: "/test.ts", + }, "import { bar } from \"bar\";\nexport function foo(a: string, b: string): any {}\nfoo();", core.ScriptKindTS) t.Run("baseline", func(t *testing.T) { t.Parallel() buf, err := encoder.EncodeSourceFile(sourceFile, "") @@ -42,14 +40,10 @@ func BenchmarkEncodeSourceFile(b *testing.B) { filePath := filepath.Join(repo.TypeScriptSubmodulePath, "src/compiler/checker.ts") fileContent, err := os.ReadFile(filePath) assert.NilError(b, err) - sourceFile := parser.ParseSourceFile( - "/checker.ts", - "/checker.ts", - string(fileContent), - parseCompilerOptions, - nil, - scanner.JSDocParsingModeParseAll, - ) + sourceFile := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: "/checker.ts", + Path: "/checker.ts", + }, string(fileContent), core.ScriptKindTS) for b.Loop() { _, err := encoder.EncodeSourceFile(sourceFile, "") diff --git a/internal/ast/ast.go b/internal/ast/ast.go index ddd62ebed4..269c512ea4 100644 --- a/internal/ast/ast.go +++ b/internal/ast/ast.go @@ -9985,17 +9985,14 @@ type SourceFile struct { compositeNodeBase // Fields set by NewSourceFile - - text string - fileName string - path tspath.Path - Statements *NodeList // NodeList[*Statement] + fileName string // For debugging convenience + parseOptions SourceFileParseOptions + text string + Statements *NodeList // NodeList[*Statement] // Fields set by parser - diagnostics []*Diagnostic jsdocDiagnostics []*Diagnostic - LanguageVersion core.ScriptTarget LanguageVariant core.LanguageVariant ScriptKind core.ScriptKind IsDeclarationFile bool @@ -10040,30 +10037,32 @@ type SourceFile struct { tokenCache map[core.TextRange]*Node } -func (f *NodeFactory) NewSourceFile(text string, fileName string, path tspath.Path, statements *NodeList) *Node { - if (tspath.GetEncodedRootLength(fileName) == 0 && !strings.HasPrefix(fileName, "^/")) || fileName != tspath.NormalizePath(fileName) { - panic(fmt.Sprintf("fileName should be normalized and absolute: %q", fileName)) +func (f *NodeFactory) NewSourceFile(opts SourceFileParseOptions, text string, statements *NodeList) *Node { + if (tspath.GetEncodedRootLength(opts.FileName) == 0 && !strings.HasPrefix(opts.FileName, "^/")) || opts.FileName != tspath.NormalizePath(opts.FileName) { + panic(fmt.Sprintf("fileName should be normalized and absolute: %q", opts.FileName)) } - data := &SourceFile{} + data.fileName = opts.FileName + data.parseOptions = opts data.text = text - data.fileName = fileName - data.path = path data.Statements = statements - data.LanguageVersion = core.ScriptTargetLatest return f.newNode(KindSourceFile, data) } +func (node *SourceFile) ParseOptions() SourceFileParseOptions { + return node.parseOptions +} + func (node *SourceFile) Text() string { return node.text } func (node *SourceFile) FileName() string { - return node.fileName + return node.parseOptions.FileName } func (node *SourceFile) Path() tspath.Path { - return node.path + return node.parseOptions.Path } func (node *SourceFile) OriginalFileName() string { @@ -10120,7 +10119,6 @@ func (node *SourceFile) IsJS() bool { func (node *SourceFile) copyFrom(other *SourceFile) { // Do not copy fields set by NewSourceFile (Text, FileName, Path, or Statements) - node.LanguageVersion = other.LanguageVersion node.LanguageVariant = other.LanguageVariant node.ScriptKind = other.ScriptKind node.IsDeclarationFile = other.IsDeclarationFile @@ -10141,7 +10139,7 @@ func (node *SourceFile) copyFrom(other *SourceFile) { } func (node *SourceFile) Clone(f NodeFactoryCoercible) *Node { - updated := f.AsNodeFactory().NewSourceFile(node.Text(), node.FileName(), node.Path(), node.Statements) + updated := f.AsNodeFactory().NewSourceFile(node.parseOptions, node.text, node.Statements) newFile := updated.AsSourceFile() newFile.copyFrom(node) return cloneNode(updated, node.AsNode(), f.AsNodeFactory().hooks) @@ -10153,7 +10151,7 @@ func (node *SourceFile) computeSubtreeFacts() SubtreeFacts { func (f *NodeFactory) UpdateSourceFile(node *SourceFile, statements *StatementList) *Node { if statements != node.Statements { - updated := f.NewSourceFile(node.Text(), node.fileName, node.path, statements).AsSourceFile() + updated := f.NewSourceFile(node.parseOptions, node.text, statements).AsSourceFile() updated.copyFrom(node) return updateNode(updated.AsNode(), node.AsNode(), f.hooks) } diff --git a/internal/ast/parseoptions.go b/internal/ast/parseoptions.go new file mode 100644 index 0000000000..f464a4523d --- /dev/null +++ b/internal/ast/parseoptions.go @@ -0,0 +1,168 @@ +package ast + +import ( + "github.com/microsoft/typescript-go/internal/core" + "github.com/microsoft/typescript-go/internal/tspath" +) + +type JSDocParsingMode int + +const ( + JSDocParsingModeParseAll JSDocParsingMode = iota + JSDocParsingModeParseNone + JSDocParsingModeParseForTypeErrors + JSDocParsingModeParseForTypeInfo +) + +type SourceFileParseOptions struct { + FileName string + Path tspath.Path + CompilerOptions core.SourceFileAffectingCompilerOptions + ExternalModuleIndicatorOptions ExternalModuleIndicatorOptions + JSDocParsingMode JSDocParsingMode +} + +func GetSourceFileAffectingCompilerOptions(fileName string, options *core.CompilerOptions) core.SourceFileAffectingCompilerOptions { + // Declaration files are not parsed/bound differently depending on compiler options. + if tspath.IsDeclarationFileName(fileName) { + return core.SourceFileAffectingCompilerOptions{} + } + return options.SourceFileAffecting() +} + +type ExternalModuleIndicatorOptions struct { + jsx bool + force bool +} + +func GetExternalModuleIndicatorOptions(fileName string, options *core.CompilerOptions, metadata SourceFileMetaData) ExternalModuleIndicatorOptions { + if tspath.IsDeclarationFileName(fileName) { + return ExternalModuleIndicatorOptions{} + } + + switch options.GetEmitModuleDetectionKind() { + case core.ModuleDetectionKindForce: + // All non-declaration files are modules, declaration files still do the usual isFileProbablyExternalModule + return ExternalModuleIndicatorOptions{force: true} + case core.ModuleDetectionKindLegacy: + // Files are modules if they have imports, exports, or import.meta + return ExternalModuleIndicatorOptions{} + case core.ModuleDetectionKindAuto: + // If module is nodenext or node16, all esm format files are modules + // If jsx is react-jsx or react-jsxdev then jsx tags force module-ness + // otherwise, the presence of import or export statments (or import.meta) implies module-ness + return ExternalModuleIndicatorOptions{ + jsx: options.Jsx == core.JsxEmitReactJSX || options.Jsx == core.JsxEmitReactJSXDev, + force: isFileForcedToBeModuleByFormat(fileName, options, metadata), + } + default: + return ExternalModuleIndicatorOptions{} + } +} + +var isFileForcedToBeModuleByFormatExtensions = []string{tspath.ExtensionCjs, tspath.ExtensionCts, tspath.ExtensionMjs, tspath.ExtensionMts} + +func isFileForcedToBeModuleByFormat(fileName string, options *core.CompilerOptions, metadata SourceFileMetaData) bool { + // Excludes declaration files - they still require an explicit `export {}` or the like + // for back compat purposes. The only non-declaration files _not_ forced to be a module are `.js` files + // that aren't esm-mode (meaning not in a `type: module` scope). + if GetImpliedNodeFormatForEmitWorker(fileName, options.GetEmitModuleKind(), metadata) == core.ModuleKindESNext || tspath.FileExtensionIsOneOf(fileName, isFileForcedToBeModuleByFormatExtensions) { + return true + } + return false +} + +func SetExternalModuleIndicator(file *SourceFile, opts ExternalModuleIndicatorOptions) { + file.ExternalModuleIndicator = getExternalModuleIndicator(file, opts) +} + +func getExternalModuleIndicator(file *SourceFile, opts ExternalModuleIndicatorOptions) *Node { + if file.ScriptKind == core.ScriptKindJSON { + return nil + } + + if node := isFileProbablyExternalModule(file); node != nil { + return node + } + + if file.IsDeclarationFile { + return nil + } + + if opts.jsx { + if node := isFileModuleFromUsingJSXTag(file); node != nil { + return node + } + } + + if opts.force { + return file.AsNode() + } + + return nil +} + +func isFileProbablyExternalModule(sourceFile *SourceFile) *Node { + for _, statement := range sourceFile.Statements.Nodes { + if isAnExternalModuleIndicatorNode(statement) { + return statement + } + } + return getImportMetaIfNecessary(sourceFile) +} + +func isAnExternalModuleIndicatorNode(node *Node) bool { + return HasSyntacticModifier(node, ModifierFlagsExport) || + IsImportEqualsDeclaration(node) && IsExternalModuleReference(node.AsImportEqualsDeclaration().ModuleReference) || + IsImportDeclaration(node) || IsExportAssignment(node) || IsExportDeclaration(node) +} + +func getImportMetaIfNecessary(sourceFile *SourceFile) *Node { + if sourceFile.AsNode().Flags&NodeFlagsPossiblyContainsImportMeta != 0 { + return findChildNode(sourceFile.AsNode(), IsImportMeta) + } + return nil +} + +func findChildNode(root *Node, check func(*Node) bool) *Node { + var result *Node + var visit func(*Node) bool + visit = func(node *Node) bool { + if check(node) { + result = node + return true + } + return node.ForEachChild(visit) + } + visit(root) + return result +} + +func isFileModuleFromUsingJSXTag(file *SourceFile) *Node { + return walkTreeForJSXTags(file.AsNode()) +} + +// This is a somewhat unavoidable full tree walk to locate a JSX tag - `import.meta` requires the same, +// but we avoid that walk (or parts of it) if at all possible using the `PossiblyContainsImportMeta` node flag. +// Unfortunately, there's no `NodeFlag` space to do the same for JSX. +func walkTreeForJSXTags(node *Node) *Node { + var found *Node + + var visitor func(node *Node) bool + visitor = func(node *Node) bool { + if found != nil { + return true + } + if node.SubtreeFacts()&SubtreeContainsJsx == 0 { + return false + } + if IsJsxOpeningElement(node) || IsJsxFragment(node) { + found = node + return true + } + return node.ForEachChild(visitor) + } + visitor(node) + + return found +} diff --git a/internal/ast/utilities.go b/internal/ast/utilities.go index 946979917e..70b00a5746 100644 --- a/internal/ast/utilities.go +++ b/internal/ast/utilities.go @@ -1615,9 +1615,8 @@ func isCommonJSContainingModuleKind(kind core.ModuleKind) bool { } func IsExternalModuleIndicator(node *Statement) bool { - return HasSyntacticModifier(node, ModifierFlagsExport) || - IsImportEqualsDeclaration(node) && IsExternalModuleReference(node.AsImportEqualsDeclaration().ModuleReference) || - IsImportDeclaration(node) || IsExportAssignment(node) || IsExportDeclaration(node) + // Exported top-level member indicates moduleness + return IsAnyImportOrReExport(node) || IsExportAssignment(node) || HasSyntacticModifier(node, ModifierFlagsExport) } func IsExportNamespaceAsDefaultDeclaration(node *Node) bool { @@ -2549,7 +2548,7 @@ func GetImpliedNodeFormatForFile(path string, packageJsonType string) core.Modul return impliedNodeFormat } -func GetEmitModuleFormatOfFileWorker(fileName string, options *core.CompilerOptions, sourceFileMetaData *SourceFileMetaData) core.ModuleKind { +func GetEmitModuleFormatOfFileWorker(fileName string, options *core.CompilerOptions, sourceFileMetaData SourceFileMetaData) core.ModuleKind { result := GetImpliedNodeFormatForEmitWorker(fileName, options.GetEmitModuleKind(), sourceFileMetaData) if result != core.ModuleKindNone { return result @@ -2557,19 +2556,16 @@ func GetEmitModuleFormatOfFileWorker(fileName string, options *core.CompilerOpti return options.GetEmitModuleKind() } -func GetImpliedNodeFormatForEmitWorker(fileName string, emitModuleKind core.ModuleKind, sourceFileMetaData *SourceFileMetaData) core.ResolutionMode { +func GetImpliedNodeFormatForEmitWorker(fileName string, emitModuleKind core.ModuleKind, sourceFileMetaData SourceFileMetaData) core.ResolutionMode { if core.ModuleKindNode16 <= emitModuleKind && emitModuleKind <= core.ModuleKindNodeNext { - if sourceFileMetaData == nil { - return core.ModuleKindNone - } return sourceFileMetaData.ImpliedNodeFormat } - if sourceFileMetaData != nil && sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindCommonJS && + if sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindCommonJS && (sourceFileMetaData.PackageJsonType == "commonjs" || tspath.FileExtensionIsOneOf(fileName, []string{tspath.ExtensionCjs, tspath.ExtensionCts})) { return core.ModuleKindCommonJS } - if sourceFileMetaData != nil && sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindESNext && + if sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindESNext && (sourceFileMetaData.PackageJsonType == "module" || tspath.FileExtensionIsOneOf(fileName, []string{tspath.ExtensionMjs, tspath.ExtensionMts})) { return core.ModuleKindESNext @@ -2899,15 +2895,6 @@ func GetClassLikeDeclarationOfSymbol(symbol *Symbol) *Node { return core.Find(symbol.Declarations, IsClassLike) } -func GetLanguageVariant(scriptKind core.ScriptKind) core.LanguageVariant { - switch scriptKind { - case core.ScriptKindTSX, core.ScriptKindJSX, core.ScriptKindJS, core.ScriptKindJSON: - // .tsx and .jsx files are treated as jsx language variant. - return core.LanguageVariantJSX - } - return core.LanguageVariantStandard -} - func IsCallLikeExpression(node *Node) bool { switch node.Kind { case KindJsxOpeningElement, KindJsxSelfClosingElement, KindJsxOpeningFragment, KindCallExpression, KindNewExpression, @@ -3118,7 +3105,7 @@ func IsPartOfExclusivelyTypeOnlyImportOrExportDeclaration(node *Node) bool { func IsEmittableImport(node *Node) bool { switch node.Kind { case KindImportDeclaration: - return node.AsImportDeclaration().ImportClause == nil || !node.AsImportDeclaration().ImportClause.IsTypeOnly() + return node.AsImportDeclaration().ImportClause != nil && !node.AsImportDeclaration().ImportClause.IsTypeOnly() case KindExportDeclaration: return !node.AsExportDeclaration().IsTypeOnly case KindImportEqualsDeclaration: diff --git a/internal/astnav/tokens_test.go b/internal/astnav/tokens_test.go index 208b137d60..9c237dafee 100644 --- a/internal/astnav/tokens_test.go +++ b/internal/astnav/tokens_test.go @@ -14,7 +14,6 @@ import ( "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/parser" "github.com/microsoft/typescript-go/internal/repo" - "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/testutil/baseline" "github.com/microsoft/typescript-go/internal/testutil/jstest" "gotest.tools/v3/assert" @@ -26,10 +25,6 @@ var testFiles = []string{ filepath.Join(repo.TypeScriptSubmodulePath, "src/services/mapCode.ts"), } -var parseCompilerOptions = &core.SourceFileAffectingCompilerOptions{ - EmitScriptTarget: core.ScriptTargetLatest, -} - func TestGetTokenAtPosition(t *testing.T) { t.Parallel() repo.SkipIfNoTypeScriptSubmodule(t) @@ -57,7 +52,10 @@ func TestGetTokenAtPosition(t *testing.T) { return 0; } ` - file := parser.ParseSourceFile("/file.ts", "/file.ts", fileText, parseCompilerOptions, nil, scanner.JSDocParsingModeParseAll) + file := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: "/file.ts", + Path: "/file.ts", + }, fileText, core.ScriptKindTS) assert.Equal(t, astnav.GetTokenAtPosition(file, 0), astnav.GetTokenAtPosition(file, 0)) }) } @@ -92,7 +90,10 @@ func baselineTokens(t *testing.T, testName string, includeEOF bool, getTSTokens positions[i] = i } tsTokens := getTSTokens(string(fileText), positions) - file := parser.ParseSourceFile("/file.ts", "/file.ts", string(fileText), parseCompilerOptions, nil, scanner.JSDocParsingModeParseAll) + file := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: "/file.ts", + Path: "/file.ts", + }, string(fileText), core.ScriptKindTS) var output strings.Builder currentRange := core.NewTextRange(0, 0) @@ -425,7 +426,10 @@ export function isAnyDirectorySeparator(charCode: number): boolean { for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { t.Parallel() - file := parser.ParseSourceFile("/file.ts", "/file.ts", testCase.fileContent, parseCompilerOptions, nil, scanner.JSDocParsingModeParseAll) + file := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: "/file.ts", + Path: "/file.ts", + }, testCase.fileContent, core.ScriptKindTS) token := astnav.FindPrecedingToken(file, testCase.position) assert.Equal(t, token.Kind, testCase.expectedKind) }) diff --git a/internal/binder/binder.go b/internal/binder/binder.go index 393d4a8efb..9f241bf8a1 100644 --- a/internal/binder/binder.go +++ b/internal/binder/binder.go @@ -42,8 +42,6 @@ const ( type Binder struct { file *ast.SourceFile - options *core.SourceFileAffectingCompilerOptions - languageVersion core.ScriptTarget bindFunc func(*ast.Node) bool unreachableFlow *ast.FlowNode reportedUnreachableFlow *ast.FlowNode @@ -77,6 +75,10 @@ type Binder struct { singleDeclarationsPool core.Pool[*ast.Node] } +func (b *Binder) options() core.SourceFileAffectingCompilerOptions { + return b.file.ParseOptions().CompilerOptions +} + type ActiveLabel struct { next *ActiveLabel breakTarget *ast.FlowLabel @@ -88,11 +90,11 @@ type ActiveLabel struct { func (label *ActiveLabel) BreakTarget() *ast.FlowNode { return label.breakTarget } func (label *ActiveLabel) ContinueTarget() *ast.FlowNode { return label.continueTarget } -func BindSourceFile(file *ast.SourceFile, options *core.SourceFileAffectingCompilerOptions) { +func BindSourceFile(file *ast.SourceFile) { // This is constructed this way to make the compiler "out-line" the function, // avoiding most work in the common case where the file has already been bound. if !file.IsBound() { - bindSourceFile(file, options) + bindSourceFile(file) } } @@ -113,14 +115,12 @@ func putBinder(b *Binder) { binderPool.Put(b) } -func bindSourceFile(file *ast.SourceFile, options *core.SourceFileAffectingCompilerOptions) { +func bindSourceFile(file *ast.SourceFile) { file.BindOnce(func() { b := getBinder() defer putBinder(b) b.file = file - b.options = options - b.languageVersion = options.EmitScriptTarget - b.inStrictMode = options.BindInStrictMode && !file.IsDeclarationFile || ast.IsExternalModule(file) + b.inStrictMode = b.options().BindInStrictMode && !file.IsDeclarationFile || ast.IsExternalModule(file) b.unreachableFlow = b.newFlowNode(ast.FlowFlagsUnreachable) b.reportedUnreachableFlow = b.newFlowNode(ast.FlowFlagsUnreachable) b.bind(file.AsNode()) @@ -1179,7 +1179,6 @@ func (b *Binder) bindParameter(node *ast.Node) { func (b *Binder) bindFunctionDeclaration(node *ast.Node) { b.checkStrictModeFunctionName(node) if b.inStrictMode { - b.checkStrictModeFunctionDeclaration(node) b.bindBlockScopedDeclaration(node, ast.SymbolFlagsFunction, ast.SymbolFlagsFunctionExcludes) } else { b.declareSymbolAndAddToSymbolTable(node, ast.SymbolFlagsFunction, ast.SymbolFlagsFunctionExcludes) @@ -1362,17 +1361,6 @@ func (b *Binder) checkStrictModeFunctionName(node *ast.Node) { } } -func (b *Binder) checkStrictModeFunctionDeclaration(node *ast.Node) { - if b.languageVersion < core.ScriptTargetES2015 { - // Report error if function is not top level function declaration - if b.blockScopeContainer.Kind != ast.KindSourceFile && b.blockScopeContainer.Kind != ast.KindModuleDeclaration && !ast.IsFunctionLikeOrClassStaticBlockDeclaration(b.blockScopeContainer) { - // We check first if the name is inside class declaration or class expression; if so give explicit message - // otherwise report generic error message. - b.errorOnNode(node, b.getStrictModeBlockScopeFunctionDeclarationMessage(node)) - } - } -} - func (b *Binder) getStrictModeBlockScopeFunctionDeclarationMessage(node *ast.Node) *diagnostics.Message { // Provide specialized messages to help the user understand why we think they're in strict mode. if ast.GetContainingClass(node) != nil { @@ -1441,7 +1429,7 @@ func (b *Binder) checkStrictModeWithStatement(node *ast.Node) { func (b *Binder) checkStrictModeLabeledStatement(node *ast.Node) { // Grammar checking for labeledStatement - if b.inStrictMode && b.options.EmitScriptTarget >= core.ScriptTargetES2015 { + if b.inStrictMode { data := node.AsLabeledStatement() if ast.IsDeclarationStatement(data.Statement) || ast.IsVariableStatement(data.Statement) { b.errorOnFirstToken(data.Label, diagnostics.A_label_is_not_allowed_here) @@ -1614,7 +1602,7 @@ func (b *Binder) bindChildren(node *ast.Node) { return } kind := node.Kind - if kind >= ast.KindFirstStatement && kind <= ast.KindLastStatement && (b.options.AllowUnreachableCode != core.TSTrue || kind == ast.KindReturnStatement) { + if kind >= ast.KindFirstStatement && kind <= ast.KindLastStatement && (b.options().AllowUnreachableCode != core.TSTrue || kind == ast.KindReturnStatement) { hasFlowNodeData := node.FlowNodeData() if hasFlowNodeData != nil { hasFlowNodeData.FlowNode = b.currentFlow @@ -1749,11 +1737,11 @@ func (b *Binder) checkUnreachable(node *ast.Node) bool { // report errors on instantiated modules reportError := ast.IsStatementButNotDeclaration(node) && !ast.IsEmptyStatement(node) || ast.IsClassDeclaration(node) || - isEnumDeclarationWithPreservedEmit(node, b.options) || + isEnumDeclarationWithPreservedEmit(node, b.options()) || ast.IsModuleDeclaration(node) && b.shouldReportErrorOnModuleDeclaration(node) if reportError { b.currentFlow = b.reportedUnreachableFlow - if b.options.AllowUnreachableCode != core.TSTrue { + if b.options().AllowUnreachableCode != core.TSTrue { // unreachable code is reported if // - user has explicitly asked about it AND // - statement is in not ambient context (statements in ambient context is already an error @@ -1763,7 +1751,7 @@ func (b *Binder) checkUnreachable(node *ast.Node) bool { // - node is not block scoped variable statement and at least one variable declaration has initializer // Rationale: we don't want to report errors on non-initialized var's since they are hoisted // On the other side we do want to report errors on non-initialized 'lets' because of TDZ - isError := unreachableCodeIsError(b.options) && node.Flags&ast.NodeFlagsAmbient == 0 && (!ast.IsVariableStatement(node) || + isError := unreachableCodeIsError(b.options()) && node.Flags&ast.NodeFlagsAmbient == 0 && (!ast.IsVariableStatement(node) || ast.GetCombinedNodeFlags(node.AsVariableStatement().DeclarationList)&ast.NodeFlagsBlockScoped != 0 || core.Some(node.AsVariableStatement().DeclarationList.AsVariableDeclarationList().Declarations.Nodes, func(d *ast.Node) bool { return d.AsVariableDeclaration().Initializer != nil @@ -1777,7 +1765,7 @@ func (b *Binder) checkUnreachable(node *ast.Node) bool { func (b *Binder) shouldReportErrorOnModuleDeclaration(node *ast.Node) bool { instanceState := ast.GetModuleInstanceState(node) - return instanceState == ast.ModuleInstanceStateInstantiated || (instanceState == ast.ModuleInstanceStateConstEnumOnly && b.options.ShouldPreserveConstEnums) + return instanceState == ast.ModuleInstanceStateInstantiated || (instanceState == ast.ModuleInstanceStateConstEnumOnly && b.options().ShouldPreserveConstEnums) } func (b *Binder) errorOnEachUnreachableRange(node *ast.Node, isError bool) { @@ -1820,7 +1808,7 @@ func (b *Binder) isPurelyTypeDeclaration(s *ast.Node) bool { case ast.KindModuleDeclaration: return ast.GetModuleInstanceState(s) != ast.ModuleInstanceStateInstantiated case ast.KindEnumDeclaration: - return !isEnumDeclarationWithPreservedEmit(s, b.options) + return !isEnumDeclarationWithPreservedEmit(s, b.options()) default: return false } @@ -2171,7 +2159,7 @@ func (b *Binder) bindCaseBlock(node *ast.Node) { clause := clauses[i] b.bind(clause) fallthroughFlow = b.currentFlow - if b.currentFlow.Flags&ast.FlowFlagsUnreachable == 0 && i != len(clauses)-1 && b.options.NoFallthroughCasesInSwitch == core.TSTrue { + if b.currentFlow.Flags&ast.FlowFlagsUnreachable == 0 && i != len(clauses)-1 { clause.AsCaseOrDefaultClause().FallthroughFlowNode = b.currentFlow } } @@ -2216,8 +2204,8 @@ func (b *Binder) bindLabeledStatement(node *ast.Node) { } b.bind(stmt.Label) b.bind(stmt.Statement) - if !b.activeLabelList.referenced && b.options.AllowUnusedLabels != core.TSTrue { - b.errorOrSuggestionOnNode(unusedLabelIsError(b.options), stmt.Label, diagnostics.Unused_label) + if !b.activeLabelList.referenced && b.options().AllowUnusedLabels != core.TSTrue { + b.errorOrSuggestionOnNode(unusedLabelIsError(b.options()), stmt.Label, diagnostics.Unused_label) } b.activeLabelList = b.activeLabelList.next b.addAntecedent(postStatementLabel, b.currentFlow) @@ -2539,7 +2527,7 @@ func (b *Binder) bindInitializer(node *ast.Node) { b.currentFlow = b.finishFlowLabel(exitFlow) } -func isEnumDeclarationWithPreservedEmit(node *ast.Node, options *core.SourceFileAffectingCompilerOptions) bool { +func isEnumDeclarationWithPreservedEmit(node *ast.Node, options core.SourceFileAffectingCompilerOptions) bool { return node.Kind == ast.KindEnumDeclaration && (!ast.IsEnumConst(node) || options.ShouldPreserveConstEnums) } @@ -2871,11 +2859,11 @@ func isFunctionSymbol(symbol *ast.Symbol) bool { return false } -func unreachableCodeIsError(options *core.SourceFileAffectingCompilerOptions) bool { +func unreachableCodeIsError(options core.SourceFileAffectingCompilerOptions) bool { return options.AllowUnreachableCode == core.TSFalse } -func unusedLabelIsError(options *core.SourceFileAffectingCompilerOptions) bool { +func unusedLabelIsError(options core.SourceFileAffectingCompilerOptions) bool { return options.AllowUnusedLabels == core.TSFalse } diff --git a/internal/binder/binder_test.go b/internal/binder/binder_test.go index 776fc717f0..afffa138e0 100644 --- a/internal/binder/binder_test.go +++ b/internal/binder/binder_test.go @@ -7,7 +7,6 @@ import ( "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/parser" - "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/testutil/fixtures" "github.com/microsoft/typescript-go/internal/tspath" "github.com/microsoft/typescript-go/internal/vfs/osvfs" @@ -25,9 +24,17 @@ func BenchmarkBind(b *testing.B) { compilerOptions := &core.CompilerOptions{Target: core.ScriptTargetESNext, Module: core.ModuleKindNodeNext} sourceAffecting := compilerOptions.SourceFileAffecting() + parseOptions := ast.SourceFileParseOptions{ + FileName: fileName, + Path: path, + CompilerOptions: sourceAffecting, + JSDocParsingMode: ast.JSDocParsingModeParseAll, + } + scriptKind := core.GetScriptKindFromFileName(fileName) + sourceFiles := make([]*ast.SourceFile, b.N) for i := range b.N { - sourceFiles[i] = parser.ParseSourceFile(fileName, path, sourceText, sourceAffecting, nil, scanner.JSDocParsingModeParseAll) + sourceFiles[i] = parser.ParseSourceFile(parseOptions, sourceText, scriptKind) } // The above parses do a lot of work; ensure GC is finished before we start collecting performance data. @@ -37,7 +44,7 @@ func BenchmarkBind(b *testing.B) { b.ResetTimer() for i := range b.N { - BindSourceFile(sourceFiles[i], sourceAffecting) + BindSourceFile(sourceFiles[i]) } }) } diff --git a/internal/bundled/generate.go b/internal/bundled/generate.go index 5c1e667583..c39032bcd9 100644 --- a/internal/bundled/generate.go +++ b/internal/bundled/generate.go @@ -12,6 +12,8 @@ import ( "slices" "strings" + "github.com/microsoft/typescript-go/internal/ast" + "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/parser" "github.com/microsoft/typescript-go/internal/repo" "github.com/microsoft/typescript-go/internal/tspath" @@ -140,7 +142,10 @@ func readLibs() []lib { log.Fatalf("failed to open libs.json: %v", err) } - sourceFile := parser.ParseJSONText(libsFile, tspath.Path(libsFile), string(b)) + sourceFile := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: libsFile, + Path: tspath.Path(libsFile), + }, string(b), core.ScriptKindJSON) diags := sourceFile.Diagnostics() if len(diags) > 0 { diff --git a/internal/checker/checker.go b/internal/checker/checker.go index 77b5ff3b1d..fca04dd588 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -534,7 +534,7 @@ type Program interface { GetImpliedNodeFormatForEmit(sourceFile ast.HasFileName) core.ModuleKind GetResolvedModule(currentSourceFile ast.HasFileName, moduleReference string, mode core.ResolutionMode) *module.ResolvedModule GetResolvedModules() map[tspath.Path]module.ModeAwareCache[*module.ResolvedModule] - GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData + GetSourceFileMetaData(path tspath.Path) ast.SourceFileMetaData GetJSXRuntimeImportSpecifier(path tspath.Path) (moduleReference string, specifier *ast.Node) GetImportHelpersImportSpecifier(path tspath.Path) *ast.Node SourceFileMayBeEmitted(sourceFile *ast.SourceFile, forceDtsEmit bool) bool @@ -10261,7 +10261,7 @@ func (c *Checker) checkNewTargetMetaProperty(node *ast.Node) *Type { func (c *Checker) checkImportMetaProperty(node *ast.Node) *Type { if core.ModuleKindNode16 <= c.moduleKind && c.moduleKind <= core.ModuleKindNodeNext { sourceFileMetaData := c.program.GetSourceFileMetaData(ast.GetSourceFileOfNode(node).Path()) - if sourceFileMetaData == nil || sourceFileMetaData.ImpliedNodeFormat != core.ModuleKindESNext { + if sourceFileMetaData.ImpliedNodeFormat != core.ModuleKindESNext { c.error(node, diagnostics.The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output) } } else if c.moduleKind < core.ModuleKindES2020 && c.moduleKind != core.ModuleKindSystem { diff --git a/internal/checker/grammarchecks.go b/internal/checker/grammarchecks.go index acd23758e7..cd3cca23f3 100644 --- a/internal/checker/grammarchecks.go +++ b/internal/checker/grammarchecks.go @@ -1230,7 +1230,7 @@ func (c *Checker) checkGrammarForInOrForOfStatement(forInOrOfStatement *ast.ForI switch c.moduleKind { case core.ModuleKindNode16, core.ModuleKindNode18, core.ModuleKindNodeNext: sourceFileMetaData := c.program.GetSourceFileMetaData(sourceFile.Path()) - if sourceFileMetaData != nil && sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindCommonJS { + if sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindCommonJS { c.diagnostics.Add(createDiagnosticForNode(forInOrOfStatement.AwaitModifier, diagnostics.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level)) break } @@ -1737,7 +1737,7 @@ func (c *Checker) checkGrammarAwaitOrAwaitUsing(node *ast.Node) bool { core.ModuleKindNode18, core.ModuleKindNodeNext: sourceFileMetaData := c.program.GetSourceFileMetaData(sourceFile.Path()) - if sourceFileMetaData != nil && sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindCommonJS { + if sourceFileMetaData.ImpliedNodeFormat == core.ModuleKindCommonJS { if !spanCalculated { span = scanner.GetRangeOfTokenAtPosition(sourceFile, node.Pos()) } diff --git a/internal/checker/jsx.go b/internal/checker/jsx.go index 4b38947726..5629ba9ff7 100644 --- a/internal/checker/jsx.go +++ b/internal/checker/jsx.go @@ -1422,7 +1422,7 @@ func (c *Checker) getJsxFragmentFactoryEntity(location *ast.Node) *ast.EntityNam } func (c *Checker) parseIsolatedEntityName(name string) *ast.Node { - result := parser.ParseIsolatedEntityName(name, c.languageVersion) + result := parser.ParseIsolatedEntityName(name) if result != nil { markAsSynthetic(result) } diff --git a/internal/checker/nodebuilderimpl.go b/internal/checker/nodebuilderimpl.go index ed9f3182ff..e15722e5a2 100644 --- a/internal/checker/nodebuilderimpl.go +++ b/internal/checker/nodebuilderimpl.go @@ -632,7 +632,7 @@ func (b *nodeBuilderImpl) createExpressionFromSymbolChain(chain []*ast.Symbol, i return b.f.NewStringLiteral(b.getSpecifierForModuleSymbol(symbol, core.ResolutionModeNone)) } - if index == 0 || canUsePropertyAccess(symbolName, b.ch.languageVersion) { + if index == 0 || canUsePropertyAccess(symbolName) { identifier := b.f.NewIdentifier(symbolName) b.e.AddEmitFlags(identifier, printer.EFNoAsciiEscaping) // !!! TODO: smuggle type arguments out @@ -667,16 +667,16 @@ func (b *nodeBuilderImpl) createExpressionFromSymbolChain(chain []*ast.Symbol, i return b.f.NewElementAccessExpression(b.createExpressionFromSymbolChain(chain, index-1), nil, expression, ast.NodeFlagsNone) } -func canUsePropertyAccess(name string, languageVersion core.ScriptTarget) bool { +func canUsePropertyAccess(name string) bool { if len(name) == 0 { return false } // TODO: in strada, this only used `isIdentifierStart` on the first character, while this checks the whole string for validity // - possible strada bug? if strings.HasPrefix(name, "#") { - return len(name) > 1 && scanner.IsIdentifierText(name[1:], languageVersion, core.LanguageVariantStandard) + return len(name) > 1 && scanner.IsIdentifierText(name[1:], core.LanguageVariantStandard) } - return scanner.IsIdentifierText(name, languageVersion, core.LanguageVariantStandard) + return scanner.IsIdentifierText(name, core.LanguageVariantStandard) } func startsWithSingleOrDoubleQuote(str string) bool { @@ -705,7 +705,7 @@ func (b *nodeBuilderImpl) getNameOfSymbolFromNameType(symbol *ast.Symbol) string case jsnum.Number: name = v.String() } - if !scanner.IsIdentifierText(name, b.ch.compilerOptions.GetEmitScriptTarget(), core.LanguageVariantStandard) && !isNumericLiteralName(name) { + if !scanner.IsIdentifierText(name, core.LanguageVariantStandard) && !isNumericLiteralName(name) { return b.ch.valueToString(nameType.AsLiteralType().value) } if isNumericLiteralName(name) && strings.HasPrefix(name, "-") { @@ -1976,9 +1976,9 @@ func (b *nodeBuilderImpl) trackComputedName(accessExpression *ast.Node, enclosin } } -func (b *nodeBuilderImpl) createPropertyNameNodeForIdentifierOrLiteral(name string, target core.ScriptTarget, _singleQuote bool, stringNamed bool, isMethod bool) *ast.Node { +func (b *nodeBuilderImpl) createPropertyNameNodeForIdentifierOrLiteral(name string, _singleQuote bool, stringNamed bool, isMethod bool) *ast.Node { isMethodNamedNew := isMethod && name == "new" - if !isMethodNamedNew && scanner.IsIdentifierText(name, target, core.LanguageVariantStandard) { + if !isMethodNamedNew && scanner.IsIdentifierText(name, core.LanguageVariantStandard) { return b.f.NewIdentifier(name) } if !stringNamed && !isMethodNamedNew && isNumericLiteralName(name) && jsnum.FromString(name) >= 0 { @@ -2020,7 +2020,7 @@ func (b *nodeBuilderImpl) getPropertyNameNodeForSymbol(symbol *ast.Symbol) *ast. if fromNameType != nil { return fromNameType } - return b.createPropertyNameNodeForIdentifierOrLiteral(symbol.Name, b.ch.compilerOptions.GetEmitScriptTarget(), singleQuote, stringNamed, isMethod) + return b.createPropertyNameNodeForIdentifierOrLiteral(symbol.Name, singleQuote, stringNamed, isMethod) } // See getNameForSymbolFromNameType for a stringy equivalent @@ -2040,14 +2040,14 @@ func (b *nodeBuilderImpl) getPropertyNameNodeForSymbolFromNameType(symbol *ast.S case string: name = nameType.AsLiteralType().value.(string) } - if !scanner.IsIdentifierText(name, b.ch.compilerOptions.GetEmitScriptTarget(), core.LanguageVariantStandard) && (stringNamed || !isNumericLiteralName(name)) { + if !scanner.IsIdentifierText(name, core.LanguageVariantStandard) && (stringNamed || !isNumericLiteralName(name)) { // !!! TODO: set singleQuote return b.f.NewStringLiteral(name) } if isNumericLiteralName(name) && name[0] == '-' { return b.f.NewComputedPropertyName(b.f.NewPrefixUnaryExpression(ast.KindMinusToken, b.f.NewNumericLiteral(name[1:]))) } - return b.createPropertyNameNodeForIdentifierOrLiteral(name, b.ch.compilerOptions.GetEmitScriptTarget(), singleQuote, stringNamed, isMethod) + return b.createPropertyNameNodeForIdentifierOrLiteral(name, singleQuote, stringNamed, isMethod) } if nameType.flags&TypeFlagsUniqueESSymbol != 0 { return b.f.NewComputedPropertyName(b.symbolToExpression(nameType.AsUniqueESSymbolType().symbol, ast.SymbolFlagsValue)) @@ -2737,7 +2737,7 @@ func (b *nodeBuilderImpl) typeToTypeNode(t *Type) *ast.TypeNode { return parentName } memberName := ast.SymbolName(t.symbol) - if scanner.IsIdentifierText(memberName, core.ScriptTargetES5, core.LanguageVariantStandard) { + if scanner.IsIdentifierText(memberName, core.LanguageVariantStandard) { return b.appendReferenceToType(parentName /* as TypeReferenceNode | ImportTypeNode */, b.f.NewTypeReferenceNode(b.f.NewIdentifier(memberName), nil /*typeArguments*/)) } if ast.IsImportTypeNode(parentName) { diff --git a/internal/checker/types.go b/internal/checker/types.go index ae842ea0cd..2e5ea1f81d 100644 --- a/internal/checker/types.go +++ b/internal/checker/types.go @@ -427,18 +427,18 @@ const ( TypeFlagsUniqueESSymbol TypeFlags = 1 << 14 // unique symbol TypeFlagsEnumLiteral TypeFlags = 1 << 15 // Always combined with StringLiteral, NumberLiteral, or Union TypeFlagsEnum TypeFlags = 1 << 16 // Numeric computed enum member value (must be right after EnumLiteral, see getSortOrderFlags) - TypeFlagsNever TypeFlags = 1 << 17 // Never type - TypeFlagsTypeParameter TypeFlags = 1 << 18 // Type parameter - TypeFlagsObject TypeFlags = 1 << 19 // Object type - TypeFlagsUnion TypeFlags = 1 << 20 // Union (T | U) - TypeFlagsIntersection TypeFlags = 1 << 21 // Intersection (T & U) - TypeFlagsIndex TypeFlags = 1 << 22 // keyof T - TypeFlagsIndexedAccess TypeFlags = 1 << 23 // T[K] - TypeFlagsConditional TypeFlags = 1 << 24 // T extends U ? X : Y - TypeFlagsSubstitution TypeFlags = 1 << 25 // Type parameter substitution - TypeFlagsNonPrimitive TypeFlags = 1 << 26 // intrinsic object type - TypeFlagsTemplateLiteral TypeFlags = 1 << 27 // Template literal type - TypeFlagsStringMapping TypeFlags = 1 << 28 // Uppercase/Lowercase type + TypeFlagsNonPrimitive TypeFlags = 1 << 17 // intrinsic object type + TypeFlagsNever TypeFlags = 1 << 18 // Never type + TypeFlagsTypeParameter TypeFlags = 1 << 19 // Type parameter + TypeFlagsObject TypeFlags = 1 << 20 // Object type + TypeFlagsIndex TypeFlags = 1 << 21 // keyof T + TypeFlagsIndexedAccess TypeFlags = 1 << 22 // T[K] + TypeFlagsConditional TypeFlags = 1 << 23 // T extends U ? X : Y + TypeFlagsSubstitution TypeFlags = 1 << 24 // Type parameter substitution + TypeFlagsTemplateLiteral TypeFlags = 1 << 25 // Template literal type + TypeFlagsStringMapping TypeFlags = 1 << 26 // Uppercase/Lowercase type + TypeFlagsUnion TypeFlags = 1 << 27 // Union (T | U) + TypeFlagsIntersection TypeFlags = 1 << 28 // Intersection (T & U) TypeFlagsReserved1 TypeFlags = 1 << 29 // Used by union/intersection type construction TypeFlagsReserved2 TypeFlags = 1 << 30 // Used by union/intersection type construction TypeFlagsReserved3 TypeFlags = 1 << 31 diff --git a/internal/compiler/emitter.go b/internal/compiler/emitter.go index b8a91a6609..c1e6b22a44 100644 --- a/internal/compiler/emitter.go +++ b/internal/compiler/emitter.go @@ -2,6 +2,7 @@ package compiler import ( "encoding/base64" + "fmt" "strings" "github.com/microsoft/typescript-go/internal/ast" @@ -297,17 +298,25 @@ func (e *emitter) getSourceMappingURL(mapOptions *core.CompilerOptions, sourceMa return stringutil.EncodeURI(sourceMapFile) } +// sourceFileMayBeEmitted determines whether a source file should be emitted based on TypeScript compiler rules. +// This implementation now closely matches the TypeScript utilities.ts sourceFileMayBeEmitted function, +// including proper handling of JS files, external libraries, project references, and JSON file emission logic. func sourceFileMayBeEmitted(sourceFile *ast.SourceFile, host printer.EmitHost, forceDtsEmit bool) bool { - // !!! Js files are emitted only if option is enabled + options := host.Options() + + // Js files are emitted only if option is enabled + if options.NoEmitForJsFiles == core.TSTrue && ast.IsSourceFileJS(sourceFile) { + return false + } // Declaration files are not emitted if sourceFile.IsDeclarationFile { return false } - // !!! Source file from node_modules are not emitted. In Strada, this depends on module resolution and uses - // `sourceFilesFoundSearchingNodeModules` in `createProgram`. For now, we will just check for `/node_modules/` in - // the file name. + // Source file from node_modules are not emitted + // In the TypeScript implementation, this uses host.isSourceFileFromExternalLibrary(sourceFile) + // For now, we will just check for `/node_modules/` in the file name. if strings.Contains(sourceFile.FileName(), "/node_modules/") { return false } @@ -318,17 +327,57 @@ func sourceFileMayBeEmitted(sourceFile *ast.SourceFile, host printer.EmitHost, f } // Source files from referenced projects are not emitted + // In TypeScript this uses host.isSourceOfProjectReferenceRedirect(sourceFile.fileName) + // We're using the available GetOutputAndProjectReference method as an approximation if host.GetOutputAndProjectReference(sourceFile.Path()) != nil { return false } // Any non json file should be emitted if !ast.IsJsonSourceFile(sourceFile) { + fmt.Println("sourceFile.FileName()", sourceFile.FileName(), "IsJsonSourceFile", true) + return true + } + + // The following logic matches the TypeScript implementation for JSON files + + // In TypeScript this would be: if (host.getResolvedProjectReferenceToRedirect(sourceFile.fileName)) return false; + // We don't have this method available yet, so skip this check for now + + // Emit json file if outFile is specified + if options.OutFile != "" { + fmt.Println("sourceFile.FileName()", sourceFile.FileName(), "options.OutFile", true) return true } - // !!! Should JSON input files be emitted - return false + // Json file is not emitted if outDir is not specified + if options.OutDir == "" { + fmt.Println("sourceFile.FileName()", sourceFile.FileName(), "options.OutDir", true) + return false + } + + // Otherwise if rootDir or composite config file, we know common sourceDir and can check if file would be emitted in same location + if options.RootDir != "" || (options.Composite == core.TSTrue && options.ConfigFilePath != "") { + // Get normalized absolute paths + commonDir := host.CommonSourceDirectory() + currentDir := host.GetCurrentDirectory() + + // Calculate output path + outputPath := outputpaths.GetSourceFilePathInNewDir(sourceFile.FileName(), options.OutDir, currentDir, commonDir, host.UseCaseSensitiveFileNames()) + + // Compare paths - if they're the same, don't emit + compareResult := tspath.ComparePaths(sourceFile.FileName(), outputPath, tspath.ComparePathsOptions{ + CurrentDirectory: currentDir, + UseCaseSensitiveFileNames: host.UseCaseSensitiveFileNames(), + }) + if compareResult == 0 { // Comparison.EqualTo + return false + } + } + + fmt.Println("sourceFile.FileName()", sourceFile.FileName(), "fully fell through", true) + + return true } func getSourceFilesToEmit(host printer.EmitHost, targetSourceFile *ast.SourceFile, forceDtsEmit bool) []*ast.SourceFile { @@ -340,7 +389,9 @@ func getSourceFilesToEmit(host printer.EmitHost, targetSourceFile *ast.SourceFil sourceFiles = host.SourceFiles() } return core.Filter(sourceFiles, func(sourceFile *ast.SourceFile) bool { - return sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit) + var result bool = sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit) + fmt.Println("sourceFile.FileName()", sourceFile.FileName(), "result", result) + return result }) } diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index 78140ef85f..d39c5b74e5 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -10,6 +10,7 @@ import ( "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/collections" "github.com/microsoft/typescript-go/internal/core" + "github.com/microsoft/typescript-go/internal/diagnostics" "github.com/microsoft/typescript-go/internal/module" "github.com/microsoft/typescript-go/internal/tsoptions" "github.com/microsoft/typescript-go/internal/tspath" @@ -44,7 +45,7 @@ type processedFiles struct { missingFiles []string resolvedModules map[tspath.Path]module.ModeAwareCache[*module.ResolvedModule] typeResolutionsInFile map[tspath.Path]module.ModeAwareCache[*module.ResolvedTypeReferenceDirective] - sourceFileMetaDatas map[tspath.Path]*ast.SourceFileMetaData + sourceFileMetaDatas map[tspath.Path]ast.SourceFileMetaData jsxRuntimeImportSpecifiers map[tspath.Path]*jsxRuntimeImportSpecifier importHelpersImportSpecifiers map[tspath.Path]*ast.Node // List of present unsupported extensions @@ -64,6 +65,10 @@ func processAllProgramFiles( compilerOptions := opts.Config.CompilerOptions() rootFiles := opts.Config.FileNames() supportedExtensions := tsoptions.GetSupportedExtensions(compilerOptions, nil /*extraFileExtensions*/) + var maxNodeModuleJsDepth int + if p := opts.Config.CompilerOptions().MaxNodeModuleJsDepth; p != nil { + maxNodeModuleJsDepth = *p + } loader := fileLoader{ opts: opts, defaultLibraryPath: tspath.GetNormalizedAbsolutePath(opts.Host.DefaultLibraryPath(), opts.Host.GetCurrentDirectory()), @@ -72,12 +77,11 @@ func processAllProgramFiles( CurrentDirectory: opts.Host.GetCurrentDirectory(), }, parseTasks: &fileLoaderWorker[*parseTask]{ - wg: core.NewWorkGroup(singleThreaded), - getSubTasks: getSubTasksOfParseTask, + wg: core.NewWorkGroup(singleThreaded), + maxDepth: maxNodeModuleJsDepth, }, projectReferenceParseTasks: &fileLoaderWorker[*projectReferenceParseTask]{ - wg: core.NewWorkGroup(singleThreaded), - getSubTasks: getSubTasksOfProjectReferenceParseTask, + wg: core.NewWorkGroup(singleThreaded), }, rootTasks: make([]*parseTask, 0, len(rootFiles)+len(libs)), supportedExtensions: core.Flatten(tsoptions.GetSupportedExtensionsWithJsonIfResolveJsonModule(compilerOptions, supportedExtensions)), @@ -103,7 +107,7 @@ func processAllProgramFiles( filesByPath := make(map[tspath.Path]*ast.SourceFile, totalFileCount) resolvedModules := make(map[tspath.Path]module.ModeAwareCache[*module.ResolvedModule], totalFileCount) typeResolutionsInFile := make(map[tspath.Path]module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], totalFileCount) - sourceFileMetaDatas := make(map[tspath.Path]*ast.SourceFileMetaData, totalFileCount) + sourceFileMetaDatas := make(map[tspath.Path]ast.SourceFileMetaData, totalFileCount) var jsxRuntimeImportSpecifiers map[tspath.Path]*jsxRuntimeImportSpecifier var importHelpersImportSpecifiers map[tspath.Path]*ast.Node var unsupportedExtensions []string @@ -259,7 +263,7 @@ func (p *fileLoader) getDefaultLibFilePriority(a *ast.SourceFile) int { return len(tsoptions.Libs) + 2 } -func (p *fileLoader) loadSourceFileMetaData(fileName string) *ast.SourceFileMetaData { +func (p *fileLoader) loadSourceFileMetaData(fileName string) ast.SourceFileMetaData { packageJsonScope := p.resolver.GetPackageJsonScopeIfApplicable(fileName) var packageJsonType, packageJsonDirectory string if packageJsonScope.Exists() { @@ -269,7 +273,7 @@ func (p *fileLoader) loadSourceFileMetaData(fileName string) *ast.SourceFileMeta } } impliedNodeFormat := ast.GetImpliedNodeFormatForFile(fileName, packageJsonType) - return &ast.SourceFileMetaData{ + return ast.SourceFileMetaData{ PackageJsonType: packageJsonType, PackageJsonDirectory: packageJsonDirectory, ImpliedNodeFormat: impliedNodeFormat, @@ -278,26 +282,35 @@ func (p *fileLoader) loadSourceFileMetaData(fileName string) *ast.SourceFileMeta func (p *fileLoader) parseSourceFile(t *parseTask) *ast.SourceFile { path := p.toPath(t.normalizedFilePath) - sourceFile := p.opts.Host.GetSourceFile(t.normalizedFilePath, path, p.projectReferenceFileMapper.getCompilerOptionsForFile(t).SourceFileAffecting(), t.metadata) + options := p.projectReferenceFileMapper.getCompilerOptionsForFile(t) + sourceFile := p.opts.Host.GetSourceFile(ast.SourceFileParseOptions{ + FileName: t.normalizedFilePath, + Path: path, + CompilerOptions: ast.GetSourceFileAffectingCompilerOptions(t.normalizedFilePath, options), + ExternalModuleIndicatorOptions: ast.GetExternalModuleIndicatorOptions(t.normalizedFilePath, options, t.metadata), + JSDocParsingMode: p.opts.JSDocParsingMode, + }) return sourceFile } -func (p *fileLoader) resolveTripleslashPathReference(moduleName string, containingFile string) string { +func (p *fileLoader) resolveTripleslashPathReference(moduleName string, containingFile string) resolvedRef { basePath := tspath.GetDirectoryPath(containingFile) referencedFileName := moduleName if !tspath.IsRootedDiskPath(moduleName) { referencedFileName = tspath.CombinePaths(basePath, moduleName) } - return tspath.NormalizePath(referencedFileName) + return resolvedRef{ + fileName: tspath.NormalizePath(referencedFileName), + } } -func (p *fileLoader) resolveTypeReferenceDirectives(file *ast.SourceFile, meta *ast.SourceFileMetaData) ( - toParse []string, +func (p *fileLoader) resolveTypeReferenceDirectives(file *ast.SourceFile, meta ast.SourceFileMetaData) ( + toParse []resolvedRef, typeResolutionsInFile module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], ) { if len(file.TypeReferenceDirectives) != 0 { - toParse = make([]string, 0, len(file.TypeReferenceDirectives)) + toParse = make([]resolvedRef, 0, len(file.TypeReferenceDirectives)) typeResolutionsInFile = make(module.ModeAwareCache[*module.ResolvedTypeReferenceDirective], len(file.TypeReferenceDirectives)) for _, ref := range file.TypeReferenceDirectives { redirect := p.projectReferenceFileMapper.getRedirectForResolution(file) @@ -305,7 +318,11 @@ func (p *fileLoader) resolveTypeReferenceDirectives(file *ast.SourceFile, meta * resolved := p.resolver.ResolveTypeReferenceDirective(ref.FileName, file.FileName(), resolutionMode, redirect) typeResolutionsInFile[module.ModeAwareCacheKey{Name: ref.FileName, Mode: resolutionMode}] = resolved if resolved.IsResolved() { - toParse = append(toParse, resolved.ResolvedFileName) + toParse = append(toParse, resolvedRef{ + fileName: resolved.ResolvedFileName, + increaseDepth: resolved.IsExternalLibraryImport, + elideOnDepth: false, + }) } } } @@ -314,20 +331,13 @@ func (p *fileLoader) resolveTypeReferenceDirectives(file *ast.SourceFile, meta * const externalHelpersModuleNameText = "tslib" // TODO(jakebailey): dedupe -func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, meta *ast.SourceFileMetaData) ( - toParse []string, +func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, meta ast.SourceFileMetaData) ( + toParse []resolvedRef, resolutionsInFile module.ModeAwareCache[*module.ResolvedModule], importHelpersImportSpecifier *ast.Node, jsxRuntimeImportSpecifier_ *jsxRuntimeImportSpecifier, ) { moduleNames := make([]*ast.Node, 0, len(file.Imports())+len(file.ModuleAugmentations)+2) - moduleNames = append(moduleNames, file.Imports()...) - for _, imp := range file.ModuleAugmentations { - if imp.Kind == ast.KindStringLiteral { - moduleNames = append(moduleNames, imp) - } - // Do nothing if it's an Identifier; we don't need to do module resolution for `declare global`. - } isJavaScriptFile := ast.IsSourceFileJS(file) isExternalModuleFile := ast.IsExternalModule(file) @@ -352,19 +362,39 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, } } + importsStart := len(moduleNames) + + moduleNames = append(moduleNames, file.Imports()...) + for _, imp := range file.ModuleAugmentations { + if imp.Kind == ast.KindStringLiteral { + moduleNames = append(moduleNames, imp) + } + // Do nothing if it's an Identifier; we don't need to do module resolution for `declare global`. + } + if len(moduleNames) != 0 { - toParse = make([]string, 0, len(moduleNames)) + toParse = make([]resolvedRef, 0, len(moduleNames)) + resolutionsInFile = make(module.ModeAwareCache[*module.ResolvedModule], len(moduleNames)) - resolutions := p.resolveModuleNames(moduleNames, file, meta, redirect) + for index, entry := range moduleNames { + moduleName := entry.Text() + if moduleName == "" { + continue + } - resolutionsInFile = make(module.ModeAwareCache[*module.ResolvedModule], len(resolutions)) + mode := getModeForUsageLocation(file.FileName(), meta, entry, optionsForFile) + resolvedModule := p.resolver.ResolveModuleName(moduleName, file.FileName(), mode, redirect) + resolutionsInFile[module.ModeAwareCacheKey{Name: moduleName, Mode: mode}] = resolvedModule - for _, resolution := range resolutions { - resolvedFileName := resolution.resolvedModule.ResolvedFileName - // TODO(ercornel): !!!: check if from node modules + if !resolvedModule.IsResolved() { + continue + } - mode := getModeForUsageLocation(file.FileName(), meta, resolution.node, optionsForFile) - resolutionsInFile[module.ModeAwareCacheKey{Name: resolution.node.Text(), Mode: mode}] = resolution.resolvedModule + resolvedFileName := resolvedModule.ResolvedFileName + isFromNodeModulesSearch := resolvedModule.IsExternalLibraryImport + // Don't treat redirected files as JS files. + isJsFile := !tspath.FileExtensionIsOneOf(resolvedFileName, tspath.SupportedTSExtensionsWithJsonFlat) && p.projectReferenceFileMapper.getRedirectForResolution(ast.NewHasFileName(resolvedFileName, p.toPath(resolvedFileName))) == nil + isJsFileFromNodeModules := isFromNodeModulesSearch && isJsFile && strings.Contains(resolvedFileName, "/node_modules/") // add file to program only if: // - resolution was successful @@ -372,24 +402,20 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, // - module name comes from the list of imports // - it's not a top level JavaScript module that exceeded the search max - // const elideImport = isJSFileFromNodeModules && currentNodeModulesDepth > maxNodeModuleJsDepth; + importIndex := index - importsStart - // Don't add the file if it has a bad extension (e.g. 'tsx' if we don't have '--allowJs') - // This may still end up being an untyped module -- the file won't be included but imports will be allowed. - hasAllowedExtension := false - if optionsForFile.GetResolveJsonModule() { - hasAllowedExtension = tspath.FileExtensionIsOneOf(resolvedFileName, tspath.SupportedTSExtensionsWithJsonFlat) - } else if optionsForFile.AllowJs.IsTrue() { - hasAllowedExtension = tspath.FileExtensionIsOneOf(resolvedFileName, tspath.SupportedJSExtensionsFlat) || tspath.FileExtensionIsOneOf(resolvedFileName, tspath.SupportedTSExtensionsFlat) - } else { - hasAllowedExtension = tspath.FileExtensionIsOneOf(resolvedFileName, tspath.SupportedTSExtensionsFlat) - } - shouldAddFile := resolution.resolvedModule.IsResolved() && hasAllowedExtension - // TODO(ercornel): !!!: other checks on whether or not to add the file + shouldAddFile := moduleName != "" && + getResolutionDiagnostic(optionsForFile, resolvedModule, file) == nil && + !optionsForFile.NoResolve.IsTrue() && + !(isJsFile && !optionsForFile.GetAllowJS()) && + (importIndex < 0 || (importIndex < len(file.Imports()) && (ast.IsInJSFile(file.Imports()[importIndex]) || file.Imports()[importIndex].Flags&ast.NodeFlagsJSDoc == 0))) if shouldAddFile { - // p.findSourceFile(resolvedFileName, FileIncludeReason{Import, 0}) - toParse = append(toParse, resolvedFileName) + toParse = append(toParse, resolvedRef{ + fileName: resolvedFileName, + increaseDepth: resolvedModule.IsExternalLibraryImport, + elideOnDepth: isJsFileFromNodeModules, + }) } } } @@ -397,23 +423,55 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(file *ast.SourceFile, return toParse, resolutionsInFile, importHelpersImportSpecifier, jsxRuntimeImportSpecifier_ } -func (p *fileLoader) resolveModuleNames(entries []*ast.Node, file *ast.SourceFile, meta *ast.SourceFileMetaData, redirect *tsoptions.ParsedCommandLine) []*resolution { - if len(entries) == 0 { - return nil +// Returns a DiagnosticMessage if we won't include a resolved module due to its extension. +// The DiagnosticMessage's parameters are the imported module name, and the filename it resolved to. +// This returns a diagnostic even if the module will be an untyped module. +func getResolutionDiagnostic(options *core.CompilerOptions, resolvedModule *module.ResolvedModule, file *ast.SourceFile) *diagnostics.Message { + needJsx := func() *diagnostics.Message { + if options.Jsx != core.JsxEmitNone { + return nil + } + return diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set + } + + needAllowJs := func() *diagnostics.Message { + if options.GetAllowJS() || !options.NoImplicitAny.DefaultIfUnknown(options.Strict).IsTrue() { + return nil + } + return diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used } - resolvedModules := make([]*resolution, 0, len(entries)) + needResolveJsonModule := func() *diagnostics.Message { + if options.GetResolveJsonModule() { + return nil + } + return diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used + } - for _, entry := range entries { - moduleName := entry.Text() - if moduleName == "" { - continue + needAllowArbitraryExtensions := func() *diagnostics.Message { + if file.IsDeclarationFile || options.AllowArbitraryExtensions.IsTrue() { + return nil } - resolvedModule := p.resolver.ResolveModuleName(moduleName, file.FileName(), getModeForUsageLocation(file.FileName(), meta, entry, module.GetCompilerOptionsWithRedirect(p.opts.Config.CompilerOptions(), redirect)), redirect) - resolvedModules = append(resolvedModules, &resolution{node: entry, resolvedModule: resolvedModule}) + return diagnostics.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set } - return resolvedModules + switch resolvedModule.Extension { + case tspath.ExtensionTs, tspath.ExtensionDts, + tspath.ExtensionMts, tspath.ExtensionDmts, + tspath.ExtensionCts, tspath.ExtensionDcts: + // These are always allowed. + return nil + case tspath.ExtensionTsx: + return needJsx() + case tspath.ExtensionJsx: + return core.Coalesce(needJsx(), needAllowJs()) + case tspath.ExtensionJs, tspath.ExtensionMjs, tspath.ExtensionCjs: + return needAllowJs() + case tspath.ExtensionJson: + return needResolveJsonModule() + default: + return needAllowArbitraryExtensions() + } } func (p *fileLoader) createSyntheticImport(text string, file *ast.SourceFile) *ast.Node { @@ -434,7 +492,7 @@ type resolution struct { resolvedModule *module.ResolvedModule } -func getModeForTypeReferenceDirectiveInFile(ref *ast.FileReference, file *ast.SourceFile, meta *ast.SourceFileMetaData, options *core.CompilerOptions) core.ResolutionMode { +func getModeForTypeReferenceDirectiveInFile(ref *ast.FileReference, file *ast.SourceFile, meta ast.SourceFileMetaData, options *core.CompilerOptions) core.ResolutionMode { if ref.ResolutionMode != core.ResolutionModeNone { return ref.ResolutionMode } else { @@ -442,7 +500,7 @@ func getModeForTypeReferenceDirectiveInFile(ref *ast.FileReference, file *ast.So } } -func getDefaultResolutionModeForFile(fileName string, meta *ast.SourceFileMetaData, options *core.CompilerOptions) core.ResolutionMode { +func getDefaultResolutionModeForFile(fileName string, meta ast.SourceFileMetaData, options *core.CompilerOptions) core.ResolutionMode { if importSyntaxAffectsModuleResolution(options) { return ast.GetImpliedNodeFormatForEmitWorker(fileName, options.GetEmitModuleKind(), meta) } else { @@ -450,7 +508,7 @@ func getDefaultResolutionModeForFile(fileName string, meta *ast.SourceFileMetaDa } } -func getModeForUsageLocation(fileName string, meta *ast.SourceFileMetaData, usage *ast.StringLiteralLike, options *core.CompilerOptions) core.ResolutionMode { +func getModeForUsageLocation(fileName string, meta ast.SourceFileMetaData, usage *ast.StringLiteralLike, options *core.CompilerOptions) core.ResolutionMode { if ast.IsImportDeclaration(usage.Parent) || ast.IsExportDeclaration(usage.Parent) || ast.IsJSDocImportTag(usage.Parent) { isTypeOnly := ast.IsExclusivelyTypeOnlyImportOrExport(usage.Parent) if isTypeOnly { @@ -488,7 +546,7 @@ func importSyntaxAffectsModuleResolution(options *core.CompilerOptions) bool { options.GetResolvePackageJsonExports() || options.GetResolvePackageJsonImports() } -func getEmitSyntaxForUsageLocationWorker(fileName string, meta *ast.SourceFileMetaData, usage *ast.Node, options *core.CompilerOptions) core.ResolutionMode { +func getEmitSyntaxForUsageLocationWorker(fileName string, meta ast.SourceFileMetaData, usage *ast.Node, options *core.CompilerOptions) core.ResolutionMode { if ast.IsRequireCall(usage.Parent, false /*requireStringLiteralLikeArgument*/) || ast.IsExternalModuleReference(usage.Parent) && ast.IsImportEqualsDeclaration(usage.Parent.Parent) { return core.ModuleKindCommonJS } diff --git a/internal/compiler/fileloadertask.go b/internal/compiler/fileloadertask.go index 9ad77d7f32..8dbf9ce76f 100644 --- a/internal/compiler/fileloadertask.go +++ b/internal/compiler/fileloadertask.go @@ -1,43 +1,75 @@ package compiler import ( + "math" + "sync" + "github.com/microsoft/typescript-go/internal/collections" "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/tspath" ) -type fileLoaderWorkerTask interface { +type fileLoaderWorkerTask[T any] interface { comparable FileName() string - start(loader *fileLoader) + isLoaded() bool + load(loader *fileLoader) + getSubTasks() []T + shouldIncreaseDepth() bool + shouldElideOnDepth() bool } -type fileLoaderWorker[K fileLoaderWorkerTask] struct { +type fileLoaderWorker[K fileLoaderWorkerTask[K]] struct { wg core.WorkGroup - tasksByFileName collections.SyncMap[string, K] - getSubTasks func(t K) []K + tasksByFileName collections.SyncMap[string, *queuedTask[K]] + maxDepth int +} + +type queuedTask[K fileLoaderWorkerTask[K]] struct { + task K + mu sync.Mutex + lowestDepth int } func (w *fileLoaderWorker[K]) runAndWait(loader *fileLoader, tasks []K) { - w.start(loader, tasks) + w.start(loader, tasks, 0) w.wg.RunAndWait() } -func (w *fileLoaderWorker[K]) start(loader *fileLoader, tasks []K) { - if len(tasks) > 0 { - for i, task := range tasks { - loadedTask, loaded := w.tasksByFileName.LoadOrStore(task.FileName(), task) - if loaded { - // dedup tasks to ensure correct file order, regardless of which task would be started first - tasks[i] = loadedTask - } else { - w.wg.Queue(func() { - task.start(loader) - subTasks := w.getSubTasks(task) - w.start(loader, subTasks) - }) - } +func (w *fileLoaderWorker[K]) start(loader *fileLoader, tasks []K, depth int) { + for i, task := range tasks { + newTask := &queuedTask[K]{task: task, lowestDepth: math.MaxInt} + loadedTask, loaded := w.tasksByFileName.LoadOrStore(task.FileName(), newTask) + task = loadedTask.task + if loaded { + tasks[i] = task + } + + currentDepth := depth + if task.shouldIncreaseDepth() { + currentDepth++ + } + + if task.shouldElideOnDepth() && currentDepth > w.maxDepth { + continue } + + w.wg.Queue(func() { + loadedTask.mu.Lock() + defer loadedTask.mu.Unlock() + + if !task.isLoaded() { + task.load(loader) + } + + if currentDepth < loadedTask.lowestDepth { + // If we're seeing this task at a lower depth than before, + // reprocess its subtasks to ensure they are loaded. + loadedTask.lowestDepth = currentDepth + subTasks := task.getSubTasks() + w.start(loader, subTasks, currentDepth) + } + }) } } @@ -49,12 +81,12 @@ func (w *fileLoaderWorker[K]) collectWorker(loader *fileLoader, tasks []K, itera var results []tspath.Path for _, task := range tasks { // ensure we only walk each task once - if seen.Has(task) { + if !task.isLoaded() || seen.Has(task) { continue } seen.Add(task) var subResults []tspath.Path - if subTasks := w.getSubTasks(task); len(subTasks) > 0 { + if subTasks := task.getSubTasks(); len(subTasks) > 0 { subResults = w.collectWorker(loader, subTasks, iterate, seen) } iterate(task, subResults) diff --git a/internal/compiler/host.go b/internal/compiler/host.go index fcaef38c6f..82c8c697a3 100644 --- a/internal/compiler/host.go +++ b/internal/compiler/host.go @@ -5,7 +5,6 @@ import ( "github.com/microsoft/typescript-go/internal/collections" "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/parser" - "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/tsoptions" "github.com/microsoft/typescript-go/internal/tspath" "github.com/microsoft/typescript-go/internal/vfs" @@ -18,7 +17,7 @@ type CompilerHost interface { GetCurrentDirectory() string NewLine() string Trace(msg string) - GetSourceFile(fileName string, path tspath.Path, options *core.SourceFileAffectingCompilerOptions, metadata *ast.SourceFileMetaData) *ast.SourceFile + GetSourceFile(opts ast.SourceFileParseOptions) *ast.SourceFile GetResolvedProjectReference(fileName string, path tspath.Path) *tsoptions.ParsedCommandLine } @@ -90,15 +89,12 @@ func (h *compilerHost) Trace(msg string) { //!!! TODO: implement } -func (h *compilerHost) GetSourceFile(fileName string, path tspath.Path, options *core.SourceFileAffectingCompilerOptions, metadata *ast.SourceFileMetaData) *ast.SourceFile { - text, ok := h.FS().ReadFile(fileName) +func (h *compilerHost) GetSourceFile(opts ast.SourceFileParseOptions) *ast.SourceFile { + text, ok := h.FS().ReadFile(opts.FileName) if !ok { return nil } - if tspath.FileExtensionIs(fileName, tspath.ExtensionJson) { - return parser.ParseJSONText(fileName, path, text) - } - return parser.ParseSourceFile(fileName, path, text, options, metadata, scanner.JSDocParsingModeParseForTypeErrors) + return parser.ParseSourceFile(opts, text, core.GetScriptKindFromFileName(opts.FileName)) } func (h *compilerHost) GetResolvedProjectReference(fileName string, path tspath.Path) *tsoptions.ParsedCommandLine { diff --git a/internal/compiler/parsetask.go b/internal/compiler/parsetask.go index 5c4e506918..fab536949f 100644 --- a/internal/compiler/parsetask.go +++ b/internal/compiler/parsetask.go @@ -15,12 +15,15 @@ type parseTask struct { isLib bool isRedirected bool subTasks []*parseTask + loaded bool - metadata *ast.SourceFileMetaData + metadata ast.SourceFileMetaData resolutionsInFile module.ModeAwareCache[*module.ResolvedModule] typeResolutionsInFile module.ModeAwareCache[*module.ResolvedTypeReferenceDirective] importHelpersImportSpecifier *ast.Node jsxRuntimeImportSpecifier *jsxRuntimeImportSpecifier + increaseDepth bool + elideOnDepth bool } func (t *parseTask) FileName() string { @@ -31,7 +34,9 @@ func (t *parseTask) Path() tspath.Path { return t.path } -func (t *parseTask) start(loader *fileLoader) { +func (t *parseTask) load(loader *fileLoader) { + t.loaded = true + t.path = loader.toPath(t.normalizedFilePath) redirect := loader.projectReferenceFileMapper.getParseFileRedirect(t) if redirect != "" { @@ -52,7 +57,6 @@ func (t *parseTask) start(loader *fileLoader) { t.file = file - // !!! if noResolve, skip all of this t.subTasks = make([]*parseTask, 0, len(file.ReferencedFiles)+len(file.Imports())+len(file.ModuleAugmentations)) for _, ref := range file.ReferencedFiles { @@ -73,7 +77,7 @@ func (t *parseTask) start(loader *fileLoader) { if !ok { continue } - t.addSubTask(tspath.CombinePaths(loader.defaultLibraryPath, name), true) + t.addSubTask(resolvedRef{fileName: tspath.CombinePaths(loader.defaultLibraryPath, name)}, true) } } @@ -89,14 +93,34 @@ func (t *parseTask) start(loader *fileLoader) { func (t *parseTask) redirect(loader *fileLoader, fileName string) { t.isRedirected = true + // increaseDepth and elideOnDepth are not copied to redirects, otherwise their depth would be double counted. t.subTasks = []*parseTask{{normalizedFilePath: tspath.NormalizePath(fileName), isLib: t.isLib}} } -func (t *parseTask) addSubTask(fileName string, isLib bool) { - normalizedFilePath := tspath.NormalizePath(fileName) - t.subTasks = append(t.subTasks, &parseTask{normalizedFilePath: normalizedFilePath, isLib: isLib}) +type resolvedRef struct { + fileName string + increaseDepth bool + elideOnDepth bool +} + +func (t *parseTask) addSubTask(ref resolvedRef, isLib bool) { + normalizedFilePath := tspath.NormalizePath(ref.fileName) + subTask := &parseTask{normalizedFilePath: normalizedFilePath, isLib: isLib, increaseDepth: ref.increaseDepth, elideOnDepth: ref.elideOnDepth} + t.subTasks = append(t.subTasks, subTask) } -func getSubTasksOfParseTask(t *parseTask) []*parseTask { +func (t *parseTask) getSubTasks() []*parseTask { return t.subTasks } + +func (t *parseTask) shouldIncreaseDepth() bool { + return t.increaseDepth +} + +func (t *parseTask) shouldElideOnDepth() bool { + return t.elideOnDepth +} + +func (t *parseTask) isLoaded() bool { + return t.loaded +} diff --git a/internal/compiler/program.go b/internal/compiler/program.go index 3be053f2d7..8928bba703 100644 --- a/internal/compiler/program.go +++ b/internal/compiler/program.go @@ -30,6 +30,7 @@ type ProgramOptions struct { CreateCheckerPool func(*Program) CheckerPool TypingsLocation string ProjectName string + JSDocParsingMode ast.JSDocParsingMode } func (p *ProgramOptions) canUseProjectReferenceSource() bool { @@ -45,16 +46,6 @@ type Program struct { processedFiles - // The below settings are to track if a .js file should be add to the program if loaded via searching under node_modules. - // This works as imported modules are discovered recursively in a depth first manner, specifically: - // - For each root file, findSourceFile is called. - // - This calls processImportedModules for each module imported in the source file. - // - This calls resolveModuleNames, and then calls findSourceFile for each resolved module. - // As all these operations happen - and are nested - within the createProgram call, they close over the below variables. - // The current resolution depth is tracked by incrementing/decrementing as the depth first search progresses. - // maxNodeModuleJsDepth int - currentNodeModulesDepth int - usesUriStyleNodeCoreModules core.Tristate commonSourceDirectory string @@ -193,12 +184,6 @@ func NewProgram(opts ProgramOptions) *Program { } p.initCheckerPool() - // p.maxNodeModuleJsDepth = p.options.MaxNodeModuleJsDepth - - // TODO(ercornel): !!! tracing? - // tracing?.push(tracing.Phase.Program, "createProgram", { configFilePath: options.configFilePath, rootDir: options.rootDir }, /*separateBeginAndEnd*/ true); - // performance.mark("beforeProgram"); - var libs []string if compilerOptions.NoLib != core.TSTrue { @@ -225,9 +210,7 @@ func NewProgram(opts ProgramOptions) *Program { // In addition to a new program, return a boolean indicating whether the data of the old program was reused. func (p *Program) UpdateProgram(changedFilePath tspath.Path) (*Program, bool) { oldFile := p.filesByPath[changedFilePath] - // TODO(jakebailey): is wrong because the new file may have new metadata? - metadata := p.sourceFileMetaDatas[changedFilePath] - newFile := p.Host().GetSourceFile(oldFile.FileName(), changedFilePath, p.Options().SourceFileAffecting(), metadata) + newFile := p.Host().GetSourceFile(oldFile.ParseOptions()) if !canReplaceFileInProgram(oldFile, newFile) { return NewProgram(p.opts), false } @@ -236,7 +219,6 @@ func (p *Program) UpdateProgram(changedFilePath tspath.Path) (*Program, bool) { nodeModules: p.nodeModules, comparePathsOptions: p.comparePathsOptions, processedFiles: p.processedFiles, - currentNodeModulesDepth: p.currentNodeModulesDepth, usesUriStyleNodeCoreModules: p.usesUriStyleNodeCoreModules, } result.initCheckerPool() @@ -257,14 +239,8 @@ func (p *Program) initCheckerPool() { } func canReplaceFileInProgram(file1 *ast.SourceFile, file2 *ast.SourceFile) bool { - // TODO(jakebailey): metadata?? return file2 != nil && - file1.FileName() == file2.FileName() && - file1.Path() == file2.Path() && - file1.LanguageVersion == file2.LanguageVersion && - file1.LanguageVariant == file2.LanguageVariant && - file1.ScriptKind == file2.ScriptKind && - file1.IsDeclarationFile == file2.IsDeclarationFile && + file1.ParseOptions() == file2.ParseOptions() && file1.HasNoDefaultLib == file2.HasNoDefaultLib && file1.UsesUriStyleNodeCoreModules == file2.UsesUriStyleNodeCoreModules && slices.EqualFunc(file1.Imports(), file2.Imports(), equalModuleSpecifiers) && @@ -308,7 +284,7 @@ func (p *Program) BindSourceFiles() { for _, file := range p.files { if !file.IsBound() { wg.Queue(func() { - binder.BindSourceFile(file, p.projectReferenceFileMapper.getCompilerOptionsForFile(file).SourceFileAffecting()) + binder.BindSourceFile(file) }) } } @@ -601,7 +577,7 @@ func compactAndMergeRelatedInfos(diagnostics []*ast.Diagnostic) []*ast.Diagnosti func (p *Program) getDiagnosticsHelper(ctx context.Context, sourceFile *ast.SourceFile, ensureBound bool, ensureChecked bool, getDiagnostics func(context.Context, *ast.SourceFile) []*ast.Diagnostic) []*ast.Diagnostic { if sourceFile != nil { if ensureBound { - binder.BindSourceFile(sourceFile, p.projectReferenceFileMapper.getCompilerOptionsForFile(sourceFile).SourceFileAffecting()) + binder.BindSourceFile(sourceFile) } return SortAndDeduplicateDiagnostics(getDiagnostics(ctx, sourceFile)) } @@ -670,7 +646,7 @@ func (p *Program) InstantiationCount() int { return count } -func (p *Program) GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData { +func (p *Program) GetSourceFileMetaData(path tspath.Path) ast.SourceFileMetaData { return p.sourceFileMetaDatas[path] } diff --git a/internal/compiler/projectreferenceparsetask.go b/internal/compiler/projectreferenceparsetask.go index c65dcd6267..647a3f6273 100644 --- a/internal/compiler/projectreferenceparsetask.go +++ b/internal/compiler/projectreferenceparsetask.go @@ -6,6 +6,7 @@ import ( ) type projectReferenceParseTask struct { + loaded bool configName string resolved *tsoptions.ParsedCommandLine subTasks []*projectReferenceParseTask @@ -15,7 +16,9 @@ func (t *projectReferenceParseTask) FileName() string { return t.configName } -func (t *projectReferenceParseTask) start(loader *fileLoader) { +func (t *projectReferenceParseTask) load(loader *fileLoader) { + t.loaded = true + t.resolved = loader.opts.Host.GetResolvedProjectReference(t.configName, loader.toPath(t.configName)) if t.resolved == nil { return @@ -32,10 +35,22 @@ func (t *projectReferenceParseTask) start(loader *fileLoader) { t.subTasks = createProjectReferenceParseTasks(subReferences) } -func getSubTasksOfProjectReferenceParseTask(t *projectReferenceParseTask) []*projectReferenceParseTask { +func (t *projectReferenceParseTask) getSubTasks() []*projectReferenceParseTask { return t.subTasks } +func (t *projectReferenceParseTask) shouldIncreaseDepth() bool { + return false +} + +func (t *projectReferenceParseTask) shouldElideOnDepth() bool { + return false +} + +func (t *projectReferenceParseTask) isLoaded() bool { + return t.loaded +} + func createProjectReferenceParseTasks(projectReferences []string) []*projectReferenceParseTask { return core.Map(projectReferences, func(configName string) *projectReferenceParseTask { return &projectReferenceParseTask{ diff --git a/internal/core/compileroptions.go b/internal/core/compileroptions.go index e6c7f859e9..c63d00eab1 100644 --- a/internal/core/compileroptions.go +++ b/internal/core/compileroptions.go @@ -149,7 +149,7 @@ type CompilerOptions struct { Quiet Tristate `json:"quiet,omitzero"` sourceFileAffectingCompilerOptionsOnce sync.Once - sourceFileAffectingCompilerOptions *SourceFileAffectingCompilerOptions + sourceFileAffectingCompilerOptions SourceFileAffectingCompilerOptions } // noCopy may be embedded into structs which must not be copied @@ -352,29 +352,19 @@ func (options *CompilerOptions) GetPathsBasePath(currentDirectory string) string // SourceFileAffectingCompilerOptions are the precomputed CompilerOptions values which // affect the parse and bind of a source file. type SourceFileAffectingCompilerOptions struct { - AllowUnreachableCode Tristate - AllowUnusedLabels Tristate - BindInStrictMode bool - EmitModuleDetectionKind ModuleDetectionKind - EmitModuleKind ModuleKind - EmitScriptTarget ScriptTarget - JsxEmit JsxEmit - NoFallthroughCasesInSwitch Tristate - ShouldPreserveConstEnums bool + AllowUnreachableCode Tristate + AllowUnusedLabels Tristate + BindInStrictMode bool + ShouldPreserveConstEnums bool } -func (options *CompilerOptions) SourceFileAffecting() *SourceFileAffectingCompilerOptions { +func (options *CompilerOptions) SourceFileAffecting() SourceFileAffectingCompilerOptions { options.sourceFileAffectingCompilerOptionsOnce.Do(func() { - options.sourceFileAffectingCompilerOptions = &SourceFileAffectingCompilerOptions{ - AllowUnreachableCode: options.AllowUnreachableCode, - AllowUnusedLabels: options.AllowUnusedLabels, - BindInStrictMode: options.AlwaysStrict.IsTrue() || options.Strict.IsTrue(), - EmitModuleDetectionKind: options.GetEmitModuleDetectionKind(), - EmitModuleKind: options.GetEmitModuleKind(), - EmitScriptTarget: options.GetEmitScriptTarget(), - JsxEmit: options.Jsx, - NoFallthroughCasesInSwitch: options.NoFallthroughCasesInSwitch, - ShouldPreserveConstEnums: options.ShouldPreserveConstEnums(), + options.sourceFileAffectingCompilerOptions = SourceFileAffectingCompilerOptions{ + AllowUnreachableCode: options.AllowUnreachableCode, + AllowUnusedLabels: options.AllowUnusedLabels, + BindInStrictMode: options.AlwaysStrict.IsTrue() || options.Strict.IsTrue(), + ShouldPreserveConstEnums: options.ShouldPreserveConstEnums(), } }) return options.sourceFileAffectingCompilerOptions diff --git a/internal/execute/tsc.go b/internal/execute/tsc.go index a252f6e584..5edfe9c4d8 100644 --- a/internal/execute/tsc.go +++ b/internal/execute/tsc.go @@ -17,7 +17,6 @@ import ( "github.com/microsoft/typescript-go/internal/format" "github.com/microsoft/typescript-go/internal/parser" "github.com/microsoft/typescript-go/internal/pprof" - "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/tsoptions" "github.com/microsoft/typescript-go/internal/tspath" ) @@ -74,16 +73,11 @@ func fmtMain(sys System, input, output string) ExitStatus { } text := fileContent pathified := tspath.ToPath(input, sys.GetCurrentDirectory(), true) - sourceFile := parser.ParseSourceFile( - string(pathified), - pathified, - text, - &core.SourceFileAffectingCompilerOptions{ - EmitScriptTarget: core.ScriptTargetLatest, - }, - nil, - scanner.JSDocParsingModeParseAll, - ) + sourceFile := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: string(pathified), + Path: pathified, + JSDocParsingMode: ast.JSDocParsingModeParseAll, + }, text, core.GetScriptKindFromFileName(string(pathified))) ast.SetParentInChildren(sourceFile.AsNode()) edits := format.FormatDocument(ctx, sourceFile) newText := applyBulkEdits(text, edits) @@ -246,8 +240,9 @@ func performCompilation( // todo: cache, statistics, tracing parseStart := sys.Now() program := compiler.NewProgram(compiler.ProgramOptions{ - Config: config, - Host: host, + Config: config, + Host: host, + JSDocParsingMode: ast.JSDocParsingModeParseForTypeErrors, }) parseTime := sys.Now().Sub(parseStart) diff --git a/internal/execute/watch.go b/internal/execute/watch.go index 84e49c78a4..6d587951d1 100644 --- a/internal/execute/watch.go +++ b/internal/execute/watch.go @@ -4,6 +4,7 @@ import ( "fmt" "time" + "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/compiler" ) @@ -36,8 +37,9 @@ func (w *watcher) doCycle() { } // updateProgram() w.program = compiler.NewProgram(compiler.ProgramOptions{ - Config: w.options, - Host: w.host, + Config: w.options, + Host: w.host, + JSDocParsingMode: ast.JSDocParsingModeParseForTypeErrors, }) if w.hasBeenModified(w.program) { fmt.Fprint(w.sys.Writer(), "build starting at ", w.sys.Now(), w.sys.NewLine()) diff --git a/internal/format/api_test.go b/internal/format/api_test.go index d60227f7dd..62e87898a8 100644 --- a/internal/format/api_test.go +++ b/internal/format/api_test.go @@ -12,7 +12,6 @@ import ( "github.com/microsoft/typescript-go/internal/parser" "github.com/microsoft/typescript-go/internal/printer" "github.com/microsoft/typescript-go/internal/repo" - "github.com/microsoft/typescript-go/internal/scanner" "gotest.tools/v3/assert" ) @@ -34,10 +33,6 @@ func applyBulkEdits(text string, edits []core.TextChange) string { return b.String() } -var parseCompilerOptions = &core.SourceFileAffectingCompilerOptions{ - EmitScriptTarget: core.ScriptTargetLatest, -} - func TestFormat(t *testing.T) { t.Parallel() @@ -60,14 +55,10 @@ func TestFormat(t *testing.T) { fileContent, err := os.ReadFile(filePath) assert.NilError(t, err) text := string(fileContent) - sourceFile := parser.ParseSourceFile( - "/checker.ts", - "/checker.ts", - text, - parseCompilerOptions, - nil, - scanner.JSDocParsingModeParseAll, - ) + sourceFile := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: "/checker.ts", + Path: "/checker.ts", + }, text, core.ScriptKindTS) ast.SetParentInChildren(sourceFile.AsNode()) edits := format.FormatDocument(ctx, sourceFile) newText := applyBulkEdits(text, edits) @@ -94,14 +85,10 @@ func BenchmarkFormat(b *testing.B) { fileContent, err := os.ReadFile(filePath) assert.NilError(b, err) text := string(fileContent) - sourceFile := parser.ParseSourceFile( - "/checker.ts", - "/checker.ts", - text, - parseCompilerOptions, - nil, - scanner.JSDocParsingModeParseAll, - ) + sourceFile := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: "/checker.ts", + Path: "/checker.ts", + }, text, core.ScriptKindTS) ast.SetParentInChildren(sourceFile.AsNode()) b.Run("format checker.ts", func(b *testing.B) { diff --git a/internal/fourslash/fourslash.go b/internal/fourslash/fourslash.go index 3090fcc8ae..c299f819ae 100644 --- a/internal/fourslash/fourslash.go +++ b/internal/fourslash/fourslash.go @@ -76,21 +76,8 @@ var sourceFileCache collections.SyncMap[harnessutil.SourceFileCacheKey, *ast.Sou type parsedFileCache struct{} -func (c *parsedFileCache) GetFile( - fileName string, - path tspath.Path, - text string, - options *core.SourceFileAffectingCompilerOptions, - metadata *ast.SourceFileMetaData, -) *ast.SourceFile { - key := harnessutil.GetSourceFileCacheKey( - fileName, - path, - text, - options, - metadata, - ) - +func (c *parsedFileCache) GetFile(opts ast.SourceFileParseOptions, text string, scriptKind core.ScriptKind) *ast.SourceFile { + key := harnessutil.GetSourceFileCacheKey(opts, text, scriptKind) cachedFile, ok := sourceFileCache.Load(key) if !ok { return nil @@ -98,21 +85,8 @@ func (c *parsedFileCache) GetFile( return cachedFile } -func (c *parsedFileCache) CacheFile( - fileName string, - path tspath.Path, - text string, - options *core.SourceFileAffectingCompilerOptions, - metadata *ast.SourceFileMetaData, - sourceFile *ast.SourceFile, -) { - key := harnessutil.GetSourceFileCacheKey( - fileName, - path, - text, - options, - metadata, - ) +func (c *parsedFileCache) CacheFile(opts ast.SourceFileParseOptions, text string, scriptKind core.ScriptKind, sourceFile *ast.SourceFile) { + key := harnessutil.GetSourceFileCacheKey(opts, text, scriptKind) sourceFileCache.Store(key, sourceFile) } diff --git a/internal/ls/completions.go b/internal/ls/completions.go index 228c9b4e85..47e2a7f518 100644 --- a/internal/ls/completions.go +++ b/internal/ls/completions.go @@ -1513,7 +1513,7 @@ func (l *LanguageService) completionInfoFromData( defer done() // Verify if the file is JSX language variant - if ast.GetLanguageVariant(file.ScriptKind) == core.LanguageVariantJSX { + if file.LanguageVariant == core.LanguageVariantJSX { list := l.getJsxClosingTagCompletion(data.location, file, position, clientOptions) if list != nil { return list @@ -1555,7 +1555,6 @@ func (l *LanguageService) completionInfoFromData( position, file, program, - compilerOptions.GetEmitScriptTarget(), preferences, compilerOptions, clientOptions, @@ -1593,7 +1592,6 @@ func (l *LanguageService) completionInfoFromData( file, position, &uniqueNames, - compilerOptions.GetEmitScriptTarget(), sortedEntries, ) } @@ -1617,7 +1615,6 @@ func (l *LanguageService) getCompletionEntriesFromSymbols( position int, file *ast.SourceFile, program *compiler.Program, - target core.ScriptTarget, preferences *UserPreferences, compilerOptions *core.CompilerOptions, clientOptions *lsproto.CompletionClientCapabilities, @@ -1637,7 +1634,6 @@ func (l *LanguageService) getCompletionEntriesFromSymbols( origin := data.symbolToOriginInfoMap[symbolId] name, needsConvertPropertyAccess := getCompletionEntryDisplayNameForSymbol( symbol, - target, origin, data.completionKind, data.isJsxIdentifierExpected, @@ -1951,8 +1947,7 @@ func (l *LanguageService) createCompletionItem( parentNamedImportOrExport := ast.FindAncestor(data.location, isNamedImportsOrExports) if parentNamedImportOrExport != nil { - languageVersion := compilerOptions.GetEmitScriptTarget() - if !scanner.IsIdentifierText(name, languageVersion, core.LanguageVariantStandard) { + if !scanner.IsIdentifierText(name, core.LanguageVariantStandard) { insertText = quotePropertyName(file, preferences, name) if parentNamedImportOrExport.Kind == ast.KindNamedImports { @@ -1962,7 +1957,7 @@ func (l *LanguageService) createCompletionItem( scanner.SetText(file.Text()) scanner.ResetPos(position) if !(scanner.Scan() == ast.KindAsKeyword && scanner.Scan() == ast.KindIdentifier) { - insertText += " as " + generateIdentifierForArbitraryString(name, languageVersion) + insertText += " as " + generateIdentifierForArbitraryString(name) } } } else if parentNamedImportOrExport.Kind == ast.KindNamedImports { @@ -2273,7 +2268,6 @@ func shouldIncludeSymbol( func getCompletionEntryDisplayNameForSymbol( symbol *ast.Symbol, - target core.ScriptTarget, origin *symbolOriginInfo, completionKind CompletionKind, isJsxIdentifierExpected bool, @@ -2299,7 +2293,7 @@ func getCompletionEntryDisplayNameForSymbol( variant := core.IfElse(isJsxIdentifierExpected, core.LanguageVariantJSX, core.LanguageVariantStandard) // name is a valid identifier or private identifier text - if scanner.IsIdentifierText(name, target, variant) || + if scanner.IsIdentifierText(name, variant) || symbol.ValueDeclaration != nil && ast.IsPrivateIdentifierClassElementDeclaration(symbol.ValueDeclaration) { return name, false } @@ -2819,7 +2813,7 @@ func isNamedImportsOrExports(node *ast.Node) bool { return ast.IsNamedImports(node) || ast.IsNamedExports(node) } -func generateIdentifierForArbitraryString(text string, languageVersion core.ScriptTarget) string { +func generateIdentifierForArbitraryString(text string) string { needsUnderscore := false identifier := "" var ch rune @@ -2830,9 +2824,9 @@ func generateIdentifierForArbitraryString(text string, languageVersion core.Scri ch, size = utf8.DecodeRuneInString(text[pos:]) var validChar bool if pos == 0 { - validChar = scanner.IsIdentifierStart(ch, languageVersion) + validChar = scanner.IsIdentifierStart(ch) } else { - validChar = scanner.IsIdentifierPart(ch, languageVersion) + validChar = scanner.IsIdentifierPart(ch) } if size > 0 && validChar { if needsUnderscore { @@ -3121,7 +3115,6 @@ func getJSCompletionEntries( file *ast.SourceFile, position int, uniqueNames *collections.Set[string], - target core.ScriptTarget, sortedEntries []*lsproto.CompletionItem, ) []*lsproto.CompletionItem { nameTable := getNameTable(file) @@ -3130,7 +3123,7 @@ func getJSCompletionEntries( if pos == position { continue } - if !uniqueNames.Has(name) && scanner.IsIdentifierText(name, target, core.LanguageVariantStandard) { + if !uniqueNames.Has(name) && scanner.IsIdentifierText(name, core.LanguageVariantStandard) { uniqueNames.Add(name) sortedEntries = core.InsertSorted( sortedEntries, diff --git a/internal/ls/completions_test.go b/internal/ls/completions_test.go index 028153adcc..7dbdeca8ab 100644 --- a/internal/ls/completions_test.go +++ b/internal/ls/completions_test.go @@ -2172,7 +2172,7 @@ func assertIncludesItem(t *testing.T, actual *lsproto.CompletionList, expected * func createLanguageService(ctx context.Context, fileName string, files map[string]any) (*ls.LanguageService, func()) { projectService, _ := projecttestutil.Setup(files, nil) - projectService.OpenFile(fileName, files[fileName].(string), core.ScriptKindTS, "") + projectService.OpenFile(fileName, files[fileName].(string), core.GetScriptKindFromFileName(fileName), "") project := projectService.Projects()[0] return project.GetLanguageServiceForRequest(ctx) } diff --git a/internal/ls/findallreferences.go b/internal/ls/findallreferences.go index ec2a9aa513..ff48544ba1 100644 --- a/internal/ls/findallreferences.go +++ b/internal/ls/findallreferences.go @@ -835,8 +835,8 @@ func getPossibleSymbolReferencePositions(sourceFile *ast.SourceFile, symbolName // before and after it have to be a non-identifier char). endPosition := position + symbolNameLength - if (position == 0 || !scanner.IsIdentifierPart(rune(text[position-1]), core.ScriptTargetLatest)) && - (endPosition == sourceLength || !scanner.IsIdentifierPart(rune(text[endPosition]), core.ScriptTargetLatest)) { + if (position == 0 || !scanner.IsIdentifierPart(rune(text[position-1]))) && + (endPosition == sourceLength || !scanner.IsIdentifierPart(rune(text[endPosition]))) { // Found a real match. Keep searching. positions = append(positions, position) } diff --git a/internal/ls/string_completions.go b/internal/ls/string_completions.go index 78abe3af9f..0821a41d2f 100644 --- a/internal/ls/string_completions.go +++ b/internal/ls/string_completions.go @@ -114,7 +114,6 @@ func (l *LanguageService) convertStringLiteralCompletions( position, file, program, - core.ScriptTargetESNext, preferences, options, clientOptions, diff --git a/internal/packagejson/packagejson_test.go b/internal/packagejson/packagejson_test.go index 389580490d..e216d9c1d2 100644 --- a/internal/packagejson/packagejson_test.go +++ b/internal/packagejson/packagejson_test.go @@ -6,6 +6,8 @@ import ( "testing" json2 "github.com/go-json-experiment/json" + "github.com/microsoft/typescript-go/internal/ast" + "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/packagejson" "github.com/microsoft/typescript-go/internal/parser" "github.com/microsoft/typescript-go/internal/repo" @@ -48,7 +50,10 @@ func BenchmarkPackageJSON(b *testing.B) { b.Run(f.Name(), func(b *testing.B) { fileName := "/" + f.Name() for b.Loop() { - parser.ParseJSONText(fileName, tspath.Path(fileName), string(content)) + parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: fileName, + Path: tspath.Path(fileName), + }, string(content), core.ScriptKindJSON) } }) }) diff --git a/internal/parser/jsdoc.go b/internal/parser/jsdoc.go index 55a80b572e..e9e9604d73 100644 --- a/internal/parser/jsdoc.go +++ b/internal/parser/jsdoc.go @@ -127,7 +127,6 @@ func (p *Parser) parseJSDocComment(parent *ast.Node, start int, end int, fullSta saveToken := p.token saveContextFlags := p.contextFlags saveParsingContexts := p.parsingContexts - saveParsingMode := p.scanner.JSDocParsingMode saveScannerState := p.scanner.Mark() saveDiagnosticsLength := len(p.diagnostics) saveHasParseError := p.hasParseError @@ -157,7 +156,6 @@ func (p *Parser) parseJSDocComment(parent *ast.Node, start int, end int, fullSta p.scanner.SetText(p.sourceText) p.parsingContexts = saveParsingContexts p.contextFlags = saveContextFlags - p.scanner.JSDocParsingMode = saveParsingMode p.scanner.Rewind(saveScannerState) p.token = saveToken p.hasParseError = saveHasParseError diff --git a/internal/parser/parser.go b/internal/parser/parser.go index de189f3d19..fc1e70e19a 100644 --- a/internal/parser/parser.go +++ b/internal/parser/parser.go @@ -50,12 +50,9 @@ type Parser struct { scanner *scanner.Scanner factory ast.NodeFactory - fileName string - path tspath.Path - sourceText string - options *core.SourceFileAffectingCompilerOptions - metadata *ast.SourceFileMetaData - languageVersion core.ScriptTarget + opts ast.SourceFileParseOptions + sourceText string + scriptKind core.ScriptKind languageVariant core.LanguageVariant diagnostics []*ast.Diagnostic @@ -99,19 +96,18 @@ func putParser(p *Parser) { parserPool.Put(p) } -func ParseSourceFile(fileName string, path tspath.Path, sourceText string, options *core.SourceFileAffectingCompilerOptions, metadata *ast.SourceFileMetaData, jsdocParsingMode scanner.JSDocParsingMode) *ast.SourceFile { +func ParseSourceFile(opts ast.SourceFileParseOptions, sourceText string, scriptKind core.ScriptKind) *ast.SourceFile { p := getParser() defer putParser(p) - p.initializeState(fileName, path, sourceText, options, metadata, core.ScriptKindUnknown, jsdocParsingMode) + p.initializeState(opts, sourceText, scriptKind) p.nextToken() + if p.scriptKind == core.ScriptKindJSON { + return p.parseJSONText() + } return p.parseSourceFileWorker() } -func ParseJSONText(fileName string, path tspath.Path, sourceText string) *ast.SourceFile { - p := getParser() - defer putParser(p) - p.initializeState(fileName, path, sourceText, &core.SourceFileAffectingCompilerOptions{EmitScriptTarget: core.ScriptTargetES2015}, nil, core.ScriptKindJSON, scanner.JSDocParsingModeParseAll) - p.nextToken() +func (p *Parser) parseJSONText() *ast.SourceFile { pos := p.nodePos() var statements *ast.NodeList @@ -172,40 +168,38 @@ func ParseJSONText(fileName string, path tspath.Path, sourceText string) *ast.So statements = p.newNodeList(core.NewTextRange(pos, p.nodePos()), []*ast.Node{statement}) p.parseExpectedToken(ast.KindEndOfFile) } - node := p.factory.NewSourceFile(p.sourceText, p.fileName, p.path, statements) + node := p.factory.NewSourceFile(p.opts, p.sourceText, statements) p.finishNode(node, pos) result := node.AsSourceFile() - result.ScriptKind = core.ScriptKindJSON - result.LanguageVersion = core.ScriptTargetES2015 - result.Flags |= p.sourceFlags - result.SetDiagnostics(attachFileToDiagnostics(p.diagnostics, result)) - result.SetJSDocDiagnostics(attachFileToDiagnostics(p.jsdocDiagnostics, result)) + p.finishSourceFile(result, false) return result } -func ParseIsolatedEntityName(text string, languageVersion core.ScriptTarget) *ast.EntityName { +func ParseIsolatedEntityName(text string) *ast.EntityName { p := getParser() defer putParser(p) - p.initializeState("", "", text, &core.SourceFileAffectingCompilerOptions{EmitScriptTarget: languageVersion}, nil, core.ScriptKindJS, scanner.JSDocParsingModeParseAll) + p.initializeState(ast.SourceFileParseOptions{ + JSDocParsingMode: ast.JSDocParsingModeParseAll, + }, text, core.ScriptKindJS) p.nextToken() entityName := p.parseEntityName(true, nil) return core.IfElse(p.token == ast.KindEndOfFile && len(p.diagnostics) == 0, entityName, nil) } -func (p *Parser) initializeState(fileName string, path tspath.Path, sourceText string, options *core.SourceFileAffectingCompilerOptions, metadata *ast.SourceFileMetaData, scriptKind core.ScriptKind, jsdocParsingMode scanner.JSDocParsingMode) { +func (p *Parser) initializeState(opts ast.SourceFileParseOptions, sourceText string, scriptKind core.ScriptKind) { + if scriptKind == core.ScriptKindUnknown { + panic("ScriptKind must be specified when parsing source files.") + } + if p.scanner == nil { p.scanner = scanner.NewScanner() } else { p.scanner.Reset() } - p.fileName = fileName - p.path = path + p.opts = opts p.sourceText = sourceText - p.options = options - p.metadata = metadata - p.languageVersion = options.EmitScriptTarget - p.scriptKind = ensureScriptKind(fileName, scriptKind) - p.languageVariant = ast.GetLanguageVariant(p.scriptKind) + p.scriptKind = scriptKind + p.languageVariant = getLanguageVariant(p.scriptKind) switch p.scriptKind { case core.ScriptKindJS, core.ScriptKindJSX: p.contextFlags = ast.NodeFlagsJavaScriptFile @@ -216,10 +210,9 @@ func (p *Parser) initializeState(fileName string, path tspath.Path, sourceText s } p.scanner.SetText(p.sourceText) p.scanner.SetOnError(p.scanError) - p.scanner.SetScriptTarget(p.languageVersion) p.scanner.SetLanguageVariant(p.languageVariant) p.scanner.SetScriptKind(p.scriptKind) - p.scanner.SetJSDocParsingMode(jsdocParsingMode) + p.scanner.SetJSDocParsingMode(p.opts.JSDocParsingMode) } func (p *Parser) scanError(message *diagnostics.Message, pos int, length int, args ...any) { @@ -317,7 +310,7 @@ func (p *Parser) hasPrecedingJSDocComment() bool { } func (p *Parser) parseSourceFileWorker() *ast.SourceFile { - isDeclarationFile := tspath.IsDeclarationFileName(p.fileName) + isDeclarationFile := tspath.IsDeclarationFileName(p.opts.FileName) if isDeclarationFile { p.contextFlags |= ast.NodeFlagsAmbient } @@ -327,7 +320,7 @@ func (p *Parser) parseSourceFileWorker() *ast.SourceFile { if eof.Kind != ast.KindEndOfFile { panic("Expected end of file token from scanner.") } - node := p.factory.NewSourceFile(p.sourceText, p.fileName, p.path, statements) + node := p.factory.NewSourceFile(p.opts, p.sourceText, statements) p.finishNode(node, pos) result := node.AsSourceFile() p.finishSourceFile(result, isDeclarationFile) @@ -348,9 +341,9 @@ func (p *Parser) finishSourceFile(result *ast.SourceFile, isDeclarationFile bool result.Pragmas = getCommentPragmas(&p.factory, p.sourceText) p.processPragmasIntoFields(result) result.SetDiagnostics(attachFileToDiagnostics(p.diagnostics, result)) + result.SetJSDocDiagnostics(attachFileToDiagnostics(p.jsdocDiagnostics, result)) result.CommonJSModuleIndicator = p.commonJSModuleIndicator result.IsDeclarationFile = isDeclarationFile - result.LanguageVersion = p.languageVersion result.LanguageVariant = p.languageVariant result.ScriptKind = p.scriptKind result.Flags |= p.sourceFlags @@ -359,82 +352,7 @@ func (p *Parser) finishSourceFile(result *ast.SourceFile, isDeclarationFile bool result.TextCount = p.factory.TextCount() result.IdentifierCount = p.identifierCount result.SetJSDocCache(p.jsdocCache) - result.ExternalModuleIndicator = getExternalModuleIndicator(result, p.options, p.metadata) -} - -func getExternalModuleIndicator(file *ast.SourceFile, options *core.SourceFileAffectingCompilerOptions, metadata *ast.SourceFileMetaData) *ast.Node { - // All detection kinds start by checking this. - if node := isFileProbablyExternalModule(file); node != nil { - return node - } - - switch options.EmitModuleDetectionKind { - case core.ModuleDetectionKindForce: - // All non-declaration files are modules, declaration files still do the usual isFileProbablyExternalModule - if !file.IsDeclarationFile { - return file.AsNode() - } - return nil - case core.ModuleDetectionKindLegacy: - // Files are modules if they have imports, exports, or import.meta - return nil - case core.ModuleDetectionKindAuto: - // If module is nodenext or node16, all esm format files are modules - // If jsx is react-jsx or react-jsxdev then jsx tags force module-ness - // otherwise, the presence of import or export statments (or import.meta) implies module-ness - if options.JsxEmit == core.JsxEmitReactJSX || options.JsxEmit == core.JsxEmitReactJSXDev { - if node := isFileModuleFromUsingJSXTag(file); node != nil { - return node - } - } - return isFileForcedToBeModuleByFormat(file, options, metadata) - default: - return nil - } -} - -func isFileModuleFromUsingJSXTag(file *ast.SourceFile) *ast.Node { - if file.IsDeclarationFile { - return nil - } - return walkTreeForJSXTags(file.AsNode()) -} - -// This is a somewhat unavoidable full tree walk to locate a JSX tag - `import.meta` requires the same, -// but we avoid that walk (or parts of it) if at all possible using the `PossiblyContainsImportMeta` node flag. -// Unfortunately, there's no `NodeFlag` space to do the same for JSX. -func walkTreeForJSXTags(node *ast.Node) *ast.Node { - var found *ast.Node - - var visitor func(node *ast.Node) bool - visitor = func(node *ast.Node) bool { - if found != nil { - return true - } - if node.SubtreeFacts()&ast.SubtreeContainsJsx == 0 { - return false - } - if ast.IsJsxOpeningElement(node) || ast.IsJsxFragment(node) { - found = node - return true - } - return node.ForEachChild(visitor) - } - visitor(node) - - return found -} - -var isFileForcedToBeModuleByFormatExtensions = []string{tspath.ExtensionCjs, tspath.ExtensionCts, tspath.ExtensionMjs, tspath.ExtensionMts} - -func isFileForcedToBeModuleByFormat(file *ast.SourceFile, options *core.SourceFileAffectingCompilerOptions, metadata *ast.SourceFileMetaData) *ast.Node { - // Excludes declaration files - they still require an explicit `export {}` or the like - // for back compat purposes. The only non-declaration files _not_ forced to be a module are `.js` files - // that aren't esm-mode (meaning not in a `type: module` scope). - if !file.IsDeclarationFile && (ast.GetImpliedNodeFormatForEmitWorker(file.FileName(), options.EmitModuleKind, metadata) == core.ModuleKindESNext || tspath.FileExtensionIsOneOf(file.FileName(), isFileForcedToBeModuleByFormatExtensions)) { - return file.AsNode() - } - return nil + ast.SetExternalModuleIndicator(result, p.opts.ExternalModuleIndicatorOptions) } func (p *Parser) parseToplevelStatement(i int) *ast.Node { @@ -539,7 +457,7 @@ func (p *Parser) reparseTopLevelAwait(sourceFile *ast.SourceFile) *ast.Node { } } - return p.factory.NewSourceFile(sourceFile.Text(), sourceFile.FileName(), sourceFile.Path(), p.newNodeList(sourceFile.Statements.Loc, statements)) + return p.factory.NewSourceFile(sourceFile.ParseOptions(), p.sourceText, p.newNodeList(sourceFile.Statements.Loc, statements)) } func (p *Parser) parseListIndex(kind ParsingContext, parseElement func(p *Parser, index int) *ast.Node) *ast.NodeList { @@ -6428,36 +6346,6 @@ func isReservedWord(token ast.Kind) bool { return ast.KindFirstReservedWord <= token && token <= ast.KindLastReservedWord } -func isFileProbablyExternalModule(sourceFile *ast.SourceFile) *ast.Node { - for _, statement := range sourceFile.Statements.Nodes { - if ast.IsExternalModuleIndicator(statement) { - return statement - } - } - return getImportMetaIfNecessary(sourceFile) -} - -func getImportMetaIfNecessary(sourceFile *ast.SourceFile) *ast.Node { - if sourceFile.AsNode().Flags&ast.NodeFlagsPossiblyContainsImportMeta != 0 { - return findChildNode(sourceFile.AsNode(), ast.IsImportMeta) - } - return nil -} - -func findChildNode(root *ast.Node, check func(*ast.Node) bool) *ast.Node { - var result *ast.Node - var visit func(*ast.Node) bool - visit = func(node *ast.Node) bool { - if check(node) { - result = node - return true - } - return node.ForEachChild(visit) - } - visit(root) - return result -} - func tagNamesAreEquivalent(lhs *ast.Expression, rhs *ast.Expression) bool { if lhs.Kind != rhs.Kind { return false diff --git a/internal/parser/parser_test.go b/internal/parser/parser_test.go index 0833bd4b14..4cea055265 100644 --- a/internal/parser/parser_test.go +++ b/internal/parser/parser_test.go @@ -7,10 +7,10 @@ import ( "path/filepath" "testing" + "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/collections" "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/repo" - "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/testutil/fixtures" "github.com/microsoft/typescript-go/internal/tspath" "github.com/microsoft/typescript-go/internal/vfs/osvfs" @@ -20,10 +20,10 @@ import ( func BenchmarkParse(b *testing.B) { jsdocModes := []struct { name string - mode scanner.JSDocParsingMode + mode ast.JSDocParsingMode }{ - {"tsc", scanner.JSDocParsingModeParseForTypeErrors}, - {"server", scanner.JSDocParsingModeParseAll}, + {"tsc", ast.JSDocParsingModeParseForTypeErrors}, + {"server", ast.JSDocParsingModeParseAll}, } for _, f := range fixtures.BenchFixtures { @@ -33,15 +33,20 @@ func BenchmarkParse(b *testing.B) { fileName := tspath.GetNormalizedAbsolutePath(f.Path(), "/") path := tspath.ToPath(fileName, "/", osvfs.FS().UseCaseSensitiveFileNames()) sourceText := f.ReadFile(b) - options := &core.SourceFileAffectingCompilerOptions{ - EmitScriptTarget: core.ScriptTargetESNext, - } + scriptKind := core.GetScriptKindFromFileName(fileName) for _, jsdoc := range jsdocModes { b.Run(jsdoc.name, func(b *testing.B) { jsdocMode := jsdoc.mode + + opts := ast.SourceFileParseOptions{ + FileName: fileName, + Path: path, + JSDocParsingMode: jsdocMode, + } + for b.Loop() { - ParseSourceFile(fileName, path, sourceText, options, nil, jsdocMode) + ParseSourceFile(opts, sourceText, scriptKind) } }) } @@ -106,13 +111,13 @@ func FuzzParser(f *testing.F) { sourceText, err := os.ReadFile(file.path) assert.NilError(f, err) extension := tspath.TryGetExtensionFromPath(file.path) - f.Add(extension, string(sourceText), int(core.ScriptTargetESNext), int(scanner.JSDocParsingModeParseAll)) + f.Add(extension, string(sourceText), int(core.ScriptTargetESNext), int(ast.JSDocParsingModeParseAll)) } } f.Fuzz(func(t *testing.T, extension string, sourceText string, scriptTarget_ int, jsdocParsingMode_ int) { scriptTarget := core.ScriptTarget(scriptTarget_) - jsdocParsingMode := scanner.JSDocParsingMode(jsdocParsingMode_) + jsdocParsingMode := ast.JSDocParsingMode(jsdocParsingMode_) if !extensions.Has(extension) { t.Skip() @@ -122,22 +127,19 @@ func FuzzParser(f *testing.F) { t.Skip() } - if jsdocParsingMode < scanner.JSDocParsingModeParseAll || jsdocParsingMode > scanner.JSDocParsingModeParseNone { + if jsdocParsingMode < ast.JSDocParsingModeParseAll || jsdocParsingMode > ast.JSDocParsingModeParseNone { t.Skip() } fileName := "/index" + extension path := tspath.Path(fileName) - if extension == ".json" { - ParseJSONText(fileName, path, sourceText) - return - } - - options := &core.SourceFileAffectingCompilerOptions{ - EmitScriptTarget: scriptTarget, + opts := ast.SourceFileParseOptions{ + FileName: fileName, + Path: path, + JSDocParsingMode: jsdocParsingMode, } - ParseSourceFile(fileName, path, sourceText, options, nil, jsdocParsingMode) + ParseSourceFile(opts, sourceText, core.GetScriptKindFromFileName(fileName)) }) } diff --git a/internal/parser/utilities.go b/internal/parser/utilities.go index b2487f9539..ca9715f247 100644 --- a/internal/parser/utilities.go +++ b/internal/parser/utilities.go @@ -8,20 +8,13 @@ import ( "github.com/microsoft/typescript-go/internal/scanner" ) -func ensureScriptKind(fileName string, scriptKind core.ScriptKind) core.ScriptKind { - // Using scriptKind as a condition handles both: - // - 'scriptKind' is unspecified and thus it is `undefined` - // - 'scriptKind' is set and it is `Unknown` (0) - // If the 'scriptKind' is 'undefined' or 'Unknown' then we attempt - // to get the ScriptKind from the file name. If it cannot be resolved - // from the file name then the default 'TS' script kind is returned. - if scriptKind == core.ScriptKindUnknown { - scriptKind = core.GetScriptKindFromFileName(fileName) +func getLanguageVariant(scriptKind core.ScriptKind) core.LanguageVariant { + switch scriptKind { + case core.ScriptKindTSX, core.ScriptKindJSX, core.ScriptKindJS, core.ScriptKindJSON: + // .tsx and .jsx files are treated as jsx language variant. + return core.LanguageVariantJSX } - if scriptKind == core.ScriptKindUnknown { - scriptKind = core.ScriptKindTS - } - return scriptKind + return core.LanguageVariantStandard } func tokenIsIdentifierOrKeyword(token ast.Kind) bool { diff --git a/internal/printer/namegenerator_test.go b/internal/printer/namegenerator_test.go index 220bf606e6..26d638a884 100644 --- a/internal/printer/namegenerator_test.go +++ b/internal/printer/namegenerator_test.go @@ -5,14 +5,11 @@ import ( "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/binder" - "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/printer" "github.com/microsoft/typescript-go/internal/testutil/parsetestutil" "gotest.tools/v3/assert" ) -var defaultSourceFileAffectingOptions = (&core.CompilerOptions{}).SourceFileAffecting() - func TestTempVariable1(t *testing.T) { t.Parallel() @@ -260,7 +257,7 @@ func TestGeneratedNameForIdentifier1(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("function f() {}", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0].Name() name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -277,7 +274,7 @@ func TestGeneratedNameForIdentifier2(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("function f() {}", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0].Name() name1 := ec.Factory.NewGeneratedNameForNodeEx(n, printer.AutoGenerateOptions{ @@ -297,7 +294,7 @@ func TestGeneratedNameForIdentifier3(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("function f() {}", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0].Name() name1 := ec.Factory.NewGeneratedNameForNodeEx(n, printer.AutoGenerateOptions{ @@ -319,7 +316,7 @@ func TestGeneratedNameForNamespace1(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("namespace foo { }", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) ns1 := file.Statements.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(ns1) @@ -337,7 +334,7 @@ func TestGeneratedNameForNamespace2(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("namespace foo { var foo; }", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) ns1 := file.Statements.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(ns1) @@ -355,7 +352,7 @@ func TestGeneratedNameForNamespace3(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("namespace ns1 { namespace foo { var foo; } } namespace ns2 { namespace foo { var foo; } }", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) ns1 := file.Statements.Nodes[0].AsModuleDeclaration().Body.AsModuleBlock().Statements.Nodes[0] ns2 := file.Statements.Nodes[1].AsModuleDeclaration().Body.AsModuleBlock().Statements.Nodes[0] @@ -377,7 +374,7 @@ func TestGeneratedNameForNamespace4(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("namespace ns1 { namespace foo { var foo; } } namespace ns2 { namespace foo { var foo; } }", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) ns1 := file.Statements.Nodes[0].AsModuleDeclaration().Body.AsModuleBlock().Statements.Nodes[0] ns2 := file.Statements.Nodes[1].AsModuleDeclaration().Body.AsModuleBlock().Statements.Nodes[0] @@ -404,7 +401,7 @@ func TestGeneratedNameForNodeCached(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("namespace foo { var foo; }", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) ns1 := file.Statements.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(ns1) @@ -424,7 +421,7 @@ func TestGeneratedNameForImport(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("import * as foo from 'foo'", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -441,7 +438,7 @@ func TestGeneratedNameForExport(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("export * as foo from 'foo'", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -458,7 +455,7 @@ func TestGeneratedNameForFunctionDeclaration1(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("export function f() {}", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -475,7 +472,7 @@ func TestGeneratedNameForFunctionDeclaration2(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("export default function () {}", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -492,7 +489,7 @@ func TestGeneratedNameForClassDeclaration1(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("export class C {}", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -509,7 +506,7 @@ func TestGeneratedNameForClassDeclaration2(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("export default class {}", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -526,7 +523,7 @@ func TestGeneratedNameForExportAssignment(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("export default 0", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -543,7 +540,7 @@ func TestGeneratedNameForClassExpression(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("(class {})", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0].AsExpressionStatement().Expression.AsParenthesizedExpression().Expression name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -560,7 +557,7 @@ func TestGeneratedNameForMethod1(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("class C { m() {} }", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0].AsClassDeclaration().Members.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -577,7 +574,7 @@ func TestGeneratedNameForMethod2(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("class C { 0() {} }", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0].AsClassDeclaration().Members.Nodes[0] name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -594,7 +591,7 @@ func TestGeneratedPrivateNameForMethod(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("class C { m() {} }", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0].AsClassDeclaration().Members.Nodes[0] name1 := ec.Factory.NewGeneratedPrivateNameForNode(n) @@ -611,7 +608,7 @@ func TestGeneratedNameForComputedPropertyName(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("class C { [x] }", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := file.Statements.Nodes[0].AsClassDeclaration().Members.Nodes[0].Name() name1 := ec.Factory.NewGeneratedNameForNode(n) @@ -628,7 +625,7 @@ func TestGeneratedNameForOther(t *testing.T) { ec := printer.NewEmitContext() file := parsetestutil.ParseTypeScript("class C { [x] }", false /*jsx*/) - binder.BindSourceFile(file, defaultSourceFileAffectingOptions) + binder.BindSourceFile(file) n := ec.Factory.NewObjectLiteralExpression( ec.Factory.NewNodeList([]*ast.Node{}), diff --git a/internal/printer/printer.go b/internal/printer/printer.go index 21e36e3ef3..8d68f20015 100644 --- a/internal/printer/printer.go +++ b/internal/printer/printer.go @@ -844,10 +844,9 @@ func (p *Printer) shouldAllowTrailingComma(node *ast.Node, list *ast.NodeList) b return false } - target := p.currentSourceFile.LanguageVersion switch node.Kind { case ast.KindObjectLiteralExpression: - return target >= core.ScriptTargetES5 + return true case ast.KindArrayLiteralExpression, ast.KindArrowFunction, ast.KindConstructor, @@ -874,11 +873,11 @@ func (p *Printer) shouldAllowTrailingComma(node *ast.Node, list *ast.NodeList) b case ast.KindFunctionDeclaration, ast.KindFunctionExpression, ast.KindMethodDeclaration: - return target >= core.ScriptTargetES2015 || list == node.FunctionLikeData().TypeParameters + return true case ast.KindCallExpression: - return target >= core.ScriptTargetES2015 || list == node.AsCallExpression().TypeArguments + return true case ast.KindNewExpression: - return target >= core.ScriptTargetES2015 || list == node.AsNewExpression().TypeArguments + return true } return false diff --git a/internal/printer/printer_test.go b/internal/printer/printer_test.go index 1bd17cc6c6..90fb6e2f56 100644 --- a/internal/printer/printer_test.go +++ b/internal/printer/printer_test.go @@ -28,6 +28,8 @@ func TestEmit(t *testing.T) { {title: "BooleanLiteral#1", input: `true`, output: `true;`}, {title: "BooleanLiteral#2", input: `false`, output: `false;`}, {title: "NoSubstitutionTemplateLiteral", input: "``", output: "``;"}, + {title: "NoSubstitutionTemplateLiteral#2", input: "`\n`", output: "`\n`;"}, + {title: "RegularExpressionLiteral#1", input: `/a/`, output: `/a/;`}, {title: "RegularExpressionLiteral#2", input: `/a/g`, output: `/a/g;`}, {title: "NullLiteral", input: `null`, output: `null;`}, @@ -588,7 +590,7 @@ func TestParenthesizeDecorator(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewClassDeclaration( factory.NewModifierList( @@ -621,7 +623,7 @@ func TestParenthesizeComputedPropertyName(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewClassDeclaration( nil, /*modifiers*/ @@ -658,7 +660,7 @@ func TestParenthesizeArrayLiteral(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewArrayLiteralExpression( @@ -688,7 +690,7 @@ func TestParenthesizePropertyAccess1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewPropertyAccessExpression( @@ -716,7 +718,7 @@ func TestParenthesizePropertyAccess2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewPropertyAccessExpression( @@ -743,7 +745,7 @@ func TestParenthesizePropertyAccess3(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewPropertyAccessExpression( @@ -769,7 +771,7 @@ func TestParenthesizeElementAccess1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewElementAccessExpression( @@ -797,7 +799,7 @@ func TestParenthesizeElementAccess2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewElementAccessExpression( @@ -824,7 +826,7 @@ func TestParenthesizeElementAccess3(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewElementAccessExpression( @@ -850,7 +852,7 @@ func TestParenthesizeCall1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewCallExpression( @@ -879,7 +881,7 @@ func TestParenthesizeCall2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewCallExpression( @@ -907,7 +909,7 @@ func TestParenthesizeCall3(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewCallExpression( @@ -934,7 +936,7 @@ func TestParenthesizeCall4(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewCallExpression( @@ -964,7 +966,7 @@ func TestParenthesizeNew1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewNewExpression( @@ -991,7 +993,7 @@ func TestParenthesizeNew2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewNewExpression( @@ -1018,7 +1020,7 @@ func TestParenthesizeNew3(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewNewExpression( @@ -1046,7 +1048,7 @@ func TestParenthesizeTaggedTemplate1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewTaggedTemplateExpression( @@ -1075,7 +1077,7 @@ func TestParenthesizeTaggedTemplate2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewTaggedTemplateExpression( @@ -1103,7 +1105,7 @@ func TestParenthesizeTypeAssertion1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewTypeAssertion( @@ -1132,7 +1134,7 @@ func TestParenthesizeArrowFunction1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewArrowFunction( @@ -1159,7 +1161,7 @@ func TestParenthesizeArrowFunction2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewArrowFunction( @@ -1191,7 +1193,7 @@ func TestParenthesizeDelete(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewDeleteExpression( @@ -1216,7 +1218,7 @@ func TestParenthesizeVoid(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewVoidExpression( @@ -1241,7 +1243,7 @@ func TestParenthesizeTypeOf(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewTypeOfExpression( @@ -1266,7 +1268,7 @@ func TestParenthesizeAwait(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewAwaitExpression( @@ -1392,7 +1394,7 @@ func TestParenthesizeBinary(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewBinaryExpression( @@ -1416,7 +1418,7 @@ func TestParenthesizeConditional1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewConditionalExpression( @@ -1445,7 +1447,7 @@ func TestParenthesizeConditional2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewConditionalExpression( @@ -1474,7 +1476,7 @@ func TestParenthesizeConditional3(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewConditionalExpression( @@ -1507,7 +1509,7 @@ func TestParenthesizeConditional4(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewConditionalExpression( @@ -1530,7 +1532,7 @@ func TestParenthesizeConditional5(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewConditionalExpression( @@ -1559,7 +1561,7 @@ func TestParenthesizeConditional6(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewConditionalExpression( @@ -1588,7 +1590,7 @@ func TestParenthesizeYield1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewYieldExpression( @@ -1618,7 +1620,7 @@ func TestParenthesizeSpreadElement1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewArrayLiteralExpression( @@ -1650,7 +1652,7 @@ func TestParenthesizeSpreadElement2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewCallExpression( @@ -1685,7 +1687,7 @@ func TestParenthesizeSpreadElement3(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewNewExpression( @@ -1718,7 +1720,7 @@ func TestParenthesizeExpressionWithTypeArguments(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewExpressionWithTypeArguments( @@ -1751,7 +1753,7 @@ func TestParenthesizeAsExpression(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewAsExpression( @@ -1780,7 +1782,7 @@ func TestParenthesizeSatisfiesExpression(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewSatisfiesExpression( @@ -1809,7 +1811,7 @@ func TestParenthesizeNonNullExpression(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewNonNullExpression( @@ -1835,7 +1837,7 @@ func TestParenthesizeExpressionStatement1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewObjectLiteralExpression( @@ -1856,7 +1858,7 @@ func TestParenthesizeExpressionStatement2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewFunctionExpression( @@ -1885,7 +1887,7 @@ func TestParenthesizeExpressionStatement3(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExpressionStatement( factory.NewClassExpression( @@ -1909,7 +1911,7 @@ func TestParenthesizeExpressionDefault1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExportAssignment( nil, /*modifiers*/ @@ -1937,7 +1939,7 @@ func TestParenthesizeExpressionDefault2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExportAssignment( nil, /*modifiers*/ @@ -1972,7 +1974,7 @@ func TestParenthesizeExpressionDefault3(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewExportAssignment( nil, /*modifiers*/ @@ -1998,7 +2000,7 @@ func TestParenthesizeArrayType(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2027,7 +2029,7 @@ func TestParenthesizeOptionalType(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2062,7 +2064,7 @@ func TestParenthesizeUnionType1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2095,7 +2097,7 @@ func TestParenthesizeUnionType2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2129,7 +2131,7 @@ func TestParenthesizeIntersectionType(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2163,7 +2165,7 @@ func TestParenthesizeReadonlyTypeOperator1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2193,7 +2195,7 @@ func TestParenthesizeReadonlyTypeOperator2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2219,7 +2221,7 @@ func TestParenthesizeKeyofTypeOperator(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2249,7 +2251,7 @@ func TestParenthesizeIndexedAccessType(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2279,7 +2281,7 @@ func TestParenthesizeConditionalType1(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2310,7 +2312,7 @@ func TestParenthesizeConditionalType2(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2340,7 +2342,7 @@ func TestParenthesizeConditionalType3(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList( + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList( []*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ @@ -2378,7 +2380,7 @@ func TestParenthesizeConditionalType4(t *testing.T) { t.Parallel() var factory ast.NodeFactory - file := factory.NewSourceFile("", "/file.ts", "/file.ts", factory.NewNodeList([]*ast.Node{ + file := factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", factory.NewNodeList([]*ast.Node{ factory.NewTypeAliasDeclaration( nil, /*modifiers*/ factory.NewIdentifier("_"), /*name*/ @@ -2420,7 +2422,7 @@ func TestParenthesizeConditionalType4(t *testing.T) { func TestNameGeneration(t *testing.T) { t.Parallel() ec := printer.NewEmitContext() - file := ec.Factory.NewSourceFile("", "/file.ts", "/file.ts", ec.Factory.NewNodeList([]*ast.Node{ + file := ec.Factory.NewSourceFile(ast.SourceFileParseOptions{FileName: "/file.ts", Path: "/file.ts"}, "", ec.Factory.NewNodeList([]*ast.Node{ ec.Factory.NewVariableStatement(nil, ec.Factory.NewVariableDeclarationList( ast.NodeFlagsNone, ec.Factory.NewNodeList([]*ast.Node{ diff --git a/internal/printer/utilities.go b/internal/printer/utilities.go index 6561a5a95a..9eac7f1b89 100644 --- a/internal/printer/utilities.go +++ b/internal/printer/utilities.go @@ -103,7 +103,7 @@ func escapeStringWorker(s string, quoteChar QuoteChar, flags getLiteralTextFlags escape = true } default: - if ch < '\u001f' || flags&getLiteralTextFlagsNeverAsciiEscape == 0 && ch > '\u007f' { + if ch <= '\u001f' || flags&getLiteralTextFlagsNeverAsciiEscape == 0 && ch > '\u007f' { escape = true } } diff --git a/internal/printer/utilities_test.go b/internal/printer/utilities_test.go index cbe034f22d..02281a0f8b 100644 --- a/internal/printer/utilities_test.go +++ b/internal/printer/utilities_test.go @@ -25,6 +25,7 @@ func TestEscapeString(t *testing.T) { {s: "ab'c", quoteChar: QuoteCharSingleQuote, expected: `ab\'c`}, {s: "ab\"c", quoteChar: QuoteCharSingleQuote, expected: `ab"c`}, {s: "ab`c", quoteChar: QuoteCharBacktick, expected: "ab\\`c"}, + {s: "\u001f", quoteChar: QuoteCharBacktick, expected: "\\u001F"}, } for i, rec := range data { t.Run(fmt.Sprintf("[%d] escapeString(%q, %v)", i, rec.s, rec.quoteChar), func(t *testing.T) { diff --git a/internal/project/configfileregistry.go b/internal/project/configfileregistry.go index 850c24e639..e17a52bdf6 100644 --- a/internal/project/configfileregistry.go +++ b/internal/project/configfileregistry.go @@ -3,6 +3,7 @@ package project import ( "context" "fmt" + "maps" "slices" "sync" @@ -14,7 +15,7 @@ import ( ) type ConfigFileEntry struct { - mu sync.Mutex + mu sync.RWMutex commandLine *tsoptions.ParsedCommandLine projects collections.Set[*Project] infos collections.Set[*ScriptInfo] @@ -114,6 +115,8 @@ func (c *ConfigFileRegistry) acquireConfig(fileName string, path tspath.Path, pr func (c *ConfigFileRegistry) getConfig(path tspath.Path) *tsoptions.ParsedCommandLine { entry, ok := c.ConfigFiles.Load(path) if ok { + entry.mu.RLock() + defer entry.mu.RUnlock() return entry.commandLine } return nil @@ -199,48 +202,58 @@ func (c *ConfigFileRegistry) onConfigChange(path tspath.Path, changeKind lsproto return false } entry.mu.Lock() - defer entry.mu.Unlock() - if entry.SetPendingReload(PendingReloadFull) { - for info := range entry.infos.Keys() { - delete(c.defaultProjectFinder.configFileForOpenFiles, info.Path()) - delete(c.defaultProjectFinder.configFilesAncestorForOpenFiles, info.Path()) - } - for project := range entry.projects.Keys() { - if project.configFilePath == path { - switch changeKind { - case lsproto.FileChangeTypeCreated: - fallthrough - case lsproto.FileChangeTypeChanged: - project.deferredClose = false - project.SetPendingReload(PendingReloadFull) - case lsproto.FileChangeTypeDeleted: - project.deferredClose = true - } - } else { - project.markAsDirty() + hasSet := entry.SetPendingReload(PendingReloadFull) + var infos map[*ScriptInfo]struct{} + var projects map[*Project]struct{} + if hasSet { + infos = maps.Clone(entry.infos.Keys()) + projects = maps.Clone(entry.projects.Keys()) + } + entry.mu.Unlock() + if !hasSet { + return false + } + for info := range infos { + delete(c.defaultProjectFinder.configFileForOpenFiles, info.Path()) + delete(c.defaultProjectFinder.configFilesAncestorForOpenFiles, info.Path()) + } + for project := range projects { + if project.configFilePath == path { + switch changeKind { + case lsproto.FileChangeTypeCreated: + fallthrough + case lsproto.FileChangeTypeChanged: + project.deferredClose = false + project.SetPendingReload(PendingReloadFull) + case lsproto.FileChangeTypeDeleted: + project.deferredClose = true } + } else { + project.markAsDirty() } - return true } - return false + return true } func (c *ConfigFileRegistry) tryInvokeWildCardDirectories(fileName string, path tspath.Path) { configFiles := c.ConfigFiles.ToMap() for configPath, entry := range configFiles { entry.mu.Lock() - if entry.commandLine != nil && entry.commandLine.MatchesFileName(fileName) { - if entry.SetPendingReload(PendingReloadFileNames) { - for project := range entry.projects.Keys() { - if project.configFilePath == configPath { - project.SetPendingReload(PendingReloadFileNames) - } else { - project.markAsDirty() - } + hasSet := entry.commandLine != nil && entry.commandLine.MatchesFileName(fileName) && entry.SetPendingReload(PendingReloadFileNames) + var projects map[*Project]struct{} + if hasSet { + projects = maps.Clone(entry.projects.Keys()) + } + entry.mu.Unlock() + if hasSet { + for project := range projects { + if project.configFilePath == configPath { + project.SetPendingReload(PendingReloadFileNames) + } else { + project.markAsDirty() } } } - entry.mu.Unlock() } } diff --git a/internal/project/documentregistry.go b/internal/project/documentregistry.go index dc497f320d..add8801864 100644 --- a/internal/project/documentregistry.go +++ b/internal/project/documentregistry.go @@ -7,23 +7,18 @@ import ( "github.com/microsoft/typescript-go/internal/collections" "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/parser" - "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/tspath" ) type registryKey struct { - core.SourceFileAffectingCompilerOptions - ast.SourceFileMetaData - path tspath.Path + ast.SourceFileParseOptions scriptKind core.ScriptKind } -func newRegistryKey(options *core.CompilerOptions, path tspath.Path, scriptKind core.ScriptKind, metadata *ast.SourceFileMetaData) registryKey { +func newRegistryKey(opts ast.SourceFileParseOptions, scriptKind core.ScriptKind) registryKey { return registryKey{ - SourceFileAffectingCompilerOptions: *options.SourceFileAffecting(), - SourceFileMetaData: *metadata, - path: path, - scriptKind: scriptKind, + SourceFileParseOptions: opts, + scriptKind: scriptKind, } } @@ -58,18 +53,17 @@ type DocumentRegistry struct { // LanguageService instance over time, as well as across multiple instances. Here, we still // reuse files across multiple LanguageServices, but we only reuse them across Program updates // when the files haven't changed. -func (r *DocumentRegistry) AcquireDocument(scriptInfo *ScriptInfo, compilerOptions *core.CompilerOptions, metadata *ast.SourceFileMetaData, oldSourceFile *ast.SourceFile, oldCompilerOptions *core.CompilerOptions, oldMetadata *ast.SourceFileMetaData) *ast.SourceFile { - key := newRegistryKey(compilerOptions, scriptInfo.path, scriptInfo.scriptKind, metadata) - document := r.getDocumentWorker(scriptInfo, compilerOptions, metadata, key) - if oldSourceFile != nil && oldCompilerOptions != nil { - oldKey := newRegistryKey(oldCompilerOptions, scriptInfo.path, oldSourceFile.ScriptKind, oldMetadata) - r.releaseDocumentWithKey(oldKey) +func (r *DocumentRegistry) AcquireDocument(scriptInfo *ScriptInfo, opts ast.SourceFileParseOptions, oldSourceFile *ast.SourceFile) *ast.SourceFile { + key := newRegistryKey(opts, scriptInfo.scriptKind) + document := r.getDocumentWorker(scriptInfo, key) + if oldSourceFile != nil { + r.releaseDocumentWithKey(key) } return document } -func (r *DocumentRegistry) ReleaseDocument(file *ast.SourceFile, compilerOptions *core.CompilerOptions, metadata *ast.SourceFileMetaData) { - key := newRegistryKey(compilerOptions, file.Path(), file.ScriptKind, metadata) +func (r *DocumentRegistry) ReleaseDocument(file *ast.SourceFile) { + key := newRegistryKey(file.ParseOptions(), file.ScriptKind) r.releaseDocumentWithKey(key) } @@ -87,20 +81,14 @@ func (r *DocumentRegistry) releaseDocumentWithKey(key registryKey) { } } -func (r *DocumentRegistry) getDocumentWorker( - scriptInfo *ScriptInfo, - compilerOptions *core.CompilerOptions, - metadata *ast.SourceFileMetaData, - key registryKey, -) *ast.SourceFile { - scriptTarget := core.IfElse(scriptInfo.scriptKind == core.ScriptKindJSON, core.ScriptTargetJSON, compilerOptions.GetEmitScriptTarget()) +func (r *DocumentRegistry) getDocumentWorker(scriptInfo *ScriptInfo, key registryKey) *ast.SourceFile { scriptInfoVersion := scriptInfo.Version() scriptInfoText := scriptInfo.Text() if entry, ok := r.documents.Load(key); ok { // We have an entry for this file. However, it may be for a different version of // the script snapshot. If so, update it appropriately. if entry.version != scriptInfoVersion { - sourceFile := r.getParsedFile(scriptInfo.fileName, scriptInfo.path, scriptInfoText, scriptTarget, compilerOptions, metadata) + sourceFile := r.getParsedFile(key.SourceFileParseOptions, scriptInfoText, key.scriptKind) entry.mu.Lock() defer entry.mu.Unlock() entry.sourceFile = sourceFile @@ -110,7 +98,7 @@ func (r *DocumentRegistry) getDocumentWorker( return entry.sourceFile } else { // Have never seen this file with these settings. Create a new source file for it. - sourceFile := r.getParsedFile(scriptInfo.fileName, scriptInfo.path, scriptInfoText, scriptTarget, compilerOptions, metadata) + sourceFile := r.getParsedFile(key.SourceFileParseOptions, scriptInfoText, key.scriptKind) entry, _ := r.documents.LoadOrStore(key, ®istryEntry{ sourceFile: sourceFile, refCount: 0, @@ -123,30 +111,23 @@ func (r *DocumentRegistry) getDocumentWorker( } } -func (r *DocumentRegistry) getFileVersion(file *ast.SourceFile, options *core.CompilerOptions, metadata *ast.SourceFileMetaData) int { - key := newRegistryKey(options, file.Path(), file.ScriptKind, metadata) +func (r *DocumentRegistry) getFileVersion(file *ast.SourceFile) int { + key := newRegistryKey(file.ParseOptions(), file.ScriptKind) if entry, ok := r.documents.Load(key); ok && entry.sourceFile == file { return entry.version } return -1 } -func (r *DocumentRegistry) getParsedFile( - fileName string, - path tspath.Path, - sourceText string, - scriptTarget core.ScriptTarget, - options *core.CompilerOptions, - metadata *ast.SourceFileMetaData, -) *ast.SourceFile { +func (r *DocumentRegistry) getParsedFile(opts ast.SourceFileParseOptions, text string, scriptKind core.ScriptKind) *ast.SourceFile { if r.parsedFileCache != nil { - if file := r.parsedFileCache.GetFile(fileName, path, sourceText, options.SourceFileAffecting(), metadata); file != nil { + if file := r.parsedFileCache.GetFile(opts, text, scriptKind); file != nil { return file } } - file := parser.ParseSourceFile(fileName, path, sourceText, options.SourceFileAffecting(), metadata, scanner.JSDocParsingModeParseAll) + file := parser.ParseSourceFile(opts, text, scriptKind) if r.parsedFileCache != nil { - r.parsedFileCache.CacheFile(fileName, path, sourceText, options.SourceFileAffecting(), metadata, file) + r.parsedFileCache.CacheFile(opts, text, scriptKind, file) } return file } @@ -157,19 +138,6 @@ func (r *DocumentRegistry) size() int { } type ParsedFileCache interface { - GetFile( - fileName string, - path tspath.Path, - text string, - options *core.SourceFileAffectingCompilerOptions, - metadata *ast.SourceFileMetaData, - ) *ast.SourceFile - CacheFile( - fileName string, - path tspath.Path, - text string, - options *core.SourceFileAffectingCompilerOptions, - metadata *ast.SourceFileMetaData, - sourceFile *ast.SourceFile, - ) + GetFile(opts ast.SourceFileParseOptions, text string, scriptKind core.ScriptKind) *ast.SourceFile + CacheFile(opts ast.SourceFileParseOptions, text string, scriptKind core.ScriptKind, sourceFile *ast.SourceFile) } diff --git a/internal/project/project.go b/internal/project/project.go index 4680e75279..1b5acb0243 100644 --- a/internal/project/project.go +++ b/internal/project/project.go @@ -47,8 +47,8 @@ type snapshot struct { // GetLineMap implements ls.Host. func (s *snapshot) GetLineMap(fileName string) *ls.LineMap { file := s.program.GetSourceFile(fileName) - scriptInfo := s.project.host.GetScriptInfoByPath(file.Path()) - if s.project.getFileVersion(file, s.program.Options(), s.program.GetSourceFileMetaData(file.Path())) == scriptInfo.Version() { + scriptInfo := s.project.host.DocumentStore().GetScriptInfoByPath(file.Path()) + if s.project.getFileVersion(file) == scriptInfo.Version() { return scriptInfo.LineMap() } return ls.ComputeLineStarts(file.Text()) @@ -80,11 +80,8 @@ type ProjectHost interface { NewLine() string DefaultLibraryPath() string TypingsInstaller() *TypingsInstaller - DocumentRegistry() *DocumentRegistry + DocumentStore() *DocumentStore ConfigFileRegistry() *ConfigFileRegistry - GetScriptInfoByPath(path tspath.Path) *ScriptInfo - GetOrCreateScriptInfoForFile(fileName string, path tspath.Path, scriptKind core.ScriptKind) *ScriptInfo - OnDiscoveredSymlink(info *ScriptInfo) Log(s string) PositionEncoding() lsproto.PositionEncodingKind @@ -273,20 +270,14 @@ func (p *Project) GetCompilerOptions() *core.CompilerOptions { } // GetSourceFile implements compiler.CompilerHost. -func (p *Project) GetSourceFile(fileName string, path tspath.Path, options *core.SourceFileAffectingCompilerOptions, metadata *ast.SourceFileMetaData) *ast.SourceFile { - scriptKind := p.getScriptKind(fileName) - if scriptInfo := p.getOrCreateScriptInfoAndAttachToProject(fileName, scriptKind); scriptInfo != nil { - var ( - oldSourceFile *ast.SourceFile - oldCompilerOptions *core.CompilerOptions - oldMetadata *ast.SourceFileMetaData - ) +func (p *Project) GetSourceFile(opts ast.SourceFileParseOptions) *ast.SourceFile { + scriptKind := p.getScriptKind(opts.FileName) + if scriptInfo := p.getOrCreateScriptInfoAndAttachToProject(opts.FileName, scriptKind); scriptInfo != nil { + var oldSourceFile *ast.SourceFile if p.program != nil { oldSourceFile = p.program.GetSourceFileByPath(scriptInfo.path) - oldCompilerOptions = p.program.Options() - oldMetadata = p.program.GetSourceFileMetaData(scriptInfo.path) } - return p.host.DocumentRegistry().AcquireDocument(scriptInfo, p.compilerOptions, metadata, oldSourceFile, oldCompilerOptions, oldMetadata) + return p.host.DocumentStore().documentRegistry.AcquireDocument(scriptInfo, opts, oldSourceFile) } return nil } @@ -424,7 +415,7 @@ func (p *Project) onWatchEventForNilScriptInfo(fileName string) { } func (p *Project) getOrCreateScriptInfoAndAttachToProject(fileName string, scriptKind core.ScriptKind) *ScriptInfo { - if scriptInfo := p.host.GetOrCreateScriptInfoForFile(fileName, p.toPath(fileName), scriptKind); scriptInfo != nil { + if scriptInfo := p.host.DocumentStore().getOrCreateScriptInfoWorker(fileName, p.toPath(fileName), scriptKind, false, "", false, p.host.FS()); scriptInfo != nil { scriptInfo.attachToProject(p) return scriptInfo } @@ -525,7 +516,7 @@ func (p *Project) updateGraph() (*compiler.Program, bool) { if oldProgram != nil { for _, oldSourceFile := range oldProgram.GetSourceFiles() { if p.program.GetSourceFileByPath(oldSourceFile.Path()) == nil { - p.host.DocumentRegistry().ReleaseDocument(oldSourceFile, oldProgram.Options(), oldProgram.GetSourceFileMetaData(oldSourceFile.Path())) + p.host.DocumentStore().documentRegistry.ReleaseDocument(oldSourceFile) p.detachScriptInfoIfNotInferredRoot(oldSourceFile.Path()) } } @@ -591,6 +582,7 @@ func (p *Project) updateProgram() bool { p.checkerPool = newCheckerPool(4, program, p.Log) return p.checkerPool }, + JSDocParsingMode: ast.JSDocParsingModeParseAll, }) } else { // The only change in the current program is the contents of the file named by p.dirtyFilePath. @@ -1005,13 +997,12 @@ func (p *Project) print(writeFileNames bool, writeFileExplanation bool, writeFil builder.WriteString("\n\tFiles (0) NoProgram\n") } else { sourceFiles := p.program.GetSourceFiles() - options := p.program.Options() builder.WriteString(fmt.Sprintf("\n\tFiles (%d)\n", len(sourceFiles))) if writeFileNames { for _, sourceFile := range sourceFiles { builder.WriteString("\n\t\t" + sourceFile.FileName()) if writeFileVersionAndText { - builder.WriteString(fmt.Sprintf(" %d %s", p.getFileVersion(sourceFile, options, p.program.GetSourceFileMetaData(sourceFile.Path())), sourceFile.Text())) + builder.WriteString(fmt.Sprintf(" %d %s", p.getFileVersion(sourceFile), sourceFile.Text())) } } // !!! @@ -1022,8 +1013,8 @@ func (p *Project) print(writeFileNames bool, writeFileExplanation bool, writeFil return builder.String() } -func (p *Project) getFileVersion(file *ast.SourceFile, options *core.CompilerOptions, metadata *ast.SourceFileMetaData) int { - return p.host.DocumentRegistry().getFileVersion(file, options, metadata) +func (p *Project) getFileVersion(file *ast.SourceFile) int { + return p.host.DocumentStore().documentRegistry.getFileVersion(file) } func (p *Project) Log(s string) { @@ -1037,7 +1028,7 @@ func (p *Project) Logf(format string, args ...interface{}) { func (p *Project) detachScriptInfoIfNotInferredRoot(path tspath.Path) { // We might not find the script info in case its not associated with the project any more // and project graph was not updated (eg delayed update graph in case of files changed/deleted on the disk) - if scriptInfo := p.host.GetScriptInfoByPath(path); scriptInfo != nil && + if scriptInfo := p.host.DocumentStore().GetScriptInfoByPath(path); scriptInfo != nil && (p.kind != KindInferred || !p.isRoot(scriptInfo)) { scriptInfo.detachFromProject(p) } @@ -1049,7 +1040,7 @@ func (p *Project) Close() { if p.program != nil { for _, sourceFile := range p.program.GetSourceFiles() { - p.host.DocumentRegistry().ReleaseDocument(sourceFile, p.program.Options(), p.program.GetSourceFileMetaData(sourceFile.Path())) + p.host.DocumentStore().documentRegistry.ReleaseDocument(sourceFile) // Detach script info if its not root or is root of non inferred project p.detachScriptInfoIfNotInferredRoot(sourceFile.Path()) } @@ -1065,7 +1056,7 @@ func (p *Project) Close() { if p.kind == KindInferred { // Release root script infos for inferred projects. for path := range p.rootFileNames.Keys() { - if info := p.host.GetScriptInfoByPath(path); info != nil { + if info := p.host.DocumentStore().GetScriptInfoByPath(path); info != nil { info.detachFromProject(p) } } diff --git a/internal/project/projectlifetime_test.go b/internal/project/projectlifetime_test.go index b4ba9c91bf..4abe4aeae6 100644 --- a/internal/project/projectlifetime_test.go +++ b/internal/project/projectlifetime_test.go @@ -5,17 +5,11 @@ import ( "github.com/microsoft/typescript-go/internal/bundled" "github.com/microsoft/typescript-go/internal/core" - "github.com/microsoft/typescript-go/internal/project" "github.com/microsoft/typescript-go/internal/testutil/projecttestutil" "github.com/microsoft/typescript-go/internal/tspath" "gotest.tools/v3/assert" ) -func configFileExists(t *testing.T, service *project.Service, path tspath.Path, exists bool) { - _, loaded := service.ConfigFileRegistry().ConfigFiles.Load(path) - assert.Equal(t, loaded, exists, "config file %s should exist: %v", path, exists) -} - func TestProjectLifetime(t *testing.T) { t.Parallel() if !bundled.Embedded { @@ -63,41 +57,41 @@ func TestProjectLifetime(t *testing.T) { service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "") service.OpenFile("/home/projects/TS/p2/src/index.ts", files["/home/projects/TS/p2/src/index.ts"].(string), core.ScriptKindTS, "") assert.Equal(t, len(service.Projects()), 2) - assert.Assert(t, service.ConfiguredProject(tspath.ToPath("/home/projects/TS/p1/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) - assert.Assert(t, service.ConfiguredProject(tspath.ToPath("/home/projects/TS/p2/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) + assert.Assert(t, service.ConfiguredProject(serviceToPath(service, "/home/projects/TS/p1/tsconfig.json")) != nil) + assert.Assert(t, service.ConfiguredProject(serviceToPath(service, "/home/projects/TS/p2/tsconfig.json")) != nil) assert.Equal(t, len(host.ClientMock.WatchFilesCalls()), 2) - configFileExists(t, service, tspath.ToPath("/home/projects/TS/p1/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames()), true) - configFileExists(t, service, tspath.ToPath("/home/projects/TS/p2/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames()), true) + configFileExists(t, service, serviceToPath(service, "/home/projects/TS/p1/tsconfig.json"), true) + configFileExists(t, service, serviceToPath(service, "/home/projects/TS/p2/tsconfig.json"), true) service.CloseFile("/home/projects/TS/p1/src/index.ts") service.OpenFile("/home/projects/TS/p3/src/index.ts", files["/home/projects/TS/p3/src/index.ts"].(string), core.ScriptKindTS, "") assert.Equal(t, len(service.Projects()), 2) - assert.Assert(t, service.ConfiguredProject(tspath.ToPath("/home/projects/TS/p1/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.ConfiguredProject(tspath.ToPath("/home/projects/TS/p2/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) - assert.Assert(t, service.ConfiguredProject(tspath.ToPath("/home/projects/TS/p3/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p1/src/index.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p1/src/x.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) + assert.Assert(t, service.ConfiguredProject(serviceToPath(service, "/home/projects/TS/p1/tsconfig.json")) == nil) + assert.Assert(t, service.ConfiguredProject(serviceToPath(service, "/home/projects/TS/p2/tsconfig.json")) != nil) + assert.Assert(t, service.ConfiguredProject(serviceToPath(service, "/home/projects/TS/p3/tsconfig.json")) != nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/src/index.ts")) == nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/src/x.ts")) == nil) assert.Equal(t, len(host.ClientMock.WatchFilesCalls()), 3) assert.Equal(t, len(host.ClientMock.UnwatchFilesCalls()), 1) - configFileExists(t, service, tspath.ToPath("/home/projects/TS/p1/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames()), false) - configFileExists(t, service, tspath.ToPath("/home/projects/TS/p2/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames()), true) - configFileExists(t, service, tspath.ToPath("/home/projects/TS/p3/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames()), true) + configFileExists(t, service, serviceToPath(service, "/home/projects/TS/p1/tsconfig.json"), false) + configFileExists(t, service, serviceToPath(service, "/home/projects/TS/p2/tsconfig.json"), true) + configFileExists(t, service, serviceToPath(service, "/home/projects/TS/p3/tsconfig.json"), true) service.CloseFile("/home/projects/TS/p2/src/index.ts") service.CloseFile("/home/projects/TS/p3/src/index.ts") service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "") - assert.Assert(t, service.ConfiguredProject(tspath.ToPath("/home/projects/TS/p1/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) - assert.Assert(t, service.ConfiguredProject(tspath.ToPath("/home/projects/TS/p2/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.ConfiguredProject(tspath.ToPath("/home/projects/TS/p3/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p2/src/index.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p2/src/x.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p3/src/index.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p3/src/x.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) + assert.Assert(t, service.ConfiguredProject(serviceToPath(service, "/home/projects/TS/p1/tsconfig.json")) != nil) + assert.Assert(t, service.ConfiguredProject(serviceToPath(service, "/home/projects/TS/p2/tsconfig.json")) == nil) + assert.Assert(t, service.ConfiguredProject(serviceToPath(service, "/home/projects/TS/p3/tsconfig.json")) == nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p2/src/index.ts")) == nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p2/src/x.ts")) == nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p3/src/index.ts")) == nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p3/src/x.ts")) == nil) assert.Equal(t, len(host.ClientMock.WatchFilesCalls()), 4) assert.Equal(t, len(host.ClientMock.UnwatchFilesCalls()), 3) - configFileExists(t, service, tspath.ToPath("/home/projects/TS/p1/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames()), true) - configFileExists(t, service, tspath.ToPath("/home/projects/TS/p2/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames()), false) - configFileExists(t, service, tspath.ToPath("/home/projects/TS/p3/tsconfig.json", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames()), false) + configFileExists(t, service, serviceToPath(service, "/home/projects/TS/p1/tsconfig.json"), true) + configFileExists(t, service, serviceToPath(service, "/home/projects/TS/p2/tsconfig.json"), false) + configFileExists(t, service, serviceToPath(service, "/home/projects/TS/p3/tsconfig.json"), false) }) t.Run("inferred projects", func(t *testing.T) { @@ -113,30 +107,30 @@ func TestProjectLifetime(t *testing.T) { "/home/projects/TS/p3/src/x.ts": `export const x = 1;`, "/home/projects/TS/p3/config.ts": `let x = 1, y = 2;`, } - service, host := projecttestutil.Setup(files, nil) + service, _ := projecttestutil.Setup(files, nil) assert.Equal(t, len(service.Projects()), 0) service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "/home/projects/TS/p1") service.OpenFile("/home/projects/TS/p2/src/index.ts", files["/home/projects/TS/p2/src/index.ts"].(string), core.ScriptKindTS, "/home/projects/TS/p2") assert.Equal(t, len(service.Projects()), 2) - assert.Assert(t, service.InferredProject(tspath.ToPath("/home/projects/TS/p1", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) - assert.Assert(t, service.InferredProject(tspath.ToPath("/home/projects/TS/p2", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) + assert.Assert(t, service.InferredProject(serviceToPath(service, "/home/projects/TS/p1")) != nil) + assert.Assert(t, service.InferredProject(serviceToPath(service, "/home/projects/TS/p2")) != nil) service.CloseFile("/home/projects/TS/p1/src/index.ts") service.OpenFile("/home/projects/TS/p3/src/index.ts", files["/home/projects/TS/p3/src/index.ts"].(string), core.ScriptKindTS, "/home/projects/TS/p3") assert.Equal(t, len(service.Projects()), 2) - assert.Assert(t, service.InferredProject(tspath.ToPath("/home/projects/TS/p1", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.InferredProject(tspath.ToPath("/home/projects/TS/p2", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) - assert.Assert(t, service.InferredProject(tspath.ToPath("/home/projects/TS/p3", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p1/src/index.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) + assert.Assert(t, service.InferredProject(serviceToPath(service, "/home/projects/TS/p1")) == nil) + assert.Assert(t, service.InferredProject(serviceToPath(service, "/home/projects/TS/p2")) != nil) + assert.Assert(t, service.InferredProject(serviceToPath(service, "/home/projects/TS/p3")) != nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/src/index.ts")) == nil) service.CloseFile("/home/projects/TS/p2/src/index.ts") service.CloseFile("/home/projects/TS/p3/src/index.ts") service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "/home/projects/TS/p1") - assert.Assert(t, service.InferredProject(tspath.ToPath("/home/projects/TS/p1", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) - assert.Assert(t, service.InferredProject(tspath.ToPath("/home/projects/TS/p2", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.InferredProject(tspath.ToPath("/home/projects/TS/p3", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p2/src/index.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p3/src/index.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) + assert.Assert(t, service.InferredProject(serviceToPath(service, "/home/projects/TS/p1")) != nil) + assert.Assert(t, service.InferredProject(serviceToPath(service, "/home/projects/TS/p2")) == nil) + assert.Assert(t, service.InferredProject(serviceToPath(service, "/home/projects/TS/p3")) == nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p2/src/index.ts")) == nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p3/src/index.ts")) == nil) }) t.Run("unrooted inferred projects", func(t *testing.T) { @@ -152,7 +146,7 @@ func TestProjectLifetime(t *testing.T) { "/home/projects/TS/p3/src/x.ts": `export const x = 1;`, "/home/projects/TS/p3/config.ts": `let x = 1, y = 2;`, } - service, host := projecttestutil.Setup(files, nil) + service, _ := projecttestutil.Setup(files, nil) assert.Equal(t, len(service.Projects()), 0) service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "") service.OpenFile("/home/projects/TS/p2/src/index.ts", files["/home/projects/TS/p2/src/index.ts"].(string), core.ScriptKindTS, "") @@ -163,20 +157,20 @@ func TestProjectLifetime(t *testing.T) { service.OpenFile("/home/projects/TS/p3/src/index.ts", files["/home/projects/TS/p3/src/index.ts"].(string), core.ScriptKindTS, "") assert.Equal(t, len(service.Projects()), 1) assert.Assert(t, service.InferredProject(tspath.Path("")) != nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p1/src/index.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/src/index.ts")) == nil) service.CloseFile("/home/projects/TS/p2/src/index.ts") service.CloseFile("/home/projects/TS/p3/src/index.ts") service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "") assert.Assert(t, service.InferredProject(tspath.Path("")) != nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p2/src/index.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p3/src/index.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p2/src/index.ts")) == nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p3/src/index.ts")) == nil) service.CloseFile("/home/projects/TS/p1/src/index.ts") service.OpenFile("/home/projects/TS/p2/src/index.ts", files["/home/projects/TS/p2/src/index.ts"].(string), core.ScriptKindTS, "/home/projects/TS/p2") assert.Equal(t, len(service.Projects()), 1) assert.Assert(t, service.InferredProject(tspath.Path("")) == nil) - assert.Assert(t, service.GetScriptInfoByPath(tspath.ToPath("/home/projects/TS/p1/src/index.ts", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) == nil) - assert.Assert(t, service.InferredProject(tspath.ToPath("/home/projects/TS/p2", host.GetCurrentDirectory(), host.FS().UseCaseSensitiveFileNames())) != nil) + assert.Assert(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/src/index.ts")) == nil) + assert.Assert(t, service.InferredProject(serviceToPath(service, "/home/projects/TS/p2")) != nil) }) } diff --git a/internal/project/projectreferencesprogram_test.go b/internal/project/projectreferencesprogram_test.go index 1d14f71018..6478cab201 100644 --- a/internal/project/projectreferencesprogram_test.go +++ b/internal/project/projectreferencesprogram_test.go @@ -30,9 +30,9 @@ func TestProjectReferencesProgram(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - scriptInfo := service.GetScriptInfo("/user/username/projects/myproject/dependency/fns.ts") + scriptInfo := service.DocumentStore().GetScriptInfoByPath("/user/username/projects/myproject/dependency/fns.ts") assert.Assert(t, scriptInfo != nil) - dtsScriptInfo := service.GetScriptInfo("/user/username/projects/myproject/decls/fns.d.ts") + dtsScriptInfo := service.DocumentStore().GetScriptInfoByPath("/user/username/projects/myproject/decls/fns.d.ts") assert.Assert(t, dtsScriptInfo == nil) file := p.CurrentProgram().GetSourceFileByPath(tspath.Path("/user/username/projects/myproject/dependency/fns.ts")) assert.Assert(t, file != nil) @@ -56,9 +56,9 @@ func TestProjectReferencesProgram(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - scriptInfo := service.GetScriptInfo("/user/username/projects/myproject/dependency/fns.ts") + scriptInfo := service.DocumentStore().GetScriptInfoByPath("/user/username/projects/myproject/dependency/fns.ts") assert.Assert(t, scriptInfo == nil) - dtsScriptInfo := service.GetScriptInfo("/user/username/projects/myproject/decls/fns.d.ts") + dtsScriptInfo := service.DocumentStore().GetScriptInfoByPath("/user/username/projects/myproject/decls/fns.d.ts") assert.Assert(t, dtsScriptInfo != nil) file := p.CurrentProgram().GetSourceFileByPath(tspath.Path("/user/username/projects/myproject/dependency/fns.ts")) assert.Assert(t, file == nil) @@ -75,9 +75,9 @@ func TestProjectReferencesProgram(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - fooInfo := service.GetScriptInfo(bFoo) + fooInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bFoo)) assert.Assert(t, fooInfo != nil) - barInfo := service.GetScriptInfo(bBar) + barInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bBar)) assert.Assert(t, barInfo != nil) fooFile := p.CurrentProgram().GetSourceFile(bFoo) assert.Assert(t, fooFile != nil) @@ -94,9 +94,9 @@ func TestProjectReferencesProgram(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - fooInfo := service.GetScriptInfo(bFoo) + fooInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bFoo)) assert.Assert(t, fooInfo != nil) - barInfo := service.GetScriptInfo(bBar) + barInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bBar)) assert.Assert(t, barInfo != nil) fooFile := p.CurrentProgram().GetSourceFile(bFoo) assert.Assert(t, fooFile != nil) @@ -113,9 +113,9 @@ func TestProjectReferencesProgram(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - fooInfo := service.GetScriptInfo(bFoo) + fooInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bFoo)) assert.Assert(t, fooInfo != nil) - barInfo := service.GetScriptInfo(bBar) + barInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bBar)) assert.Assert(t, barInfo != nil) fooFile := p.CurrentProgram().GetSourceFile(bFoo) assert.Assert(t, fooFile != nil) @@ -132,9 +132,9 @@ func TestProjectReferencesProgram(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - fooInfo := service.GetScriptInfo(bFoo) + fooInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bFoo)) assert.Assert(t, fooInfo != nil) - barInfo := service.GetScriptInfo(bBar) + barInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bBar)) assert.Assert(t, barInfo != nil) fooFile := p.CurrentProgram().GetSourceFile(bFoo) assert.Assert(t, fooFile != nil) @@ -151,9 +151,9 @@ func TestProjectReferencesProgram(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - fooInfo := service.GetScriptInfo(bFoo) + fooInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bFoo)) assert.Assert(t, fooInfo != nil) - barInfo := service.GetScriptInfo(bBar) + barInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bBar)) assert.Assert(t, barInfo != nil) fooFile := p.CurrentProgram().GetSourceFile(bFoo) assert.Assert(t, fooFile != nil) @@ -170,9 +170,9 @@ func TestProjectReferencesProgram(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - fooInfo := service.GetScriptInfo(bFoo) + fooInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bFoo)) assert.Assert(t, fooInfo != nil) - barInfo := service.GetScriptInfo(bBar) + barInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bBar)) assert.Assert(t, barInfo != nil) fooFile := p.CurrentProgram().GetSourceFile(bFoo) assert.Assert(t, fooFile != nil) @@ -189,9 +189,9 @@ func TestProjectReferencesProgram(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - fooInfo := service.GetScriptInfo(bFoo) + fooInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bFoo)) assert.Assert(t, fooInfo != nil) - barInfo := service.GetScriptInfo(bBar) + barInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bBar)) assert.Assert(t, barInfo != nil) fooFile := p.CurrentProgram().GetSourceFile(bFoo) assert.Assert(t, fooFile != nil) @@ -208,9 +208,9 @@ func TestProjectReferencesProgram(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - fooInfo := service.GetScriptInfo(bFoo) + fooInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bFoo)) assert.Assert(t, fooInfo != nil) - barInfo := service.GetScriptInfo(bBar) + barInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, bBar)) assert.Assert(t, barInfo != nil) fooFile := p.CurrentProgram().GetSourceFile(bFoo) assert.Assert(t, fooFile != nil) diff --git a/internal/project/scriptinfo.go b/internal/project/scriptinfo.go index f54c672772..fb3ad5fc69 100644 --- a/internal/project/scriptinfo.go +++ b/internal/project/scriptinfo.go @@ -184,7 +184,7 @@ func (s *ScriptInfo) ensureRealpath(project *Project) { realpath := project.FS().Realpath(string(s.path)) s.realpath = project.toPath(realpath) if s.realpath != s.path { - project.host.OnDiscoveredSymlink(s) + project.host.DocumentStore().AddRealpathMapping(s) } } } diff --git a/internal/project/service.go b/internal/project/service.go index 7f3e77def3..b4a5249cd1 100644 --- a/internal/project/service.go +++ b/internal/project/service.go @@ -94,7 +94,7 @@ func NewService(host ServiceHost, options ServiceOptions) *Service { defaultProjectFinder: service.defaultProjectFinder, } service.converters = ls.NewConverters(options.PositionEncoding, func(fileName string) *ls.LineMap { - return service.GetScriptInfo(fileName).LineMap() + return service.documentStore.GetScriptInfoByPath(service.toPath(fileName)).LineMap() }) return service @@ -143,9 +143,9 @@ func (s *Service) TypingsInstaller() *TypingsInstaller { return s.typingsInstaller } -// DocumentRegistry implements ProjectHost. -func (s *Service) DocumentRegistry() *DocumentRegistry { - return s.documentStore.DocumentRegistry() +// DocumentStore implements ProjectHost. +func (s *Service) DocumentStore() *DocumentStore { + return s.documentStore } // ConfigFileRegistry implements ProjectHost. @@ -158,11 +158,6 @@ func (s *Service) FS() vfs.FS { return s.host.FS() } -// GetOrCreateScriptInfoForFile implements ProjectHost. -func (s *Service) GetOrCreateScriptInfoForFile(fileName string, path tspath.Path, scriptKind core.ScriptKind) *ScriptInfo { - return s.getOrCreateScriptInfoNotOpenedByClient(fileName, path, scriptKind) -} - // PositionEncoding implements ProjectHost. func (s *Service) PositionEncoding() lsproto.PositionEncodingKind { return s.options.PositionEncoding @@ -209,14 +204,6 @@ func (s *Service) InferredProject(rootPath tspath.Path) *Project { return nil } -func (s *Service) GetScriptInfo(fileName string) *ScriptInfo { - return s.GetScriptInfoByPath(s.toPath(fileName)) -} - -func (s *Service) GetScriptInfoByPath(path tspath.Path) *ScriptInfo { - return s.documentStore.GetScriptInfoByPath(path) -} - func (s *Service) isOpenFile(info *ScriptInfo) bool { _, ok := s.openFiles[info.path] return ok @@ -224,8 +211,9 @@ func (s *Service) isOpenFile(info *ScriptInfo) bool { func (s *Service) OpenFile(fileName string, fileContent string, scriptKind core.ScriptKind, projectRootPath string) { path := s.toPath(fileName) - existing := s.GetScriptInfoByPath(path) - info := s.getOrCreateOpenScriptInfo(fileName, path, fileContent, scriptKind, projectRootPath) + existing := s.documentStore.GetScriptInfoByPath(path) + info := s.documentStore.getOrCreateScriptInfoWorker(fileName, path, scriptKind, true /*openedByClient*/, fileContent, true /*deferredDeleteOk*/, s.FS()) + s.openFiles[info.path] = projectRootPath if existing == nil && info != nil && !info.isDynamic { // Invoke wild card directory watcher to ensure that the file presence is reflected s.configFileRegistry.tryInvokeWildCardDirectories(fileName, info.path) @@ -239,7 +227,7 @@ func (s *Service) OpenFile(fileName string, fileContent string, scriptKind core. func (s *Service) ChangeFile(document lsproto.VersionedTextDocumentIdentifier, changes []lsproto.TextDocumentContentChangeEvent) error { fileName := ls.DocumentURIToFileName(document.Uri) path := s.toPath(fileName) - scriptInfo := s.GetScriptInfoByPath(path) + scriptInfo := s.documentStore.GetScriptInfoByPath(path) if scriptInfo == nil { return fmt.Errorf("file %s not found", fileName) } @@ -263,8 +251,8 @@ func (s *Service) ChangeFile(document lsproto.VersionedTextDocumentIdentifier, c } func (s *Service) CloseFile(fileName string) { - if info := s.GetScriptInfoByPath(s.toPath(fileName)); info != nil { - fileExists := !info.isDynamic && s.host.FS().FileExists(info.fileName) + if info := s.documentStore.GetScriptInfoByPath(s.toPath(fileName)); info != nil { + fileExists := !info.isDynamic && s.FS().FileExists(info.fileName) info.close(fileExists) delete(s.openFiles, info.path) delete(s.defaultProjectFinder.configFileForOpenFiles, info.path) @@ -277,7 +265,7 @@ func (s *Service) CloseFile(fileName string) { } func (s *Service) MarkFileSaved(fileName string, text string) { - if info := s.GetScriptInfoByPath(s.toPath(fileName)); info != nil { + if info := s.documentStore.GetScriptInfoByPath(s.toPath(fileName)); info != nil { info.SetTextFromDisk(text) } } @@ -289,13 +277,13 @@ func (s *Service) EnsureDefaultProjectForURI(url lsproto.DocumentUri) *Project { func (s *Service) EnsureDefaultProjectForFile(fileName string) (*ScriptInfo, *Project) { path := s.toPath(fileName) - if info := s.GetScriptInfoByPath(path); info != nil && !info.isOrphan() { + if info := s.documentStore.GetScriptInfoByPath(path); info != nil && !info.isOrphan() { if project := s.getDefaultProjectForScript(info); project != nil { return info, project } } s.ensureProjectStructureUpToDate() - if info := s.GetScriptInfoByPath(path); info != nil { + if info := s.documentStore.GetScriptInfoByPath(path); info != nil { if project := s.getDefaultProjectForScript(info); project != nil { return info, project } @@ -307,11 +295,6 @@ func (s *Service) Close() { s.options.Logger.Close() } -// SourceFileCount should only be used for testing. -func (s *Service) SourceFileCount() int { - return s.documentStore.SourceFileCount() -} - func (s *Service) OnWatchedFilesChanged(ctx context.Context, changes []*lsproto.FileEvent) error { s.projectsMu.RLock() defer s.projectsMu.RUnlock() @@ -325,7 +308,7 @@ func (s *Service) OnWatchedFilesChanged(ctx context.Context, changes []*lsproto. } else if _, ok := s.openFiles[path]; ok { // open file continue - } else if info := s.GetScriptInfoByPath(path); info != nil { + } else if info := s.documentStore.GetScriptInfoByPath(path); info != nil { // closed existing file if change.Type == lsproto.FileChangeTypeDeleted { s.handleDeletedFile(info, true /*deferredDelete*/) @@ -376,7 +359,7 @@ func (s *Service) ensureProjectForOpenFiles() { s.printProjects() for filePath, projectRootPath := range s.openFiles { - info := s.GetScriptInfoByPath(filePath) + info := s.documentStore.GetScriptInfoByPath(filePath) if info == nil { panic("scriptInfo not found for open file") } @@ -432,10 +415,6 @@ func (s *Service) deleteScriptInfoLocked(info *ScriptInfo) { // !!! closeSourceMapFileWatcher } -func (s *Service) OnDiscoveredSymlink(info *ScriptInfo) { - s.documentStore.AddRealpathMapping(info) -} - func (s *Service) updateProjectGraphs(projects []*Project, clearSourceMapperCache bool) { for _, project := range projects { if clearSourceMapperCache { @@ -445,20 +424,6 @@ func (s *Service) updateProjectGraphs(projects []*Project, clearSourceMapperCach } } -func (s *Service) getOrCreateScriptInfoNotOpenedByClient(fileName string, path tspath.Path, scriptKind core.ScriptKind) *ScriptInfo { - return s.getOrCreateScriptInfoWorker(fileName, path, scriptKind, false /*openedByClient*/, "" /*fileContent*/, false /*deferredDeleteOk*/) -} - -func (s *Service) getOrCreateOpenScriptInfo(fileName string, path tspath.Path, fileContent string, scriptKind core.ScriptKind, projectRootPath string) *ScriptInfo { - info := s.getOrCreateScriptInfoWorker(fileName, path, scriptKind, true /*openedByClient*/, fileContent, true /*deferredDeleteOk*/) - s.openFiles[info.path] = projectRootPath - return info -} - -func (s *Service) getOrCreateScriptInfoWorker(fileName string, path tspath.Path, scriptKind core.ScriptKind, openedByClient bool, fileContent string, deferredDeleteOk bool) *ScriptInfo { - return s.documentStore.getOrCreateScriptInfoWorker(fileName, path, scriptKind, openedByClient, fileContent, deferredDeleteOk, s.host.FS()) -} - func (s *Service) createConfiguredProject(configFileName string, configFilePath tspath.Path) *Project { s.projectsMu.Lock() defer s.projectsMu.Unlock() @@ -551,7 +516,7 @@ func (s *Service) cleanupConfiguredProjects(openInfo *ScriptInfo, retainedByOpen if path == openInfo.path { continue } - info := s.GetScriptInfoByPath(path) + info := s.documentStore.GetScriptInfoByPath(path) // We want to retain the projects for open file if they are pending updates so deferredClosed projects are ok result := s.defaultProjectFinder.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo( info, @@ -636,7 +601,7 @@ func (s *Service) getOrCreateInferredProjectForProjectRootPath(info *ScriptInfo, if projectRootDirectory != "" { return s.createInferredProject(projectRootDirectory, s.toPath(projectRootDirectory)) } - return s.createInferredProject(s.host.GetCurrentDirectory(), "") + return s.createInferredProject(s.GetCurrentDirectory(), "") } func (s *Service) getInferredProjectForProjectRootPath(info *ScriptInfo, projectRootDirectory string) *Project { @@ -764,7 +729,7 @@ func (s *Service) createInferredProject(currentDirectory string, projectRootPath } func (s *Service) toPath(fileName string) tspath.Path { - return tspath.ToPath(fileName, s.host.GetCurrentDirectory(), s.host.FS().UseCaseSensitiveFileNames()) + return tspath.ToPath(fileName, s.GetCurrentDirectory(), s.FS().UseCaseSensitiveFileNames()) } func (s *Service) printProjects() { @@ -786,7 +751,7 @@ func (s *Service) printProjects() { builder.WriteString("Open files:") for path, projectRootPath := range s.openFiles { - info := s.GetScriptInfoByPath(path) + info := s.documentStore.GetScriptInfoByPath(path) builder.WriteString(fmt.Sprintf("\n\tFileName: %s ProjectRootPath: %s", info.fileName, projectRootPath)) builder.WriteString("\n\t\tProjects: " + strings.Join(core.Map(info.ContainingProjects(), func(project *Project) string { return project.name }), ", ")) } diff --git a/internal/project/service_test.go b/internal/project/service_test.go index ae8ec4d525..3e39e14096 100644 --- a/internal/project/service_test.go +++ b/internal/project/service_test.go @@ -43,7 +43,7 @@ func TestService(t *testing.T) { assert.Equal(t, len(service.Projects()), 1) p := service.Projects()[0] assert.Equal(t, p.Kind(), project.KindConfigured) - xScriptInfo := service.GetScriptInfo("/home/projects/TS/p1/src/x.ts") + xScriptInfo := service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/src/x.ts")) assert.Assert(t, xScriptInfo != nil) assert.Equal(t, xScriptInfo.Text(), "export const x = 1;") }) @@ -167,7 +167,7 @@ func TestService(t *testing.T) { files["/home/projects/TS/p1/y.ts"] = `export const y = 2;` service, _ := projecttestutil.Setup(files, nil) service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "") - assert.Check(t, service.GetScriptInfo("/home/projects/TS/p1/y.ts") == nil) + assert.Check(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/y.ts")) == nil) // Avoid using initial file set after this point files = nil //nolint:ineffassign @@ -279,22 +279,22 @@ func TestService(t *testing.T) { service, host := projecttestutil.Setup(files, nil) service.OpenFile("/home/projects/TS/p1/src/x.ts", files["/home/projects/TS/p1/src/x.ts"].(string), core.ScriptKindTS, "") service.OpenFile("/home/projects/TS/p1/src/index.ts", files["/home/projects/TS/p1/src/index.ts"].(string), core.ScriptKindTS, "") - assert.Equal(t, service.SourceFileCount(), 2) + assert.Equal(t, service.DocumentStore().SourceFileCount(), 2) // Avoid using initial file set after this point files = nil //nolint:ineffassign assert.NilError(t, host.FS().Remove("/home/projects/TS/p1/src/x.ts")) service.CloseFile("/home/projects/TS/p1/src/x.ts") - assert.Check(t, service.GetScriptInfo("/home/projects/TS/p1/src/x.ts") == nil) + assert.Check(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/src/x.ts")) == nil) assert.Check(t, service.Projects()[0].GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts") == nil) - assert.Equal(t, service.SourceFileCount(), 1) + assert.Equal(t, service.DocumentStore().SourceFileCount(), 1) err := host.FS().WriteFile("/home/projects/TS/p1/src/x.ts", "", false) assert.NilError(t, err) service.OpenFile("/home/projects/TS/p1/src/x.ts", "", core.ScriptKindTS, "") - assert.Equal(t, service.GetScriptInfo("/home/projects/TS/p1/src/x.ts").Text(), "") + assert.Equal(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/src/x.ts")).Text(), "") assert.Check(t, service.Projects()[0].GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts") != nil) assert.Equal(t, service.Projects()[0].GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts").Text(), "") }) @@ -316,14 +316,14 @@ func TestService(t *testing.T) { assert.NilError(t, err) service.CloseFile("/home/projects/TS/p1/src/x.ts") - assert.Check(t, service.GetScriptInfo("/home/projects/TS/p1/src/x.ts") == nil) + assert.Check(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/src/x.ts")) == nil) assert.Check(t, service.Projects()[0].GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts") == nil) err = host.FS().WriteFile("/home/projects/TS/p1/src/x.ts", "", false) assert.NilError(t, err) service.OpenFile("/home/projects/TS/p1/src/x.ts", "", core.ScriptKindTS, "") - assert.Equal(t, service.GetScriptInfo("/home/projects/TS/p1/src/x.ts").Text(), "") + assert.Equal(t, service.DocumentStore().GetScriptInfoByPath(serviceToPath(service, "/home/projects/TS/p1/src/x.ts")).Text(), "") assert.Check(t, service.Projects()[0].GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts") != nil) assert.Equal(t, service.Projects()[0].GetProgram().GetSourceFile("/home/projects/TS/p1/src/x.ts").Text(), "") }) diff --git a/internal/project/util_test.go b/internal/project/util_test.go new file mode 100644 index 0000000000..9dd319853f --- /dev/null +++ b/internal/project/util_test.go @@ -0,0 +1,19 @@ +package project_test + +import ( + "testing" + + "github.com/microsoft/typescript-go/internal/project" + "github.com/microsoft/typescript-go/internal/tspath" + "gotest.tools/v3/assert" +) + +func configFileExists(t *testing.T, service *project.Service, path tspath.Path, exists bool) { + t.Helper() + _, loaded := service.ConfigFileRegistry().ConfigFiles.Load(path) + assert.Equal(t, loaded, exists, "config file %s should exist: %v", path, exists) +} + +func serviceToPath(service *project.Service, fileName string) tspath.Path { + return tspath.ToPath(fileName, service.GetCurrentDirectory(), service.FS().UseCaseSensitiveFileNames()) +} diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 336c1ba826..967c44f10f 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -186,34 +186,6 @@ var textToToken = func() map[string]ast.Kind { return m }() -// As per ECMAScript Language Specification 5th Edition, Section 7.6: ISyntaxToken Names and Identifiers -// IdentifierStart :: -// -// Can contain Unicode 6.2 categories: -// Uppercase letter (Lu), -// Lowercase letter (Ll), -// Titlecase letter (Lt), -// Modifier letter (Lm), -// Other letter (Lo), or -// Letter number (Nl). -// -// IdentifierPart :: -// -// Can contain IdentifierStart + Unicode 6.2 categories: -// Non-spacing mark (Mn), -// Combining spacing mark (Mc), -// Decimal number (Nd), -// Connector punctuation (Pc), -// , or -// . -// -// Codepoint ranges for ES5 Identifiers are extracted from the Unicode 6.2 specification at: -// http://www.unicode.org/Public/6.2.0/ucd/UnicodeData.txt -var ( - unicodeES5IdentifierStart = []rune{170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500} - unicodeES5IdentifierPart = []rune{170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500} -) - // Generated by scripts/regenerate-unicode-identifier-parts.mjs on node v22.1.0 with unicode 15.1 // based on http://www.unicode.org/reports/tr31/ and https://www.ecma-international.org/ecma-262/6.0/#sec-names-and-keywords // unicodeESNextIdentifierStart corresponds to the ID_Start and Other_ID_Start property, and @@ -223,15 +195,6 @@ var ( unicodeESNextIdentifierPart = []rune{48, 57, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 183, 183, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 895, 895, 902, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1519, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2045, 2045, 2048, 2093, 2112, 2139, 2144, 2154, 2160, 2183, 2185, 2190, 2200, 2273, 2275, 2403, 2406, 2415, 2417, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2556, 2556, 2558, 2558, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2809, 2815, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3072, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3132, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3162, 3165, 3165, 3168, 3171, 3174, 3183, 3200, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3293, 3294, 3296, 3299, 3302, 3311, 3313, 3315, 3328, 3340, 3342, 3344, 3346, 3396, 3398, 3400, 3402, 3406, 3412, 3415, 3423, 3427, 3430, 3439, 3450, 3455, 3457, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3773, 3776, 3780, 3782, 3782, 3784, 3790, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4969, 4977, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5909, 5919, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6159, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6430, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6832, 6845, 6847, 6862, 6912, 6988, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7376, 7378, 7380, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12447, 12449, 12543, 12549, 12591, 12593, 12686, 12704, 12735, 12784, 12799, 13312, 19903, 19968, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42737, 42775, 42783, 42786, 42888, 42891, 42954, 42960, 42961, 42963, 42963, 42965, 42969, 42994, 43047, 43052, 43052, 43072, 43123, 43136, 43205, 43216, 43225, 43232, 43255, 43259, 43259, 43261, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43488, 43518, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43881, 43888, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65071, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66045, 66045, 66176, 66204, 66208, 66256, 66272, 66272, 66304, 66335, 66349, 66378, 66384, 66426, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66928, 66938, 66940, 66954, 66956, 66962, 66964, 66965, 66967, 66977, 66979, 66993, 66995, 67001, 67003, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67461, 67463, 67504, 67506, 67514, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68099, 68101, 68102, 68108, 68115, 68117, 68119, 68121, 68149, 68152, 68154, 68159, 68159, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68326, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68903, 68912, 68921, 69248, 69289, 69291, 69292, 69296, 69297, 69373, 69404, 69415, 69415, 69424, 69456, 69488, 69509, 69552, 69572, 69600, 69622, 69632, 69702, 69734, 69749, 69759, 69818, 69826, 69826, 69840, 69864, 69872, 69881, 69888, 69940, 69942, 69951, 69956, 69959, 69968, 70003, 70006, 70006, 70016, 70084, 70089, 70092, 70094, 70106, 70108, 70108, 70144, 70161, 70163, 70199, 70206, 70209, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70378, 70384, 70393, 70400, 70403, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70459, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70730, 70736, 70745, 70750, 70753, 70784, 70853, 70855, 70855, 70864, 70873, 71040, 71093, 71096, 71104, 71128, 71133, 71168, 71232, 71236, 71236, 71248, 71257, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71481, 71488, 71494, 71680, 71738, 71840, 71913, 71935, 71942, 71945, 71945, 71948, 71955, 71957, 71958, 71960, 71989, 71991, 71992, 71995, 72003, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72161, 72163, 72164, 72192, 72254, 72263, 72263, 72272, 72345, 72349, 72349, 72368, 72440, 72704, 72712, 72714, 72758, 72760, 72768, 72784, 72793, 72818, 72847, 72850, 72871, 72873, 72886, 72960, 72966, 72968, 72969, 72971, 73014, 73018, 73018, 73020, 73021, 73023, 73031, 73040, 73049, 73056, 73061, 73063, 73064, 73066, 73102, 73104, 73105, 73107, 73112, 73120, 73129, 73440, 73462, 73472, 73488, 73490, 73530, 73534, 73538, 73552, 73561, 73648, 73648, 73728, 74649, 74752, 74862, 74880, 75075, 77712, 77808, 77824, 78895, 78912, 78933, 82944, 83526, 92160, 92728, 92736, 92766, 92768, 92777, 92784, 92862, 92864, 92873, 92880, 92909, 92912, 92916, 92928, 92982, 92992, 92995, 93008, 93017, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94177, 94179, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113821, 113822, 118528, 118573, 118576, 118598, 119141, 119145, 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, 122624, 122654, 122661, 122666, 122880, 122886, 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, 122928, 122989, 123023, 123023, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, 123536, 123566, 123584, 123641, 124112, 124153, 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 130032, 130041, 131072, 173791, 173824, 177977, 177984, 178205, 178208, 183969, 183984, 191456, 191472, 192093, 194560, 195101, 196608, 201546, 201552, 205743, 917760, 917999} ) -type JSDocParsingMode int - -const ( - JSDocParsingModeParseAll JSDocParsingMode = iota - JSDocParsingModeParseNone - JSDocParsingModeParseForTypeErrors - JSDocParsingModeParseForTypeInfo -) - type ScannerState struct { pos int // Current position in text (and ending position of current token) fullStartPos int // Starting position of current token including preceding whitespace @@ -245,11 +208,10 @@ type ScannerState struct { type Scanner struct { text string - languageVersion core.ScriptTarget languageVariant core.LanguageVariant onError ErrorCallback skipTrivia bool - JSDocParsingMode JSDocParsingMode + JSDocParsingMode ast.JSDocParsingMode scriptKind core.ScriptKind ScannerState } @@ -258,7 +220,7 @@ func defaultScanner() Scanner { // Using a function rather than a global is intentional; this function is // inlined as pure code (zeroing + moves), whereas a global requires write // barriers since the memory is mutable. - return Scanner{languageVersion: core.ScriptTargetLatest, skipTrivia: true} + return Scanner{skipTrivia: true} } func NewScanner() *Scanner { @@ -375,15 +337,11 @@ func (s *Scanner) SetOnError(errorCallback ErrorCallback) { s.onError = errorCallback } -func (s *Scanner) SetScriptTarget(scriptTarget core.ScriptTarget) { - s.languageVersion = scriptTarget -} - func (s *Scanner) SetScriptKind(scriptKind core.ScriptKind) { s.scriptKind = scriptKind } -func (s *Scanner) SetJSDocParsingMode(kind JSDocParsingMode) { +func (s *Scanner) SetJSDocParsingMode(kind ast.JSDocParsingMode) { s.JSDocParsingMode = kind } @@ -425,16 +383,16 @@ func (s *Scanner) charAndSize() (rune, int) { func (s *Scanner) shouldParseJSDoc() bool { switch s.JSDocParsingMode { - case JSDocParsingModeParseAll: + case ast.JSDocParsingModeParseAll: return true - case JSDocParsingModeParseNone: + case ast.JSDocParsingModeParseNone: return false } if s.scriptKind != core.ScriptKindTS && s.scriptKind != core.ScriptKindTSX { // If outside of TS, we need JSDoc to get any type info. return true } - if s.JSDocParsingMode == JSDocParsingModeParseForTypeInfo { + if s.JSDocParsingMode == ast.JSDocParsingModeParseForTypeInfo { // If we're in TS, but we don't need to produce reliable errors, // we don't need to parse to find @see or @link. return false @@ -846,7 +804,7 @@ func (s *Scanner) Scan() ast.Kind { s.token = ast.KindAtToken case '\\': cp := s.peekUnicodeEscape() - if cp >= 0 && IsIdentifierStart(cp, s.languageVersion) { + if cp >= 0 && IsIdentifierStart(cp) { s.tokenValue = string(s.scanUnicodeEscape(true)) + s.scanIdentifierParts() s.token = GetIdentifierToken(s.tokenValue) } else { @@ -869,7 +827,7 @@ func (s *Scanner) Scan() ast.Kind { if s.charAt(1) == '\\' { s.pos++ cp := s.peekUnicodeEscape() - if cp >= 0 && IsIdentifierStart(cp, s.languageVersion) { + if cp >= 0 && IsIdentifierStart(cp) { s.tokenValue = "#" + string(s.scanUnicodeEscape(true)) + s.scanIdentifierParts() s.token = ast.KindPrivateIdentifier break @@ -1104,7 +1062,7 @@ func (s *Scanner) ReScanSlashToken() ast.Kind { s.pos++ for { ch, size := s.charAndSize() - if size == 0 || !IsIdentifierPart(ch, s.languageVersion) { + if size == 0 || !IsIdentifierPart(ch) { break } s.pos += size @@ -1371,7 +1329,7 @@ func (s *Scanner) ScanJSDocToken() ast.Kind { case '\\': s.pos-- cp := s.peekUnicodeEscape() - if cp >= 0 && IsIdentifierStart(cp, s.languageVersion) { + if cp >= 0 && IsIdentifierStart(cp) { s.tokenValue = string(s.scanUnicodeEscape(true)) + s.scanIdentifierParts() s.token = GetIdentifierToken(s.tokenValue) } else { @@ -1380,14 +1338,14 @@ func (s *Scanner) ScanJSDocToken() ast.Kind { return s.token } - if IsIdentifierStart(ch, s.languageVersion) { + if IsIdentifierStart(ch) { char := ch for { if s.pos >= len(s.text) { break } char, size = s.charAndSize() - if !IsIdentifierPart(char, s.languageVersion) && char != '-' { + if !IsIdentifierPart(char) && char != '-' { break } s.pos += size @@ -1424,11 +1382,11 @@ func (s *Scanner) scanIdentifier(prefixLength int) bool { s.pos = start + prefixLength } ch, size := s.charAndSize() - if IsIdentifierStart(ch, s.languageVersion) { + if IsIdentifierStart(ch) { for { s.pos += size ch, size = s.charAndSize() - if !IsIdentifierPart(ch, s.languageVersion) { + if !IsIdentifierPart(ch) { break } } @@ -1446,13 +1404,13 @@ func (s *Scanner) scanIdentifierParts() string { start := s.pos for { ch, size := s.charAndSize() - if IsIdentifierPart(ch, s.languageVersion) { + if IsIdentifierPart(ch) { s.pos += size continue } if ch == '\\' { escaped := s.peekUnicodeEscape() - if escaped >= 0 && IsIdentifierPart(escaped, s.languageVersion) { + if escaped >= 0 && IsIdentifierPart(escaped) { sb.WriteString(s.text[start:s.pos]) sb.WriteRune(s.scanUnicodeEscape(true)) start = s.pos @@ -1653,7 +1611,7 @@ func (s *Scanner) scanEscapeSequence(flags EscapeSequenceScanningFlags) string { // case CharacterCodes.paragraphSeparator !!! return "" default: - if flags&EscapeSequenceScanningFlagsAnyUnicodeMode != 0 || flags&EscapeSequenceScanningFlagsRegularExpression != 0 && flags&EscapeSequenceScanningFlagsAnnexB == 0 && IsIdentifierPart(ch, s.languageVersion) { + if flags&EscapeSequenceScanningFlagsAnyUnicodeMode != 0 || flags&EscapeSequenceScanningFlagsRegularExpression != 0 && flags&EscapeSequenceScanningFlagsAnnexB == 0 && IsIdentifierPart(ch) { s.errorAt(diagnostics.This_character_cannot_be_escaped_in_a_regular_expression, s.pos-2, 2) } return string(ch) @@ -1796,7 +1754,7 @@ func (s *Scanner) scanNumber() ast.Kind { result = ast.KindNumericLiteral } ch, _ := s.charAndSize() - if IsIdentifierStart(ch, s.languageVersion) { + if IsIdentifierStart(ch) { idStart := s.pos id := s.scanIdentifierParts() if result != ast.KindBigIntLiteral && len(id) == 1 && s.text[idStart] == 'n' { @@ -1965,12 +1923,12 @@ func GetIdentifierToken(str string) ast.Kind { return ast.KindIdentifier } -func IsValidIdentifier(s string, languageVersion core.ScriptTarget) bool { +func IsValidIdentifier(s string) bool { if len(s) == 0 { return false } for i, ch := range s { - if i == 0 && !IsIdentifierStart(ch, languageVersion) || i != 0 && !IsIdentifierPart(ch, languageVersion) { + if i == 0 && !IsIdentifierStart(ch) || i != 0 && !IsIdentifierPart(ch) { return false } } @@ -1982,26 +1940,26 @@ func isWordCharacter(ch rune) bool { return stringutil.IsASCIILetter(ch) || stringutil.IsDigit(ch) || ch == '_' } -func IsIdentifierStart(ch rune, languageVersion core.ScriptTarget) bool { - return stringutil.IsASCIILetter(ch) || ch == '_' || ch == '$' || ch >= utf8.RuneSelf && isUnicodeIdentifierStart(ch, languageVersion) +func IsIdentifierStart(ch rune) bool { + return stringutil.IsASCIILetter(ch) || ch == '_' || ch == '$' || ch >= utf8.RuneSelf && isUnicodeIdentifierStart(ch) } -func IsIdentifierPart(ch rune, languageVersion core.ScriptTarget) bool { - return IsIdentifierPartEx(ch, languageVersion, core.LanguageVariantStandard) +func IsIdentifierPart(ch rune) bool { + return IsIdentifierPartEx(ch, core.LanguageVariantStandard) } -func IsIdentifierPartEx(ch rune, languageVersion core.ScriptTarget, languageVariant core.LanguageVariant) bool { +func IsIdentifierPartEx(ch rune, languageVariant core.LanguageVariant) bool { return isWordCharacter(ch) || ch == '$' || - ch >= utf8.RuneSelf && isUnicodeIdentifierPart(ch, languageVersion) || + ch >= utf8.RuneSelf && isUnicodeIdentifierPart(ch) || languageVariant == core.LanguageVariantJSX && (ch == '-' || ch == ':') // "-" and ":" are valid in JSX Identifiers } -func isUnicodeIdentifierStart(ch rune, languageVersion core.ScriptTarget) bool { - return isInUnicodeRanges(ch, core.IfElse(languageVersion >= core.ScriptTargetES2015, unicodeESNextIdentifierStart, unicodeES5IdentifierStart)) +func isUnicodeIdentifierStart(ch rune) bool { + return isInUnicodeRanges(ch, unicodeESNextIdentifierStart) } -func isUnicodeIdentifierPart(ch rune, languageVersion core.ScriptTarget) bool { - return isInUnicodeRanges(ch, core.IfElse(languageVersion >= core.ScriptTargetES2015, unicodeESNextIdentifierPart, unicodeES5IdentifierPart)) +func isUnicodeIdentifierPart(ch rune) bool { + return isInUnicodeRanges(ch, unicodeESNextIdentifierPart) } func isInUnicodeRanges(cp rune, ranges []rune) bool { @@ -2273,7 +2231,6 @@ func GetScannerForSourceFile(sourceFile *ast.SourceFile, pos int) *Scanner { s := NewScanner() s.text = sourceFile.Text() s.pos = pos - s.languageVersion = sourceFile.LanguageVersion s.languageVariant = sourceFile.LanguageVariant s.Scan() return s diff --git a/internal/scanner/utilities.go b/internal/scanner/utilities.go index bcf178e6c7..06ba7cf666 100644 --- a/internal/scanner/utilities.go +++ b/internal/scanner/utilities.go @@ -47,14 +47,14 @@ func DeclarationNameToString(name *ast.Node) string { return GetTextOfNode(name) } -func IsIdentifierText(name string, languageVersion core.ScriptTarget, languageVariant core.LanguageVariant) bool { +func IsIdentifierText(name string, languageVariant core.LanguageVariant) bool { ch, size := utf8.DecodeRuneInString(name) - if !IsIdentifierStart(ch, languageVersion) { + if !IsIdentifierStart(ch) { return false } for i := size; i < len(name); { ch, size = utf8.DecodeRuneInString(name[i:]) - if !IsIdentifierPartEx(ch, languageVersion, languageVariant) { + if !IsIdentifierPartEx(ch, languageVariant) { return false } i += size diff --git a/internal/testrunner/test_case_parser.go b/internal/testrunner/test_case_parser.go index 6984acc8c6..62fa71de79 100644 --- a/internal/testrunner/test_case_parser.go +++ b/internal/testrunner/test_case_parser.go @@ -5,6 +5,8 @@ import ( "slices" "strings" + "github.com/microsoft/typescript-go/internal/ast" + "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/parser" "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/testutil/harnessutil" @@ -72,7 +74,10 @@ func makeUnitsFromTest(code string, fileName string) testCaseContent { if harnessutil.GetConfigNameFromFileName(data.name) != "" { configFileName := tspath.GetNormalizedAbsolutePath(data.name, currentDirectory) path := tspath.ToPath(data.name, parseConfigHost.GetCurrentDirectory(), parseConfigHost.Vfs.UseCaseSensitiveFileNames()) - configJson := parser.ParseJSONText(configFileName, path, data.content) + configJson := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: configFileName, + Path: path, + }, data.content, core.ScriptKindJSON) tsConfigSourceFile := &tsoptions.TsConfigSourceFile{ SourceFile: configJson, } diff --git a/internal/testutil/harnessutil/harnessutil.go b/internal/testutil/harnessutil/harnessutil.go index f816bde694..acce099b89 100644 --- a/internal/testutil/harnessutil/harnessutil.go +++ b/internal/testutil/harnessutil/harnessutil.go @@ -23,7 +23,6 @@ import ( "github.com/microsoft/typescript-go/internal/outputpaths" "github.com/microsoft/typescript-go/internal/parser" "github.com/microsoft/typescript-go/internal/repo" - "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/sourcemap" "github.com/microsoft/typescript-go/internal/testutil" "github.com/microsoft/typescript-go/internal/tsoptions" @@ -467,62 +466,42 @@ func getOptionValue(t *testing.T, option *tsoptions.CommandLineOption, value str type cachedCompilerHost struct { compiler.CompilerHost - options *core.CompilerOptions } var sourceFileCache collections.SyncMap[SourceFileCacheKey, *ast.SourceFile] type SourceFileCacheKey struct { - core.SourceFileAffectingCompilerOptions - ast.SourceFileMetaData - fileName string - path tspath.Path - text string + opts ast.SourceFileParseOptions + text string + scriptKind core.ScriptKind } -func GetSourceFileCacheKey( - fileName string, - path tspath.Path, - text string, - options *core.SourceFileAffectingCompilerOptions, - metadata *ast.SourceFileMetaData, -) SourceFileCacheKey { +func GetSourceFileCacheKey(opts ast.SourceFileParseOptions, text string, scriptKind core.ScriptKind) SourceFileCacheKey { return SourceFileCacheKey{ - SourceFileAffectingCompilerOptions: *options, - SourceFileMetaData: *metadata, - fileName: fileName, - path: path, - text: text, + opts: opts, + text: text, + scriptKind: scriptKind, } } -func (h *cachedCompilerHost) GetSourceFile(fileName string, path tspath.Path, options *core.SourceFileAffectingCompilerOptions, metadata *ast.SourceFileMetaData) *ast.SourceFile { - text, ok := h.FS().ReadFile(fileName) +func (h *cachedCompilerHost) GetSourceFile(opts ast.SourceFileParseOptions) *ast.SourceFile { + text, ok := h.FS().ReadFile(opts.FileName) if !ok { return nil } - key := GetSourceFileCacheKey( - fileName, - path, - text, - h.options.SourceFileAffecting(), - metadata, - ) + scriptKind := core.GetScriptKindFromFileName(opts.FileName) + if scriptKind == core.ScriptKindUnknown { + panic("Unknown script kind for file " + opts.FileName) + } + + key := GetSourceFileCacheKey(opts, text, scriptKind) if cached, ok := sourceFileCache.Load(key); ok { return cached } - // !!! dedupe with compiler.compilerHost - var sourceFile *ast.SourceFile - if tspath.FileExtensionIs(fileName, tspath.ExtensionJson) { - sourceFile = parser.ParseJSONText(fileName, path, text) - } else { - // !!! JSDocParsingMode - sourceFile = parser.ParseSourceFile(fileName, path, text, options, metadata, scanner.JSDocParsingModeParseAll) - } - + sourceFile := parser.ParseSourceFile(opts, text, scriptKind) result, _ := sourceFileCache.LoadOrStore(key, sourceFile) return result } @@ -530,7 +509,6 @@ func (h *cachedCompilerHost) GetSourceFile(fileName string, path tspath.Path, op func createCompilerHost(fs vfs.FS, defaultLibraryPath string, options *core.CompilerOptions, currentDirectory string) compiler.CompilerHost { return &cachedCompilerHost{ CompilerHost: compiler.NewCompilerHost(options, currentDirectory, fs, defaultLibraryPath, nil), - options: options, } } diff --git a/internal/testutil/parsetestutil/parsetestutil.go b/internal/testutil/parsetestutil/parsetestutil.go index 76833960d0..2901f6b2b1 100644 --- a/internal/testutil/parsetestutil/parsetestutil.go +++ b/internal/testutil/parsetestutil/parsetestutil.go @@ -8,18 +8,17 @@ import ( "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/diagnosticwriter" "github.com/microsoft/typescript-go/internal/parser" - "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/tspath" ) -var parseCompilerOptions = &core.SourceFileAffectingCompilerOptions{ - EmitScriptTarget: core.ScriptTargetLatest, -} - // Simplifies parsing an input string into a SourceFile for testing purposes. func ParseTypeScript(text string, jsx bool) *ast.SourceFile { fileName := core.IfElse(jsx, "/main.tsx", "/main.ts") - file := parser.ParseSourceFile(fileName, tspath.Path(fileName), text, parseCompilerOptions, nil, scanner.JSDocParsingModeParseNone) + file := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: fileName, + Path: tspath.Path(fileName), + JSDocParsingMode: ast.JSDocParsingModeParseNone, + }, text, core.GetScriptKindFromFileName(fileName)) ast.SetParentInChildren(file.AsNode()) return file } diff --git a/internal/testutil/tsbaseline/js_emit_baseline.go b/internal/testutil/tsbaseline/js_emit_baseline.go index ea9d78be7a..5e29b07404 100644 --- a/internal/testutil/tsbaseline/js_emit_baseline.go +++ b/internal/testutil/tsbaseline/js_emit_baseline.go @@ -5,9 +5,9 @@ import ( "strings" "testing" + "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/parser" - "github.com/microsoft/typescript-go/internal/scanner" "github.com/microsoft/typescript-go/internal/testutil/baseline" "github.com/microsoft/typescript-go/internal/testutil/harnessutil" "github.com/microsoft/typescript-go/internal/tspath" @@ -61,14 +61,11 @@ func DoJSEmitBaseline( jsCode.WriteString("\r\n") } if len(result.Diagnostics) == 0 && strings.HasSuffix(file.UnitName, tspath.ExtensionJson) { - fileParseResult := parser.ParseSourceFile( - file.UnitName, - tspath.Path(file.UnitName), - file.Content, - options.SourceFileAffecting(), - nil, // TODO(jakebailey): need to grab this somehow? - scanner.JSDocParsingModeParseAll, - ) + fileParseResult := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: file.UnitName, + Path: tspath.Path(file.UnitName), + CompilerOptions: options.SourceFileAffecting(), + }, file.Content, core.ScriptKindJSON) if len(fileParseResult.Diagnostics()) > 0 { jsCode.WriteString(getErrorBaseline(t, []*harnessutil.TestFile{file}, fileParseResult.Diagnostics(), false /*pretty*/)) continue diff --git a/internal/transformers/commonjsmodule_test.go b/internal/transformers/commonjsmodule_test.go index 0fe35fe055..a62a3c4ff6 100644 --- a/internal/transformers/commonjsmodule_test.go +++ b/internal/transformers/commonjsmodule_test.go @@ -1031,17 +1031,16 @@ exports.a = a;`, } compilerOptions.Module = core.ModuleKindCommonJS - sourceFileAffecting := compilerOptions.SourceFileAffecting() file := parsetestutil.ParseTypeScript(rec.input, rec.jsx) parsetestutil.CheckDiagnostics(t, file) - binder.BindSourceFile(file, sourceFileAffecting) + binder.BindSourceFile(file) var other *ast.SourceFile if len(rec.other) > 0 { other = parsetestutil.ParseTypeScript(rec.other, rec.jsx) parsetestutil.CheckDiagnostics(t, other) - binder.BindSourceFile(other, sourceFileAffecting) + binder.BindSourceFile(other) } emitContext := printer.NewEmitContext() diff --git a/internal/transformers/esmodule_test.go b/internal/transformers/esmodule_test.go index 94e592978d..7c7c38b58f 100644 --- a/internal/transformers/esmodule_test.go +++ b/internal/transformers/esmodule_test.go @@ -224,16 +224,15 @@ var __rewriteRelativeImportExtension;`, compilerOptions = &core.CompilerOptions{} } - sourceFileAffecting := compilerOptions.SourceFileAffecting() file := parsetestutil.ParseTypeScript(rec.input, rec.jsx) parsetestutil.CheckDiagnostics(t, file) - binder.BindSourceFile(file, sourceFileAffecting) + binder.BindSourceFile(file) var other *ast.SourceFile if len(rec.other) > 0 { other = parsetestutil.ParseTypeScript(rec.other, rec.jsx) parsetestutil.CheckDiagnostics(t, other) - binder.BindSourceFile(other, sourceFileAffecting) + binder.BindSourceFile(other) } emitContext := printer.NewEmitContext() diff --git a/internal/transformers/importelision_test.go b/internal/transformers/importelision_test.go index 5bfc261266..c46aa9e037 100644 --- a/internal/transformers/importelision_test.go +++ b/internal/transformers/importelision_test.go @@ -104,7 +104,7 @@ func (p *fakeProgram) BindSourceFiles() { for _, file := range p.files { if !file.IsBound() { wg.Queue(func() { - binder.BindSourceFile(file, p.compilerOptions.SourceFileAffecting()) + binder.BindSourceFile(file) }) } } @@ -139,8 +139,8 @@ func (p *fakeProgram) GetSourceFileForResolvedModule(FileName string) *ast.Sourc return p.getSourceFileForResolvedModule(FileName) } -func (p *fakeProgram) GetSourceFileMetaData(path tspath.Path) *ast.SourceFileMetaData { - return nil +func (p *fakeProgram) GetSourceFileMetaData(path tspath.Path) ast.SourceFileMetaData { + return ast.SourceFileMetaData{} } func (p *fakeProgram) GetImportHelpersImportSpecifier(path tspath.Path) *ast.Node { diff --git a/internal/transformers/jsx.go b/internal/transformers/jsx.go index 9f55368e53..e4f047016b 100644 --- a/internal/transformers/jsx.go +++ b/internal/transformers/jsx.go @@ -507,7 +507,7 @@ func (tx *JSXTransformer) getAttributeName(node *ast.JsxAttribute) *ast.Node { name := node.Name() if ast.IsIdentifier(name) { text := name.Text() - if scanner.IsIdentifierText(text, tx.compilerOptions.GetEmitScriptTarget(), core.LanguageVariantStandard) { + if scanner.IsIdentifierText(text, core.LanguageVariantStandard) { return name } return tx.factory.NewStringLiteral(text) diff --git a/internal/transformers/runtimesyntax_test.go b/internal/transformers/runtimesyntax_test.go index f102b5aec5..617d3bbb21 100644 --- a/internal/transformers/runtimesyntax_test.go +++ b/internal/transformers/runtimesyntax_test.go @@ -233,7 +233,7 @@ var E; options := &core.CompilerOptions{} file := parsetestutil.ParseTypeScript(rec.input, false /*jsx*/) parsetestutil.CheckDiagnostics(t, file) - binder.BindSourceFile(file, options.SourceFileAffecting()) + binder.BindSourceFile(file) emitContext := printer.NewEmitContext() resolver := binder.NewReferenceResolver(options, binder.ReferenceResolverHooks{}) emittestutil.CheckEmit(t, emitContext, NewRuntimeSyntaxTransformer(emitContext, options, resolver).TransformSourceFile(file), rec.output) @@ -411,7 +411,7 @@ func TestNamespaceTransformer(t *testing.T) { options := &core.CompilerOptions{} file := parsetestutil.ParseTypeScript(rec.input, false /*jsx*/) parsetestutil.CheckDiagnostics(t, file) - binder.BindSourceFile(file, options.SourceFileAffecting()) + binder.BindSourceFile(file) emitContext := printer.NewEmitContext() resolver := binder.NewReferenceResolver(options, binder.ReferenceResolverHooks{}) emittestutil.CheckEmit(t, emitContext, NewRuntimeSyntaxTransformer(emitContext, options, resolver).TransformSourceFile(file), rec.output) @@ -447,7 +447,7 @@ func TestParameterPropertyTransformer(t *testing.T) { options := &core.CompilerOptions{} file := parsetestutil.ParseTypeScript(rec.input, false /*jsx*/) parsetestutil.CheckDiagnostics(t, file) - binder.BindSourceFile(file, options.SourceFileAffecting()) + binder.BindSourceFile(file) emitContext := printer.NewEmitContext() resolver := binder.NewReferenceResolver(options, binder.ReferenceResolverHooks{}) file = NewTypeEraserTransformer(emitContext, options).TransformSourceFile(file) diff --git a/internal/tsoptions/tsconfigparsing.go b/internal/tsoptions/tsconfigparsing.go index 9cb90e150f..3128fa3cbc 100644 --- a/internal/tsoptions/tsconfigparsing.go +++ b/internal/tsoptions/tsconfigparsing.go @@ -252,7 +252,10 @@ func tsconfigToSourceFile(tsconfigSourceFile *TsConfigSourceFile) *ast.SourceFil } func NewTsconfigSourceFileFromFilePath(configFileName string, configPath tspath.Path, configSourceText string) *TsConfigSourceFile { - sourceFile := parser.ParseJSONText(configFileName, configPath, configSourceText) + sourceFile := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: configFileName, + Path: configPath, + }, configSourceText, core.ScriptKindJSON) return &TsConfigSourceFile{ SourceFile: sourceFile, } @@ -624,7 +627,10 @@ func directoryOfCombinedPath(fileName string, basePath string) string { // fileName is the path to the config file // jsonText is the text of the config file func ParseConfigFileTextToJson(fileName string, path tspath.Path, jsonText string) (any, []*ast.Diagnostic) { - jsonSourceFile := parser.ParseJSONText(fileName, path, jsonText) + jsonSourceFile := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: fileName, + Path: path, + }, jsonText, core.ScriptKindJSON) config, errors := convertConfigFileToObject(jsonSourceFile /*jsonConversionNotifier*/, nil) if len(jsonSourceFile.Diagnostics()) > 0 { errors = []*ast.Diagnostic{jsonSourceFile.Diagnostics()[0]} @@ -876,11 +882,14 @@ func readJsonConfigFile(fileName string, path tspath.Path, readFile func(fileNam text, diagnostic := tryReadFile(fileName, readFile, []*ast.Diagnostic{}) if text != "" { return &TsConfigSourceFile{ - SourceFile: parser.ParseJSONText(fileName, path, text), + SourceFile: parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: fileName, + Path: path, + }, text, core.ScriptKindJSON), }, diagnostic } else { file := &TsConfigSourceFile{ - SourceFile: (&ast.NodeFactory{}).NewSourceFile("", fileName, path, nil).AsSourceFile(), + SourceFile: (&ast.NodeFactory{}).NewSourceFile(ast.SourceFileParseOptions{FileName: fileName, Path: path}, "", nil).AsSourceFile(), } file.SourceFile.SetDiagnostics(diagnostic) return file, diagnostic diff --git a/internal/tsoptions/tsconfigparsing_test.go b/internal/tsoptions/tsconfigparsing_test.go index 36fcb9b6d0..78be2a651b 100644 --- a/internal/tsoptions/tsconfigparsing_test.go +++ b/internal/tsoptions/tsconfigparsing_test.go @@ -11,6 +11,7 @@ import ( "testing" "github.com/google/go-cmp/cmp/cmpopts" + "github.com/microsoft/typescript-go/internal/ast" "github.com/microsoft/typescript-go/internal/core" "github.com/microsoft/typescript-go/internal/diagnosticwriter" "github.com/microsoft/typescript-go/internal/parser" @@ -590,7 +591,10 @@ func TestParseJsonSourceFileConfigFileContent(t *testing.T) { func getParsedWithJsonSourceFileApi(config testConfig, host tsoptions.ParseConfigHost, basePath string) *tsoptions.ParsedCommandLine { configFileName := tspath.GetNormalizedAbsolutePath(config.configFileName, basePath) path := tspath.ToPath(config.configFileName, basePath, host.FS().UseCaseSensitiveFileNames()) - parsed := parser.ParseJSONText(configFileName, path, config.jsonText) + parsed := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: configFileName, + Path: path, + }, config.jsonText, core.ScriptKindJSON) tsConfigSourceFile := &tsoptions.TsConfigSourceFile{ SourceFile: parsed, } @@ -808,7 +812,10 @@ func TestParseSrcCompiler(t *testing.T) { jsonText, ok := fs.ReadFile(tsconfigFileName) assert.Assert(t, ok) tsconfigPath := tspath.ToPath(tsconfigFileName, compilerDir, fs.UseCaseSensitiveFileNames()) - parsed := parser.ParseJSONText(tsconfigFileName, tsconfigPath, jsonText) + parsed := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: tsconfigFileName, + Path: tsconfigPath, + }, jsonText, core.ScriptKindJSON) if len(parsed.Diagnostics()) > 0 { for _, error := range parsed.Diagnostics() { @@ -935,7 +942,6 @@ func TestParseSrcCompiler(t *testing.T) { "transformers/classThis.ts", "transformers/declarations.ts", "transformers/destructuring.ts", - "transformers/es2015.ts", "transformers/es2016.ts", "transformers/es2017.ts", "transformers/es2018.ts", @@ -944,7 +950,6 @@ func TestParseSrcCompiler(t *testing.T) { "transformers/es2021.ts", "transformers/esDecorators.ts", "transformers/esnext.ts", - "transformers/generators.ts", "transformers/jsx.ts", "transformers/legacyDecorators.ts", "transformers/namedEvaluation.ts", @@ -975,7 +980,10 @@ func BenchmarkParseSrcCompiler(b *testing.B) { jsonText, ok := fs.ReadFile(tsconfigFileName) assert.Assert(b, ok) tsconfigPath := tspath.ToPath(tsconfigFileName, compilerDir, fs.UseCaseSensitiveFileNames()) - parsed := parser.ParseJSONText(tsconfigFileName, tsconfigPath, jsonText) + parsed := parser.ParseSourceFile(ast.SourceFileParseOptions{ + FileName: tsconfigFileName, + Path: tsconfigPath, + }, jsonText, core.ScriptKindJSON) b.ReportAllocs() diff --git a/package-lock.json b/package-lock.json index 0857524fd4..c52f9d3c9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -130,9 +130,9 @@ } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.20.0.tgz", - "integrity": "sha512-ASoP8uqZBS3H/8N8at/XwFr6vYrRP3syTK0EUjDXQy0Y1/AUS+QeIRThKmTNJO2RggvBBxaXDPM7YoIwDGeA0g==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.21.0.tgz", + "integrity": "sha512-a4MBwe/5WKbq9MIxikzgxLBbruC5qlkFYlBdI7Ev50Y7ib5Vo/Jvt5jnJo7NaWeJ908LCHL0S1Us4UMf1VoTfg==", "dev": true, "dependencies": { "@azure/abort-controller": "^2.0.0", @@ -140,7 +140,7 @@ "@azure/core-tracing": "^1.0.1", "@azure/core-util": "^1.11.0", "@azure/logger": "^1.0.0", - "@typespec/ts-http-runtime": "^0.2.2", + "@typespec/ts-http-runtime": "^0.2.3", "tslib": "^2.6.2" }, "engines": { @@ -174,9 +174,9 @@ } }, "node_modules/@azure/identity": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.10.0.tgz", - "integrity": "sha512-iT53Sre2NJK6wzMWnvpjNiR3md597LZ3uK/5kQD2TkrY9vqhrY5bt2KwELNjkOWQ9n8S/92knj/QEykTtjMNqQ==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.10.1.tgz", + "integrity": "sha512-YM/z6RxRtFlXUH2egAYF/FDPes+MUE6ZoknjEdaq7ebJMMNUzn9zCJ3bd2ZZZlkP0r1xKa88kolhFH/FGV7JnA==", "dev": true, "dependencies": { "@azure/abort-controller": "^2.0.0", @@ -209,9 +209,9 @@ } }, "node_modules/@azure/msal-browser": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.13.0.tgz", - "integrity": "sha512-n2ySryLd+wHmm/0Y1mwFI4J9UXVCu2DeWKtoWNWLVcpvK2k0Ez1qIigKleUm2ZfTbfAXdue+V8htmFft0qgyGQ==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.13.1.tgz", + "integrity": "sha512-oTp2zhVljB2CRp87swOTsBcqLDrvZq9In+yDMBzuuMN4z2wrIU6ITHBZlLfs+FaAVmM1zY3k7ITekXaJ2bsDKA==", "dev": true, "dependencies": { "@azure/msal-common": "15.7.0" @@ -783,6 +783,27 @@ "node": ">=18" } }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -1104,24 +1125,24 @@ } }, "node_modules/@textlint/ast-node-types": { - "version": "14.7.2", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.7.2.tgz", - "integrity": "sha512-3rZc9vD8y/DlcFe3Y/cyKRRVgBH4ElEUzVFYdRVDwoMSwV/cIyZgYzVG6ZuOItQt+cHSREuijuucZ4VqZynbtg==", + "version": "14.8.4", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.8.4.tgz", + "integrity": "sha512-+fI7miec/r9VeniFV9ppL4jRCmHNsTxieulTUf/4tvGII3db5hGriKHC4p/diq1SkQ9Sgs7kg6UyydxZtpTz1Q==", "dev": true }, "node_modules/@textlint/linter-formatter": { - "version": "14.7.2", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.7.2.tgz", - "integrity": "sha512-QZOqft5uK+o/UN8UcEF3cHgfbG1r3+OWqlJojyjGNkEBbBNPSyDfYlVxDjHqnOAwm7jBaeqVGlwvw/7PUFmsmw==", + "version": "14.8.4", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.8.4.tgz", + "integrity": "sha512-sZ0UfYRDBNHnfMVBqLqqYnqTB7Ec169ljlmo+SEHR1T+dHUPYy1/DZK4p7QREXlBSFL4cnkswETCbc9xRodm4Q==", "dev": true, "dependencies": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", - "@textlint/module-interop": "^14.7.2", - "@textlint/resolver": "^14.7.2", - "@textlint/types": "^14.7.2", + "@textlint/module-interop": "14.8.4", + "@textlint/resolver": "14.8.4", + "@textlint/types": "14.8.4", "chalk": "^4.1.2", - "debug": "^4.4.0", + "debug": "^4.4.1", "js-yaml": "^3.14.1", "lodash": "^4.17.21", "pluralize": "^2.0.0", @@ -1249,24 +1270,24 @@ } }, "node_modules/@textlint/module-interop": { - "version": "14.7.2", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.7.2.tgz", - "integrity": "sha512-rDQhFERa2+xMqhyrPFvAL9d5Tb4RpQGKQExwrezvtCTREh6Zsp/nKxtK0r6o0P9xn1+zq2sZHW9NZjpe7av3xw==", + "version": "14.8.4", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.8.4.tgz", + "integrity": "sha512-1LdPYLAVpa27NOt6EqvuFO99s4XLB0c19Hw9xKSG6xQ1K82nUEyuWhzTQKb3KJ5Qx7qj14JlXZLfnEuL6A16Bw==", "dev": true }, "node_modules/@textlint/resolver": { - "version": "14.7.2", - "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.7.2.tgz", - "integrity": "sha512-FCZa9XJx5KihK/4gxXLhS/KfOnBD6vD5UxAMtgrvbifn+JFrW9Kh17uZLCcuJDDJJCnZOHq8jdT7AU+rpmJZ+w==", + "version": "14.8.4", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.8.4.tgz", + "integrity": "sha512-nMDOgDAVwNU9ommh+Db0U+MCMNDPbQ/1HBNjbnHwxZkCpcT6hsAJwBe38CW/DtWVUv8yeR4R40IYNPT84srNwA==", "dev": true }, "node_modules/@textlint/types": { - "version": "14.7.2", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.7.2.tgz", - "integrity": "sha512-VpsmtJf9+7cnIxmKtAVVGVzI6f2k09kBZnzjdTAO8JZ+HTmV46jeoVrotpSfQbWDpuQk2UFPfrsZL/LNf/99ew==", + "version": "14.8.4", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.8.4.tgz", + "integrity": "sha512-9nyY8vVXlr8hHKxa6+37omJhXWCwovMQcgMteuldYd4dOxGm14AK2nXdkgtKEUQnzLGaXy46xwLCfhQy7V7/YA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.7.2" + "@textlint/ast-node-types": "14.8.4" } }, "node_modules/@types/adm-zip": { @@ -1279,12 +1300,12 @@ } }, "node_modules/@types/node": { - "version": "22.15.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.29.tgz", - "integrity": "sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==", + "version": "24.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", + "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", "dev": true, "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.8.0" } }, "node_modules/@types/normalize-package-data": { @@ -1300,9 +1321,9 @@ "dev": true }, "node_modules/@types/vscode": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.100.0.tgz", - "integrity": "sha512-4uNyvzHoraXEeCamR3+fzcBlh7Afs4Ifjs4epINyUX/jvdk0uzLnwiDY35UKDKnkCHP5Nu3dljl2H8lR6s+rQw==", + "version": "1.101.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.101.0.tgz", + "integrity": "sha512-ZWf0IWa+NGegdW3iU42AcDTFHWW7fApLdkdnBqwYEtHVIBGbTu0ZNQKP/kX3Ds/uMJXIMQNAojHR4vexCEEz5Q==", "dev": true }, "node_modules/@types/which": { @@ -1324,9 +1345,9 @@ "link": true }, "node_modules/@typespec/ts-http-runtime": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.2.2.tgz", - "integrity": "sha512-Gz/Sm64+Sq/vklJu1tt9t+4R2lvnud8NbTD/ZfpZtMiUX7YeVpCA8j6NSW8ptwcoLL+NmYANwqP8DV0q/bwl2w==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.2.3.tgz", + "integrity": "sha512-oRhjSzcVjX8ExyaF8hC0zzTqxlVuRlgMHL/Bh4w3xB9+wjbm0FpXylVU/lBrn+kgphwYTrOk3tp+AVShGmlYCg==", "dev": true, "dependencies": { "http-proxy-agent": "^7.0.0", @@ -1338,19 +1359,19 @@ } }, "node_modules/@vscode/vsce": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.4.2.tgz", - "integrity": "sha512-U2gC7GiQc22nxRpWH4cdW16rRr5u9w+Bjsjm8g8mEjY4aeOG1U6/3XNGq+ElwdeoT8jAyhBmBAuYG7INcSe/6A==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.5.0.tgz", + "integrity": "sha512-2Eb6fBh8OzNhWqviCjeUPA1MW+d2GCb1QlVxrpOR8lrLHGk8x7HD4LbfELnZPyOz2X33Myz9FE9t4LwYbmeMRg==", "dev": true, "dependencies": { "@azure/identity": "^4.1.0", - "@secretlint/node": "^9.3.2", - "@secretlint/secretlint-formatter-sarif": "^9.3.2", - "@secretlint/secretlint-rule-no-dotenv": "^9.3.2", - "@secretlint/secretlint-rule-preset-recommend": "^9.3.2", + "@secretlint/node": "^9.3.4", + "@secretlint/secretlint-formatter-sarif": "^9.3.4", + "@secretlint/secretlint-rule-no-dotenv": "^9.3.4", + "@secretlint/secretlint-rule-preset-recommend": "^9.3.4", "@vscode/vsce-sign": "^2.0.0", "azure-devops-node-api": "^12.5.0", - "chalk": "^2.4.2", + "chalk": "^4.1.2", "cheerio": "^1.0.0-rc.9", "cockatiel": "^3.1.2", "commander": "^12.1.0", @@ -1364,7 +1385,7 @@ "minimatch": "^3.0.3", "parse-semver": "^1.1.1", "read": "^1.0.7", - "secretlint": "^9.3.2", + "secretlint": "^9.3.4", "semver": "^7.5.2", "tmp": "^0.2.3", "typed-rest-client": "^1.8.4", @@ -1384,27 +1405,27 @@ } }, "node_modules/@vscode/vsce-sign": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.5.tgz", - "integrity": "sha512-GfYWrsT/vypTMDMgWDm75iDmAOMe7F71sZECJ+Ws6/xyIfmB3ELVnVN+LwMFAvmXY+e6eWhR2EzNGF/zAhWY3Q==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.6.tgz", + "integrity": "sha512-j9Ashk+uOWCDHYDxgGsqzKq5FXW9b9MW7QqOIYZ8IYpneJclWTBeHZz2DJCSKQgo+JAqNcaRRE1hzIx0dswqAw==", "dev": true, "hasInstallScript": true, "optionalDependencies": { - "@vscode/vsce-sign-alpine-arm64": "2.0.2", - "@vscode/vsce-sign-alpine-x64": "2.0.2", - "@vscode/vsce-sign-darwin-arm64": "2.0.2", - "@vscode/vsce-sign-darwin-x64": "2.0.2", - "@vscode/vsce-sign-linux-arm": "2.0.2", - "@vscode/vsce-sign-linux-arm64": "2.0.2", - "@vscode/vsce-sign-linux-x64": "2.0.2", - "@vscode/vsce-sign-win32-arm64": "2.0.2", - "@vscode/vsce-sign-win32-x64": "2.0.2" + "@vscode/vsce-sign-alpine-arm64": "2.0.5", + "@vscode/vsce-sign-alpine-x64": "2.0.5", + "@vscode/vsce-sign-darwin-arm64": "2.0.5", + "@vscode/vsce-sign-darwin-x64": "2.0.5", + "@vscode/vsce-sign-linux-arm": "2.0.5", + "@vscode/vsce-sign-linux-arm64": "2.0.5", + "@vscode/vsce-sign-linux-x64": "2.0.5", + "@vscode/vsce-sign-win32-arm64": "2.0.5", + "@vscode/vsce-sign-win32-x64": "2.0.5" } }, "node_modules/@vscode/vsce-sign-alpine-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.2.tgz", - "integrity": "sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.5.tgz", + "integrity": "sha512-XVmnF40APwRPXSLYA28Ye+qWxB25KhSVpF2eZVtVOs6g7fkpOxsVnpRU1Bz2xG4ySI79IRuapDJoAQFkoOgfdQ==", "cpu": [ "arm64" ], @@ -1415,9 +1436,9 @@ ] }, "node_modules/@vscode/vsce-sign-alpine-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.2.tgz", - "integrity": "sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.5.tgz", + "integrity": "sha512-JuxY3xcquRsOezKq6PEHwCgd1rh1GnhyH6urVEWUzWn1c1PC4EOoyffMD+zLZtFuZF5qR1I0+cqDRNKyPvpK7Q==", "cpu": [ "x64" ], @@ -1428,9 +1449,9 @@ ] }, "node_modules/@vscode/vsce-sign-darwin-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.2.tgz", - "integrity": "sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.5.tgz", + "integrity": "sha512-z2Q62bk0ptADFz8a0vtPvnm6vxpyP3hIEYMU+i1AWz263Pj8Mc38cm/4sjzxu+LIsAfhe9HzvYNS49lV+KsatQ==", "cpu": [ "arm64" ], @@ -1441,9 +1462,9 @@ ] }, "node_modules/@vscode/vsce-sign-darwin-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.2.tgz", - "integrity": "sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.5.tgz", + "integrity": "sha512-ma9JDC7FJ16SuPXlLKkvOD2qLsmW/cKfqK4zzM2iJE1PbckF3BlR08lYqHV89gmuoTpYB55+z8Y5Fz4wEJBVDA==", "cpu": [ "x64" ], @@ -1454,9 +1475,9 @@ ] }, "node_modules/@vscode/vsce-sign-linux-arm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.2.tgz", - "integrity": "sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.5.tgz", + "integrity": "sha512-cdCwtLGmvC1QVrkIsyzv01+o9eR+wodMJUZ9Ak3owhcGxPRB53/WvrDHAFYA6i8Oy232nuen1YqWeEohqBuSzA==", "cpu": [ "arm" ], @@ -1467,9 +1488,9 @@ ] }, "node_modules/@vscode/vsce-sign-linux-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.2.tgz", - "integrity": "sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.5.tgz", + "integrity": "sha512-Hr1o0veBymg9SmkCqYnfaiUnes5YK6k/lKFA5MhNmiEN5fNqxyPUCdRZMFs3Ajtx2OFW4q3KuYVRwGA7jdLo7Q==", "cpu": [ "arm64" ], @@ -1480,9 +1501,9 @@ ] }, "node_modules/@vscode/vsce-sign-linux-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.2.tgz", - "integrity": "sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.5.tgz", + "integrity": "sha512-XLT0gfGMcxk6CMRLDkgqEPTyG8Oa0OFe1tPv2RVbphSOjFWJwZgK3TYWx39i/7gqpDHlax0AP6cgMygNJrA6zg==", "cpu": [ "x64" ], @@ -1493,9 +1514,9 @@ ] }, "node_modules/@vscode/vsce-sign-win32-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.2.tgz", - "integrity": "sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.5.tgz", + "integrity": "sha512-hco8eaoTcvtmuPhavyCZhrk5QIcLiyAUhEso87ApAWDllG7djIrWiOCtqn48k4pHz+L8oCQlE0nwNHfcYcxOPw==", "cpu": [ "arm64" ], @@ -1506,9 +1527,9 @@ ] }, "node_modules/@vscode/vsce-sign-win32-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.2.tgz", - "integrity": "sha512-pAiRN6qSAhDM5SVOIxgx+2xnoVUePHbRNC7OD2aOR3WltTKxxF25OfpK8h8UQ7A0BuRkSgREbB59DBlFk4iAeg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.5.tgz", + "integrity": "sha512-1ixKFGM2FwM+6kQS2ojfY3aAelICxjiCzeg4nTHpkeU1Tfs4RC+lVLrgq5NwcBC7ZLr6UfY3Ct3D6suPeOf7BQ==", "cpu": [ "x64" ], @@ -1518,15 +1539,74 @@ "win32" ] }, + "node_modules/@vscode/vsce/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vscode/vsce/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@vscode/vsce/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/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" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@vscode/vsce/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/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/@vscode/vsce/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@vscode/vsce/node_modules/glob": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz", - "integrity": "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", + "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", "dev": true, "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.0.3", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" @@ -1542,12 +1622,12 @@ } }, "node_modules/@vscode/vsce/node_modules/glob/node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { "node": "20 || >=22" @@ -1556,6 +1636,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@vscode/vsce/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@vscode/vsce/node_modules/jackspeak": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", @@ -1592,16 +1681,6 @@ "node": "*" } }, - "node_modules/@vscode/vsce/node_modules/minimatch/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/@vscode/vsce/node_modules/path-scurry": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", @@ -1618,6 +1697,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@vscode/vsce/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/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/adm-zip": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", @@ -1825,9 +1916,9 @@ "dev": true }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dependencies": { "balanced-match": "^1.0.0" } @@ -1943,21 +2034,21 @@ } }, "node_modules/cheerio": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", - "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.0.tgz", + "integrity": "sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==", "dev": true, "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", + "domutils": "^3.2.2", "encoding-sniffer": "^0.2.0", - "htmlparser2": "^9.1.0", - "parse5": "^7.1.2", - "parse5-htmlparser2-tree-adapter": "^7.0.0", + "htmlparser2": "^10.0.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", - "undici": "^6.19.5", + "undici": "^7.10.0", "whatwg-mimetype": "^4.0.0" }, "engines": { @@ -2372,9 +2463,9 @@ "dev": true }, "node_modules/encoding-sniffer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", - "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", "dev": true, "dependencies": { "iconv-lite": "^0.6.3", @@ -2385,9 +2476,9 @@ } }, "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "dev": true, "optional": true, "dependencies": { @@ -2667,14 +2758,15 @@ } }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -2972,9 +3064,9 @@ } }, "node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -2986,8 +3078,20 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/http-proxy-agent": { @@ -3917,9 +4021,9 @@ } }, "node_modules/parse5/node_modules/entities": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", - "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true, "engines": { "node": ">=0.12" @@ -4041,9 +4145,9 @@ } }, "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "dev": true, "optional": true, "dependencies": { @@ -5016,18 +5120,18 @@ "dev": true }, "node_modules/undici": { - "version": "6.21.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", - "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.10.0.tgz", + "integrity": "sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==", "dev": true, "engines": { - "node": ">=18.17" + "node": ">=20.18.1" } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", "dev": true }, "node_modules/unicorn-magic": { @@ -5442,9 +5546,9 @@ } }, "@azure/core-rest-pipeline": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.20.0.tgz", - "integrity": "sha512-ASoP8uqZBS3H/8N8at/XwFr6vYrRP3syTK0EUjDXQy0Y1/AUS+QeIRThKmTNJO2RggvBBxaXDPM7YoIwDGeA0g==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.21.0.tgz", + "integrity": "sha512-a4MBwe/5WKbq9MIxikzgxLBbruC5qlkFYlBdI7Ev50Y7ib5Vo/Jvt5jnJo7NaWeJ908LCHL0S1Us4UMf1VoTfg==", "dev": true, "requires": { "@azure/abort-controller": "^2.0.0", @@ -5452,7 +5556,7 @@ "@azure/core-tracing": "^1.0.1", "@azure/core-util": "^1.11.0", "@azure/logger": "^1.0.0", - "@typespec/ts-http-runtime": "^0.2.2", + "@typespec/ts-http-runtime": "^0.2.3", "tslib": "^2.6.2" } }, @@ -5477,9 +5581,9 @@ } }, "@azure/identity": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.10.0.tgz", - "integrity": "sha512-iT53Sre2NJK6wzMWnvpjNiR3md597LZ3uK/5kQD2TkrY9vqhrY5bt2KwELNjkOWQ9n8S/92knj/QEykTtjMNqQ==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.10.1.tgz", + "integrity": "sha512-YM/z6RxRtFlXUH2egAYF/FDPes+MUE6ZoknjEdaq7ebJMMNUzn9zCJ3bd2ZZZlkP0r1xKa88kolhFH/FGV7JnA==", "dev": true, "requires": { "@azure/abort-controller": "^2.0.0", @@ -5506,9 +5610,9 @@ } }, "@azure/msal-browser": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.13.0.tgz", - "integrity": "sha512-n2ySryLd+wHmm/0Y1mwFI4J9UXVCu2DeWKtoWNWLVcpvK2k0Ez1qIigKleUm2ZfTbfAXdue+V8htmFft0qgyGQ==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.13.1.tgz", + "integrity": "sha512-oTp2zhVljB2CRp87swOTsBcqLDrvZq9In+yDMBzuuMN4z2wrIU6ITHBZlLfs+FaAVmM1zY3k7ITekXaJ2bsDKA==", "dev": true, "requires": { "@azure/msal-common": "15.7.0" @@ -5786,6 +5890,21 @@ "dev": true, "optional": true }, + "@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true + }, + "@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "requires": { + "@isaacs/balanced-match": "^4.0.1" + } + }, "@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -6034,24 +6153,24 @@ "dev": true }, "@textlint/ast-node-types": { - "version": "14.7.2", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.7.2.tgz", - "integrity": "sha512-3rZc9vD8y/DlcFe3Y/cyKRRVgBH4ElEUzVFYdRVDwoMSwV/cIyZgYzVG6ZuOItQt+cHSREuijuucZ4VqZynbtg==", + "version": "14.8.4", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.8.4.tgz", + "integrity": "sha512-+fI7miec/r9VeniFV9ppL4jRCmHNsTxieulTUf/4tvGII3db5hGriKHC4p/diq1SkQ9Sgs7kg6UyydxZtpTz1Q==", "dev": true }, "@textlint/linter-formatter": { - "version": "14.7.2", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.7.2.tgz", - "integrity": "sha512-QZOqft5uK+o/UN8UcEF3cHgfbG1r3+OWqlJojyjGNkEBbBNPSyDfYlVxDjHqnOAwm7jBaeqVGlwvw/7PUFmsmw==", + "version": "14.8.4", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.8.4.tgz", + "integrity": "sha512-sZ0UfYRDBNHnfMVBqLqqYnqTB7Ec169ljlmo+SEHR1T+dHUPYy1/DZK4p7QREXlBSFL4cnkswETCbc9xRodm4Q==", "dev": true, "requires": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", - "@textlint/module-interop": "^14.7.2", - "@textlint/resolver": "^14.7.2", - "@textlint/types": "^14.7.2", + "@textlint/module-interop": "14.8.4", + "@textlint/resolver": "14.8.4", + "@textlint/types": "14.8.4", "chalk": "^4.1.2", - "debug": "^4.4.0", + "debug": "^4.4.1", "js-yaml": "^3.14.1", "lodash": "^4.17.21", "pluralize": "^2.0.0", @@ -6151,24 +6270,24 @@ } }, "@textlint/module-interop": { - "version": "14.7.2", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.7.2.tgz", - "integrity": "sha512-rDQhFERa2+xMqhyrPFvAL9d5Tb4RpQGKQExwrezvtCTREh6Zsp/nKxtK0r6o0P9xn1+zq2sZHW9NZjpe7av3xw==", + "version": "14.8.4", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.8.4.tgz", + "integrity": "sha512-1LdPYLAVpa27NOt6EqvuFO99s4XLB0c19Hw9xKSG6xQ1K82nUEyuWhzTQKb3KJ5Qx7qj14JlXZLfnEuL6A16Bw==", "dev": true }, "@textlint/resolver": { - "version": "14.7.2", - "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.7.2.tgz", - "integrity": "sha512-FCZa9XJx5KihK/4gxXLhS/KfOnBD6vD5UxAMtgrvbifn+JFrW9Kh17uZLCcuJDDJJCnZOHq8jdT7AU+rpmJZ+w==", + "version": "14.8.4", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.8.4.tgz", + "integrity": "sha512-nMDOgDAVwNU9ommh+Db0U+MCMNDPbQ/1HBNjbnHwxZkCpcT6hsAJwBe38CW/DtWVUv8yeR4R40IYNPT84srNwA==", "dev": true }, "@textlint/types": { - "version": "14.7.2", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.7.2.tgz", - "integrity": "sha512-VpsmtJf9+7cnIxmKtAVVGVzI6f2k09kBZnzjdTAO8JZ+HTmV46jeoVrotpSfQbWDpuQk2UFPfrsZL/LNf/99ew==", + "version": "14.8.4", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.8.4.tgz", + "integrity": "sha512-9nyY8vVXlr8hHKxa6+37omJhXWCwovMQcgMteuldYd4dOxGm14AK2nXdkgtKEUQnzLGaXy46xwLCfhQy7V7/YA==", "dev": true, "requires": { - "@textlint/ast-node-types": "^14.7.2" + "@textlint/ast-node-types": "14.8.4" } }, "@types/adm-zip": { @@ -6181,12 +6300,12 @@ } }, "@types/node": { - "version": "22.15.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.29.tgz", - "integrity": "sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==", + "version": "24.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", + "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", "dev": true, "requires": { - "undici-types": "~6.21.0" + "undici-types": "~7.8.0" } }, "@types/normalize-package-data": { @@ -6202,9 +6321,9 @@ "dev": true }, "@types/vscode": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.100.0.tgz", - "integrity": "sha512-4uNyvzHoraXEeCamR3+fzcBlh7Afs4Ifjs4epINyUX/jvdk0uzLnwiDY35UKDKnkCHP5Nu3dljl2H8lR6s+rQw==", + "version": "1.101.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.101.0.tgz", + "integrity": "sha512-ZWf0IWa+NGegdW3iU42AcDTFHWW7fApLdkdnBqwYEtHVIBGbTu0ZNQKP/kX3Ds/uMJXIMQNAojHR4vexCEEz5Q==", "dev": true }, "@types/which": { @@ -6228,9 +6347,9 @@ "version": "file:_packages/native-preview" }, "@typespec/ts-http-runtime": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.2.2.tgz", - "integrity": "sha512-Gz/Sm64+Sq/vklJu1tt9t+4R2lvnud8NbTD/ZfpZtMiUX7YeVpCA8j6NSW8ptwcoLL+NmYANwqP8DV0q/bwl2w==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.2.3.tgz", + "integrity": "sha512-oRhjSzcVjX8ExyaF8hC0zzTqxlVuRlgMHL/Bh4w3xB9+wjbm0FpXylVU/lBrn+kgphwYTrOk3tp+AVShGmlYCg==", "dev": true, "requires": { "http-proxy-agent": "^7.0.0", @@ -6239,19 +6358,19 @@ } }, "@vscode/vsce": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.4.2.tgz", - "integrity": "sha512-U2gC7GiQc22nxRpWH4cdW16rRr5u9w+Bjsjm8g8mEjY4aeOG1U6/3XNGq+ElwdeoT8jAyhBmBAuYG7INcSe/6A==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.5.0.tgz", + "integrity": "sha512-2Eb6fBh8OzNhWqviCjeUPA1MW+d2GCb1QlVxrpOR8lrLHGk8x7HD4LbfELnZPyOz2X33Myz9FE9t4LwYbmeMRg==", "dev": true, "requires": { "@azure/identity": "^4.1.0", - "@secretlint/node": "^9.3.2", - "@secretlint/secretlint-formatter-sarif": "^9.3.2", - "@secretlint/secretlint-rule-no-dotenv": "^9.3.2", - "@secretlint/secretlint-rule-preset-recommend": "^9.3.2", + "@secretlint/node": "^9.3.4", + "@secretlint/secretlint-formatter-sarif": "^9.3.4", + "@secretlint/secretlint-rule-no-dotenv": "^9.3.4", + "@secretlint/secretlint-rule-preset-recommend": "^9.3.4", "@vscode/vsce-sign": "^2.0.0", "azure-devops-node-api": "^12.5.0", - "chalk": "^2.4.2", + "chalk": "^4.1.2", "cheerio": "^1.0.0-rc.9", "cockatiel": "^3.1.2", "commander": "^12.1.0", @@ -6266,7 +6385,7 @@ "minimatch": "^3.0.3", "parse-semver": "^1.1.1", "read": "^1.0.7", - "secretlint": "^9.3.2", + "secretlint": "^9.3.4", "semver": "^7.5.2", "tmp": "^0.2.3", "typed-rest-client": "^1.8.4", @@ -6276,31 +6395,81 @@ "yazl": "^2.2.2" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "glob": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz", - "integrity": "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", + "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", "dev": true, "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.0.3", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "dependencies": { "minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", "dev": true, "requires": { - "brace-expansion": "^2.0.1" + "@isaacs/brace-expansion": "^5.0.0" } } } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "jackspeak": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", @@ -6323,18 +6492,6 @@ "dev": true, "requires": { "brace-expansion": "^1.1.7" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - } } }, "path-scurry": { @@ -6346,86 +6503,95 @@ "lru-cache": "^11.0.0", "minipass": "^7.1.2" } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "@vscode/vsce-sign": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.5.tgz", - "integrity": "sha512-GfYWrsT/vypTMDMgWDm75iDmAOMe7F71sZECJ+Ws6/xyIfmB3ELVnVN+LwMFAvmXY+e6eWhR2EzNGF/zAhWY3Q==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.6.tgz", + "integrity": "sha512-j9Ashk+uOWCDHYDxgGsqzKq5FXW9b9MW7QqOIYZ8IYpneJclWTBeHZz2DJCSKQgo+JAqNcaRRE1hzIx0dswqAw==", "dev": true, "requires": { - "@vscode/vsce-sign-alpine-arm64": "2.0.2", - "@vscode/vsce-sign-alpine-x64": "2.0.2", - "@vscode/vsce-sign-darwin-arm64": "2.0.2", - "@vscode/vsce-sign-darwin-x64": "2.0.2", - "@vscode/vsce-sign-linux-arm": "2.0.2", - "@vscode/vsce-sign-linux-arm64": "2.0.2", - "@vscode/vsce-sign-linux-x64": "2.0.2", - "@vscode/vsce-sign-win32-arm64": "2.0.2", - "@vscode/vsce-sign-win32-x64": "2.0.2" + "@vscode/vsce-sign-alpine-arm64": "2.0.5", + "@vscode/vsce-sign-alpine-x64": "2.0.5", + "@vscode/vsce-sign-darwin-arm64": "2.0.5", + "@vscode/vsce-sign-darwin-x64": "2.0.5", + "@vscode/vsce-sign-linux-arm": "2.0.5", + "@vscode/vsce-sign-linux-arm64": "2.0.5", + "@vscode/vsce-sign-linux-x64": "2.0.5", + "@vscode/vsce-sign-win32-arm64": "2.0.5", + "@vscode/vsce-sign-win32-x64": "2.0.5" } }, "@vscode/vsce-sign-alpine-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.2.tgz", - "integrity": "sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.5.tgz", + "integrity": "sha512-XVmnF40APwRPXSLYA28Ye+qWxB25KhSVpF2eZVtVOs6g7fkpOxsVnpRU1Bz2xG4ySI79IRuapDJoAQFkoOgfdQ==", "dev": true, "optional": true }, "@vscode/vsce-sign-alpine-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.2.tgz", - "integrity": "sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.5.tgz", + "integrity": "sha512-JuxY3xcquRsOezKq6PEHwCgd1rh1GnhyH6urVEWUzWn1c1PC4EOoyffMD+zLZtFuZF5qR1I0+cqDRNKyPvpK7Q==", "dev": true, "optional": true }, "@vscode/vsce-sign-darwin-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.2.tgz", - "integrity": "sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.5.tgz", + "integrity": "sha512-z2Q62bk0ptADFz8a0vtPvnm6vxpyP3hIEYMU+i1AWz263Pj8Mc38cm/4sjzxu+LIsAfhe9HzvYNS49lV+KsatQ==", "dev": true, "optional": true }, "@vscode/vsce-sign-darwin-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.2.tgz", - "integrity": "sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.5.tgz", + "integrity": "sha512-ma9JDC7FJ16SuPXlLKkvOD2qLsmW/cKfqK4zzM2iJE1PbckF3BlR08lYqHV89gmuoTpYB55+z8Y5Fz4wEJBVDA==", "dev": true, "optional": true }, "@vscode/vsce-sign-linux-arm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.2.tgz", - "integrity": "sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.5.tgz", + "integrity": "sha512-cdCwtLGmvC1QVrkIsyzv01+o9eR+wodMJUZ9Ak3owhcGxPRB53/WvrDHAFYA6i8Oy232nuen1YqWeEohqBuSzA==", "dev": true, "optional": true }, "@vscode/vsce-sign-linux-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.2.tgz", - "integrity": "sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.5.tgz", + "integrity": "sha512-Hr1o0veBymg9SmkCqYnfaiUnes5YK6k/lKFA5MhNmiEN5fNqxyPUCdRZMFs3Ajtx2OFW4q3KuYVRwGA7jdLo7Q==", "dev": true, "optional": true }, "@vscode/vsce-sign-linux-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.2.tgz", - "integrity": "sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.5.tgz", + "integrity": "sha512-XLT0gfGMcxk6CMRLDkgqEPTyG8Oa0OFe1tPv2RVbphSOjFWJwZgK3TYWx39i/7gqpDHlax0AP6cgMygNJrA6zg==", "dev": true, "optional": true }, "@vscode/vsce-sign-win32-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.2.tgz", - "integrity": "sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.5.tgz", + "integrity": "sha512-hco8eaoTcvtmuPhavyCZhrk5QIcLiyAUhEso87ApAWDllG7djIrWiOCtqn48k4pHz+L8oCQlE0nwNHfcYcxOPw==", "dev": true, "optional": true }, "@vscode/vsce-sign-win32-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.2.tgz", - "integrity": "sha512-pAiRN6qSAhDM5SVOIxgx+2xnoVUePHbRNC7OD2aOR3WltTKxxF25OfpK8h8UQ7A0BuRkSgREbB59DBlFk4iAeg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.5.tgz", + "integrity": "sha512-1ixKFGM2FwM+6kQS2ojfY3aAelICxjiCzeg4nTHpkeU1Tfs4RC+lVLrgq5NwcBC7ZLr6UfY3Ct3D6suPeOf7BQ==", "dev": true, "optional": true }, @@ -6578,9 +6744,9 @@ "dev": true }, "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "requires": { "balanced-match": "^1.0.0" } @@ -6658,21 +6824,21 @@ } }, "cheerio": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", - "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.0.tgz", + "integrity": "sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==", "dev": true, "requires": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", + "domutils": "^3.2.2", "encoding-sniffer": "^0.2.0", - "htmlparser2": "^9.1.0", - "parse5": "^7.1.2", - "parse5-htmlparser2-tree-adapter": "^7.0.0", + "htmlparser2": "^10.0.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", - "undici": "^6.19.5", + "undici": "^7.10.0", "whatwg-mimetype": "^4.0.0" } }, @@ -6969,9 +7135,9 @@ "dev": true }, "encoding-sniffer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", - "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", "dev": true, "requires": { "iconv-lite": "^0.6.3", @@ -6979,9 +7145,9 @@ } }, "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "dev": true, "optional": true, "requires": { @@ -7186,14 +7352,15 @@ } }, "form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, @@ -7404,15 +7571,23 @@ } }, "htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", "dev": true, "requires": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" + "domutils": "^3.2.1", + "entities": "^6.0.0" + }, + "dependencies": { + "entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true + } } }, "http-proxy-agent": { @@ -8086,9 +8261,9 @@ }, "dependencies": { "entities": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", - "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true } } @@ -8189,9 +8364,9 @@ } }, "pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "dev": true, "optional": true, "requires": { @@ -8876,15 +9051,15 @@ "dev": true }, "undici": { - "version": "6.21.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", - "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.10.0.tgz", + "integrity": "sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==", "dev": true }, "undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", "dev": true }, "unicorn-magic": { diff --git a/testdata/baselines/reference/compiler/objectSubtypeReduction.symbols b/testdata/baselines/reference/compiler/objectSubtypeReduction.symbols new file mode 100644 index 0000000000..89728315e0 --- /dev/null +++ b/testdata/baselines/reference/compiler/objectSubtypeReduction.symbols @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/objectSubtypeReduction.ts] //// + +=== objectSubtypeReduction.ts === +// https://github.com/microsoft/typescript-go/issues/1164 + +function foo(x?: object) { +>foo : Symbol(foo, Decl(objectSubtypeReduction.ts, 0, 0)) +>x : Symbol(x, Decl(objectSubtypeReduction.ts, 2, 13)) + + return Object.entries(x || {}) +>Object.entries(x || {}) .sort : Symbol(sort, Decl(lib.es5.d.ts, --, --)) +>Object.entries : Symbol(entries, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>entries : Symbol(entries, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --)) +>x : Symbol(x, Decl(objectSubtypeReduction.ts, 2, 13)) + + .sort(([k1, v1], [k2, v2]) => v1.name.localeCompare(v2.name)); +>sort : Symbol(sort, Decl(lib.es5.d.ts, --, --)) +>k1 : Symbol(k1, Decl(objectSubtypeReduction.ts, 4, 16)) +>v1 : Symbol(v1, Decl(objectSubtypeReduction.ts, 4, 19)) +>k2 : Symbol(k2, Decl(objectSubtypeReduction.ts, 4, 26)) +>v2 : Symbol(v2, Decl(objectSubtypeReduction.ts, 4, 29)) +>v1 : Symbol(v1, Decl(objectSubtypeReduction.ts, 4, 19)) +>v2 : Symbol(v2, Decl(objectSubtypeReduction.ts, 4, 29)) +} + diff --git a/testdata/baselines/reference/compiler/objectSubtypeReduction.types b/testdata/baselines/reference/compiler/objectSubtypeReduction.types new file mode 100644 index 0000000000..cc84cf2e2c --- /dev/null +++ b/testdata/baselines/reference/compiler/objectSubtypeReduction.types @@ -0,0 +1,38 @@ +//// [tests/cases/compiler/objectSubtypeReduction.ts] //// + +=== objectSubtypeReduction.ts === +// https://github.com/microsoft/typescript-go/issues/1164 + +function foo(x?: object) { +>foo : (x?: object | undefined) => [string, any][] +>x : object | undefined + + return Object.entries(x || {}) +>Object.entries(x || {}) .sort(([k1, v1], [k2, v2]) => v1.name.localeCompare(v2.name)) : [string, any][] +>Object.entries(x || {}) .sort : (compareFn?: ((a: [string, any], b: [string, any]) => number) | undefined) => [string, any][] +>Object.entries(x || {}) : [string, any][] +>Object.entries : { (o: ArrayLike | { [s: string]: T; }): [string, T][]; (o: {}): [string, any][]; } +>Object : ObjectConstructor +>entries : { (o: ArrayLike | { [s: string]: T; }): [string, T][]; (o: {}): [string, any][]; } +>x || {} : object +>x : object | undefined +>{} : {} + + .sort(([k1, v1], [k2, v2]) => v1.name.localeCompare(v2.name)); +>sort : (compareFn?: ((a: [string, any], b: [string, any]) => number) | undefined) => [string, any][] +>([k1, v1], [k2, v2]) => v1.name.localeCompare(v2.name) : ([k1, v1]: [string, any], [k2, v2]: [string, any]) => any +>k1 : string +>v1 : any +>k2 : string +>v2 : any +>v1.name.localeCompare(v2.name) : any +>v1.name.localeCompare : any +>v1.name : any +>v1 : any +>name : any +>localeCompare : any +>v2.name : any +>v2 : any +>name : any +} + diff --git a/testdata/baselines/reference/submodule/compiler/2dArrays.js.diff b/testdata/baselines/reference/submodule/compiler/2dArrays.js.diff index dcc6d6204f..8a6e307a17 100644 --- a/testdata/baselines/reference/submodule/compiler/2dArrays.js.diff +++ b/testdata/baselines/reference/submodule/compiler/2dArrays.js.diff @@ -1,35 +1,14 @@ --- old.2dArrays.js +++ new.2dArrays.js -@@= skipped -17, +17 lines =@@ +@@= skipped -20, +20 lines =@@ + class Cell { } - - //// [2dArrays.js] --var Cell = /** @class */ (function () { -- function Cell() { -- } -- return Cell; --}()); --var Ship = /** @class */ (function () { -- function Ship() { -- } -- return Ship; --}()); --var Board = /** @class */ (function () { -- function Board() { -- } -- Board.prototype.allShipsSunk = function () { -+class Cell { -+} -+class Ship { + class Ship { + isSunk; -+} -+class Board { + } + class Board { + ships; + cells; -+ allShipsSunk() { + allShipsSunk() { return this.ships.every(function (val) { return val.isSunk; }); -- }; -- return Board; --}()); -+ } -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/APISample_Watch.js.diff b/testdata/baselines/reference/submodule/compiler/APISample_Watch.js.diff index 3ae3cf29a1..499c77d7d5 100644 --- a/testdata/baselines/reference/submodule/compiler/APISample_Watch.js.diff +++ b/testdata/baselines/reference/submodule/compiler/APISample_Watch.js.diff @@ -11,40 +11,7 @@ - */ Object.defineProperty(exports, "__esModule", { value: true }); -var ts = require("typescript"); --var formatHost = { -- getCanonicalFileName: function (path) { return path; }, +const ts = require("typescript"); -+const formatHost = { -+ getCanonicalFileName: path => path, - getCurrentDirectory: ts.sys.getCurrentDirectory, -- getNewLine: function () { return ts.sys.newLine; }, -+ getNewLine: () => ts.sys.newLine, - }; - function watchMain() { -- var configPath = ts.findConfigFile(/*searchPath*/ "./", ts.sys.fileExists, "tsconfig.json"); -+ const configPath = ts.findConfigFile(/*searchPath*/ "./", ts.sys.fileExists, "tsconfig.json"); - if (!configPath) { - throw new Error("Could not find a valid 'tsconfig.json'."); - } -@@= skipped -27, +22 lines =@@ - // Between `createEmitAndSemanticDiagnosticsBuilderProgram` and `createSemanticDiagnosticsBuilderProgram`, the only difference is emit. - // For pure type-checking scenarios, or when another tool/process handles emit, using `createSemanticDiagnosticsBuilderProgram` may be more desirable. - // Note that there is another overload for `createWatchCompilerHost` that takes a set of root files. -- var host = ts.createWatchCompilerHost(configPath, {}, ts.sys, ts.createSemanticDiagnosticsBuilderProgram, reportDiagnostic, reportWatchStatusChanged); -+ const host = ts.createWatchCompilerHost(configPath, {}, ts.sys, ts.createSemanticDiagnosticsBuilderProgram, reportDiagnostic, reportWatchStatusChanged); - // You can technically override any given hook on the host, though you probably don't need to. - // Note that we're assuming `origCreateProgram` and `origPostProgramCreate` doesn't use `this` at all. -- var origCreateProgram = host.createProgram; -- host.createProgram = function (rootNames, options, host, oldProgram) { -+ const origCreateProgram = host.createProgram; -+ host.createProgram = (rootNames, options, host, oldProgram) => { - console.log("** We're about to create the program! **"); - return origCreateProgram(rootNames, options, host, oldProgram); - }; -- var origPostProgramCreate = host.afterProgramCreate; -- host.afterProgramCreate = function (program) { -+ const origPostProgramCreate = host.afterProgramCreate; -+ host.afterProgramCreate = program => { - console.log("** We finished making the program! **"); - origPostProgramCreate(program); - }; \ No newline at end of file + const formatHost = { + getCanonicalFileName: path => path, + getCurrentDirectory: ts.sys.getCurrentDirectory, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/APISample_WatchWithDefaults.js.diff b/testdata/baselines/reference/submodule/compiler/APISample_WatchWithDefaults.js.diff index a660d377a9..495001bf42 100644 --- a/testdata/baselines/reference/submodule/compiler/APISample_WatchWithDefaults.js.diff +++ b/testdata/baselines/reference/submodule/compiler/APISample_WatchWithDefaults.js.diff @@ -12,30 +12,5 @@ -var ts = require("typescript"); +const ts = require("typescript"); function watchMain() { -- var configPath = ts.findConfigFile(/*searchPath*/ "./", ts.sys.fileExists, "tsconfig.json"); -+ const configPath = ts.findConfigFile(/*searchPath*/ "./", ts.sys.fileExists, "tsconfig.json"); - if (!configPath) { - throw new Error("Could not find a valid 'tsconfig.json'."); - } -@@= skipped -21, +17 lines =@@ - // Between `createEmitAndSemanticDiagnosticsBuilderProgram` and `createSemanticDiagnosticsBuilderProgram`, the only difference is emit. - // For pure type-checking scenarios, or when another tool/process handles emit, using `createSemanticDiagnosticsBuilderProgram` may be more desirable. - // Note that there is another overload for `createWatchCompilerHost` that takes a set of root files. -- var host = ts.createWatchCompilerHost(configPath, {}, ts.sys); -+ const host = ts.createWatchCompilerHost(configPath, {}, ts.sys); - // You can technically override any given hook on the host, though you probably don't need to. - // Note that we're assuming `origCreateProgram` and `origPostProgramCreate` doesn't use `this` at all. -- var origCreateProgram = host.createProgram; -- host.createProgram = function (rootNames, options, host, oldProgram) { -+ const origCreateProgram = host.createProgram; -+ host.createProgram = (rootNames, options, host, oldProgram) => { - console.log("** We're about to create the program! **"); - return origCreateProgram(rootNames, options, host, oldProgram); - }; -- var origPostProgramCreate = host.afterProgramCreate; -- host.afterProgramCreate = function (program) { -+ const origPostProgramCreate = host.afterProgramCreate; -+ host.afterProgramCreate = program => { - console.log("** We finished making the program! **"); - origPostProgramCreate(program); - }; \ No newline at end of file + const configPath = ts.findConfigFile(/*searchPath*/ "./", ts.sys.fileExists, "tsconfig.json"); + if (!configPath) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/APISample_WatchWithOwnWatchHost.js.diff b/testdata/baselines/reference/submodule/compiler/APISample_WatchWithOwnWatchHost.js.diff index 4c4e70a980..25d0f11df7 100644 --- a/testdata/baselines/reference/submodule/compiler/APISample_WatchWithOwnWatchHost.js.diff +++ b/testdata/baselines/reference/submodule/compiler/APISample_WatchWithOwnWatchHost.js.diff @@ -13,40 +13,4 @@ +const ts = require("typescript"); function watchMain() { // get list of files and compiler options somehow -- var files = []; -- var options = {}; -- var host = { -+ const files = []; -+ const options = {}; -+ const host = { - rootFiles: files, -- options: options, -- useCaseSensitiveFileNames: function () { return ts.sys.useCaseSensitiveFileNames; }, -- getNewLine: function () { return ts.sys.newLine; }, -+ options, -+ useCaseSensitiveFileNames: () => ts.sys.useCaseSensitiveFileNames, -+ getNewLine: () => ts.sys.newLine, - getCurrentDirectory: ts.sys.getCurrentDirectory, -- getDefaultLibFileName: function (options) { return ts.getDefaultLibFilePath(options); }, -+ getDefaultLibFileName: options => ts.getDefaultLibFilePath(options), - fileExists: ts.sys.fileExists, - readFile: ts.sys.readFile, - directoryExists: ts.sys.directoryExists, -@@= skipped -29, +25 lines =@@ - }; - // You can technically override any given hook on the host, though you probably don't need to. - // Note that we're assuming `origCreateProgram` and `origPostProgramCreate` doesn't use `this` at all. -- var origCreateProgram = host.createProgram; -- host.createProgram = function (rootNames, options, host, oldProgram) { -+ const origCreateProgram = host.createProgram; -+ host.createProgram = (rootNames, options, host, oldProgram) => { - console.log("** We're about to create the program! **"); - return origCreateProgram(rootNames, options, host, oldProgram); - }; -- var origPostProgramCreate = host.afterProgramCreate; -- host.afterProgramCreate = function (program) { -+ const origPostProgramCreate = host.afterProgramCreate; -+ host.afterProgramCreate = program => { - console.log("** We finished making the program! **"); - origPostProgramCreate(program); - }; \ No newline at end of file + const files = []; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/APISample_compile.js.diff b/testdata/baselines/reference/submodule/compiler/APISample_compile.js.diff index bccc6d1948..b2e0459c6f 100644 --- a/testdata/baselines/reference/submodule/compiler/APISample_compile.js.diff +++ b/testdata/baselines/reference/submodule/compiler/APISample_compile.js.diff @@ -15,23 +15,4 @@ +const ts = require("typescript"); function compile(fileNames, options) { var program = ts.createProgram(fileNames, options); - var emitResult = program.emit(); - var allDiagnostics = ts.getPreEmitDiagnostics(program); -- allDiagnostics.forEach(function (diagnostic) { -+ allDiagnostics.forEach(diagnostic => { - var message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); - if (!diagnostic.file) { - console.log(message); - return; - } -- var _a = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start), line = _a.line, character = _a.character; -- console.log("".concat(diagnostic.file.fileName, " (").concat(line + 1, ",").concat(character + 1, "): ").concat(message)); -+ var { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); -+ console.log(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`); - }); - var exitCode = emitResult.emitSkipped ? 1 : 0; -- console.log("Process exiting with code '".concat(exitCode, "'.")); -+ console.log(`Process exiting with code '${exitCode}'.`); - process.exit(exitCode); - } - compile(process.argv.slice(2), { \ No newline at end of file + var emitResult = program.emit(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/APISample_jsdoc.js.diff b/testdata/baselines/reference/submodule/compiler/APISample_jsdoc.js.diff index f05d85b5d2..939a10fa62 100644 --- a/testdata/baselines/reference/submodule/compiler/APISample_jsdoc.js.diff +++ b/testdata/baselines/reference/submodule/compiler/APISample_jsdoc.js.diff @@ -15,93 +15,4 @@ +const ts = require("typescript"); // excerpted from https://github.com/YousefED/typescript-json-schema // (converted from a method and modified; for example, `this: any` to compensate, among other changes) - function parseCommentsIntoDefinition(symbol, definition, otherAnnotations) { -- var _this = this; - if (!symbol) { - return; - } - // the comments for a symbol -- var comments = symbol.getDocumentationComment(undefined); -+ let comments = symbol.getDocumentationComment(undefined); - if (comments.length) { -- definition.description = comments.map(function (comment) { return comment.kind === "lineBreak" ? comment.text : comment.text.trim().replace(/\r\n/g, "\n"); }).join(""); -+ definition.description = comments.map(comment => comment.kind === "lineBreak" ? comment.text : comment.text.trim().replace(/\r\n/g, "\n")).join(""); - } - // jsdocs are separate from comments -- var jsdocs = symbol.getJsDocTags(this.checker); -- jsdocs.forEach(function (doc) { -+ const jsdocs = symbol.getJsDocTags(this.checker); -+ jsdocs.forEach(doc => { - // if we have @TJS-... annotations, we have to parse them -- var name = doc.name, text = doc.text; -- if (_this.userValidationKeywords[name]) { -- definition[name] = _this.parseValue(text); -+ const { name, text } = doc; -+ if (this.userValidationKeywords[name]) { -+ definition[name] = this.parseValue(text); - } - else { - // special annotations -@@= skipped -35, +28 lines =@@ - }); - } - function getAnnotations(node) { -- var _this = this; -- var symbol = node.symbol; -+ const symbol = node.symbol; - if (!symbol) { - return undefined; - } -- var jsDocTags = symbol.getJsDocTags(this.checker); -+ const jsDocTags = symbol.getJsDocTags(this.checker); - if (!jsDocTags || !jsDocTags.length) { - return undefined; - } -- var annotations = jsDocTags.reduce(function (result, jsDocTag) { -- var value = _this.parseJsDocTag(jsDocTag); -+ const annotations = jsDocTags.reduce((result, jsDocTag) => { -+ const value = this.parseJsDocTag(jsDocTag); - if (value !== undefined) { - result[jsDocTag.name] = value; - } -@@= skipped -24, +23 lines =@@ - return ts.getJSDocParameterTags(node); - } - if (node.kind === ts.SyntaxKind.FunctionDeclaration) { -- var func = node; -+ const func = node; - if (ts.hasJSDocParameterTags(func)) { -- var flat = []; -- for (var _i = 0, _a = func.parameters.map(ts.getJSDocParameterTags); _i < _a.length; _i++) { -- var tags = _a[_i]; -+ const flat = []; -+ for (const tags of func.parameters.map(ts.getJSDocParameterTags)) { - if (tags) -- flat.push.apply(flat, tags); -+ flat.push(...tags); - } - return flat; - } -@@= skipped -16, +15 lines =@@ - if (node.kind === ts.SyntaxKind.FunctionDeclaration) { - return ts.getJSDocReturnType(node); - } -- var type = ts.getJSDocType(node); -+ let type = ts.getJSDocType(node); - if (type && type.kind === ts.SyntaxKind.FunctionType) { - return type.type; - } -@@= skipped -9, +9 lines =@@ - ts.getJSDocTags(node); - } - function getSomeOtherTags(node) { -- var tags = []; -+ const tags = []; - tags.push(ts.getJSDocAugmentsTag(node)); - tags.push(ts.getJSDocClassTag(node)); - tags.push(ts.getJSDocReturnTag(node)); -- var type = ts.getJSDocTypeTag(node); -+ const type = ts.getJSDocTypeTag(node); - if (type) { - tags.push(type); - } \ No newline at end of file + function parseCommentsIntoDefinition(symbol, definition, otherAnnotations) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/APISample_linter.js.diff b/testdata/baselines/reference/submodule/compiler/APISample_linter.js.diff index 15181385dc..2f9b2b9e1f 100644 --- a/testdata/baselines/reference/submodule/compiler/APISample_linter.js.diff +++ b/testdata/baselines/reference/submodule/compiler/APISample_linter.js.diff @@ -15,42 +15,4 @@ +const ts = require("typescript"); function delint(sourceFile) { delintNode(sourceFile); - function delintNode(node) { -@@= skipped -21, +16 lines =@@ - } - break; - case ts.SyntaxKind.IfStatement: -- var ifStatement = node; -+ let ifStatement = node; - if (ifStatement.thenStatement.kind !== ts.SyntaxKind.Block) { - report(ifStatement.thenStatement, "An if statement's contents should be wrapped in a block body."); - } -@@= skipped -11, +11 lines =@@ - } - break; - case ts.SyntaxKind.BinaryExpression: -- var op = node.operatorToken.kind; -+ let op = node.operatorToken.kind; - if (op === ts.SyntaxKind.EqualsEqualsToken || op == ts.SyntaxKind.ExclamationEqualsToken) { - report(node, "Use '===' and '!=='."); - } -@@= skipped -9, +9 lines =@@ - ts.forEachChild(node, delintNode); - } - function report(node, message) { -- var _a = sourceFile.getLineAndCharacterOfPosition(node.getStart()), line = _a.line, character = _a.character; -- console.log("".concat(sourceFile.fileName, " (").concat(line + 1, ",").concat(character + 1, "): ").concat(message)); -+ let { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart()); -+ console.log(`${sourceFile.fileName} (${line + 1},${character + 1}): ${message}`); - } - } --var fileNames = process.argv.slice(2); --fileNames.forEach(function (fileName) { -+const fileNames = process.argv.slice(2); -+fileNames.forEach(fileName => { - // Parse a file -- var sourceFile = ts.createSourceFile(fileName, readFileSync(fileName).toString(), ts.ScriptTarget.ES2015, /*setParentNodes */ true); -+ let sourceFile = ts.createSourceFile(fileName, readFileSync(fileName).toString(), ts.ScriptTarget.ES2015, /*setParentNodes */ true); - // delint it - delint(sourceFile); - }); \ No newline at end of file + function delintNode(node) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/APISample_parseConfig.js.diff b/testdata/baselines/reference/submodule/compiler/APISample_parseConfig.js.diff index 738bf87273..aa2225246a 100644 --- a/testdata/baselines/reference/submodule/compiler/APISample_parseConfig.js.diff +++ b/testdata/baselines/reference/submodule/compiler/APISample_parseConfig.js.diff @@ -15,26 +15,4 @@ +const ts = require("typescript"); function printError(error) { if (!error) { - return; - } -- console.log("".concat(error.file && error.file.fileName, ": ").concat(error.messageText)); -+ console.log(`${error.file && error.file.fileName}: ${error.messageText}`); - } - function createProgram(rootFiles, compilerOptionsJson) { -- var _a = ts.parseConfigFileTextToJson("tsconfig.json", compilerOptionsJson), config = _a.config, error = _a.error; -+ const { config, error } = ts.parseConfigFileTextToJson("tsconfig.json", compilerOptionsJson); - if (error) { - printError(error); - return undefined; - } -- var basePath = process.cwd(); -- var settings = ts.convertCompilerOptionsFromJson(config.config["compilerOptions"], basePath); -+ const basePath = process.cwd(); -+ const settings = ts.convertCompilerOptionsFromJson(config.config["compilerOptions"], basePath); - if (!settings.options) { -- for (var _i = 0, _b = settings.errors; _i < _b.length; _i++) { -- var err = _b[_i]; -+ for (const err of settings.errors) { - printError(err); - } - return undefined; \ No newline at end of file + return; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/APISample_transform.js.diff b/testdata/baselines/reference/submodule/compiler/APISample_transform.js.diff index b04d42edd3..62ddcd3067 100644 --- a/testdata/baselines/reference/submodule/compiler/APISample_transform.js.diff +++ b/testdata/baselines/reference/submodule/compiler/APISample_transform.js.diff @@ -11,9 +11,7 @@ - */ Object.defineProperty(exports, "__esModule", { value: true }); -var ts = require("typescript"); --var source = "let x: string = 'string'"; --var result = ts.transpile(source, { module: ts.ModuleKind.CommonJS }); +const ts = require("typescript"); -+const source = "let x: string = 'string'"; -+let result = ts.transpile(source, { module: ts.ModuleKind.CommonJS }); + const source = "let x: string = 'string'"; + let result = ts.transpile(source, { module: ts.ModuleKind.CommonJS }); console.log(JSON.stringify(result)); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/APISample_watcher.js.diff b/testdata/baselines/reference/submodule/compiler/APISample_watcher.js.diff index 6f4eaad397..7872ebf267 100644 --- a/testdata/baselines/reference/submodule/compiler/APISample_watcher.js.diff +++ b/testdata/baselines/reference/submodule/compiler/APISample_watcher.js.diff @@ -13,98 +13,5 @@ -var ts = require("typescript"); +const ts = require("typescript"); function watch(rootFileNames, options) { -- var files = {}; -+ const files = {}; - // initialize the list of files -- rootFileNames.forEach(function (fileName) { -+ rootFileNames.forEach(fileName => { - files[fileName] = { version: 0 }; - }); - // Create the language service host to allow the LS to communicate with the host -- var servicesHost = { -- getScriptFileNames: function () { return rootFileNames; }, -- getScriptVersion: function (fileName) { return files[fileName] && files[fileName].version.toString(); }, -- getScriptSnapshot: function (fileName) { -+ const servicesHost = { -+ getScriptFileNames: () => rootFileNames, -+ getScriptVersion: (fileName) => files[fileName] && files[fileName].version.toString(), -+ getScriptSnapshot: (fileName) => { - if (!fs.existsSync(fileName)) { - return undefined; - } - return ts.ScriptSnapshot.fromString(fs.readFileSync(fileName).toString()); - }, -- getCurrentDirectory: function () { return process.cwd(); }, -- getCompilationSettings: function () { return options; }, -- getDefaultLibFileName: function (options) { return ts.getDefaultLibFilePath(options); }, -- fileExists: function (fileName) { return fs.existsSync(fileName); }, -- readFile: function (fileName) { return fs.readFileSync(fileName); }, -+ getCurrentDirectory: () => process.cwd(), -+ getCompilationSettings: () => options, -+ getDefaultLibFileName: (options) => ts.getDefaultLibFilePath(options), -+ fileExists: fileName => fs.existsSync(fileName), -+ readFile: fileName => fs.readFileSync(fileName), - }; - // Create the language service files -- var services = ts.createLanguageService(servicesHost, ts.createDocumentRegistry()); -+ const services = ts.createLanguageService(servicesHost, ts.createDocumentRegistry()); - // Now let's watch the files -- rootFileNames.forEach(function (fileName) { -+ rootFileNames.forEach(fileName => { - // First time around, emit all files - emitFile(fileName); - // Add a watch on the file to handle next change -- fs.watchFile(fileName, { persistent: true, interval: 250 }, function (curr, prev) { -+ fs.watchFile(fileName, { persistent: true, interval: 250 }, (curr, prev) => { - // Check timestamp - if (+curr.mtime <= +prev.mtime) { - return; -@@= skipped -48, +43 lines =@@ - }); - }); - function emitFile(fileName) { -- var output = services.getEmitOutput(fileName); -+ let output = services.getEmitOutput(fileName); - if (!output.emitSkipped) { -- console.log("Emitting ".concat(fileName)); -+ console.log(`Emitting ${fileName}`); - } - else { -- console.log("Emitting ".concat(fileName, " failed")); -+ console.log(`Emitting ${fileName} failed`); - logErrors(fileName); - } -- output.outputFiles.forEach(function (o) { -+ output.outputFiles.forEach(o => { - fs.writeFileSync(o.name, o.text, "utf8"); - }); - } - function logErrors(fileName) { -- var allDiagnostics = services.getCompilerOptionsDiagnostics() -+ let allDiagnostics = services.getCompilerOptionsDiagnostics() - .concat(services.getSyntacticDiagnostics(fileName)) - .concat(services.getSemanticDiagnostics(fileName)); -- allDiagnostics.forEach(function (diagnostic) { -- var message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"); -+ allDiagnostics.forEach(diagnostic => { -+ let message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"); - if (diagnostic.file) { -- var _a = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start), line = _a.line, character = _a.character; -- console.log(" Error ".concat(diagnostic.file.fileName, " (").concat(line + 1, ",").concat(character + 1, "): ").concat(message)); -+ let { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); -+ console.log(` Error ${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`); - } - else { -- console.log(" Error: ".concat(message)); -+ console.log(` Error: ${message}`); - } - }); - } - } - // Initialize files constituting the program as all .ts files in the current directory --var currentDirectoryFiles = fs.readdirSync(process.cwd()). -- filter(function (fileName) { return fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts"; }); -+const currentDirectoryFiles = fs.readdirSync(process.cwd()). -+ filter(fileName => fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts"); - // Start the watcher - watch(currentDirectoryFiles, { module: ts.ModuleKind.CommonJS }); \ No newline at end of file + const files = {}; + // initialize the list of files \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ArrowFunctionExpression1.js.diff b/testdata/baselines/reference/submodule/compiler/ArrowFunctionExpression1.js.diff deleted file mode 100644 index f71ea7995e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ArrowFunctionExpression1.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.ArrowFunctionExpression1.js -+++ new.ArrowFunctionExpression1.js -@@= skipped -3, +3 lines =@@ - var v = (public x: string) => { }; - - //// [ArrowFunctionExpression1.js] --var v = function (x) { }; -+var v = (x) => { }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration10.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration10.js.diff deleted file mode 100644 index 9bea73cca6..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration10.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.ClassDeclaration10.js -+++ new.ClassDeclaration10.js -@@= skipped -6, +6 lines =@@ - } - - //// [ClassDeclaration10.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration11.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration11.js.diff deleted file mode 100644 index 4cac66fea3..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration11.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.ClassDeclaration11.js -+++ new.ClassDeclaration11.js -@@= skipped -6, +6 lines =@@ - } - - //// [ClassDeclaration11.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { }; -- return C; --}()); -+class C { -+ foo() { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration13.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration13.js.diff deleted file mode 100644 index a1ad1bc5d0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration13.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.ClassDeclaration13.js -+++ new.ClassDeclaration13.js -@@= skipped -6, +6 lines =@@ - } - - //// [ClassDeclaration13.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.bar = function () { }; -- return C; --}()); -+class C { -+ bar() { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration14.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration14.js.diff deleted file mode 100644 index a1c3be512b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration14.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.ClassDeclaration14.js -+++ new.ClassDeclaration14.js -@@= skipped -6, +6 lines =@@ - } - - //// [ClassDeclaration14.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration15.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration15.js.diff deleted file mode 100644 index d73f6e6276..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration15.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.ClassDeclaration15.js -+++ new.ClassDeclaration15.js -@@= skipped -6, +6 lines =@@ - } - - //// [ClassDeclaration15.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+ constructor() { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration21.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration21.js.diff deleted file mode 100644 index 976f5eb8c2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration21.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.ClassDeclaration21.js -+++ new.ClassDeclaration21.js -@@= skipped -6, +6 lines =@@ - } - - //// [ClassDeclaration21.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype[1] = function () { }; -- return C; --}()); -+class C { -+ 1() { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration22.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration22.js.diff deleted file mode 100644 index 87198caf25..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration22.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.ClassDeclaration22.js -+++ new.ClassDeclaration22.js -@@= skipped -6, +6 lines =@@ - } - - //// [ClassDeclaration22.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype["bar"] = function () { }; -- return C; --}()); -+class C { -+ "bar"() { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration24.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration24.js.diff deleted file mode 100644 index 311e44d60c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration24.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.ClassDeclaration24.js -+++ new.ClassDeclaration24.js -@@= skipped -4, +4 lines =@@ - } - - //// [ClassDeclaration24.js] --var any = /** @class */ (function () { -- function any() { -- } -- return any; --}()); -+class any { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration25.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration25.js.diff deleted file mode 100644 index fd412b8ffb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration25.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.ClassDeclaration25.js -+++ new.ClassDeclaration25.js -@@= skipped -11, +11 lines =@@ - - - //// [ClassDeclaration25.js] --var List = /** @class */ (function () { -- function List() { -- } -- return List; --}()); -+class List { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration26.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration26.js.diff index eae54067d4..b1edb6a682 100644 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration26.js.diff +++ b/testdata/baselines/reference/submodule/compiler/ClassDeclaration26.js.diff @@ -1,19 +1,14 @@ --- old.ClassDeclaration26.js +++ new.ClassDeclaration26.js -@@= skipped -7, +7 lines =@@ - } +@@= skipped -8, +8 lines =@@ //// [ClassDeclaration26.js] --var C = /** @class */ (function () { -- function C() { + class C { +- constructor() { - this.foo = 10; - } -- return C; --}()); -+class C { + var; + export foo = 10; -+} + } var constructor; --(function () { }); -+() => { }; \ No newline at end of file + () => { }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration8.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration8.js.diff deleted file mode 100644 index 0b5b245e62..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration8.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.ClassDeclaration8.js -+++ new.ClassDeclaration8.js -@@= skipped -5, +5 lines =@@ - } - - //// [ClassDeclaration8.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclaration9.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclaration9.js.diff deleted file mode 100644 index 1d9437767c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclaration9.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.ClassDeclaration9.js -+++ new.ClassDeclaration9.js -@@= skipped -5, +5 lines =@@ - } - - //// [ClassDeclaration9.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclarationWithInvalidConstOnPropertyDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclarationWithInvalidConstOnPropertyDeclaration.js.diff index ae8712b765..8998fe2750 100644 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclarationWithInvalidConstOnPropertyDeclaration.js.diff +++ b/testdata/baselines/reference/submodule/compiler/ClassDeclarationWithInvalidConstOnPropertyDeclaration.js.diff @@ -4,12 +4,12 @@ } //// [ClassDeclarationWithInvalidConstOnPropertyDeclaration.js] --var AtomicNumbers = /** @class */ (function () { -- function AtomicNumbers() { +-let AtomicNumbers = (() => { +- class AtomicNumbers { - } - AtomicNumbers.H = 1; - return AtomicNumbers; --}()); +-})(); +class AtomicNumbers { + static H = 1; +} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ClassDeclarationWithInvalidConstOnPropertyDeclaration2.js.diff b/testdata/baselines/reference/submodule/compiler/ClassDeclarationWithInvalidConstOnPropertyDeclaration2.js.diff index efb60fa4f2..6f45402f14 100644 --- a/testdata/baselines/reference/submodule/compiler/ClassDeclarationWithInvalidConstOnPropertyDeclaration2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/ClassDeclarationWithInvalidConstOnPropertyDeclaration2.js.diff @@ -1,16 +1,12 @@ --- old.ClassDeclarationWithInvalidConstOnPropertyDeclaration2.js +++ new.ClassDeclarationWithInvalidConstOnPropertyDeclaration2.js -@@= skipped -6, +6 lines =@@ - } +@@= skipped -7, +7 lines =@@ //// [ClassDeclarationWithInvalidConstOnPropertyDeclaration2.js] --var C = /** @class */ (function () { -- function C() { + class C { +- constructor() { - this.x = 10; - } -- return C; --}()); -+class C { + const; + x = 10; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ExportAssignment7.js.diff b/testdata/baselines/reference/submodule/compiler/ExportAssignment7.js.diff deleted file mode 100644 index e386d2cbf7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ExportAssignment7.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.ExportAssignment7.js -+++ new.ExportAssignment7.js -@@= skipped -8, +8 lines =@@ - //// [ExportAssignment7.js] - "use strict"; - exports.C = void 0; --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} - module.exports = B; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ExportAssignment8.js.diff b/testdata/baselines/reference/submodule/compiler/ExportAssignment8.js.diff deleted file mode 100644 index 9baa222f15..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ExportAssignment8.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.ExportAssignment8.js -+++ new.ExportAssignment8.js -@@= skipped -8, +8 lines =@@ - //// [ExportAssignment8.js] - "use strict"; - exports.C = void 0; --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} - module.exports = B; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/MemberAccessorDeclaration15.js.diff b/testdata/baselines/reference/submodule/compiler/MemberAccessorDeclaration15.js.diff deleted file mode 100644 index 1c8fd70654..0000000000 --- a/testdata/baselines/reference/submodule/compiler/MemberAccessorDeclaration15.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.MemberAccessorDeclaration15.js -+++ new.MemberAccessorDeclaration15.js -@@= skipped -5, +5 lines =@@ - } - - //// [MemberAccessorDeclaration15.js] --var C = /** @class */ (function () { -- function C() { -- } -- Object.defineProperty(C.prototype, "Foo", { -- set: function (a) { }, -- enumerable: false, -- configurable: true -- }); -- return C; --}()); -+class C { -+ set Foo(a) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ParameterList6.js.diff b/testdata/baselines/reference/submodule/compiler/ParameterList6.js.diff deleted file mode 100644 index 1dc4362b87..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ParameterList6.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.ParameterList6.js -+++ new.ParameterList6.js -@@= skipped -6, +6 lines =@@ - } - - //// [ParameterList6.js] --var C = /** @class */ (function () { -- function C(C) { -+class C { -+ constructor(C) { - } -- return C; --}()); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ParameterList7.js.diff b/testdata/baselines/reference/submodule/compiler/ParameterList7.js.diff index b6419982ea..03676ba7b7 100644 --- a/testdata/baselines/reference/submodule/compiler/ParameterList7.js.diff +++ b/testdata/baselines/reference/submodule/compiler/ParameterList7.js.diff @@ -1,16 +1,10 @@ --- old.ParameterList7.js +++ new.ParameterList7.js -@@= skipped -7, +7 lines =@@ - } +@@= skipped -8, +8 lines =@@ //// [ParameterList7.js] --var C1 = /** @class */ (function () { -- function C1(p3) { -+class C1 { + class C1 { + p3; -+ constructor(p3) { + constructor(p3) { this.p3 = p3; - } // OK -- return C1; --}()); -+} \ No newline at end of file + } // OK \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/abstractClassInLocalScope.js.diff b/testdata/baselines/reference/submodule/compiler/abstractClassInLocalScope.js.diff deleted file mode 100644 index 6dd3a54bd1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/abstractClassInLocalScope.js.diff +++ /dev/null @@ -1,42 +0,0 @@ ---- old.abstractClassInLocalScope.js -+++ new.abstractClassInLocalScope.js -@@= skipped -9, +9 lines =@@ - - - //// [abstractClassInLocalScope.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --(function () { -- var A = /** @class */ (function () { -- function A() { -- } -- return A; -- }()); -- var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; -- }(A)); -+(() => { -+ class A { -+ } -+ class B extends A { -+ } - new B(); - return A; - })(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/abstractClassInLocalScopeIsAbstract.js.diff b/testdata/baselines/reference/submodule/compiler/abstractClassInLocalScopeIsAbstract.js.diff deleted file mode 100644 index e25160ef00..0000000000 --- a/testdata/baselines/reference/submodule/compiler/abstractClassInLocalScopeIsAbstract.js.diff +++ /dev/null @@ -1,42 +0,0 @@ ---- old.abstractClassInLocalScopeIsAbstract.js -+++ new.abstractClassInLocalScopeIsAbstract.js -@@= skipped -9, +9 lines =@@ - - - //// [abstractClassInLocalScopeIsAbstract.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --(function () { -- var A = /** @class */ (function () { -- function A() { -- } -- return A; -- }()); -- var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; -- }(A)); -+(() => { -+ class A { -+ } -+ class B extends A { -+ } - new A(); - new B(); - })(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/abstractClassUnionInstantiation.js.diff b/testdata/baselines/reference/submodule/compiler/abstractClassUnionInstantiation.js.diff index 5a7d190b56..079c343a8f 100644 --- a/testdata/baselines/reference/submodule/compiler/abstractClassUnionInstantiation.js.diff +++ b/testdata/baselines/reference/submodule/compiler/abstractClassUnionInstantiation.js.diff @@ -1,47 +1,13 @@ --- old.abstractClassUnionInstantiation.js +++ new.abstractClassUnionInstantiation.js -@@= skipped -23, +23 lines =@@ - [AbstractA, AbstractB].map(cls => new cls()); // should error - - //// [abstractClassUnionInstantiation.js] --var ConcreteA = /** @class */ (function () { -- function ConcreteA() { -- } -- return ConcreteA; --}()); --var ConcreteB = /** @class */ (function () { -- function ConcreteB() { -- } -- return ConcreteB; --}()); --var AbstractA = /** @class */ (function () { -- function AbstractA() { -- } -- return AbstractA; --}()); --var AbstractB = /** @class */ (function () { -- function AbstractB() { -- } -- return AbstractB; --}()); -+class ConcreteA { -+} -+class ConcreteB { -+} -+class AbstractA { +@@= skipped -28, +28 lines =@@ + class ConcreteB { + } + class AbstractA { + a; -+} -+class AbstractB { + } + class AbstractB { + b; -+} + } new cls1(); // should error - new cls2(); // should error - new cls3(); // should work --[ConcreteA, AbstractA, AbstractB].map(function (cls) { return new cls(); }); // should error --[AbstractA, AbstractB, ConcreteA].map(function (cls) { return new cls(); }); // should error --[ConcreteA, ConcreteB].map(function (cls) { return new cls(); }); // should work --[AbstractA, AbstractB].map(function (cls) { return new cls(); }); // should error -+[ConcreteA, AbstractA, AbstractB].map(cls => new cls()); // should error -+[AbstractA, AbstractB, ConcreteA].map(cls => new cls()); // should error -+[ConcreteA, ConcreteB].map(cls => new cls()); // should work -+[AbstractA, AbstractB].map(cls => new cls()); // should error \ No newline at end of file + new cls2(); // should error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/abstractPropertyBasics.js.diff b/testdata/baselines/reference/submodule/compiler/abstractPropertyBasics.js.diff index 7430945b40..d87f347912 100644 --- a/testdata/baselines/reference/submodule/compiler/abstractPropertyBasics.js.diff +++ b/testdata/baselines/reference/submodule/compiler/abstractPropertyBasics.js.diff @@ -1,56 +1,23 @@ --- old.abstractPropertyBasics.js +++ new.abstractPropertyBasics.js -@@= skipped -23, +23 lines =@@ - } +@@= skipped -24, +24 lines =@@ //// [abstractPropertyBasics.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var B = /** @class */ (function () { -- function B() { -- } -- return B; --}()); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- var _this = _super !== null && _super.apply(this, arguments) || this; -- _this.raw = "edge"; -- _this.ro = "readonly please"; -- return _this; -- } -- Object.defineProperty(C.prototype, "prop", { -- get: function () { return "foo"; }, -- set: function (v) { }, -- enumerable: false, -- configurable: true -- }); -- C.prototype.m = function () { }; -- return C; --}(B)); -+class B { + class B { + prop; + raw; + ro; -+} -+class C extends B { -+ get prop() { return "foo"; } -+ set prop(v) { } + } + class C extends B { +- constructor() { +- super(...arguments); +- this.raw = "edge"; +- this.ro = "readonly please"; +- } + get prop() { return "foo"; } + set prop(v) { } + raw = "edge"; + ro = "readonly please"; + readonlyProp; // don't have to give a value, in fact -+ m() { } -+} \ No newline at end of file + m() { } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/abstractPropertyInConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/abstractPropertyInConstructor.js.diff index 8c5a253797..16fbbd728c 100644 --- a/testdata/baselines/reference/submodule/compiler/abstractPropertyInConstructor.js.diff +++ b/testdata/baselines/reference/submodule/compiler/abstractPropertyInConstructor.js.diff @@ -1,151 +1,62 @@ --- old.abstractPropertyInConstructor.js +++ new.abstractPropertyInConstructor.js -@@= skipped -95, +95 lines =@@ - - +@@= skipped -97, +97 lines =@@ //// [abstractPropertyInConstructor.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var AbstractClass = /** @class */ (function () { -- function AbstractClass(str, other) { -- var _this = this; + class AbstractClass { + constructor(str, other) { - this.other = this.prop; -- this.fn = function () { return _this.prop; }; -+class AbstractClass { -+ constructor(str, other) { +- this.fn = () => this.prop; this.method(parseInt(str)); -- var val = this.prop.toLowerCase(); -+ let val = this.prop.toLowerCase(); + let val = this.prop.toLowerCase(); if (!str) { - this.prop = "Hello World"; - } - this.cb(str); - // OK, reference is inside function -- var innerFunction = function () { -- return _this.prop; -+ const innerFunction = () => { -+ return this.prop; - }; +@@= skipped -15, +13 lines =@@ // OK, references are to another instance other.cb(other.prop); } -- AbstractClass.prototype.method2 = function () { + prop; + cb; + other = this.prop; + fn = () => this.prop; -+ method2() { + method2() { this.prop = this.prop + "!"; -- }; -- return AbstractClass; --}()); --var DerivedAbstractClass = /** @class */ (function (_super) { -- __extends(DerivedAbstractClass, _super); -- function DerivedAbstractClass(str, other, yetAnother) { -- var _this = _super.call(this, str, other) || this; -- _this.cb = function (s) { }; -+ } -+} -+class DerivedAbstractClass extends AbstractClass { + } + } + class DerivedAbstractClass extends AbstractClass { + cb = (s) => { }; -+ constructor(str, other, yetAnother) { -+ super(str, other); + constructor(str, other, yetAnother) { + super(str, other); +- this.cb = (s) => { }; // there is no implementation of 'prop' in any base class -- _this.cb(_this.prop.toLowerCase()); -- _this.method(1); -+ this.cb(this.prop.toLowerCase()); -+ this.method(1); - // OK, references are to another instance - other.cb(other.prop); - yetAnother.cb(yetAnother.prop); -- return _this; -- } -- return DerivedAbstractClass; --}(AbstractClass)); --var Implementation = /** @class */ (function (_super) { -- __extends(Implementation, _super); -- function Implementation(str, other, yetAnother) { -- var _this = _super.call(this, str, other, yetAnother) || this; -- _this.prop = ""; -- _this.cb = function (s) { }; -- _this.cb(_this.prop); -- return _this; -- } -- Implementation.prototype.method = function (n) { -+ } -+} -+class Implementation extends DerivedAbstractClass { + this.cb(this.prop.toLowerCase()); + this.method(1); +@@= skipped -17, +21 lines =@@ + } + } + class Implementation extends DerivedAbstractClass { + prop = ""; + cb = (s) => { }; -+ constructor(str, other, yetAnother) { -+ super(str, other, yetAnother); -+ this.cb(this.prop); -+ } -+ method(n) { - this.cb(this.prop + n); -- }; -- return Implementation; --}(DerivedAbstractClass)); --var User = /** @class */ (function () { -- function User(a) { -+ } -+} -+class User { -+ constructor(a) { - a.prop; - a.cb("hi"); - a.method(12); - a.method2(); + constructor(str, other, yetAnother) { + super(str, other, yetAnother); +- this.prop = ""; +- this.cb = (s) => { }; + this.cb(this.prop); + } + method(n) { +@@= skipped -19, +19 lines =@@ } -- return User; --}()); --var C1 = /** @class */ (function () { -- function C1() { -- var _a; -- var self = this; // ok -- var _b = this, x = _b.x, y1 = _b.y; // error -- (_a = this, x = _a.x, y1 = _a.y, y1 = _a["y"]); // error -- } -- return C1; --}()); --var C2 = /** @class */ (function () { -- function C2() { -- var _a; -- var self = this; // ok -- var _b = this, x = _b.x, y1 = _b.y; // ok -- (_a = this, x = _a.x, y1 = _a.y, y1 = _a["y"]); // ok -- } -- return C2; --}()); -+} -+class C1 { + } + class C1 { + x; + y; -+ constructor() { -+ let self = this; // ok -+ let { x, y: y1 } = this; // error -+ ({ x, y: y1, "y": y1 } = this); // error -+ } -+} -+class C2 { + constructor() { + let self = this; // ok + let { x, y: y1 } = this; // error +@@= skipped -7, +9 lines =@@ + } + } + class C2 { + x; + y; -+ constructor() { -+ let self = this; // ok -+ let { x, y: y1 } = this; // ok -+ ({ x, y: y1, "y": y1 } = this); // ok -+ } -+} \ No newline at end of file + constructor() { + let self = this; // ok + let { x, y: y1 } = this; // ok \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/abstractPropertyNegative.js.diff b/testdata/baselines/reference/submodule/compiler/abstractPropertyNegative.js.diff index 4c72ce40d9..d8883c1c17 100644 --- a/testdata/baselines/reference/submodule/compiler/abstractPropertyNegative.js.diff +++ b/testdata/baselines/reference/submodule/compiler/abstractPropertyNegative.js.diff @@ -1,125 +1,44 @@ --- old.abstractPropertyNegative.js +++ new.abstractPropertyNegative.js -@@= skipped -45, +45 lines =@@ - +@@= skipped -46, +46 lines =@@ //// [abstractPropertyNegative.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var B = /** @class */ (function () { -- function B() { -- } -- return B; --}()); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- var _this = _super !== null && _super.apply(this, arguments) || this; -- _this.ro = "readonly please"; -- return _this; -- } -- Object.defineProperty(C.prototype, "concreteWithNoBody", { -- get: function () { }, -- enumerable: false, -- configurable: true -- }); -- return C; --}(B)); --var c = new C(); -+class B { + class B { + prop; + ro; -+} -+class C extends B { + } + class C extends B { +- constructor() { +- super(...arguments); +- this.ro = "readonly please"; +- } +- get concreteWithNoBody() { } + ro = "readonly please"; + notAllowed; -+} -+let c = new C(); + } + let c = new C(); c.ro = "error: lhs of assignment can't be readonly"; --var WrongTypeProperty = /** @class */ (function () { -- function WrongTypeProperty() { -- } -- return WrongTypeProperty; --}()); --var WrongTypePropertyImpl = /** @class */ (function (_super) { -- __extends(WrongTypePropertyImpl, _super); -- function WrongTypePropertyImpl() { -- var _this = _super !== null && _super.apply(this, arguments) || this; -- _this.num = "nope, wrong"; -- return _this; -- } -- return WrongTypePropertyImpl; --}(WrongTypeProperty)); --var WrongTypeAccessor = /** @class */ (function () { -- function WrongTypeAccessor() { -- } -- return WrongTypeAccessor; --}()); --var WrongTypeAccessorImpl = /** @class */ (function (_super) { -- __extends(WrongTypeAccessorImpl, _super); -- function WrongTypeAccessorImpl() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- Object.defineProperty(WrongTypeAccessorImpl.prototype, "num", { -- get: function () { return "nope, wrong"; }, -- enumerable: false, -- configurable: true -- }); -- return WrongTypeAccessorImpl; --}(WrongTypeAccessor)); --var WrongTypeAccessorImpl2 = /** @class */ (function (_super) { -- __extends(WrongTypeAccessorImpl2, _super); -- function WrongTypeAccessorImpl2() { -- var _this = _super !== null && _super.apply(this, arguments) || this; -- _this.num = "nope, wrong"; -- return _this; -- } -- return WrongTypeAccessorImpl2; --}(WrongTypeAccessor)); --var AbstractAccessorMismatch = /** @class */ (function () { -- function AbstractAccessorMismatch() { -- } -- Object.defineProperty(AbstractAccessorMismatch.prototype, "p1", { -- set: function (val) { }, -- enumerable: false, -- configurable: true -- }); -+class WrongTypeProperty { + class WrongTypeProperty { + num; -+} -+class WrongTypePropertyImpl extends WrongTypeProperty { + } + class WrongTypePropertyImpl extends WrongTypeProperty { +- constructor() { +- super(...arguments); +- this.num = "nope, wrong"; +- } + num = "nope, wrong"; -+} -+class WrongTypeAccessor { -+} -+class WrongTypeAccessorImpl extends WrongTypeAccessor { -+ get num() { return "nope, wrong"; } -+} -+class WrongTypeAccessorImpl2 extends WrongTypeAccessor { + } + class WrongTypeAccessor { + } +@@= skipped -24, +21 lines =@@ + get num() { return "nope, wrong"; } + } + class WrongTypeAccessorImpl2 extends WrongTypeAccessor { +- constructor() { +- super(...arguments); +- this.num = "nope, wrong"; +- } + num = "nope, wrong"; -+} -+class AbstractAccessorMismatch { -+ set p1(val) { } - ; -- Object.defineProperty(AbstractAccessorMismatch.prototype, "p2", { -- get: function () { return "should work"; }, -- enumerable: false, -- configurable: true -- }); -- return AbstractAccessorMismatch; --}()); -+ get p2() { return "should work"; } -+} \ No newline at end of file + } + class AbstractAccessorMismatch { + set p1(val) { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessInstanceMemberFromStaticMethod01.js.diff b/testdata/baselines/reference/submodule/compiler/accessInstanceMemberFromStaticMethod01.js.diff index ef09ac41a3..5586842aa1 100644 --- a/testdata/baselines/reference/submodule/compiler/accessInstanceMemberFromStaticMethod01.js.diff +++ b/testdata/baselines/reference/submodule/compiler/accessInstanceMemberFromStaticMethod01.js.diff @@ -1,19 +1,10 @@ --- old.accessInstanceMemberFromStaticMethod01.js +++ new.accessInstanceMemberFromStaticMethod01.js -@@= skipped -9, +9 lines =@@ - } +@@= skipped -10, +10 lines =@@ //// [accessInstanceMemberFromStaticMethod01.js] --var C = /** @class */ (function () { -- function C() { -+class C { + class C { + static foo; -+ bar() { -+ let k = foo; - } -- C.prototype.bar = function () { -- var k = foo; -- }; -- return C; --}()); -+} \ No newline at end of file + bar() { + let k = foo; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessOverriddenBaseClassMember1.js.diff b/testdata/baselines/reference/submodule/compiler/accessOverriddenBaseClassMember1.js.diff index f6ff800075..da5be33c25 100644 --- a/testdata/baselines/reference/submodule/compiler/accessOverriddenBaseClassMember1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/accessOverriddenBaseClassMember1.js.diff @@ -1,60 +1,19 @@ --- old.accessOverriddenBaseClassMember1.js +++ new.accessOverriddenBaseClassMember1.js -@@= skipped -17, +17 lines =@@ - +@@= skipped -18, +18 lines =@@ //// [accessOverriddenBaseClassMember1.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Point = /** @class */ (function () { -- function Point(x, y) { -+class Point { + class Point { + x; + y; -+ constructor(x, y) { + constructor(x, y) { this.x = x; this.y = y; +@@= skipped -9, +11 lines =@@ } -- Point.prototype.toString = function () { -+ toString() { - return "x=" + this.x + " y=" + this.y; -- }; -- return Point; --}()); --var ColoredPoint = /** @class */ (function (_super) { -- __extends(ColoredPoint, _super); -- function ColoredPoint(x, y, color) { -- var _this = _super.call(this, x, y) || this; -- _this.color = color; -- return _this; -- } -- ColoredPoint.prototype.toString = function () { -- return _super.prototype.toString.call(this) + " color=" + this.color; -- }; -- return ColoredPoint; --}(Point)); -+ } -+} -+class ColoredPoint extends Point { + } + class ColoredPoint extends Point { + color; -+ constructor(x, y, color) { -+ super(x, y); -+ this.color = color; -+ } -+ toString() { -+ return super.toString() + " color=" + this.color; -+ } -+} \ No newline at end of file + constructor(x, y, color) { + super(x, y); + this.color = color; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessStaticMemberFromInstanceMethod01.js.diff b/testdata/baselines/reference/submodule/compiler/accessStaticMemberFromInstanceMethod01.js.diff index 2393dd2c33..1e2c331529 100644 --- a/testdata/baselines/reference/submodule/compiler/accessStaticMemberFromInstanceMethod01.js.diff +++ b/testdata/baselines/reference/submodule/compiler/accessStaticMemberFromInstanceMethod01.js.diff @@ -1,19 +1,10 @@ --- old.accessStaticMemberFromInstanceMethod01.js +++ new.accessStaticMemberFromInstanceMethod01.js -@@= skipped -9, +9 lines =@@ - } +@@= skipped -10, +10 lines =@@ //// [accessStaticMemberFromInstanceMethod01.js] --var C = /** @class */ (function () { -- function C() { -+class C { + class C { + foo; -+ static bar() { -+ let k = foo; - } -- C.bar = function () { -- var k = foo; -- }; -- return C; --}()); -+} \ No newline at end of file + static bar() { + let k = foo; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessorAccidentalCallDiagnostic.js.diff b/testdata/baselines/reference/submodule/compiler/accessorAccidentalCallDiagnostic.js.diff deleted file mode 100644 index f6280d1a19..0000000000 --- a/testdata/baselines/reference/submodule/compiler/accessorAccidentalCallDiagnostic.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.accessorAccidentalCallDiagnostic.js -+++ new.accessorAccidentalCallDiagnostic.js -@@= skipped -11, +11 lines =@@ - - //// [accessorAccidentalCallDiagnostic.js] - // https://github.com/microsoft/TypeScript/issues/24554 --var Test24554 = /** @class */ (function () { -- function Test24554() { -- } -- Object.defineProperty(Test24554.prototype, "property", { -- get: function () { return 1; }, -- enumerable: false, -- configurable: true -- }); -- return Test24554; --}()); -+class Test24554 { -+ get property() { return 1; } -+} - function test24554(x) { - return x.property(); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessorParameterAccessibilityModifier.js.diff b/testdata/baselines/reference/submodule/compiler/accessorParameterAccessibilityModifier.js.diff deleted file mode 100644 index d3c13dfd9d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/accessorParameterAccessibilityModifier.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.accessorParameterAccessibilityModifier.js -+++ new.accessorParameterAccessibilityModifier.js -@@= skipped -6, +6 lines =@@ - } - - //// [accessorParameterAccessibilityModifier.js] --var C = /** @class */ (function () { -- function C() { -- } -- Object.defineProperty(C.prototype, "X", { -- set: function (v) { }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(C, "X", { -- set: function (v2) { }, -- enumerable: false, -- configurable: true -- }); -- return C; --}()); -+class C { -+ set X(v) { } -+ static set X(v2) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessorWithInitializer.js.diff b/testdata/baselines/reference/submodule/compiler/accessorWithInitializer.js.diff deleted file mode 100644 index 5ee6f121a2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/accessorWithInitializer.js.diff +++ /dev/null @@ -1,29 +0,0 @@ ---- old.accessorWithInitializer.js -+++ new.accessorWithInitializer.js -@@= skipped -6, +6 lines =@@ - } - - //// [accessorWithInitializer.js] --var C = /** @class */ (function () { -- function C() { -- } -- Object.defineProperty(C.prototype, "X", { -- set: function (v) { -- if (v === void 0) { v = 0; } -- }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(C, "X", { -- set: function (v2) { -- if (v2 === void 0) { v2 = 0; } -- }, -- enumerable: false, -- configurable: true -- }); -- return C; --}()); -+class C { -+ set X(v = 0) { } -+ static set X(v2 = 0) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessorWithLineTerminator.js.diff b/testdata/baselines/reference/submodule/compiler/accessorWithLineTerminator.js.diff deleted file mode 100644 index bef8f93898..0000000000 --- a/testdata/baselines/reference/submodule/compiler/accessorWithLineTerminator.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.accessorWithLineTerminator.js -+++ new.accessorWithLineTerminator.js -@@= skipped -9, +9 lines =@@ - } - - //// [accessorWithLineTerminator.js] --var C = /** @class */ (function () { -- function C() { -- } -- Object.defineProperty(C.prototype, "x", { -- get: function () { return 1; }, -- set: function (v) { }, -- enumerable: false, -- configurable: true -- }); -- return C; --}()); -+class C { -+ get x() { return 1; } -+ set x(v) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessorWithRestParam.js.diff b/testdata/baselines/reference/submodule/compiler/accessorWithRestParam.js.diff deleted file mode 100644 index ba6a3110eb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/accessorWithRestParam.js.diff +++ /dev/null @@ -1,35 +0,0 @@ ---- old.accessorWithRestParam.js -+++ new.accessorWithRestParam.js -@@= skipped -6, +6 lines =@@ - } - - //// [accessorWithRestParam.js] --var C = /** @class */ (function () { -- function C() { -- } -- Object.defineProperty(C.prototype, "X", { -- set: function () { -- var v = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- v[_i] = arguments[_i]; -- } -- }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(C, "X", { -- set: function () { -- var v2 = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- v2[_i] = arguments[_i]; -- } -- }, -- enumerable: false, -- configurable: true -- }); -- return C; --}()); -+class C { -+ set X(...v) { } -+ static set X(...v2) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessorsEmit.js.diff b/testdata/baselines/reference/submodule/compiler/accessorsEmit.js.diff deleted file mode 100644 index 3b96eefe26..0000000000 --- a/testdata/baselines/reference/submodule/compiler/accessorsEmit.js.diff +++ /dev/null @@ -1,51 +0,0 @@ ---- old.accessorsEmit.js -+++ new.accessorsEmit.js -@@= skipped -17, +17 lines =@@ - } - - //// [accessorsEmit.js] --var Result = /** @class */ (function () { -- function Result() { -- } -- return Result; --}()); --var Test = /** @class */ (function () { -- function Test() { -- } -- Object.defineProperty(Test.prototype, "Property", { -- get: function () { -- var x = 1; -- return null; -- }, -- enumerable: false, -- configurable: true -- }); -- return Test; --}()); --var Test2 = /** @class */ (function () { -- function Test2() { -- } -- Object.defineProperty(Test2.prototype, "Property", { -- get: function () { -- var x = 1; -- return null; -- }, -- enumerable: false, -- configurable: true -- }); -- return Test2; --}()); -+class Result { -+} -+class Test { -+ get Property() { -+ var x = 1; -+ return null; -+ } -+} -+class Test2 { -+ get Property() { -+ var x = 1; -+ return null; -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessors_spec_section-4.5_error-cases.js.diff b/testdata/baselines/reference/submodule/compiler/accessors_spec_section-4.5_error-cases.js.diff deleted file mode 100644 index 8a42536c9e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/accessors_spec_section-4.5_error-cases.js.diff +++ /dev/null @@ -1,45 +0,0 @@ ---- old.accessors_spec_section-4.5_error-cases.js -+++ new.accessors_spec_section-4.5_error-cases.js -@@= skipped -15, +15 lines =@@ - } - - //// [accessors_spec_section-4.5_error-cases.js] --var LanguageSpec_section_4_5_error_cases = /** @class */ (function () { -- function LanguageSpec_section_4_5_error_cases() { -- } -- Object.defineProperty(LanguageSpec_section_4_5_error_cases.prototype, "AnnotatedSetter_SetterFirst", { -- get: function () { return ""; }, -- set: function (a) { }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(LanguageSpec_section_4_5_error_cases.prototype, "AnnotatedSetter_SetterLast", { -- get: function () { return ""; }, -- set: function (a) { }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(LanguageSpec_section_4_5_error_cases.prototype, "AnnotatedGetter_GetterFirst", { -- get: function () { return ""; }, -- set: function (aStr) { aStr = 0; }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(LanguageSpec_section_4_5_error_cases.prototype, "AnnotatedGetter_GetterLast", { -- get: function () { return ""; }, -- set: function (aStr) { aStr = 0; }, -- enumerable: false, -- configurable: true -- }); -- return LanguageSpec_section_4_5_error_cases; --}()); -+class LanguageSpec_section_4_5_error_cases { -+ set AnnotatedSetter_SetterFirst(a) { } -+ get AnnotatedSetter_SetterFirst() { return ""; } -+ get AnnotatedSetter_SetterLast() { return ""; } -+ set AnnotatedSetter_SetterLast(a) { } -+ get AnnotatedGetter_GetterFirst() { return ""; } -+ set AnnotatedGetter_GetterFirst(aStr) { aStr = 0; } -+ set AnnotatedGetter_GetterLast(aStr) { aStr = 0; } -+ get AnnotatedGetter_GetterLast() { return ""; } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/accessors_spec_section-4.5_inference.js.diff b/testdata/baselines/reference/submodule/compiler/accessors_spec_section-4.5_inference.js.diff deleted file mode 100644 index 9f7d724a66..0000000000 --- a/testdata/baselines/reference/submodule/compiler/accessors_spec_section-4.5_inference.js.diff +++ /dev/null @@ -1,92 +0,0 @@ ---- old.accessors_spec_section-4.5_inference.js -+++ new.accessors_spec_section-4.5_inference.js -@@= skipped -26, +26 lines =@@ - } - - //// [accessors_spec_section-4.5_inference.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; --}(A)); --var LanguageSpec_section_4_5_inference = /** @class */ (function () { -- function LanguageSpec_section_4_5_inference() { -- } -- Object.defineProperty(LanguageSpec_section_4_5_inference.prototype, "InferredGetterFromSetterAnnotation", { -- get: function () { return new B(); }, -- set: function (a) { }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(LanguageSpec_section_4_5_inference.prototype, "InferredGetterFromSetterAnnotation_GetterFirst", { -- get: function () { return new B(); }, -- set: function (a) { }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(LanguageSpec_section_4_5_inference.prototype, "InferredFromGetter", { -- get: function () { return new B(); }, -- set: function (a) { }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(LanguageSpec_section_4_5_inference.prototype, "InferredFromGetter_SetterFirst", { -- get: function () { return new B(); }, -- set: function (a) { }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(LanguageSpec_section_4_5_inference.prototype, "InferredSetterFromGetterAnnotation", { -- get: function () { return new B(); }, -- set: function (a) { }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(LanguageSpec_section_4_5_inference.prototype, "InferredSetterFromGetterAnnotation_GetterFirst", { -- get: function () { return new B(); }, -- set: function (a) { }, -- enumerable: false, -- configurable: true -- }); -- return LanguageSpec_section_4_5_inference; --}()); -+class A { -+} -+class B extends A { -+} -+class LanguageSpec_section_4_5_inference { -+ set InferredGetterFromSetterAnnotation(a) { } -+ get InferredGetterFromSetterAnnotation() { return new B(); } -+ get InferredGetterFromSetterAnnotation_GetterFirst() { return new B(); } -+ set InferredGetterFromSetterAnnotation_GetterFirst(a) { } -+ get InferredFromGetter() { return new B(); } -+ set InferredFromGetter(a) { } -+ set InferredFromGetter_SetterFirst(a) { } -+ get InferredFromGetter_SetterFirst() { return new B(); } -+ set InferredSetterFromGetterAnnotation(a) { } -+ get InferredSetterFromGetterAnnotation() { return new B(); } -+ get InferredSetterFromGetterAnnotation_GetterFirst() { return new B(); } -+ set InferredSetterFromGetterAnnotation_GetterFirst(a) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/aliasAssignments.js.diff b/testdata/baselines/reference/submodule/compiler/aliasAssignments.js.diff index 4030e61cb2..bd54a55b29 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasAssignments.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasAssignments.js.diff @@ -1,17 +1,11 @@ --- old.aliasAssignments.js +++ new.aliasAssignments.js -@@= skipped -16, +16 lines =@@ - "use strict"; +@@= skipped -17, +17 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.someClass = void 0; --var someClass = /** @class */ (function () { -- function someClass() { -- } -- return someClass; --}()); -+class someClass { + class someClass { + someData; -+} + } exports.someClass = someClass; //// [aliasAssignments_1.js] "use strict"; diff --git a/testdata/baselines/reference/submodule/compiler/aliasBug.js.diff b/testdata/baselines/reference/submodule/compiler/aliasBug.js.diff index d143ec3acb..1906307412 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasBug.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasBug.js.diff @@ -1,31 +1,6 @@ --- old.aliasBug.js +++ new.aliasBug.js -@@= skipped -23, +23 lines =@@ - //// [aliasBug.js] - var foo; - (function (foo) { -- var Provide = /** @class */ (function () { -- function Provide() { -- } -- return Provide; -- }()); -+ class Provide { -+ } - foo.Provide = Provide; -- var bar; -+ let bar; - (function (bar) { -- var baz; -+ let baz; - (function (baz) { -- var boo = /** @class */ (function () { -- function boo() { -- } -- return boo; -- }()); -+ class boo { -+ } - baz.boo = boo; +@@= skipped -36, +36 lines =@@ })(baz = bar.baz || (bar.baz = {})); })(bar = foo.bar || (foo.bar = {})); })(foo || (foo = {})); diff --git a/testdata/baselines/reference/submodule/compiler/aliasDoesNotDuplicateSignatures.js.diff b/testdata/baselines/reference/submodule/compiler/aliasDoesNotDuplicateSignatures.js.diff index 061be475dd..78ff4b84b6 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasDoesNotDuplicateSignatures.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasDoesNotDuplicateSignatures.js.diff @@ -7,7 +7,5 @@ -var demoModule_1 = require("demoModule"); +const demoModule_1 = require("demoModule"); // Assign an incorrect type here to see the type of 'f'. --var x1 = demoNS.f; --var x2 = demoModule_1.f; -+let x1 = demoNS.f; -+let x2 = demoModule_1.f; \ No newline at end of file + let x1 = demoNS.f; + let x2 = demoModule_1.f; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/aliasErrors.js.diff b/testdata/baselines/reference/submodule/compiler/aliasErrors.js.diff index 80f19fc2ce..24b597fbc2 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasErrors.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasErrors.js.diff @@ -1,31 +1,6 @@ --- old.aliasErrors.js +++ new.aliasErrors.js -@@= skipped -34, +34 lines =@@ - //// [aliasErrors.js] - var foo; - (function (foo) { -- var Provide = /** @class */ (function () { -- function Provide() { -- } -- return Provide; -- }()); -+ class Provide { -+ } - foo.Provide = Provide; -- var bar; -+ let bar; - (function (bar) { -- var baz; -+ let baz; - (function (baz) { -- var boo = /** @class */ (function () { -- function boo() { -- } -- return boo; -- }()); -+ class boo { -+ } - baz.boo = boo; +@@= skipped -47, +47 lines =@@ })(baz = bar.baz || (bar.baz = {})); })(bar = foo.bar || (foo.bar = {})); })(foo || (foo = {})); diff --git a/testdata/baselines/reference/submodule/compiler/aliasInaccessibleModule2.js.diff b/testdata/baselines/reference/submodule/compiler/aliasInaccessibleModule2.js.diff deleted file mode 100644 index caaf9172c9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/aliasInaccessibleModule2.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.aliasInaccessibleModule2.js -+++ new.aliasInaccessibleModule2.js -@@= skipped -13, +13 lines =@@ - //// [aliasInaccessibleModule2.js] - var M; - (function (M) { -- var N; -+ let N; - (function (N) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - })(N || (N = {})); - var R = N; - M.X = R; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/aliasInstantiationExpressionGenericIntersectionNoCrash1.js.diff b/testdata/baselines/reference/submodule/compiler/aliasInstantiationExpressionGenericIntersectionNoCrash1.js.diff index 5147b27857..99893034bd 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasInstantiationExpressionGenericIntersectionNoCrash1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasInstantiationExpressionGenericIntersectionNoCrash1.js.diff @@ -5,12 +5,7 @@ //// [aliasInstantiationExpressionGenericIntersectionNoCrash1.js] -"use strict"; --var ErrImpl = /** @class */ (function () { -- function ErrImpl() { -- } -- return ErrImpl; --}()); -+class ErrImpl { + class ErrImpl { + e; -+} + } e; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/aliasOfGenericFunctionWithRestBehavedSameAsUnaliased.js.diff b/testdata/baselines/reference/submodule/compiler/aliasOfGenericFunctionWithRestBehavedSameAsUnaliased.js.diff index c36c849ac2..5f3c71a237 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasOfGenericFunctionWithRestBehavedSameAsUnaliased.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasOfGenericFunctionWithRestBehavedSameAsUnaliased.js.diff @@ -6,11 +6,6 @@ //// [aliasOfGenericFunctionWithRestBehavedSameAsUnaliased.js] -"use strict"; -// the type printback for every `test` below should be "y" --var check = "y"; --var check1 = "y"; --var check2 = "y"; --var check3 = "y"; -+let check = "y"; -+let check1 = "y"; -+let check2 = "y"; -+let check3 = "y"; \ No newline at end of file + let check = "y"; + let check1 = "y"; + let check2 = "y"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/aliasUsageInAccessorsOfClass.js.diff b/testdata/baselines/reference/submodule/compiler/aliasUsageInAccessorsOfClass.js.diff index c6295649f3..e816863525 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasUsageInAccessorsOfClass.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasUsageInAccessorsOfClass.js.diff @@ -1,75 +1,28 @@ --- old.aliasUsageInAccessorsOfClass.js +++ new.aliasUsageInAccessorsOfClass.js -@@= skipped -30, +30 lines =@@ - "use strict"; +@@= skipped -31, +31 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = void 0; --var Model = /** @class */ (function () { -- function Model() { -- } -- return Model; --}()); -+class Model { + class Model { + someData; -+} + } exports.Model = Model; //// [aliasUsage1_moduleA.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VisualizationModel = void 0; -var Backbone = require("./aliasUsage1_backbone"); --var VisualizationModel = /** @class */ (function (_super) { -- __extends(VisualizationModel, _super); -- function VisualizationModel() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return VisualizationModel; --}(Backbone.Model)); +const Backbone = require("./aliasUsage1_backbone"); -+class VisualizationModel extends Backbone.Model { -+} + class VisualizationModel extends Backbone.Model { + } exports.VisualizationModel = VisualizationModel; //// [aliasUsage1_main.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var moduleA = require("./aliasUsage1_moduleA"); --var C2 = /** @class */ (function () { -- function C2() { -- } -- Object.defineProperty(C2.prototype, "A", { -- get: function () { -- return this.x; -- }, -- set: function (x) { -- x = moduleA; -- }, -- enumerable: false, -- configurable: true -- }); -- return C2; --}()); +const moduleA = require("./aliasUsage1_moduleA"); -+class C2 { + class C2 { + x; -+ get A() { -+ return this.x; -+ } -+ set A(x) { -+ x = moduleA; -+ } -+} \ No newline at end of file + get A() { + return this.x; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/aliasUsageInArray.js.diff b/testdata/baselines/reference/submodule/compiler/aliasUsageInArray.js.diff index 7f06685666..7db6c429c0 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasUsageInArray.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasUsageInArray.js.diff @@ -1,48 +1,20 @@ --- old.aliasUsageInArray.js +++ new.aliasUsageInArray.js -@@= skipped -24, +24 lines =@@ - "use strict"; +@@= skipped -25, +25 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = void 0; --var Model = /** @class */ (function () { -- function Model() { -- } -- return Model; --}()); -+class Model { + class Model { + someData; -+} + } exports.Model = Model; //// [aliasUsageInArray_moduleA.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VisualizationModel = void 0; -var Backbone = require("./aliasUsageInArray_backbone"); --var VisualizationModel = /** @class */ (function (_super) { -- __extends(VisualizationModel, _super); -- function VisualizationModel() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return VisualizationModel; --}(Backbone.Model)); +const Backbone = require("./aliasUsageInArray_backbone"); -+class VisualizationModel extends Backbone.Model { -+} + class VisualizationModel extends Backbone.Model { + } exports.VisualizationModel = VisualizationModel; //// [aliasUsageInArray_main.js] "use strict"; diff --git a/testdata/baselines/reference/submodule/compiler/aliasUsageInFunctionExpression.js.diff b/testdata/baselines/reference/submodule/compiler/aliasUsageInFunctionExpression.js.diff index bad752b6ea..cc771acb3a 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasUsageInFunctionExpression.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasUsageInFunctionExpression.js.diff @@ -1,55 +1,25 @@ --- old.aliasUsageInFunctionExpression.js +++ new.aliasUsageInFunctionExpression.js -@@= skipped -23, +23 lines =@@ - "use strict"; +@@= skipped -24, +24 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = void 0; --var Model = /** @class */ (function () { -- function Model() { -- } -- return Model; --}()); -+class Model { + class Model { + someData; -+} + } exports.Model = Model; //// [aliasUsageInFunctionExpression_moduleA.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VisualizationModel = void 0; -var Backbone = require("./aliasUsageInFunctionExpression_backbone"); --var VisualizationModel = /** @class */ (function (_super) { -- __extends(VisualizationModel, _super); -- function VisualizationModel() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return VisualizationModel; --}(Backbone.Model)); +const Backbone = require("./aliasUsageInFunctionExpression_backbone"); -+class VisualizationModel extends Backbone.Model { -+} + class VisualizationModel extends Backbone.Model { + } exports.VisualizationModel = VisualizationModel; //// [aliasUsageInFunctionExpression_main.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var moduleA = require("./aliasUsageInFunctionExpression_moduleA"); --var f = function (x) { return x; }; --f = function (x) { return moduleA; }; +const moduleA = require("./aliasUsageInFunctionExpression_moduleA"); -+var f = (x) => x; -+f = (x) => moduleA; \ No newline at end of file + var f = (x) => x; + f = (x) => moduleA; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/aliasUsageInGenericFunction.js.diff b/testdata/baselines/reference/submodule/compiler/aliasUsageInGenericFunction.js.diff index aaf1263831..5de3c24e3f 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasUsageInGenericFunction.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasUsageInGenericFunction.js.diff @@ -1,48 +1,20 @@ --- old.aliasUsageInGenericFunction.js +++ new.aliasUsageInGenericFunction.js -@@= skipped -27, +27 lines =@@ - "use strict"; +@@= skipped -28, +28 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = void 0; --var Model = /** @class */ (function () { -- function Model() { -- } -- return Model; --}()); -+class Model { + class Model { + someData; -+} + } exports.Model = Model; //// [aliasUsageInGenericFunction_moduleA.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VisualizationModel = void 0; -var Backbone = require("./aliasUsageInGenericFunction_backbone"); --var VisualizationModel = /** @class */ (function (_super) { -- __extends(VisualizationModel, _super); -- function VisualizationModel() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return VisualizationModel; --}(Backbone.Model)); +const Backbone = require("./aliasUsageInGenericFunction_backbone"); -+class VisualizationModel extends Backbone.Model { -+} + class VisualizationModel extends Backbone.Model { + } exports.VisualizationModel = VisualizationModel; //// [aliasUsageInGenericFunction_main.js] "use strict"; diff --git a/testdata/baselines/reference/submodule/compiler/aliasUsageInIndexerOfClass.js.diff b/testdata/baselines/reference/submodule/compiler/aliasUsageInIndexerOfClass.js.diff index b302008a97..32d8707f5d 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasUsageInIndexerOfClass.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasUsageInIndexerOfClass.js.diff @@ -1,68 +1,32 @@ --- old.aliasUsageInIndexerOfClass.js +++ new.aliasUsageInIndexerOfClass.js -@@= skipped -29, +29 lines =@@ - "use strict"; +@@= skipped -30, +30 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = void 0; --var Model = /** @class */ (function () { -- function Model() { -- } -- return Model; --}()); -+class Model { + class Model { + someData; -+} + } exports.Model = Model; //// [aliasUsageInIndexerOfClass_moduleA.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VisualizationModel = void 0; -var Backbone = require("./aliasUsageInIndexerOfClass_backbone"); --var VisualizationModel = /** @class */ (function (_super) { -- __extends(VisualizationModel, _super); -- function VisualizationModel() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return VisualizationModel; --}(Backbone.Model)); +const Backbone = require("./aliasUsageInIndexerOfClass_backbone"); -+class VisualizationModel extends Backbone.Model { -+} + class VisualizationModel extends Backbone.Model { + } exports.VisualizationModel = VisualizationModel; //// [aliasUsageInIndexerOfClass_main.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var moduleA = require("./aliasUsageInIndexerOfClass_moduleA"); --var N = /** @class */ (function () { -- function N() { ++const moduleA = require("./aliasUsageInIndexerOfClass_moduleA"); + class N { +- constructor() { - this.x = moduleA; - } -- return N; --}()); --var N2 = /** @class */ (function () { -- function N2() { -- } -- return N2; --}()); -+const moduleA = require("./aliasUsageInIndexerOfClass_moduleA"); -+class N { + x = moduleA; -+} -+class N2 { + } + class N2 { + x; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/aliasUsageInObjectLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/aliasUsageInObjectLiteral.js.diff index f2f4d3b02c..906bac9bc4 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasUsageInObjectLiteral.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasUsageInObjectLiteral.js.diff @@ -1,48 +1,20 @@ --- old.aliasUsageInObjectLiteral.js +++ new.aliasUsageInObjectLiteral.js -@@= skipped -24, +24 lines =@@ - "use strict"; +@@= skipped -25, +25 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = void 0; --var Model = /** @class */ (function () { -- function Model() { -- } -- return Model; --}()); -+class Model { + class Model { + someData; -+} + } exports.Model = Model; //// [aliasUsageInObjectLiteral_moduleA.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VisualizationModel = void 0; -var Backbone = require("./aliasUsageInObjectLiteral_backbone"); --var VisualizationModel = /** @class */ (function (_super) { -- __extends(VisualizationModel, _super); -- function VisualizationModel() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return VisualizationModel; --}(Backbone.Model)); +const Backbone = require("./aliasUsageInObjectLiteral_backbone"); -+class VisualizationModel extends Backbone.Model { -+} + class VisualizationModel extends Backbone.Model { + } exports.VisualizationModel = VisualizationModel; //// [aliasUsageInObjectLiteral_main.js] "use strict"; diff --git a/testdata/baselines/reference/submodule/compiler/aliasUsageInOrExpression.js.diff b/testdata/baselines/reference/submodule/compiler/aliasUsageInOrExpression.js.diff index 0259cbfab3..2770714897 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasUsageInOrExpression.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasUsageInOrExpression.js.diff @@ -1,48 +1,20 @@ --- old.aliasUsageInOrExpression.js +++ new.aliasUsageInOrExpression.js -@@= skipped -27, +27 lines =@@ - "use strict"; +@@= skipped -28, +28 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = void 0; --var Model = /** @class */ (function () { -- function Model() { -- } -- return Model; --}()); -+class Model { + class Model { + someData; -+} + } exports.Model = Model; //// [aliasUsageInOrExpression_moduleA.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VisualizationModel = void 0; -var Backbone = require("./aliasUsageInOrExpression_backbone"); --var VisualizationModel = /** @class */ (function (_super) { -- __extends(VisualizationModel, _super); -- function VisualizationModel() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return VisualizationModel; --}(Backbone.Model)); +const Backbone = require("./aliasUsageInOrExpression_backbone"); -+class VisualizationModel extends Backbone.Model { -+} + class VisualizationModel extends Backbone.Model { + } exports.VisualizationModel = VisualizationModel; //// [aliasUsageInOrExpression_main.js] "use strict"; diff --git a/testdata/baselines/reference/submodule/compiler/aliasUsageInTypeArgumentOfExtendsClause.js.diff b/testdata/baselines/reference/submodule/compiler/aliasUsageInTypeArgumentOfExtendsClause.js.diff index a460d7e62a..47986a8d15 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasUsageInTypeArgumentOfExtendsClause.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasUsageInTypeArgumentOfExtendsClause.js.diff @@ -1,86 +1,33 @@ --- old.aliasUsageInTypeArgumentOfExtendsClause.js +++ new.aliasUsageInTypeArgumentOfExtendsClause.js -@@= skipped -27, +27 lines =@@ - "use strict"; +@@= skipped -28, +28 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = void 0; --var Model = /** @class */ (function () { -- function Model() { -- } -- return Model; --}()); -+class Model { + class Model { + someData; -+} + } exports.Model = Model; //// [aliasUsageInTypeArgumentOfExtendsClause_moduleA.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VisualizationModel = void 0; -var Backbone = require("./aliasUsageInTypeArgumentOfExtendsClause_backbone"); --var VisualizationModel = /** @class */ (function (_super) { -- __extends(VisualizationModel, _super); -- function VisualizationModel() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return VisualizationModel; --}(Backbone.Model)); +const Backbone = require("./aliasUsageInTypeArgumentOfExtendsClause_backbone"); -+class VisualizationModel extends Backbone.Model { -+} + class VisualizationModel extends Backbone.Model { + } exports.VisualizationModel = VisualizationModel; //// [aliasUsageInTypeArgumentOfExtendsClause_main.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); -var moduleA = require("./aliasUsageInTypeArgumentOfExtendsClause_moduleA"); --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); --var D = /** @class */ (function (_super) { -- __extends(D, _super); -- function D() { -- var _this = _super !== null && _super.apply(this, arguments) || this; -- _this.x = moduleA; -- return _this; -- } -- return D; --}(C)); +const moduleA = require("./aliasUsageInTypeArgumentOfExtendsClause_moduleA"); -+class C { + class C { + x; -+} -+class D extends C { + } + class D extends C { +- constructor() { +- super(...arguments); +- this.x = moduleA; +- } + x = moduleA; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/aliasUsageInVarAssignment.js.diff b/testdata/baselines/reference/submodule/compiler/aliasUsageInVarAssignment.js.diff index 189417c831..f2b32cfcab 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasUsageInVarAssignment.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasUsageInVarAssignment.js.diff @@ -1,48 +1,18 @@ --- old.aliasUsageInVarAssignment.js +++ new.aliasUsageInVarAssignment.js -@@= skipped -23, +23 lines =@@ - "use strict"; +@@= skipped -24, +24 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = void 0; --var Model = /** @class */ (function () { -- function Model() { -- } -- return Model; --}()); -+class Model { + class Model { + someData; -+} + } exports.Model = Model; //// [aliasUsageInVarAssignment_moduleA.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.VisualizationModel = void 0; -var Backbone = require("./aliasUsageInVarAssignment_backbone"); --var VisualizationModel = /** @class */ (function (_super) { -- __extends(VisualizationModel, _super); -- function VisualizationModel() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return VisualizationModel; --}(Backbone.Model)); +const Backbone = require("./aliasUsageInVarAssignment_backbone"); -+class VisualizationModel extends Backbone.Model { -+} - exports.VisualizationModel = VisualizationModel; - //// [aliasUsageInVarAssignment_main.js] - "use strict"; \ No newline at end of file + class VisualizationModel extends Backbone.Model { + } + exports.VisualizationModel = VisualizationModel; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/aliasesInSystemModule1.js.diff b/testdata/baselines/reference/submodule/compiler/aliasesInSystemModule1.js.diff index 4c7356d651..5ca85a8dce 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasesInSystemModule1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasesInSystemModule1.js.diff @@ -22,9 +22,9 @@ - z = new cls2(); - (function (M) { - M.cls = alias.Class; -- var x = new alias.Class(); -- var y = new M.cls(); -- var z = new cls2(); +- let x = new alias.Class(); +- let y = new M.cls(); +- let z = new cls2(); - })(M || (M = {})); - } - }; diff --git a/testdata/baselines/reference/submodule/compiler/aliasesInSystemModule2.js.diff b/testdata/baselines/reference/submodule/compiler/aliasesInSystemModule2.js.diff index d1d15be9de..3890e4d53e 100644 --- a/testdata/baselines/reference/submodule/compiler/aliasesInSystemModule2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/aliasesInSystemModule2.js.diff @@ -22,9 +22,9 @@ - z = new cls2(); - (function (M) { - M.cls = foo_1.alias.Class; -- var x = new foo_1.alias.Class(); -- var y = new M.cls(); -- var z = new cls2(); +- let x = new foo_1.alias.Class(); +- let y = new M.cls(); +- let z = new cls2(); - })(M || (M = {})); - } - }; diff --git a/testdata/baselines/reference/submodule/compiler/allowImportClausesToMergeWithTypes.js.diff b/testdata/baselines/reference/submodule/compiler/allowImportClausesToMergeWithTypes.js.diff index f9be5a59b2..467ca1a9f4 100644 --- a/testdata/baselines/reference/submodule/compiler/allowImportClausesToMergeWithTypes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/allowImportClausesToMergeWithTypes.js.diff @@ -7,19 +7,16 @@ -var b_1 = require("./b"); +const b_1 = require("./b"); exports.default = b_1.default; --var x = { x: "" }; -+const x = { x: "" }; + const x = { x: "" }; b_1.default; //// [index.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var a_1 = require("./a"); --var x = { x: "" }; +const a_1 = require("./a"); -+const x = { x: "" }; + const x = { x: "" }; a_1.default; -var b_1 = require("./b"); +const b_1 = require("./b"); b_1.default; --var y = x; -+const y = x; \ No newline at end of file + const y = x; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.errors.txt b/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.errors.txt deleted file mode 100644 index aa8d24f0dc..0000000000 --- a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.errors.txt +++ /dev/null @@ -1,51 +0,0 @@ -/packages/main/index.ts(1,19): error TS7016: Could not find a declaration file for module 'shared'. '/packages/shared/index.js' implicitly has an 'any' type. - Try `npm i --save-dev @types/shared` if it exists or add a new declaration (.d.ts) file containing `declare module 'shared';` - - -==== /packages/main/tsconfig.json (0 errors) ==== - { - "compilerOptions": { - "noEmit": true, - "checkJs": true, - "strict": true, - "module": "esnext", - "moduleResolution": "bundler", - "traceResolution": true, - } - } - - -==== /packages/main/index.ts (1 errors) ==== - import { x } from "shared"; - ~~~~~~~~ -!!! error TS7016: Could not find a declaration file for module 'shared'. '/packages/shared/index.js' implicitly has an 'any' type. -!!! error TS7016: Try `npm i --save-dev @types/shared` if it exists or add a new declaration (.d.ts) file containing `declare module 'shared';` - -==== /node_modules/pkg/index.d.ts (0 errors) ==== - export declare function pkg(): "pkg"; - -==== /packages/shared/package.json (0 errors) ==== - { - "name": "shared", - "version": "1.0.0", - "type": "module", - "exports": "./index.js" - } - -==== /packages/shared/utils.js (0 errors) ==== - export { pkg } from "pkg"; - -==== /packages/shared/index.js (0 errors) ==== - import { pkg } from "./utils.js"; - export const x = pkg(); - -==== /packages/main/package.json (0 errors) ==== - { - "name": "main", - "version": "1.0.0", - "type": "module", - "dependencies": { - "shared": "workspace:*" - } - } - \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.errors.txt.diff deleted file mode 100644 index c1914b50c9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.errors.txt.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.allowJsCrossMonorepoPackage.errors.txt -+++ new.allowJsCrossMonorepoPackage.errors.txt -@@= skipped -0, +0 lines =@@ -- -+/packages/main/index.ts(1,19): error TS7016: Could not find a declaration file for module 'shared'. '/packages/shared/index.js' implicitly has an 'any' type. -+ Try `npm i --save-dev @types/shared` if it exists or add a new declaration (.d.ts) file containing `declare module 'shared';` -+ -+ -+==== /packages/main/tsconfig.json (0 errors) ==== -+ { -+ "compilerOptions": { -+ "noEmit": true, -+ "checkJs": true, -+ "strict": true, -+ "module": "esnext", -+ "moduleResolution": "bundler", -+ "traceResolution": true, -+ } -+ } -+ -+ -+==== /packages/main/index.ts (1 errors) ==== -+ import { x } from "shared"; -+ ~~~~~~~~ -+!!! error TS7016: Could not find a declaration file for module 'shared'. '/packages/shared/index.js' implicitly has an 'any' type. -+!!! error TS7016: Try `npm i --save-dev @types/shared` if it exists or add a new declaration (.d.ts) file containing `declare module 'shared';` -+ -+==== /node_modules/pkg/index.d.ts (0 errors) ==== -+ export declare function pkg(): "pkg"; -+ -+==== /packages/shared/package.json (0 errors) ==== -+ { -+ "name": "shared", -+ "version": "1.0.0", -+ "type": "module", -+ "exports": "./index.js" -+ } -+ -+==== /packages/shared/utils.js (0 errors) ==== -+ export { pkg } from "pkg"; -+ -+==== /packages/shared/index.js (0 errors) ==== -+ import { pkg } from "./utils.js"; -+ export const x = pkg(); -+ -+==== /packages/main/package.json (0 errors) ==== -+ { -+ "name": "main", -+ "version": "1.0.0", -+ "type": "module", -+ "dependencies": { -+ "shared": "workspace:*" -+ } -+ } -+ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.symbols b/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.symbols index 2e20d79553..dbdc37a135 100644 --- a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.symbols +++ b/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.symbols @@ -4,3 +4,19 @@ import { x } from "shared"; >x : Symbol(x, Decl(index.ts, 0, 8)) +=== /node_modules/pkg/index.d.ts === +export declare function pkg(): "pkg"; +>pkg : Symbol(pkg, Decl(index.d.ts, 0, 0)) + +=== /packages/shared/utils.js === +export { pkg } from "pkg"; +>pkg : Symbol(pkg, Decl(utils.js, 0, 8)) + +=== /packages/shared/index.js === +import { pkg } from "./utils.js"; +>pkg : Symbol(pkg, Decl(index.js, 0, 8)) + +export const x = pkg(); +>x : Symbol(x, Decl(index.js, 1, 12)) +>pkg : Symbol(pkg, Decl(index.js, 0, 8)) + diff --git a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.symbols.diff b/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.symbols.diff deleted file mode 100644 index 69d3699f37..0000000000 --- a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.symbols.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.allowJsCrossMonorepoPackage.symbols -+++ new.allowJsCrossMonorepoPackage.symbols -@@= skipped -3, +3 lines =@@ - import { x } from "shared"; - >x : Symbol(x, Decl(index.ts, 0, 8)) - --=== /node_modules/pkg/index.d.ts === --export declare function pkg(): "pkg"; -->pkg : Symbol(pkg, Decl(index.d.ts, 0, 0)) -- --=== /packages/shared/utils.js === --export { pkg } from "pkg"; -->pkg : Symbol(pkg, Decl(utils.js, 0, 8)) -- --=== /packages/shared/index.js === --import { pkg } from "./utils.js"; -->pkg : Symbol(pkg, Decl(index.js, 0, 8)) -- --export const x = pkg(); -->x : Symbol(x, Decl(index.js, 1, 12)) -->pkg : Symbol(pkg, Decl(index.js, 0, 8)) -- \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.types b/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.types index 8472a76ba2..8a0ecbf103 100644 --- a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.types +++ b/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.types @@ -2,5 +2,22 @@ === /packages/main/index.ts === import { x } from "shared"; ->x : any +>x : "pkg" + +=== /node_modules/pkg/index.d.ts === +export declare function pkg(): "pkg"; +>pkg : () => "pkg" + +=== /packages/shared/utils.js === +export { pkg } from "pkg"; +>pkg : () => "pkg" + +=== /packages/shared/index.js === +import { pkg } from "./utils.js"; +>pkg : () => "pkg" + +export const x = pkg(); +>x : "pkg" +>pkg() : "pkg" +>pkg : () => "pkg" diff --git a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.types.diff b/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.types.diff deleted file mode 100644 index 77e6ed8ace..0000000000 --- a/testdata/baselines/reference/submodule/compiler/allowJsCrossMonorepoPackage.types.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.allowJsCrossMonorepoPackage.types -+++ new.allowJsCrossMonorepoPackage.types -@@= skipped -1, +1 lines =@@ - - === /packages/main/index.ts === - import { x } from "shared"; -->x : "pkg" -- --=== /node_modules/pkg/index.d.ts === --export declare function pkg(): "pkg"; -->pkg : () => "pkg" -- --=== /packages/shared/utils.js === --export { pkg } from "pkg"; -->pkg : () => "pkg" -- --=== /packages/shared/index.js === --import { pkg } from "./utils.js"; -->pkg : () => "pkg" -- --export const x = pkg(); -->x : "pkg" -->pkg() : "pkg" -->pkg : () => "pkg" -+>x : any diff --git a/testdata/baselines/reference/submodule/compiler/allowSyntheticDefaultImports3.js.diff b/testdata/baselines/reference/submodule/compiler/allowSyntheticDefaultImports3.js.diff index 54b8210883..6a3a8ba2c1 100644 --- a/testdata/baselines/reference/submodule/compiler/allowSyntheticDefaultImports3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/allowSyntheticDefaultImports3.js.diff @@ -11,11 +11,8 @@ - return { - setters: [], - execute: function () { -- Foo = /** @class */ (function () { -- function Foo() { -- } -- return Foo; -- }()); +- Foo = class Foo { +- }; - exports_1("Foo", Foo); - } - }; diff --git a/testdata/baselines/reference/submodule/compiler/alwaysStrictModule3.js.diff b/testdata/baselines/reference/submodule/compiler/alwaysStrictModule3.js.diff deleted file mode 100644 index 543dd479ff..0000000000 --- a/testdata/baselines/reference/submodule/compiler/alwaysStrictModule3.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.alwaysStrictModule3.js -+++ new.alwaysStrictModule3.js -@@= skipped -5, +5 lines =@@ - - //// [alwaysStrictModule3.js] - // module ES2015 --export var a = 1; -+export const a = 1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ambientConstLiterals.js.diff b/testdata/baselines/reference/submodule/compiler/ambientConstLiterals.js.diff deleted file mode 100644 index 7ffad08432..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ambientConstLiterals.js.diff +++ /dev/null @@ -1,39 +0,0 @@ ---- old.ambientConstLiterals.js -+++ new.ambientConstLiterals.js -@@= skipped -33, +33 lines =@@ - E[E["C"] = 2] = "C"; - E[E["non identifier"] = 3] = "non identifier"; - })(E || (E = {})); --var c1 = "abc"; --var c2 = 123; --var c3 = c1; --var c4 = c2; --var c5 = f(123); --var c6 = f(-123); --var c7 = true; --var c8 = E.A; --var c8b = E["non identifier"]; --var c9 = { x: "abc" }; --var c10 = [123]; --var c11 = "abc" + "def"; --var c12 = 123 + 456; --var c13 = Math.random() > 0.5 ? "abc" : "def"; --var c14 = Math.random() > 0.5 ? 123 : 456; -+const c1 = "abc"; -+const c2 = 123; -+const c3 = c1; -+const c4 = c2; -+const c5 = f(123); -+const c6 = f(-123); -+const c7 = true; -+const c8 = E.A; -+const c8b = E["non identifier"]; -+const c9 = { x: "abc" }; -+const c10 = [123]; -+const c11 = "abc" + "def"; -+const c12 = 123 + 456; -+const c13 = Math.random() > 0.5 ? "abc" : "def"; -+const c14 = Math.random() > 0.5 ? 123 : 456; - - - //// [ambientConstLiterals.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ambientExternalModuleInAnotherExternalModule.js.diff b/testdata/baselines/reference/submodule/compiler/ambientExternalModuleInAnotherExternalModule.js.diff index 1084b6b5b0..290fd25587 100644 --- a/testdata/baselines/reference/submodule/compiler/ambientExternalModuleInAnotherExternalModule.js.diff +++ b/testdata/baselines/reference/submodule/compiler/ambientExternalModuleInAnotherExternalModule.js.diff @@ -6,11 +6,8 @@ //// [ambientExternalModuleInAnotherExternalModule.js] -define(["require", "exports", "ext"], function (require, exports, ext) { - "use strict"; -- var D = /** @class */ (function () { -- function D() { -- } -- return D; -- }()); +- class D { +- } - var x = ext; - return D; -}); diff --git a/testdata/baselines/reference/submodule/compiler/ambiguousCallsWhereReturnTypesAgree.js.diff b/testdata/baselines/reference/submodule/compiler/ambiguousCallsWhereReturnTypesAgree.js.diff deleted file mode 100644 index 2d824b73c2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ambiguousCallsWhereReturnTypesAgree.js.diff +++ /dev/null @@ -1,37 +0,0 @@ ---- old.ambiguousCallsWhereReturnTypesAgree.js -+++ new.ambiguousCallsWhereReturnTypesAgree.js -@@= skipped -30, +30 lines =@@ - - - //// [ambiguousCallsWhereReturnTypesAgree.js] --var TestClass = /** @class */ (function () { -- function TestClass() { -+class TestClass { -+ bar(x) { - } -- TestClass.prototype.bar = function (x) { -- }; -- TestClass.prototype.foo = function (x) { -+ foo(x) { - this.bar(x); // should not error -- }; -- return TestClass; --}()); --var TestClass2 = /** @class */ (function () { -- function TestClass2() { - } -- TestClass2.prototype.bar = function (x) { -+} -+class TestClass2 { -+ bar(x) { - return 0; -- }; -- TestClass2.prototype.foo = function (x) { -+ } -+ foo(x) { - return this.bar(x); // should not error -- }; -- return TestClass2; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ambiguousGenericAssertion1.js.diff b/testdata/baselines/reference/submodule/compiler/ambiguousGenericAssertion1.js.diff deleted file mode 100644 index 94c8feebc1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/ambiguousGenericAssertion1.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.ambiguousGenericAssertion1.js -+++ new.ambiguousGenericAssertion1.js -@@= skipped -8, +8 lines =@@ - - //// [ambiguousGenericAssertion1.js] - function f(x) { return null; } --var r = function (x) { return x; }; -+var r = (x) => x; - var r2 = f; // valid - var r3 = << T > (x), T; - T > f; // ambiguous, appears to the parser as a << operation \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/ambiguousOverloadResolution.js.diff b/testdata/baselines/reference/submodule/compiler/ambiguousOverloadResolution.js.diff index 93505b5478..b9b8f70338 100644 --- a/testdata/baselines/reference/submodule/compiler/ambiguousOverloadResolution.js.diff +++ b/testdata/baselines/reference/submodule/compiler/ambiguousOverloadResolution.js.diff @@ -1,40 +1,10 @@ --- old.ambiguousOverloadResolution.js +++ new.ambiguousOverloadResolution.js -@@= skipped -10, +10 lines =@@ - var t: number = f(x, x); // Not an error - - //// [ambiguousOverloadResolution.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; --}(A)); -+class A { -+} -+class B extends A { +@@= skipped -13, +13 lines =@@ + class A { + } + class B extends A { + x; -+} + } var x; var t = f(x, x); // Not an error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/amdModuleConstEnumUsage.js.diff b/testdata/baselines/reference/submodule/compiler/amdModuleConstEnumUsage.js.diff index 850a0b523c..3f808fe9b9 100644 --- a/testdata/baselines/reference/submodule/compiler/amdModuleConstEnumUsage.js.diff +++ b/testdata/baselines/reference/submodule/compiler/amdModuleConstEnumUsage.js.diff @@ -27,16 +27,10 @@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.User = void 0; -- var User = /** @class */ (function () { -- function User() { -- } -- User.prototype.method = function (input) { +- class User { +- method(input) { - if (0 /* CharCode.A */ === input) { } -- }; -- return User; -- }()); -- exports.User = User; --}); +- } +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.User = void 0; @@ -44,6 +38,8 @@ +class User { + method(input) { + if (cc_1.CharCode.A === input) { } -+ } + } +- exports.User = User; +-}); +} +exports.User = User; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/amdModuleName1.js.diff b/testdata/baselines/reference/submodule/compiler/amdModuleName1.js.diff index daf96abb49..c3aeb7974e 100644 --- a/testdata/baselines/reference/submodule/compiler/amdModuleName1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/amdModuleName1.js.diff @@ -7,20 +7,18 @@ -define("NamedModule", ["require", "exports"], function (require, exports) { - "use strict"; - /// -- var Foo = /** @class */ (function () { -- function Foo() { +- class Foo { +- constructor() { - this.x = 5; - } -- return Foo; -- }()); -- return Foo; --}); +"use strict"; +/// +class Foo { + x; + constructor() { + this.x = 5; -+ } + } +- return Foo; +-}); +} +module.exports = Foo; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/amdModuleName2.js.diff b/testdata/baselines/reference/submodule/compiler/amdModuleName2.js.diff index 129bbb641f..9488e5c4c0 100644 --- a/testdata/baselines/reference/submodule/compiler/amdModuleName2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/amdModuleName2.js.diff @@ -8,14 +8,10 @@ - "use strict"; - /// - /// -- var Foo = /** @class */ (function () { -- function Foo() { +- class Foo { +- constructor() { - this.x = 5; - } -- return Foo; -- }()); -- return Foo; --}); +"use strict"; +/// +/// @@ -23,6 +19,8 @@ + x; + constructor() { + this.x = 5; -+ } + } +- return Foo; +-}); +} +module.exports = Foo; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js.diff b/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js.diff index d335b0a472..0af2b84978 100644 --- a/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js.diff +++ b/testdata/baselines/reference/submodule/compiler/anonClassDeclarationEmitIsAnon.js.diff @@ -1,104 +1,33 @@ --- old.anonClassDeclarationEmitIsAnon.js +++ new.anonClassDeclarationEmitIsAnon.js -@@= skipped -35, +35 lines =@@ - - //// [wrapClass.js] - "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - Object.defineProperty(exports, "__esModule", { value: true }); - exports.wrapClass = wrapClass; - exports.Timestamped = Timestamped; - function wrapClass(param) { -- return /** @class */ (function () { -- function Wrapped() { -- } -- Wrapped.prototype.foo = function () { -+ return class Wrapped { -+ foo() { - return param; -- }; -- return Wrapped; -- }()); -+ } -+ }; +@@= skipped -47, +47 lines =@@ } function Timestamped(Base) { -- return /** @class */ (function (_super) { -- __extends(class_1, _super); -- function class_1() { -- var _this = _super !== null && _super.apply(this, arguments) || this; -- _this.timestamp = Date.now(); -- return _this; + return class extends Base { +- constructor() { +- super(...arguments); +- this.timestamp = Date.now(); - } -- return class_1; -- }(Base)); -+ return class extends Base { + timestamp = Date.now(); -+ }; + }; } //// [index.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.TimestampedUser = exports.User = void 0; -var wrapClass_1 = require("./wrapClass"); +const wrapClass_1 = require("./wrapClass"); exports.default = (0, wrapClass_1.wrapClass)(0); // Simple class --var User = /** @class */ (function () { -- function User() { + class User { +- constructor() { - this.name = ''; - } -- return User; --}()); -+class User { + name = ''; -+} + } exports.User = User; // User that is Timestamped --var TimestampedUser = /** @class */ (function (_super) { -- __extends(TimestampedUser, _super); -- function TimestampedUser() { -- return _super.call(this) || this; -+class TimestampedUser extends (0, wrapClass_1.Timestamped)(User) { -+ constructor() { -+ super(); - } -- return TimestampedUser; --}((0, wrapClass_1.Timestamped)(User))); -+} - exports.TimestampedUser = TimestampedUser; - - -@@= skipped -98, +54 lines =@@ +@@= skipped -47, +42 lines =@@ }; }; export default _default; diff --git a/testdata/baselines/reference/submodule/compiler/anonterface.js.diff b/testdata/baselines/reference/submodule/compiler/anonterface.js.diff deleted file mode 100644 index 6e6d353418..0000000000 --- a/testdata/baselines/reference/submodule/compiler/anonterface.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.anonterface.js -+++ new.anonterface.js -@@= skipped -18, +18 lines =@@ - //// [anonterface.js] - var M; - (function (M) { -- var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.m = function (fn, n2) { -+ class C { -+ m(fn, n2) { - return fn(n2); -- }; -- return C; -- }()); -+ } -+ } - M.C = C; - })(M || (M = {})); - var c = new M.C(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/anonymousClassDeclarationDoesntPrintWithReadonly.js.diff b/testdata/baselines/reference/submodule/compiler/anonymousClassDeclarationDoesntPrintWithReadonly.js.diff index 12d65fe02e..fea082a3df 100644 --- a/testdata/baselines/reference/submodule/compiler/anonymousClassDeclarationDoesntPrintWithReadonly.js.diff +++ b/testdata/baselines/reference/submodule/compiler/anonymousClassDeclarationDoesntPrintWithReadonly.js.diff @@ -1,47 +1,10 @@ --- old.anonymousClassDeclarationDoesntPrintWithReadonly.js +++ new.anonymousClassDeclarationDoesntPrintWithReadonly.js -@@= skipped -10, +10 lines =@@ - - //// [anonymousClassDeclarationDoesntPrintWithReadonly.js] - "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -14, +14 lines =@@ exports.X = void 0; exports.y = y; --var X = /** @class */ (function () { -- function X(a) { -+class X { + class X { + a; -+ constructor(a) { + constructor(a) { this.a = a; - } -- return X; --}()); -+} - exports.X = X; - function y() { -- return /** @class */ (function (_super) { -- __extends(class_1, _super); -- function class_1() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return class_1; -- }(X)); -+ return class extends X { -+ }; - } - + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/anonymousClassExpression1.js.diff b/testdata/baselines/reference/submodule/compiler/anonymousClassExpression1.js.diff deleted file mode 100644 index c0cb008daf..0000000000 --- a/testdata/baselines/reference/submodule/compiler/anonymousClassExpression1.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.anonymousClassExpression1.js -+++ new.anonymousClassExpression1.js -@@= skipped -6, +6 lines =@@ - - //// [anonymousClassExpression1.js] - function f() { -- return typeof /** @class */ (function () { -- function class_1() { -- } -- return class_1; -- }()) === "function"; -+ return typeof class { -+ } === "function"; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/anonymousClassExpression2.js.diff b/testdata/baselines/reference/submodule/compiler/anonymousClassExpression2.js.diff deleted file mode 100644 index 03eef30d4b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/anonymousClassExpression2.js.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- old.anonymousClassExpression2.js -+++ new.anonymousClassExpression2.js -@@= skipped -24, +24 lines =@@ - // note: repros with `while (0);` too - // but it's less inscrutable and more obvious to put it *inside* the loop - while (0) { -- var A = /** @class */ (function () { -- function A() { -- } -- A.prototype.methodA = function () { -+ class A { -+ methodA() { - this; //note: a this reference of some kind is required to trigger the bug -- }; -- return A; -- }()); -- var B = /** @class */ (function () { -- function B() { - } -- B.prototype.methodB = function () { -+ } -+ class B { -+ methodB() { - this.methodA; // error - this.methodB; // ok -- }; -- return B; -- }()); -+ } -+ } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/anyAndUnknownHaveFalsyComponents.js.diff b/testdata/baselines/reference/submodule/compiler/anyAndUnknownHaveFalsyComponents.js.diff index 189c6481b5..22f83fb0a8 100644 --- a/testdata/baselines/reference/submodule/compiler/anyAndUnknownHaveFalsyComponents.js.diff +++ b/testdata/baselines/reference/submodule/compiler/anyAndUnknownHaveFalsyComponents.js.diff @@ -15,8 +15,7 @@ - }; - return __assign.apply(this, arguments); -}; --var y1 = x1 && 3; -+const y1 = x1 && 3; + const y1 = x1 && 3; function foo1() { - return __assign({ display: "block" }, (isTreeHeader1 && { - display: "flex", @@ -28,8 +27,7 @@ + }) + }; } --var y2 = x2 && 3; -+const y2 = x2 && 3; + const y2 = x2 && 3; function foo2() { - return __assign({ display: "block" }, (isTreeHeader1 && { - display: "flex", diff --git a/testdata/baselines/reference/submodule/compiler/anyIdenticalToItself.js.diff b/testdata/baselines/reference/submodule/compiler/anyIdenticalToItself.js.diff deleted file mode 100644 index 64e5e74c65..0000000000 --- a/testdata/baselines/reference/submodule/compiler/anyIdenticalToItself.js.diff +++ /dev/null @@ -1,29 +0,0 @@ ---- old.anyIdenticalToItself.js -+++ new.anyIdenticalToItself.js -@@= skipped -15, +15 lines =@@ - - //// [anyIdenticalToItself.js] - function foo(x, y) { } --var C = /** @class */ (function () { -- function C() { -- } -- Object.defineProperty(C.prototype, "X", { -- get: function () { -- var y; -- return y; -- }, -- set: function (v) { -- }, -- enumerable: false, -- configurable: true -- }); -- return C; --}()); -+class C { -+ get X() { -+ var y; -+ return y; -+ } -+ set X(v) { -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/anyInferenceAnonymousFunctions.js.diff b/testdata/baselines/reference/submodule/compiler/anyInferenceAnonymousFunctions.js.diff deleted file mode 100644 index cadde7f29c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/anyInferenceAnonymousFunctions.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.anyInferenceAnonymousFunctions.js -+++ new.anyInferenceAnonymousFunctions.js -@@= skipped -23, +23 lines =@@ - paired.reduce(function (a1, a2) { - return a1.concat({}); - }, []); --paired.reduce(function (b1, b2) { -+paired.reduce((b1, b2) => { - return b1.concat({}); - }, []); --paired.reduce(function (b3, b4) { return b3.concat({}); }, []); --paired.map(function (c1) { return c1.count; }); -+paired.reduce((b3, b4) => b3.concat({}), []); -+paired.map((c1) => c1.count); - paired.map(function (c2) { return c2.count; }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argsInScope.js.diff b/testdata/baselines/reference/submodule/compiler/argsInScope.js.diff deleted file mode 100644 index 2c47da9455..0000000000 --- a/testdata/baselines/reference/submodule/compiler/argsInScope.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.argsInScope.js -+++ new.argsInScope.js -@@= skipped -13, +13 lines =@@ - - - //// [argsInScope.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.P = function (ii, j, k) { -+class C { -+ P(ii, j, k) { - for (var i = 0; i < arguments.length; i++) { - // WScript.Echo("param: " + arguments[i]); - } -- }; -- return C; --}()); -+ } -+} - var c = new C(); - c.P(1, 2, 3); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsAsPropertyName.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsAsPropertyName.js.diff deleted file mode 100644 index ec396e8ac2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/argumentsAsPropertyName.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.argumentsAsPropertyName.js -+++ new.argumentsAsPropertyName.js -@@= skipped -18, +18 lines =@@ - - //// [argumentsAsPropertyName.js] - function myFunction(myType) { -- var _loop_1 = function (i) { -+ for (let i = 0; i < 10; i++) { - use(myType.arguments[i]); - // create closure so that tsc will turn loop body into function -- var x = 5; -+ const x = 5; - [1, 2, 3].forEach(function (j) { use(x); }); -- }; -- for (var i = 0; i < 10; i++) { -- _loop_1(i); - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsAsPropertyName2.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsAsPropertyName2.js.diff deleted file mode 100644 index 12381631f4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/argumentsAsPropertyName2.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.argumentsAsPropertyName2.js -+++ new.argumentsAsPropertyName2.js -@@= skipped -16, +16 lines =@@ - //// [argumentsAsPropertyName2.js] - // target: es5 - function foo() { -- var _loop_1 = function (x) { -- var i; -+ for (let x = 0; x < 1; ++x) { -+ let i; - [].forEach(function () { i; }); - ({ arguments: 0 }); -- ({ arguments: arguments_1 }); -- ({ arguments: arguments_1 }); -- }; -- var arguments_1 = arguments; -- for (var x = 0; x < 1; ++x) { -- _loop_1(x); -+ ({ arguments }); -+ ({ arguments: arguments }); - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsObjectIterator01_ES5.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsObjectIterator01_ES5.js.diff deleted file mode 100644 index a471eefaf8..0000000000 --- a/testdata/baselines/reference/submodule/compiler/argumentsObjectIterator01_ES5.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.argumentsObjectIterator01_ES5.js -+++ new.argumentsObjectIterator01_ES5.js -@@= skipped -10, +10 lines =@@ - - //// [argumentsObjectIterator01_ES5.js] - function doubleAndReturnAsArray(x, y, z) { -- var result = []; -- for (var _i = 0, arguments_1 = arguments; _i < arguments_1.length; _i++) { -- var arg = arguments_1[_i]; -+ let result = []; -+ for (let arg of arguments) { - result.push(arg + arg); - } - return result; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsObjectIterator02_ES5.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsObjectIterator02_ES5.js.diff deleted file mode 100644 index 739d4bd153..0000000000 --- a/testdata/baselines/reference/submodule/compiler/argumentsObjectIterator02_ES5.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.argumentsObjectIterator02_ES5.js -+++ new.argumentsObjectIterator02_ES5.js -@@= skipped -14, +14 lines =@@ - - //// [argumentsObjectIterator02_ES5.js] - function doubleAndReturnAsArray(x, y, z) { -- var blah = arguments[Symbol.iterator]; -- var result = []; -- for (var _i = 0, _a = blah(); _i < _a.length; _i++) { -- var arg = _a[_i]; -+ let blah = arguments[Symbol.iterator]; -+ let result = []; -+ for (let arg of blah()) { - result.push(arg + arg); - } - return result; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsObjectIterator03_ES5.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsObjectIterator03_ES5.js.diff deleted file mode 100644 index 5ae567ce07..0000000000 --- a/testdata/baselines/reference/submodule/compiler/argumentsObjectIterator03_ES5.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.argumentsObjectIterator03_ES5.js -+++ new.argumentsObjectIterator03_ES5.js -@@= skipped -10, +10 lines =@@ - - //// [argumentsObjectIterator03_ES5.js] - function asReversedTuple(a, b, c) { -- var x = arguments[0], y = arguments[1], z = arguments[2]; -+ let [x, y, z] = arguments; - return [z, y, x]; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.js.diff index cccdbb2af1..9af6159f98 100644 --- a/testdata/baselines/reference/submodule/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.js.diff +++ b/testdata/baselines/reference/submodule/compiler/argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.js.diff @@ -1,60 +1,44 @@ --- old.argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.js +++ new.argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.js -@@= skipped -32, +32 lines =@@ - +@@= skipped -33, +33 lines =@@ //// [argumentsUsedInClassFieldInitializerOrStaticInitializationBlock.js] function A() { -- return /** @class */ (function () { -- function T() { + return class T { +- constructor() { - this.a = arguments; - } -- return T; -- }()); -+ return class T { + a = arguments; -+ }; + }; } function A1() { -- return new /** @class */ (function () { -- function T() { + return new class T { +- constructor() { - this.a = arguments; - } -- return T; -- }()); -+ return new class T { + a = arguments; -+ }; + }; } function B() { -- return /** @class */ (function () { -- function T() { + return class T { +- constructor() { - this.a = { b: arguments }; - } -- return T; -- }()); -+ return class T { + a = { b: arguments }; -+ }; + }; } function B1() { -- return new /** @class */ (function () { -- function T() { + return new class T { +- constructor() { - this.a = { b: arguments }; - } -- return T; -- }()); -+ return new class T { + a = { b: arguments }; -+ }; + }; } function C() { -- return /** @class */ (function () { -- function T() { + return class T { +- constructor() { - this.a = function () { arguments; }; - } -- return T; -- }()); -+ return class T { + a = function () { arguments; }; -+ }; + }; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/argumentsUsedInObjectLiteralProperty.js.diff b/testdata/baselines/reference/submodule/compiler/argumentsUsedInObjectLiteralProperty.js.diff deleted file mode 100644 index dd13a0c4b0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/argumentsUsedInObjectLiteralProperty.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.argumentsUsedInObjectLiteralProperty.js -+++ new.argumentsUsedInObjectLiteralProperty.js -@@= skipped -9, +9 lines =@@ - } - - //// [argumentsUsedInObjectLiteralProperty.js] --var A = /** @class */ (function () { -- function A() { -- } -- A.createSelectableViewModel = function (initialState, selectedValue) { -+class A { -+ static createSelectableViewModel(initialState, selectedValue) { - return { - selectedValue: arguments.length - }; -- }; -- return A; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arithAssignTyping.js.diff b/testdata/baselines/reference/submodule/compiler/arithAssignTyping.js.diff deleted file mode 100644 index ca83d07896..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arithAssignTyping.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.arithAssignTyping.js -+++ new.arithAssignTyping.js -@@= skipped -16, +16 lines =@@ - f ^= 1; // error - - //// [arithAssignTyping.js] --var f = /** @class */ (function () { -- function f() { -- } -- return f; --}()); -+class f { -+} - f += ''; // error - f += 1; // error - f -= 1; // error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arityErrorRelatedSpanBindingPattern.js.diff b/testdata/baselines/reference/submodule/compiler/arityErrorRelatedSpanBindingPattern.js.diff deleted file mode 100644 index f6e5f0a5a2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arityErrorRelatedSpanBindingPattern.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.arityErrorRelatedSpanBindingPattern.js -+++ new.arityErrorRelatedSpanBindingPattern.js -@@= skipped -10, +10 lines =@@ - - - //// [arityErrorRelatedSpanBindingPattern.js] --function foo(a, b, _a) { -- var c = _a.c; --} --function bar(a, b, _a) { -- var c = _a[0]; --} -+function foo(a, b, { c }) { } -+function bar(a, b, [c]) { } - foo("", 0); - bar("", 0); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest1.js.diff b/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest1.js.diff deleted file mode 100644 index 1b8626d7a1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest1.js.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.arrayAssignmentTest1.js -+++ new.arrayAssignmentTest1.js -@@= skipped -87, +87 lines =@@ - arr_any = i1; // should be an error - is - - //// [arrayAssignmentTest1.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var C1 = /** @class */ (function () { -- function C1() { -- } -- C1.prototype.IM1 = function () { return null; }; -- C1.prototype.C1M1 = function () { return null; }; -- return C1; --}()); --var C2 = /** @class */ (function (_super) { -- __extends(C2, _super); -- function C2() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- C2.prototype.C2M1 = function () { return null; }; -- return C2; --}(C1)); --var C3 = /** @class */ (function () { -- function C3() { -- } -- C3.prototype.CM3M1 = function () { return 3; }; -- return C3; --}()); -+class C1 { -+ IM1() { return null; } -+ C1M1() { return null; } -+} -+class C2 extends C1 { -+ C2M1() { return null; } -+} -+class C3 { -+ CM3M1() { return 3; } -+} - /* - - This behaves unexpectedly with the following types: \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest2.js.diff b/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest2.js.diff deleted file mode 100644 index 20c0f401e0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest2.js.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.arrayAssignmentTest2.js -+++ new.arrayAssignmentTest2.js -@@= skipped -61, +61 lines =@@ - - - //// [arrayAssignmentTest2.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var C1 = /** @class */ (function () { -- function C1() { -- } -- C1.prototype.IM1 = function () { return null; }; -- C1.prototype.C1M1 = function () { return null; }; -- return C1; --}()); --var C2 = /** @class */ (function (_super) { -- __extends(C2, _super); -- function C2() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- C2.prototype.C2M1 = function () { return null; }; -- return C2; --}(C1)); --var C3 = /** @class */ (function () { -- function C3() { -- } -- C3.prototype.CM3M1 = function () { return 3; }; -- return C3; --}()); -+class C1 { -+ IM1() { return null; } -+ C1M1() { return null; } -+} -+class C2 extends C1 { -+ C2M1() { return null; } -+} -+class C3 { -+ CM3M1() { return 3; } -+} - /* - - This behaves unexpectedly with the following types: \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest3.js.diff b/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest3.js.diff index 32c230238f..aa56f2d95c 100644 --- a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest3.js.diff @@ -1,26 +1,11 @@ --- old.arrayAssignmentTest3.js +++ new.arrayAssignmentTest3.js -@@= skipped -19, +19 lines =@@ - // The following gives no error - // Michal saw no error if he used number instead of B, - // but I do... --var B = /** @class */ (function () { -- function B() { -- } -- return B; --}()); --var a = /** @class */ (function () { -- function a(x, y, z) { -+class B { -+} -+class a { +@@= skipped -22, +22 lines =@@ + class B { + } + class a { + x; + y; -+ constructor(x, y, z) { + constructor(x, y, z) { this.x = x; - this.y = y; - } -- return a; --}()); -+} - var xx = new a(null, 7, new B()); \ No newline at end of file + this.y = y; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest4.js.diff b/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest4.js.diff deleted file mode 100644 index ca2ea88559..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest4.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.arrayAssignmentTest4.js -+++ new.arrayAssignmentTest4.js -@@= skipped -26, +26 lines =@@ - - - //// [arrayAssignmentTest4.js] --var C3 = /** @class */ (function () { -- function C3() { -- } -- C3.prototype.CM3M1 = function () { return 3; }; -- return C3; --}()); -+class C3 { -+ CM3M1() { return 3; } -+} - /* - - This behaves unexpectedly with teh following types: \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest5.js.diff b/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest5.js.diff deleted file mode 100644 index 39f0c732ba..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest5.js.diff +++ /dev/null @@ -1,29 +0,0 @@ ---- old.arrayAssignmentTest5.js -+++ new.arrayAssignmentTest5.js -@@= skipped -37, +37 lines =@@ - //// [arrayAssignmentTest5.js] - var Test; - (function (Test) { -- var Bug = /** @class */ (function () { -- function Bug() { -- } -- Bug.prototype.onEnter = function (line, state, offset) { -+ class Bug { -+ onEnter(line, state, offset) { - var lineTokens = this.tokenize(line, state, true); - var tokens = lineTokens.tokens; - if (tokens.length === 0) { - return this.onEnter(line, tokens, offset); // <== this should produce an error since onEnter can not be called with (string, IStateToken[], offset) - } -- }; -- Bug.prototype.tokenize = function (line, state, includeStates) { -+ } -+ tokenize(line, state, includeStates) { - return null; -- }; -- return Bug; -- }()); -+ } -+ } - Test.Bug = Bug; - })(Test || (Test = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest6.js.diff b/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest6.js.diff deleted file mode 100644 index 43e49a6fda..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayAssignmentTest6.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.arrayAssignmentTest6.js -+++ new.arrayAssignmentTest6.js -@@= skipped -24, +24 lines =@@ - //// [arrayAssignmentTest6.js] - var Test; - (function (Test) { -- var Bug = /** @class */ (function () { -- function Bug() { -- } -- Bug.prototype.tokenize = function (line, tokens, includeStates) { -+ class Bug { -+ tokenize(line, tokens, includeStates) { - return null; -- }; -- return Bug; -- }()); -+ } -+ } - Test.Bug = Bug; - })(Test || (Test = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayBestCommonTypes.js.diff b/testdata/baselines/reference/submodule/compiler/arrayBestCommonTypes.js.diff index 42105013ad..0b4eb802fb 100644 --- a/testdata/baselines/reference/submodule/compiler/arrayBestCommonTypes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrayBestCommonTypes.js.diff @@ -1,124 +1,18 @@ --- old.arrayBestCommonTypes.js +++ new.arrayBestCommonTypes.js -@@= skipped -109, +109 lines =@@ - - - //// [arrayBestCommonTypes.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - var EmptyTypes; - (function (EmptyTypes) { -- var base = /** @class */ (function () { -- function base() { -- } -- return base; -- }()); -- var base2 = /** @class */ (function () { -- function base2() { -- } -- return base2; -- }()); -- var derived = /** @class */ (function (_super) { -- __extends(derived, _super); -- function derived() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return derived; -- }(base)); -- var f = /** @class */ (function () { -- function f() { -- } -- f.prototype.voidIfAny = function (x, y) { -- if (y === void 0) { y = false; } -- return null; -- }; -- f.prototype.x = function () { -+ class base { -+ } -+ class base2 { -+ } -+ class derived extends base { -+ } -+ class f { -+ voidIfAny(x, y = false) { return null; } -+ x() { - (this.voidIfAny([4, 2][0])); - (this.voidIfAny([4, 2, undefined][0])); - (this.voidIfAny([undefined, 2, 4][0])); -@@= skipped -70, +39 lines =@@ - var b2 = [base2Obj, baseObj, ifaceObj]; - var b3 = [baseObj, ifaceObj, base2Obj]; - var b4 = [ifaceObj, baseObj, base2Obj]; -- }; -- return f; -- }()); -+ } -+ } - })(EmptyTypes || (EmptyTypes = {})); +@@= skipped -154, +154 lines =@@ var NonEmptyTypes; (function (NonEmptyTypes) { -- var base = /** @class */ (function () { -- function base() { -- } -- return base; -- }()); -- var base2 = /** @class */ (function () { -- function base2() { -- } -- return base2; -- }()); -- var derived = /** @class */ (function (_super) { -- __extends(derived, _super); -- function derived() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return derived; -- }(base)); -- var f = /** @class */ (function () { -- function f() { -- } -- f.prototype.voidIfAny = function (x, y) { -- if (y === void 0) { y = false; } -- return null; -- }; -- f.prototype.x = function () { -+ class base { + class base { + x; + y; -+ } -+ class base2 { + } + class base2 { + x; + z; -+ } -+ class derived extends base { + } + class derived extends base { + a; -+ } -+ class f { -+ voidIfAny(x, y = false) { return null; } -+ x() { - (this.voidIfAny([4, 2][0])); - (this.voidIfAny([4, 2, undefined][0])); - (this.voidIfAny([undefined, 2, 4][0])); -@@= skipped -59, +47 lines =@@ - var b2 = [base2Obj, baseObj, ifaceObj]; - var b3 = [baseObj, ifaceObj, base2Obj]; - var b4 = [ifaceObj, baseObj, base2Obj]; -- }; -- return f; -- }()); -+ } -+ } - })(NonEmptyTypes || (NonEmptyTypes = {})); \ No newline at end of file + } + class f { + voidIfAny(x, y = false) { return null; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayConcatMap.js.diff b/testdata/baselines/reference/submodule/compiler/arrayConcatMap.js.diff deleted file mode 100644 index 0a5ec848f0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayConcatMap.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.arrayConcatMap.js -+++ new.arrayConcatMap.js -@@= skipped -5, +5 lines =@@ - - //// [arrayConcatMap.js] - var x = [].concat([{ a: 1 }], [{ a: 2 }]) -- .map(function (b) { return b.a; }); -+ .map(b => b.a); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayDestructuringInSwitch1.js.diff b/testdata/baselines/reference/submodule/compiler/arrayDestructuringInSwitch1.js.diff deleted file mode 100644 index 72a9cd5956..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayDestructuringInSwitch1.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.arrayDestructuringInSwitch1.js -+++ new.arrayDestructuringInSwitch1.js -@@= skipped -28, +28 lines =@@ - exports.evaluate = evaluate; - function evaluate(expression) { - if (Array.isArray(expression)) { -- var operator = expression[0], operands = expression.slice(1); -+ const [operator, ...operands] = expression; - switch (operator) { - case 'and': { -- return operands.every(function (child) { return evaluate(child); }); -+ return operands.every((child) => evaluate(child)); - } - case 'not': { - return !evaluate(operands[0]); - } - default: { -- throw new Error("".concat(operator, " is not a supported operator")); -+ throw new Error(`${operator} is not a supported operator`); - } - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayDestructuringInSwitch2.js.diff b/testdata/baselines/reference/submodule/compiler/arrayDestructuringInSwitch2.js.diff deleted file mode 100644 index 844c597bfd..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayDestructuringInSwitch2.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.arrayDestructuringInSwitch2.js -+++ new.arrayDestructuringInSwitch2.js -@@= skipped -17, +17 lines =@@ - - //// [arrayDestructuringInSwitch2.js] - function foo(x) { -- var kind = x.kind, a = x.a; -+ const { kind, a } = x; - switch (kind) { - case "a": - return a[0]; - case "b": - return 1; - default: -- var n = a[0]; -+ const [n] = a; - return a; - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayEvery.js.diff b/testdata/baselines/reference/submodule/compiler/arrayEvery.js.diff deleted file mode 100644 index 879276daed..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayEvery.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.arrayEvery.js -+++ new.arrayEvery.js -@@= skipped -10, +10 lines =@@ - - - //// [arrayEvery.js] --var foo = ['aaa']; --var isString = function (x) { return typeof x === 'string'; }; -+const foo = ['aaa']; -+const isString = (x) => typeof x === 'string'; - if (foo.every(isString)) { - foo[0].slice(0); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayFilter.js.diff b/testdata/baselines/reference/submodule/compiler/arrayFilter.js.diff deleted file mode 100644 index 75b5ec7f57..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayFilter.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.arrayFilter.js -+++ new.arrayFilter.js -@@= skipped -14, +14 lines =@@ - { name: null }, - { name: 'baz' } - ]; --foo.filter(function (x) { return x.name; }); //should accepted all possible types not only boolean! -+foo.filter(x => x.name); //should accepted all possible types not only boolean! \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayFind.js.diff b/testdata/baselines/reference/submodule/compiler/arrayFind.js.diff deleted file mode 100644 index 4acf523d16..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayFind.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.arrayFind.js -+++ new.arrayFind.js -@@= skipped -17, +17 lines =@@ - function isNumber(x) { - return typeof x === "number"; - } --var arrayOfStringsNumbersAndBooleans = ["string", false, 0, "strung", 1, true]; --var foundNumber = arrayOfStringsNumbersAndBooleans.find(isNumber); --var readonlyArrayOfStringsNumbersAndBooleans = arrayOfStringsNumbersAndBooleans; --var readonlyFoundNumber = readonlyArrayOfStringsNumbersAndBooleans.find(isNumber); -+const arrayOfStringsNumbersAndBooleans = ["string", false, 0, "strung", 1, true]; -+const foundNumber = arrayOfStringsNumbersAndBooleans.find(isNumber); -+const readonlyArrayOfStringsNumbersAndBooleans = arrayOfStringsNumbersAndBooleans; -+const readonlyFoundNumber = readonlyArrayOfStringsNumbersAndBooleans.find(isNumber); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayFlatMap.js.diff b/testdata/baselines/reference/submodule/compiler/arrayFlatMap.js.diff deleted file mode 100644 index 42599165f2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayFlatMap.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.arrayFlatMap.js -+++ new.arrayFlatMap.js -@@= skipped -7, +7 lines =@@ - - - //// [arrayFlatMap.js] --var array = []; --var readonlyArray = []; --array.flatMap(function () { return []; }); // ok --readonlyArray.flatMap(function () { return []; }); // ok -+const array = []; -+const readonlyArray = []; -+array.flatMap(() => []); // ok -+readonlyArray.flatMap(() => []); // ok \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayFrom.js.diff b/testdata/baselines/reference/submodule/compiler/arrayFrom.js.diff index 59e9de3fa0..9386f60d71 100644 --- a/testdata/baselines/reference/submodule/compiler/arrayFrom.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrayFrom.js.diff @@ -6,50 +6,6 @@ //// [arrayFrom.js] -// Tests fix for #20432, ensures Array.from accepts all valid inputs -// Also tests for #19682 --var inputA = []; --var inputB = []; --var inputALike = { length: 0 }; --var inputARand = getEither(inputA, inputALike); --var inputASet = new Set(); --var result1 = Array.from(inputA); --var result2 = Array.from(inputA.values()); --var result3 = Array.from(inputA.values()); // expect error --var result4 = Array.from(inputB, function (_a) { -- var b = _a.b; -- return ({ a: b }); --}); --var result5 = Array.from(inputALike); --var result6 = Array.from(inputALike); // expect error --var result7 = Array.from(inputALike, function (_a) { -- var a = _a.a; -- return ({ b: a }); --}); --var result8 = Array.from(inputARand); --var result9 = Array.from(inputARand, function (_a) { -- var a = _a.a; -- return ({ b: a }); --}); --var result10 = Array.from(new Set()); --var result11 = Array.from(inputASet, function (_a) { -- var a = _a.a; -- return ({ b: a }); --}); -+const inputA = []; -+const inputB = []; -+const inputALike = { length: 0 }; -+const inputARand = getEither(inputA, inputALike); -+const inputASet = new Set(); -+const result1 = Array.from(inputA); -+const result2 = Array.from(inputA.values()); -+const result3 = Array.from(inputA.values()); // expect error -+const result4 = Array.from(inputB, ({ b }) => ({ a: b })); -+const result5 = Array.from(inputALike); -+const result6 = Array.from(inputALike); // expect error -+const result7 = Array.from(inputALike, ({ a }) => ({ b: a })); -+const result8 = Array.from(inputARand); -+const result9 = Array.from(inputARand, ({ a }) => ({ b: a })); -+const result10 = Array.from(new Set()); -+const result11 = Array.from(inputASet, ({ a }) => ({ b: a })); - // if this is written inline, the compiler seems to infer - // the ?: as always taking the false branch, narrowing to ArrayLike, - // even when the type is written as : Iterable|ArrayLike \ No newline at end of file + const inputA = []; + const inputB = []; + const inputALike = { length: 0 }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayIndexWithArrayFails.js.diff b/testdata/baselines/reference/submodule/compiler/arrayIndexWithArrayFails.js.diff deleted file mode 100644 index 94144cf6e2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayIndexWithArrayFails.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.arrayIndexWithArrayFails.js -+++ new.arrayIndexWithArrayFails.js -@@= skipped -5, +5 lines =@@ - const j = arr2[arr1[0]]; // should error - - //// [arrayIndexWithArrayFails.js] --var j = arr2[arr1[0]]; // should error -+const j = arr2[arr1[0]]; // should error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayLiteralComments.js.diff b/testdata/baselines/reference/submodule/compiler/arrayLiteralComments.js.diff deleted file mode 100644 index ce15ae9ba9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayLiteralComments.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.arrayLiteralComments.js -+++ new.arrayLiteralComments.js -@@= skipped -19, +19 lines =@@ - var testArrayWithFunc = [ - // Function comment - function () { -- var x = 1; -+ let x = 1; - }, - // String comment - '1', \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayLiteralContextualType.js.diff b/testdata/baselines/reference/submodule/compiler/arrayLiteralContextualType.js.diff index c2c6c38b97..0d83f3dcf1 100644 --- a/testdata/baselines/reference/submodule/compiler/arrayLiteralContextualType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrayLiteralContextualType.js.diff @@ -1,31 +1,23 @@ --- old.arrayLiteralContextualType.js +++ new.arrayLiteralContextualType.js -@@= skipped -31, +31 lines =@@ - bar(arr); // ok because arr is Array not {}[] +@@= skipped -32, +32 lines =@@ //// [arrayLiteralContextualType.js] --var Giraffe = /** @class */ (function () { -- function Giraffe() { + class Giraffe { +- constructor() { - this.name = "Giraffe"; - this.neckLength = "3m"; - } -- return Giraffe; --}()); --var Elephant = /** @class */ (function () { -- function Elephant() { ++ name = "Giraffe"; ++ neckLength = "3m"; + } + class Elephant { +- constructor() { - this.name = "Elephant"; - this.trunkDiameter = "20cm"; - } -- return Elephant; --}()); -+class Giraffe { -+ name = "Giraffe"; -+ neckLength = "3m"; -+} -+class Elephant { + name = "Elephant"; + trunkDiameter = "20cm"; -+} + } function foo(animals) { } - function bar(animals) { } - foo([ \ No newline at end of file + function bar(animals) { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayLiteralInNonVarArgParameter.js.diff b/testdata/baselines/reference/submodule/compiler/arrayLiteralInNonVarArgParameter.js.diff deleted file mode 100644 index 29ff770d71..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayLiteralInNonVarArgParameter.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.arrayLiteralInNonVarArgParameter.js -+++ new.arrayLiteralInNonVarArgParameter.js -@@= skipped -6, +6 lines =@@ - - - //// [arrayLiteralInNonVarArgParameter.js] --function panic(val) { -- var opt = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- opt[_i - 1] = arguments[_i]; -- } --} -+function panic(val, ...opt) { } - panic([], 'one', 'two'); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayLiteralTypeInference.js.diff b/testdata/baselines/reference/submodule/compiler/arrayLiteralTypeInference.js.diff index 975221fc1d..e20b2e7900 100644 --- a/testdata/baselines/reference/submodule/compiler/arrayLiteralTypeInference.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrayLiteralTypeInference.js.diff @@ -1,52 +1,16 @@ --- old.arrayLiteralTypeInference.js +++ new.arrayLiteralTypeInference.js -@@= skipped -53, +53 lines =@@ - +@@= skipped -54, +54 lines =@@ //// [arrayLiteralTypeInference.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Action = /** @class */ (function () { -- function Action() { -- } -- return Action; --}()); --var ActionA = /** @class */ (function (_super) { -- __extends(ActionA, _super); -- function ActionA() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return ActionA; --}(Action)); --var ActionB = /** @class */ (function (_super) { -- __extends(ActionB, _super); -- function ActionB() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return ActionB; --}(Action)); -+class Action { + class Action { + id; -+} -+class ActionA extends Action { + } + class ActionA extends Action { + value; -+} -+class ActionB extends Action { + } + class ActionB extends Action { + trueNess; -+} + } var x1 = [ - { id: 2, trueness: false }, - { id: 3, name: "three" } \ No newline at end of file + { id: 2, trueness: false }, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayOfExportedClass.js.diff b/testdata/baselines/reference/submodule/compiler/arrayOfExportedClass.js.diff index 2ed80093d2..112d1c3be7 100644 --- a/testdata/baselines/reference/submodule/compiler/arrayOfExportedClass.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrayOfExportedClass.js.diff @@ -1,31 +1,16 @@ --- old.arrayOfExportedClass.js +++ new.arrayOfExportedClass.js -@@= skipped -25, +25 lines =@@ - +@@= skipped -26, +26 lines =@@ //// [arrayOfExportedClass_0.js] "use strict"; --var Car = /** @class */ (function () { -- function Car() { -- } -- return Car; --}()); -+class Car { + class Car { + foo; -+} + } module.exports = Car; //// [arrayOfExportedClass_1.js] "use strict"; --var Road = /** @class */ (function () { -- function Road() { -- } -- Road.prototype.AddCars = function (cars) { -+class Road { + class Road { + cars; -+ AddCars(cars) { + AddCars(cars) { this.cars = cars; -- }; -- return Road; --}()); -+ } -+} - module.exports = Road; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.js.diff b/testdata/baselines/reference/submodule/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.js.diff index 29087e5333..5684da1ffa 100644 --- a/testdata/baselines/reference/submodule/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrayOfSubtypeIsAssignableToReadonlyArray.js.diff @@ -1,52 +1,16 @@ --- old.arrayOfSubtypeIsAssignableToReadonlyArray.js +++ new.arrayOfSubtypeIsAssignableToReadonlyArray.js -@@= skipped -21, +21 lines =@@ - +@@= skipped -22, +22 lines =@@ //// [arrayOfSubtypeIsAssignableToReadonlyArray.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; --}(A)); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C; --}(Array)); -+class A { + class A { + a; -+} -+class B extends A { + } + class B extends A { + b; -+} -+class C extends Array { + } + class C extends Array { + c; -+} + } rra = ara; - rrb = arb; // OK, Array is assignable to ReadonlyArray - rra = arb; \ No newline at end of file + rrb = arb; // OK, Array is assignable to ReadonlyArray \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayReferenceWithoutTypeArgs.js.diff b/testdata/baselines/reference/submodule/compiler/arrayReferenceWithoutTypeArgs.js.diff deleted file mode 100644 index 1831e051ca..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayReferenceWithoutTypeArgs.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.arrayReferenceWithoutTypeArgs.js -+++ new.arrayReferenceWithoutTypeArgs.js -@@= skipped -5, +5 lines =@@ - } - - //// [arrayReferenceWithoutTypeArgs.js] --var X = /** @class */ (function () { -- function X() { -- } -- X.prototype.f = function (a) { }; -- return X; --}()); -+class X { -+ f(a) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayToLocaleStringES5.js.diff b/testdata/baselines/reference/submodule/compiler/arrayToLocaleStringES5.js.diff deleted file mode 100644 index eb02de8910..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrayToLocaleStringES5.js.diff +++ /dev/null @@ -1,63 +0,0 @@ ---- old.arrayToLocaleStringES5.js -+++ new.arrayToLocaleStringES5.js -@@= skipped -58, +58 lines =@@ - - - //// [arrayToLocaleStringES5.js] --var str; --var arr = [1, 2, 3]; -+let str; -+const arr = [1, 2, 3]; - str = arr.toLocaleString(); // OK - str = arr.toLocaleString('en-US'); // should be error - str = arr.toLocaleString('en-US', { style: 'currency', currency: 'EUR' }); // should be error --var dates = [new Date(), new Date()]; -+const dates = [new Date(), new Date()]; - str = dates.toLocaleString(); // OK - str = dates.toLocaleString('fr'); // should be error - str = dates.toLocaleString('fr', { timeZone: 'UTC' }); // should be error --var int8Array = new Int8Array(3); -+const int8Array = new Int8Array(3); - str = int8Array.toLocaleString(); // OK - str = int8Array.toLocaleString('en-US'); // should be error - str = int8Array.toLocaleString('en-US', { style: 'currency', currency: 'EUR' }); // should be error --var uint8Array = new Uint8Array(3); -+const uint8Array = new Uint8Array(3); - str = uint8Array.toLocaleString(); // OK - str = uint8Array.toLocaleString('en-US'); // should be error - str = uint8Array.toLocaleString('en-US', { style: 'currency', currency: 'EUR' }); // should be error --var uint8ClampedArray = new Uint8ClampedArray(3); -+const uint8ClampedArray = new Uint8ClampedArray(3); - str = uint8ClampedArray.toLocaleString(); // OK - str = uint8ClampedArray.toLocaleString('en-US'); // should be error - str = uint8ClampedArray.toLocaleString('en-US', { style: 'currency', currency: 'EUR' }); // should be error --var int16Array = new Int16Array(3); -+const int16Array = new Int16Array(3); - str = int16Array.toLocaleString(); // OK - str = int16Array.toLocaleString('en-US'); // should be error - str = int16Array.toLocaleString('en-US', { style: 'currency', currency: 'EUR' }); // should be error --var uint16Array = new Uint16Array(3); -+const uint16Array = new Uint16Array(3); - str = uint16Array.toLocaleString(); // OK - str = uint16Array.toLocaleString('en-US'); // should be error - str = uint16Array.toLocaleString('en-US', { style: 'currency', currency: 'EUR' }); // should be error --var int32Array = new Int32Array(3); -+const int32Array = new Int32Array(3); - str = int32Array.toLocaleString(); // OK - str = int32Array.toLocaleString('en-US'); // should be error - str = int32Array.toLocaleString('en-US', { style: 'currency', currency: 'EUR' }); // should be error --var uint32Array = new Uint32Array(3); -+const uint32Array = new Uint32Array(3); - str = uint32Array.toLocaleString(); // OK - str = uint32Array.toLocaleString('en-US'); // should be error - str = uint32Array.toLocaleString('en-US', { style: 'currency', currency: 'EUR' }); // should be error --var float32Array = new Float32Array(3); -+const float32Array = new Float32Array(3); - str = float32Array.toLocaleString(); // OK - str = float32Array.toLocaleString('en-US'); // should be error - str = float32Array.toLocaleString('en-US', { style: 'currency', currency: 'EUR' }); // should be error --var float64Array = new Float64Array(3); -+const float64Array = new Float64Array(3); - str = float64Array.toLocaleString(); // OK - str = float64Array.toLocaleString('en-US'); // should be error - str = float64Array.toLocaleString('en-US', { style: 'currency', currency: 'EUR' }); // should be error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrayconcat.js.diff b/testdata/baselines/reference/submodule/compiler/arrayconcat.js.diff index 8bfa3caa13..52f285b2cd 100644 --- a/testdata/baselines/reference/submodule/compiler/arrayconcat.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrayconcat.js.diff @@ -1,25 +1,10 @@ --- old.arrayconcat.js +++ new.arrayconcat.js -@@= skipped -30, +30 lines =@@ - } +@@= skipped -31, +31 lines =@@ //// [arrayconcat.js] --var parser = /** @class */ (function () { -- function parser() { -- } -- parser.prototype.m = function () { -+class parser { + class parser { + options; -+ m() { + m() { this.options = this.options.sort(function (a, b) { - var aName = a.name.toLowerCase(); - var bName = b.name.toLowerCase(); -@@= skipped -17, +16 lines =@@ - return 0; - } - }); -- }; -- return parser; --}()); -+ } -+} \ No newline at end of file + var aName = a.name.toLowerCase(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrowFunctionErrorSpan.js.diff b/testdata/baselines/reference/submodule/compiler/arrowFunctionErrorSpan.js.diff index 06e40dc3c0..9db8ead36c 100644 --- a/testdata/baselines/reference/submodule/compiler/arrowFunctionErrorSpan.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrowFunctionErrorSpan.js.diff @@ -1,51 +1,13 @@ --- old.arrowFunctionErrorSpan.js +++ new.arrowFunctionErrorSpan.js -@@= skipped -58, +58 lines =@@ - //// [arrowFunctionErrorSpan.js] - function f(a) { } - // oneliner --f(function () { }); -+f(() => { }); - // multiline, body --f(function () { -+f(() => { - }); - // multiline 2, body --f(function () { -+f(() => { - }); - // multiline 3, arrow on a new line --f(function () { }); -+f(() => { }); - // multiline 4, arguments --f(function (a, b, c, d) { }); -+f((a, b, c, d) => { }); - // single line with a comment - f(/* -- */ function () { }); -+ */ () => { }); - // multi line with a comment - f(/* -- */ function () { }); -+ */ () => { }); - // multi line with a comment 2 - f(/* -- */ function () { -+ */ () => { - }); +@@= skipped -82, +82 lines =@@ // multi line with a comment 3 f(// comment 1 // comment 2 --function () { +-() => { +() => +// comment 3 +{ // comment 4 } - // comment 5 - ); - // body is not a block --f(function (_) { return 1 + -- 2; }); -+f(_ => 1 + -+ 2); \ No newline at end of file + // comment 5 \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrowFunctionInConstructorArgument1.js.diff b/testdata/baselines/reference/submodule/compiler/arrowFunctionInConstructorArgument1.js.diff deleted file mode 100644 index 5cd9b5d882..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrowFunctionInConstructorArgument1.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.arrowFunctionInConstructorArgument1.js -+++ new.arrowFunctionInConstructorArgument1.js -@@= skipped -7, +7 lines =@@ - - - //// [arrowFunctionInConstructorArgument1.js] --var C = /** @class */ (function () { -- function C(x) { -- } -- return C; --}()); --var c = new C(function () { return asdf; }); // should error -+class C { -+ constructor(x) { } -+} -+var c = new C(() => { return asdf; }); // should error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrowFunctionInExpressionStatement1.js.diff b/testdata/baselines/reference/submodule/compiler/arrowFunctionInExpressionStatement1.js.diff deleted file mode 100644 index eddc34b7f4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrowFunctionInExpressionStatement1.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.arrowFunctionInExpressionStatement1.js -+++ new.arrowFunctionInExpressionStatement1.js -@@= skipped -3, +3 lines =@@ - () => 0; - - //// [arrowFunctionInExpressionStatement1.js] --(function () { return 0; }); -+() => 0; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrowFunctionInExpressionStatement2.js.diff b/testdata/baselines/reference/submodule/compiler/arrowFunctionInExpressionStatement2.js.diff deleted file mode 100644 index 71f58c423f..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrowFunctionInExpressionStatement2.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.arrowFunctionInExpressionStatement2.js -+++ new.arrowFunctionInExpressionStatement2.js -@@= skipped -7, +7 lines =@@ - //// [arrowFunctionInExpressionStatement2.js] - var M; - (function (M) { -- (function () { return 0; }); -+ () => 0; - })(M || (M = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrowFunctionMissingCurlyWithSemicolon.js.diff b/testdata/baselines/reference/submodule/compiler/arrowFunctionMissingCurlyWithSemicolon.js.diff deleted file mode 100644 index cc982c9efe..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrowFunctionMissingCurlyWithSemicolon.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.arrowFunctionMissingCurlyWithSemicolon.js -+++ new.arrowFunctionMissingCurlyWithSemicolon.js -@@= skipped -7, +7 lines =@@ - - //// [arrowFunctionMissingCurlyWithSemicolon.js] - // Should error at semicolon. --var f = function () { return ; }; -+var f = () => ; - var b = 1 * 2 * 3 * 4; --var square = function (x) { return x * x; }; -+var square = (x) => x * x; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrowFunctionParsingDoesNotConfuseParenthesizedObjectForArrowHead.js.diff b/testdata/baselines/reference/submodule/compiler/arrowFunctionParsingDoesNotConfuseParenthesizedObjectForArrowHead.js.diff deleted file mode 100644 index 5deec6a8a6..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrowFunctionParsingDoesNotConfuseParenthesizedObjectForArrowHead.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.arrowFunctionParsingDoesNotConfuseParenthesizedObjectForArrowHead.js -+++ new.arrowFunctionParsingDoesNotConfuseParenthesizedObjectForArrowHead.js -@@= skipped -17, +17 lines =@@ - - - //// [arrowFunctionParsingDoesNotConfuseParenthesizedObjectForArrowHead.js] --var test = function () { return ({ -+const test = () => ({ - // "Identifier expected." error on "!" and two "Duplicate identifier '(Missing)'." errors on space. - prop: !value, // remove ! to see that errors will be gone -- run: function () { -+ run: () => { - // comment next line or remove "()" to see that errors will be gone - if (!a.b()) { - return 'special'; - } - return 'default'; - } --}); }; -+}); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody1.js.diff b/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody1.js.diff index 0109f00349..675e5b6980 100644 --- a/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody1.js.diff @@ -4,5 +4,5 @@ var v = a => {} //// [arrowFunctionWithObjectLiteralBody1.js] --var v = function (a) { return ({}); }; +-var v = a => ({}); +var v = a => (({})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody2.js.diff b/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody2.js.diff index 403188adf6..b77814c345 100644 --- a/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody2.js.diff @@ -4,5 +4,5 @@ var v = a => {} //// [arrowFunctionWithObjectLiteralBody2.js] --var v = function (a) { return ({}); }; +-var v = a => ({}); +var v = a => (({})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody5.js.diff b/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody5.js.diff index 591fd117f0..d407145696 100644 --- a/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/arrowFunctionWithObjectLiteralBody5.js.diff @@ -4,11 +4,9 @@ var d = () => ((({ name: "foo", message: "bar" }))); //// [arrowFunctionWithObjectLiteralBody5.js] --var a = function () { return ({ name: "foo", message: "bar" }); }; --var b = function () { return ({ name: "foo", message: "bar" }); }; --var c = function () { return ({ name: "foo", message: "bar" }); }; --var d = function () { return ({ name: "foo", message: "bar" }); }; +-var a = () => ({ name: "foo", message: "bar" }); +-var b = () => ({ name: "foo", message: "bar" }); +var a = () => (({ name: "foo", message: "bar" })); +var b = () => (({ name: "foo", message: "bar" })); -+var c = () => ({ name: "foo", message: "bar" }); -+var d = () => ({ name: "foo", message: "bar" }); \ No newline at end of file + var c = () => ({ name: "foo", message: "bar" }); + var d = () => ({ name: "foo", message: "bar" }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/arrowFunctionsMissingTokens.js.diff b/testdata/baselines/reference/submodule/compiler/arrowFunctionsMissingTokens.js.diff deleted file mode 100644 index 042204f1be..0000000000 --- a/testdata/baselines/reference/submodule/compiler/arrowFunctionsMissingTokens.js.diff +++ /dev/null @@ -1,83 +0,0 @@ ---- old.arrowFunctionsMissingTokens.js -+++ new.arrowFunctionsMissingTokens.js -@@= skipped -69, +69 lines =@@ - //// [arrowFunctionsMissingTokens.js] - var missingArrowsWithCurly; - (function (missingArrowsWithCurly) { -- var a = function () { }; -- var b = function () { }; -- var c = function (x) { }; -- var d = function (x, y) { }; -- var e = function (x, y) { }; -+ var a = () => { }; -+ var b = () => { }; -+ var c = (x) => { }; -+ var d = (x, y) => { }; -+ var e = (x, y) => { }; - })(missingArrowsWithCurly || (missingArrowsWithCurly = {})); - var missingCurliesWithArrow; - (function (missingCurliesWithArrow) { -- var withStatement; -+ let withStatement; - (function (withStatement) { -- var a = function () { var k = 10; }; -- var b = function () { var k = 10; }; -- var c = function (x) { var k = 10; }; -- var d = function (x, y) { var k = 10; }; -- var e = function (x, y) { var k = 10; }; -- var f = function () { var k = 10; }; -+ var a = () => { var k = 10; }; -+ var b = () => { var k = 10; }; -+ var c = (x) => { var k = 10; }; -+ var d = (x, y) => { var k = 10; }; -+ var e = (x, y) => { var k = 10; }; -+ var f = () => { var k = 10; }; - })(withStatement || (withStatement = {})); -- var withoutStatement; -+ let withoutStatement; - (function (withoutStatement) { -- var a = function () { return ; }; -+ var a = () => ; - })(withoutStatement || (withoutStatement = {})); - ; -- var b = function () { return ; }; -+ var b = () => ; - })(missingCurliesWithArrow || (missingCurliesWithArrow = {})); --var c = function (x) { return ; }; --; --var d = function (x, y) { return ; }; --; --var e = function (x, y) { return ; }; --; --var f = function () { return ; }; -+var c = (x) => ; -+; -+var d = (x, y) => ; -+; -+var e = (x, y) => ; -+; -+var f = () => ; - var ce_nEst_pas_une_arrow_function; - (function (ce_nEst_pas_une_arrow_function) { - var a = (); -- var b = function () { return ; }; -+ var b = () => ; - var c = (x); -- var d = function (x, y) { return ; }; -- var e = function (x, y) { return ; }; -+ var d = (x, y) => ; -+ var e = (x, y) => ; - })(ce_nEst_pas_une_arrow_function || (ce_nEst_pas_une_arrow_function = {})); - var okay; - (function (okay) { -- var a = function () { }; -- var b = function () { }; -- var c = function (x) { }; -- var d = function (x, y) { }; -- var e = function (x, y) { }; -+ var a = () => { }; -+ var b = () => { }; -+ var c = (x) => { }; -+ var d = (x, y) => { }; -+ var e = (x, y) => { }; - })(okay || (okay = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/asiAbstract.js.diff b/testdata/baselines/reference/submodule/compiler/asiAbstract.js.diff index 43d21cd42a..6bd52baaf9 100644 --- a/testdata/baselines/reference/submodule/compiler/asiAbstract.js.diff +++ b/testdata/baselines/reference/submodule/compiler/asiAbstract.js.diff @@ -1,33 +1,13 @@ --- old.asiAbstract.js +++ new.asiAbstract.js -@@= skipped -18, +18 lines =@@ - - //// [asiAbstract.js] - abstract; --var NonAbstractClass = /** @class */ (function () { -- function NonAbstractClass() { -- } -- return NonAbstractClass; --}()); --var C2 = /** @class */ (function () { -- function C2() { -- } -- C2.prototype.nonAbstractFunction = function () { -- }; -- return C2; --}()); --var C3 = /** @class */ (function () { -- function C3() { -- } -- return C3; --}()); -+class NonAbstractClass { -+} -+class C2 { +@@= skipped -21, +21 lines =@@ + class NonAbstractClass { + } + class C2 { + abstract; -+ nonAbstractFunction() { -+ } -+} -+class C3 { + nonAbstractFunction() { + } + } + class C3 { + abstract; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/asiInES6Classes.js.diff b/testdata/baselines/reference/submodule/compiler/asiInES6Classes.js.diff index ebde65b8fe..36b098082a 100644 --- a/testdata/baselines/reference/submodule/compiler/asiInES6Classes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/asiInES6Classes.js.diff @@ -1,24 +1,17 @@ --- old.asiInES6Classes.js +++ new.asiInES6Classes.js -@@= skipped -24, +24 lines =@@ - +@@= skipped -25, +25 lines =@@ //// [asiInES6Classes.js] --var Foo = /** @class */ (function () { -- function Foo() { + class Foo { +- constructor() { - this.defaults = { - done: false - }; - } -- Foo.prototype.bar = function () { -- return 3; -+class Foo { + defaults = { + done: false - }; -- return Foo; --}()); -+ bar() { -+ return 3; -+ } -+} \ No newline at end of file ++ }; + bar() { + return 3; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/asiPublicPrivateProtected.js.diff b/testdata/baselines/reference/submodule/compiler/asiPublicPrivateProtected.js.diff index dfdd6ef777..952e909287 100644 --- a/testdata/baselines/reference/submodule/compiler/asiPublicPrivateProtected.js.diff +++ b/testdata/baselines/reference/submodule/compiler/asiPublicPrivateProtected.js.diff @@ -1,87 +1,31 @@ --- old.asiPublicPrivateProtected.js +++ new.asiPublicPrivateProtected.js -@@= skipped -43, +43 lines =@@ - - //// [asiPublicPrivateProtected.js] - public; --var NonPublicClass = /** @class */ (function () { -- function NonPublicClass() { -- } -- NonPublicClass.prototype.s = function () { -- }; -- return NonPublicClass; --}()); --var NonPublicClass2 = /** @class */ (function () { -- function NonPublicClass2() { -- } -- NonPublicClass2.prototype.nonPublicFunction = function () { -- }; -- return NonPublicClass2; --}()); -+class NonPublicClass { -+ s() { -+ } -+} -+class NonPublicClass2 { +@@= skipped -48, +48 lines =@@ + } + } + class NonPublicClass2 { + public; -+ nonPublicFunction() { -+ } -+} - private; --var NonPrivateClass = /** @class */ (function () { -- function NonPrivateClass() { -- } -- NonPrivateClass.prototype.s = function () { -- }; -- return NonPrivateClass; --}()); --var NonPrivateClass2 = /** @class */ (function () { -- function NonPrivateClass2() { -- } -- NonPrivateClass2.prototype.nonPrivateFunction = function () { -- }; -- return NonPrivateClass2; --}()); -+class NonPrivateClass { -+ s() { -+ } -+} -+class NonPrivateClass2 { + nonPublicFunction() { + } + } +@@= skipped -9, +10 lines =@@ + } + } + class NonPrivateClass2 { + private; -+ nonPrivateFunction() { -+ } -+} - protected; --var NonProtectedClass = /** @class */ (function () { -- function NonProtectedClass() { -- } -- NonProtectedClass.prototype.s = function () { -- }; -- return NonProtectedClass; --}()); --var NonProtectedClass2 = /** @class */ (function () { -- function NonProtectedClass2() { -- } -- NonProtectedClass2.prototype.nonProtectedFunction = function () { -- }; -- return NonProtectedClass2; --}()); --var ClassWithThreeMembers = /** @class */ (function () { -- function ClassWithThreeMembers() { -- } -- return ClassWithThreeMembers; --}()); -+class NonProtectedClass { -+ s() { -+ } -+} -+class NonProtectedClass2 { + nonPrivateFunction() { + } + } +@@= skipped -9, +10 lines =@@ + } + } + class NonProtectedClass2 { + protected; -+ nonProtectedFunction() { -+ } -+} -+class ClassWithThreeMembers { + nonProtectedFunction() { + } + } + class ClassWithThreeMembers { + public; + private; + protected; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assertInWrapSomeTypeParameter.js.diff b/testdata/baselines/reference/submodule/compiler/assertInWrapSomeTypeParameter.js.diff deleted file mode 100644 index db5e9d58ef..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assertInWrapSomeTypeParameter.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.assertInWrapSomeTypeParameter.js -+++ new.assertInWrapSomeTypeParameter.js -@@= skipped -7, +7 lines =@@ - } - - //// [assertInWrapSomeTypeParameter.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function (x) { -+class C { -+ foo(x) { - return null; -- }; -- return C; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assertionFunctionsCanNarrowByDiscriminant.js.diff b/testdata/baselines/reference/submodule/compiler/assertionFunctionsCanNarrowByDiscriminant.js.diff index 9c5f34a820..ec280626a2 100644 --- a/testdata/baselines/reference/submodule/compiler/assertionFunctionsCanNarrowByDiscriminant.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assertionFunctionsCanNarrowByDiscriminant.js.diff @@ -5,12 +5,10 @@ //// [assertionFunctionsCanNarrowByDiscriminant.js] -"use strict"; --var animal = { type: 'cat', canMeow: true }; -+const animal = { type: 'cat', canMeow: true }; + const animal = { type: 'cat', canMeow: true }; assertEqual(animal.type, 'cat'); animal.canMeow; // since is cat, should not be an error --var animalOrUndef = { type: 'cat', canMeow: true }; + const animalOrUndef = { type: 'cat', canMeow: true }; -assertEqual(animalOrUndef === null || animalOrUndef === void 0 ? void 0 : animalOrUndef.type, 'cat'); -+const animalOrUndef = { type: 'cat', canMeow: true }; +assertEqual(animalOrUndef?.type, 'cat'); animalOrUndef.canMeow; // since is cat, should not be an error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignLambdaToNominalSubtypeOfFunction.js.diff b/testdata/baselines/reference/submodule/compiler/assignLambdaToNominalSubtypeOfFunction.js.diff deleted file mode 100644 index 9feb112a87..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignLambdaToNominalSubtypeOfFunction.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.assignLambdaToNominalSubtypeOfFunction.js -+++ new.assignLambdaToNominalSubtypeOfFunction.js -@@= skipped -12, +12 lines =@@ - - //// [assignLambdaToNominalSubtypeOfFunction.js] - function fn(cb) { } --fn(function (a, b) { return true; }); -+fn((a, b) => true); - fn(function (a, b) { return true; }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignToExistingClass.js.diff b/testdata/baselines/reference/submodule/compiler/assignToExistingClass.js.diff index 90348cb71f..766ff8bd25 100644 --- a/testdata/baselines/reference/submodule/compiler/assignToExistingClass.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignToExistingClass.js.diff @@ -1,29 +1,10 @@ --- old.assignToExistingClass.js +++ new.assignToExistingClass.js -@@= skipped -19, +19 lines =@@ - //// [assignToExistingClass.js] +@@= skipped -20, +20 lines =@@ var Test; (function (Test) { -- var Mocked = /** @class */ (function () { -- function Mocked() { -- } -- return Mocked; -- }()); -- var Tester = /** @class */ (function () { -- function Tester() { -- } -- Tester.prototype.willThrowError = function () { -+ class Mocked { + class Mocked { + myProp; -+ } -+ class Tester { -+ willThrowError() { - Mocked = Mocked || function () { - return { myProp: "test" }; - }; -- }; -- return Tester; -- }()); -+ } -+ } - })(Test || (Test = {})); \ No newline at end of file + } + class Tester { + willThrowError() { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignToObjectTypeWithPrototypeProperty.js.diff b/testdata/baselines/reference/submodule/compiler/assignToObjectTypeWithPrototypeProperty.js.diff deleted file mode 100644 index 734817438b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignToObjectTypeWithPrototypeProperty.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.assignToObjectTypeWithPrototypeProperty.js -+++ new.assignToObjectTypeWithPrototypeProperty.js -@@= skipped -5, +5 lines =@@ - var x: {prototype: XEvent} = XEvent; - - //// [assignToObjectTypeWithPrototypeProperty.js] --var XEvent = /** @class */ (function () { -- function XEvent() { -- } -- return XEvent; --}()); -+class XEvent { -+} - var p = XEvent.prototype; - var x = XEvent; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assigningFunctionToTupleIssuesError.js.diff b/testdata/baselines/reference/submodule/compiler/assigningFunctionToTupleIssuesError.js.diff deleted file mode 100644 index 00c1a9aa6b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assigningFunctionToTupleIssuesError.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.assigningFunctionToTupleIssuesError.js -+++ new.assigningFunctionToTupleIssuesError.js -@@= skipped -4, +4 lines =@@ - let b: [string] = a; - - //// [assigningFunctionToTupleIssuesError.js] --var b = a; -+let b = a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatBug2.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatBug2.js.diff deleted file mode 100644 index f919f0b920..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatBug2.js.diff +++ /dev/null @@ -1,55 +0,0 @@ ---- old.assignmentCompatBug2.js -+++ new.assignmentCompatBug2.js -@@= skipped -45, +45 lines =@@ - b2 = { b: 0, a: 0 }; - var b3; - b3 = { -- f: function (n) { return 0; }, -- g: function (s) { return 0; }, -- m: 0, --}; // ok --b3 = { -- f: function (n) { return 0; }, -- g: function (s) { return 0; }, --}; // error --b3 = { -- f: function (n) { return 0; }, -- m: 0, --}; // error --b3 = { -- f: function (n) { return 0; }, -- g: function (s) { return 0; }, -- m: 0, -- n: 0, -- k: function (a) { return null; }, --}; // ok --b3 = { -- f: function (n) { return 0; }, -- g: function (s) { return 0; }, -- n: 0, -- k: function (a) { return null; }, -+ f: (n) => { return 0; }, -+ g: (s) => { return 0; }, -+ m: 0, -+}; // ok -+b3 = { -+ f: (n) => { return 0; }, -+ g: (s) => { return 0; }, -+}; // error -+b3 = { -+ f: (n) => { return 0; }, -+ m: 0, -+}; // error -+b3 = { -+ f: (n) => { return 0; }, -+ g: (s) => { return 0; }, -+ m: 0, -+ n: 0, -+ k: (a) => { return null; }, -+}; // ok -+b3 = { -+ f: (n) => { return 0; }, -+ g: (s) => { return 0; }, -+ n: 0, -+ k: (a) => { return null; }, - }; // error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatBug3.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatBug3.js.diff deleted file mode 100644 index 03924aa810..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatBug3.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.assignmentCompatBug3.js -+++ new.assignmentCompatBug3.js -@@= skipped -38, +38 lines =@@ - } - }; - } --var C = /** @class */ (function () { -- function C() { -+class C { -+ get x() { -+ return 0; - } -- Object.defineProperty(C.prototype, "x", { -- get: function () { -- return 0; -- }, -- enumerable: false, -- configurable: true -- }); -- return C; --}()); -+} - function foo(test) { } - var x; - var y; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatBug5.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatBug5.js.diff deleted file mode 100644 index 8eeb484769..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatBug5.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.assignmentCompatBug5.js -+++ new.assignmentCompatBug5.js -@@= skipped -19, +19 lines =@@ - foo2(["s", "t"]); - function foo3(x) { } - ; --foo3(function (s) { }); --foo3(function (n) { return; }); -+foo3((s) => { }); -+foo3((n) => { return; }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatInterfaceWithStringIndexSignature.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatInterfaceWithStringIndexSignature.js.diff deleted file mode 100644 index c3709287b7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatInterfaceWithStringIndexSignature.js.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.assignmentCompatInterfaceWithStringIndexSignature.js -+++ new.assignmentCompatInterfaceWithStringIndexSignature.js -@@= skipped -18, +18 lines =@@ - - - //// [assignmentCompatInterfaceWithStringIndexSignature.js] --var Foo = /** @class */ (function () { -- function Foo() { -- } -- Foo.prototype.Boz = function () { }; -- return Foo; --}()); -+class Foo { -+ Boz() { } -+} - function Biz(map) { } - Biz(new Foo()); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatOnNew.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatOnNew.js.diff deleted file mode 100644 index 3ad997610e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatOnNew.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.assignmentCompatOnNew.js -+++ new.assignmentCompatOnNew.js -@@= skipped -8, +8 lines =@@ - - - //// [assignmentCompatOnNew.js] --var Foo = /** @class */ (function () { -- function Foo() { -- } -- return Foo; --}()); -+class Foo { -+} - ; - function bar(x) { } - bar(Foo); // Error, but should be allowed \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatWithOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatWithOverloads.js.diff deleted file mode 100644 index 735f956893..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatWithOverloads.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.assignmentCompatWithOverloads.js -+++ new.assignmentCompatWithOverloads.js -@@= skipped -41, +41 lines =@@ - g = f2; // Error - g = f3; // Error - g = f4; // Error --var C = /** @class */ (function () { -- function C(x) { -- } -- return C; --}()); -+class C { -+ constructor(x) { } -+} - var d; - d = C; // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability10.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability10.js.diff index 844f4e1afc..7737dcaf33 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability10.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentCompatability10.js.diff @@ -1,21 +1,11 @@ --- old.assignmentCompatability10.js +++ new.assignmentCompatability10.js -@@= skipped -20, +20 lines =@@ - })(__test1__ || (__test1__ = {})); +@@= skipped -21, +21 lines =@@ var __test2__; (function (__test2__) { -- var classWithPublicAndOptional = /** @class */ (function () { -- function classWithPublicAndOptional(one, two) { -+ class classWithPublicAndOptional { + class classWithPublicAndOptional { + one; + two; -+ constructor(one, two) { + constructor(one, two) { this.one = one; - this.two = two; - } -- return classWithPublicAndOptional; -- }()); -+ } - __test2__.classWithPublicAndOptional = classWithPublicAndOptional; - var x4 = new classWithPublicAndOptional(1); - ; \ No newline at end of file + this.two = two; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability39.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability39.js.diff index e82bfe4c4c..d9085b6ee0 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability39.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentCompatability39.js.diff @@ -1,21 +1,11 @@ --- old.assignmentCompatability39.js +++ new.assignmentCompatability39.js -@@= skipped -20, +20 lines =@@ - })(__test1__ || (__test1__ = {})); +@@= skipped -21, +21 lines =@@ var __test2__; (function (__test2__) { -- var classWithTwoPublic = /** @class */ (function () { -- function classWithTwoPublic(one, two) { -+ class classWithTwoPublic { + class classWithTwoPublic { + one; + two; -+ constructor(one, two) { + constructor(one, two) { this.one = one; - this.two = two; - } -- return classWithTwoPublic; -- }()); -+ } - __test2__.classWithTwoPublic = classWithTwoPublic; - var x2 = new classWithTwoPublic(1, "a"); - ; \ No newline at end of file + this.two = two; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability40.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability40.js.diff index 7d928b31c1..9f604daad7 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability40.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentCompatability40.js.diff @@ -1,19 +1,10 @@ --- old.assignmentCompatability40.js +++ new.assignmentCompatability40.js -@@= skipped -20, +20 lines =@@ - })(__test1__ || (__test1__ = {})); +@@= skipped -21, +21 lines =@@ var __test2__; (function (__test2__) { -- var classWithPrivate = /** @class */ (function () { -- function classWithPrivate(one) { -+ class classWithPrivate { + class classWithPrivate { + one; -+ constructor(one) { + constructor(one) { this.one = one; - } -- return classWithPrivate; -- }()); -+ } - __test2__.classWithPrivate = classWithPrivate; - var x5 = new classWithPrivate(1); - ; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability41.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability41.js.diff index 5ec46db1f7..1b8a2724d4 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability41.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentCompatability41.js.diff @@ -1,21 +1,11 @@ --- old.assignmentCompatability41.js +++ new.assignmentCompatability41.js -@@= skipped -20, +20 lines =@@ - })(__test1__ || (__test1__ = {})); +@@= skipped -21, +21 lines =@@ var __test2__; (function (__test2__) { -- var classWithTwoPrivate = /** @class */ (function () { -- function classWithTwoPrivate(one, two) { -+ class classWithTwoPrivate { + class classWithTwoPrivate { + one; + two; -+ constructor(one, two) { + constructor(one, two) { this.one = one; - this.two = two; - } -- return classWithTwoPrivate; -- }()); -+ } - __test2__.classWithTwoPrivate = classWithTwoPrivate; - var x6 = new classWithTwoPrivate(1, "a"); - ; \ No newline at end of file + this.two = two; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability42.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability42.js.diff index 70da33fdf7..4580fbdc5e 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability42.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentCompatability42.js.diff @@ -1,21 +1,11 @@ --- old.assignmentCompatability42.js +++ new.assignmentCompatability42.js -@@= skipped -20, +20 lines =@@ - })(__test1__ || (__test1__ = {})); +@@= skipped -21, +21 lines =@@ var __test2__; (function (__test2__) { -- var classWithPublicPrivate = /** @class */ (function () { -- function classWithPublicPrivate(one, two) { -+ class classWithPublicPrivate { + class classWithPublicPrivate { + one; + two; -+ constructor(one, two) { + constructor(one, two) { this.one = one; - this.two = two; - } -- return classWithPublicPrivate; -- }()); -+ } - __test2__.classWithPublicPrivate = classWithPublicPrivate; - var x7 = new classWithPublicPrivate(1, "a"); - ; \ No newline at end of file + this.two = two; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability44.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability44.js.diff deleted file mode 100644 index 1fb15ee882..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability44.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.assignmentCompatability44.js -+++ new.assignmentCompatability44.js -@@= skipped -8, +8 lines =@@ - - - //// [assignmentCompatability44.js] --var Foo = /** @class */ (function () { -- function Foo(x) { -- } -- return Foo; --}()); --var foo = Foo; -+class Foo { -+ constructor(x) { } -+} -+const foo = Foo; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability45.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability45.js.diff deleted file mode 100644 index cf76074b1b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability45.js.diff +++ /dev/null @@ -1,42 +0,0 @@ ---- old.assignmentCompatability45.js -+++ new.assignmentCompatability45.js -@@= skipped -10, +10 lines =@@ - - - //// [assignmentCompatability45.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B(x) { -- return _super.call(this) || this; -- } -- return B; --}(A)); --var b = B; -+class A { -+} -+class B extends A { -+ constructor(x) { -+ super(); -+ } -+} -+const b = B; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability8.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability8.js.diff index 353fc19c27..4626332fc2 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability8.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentCompatability8.js.diff @@ -1,19 +1,10 @@ --- old.assignmentCompatability8.js +++ new.assignmentCompatability8.js -@@= skipped -20, +20 lines =@@ - })(__test1__ || (__test1__ = {})); +@@= skipped -21, +21 lines =@@ var __test2__; (function (__test2__) { -- var classWithPublic = /** @class */ (function () { -- function classWithPublic(one) { -+ class classWithPublic { + class classWithPublic { + one; -+ constructor(one) { + constructor(one) { this.one = one; - } -- return classWithPublic; -- }()); -+ } - __test2__.classWithPublic = classWithPublic; - var x1 = new classWithPublic(1); - ; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability9.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability9.js.diff index 61a05651ea..26270d9001 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability9.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentCompatability9.js.diff @@ -1,19 +1,10 @@ --- old.assignmentCompatability9.js +++ new.assignmentCompatability9.js -@@= skipped -20, +20 lines =@@ - })(__test1__ || (__test1__ = {})); +@@= skipped -21, +21 lines =@@ var __test2__; (function (__test2__) { -- var classWithOptional = /** @class */ (function () { -- function classWithOptional(one) { -+ class classWithOptional { + class classWithOptional { + one; -+ constructor(one) { + constructor(one) { this.one = one; - } -- return classWithOptional; -- }()); -+ } - __test2__.classWithOptional = classWithOptional; - var x3 = new classWithOptional(); - ; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability_checking-apply-member-off-of-function-interface.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability_checking-apply-member-off-of-function-interface.js.diff index b8681f59c0..1f469916de 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability_checking-apply-member-off-of-function-interface.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentCompatability_checking-apply-member-off-of-function-interface.js.diff @@ -7,10 +7,4 @@ -// 3.8.4 Assignment Compatibility var x; // Should fail - x = ''; -@@= skipped -18, +17 lines =@@ - fn(4); - fn({}); - // Should work --fn(function (a) { }); -+fn(a => { }); \ No newline at end of file + x = ''; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentCompatability_checking-call-member-off-of-function-interface.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentCompatability_checking-call-member-off-of-function-interface.js.diff index 550b19774f..d61f6de7b5 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentCompatability_checking-call-member-off-of-function-interface.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentCompatability_checking-call-member-off-of-function-interface.js.diff @@ -7,10 +7,4 @@ -// 3.8.4 Assignment Compatibility var x; // Should fail - x = ''; -@@= skipped -18, +17 lines =@@ - fn(4); - fn({}); - // Should work --fn(function (a) { }); -+fn(a => { }); \ No newline at end of file + x = ''; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentIndexedToPrimitives.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentIndexedToPrimitives.js.diff deleted file mode 100644 index 0bb7df9517..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentIndexedToPrimitives.js.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.assignmentIndexedToPrimitives.js -+++ new.assignmentIndexedToPrimitives.js -@@= skipped -18, +18 lines =@@ - - - //// [assignmentIndexedToPrimitives.js] --var n1 = [0]; --var n2 = ["0"]; --var n3 = [0, "1"]; --var n4 = [0]; --var s1 = [0]; --var s2 = ["0"]; --var s3 = [0, "1"]; --var s4 = ["0", "1"]; --var no1 = { 0: 1 }; --var so1 = { 0: 1 }; --var so2 = { "0": 1 }; --var so3 = { 0: "1" }; -+const n1 = [0]; -+const n2 = ["0"]; -+const n3 = [0, "1"]; -+const n4 = [0]; -+const s1 = [0]; -+const s2 = ["0"]; -+const s3 = [0, "1"]; -+const s4 = ["0", "1"]; -+const no1 = { 0: 1 }; -+const so1 = { 0: 1 }; -+const so2 = { "0": 1 }; -+const so3 = { 0: "1" }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentNestedInLiterals.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentNestedInLiterals.js.diff deleted file mode 100644 index 37b8cdcb36..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentNestedInLiterals.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.assignmentNestedInLiterals.js -+++ new.assignmentNestedInLiterals.js -@@= skipped -17, +17 lines =@@ - var aegis, a, b; - aegis = { x: a = 1, y: b = a }; - var kowloona, c, d; --for (var _i = 0, _a = [c = 1, d = c]; _i < _a.length; _i++) { -- kowloona = _a[_i]; -+for (kowloona of [c = 1, d = c]) { - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentNonObjectTypeConstraints.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentNonObjectTypeConstraints.js.diff index 148da65e8a..8cd1b29c34 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentNonObjectTypeConstraints.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentNonObjectTypeConstraints.js.diff @@ -15,23 +15,12 @@ } foo(5); -foo(0 /* E.A */); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function () { -- function B() { -- } -- return B; --}()); +foo(E.A); -+class A { + class A { + a; -+} -+class B { + } + class B { + b; -+} + } function bar(x) { - var y = x; // Ok - } \ No newline at end of file + var y = x; // Ok \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentRestElementWithErrorSourceType.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentRestElementWithErrorSourceType.js.diff deleted file mode 100644 index 9ce4e36bf3..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentRestElementWithErrorSourceType.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.assignmentRestElementWithErrorSourceType.js -+++ new.assignmentRestElementWithErrorSourceType.js -@@= skipped -5, +5 lines =@@ - - //// [assignmentRestElementWithErrorSourceType.js] - var tuple; --c = tupel.slice(0); // intentionally misspelled -+[...c] = tupel; // intentionally misspelled \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentToExpandingArrayType.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentToExpandingArrayType.js.diff deleted file mode 100644 index d7cfbf9d60..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentToExpandingArrayType.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.assignmentToExpandingArrayType.js -+++ new.assignmentToExpandingArrayType.js -@@= skipped -30, +30 lines =@@ - - //// [assignmentToExpandingArrayType.js] - // Fixes exponential time/space in #14628 --var x = []; -+let x = []; - x[0] = { foo: 'hi' }; - x[0] = { foo: 'hi' }; - x[0] = { foo: 'hi' }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentToFunction.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentToFunction.js.diff deleted file mode 100644 index 72c30b4d9c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentToFunction.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.assignmentToFunction.js -+++ new.assignmentToFunction.js -@@= skipped -13, +13 lines =@@ - - //// [assignmentToFunction.js] - function fn() { } --fn = function () { return 3; }; -+fn = () => 3; - var foo; - (function (foo) { - function xyz() { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentToInstantiationExpression.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentToInstantiationExpression.js.diff index a57ab31dc5..e110519ee1 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentToInstantiationExpression.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentToInstantiationExpression.js.diff @@ -5,15 +5,12 @@ //// [assignmentToInstantiationExpression.js] -"use strict"; --var obj = {}; --(obj.fn) = function () { return 1234; }; --var getValue; --(getValue) = function () { return 1234; }; --var getValue2; --(getValue2) = function () { return 1234; }; -+let obj = {}; + let obj = {}; +-(obj.fn) = () => 1234; +obj.fn = () => 1234; -+let getValue; + let getValue; +-(getValue) = () => 1234; +getValue = () => 1234; -+let getValue2; + let getValue2; +-(getValue2) = () => 1234; +getValue2 = () => 1234; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentToObjectAndFunction.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentToObjectAndFunction.js.diff deleted file mode 100644 index c0f5dcb9b5..0000000000 --- a/testdata/baselines/reference/submodule/compiler/assignmentToObjectAndFunction.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.assignmentToObjectAndFunction.js -+++ new.assignmentToObjectAndFunction.js -@@= skipped -33, +33 lines =@@ - //// [assignmentToObjectAndFunction.js] - var errObj = { toString: 0 }; // Error, incompatible toString - var goodObj = { -- toString: function (x) { -+ toString(x) { - return ""; - } - }; // Ok, because toString is a subtype of Object's toString \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/assignmentToReferenceTypes.js.diff b/testdata/baselines/reference/submodule/compiler/assignmentToReferenceTypes.js.diff index 3dd8c7a32d..569d50de4a 100644 --- a/testdata/baselines/reference/submodule/compiler/assignmentToReferenceTypes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/assignmentToReferenceTypes.js.diff @@ -6,13 +6,5 @@ //// [assignmentToReferenceTypes.js] -// Should all be allowed M = null; --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} - C = null; - var E; - (function (E) { \ No newline at end of file + class C { + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/asyncArrowInClassES5.js.diff b/testdata/baselines/reference/submodule/compiler/asyncArrowInClassES5.js.diff index 1c3db8723d..27a288a967 100644 --- a/testdata/baselines/reference/submodule/compiler/asyncArrowInClassES5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/asyncArrowInClassES5.js.diff @@ -4,16 +4,14 @@ //// [asyncArrowInClassES5.js] // https://github.com/Microsoft/TypeScript/issues/16924 // Should capture `this` --var Test = /** @class */ (function () { -- function Test() { -- } +-let Test = (() => { - var _a; +- class Test { +- } - _a = Test; -- Test.member = function (x) { return __awaiter(_a, void 0, void 0, function () { return __generator(_a, function (_b) { -- return [2 /*return*/]; -- }); }); }; +- Test.member = (x) => __awaiter(_a, void 0, void 0, function* () { }); - return Test; --}()); +-})(); +class Test { + static member = async (x) => { }; +} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/asyncAwaitWithCapturedBlockScopeVar.js.diff b/testdata/baselines/reference/submodule/compiler/asyncAwaitWithCapturedBlockScopeVar.js.diff index f59041b606..d56df6bd4a 100644 --- a/testdata/baselines/reference/submodule/compiler/asyncAwaitWithCapturedBlockScopeVar.js.diff +++ b/testdata/baselines/reference/submodule/compiler/asyncAwaitWithCapturedBlockScopeVar.js.diff @@ -5,143 +5,42 @@ //// [asyncAwaitWithCapturedBlockScopeVar.js] -function fn1() { -- return __awaiter(this, void 0, void 0, function () { -- var ar, _loop_1, i; -- return __generator(this, function (_a) { -- switch (_a.label) { -- case 0: -- ar = []; -- _loop_1 = function (i) { -- return __generator(this, function (_b) { -- switch (_b.label) { -- case 0: return [4 /*yield*/, 1]; -- case 1: -- _b.sent(); -- ar.push(function () { return i; }); -- return [2 /*return*/]; -- } -- }); -- }; -- i = 0; -- _a.label = 1; -- case 1: -- if (!(i < 1)) return [3 /*break*/, 4]; -- return [5 /*yield**/, _loop_1(i)]; -- case 2: -- _a.sent(); -- _a.label = 3; -- case 3: -- i++; -- return [3 /*break*/, 1]; -- case 4: return [2 /*return*/]; -- } -- }); +- return __awaiter(this, void 0, void 0, function* () { +- let ar = []; +- for (let i = 0; i < 1; i++) { +- yield 1; +- ar.push(() => i); +- } - }); -} -function fn2() { -- return __awaiter(this, void 0, void 0, function () { -- var ar, _loop_2, i, state_1; -- return __generator(this, function (_a) { -- switch (_a.label) { -- case 0: -- ar = []; -- _loop_2 = function (i) { -- return __generator(this, function (_b) { -- switch (_b.label) { -- case 0: return [4 /*yield*/, 1]; -- case 1: -- _b.sent(); -- ar.push(function () { return i; }); -- return [2 /*return*/, "break"]; -- } -- }); -- }; -- i = 0; -- _a.label = 1; -- case 1: -- if (!(i < 1)) return [3 /*break*/, 4]; -- return [5 /*yield**/, _loop_2(i)]; -- case 2: -- state_1 = _a.sent(); -- if (state_1 === "break") -- return [3 /*break*/, 4]; -- _a.label = 3; -- case 3: -- i++; -- return [3 /*break*/, 1]; -- case 4: return [2 /*return*/]; -- } -- }); +- return __awaiter(this, void 0, void 0, function* () { +- let ar = []; +- for (let i = 0; i < 1; i++) { +- yield 1; +- ar.push(() => i); +- break; +- } - }); -} -function fn3() { -- return __awaiter(this, void 0, void 0, function () { -- var ar, _loop_3, i; -- return __generator(this, function (_a) { -- switch (_a.label) { -- case 0: -- ar = []; -- _loop_3 = function (i) { -- return __generator(this, function (_b) { -- switch (_b.label) { -- case 0: return [4 /*yield*/, 1]; -- case 1: -- _b.sent(); -- ar.push(function () { return i; }); -- return [2 /*return*/, "continue"]; -- } -- }); -- }; -- i = 0; -- _a.label = 1; -- case 1: -- if (!(i < 1)) return [3 /*break*/, 4]; -- return [5 /*yield**/, _loop_3(i)]; -- case 2: -- _a.sent(); -- _a.label = 3; -- case 3: -- i++; -- return [3 /*break*/, 1]; -- case 4: return [2 /*return*/]; -- } -- }); +- return __awaiter(this, void 0, void 0, function* () { +- let ar = []; +- for (let i = 0; i < 1; i++) { +- yield 1; +- ar.push(() => i); +- continue; +- } - }); -} -function fn4() { -- return __awaiter(this, void 0, void 0, function () { -- var ar, _loop_4, i, state_2; -- return __generator(this, function (_a) { -- switch (_a.label) { -- case 0: -- ar = []; -- _loop_4 = function (i) { -- return __generator(this, function (_b) { -- switch (_b.label) { -- case 0: return [4 /*yield*/, 1]; -- case 1: -- _b.sent(); -- ar.push(function () { return i; }); -- return [2 /*return*/, { value: 1 }]; -- } -- }); -- }; -- i = 0; -- _a.label = 1; -- case 1: -- if (!(i < 1)) return [3 /*break*/, 4]; -- return [5 /*yield**/, _loop_4(i)]; -- case 2: -- state_2 = _a.sent(); -- if (typeof state_2 === "object") -- return [2 /*return*/, state_2.value]; -- _a.label = 3; -- case 3: -- i++; -- return [3 /*break*/, 1]; -- case 4: return [2 /*return*/]; -- } -- }); +- return __awaiter(this, void 0, void 0, function* () { +- let ar = []; +- for (let i = 0; i < 1; i++) { +- yield 1; +- ar.push(() => i); +- return 1; +- } - }); +async function fn1() { + let ar = []; diff --git a/testdata/baselines/reference/submodule/compiler/asyncFunctionNoReturnType.js.diff b/testdata/baselines/reference/submodule/compiler/asyncFunctionNoReturnType.js.diff index 14fb55e40b..a4f6a99b2f 100644 --- a/testdata/baselines/reference/submodule/compiler/asyncFunctionNoReturnType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/asyncFunctionNoReturnType.js.diff @@ -13,42 +13,9 @@ - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; -- } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -- } --}; --var _this = this; --(function () { return __awaiter(_this, void 0, void 0, function () { -- return __generator(this, function (_a) { -- if (window) -- return [2 /*return*/]; -- return [2 /*return*/]; -- }); --}); }); +-() => __awaiter(this, void 0, void 0, function* () { +async () => { -+ if (window) -+ return; + if (window) + return; +-}); +}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/asyncFunctionReturnExpressionErrorSpans.js.diff b/testdata/baselines/reference/submodule/compiler/asyncFunctionReturnExpressionErrorSpans.js.diff index 94bc9a68b0..44e9bc7849 100644 --- a/testdata/baselines/reference/submodule/compiler/asyncFunctionReturnExpressionErrorSpans.js.diff +++ b/testdata/baselines/reference/submodule/compiler/asyncFunctionReturnExpressionErrorSpans.js.diff @@ -13,53 +13,23 @@ - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; +-function asyncFoo() { +- return __awaiter(this, void 0, void 0, function* () { +- return { +- bar: { +- baz: { +- inner: { +- thing: 1 +- } +async function asyncFoo() { + return { + bar: { + baz: { + inner: { + thing: 1 -+ } + } } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -- } --}; --function asyncFoo() { -- return __awaiter(this, void 0, void 0, function () { -- return __generator(this, function (_a) { -- return [2 /*return*/, { -- bar: { -- baz: { -- inner: { -- thing: 1 -- } -- } -- } -- }]; -- }); +- }; - }); + } + }; diff --git a/testdata/baselines/reference/submodule/compiler/asyncFunctionTempVariableScoping.js.diff b/testdata/baselines/reference/submodule/compiler/asyncFunctionTempVariableScoping.js.diff index 76864c4742..7fbfd45ed6 100644 --- a/testdata/baselines/reference/submodule/compiler/asyncFunctionTempVariableScoping.js.diff +++ b/testdata/baselines/reference/submodule/compiler/asyncFunctionTempVariableScoping.js.diff @@ -13,33 +13,6 @@ - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; -- } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -- } --}; -var __rest = (this && this.__rest) || function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) @@ -51,17 +24,8 @@ - } - return t; -}; --var _this = this; --(function (_a) { return __awaiter(_this, void 0, void 0, function () { -- var _b; -- var foo = _a.foo, bar = _a.bar, rest = __rest(_a, ["foo", "bar"]); -- return __generator(this, function (_c) { -- switch (_c.label) { -- case 0: -- _b = bar; -- return [4 /*yield*/, foo]; -- case 1: return [2 /*return*/, _b.apply(void 0, [_c.sent()])]; -- } -- }); --}); }); +-(_a) => __awaiter(this, void 0, void 0, function* () { +- var { foo, bar } = _a, rest = __rest(_a, ["foo", "bar"]); +- return bar(yield foo); +-}); +async ({ foo, bar, ...rest }) => bar(await foo); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/asyncFunctionWithForStatementNoInitializer.js.diff b/testdata/baselines/reference/submodule/compiler/asyncFunctionWithForStatementNoInitializer.js.diff index 403dcedbed..50f2f67e25 100644 --- a/testdata/baselines/reference/submodule/compiler/asyncFunctionWithForStatementNoInitializer.js.diff +++ b/testdata/baselines/reference/submodule/compiler/asyncFunctionWithForStatementNoInitializer.js.diff @@ -13,75 +13,33 @@ - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; -- } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -- } --}; -function test1() { -- return __awaiter(this, void 0, void 0, function () { -- var i, limit; -- return __generator(this, function (_a) { -- i = 0; -- limit = 10; -- for (; i < limit; ++i) { -- } -- return [2 /*return*/]; -- }); +- return __awaiter(this, void 0, void 0, function* () { +- let i = 0; +- let limit = 10; +- for (; i < limit; ++i) { +- } - }); -} -function test2() { -- return __awaiter(this, void 0, void 0, function () { -- var i, limit; -- return __generator(this, function (_a) { -- i = 0; -- limit = 10; -- for (i = 1; i < limit; ++i) { -- } -- return [2 /*return*/]; -- }); +- return __awaiter(this, void 0, void 0, function* () { +- let i = 0; +- let limit = 10; +- for (i = 1; i < limit; ++i) { +- } - }); -} -function test3() { -- return __awaiter(this, void 0, void 0, function () { -- var i; -- return __generator(this, function (_a) { -- i = 0; -- for (;; ++i) { -- } -- return [2 /*return*/]; -- }); +- return __awaiter(this, void 0, void 0, function* () { +- let i = 0; +- for (;; ++i) { +- } - }); -} -function test4() { -- return __awaiter(this, void 0, void 0, function () { -- return __generator(this, function (_a) { -- for (;;) { -- } -- return [2 /*return*/]; -- }); +- return __awaiter(this, void 0, void 0, function* () { +- for (;;) { +- } - }); +async function test1() { + let i = 0; diff --git a/testdata/baselines/reference/submodule/compiler/asyncImportNestedYield.js.diff b/testdata/baselines/reference/submodule/compiler/asyncImportNestedYield.js.diff index 042c8d62b9..4e0ed2c606 100644 --- a/testdata/baselines/reference/submodule/compiler/asyncImportNestedYield.js.diff +++ b/testdata/baselines/reference/submodule/compiler/asyncImportNestedYield.js.diff @@ -4,33 +4,6 @@ } //// [asyncImportNestedYield.js] --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; -- } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -- } --}; -var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } -var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); @@ -45,17 +18,8 @@ - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } -}; -function foo() { -- return __asyncGenerator(this, arguments, function foo_1() { -- return __generator(this, function (_a) { -- switch (_a.label) { -- case 0: return [4 /*yield*/, __await("foo")]; -- case 1: return [4 /*yield*/, _a.sent()]; -- case 2: return [4 /*yield*/, __await.apply(void 0, [Promise.resolve("".concat(_a.sent())).then(function (s) { return require(s); })])]; -- case 3: -- Promise.resolve("".concat((_a.sent()).default)).then(function (s) { return require(s); }); -- return [2 /*return*/]; -- } -- }); +- return __asyncGenerator(this, arguments, function* foo_1() { +- Promise.resolve("".concat((yield __await(Promise.resolve("".concat(yield yield __await("foo"))).then(function (s) { return require(s); }))).default)).then(function (s) { return require(s); }); - }); +async function* foo() { + Promise.resolve(`${(await Promise.resolve(`${yield "foo"}`).then(s => require(s))).default}`).then(s => require(s)); diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals1.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals1.js.diff index 68e8f1bbd3..8d216f9f23 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals1.js.diff @@ -23,7 +23,7 @@ -define(["require", "exports", "./file2"], function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var a; // should not work +- let a; // should not work -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals1_1.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals1_1.js.diff index 5d4ac7ba2b..efaba1e6ca 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals1_1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals1_1.js.diff @@ -13,7 +13,7 @@ -define(["require", "exports", "file2"], function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var a; // should not work +- let a; // should not work -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals2.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals2.js.diff index 78160a472a..3fb6f41e10 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals2.js.diff @@ -25,5 +25,5 @@ -define(["require", "exports", "./file2"], function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var a; // should not work +- let a; // should not work -}); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals2_1.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals2_1.js.diff index 1bcc67f6a7..2adb9e4db6 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals2_1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals2_1.js.diff @@ -13,7 +13,7 @@ -define(["require", "exports", "file2"], function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var a; // should not work +- let a; // should not work -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals3.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals3.js.diff index 9218bf1d13..bee49d4f7f 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals3.js.diff @@ -32,8 +32,8 @@ -define(["require", "exports", "./file1", "./file2"], function (require, exports, x) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var a; -- var b = x.b; +- let a; +- let b = x.b; -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals3_1.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals3_1.js.diff index 404261ae17..a2dec5c4fa 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals3_1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals3_1.js.diff @@ -18,8 +18,8 @@ -define(["require", "exports", "file1", "file2"], function (require, exports, x) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var a; -- var b = x.b; +- let a; +- let b = x.b; -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals4.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals4.js.diff index c77fc52209..ca7a9b5a9f 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals4.js.diff @@ -6,11 +6,8 @@ //// [file1.js] -define(["require", "exports"], function (require, exports) { - "use strict"; -- var foo = /** @class */ (function () { -- function foo() { -- } -- return foo; -- }()); +- class foo { +- } - (function (foo) { - foo.v = 1; - })(foo || (foo = {})); @@ -37,8 +34,8 @@ -define(["require", "exports", "./file1", "./file2"], function (require, exports, x) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var a; -- var b = x.b; +- let a; +- let b = x.b; -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals4_1.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals4_1.js.diff index 0cd9c4f323..9238b3fd54 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals4_1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals4_1.js.diff @@ -18,8 +18,8 @@ -define(["require", "exports", "file1", "file2"], function (require, exports, x) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var a; -- var b = x.b; +- let a; +- let b = x.b; -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals5.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals5.js.diff index 2a5554a1ed..7c76de60b2 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals5.js.diff @@ -14,8 +14,8 @@ -define(["require", "exports", "./augmentation"], function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var x; -- var y = x.id; +- let x; +- const y = x.id; -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals6.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals6.js.diff index 30a5403a69..1a7889ccd5 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals6.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals6.js.diff @@ -6,30 +6,23 @@ //// [file1.js] -define(["require", "exports"], function (require, exports) { - "use strict"; -- var foo = /** @class */ (function () { -- function foo() { -- } -- return foo; -- }()); +- class foo { ++"use strict"; ++class foo { ++} ++(function (foo) { ++ class A { + } - (function (foo) { -- var A = /** @class */ (function () { -- function A() { -- } -- return A; -- }()); +- class A { +- } - foo.A = A; -- var B; +- let B; - (function (B) { - })(B = foo.B || (foo.B = {})); - })(foo || (foo = {})); - return foo; -}); -+"use strict"; -+class foo { -+} -+(function (foo) { -+ class A { -+ } + foo.A = A; + let B; + (function (B) { @@ -50,9 +43,9 @@ -define(["require", "exports", "./file1", "./file2"], function (require, exports, x) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var a; -- var b = a.a; -- var c = x.B.b; +- let a; +- let b = a.a; +- let c = x.B.b; -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentExportEquals6_1.js.diff b/testdata/baselines/reference/submodule/compiler/augmentExportEquals6_1.js.diff index 3c9462fe74..10355f49f7 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentExportEquals6_1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentExportEquals6_1.js.diff @@ -14,8 +14,8 @@ -define(["require", "exports", "file2"], function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); -- var a; -- var b = a.a; +- let a; +- let b = a.a; -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesClass.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesClass.js.diff deleted file mode 100644 index c96be7bc87..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesClass.js.diff +++ /dev/null @@ -1,29 +0,0 @@ ---- old.augmentedTypesClass.js -+++ new.augmentedTypesClass.js -@@= skipped -10, +10 lines =@@ - - //// [augmentedTypesClass.js] - //// class then var --var c1 = /** @class */ (function () { -- function c1() { -- } -- c1.prototype.foo = function () { }; -- return c1; --}()); -+class c1 { -+ foo() { } -+} - var c1 = 1; // error - //// class then enum --var c4 = /** @class */ (function () { -- function c4() { -- } -- c4.prototype.foo = function () { }; -- return c4; --}()); -+class c4 { -+ foo() { } -+} - (function (c4) { - c4[c4["One"] = 0] = "One"; - })(c4 || (c4 = {})); // error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesClass2.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesClass2.js.diff deleted file mode 100644 index a1517b0bcc..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesClass2.js.diff +++ /dev/null @@ -1,49 +0,0 @@ ---- old.augmentedTypesClass2.js -+++ new.augmentedTypesClass2.js -@@= skipped -34, +34 lines =@@ - //// [augmentedTypesClass2.js] - // Checking class with other things in type space not value space - // class then interface --var c11 = /** @class */ (function () { -- function c11() { -- } -- c11.prototype.foo = function () { -+class c11 { -+ foo() { - return 1; -- }; -- return c11; --}()); -+ } -+} - // class then class - covered - // class then enum --var c33 = /** @class */ (function () { -- function c33() { -- } -- c33.prototype.foo = function () { -+class c33 { -+ foo() { - return 1; -- }; -- return c33; --}()); -+ } -+} - (function (c33) { - c33[c33["One"] = 0] = "One"; - })(c33 || (c33 = {})); - ; - // class then import --var c44 = /** @class */ (function () { -- function c44() { -- } -- c44.prototype.foo = function () { -+class c44 { -+ foo() { - return 1; -- }; -- return c44; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesClass2a.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesClass2a.js.diff deleted file mode 100644 index cdcf4df928..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesClass2a.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.augmentedTypesClass2a.js -+++ new.augmentedTypesClass2a.js -@@= skipped -7, +7 lines =@@ - - //// [augmentedTypesClass2a.js] - //// class then function --var c2 = /** @class */ (function () { -- function c2() { -- } -- c2.prototype.foo = function () { }; -- return c2; --}()); // error -+class c2 { -+ foo() { } -+} // error - function c2() { } // error --var c2 = function () { }; -+var c2 = () => { }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesClass3.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesClass3.js.diff deleted file mode 100644 index 1d1c01a58c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesClass3.js.diff +++ /dev/null @@ -1,50 +0,0 @@ ---- old.augmentedTypesClass3.js -+++ new.augmentedTypesClass3.js -@@= skipped -16, +16 lines =@@ - - //// [augmentedTypesClass3.js] - // class then module --var c5 = /** @class */ (function () { -- function c5() { -- } -- c5.prototype.foo = function () { }; -- return c5; --}()); --var c5a = /** @class */ (function () { -- function c5a() { -- } -- c5a.prototype.foo = function () { }; -- return c5a; --}()); -+class c5 { -+ foo() { } -+} -+class c5a { -+ foo() { } -+} - (function (c5a) { - var y = 2; - })(c5a || (c5a = {})); // should be ok --var c5b = /** @class */ (function () { -- function c5b() { -- } -- c5b.prototype.foo = function () { }; -- return c5b; --}()); -+class c5b { -+ foo() { } -+} - (function (c5b) { - c5b.y = 2; - })(c5b || (c5b = {})); // should be ok - //// class then import --var c5c = /** @class */ (function () { -- function c5c() { -- } -- c5c.prototype.foo = function () { }; -- return c5c; --}()); -+class c5c { -+ foo() { } -+} - //import c5c = require(''); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesClass4.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesClass4.js.diff deleted file mode 100644 index a4c03c9cc2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesClass4.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.augmentedTypesClass4.js -+++ new.augmentedTypesClass4.js -@@= skipped -7, +7 lines =@@ - - //// [augmentedTypesClass4.js] - //// class then class --var c3 = /** @class */ (function () { -- function c3() { -- } -- c3.prototype.foo = function () { }; -- return c3; --}()); // error --var c3 = /** @class */ (function () { -- function c3() { -- } -- c3.prototype.bar = function () { }; -- return c3; --}()); // error -+class c3 { -+ foo() { } -+} // error -+class c3 { -+ bar() { } -+} // error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesEnum.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesEnum.js.diff deleted file mode 100644 index 8307f4cc16..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesEnum.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.augmentedTypesEnum.js -+++ new.augmentedTypesEnum.js -@@= skipped -53, +53 lines =@@ - (function (e3) { - e3[e3["One"] = 0] = "One"; - })(e3 || (e3 = {})); // error --var e3 = function () { }; // error -+var e3 = () => { }; // error - // enum then class - var e4; - (function (e4) { - e4[e4["One"] = 0] = "One"; - })(e4 || (e4 = {})); // error --var e4 = /** @class */ (function () { -- function e4() { -- } -- e4.prototype.foo = function () { }; -- return e4; --}()); // error -+class e4 { -+ foo() { } -+} // error - // enum then enum - var e5; - (function (e5) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesEnum2.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesEnum2.js.diff deleted file mode 100644 index 525f0d1d96..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesEnum2.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.augmentedTypesEnum2.js -+++ new.augmentedTypesEnum2.js -@@= skipped -33, +33 lines =@@ - e2[e2["One"] = 0] = "One"; - })(e2 || (e2 = {})); - ; // error --var e2 = /** @class */ (function () { -- function e2() { -- } -- e2.prototype.foo = function () { -+class e2 { -+ foo() { - return 1; -- }; -- return e2; --}()); -+ } -+} - //enum then enum - covered - //enum then import - covered \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesExternalModule1.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesExternalModule1.js.diff index ae6eb556fd..8806237805 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesExternalModule1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentedTypesExternalModule1.js.diff @@ -9,12 +9,9 @@ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.a = void 0; - exports.a = 1; -- var c5 = /** @class */ (function () { -- function c5() { -- } -- c5.prototype.foo = function () { }; -- return c5; -- }()); +- class c5 { +- foo() { } +- } -}); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesFunction.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesFunction.js.diff deleted file mode 100644 index f28dfbfc2b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesFunction.js.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.augmentedTypesFunction.js -+++ new.augmentedTypesFunction.js -@@= skipped -47, +47 lines =@@ - function y2() { } // error - function y2() { } // error - function y2a() { } // error --var y2a = function () { }; // error -+var y2a = () => { }; // error - // function then class - function y3() { } // error --var y3 = /** @class */ (function () { -- function y3() { -- } -- return y3; --}()); // error -+class y3 { -+} // error - function y3a() { } // error --var y3a = /** @class */ (function () { -- function y3a() { -- } -- y3a.prototype.foo = function () { }; -- return y3a; --}()); // error -+class y3a { -+ foo() { } -+} // error - // function then enum - function y4() { } // error - (function (y4) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesInterface.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesInterface.js.diff index e625d03dc1..cae881d4fe 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesInterface.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentedTypesInterface.js.diff @@ -5,18 +5,6 @@ //// [augmentedTypesInterface.js] -// interface then interface --var i2 = /** @class */ (function () { -- function i2() { -- } -- i2.prototype.bar = function () { -+class i2 { -+ bar() { - return 1; -- }; -- return i2; --}()); -+ } -+} - var i3; - (function (i3) { - i3[i3["One"] = 0] = "One"; \ No newline at end of file + class i2 { + bar() { + return 1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesModules.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesModules.js.diff deleted file mode 100644 index 041c419105..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesModules.js.diff +++ /dev/null @@ -1,109 +0,0 @@ ---- old.augmentedTypesModules.js -+++ new.augmentedTypesModules.js -@@= skipped -113, +113 lines =@@ - var m1c = 1; // Should be allowed - var m1d; - (function (m1d) { -- var I = /** @class */ (function () { -- function I() { -- } -- I.prototype.foo = function () { }; -- return I; -- }()); -+ class I { -+ foo() { } -+ } - m1d.I = I; - })(m1d || (m1d = {})); - var m1d = 1; // error -@@= skipped -34, +31 lines =@@ - function m2g() { } - ; - (function (m2g) { -- var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { }; -- return C; -- }()); -+ class C { -+ foo() { } -+ } - m2g.C = C; - })(m2g || (m2g = {})); --var m3 = /** @class */ (function () { -- function m3() { -- } -- return m3; --}()); // ok since the module is not instantiated -+class m3 { -+} // ok since the module is not instantiated - var m3a; - (function (m3a) { - var y = 2; - })(m3a || (m3a = {})); --var m3a = /** @class */ (function () { -- function m3a() { -- } -- m3a.prototype.foo = function () { }; -- return m3a; --}()); // error, class isn't ambient or declared before the module --var m3b = /** @class */ (function () { -- function m3b() { -- } -- m3b.prototype.foo = function () { }; -- return m3b; --}()); -+class m3a { -+ foo() { } -+} // error, class isn't ambient or declared before the module -+class m3b { -+ foo() { } -+} - (function (m3b) { - var y = 2; - })(m3b || (m3b = {})); --var m3c = /** @class */ (function () { -- function m3c() { -- } -- m3c.prototype.foo = function () { }; -- return m3c; --}()); -+class m3c { -+ foo() { } -+} - (function (m3c) { - m3c.y = 2; - })(m3c || (m3c = {})); -@@= skipped -51, +36 lines =@@ - })(m3e || (m3e = {})); - var m3g; - (function (m3g) { -- var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { }; -- return C; -- }()); -+ class C { -+ foo() { } -+ } - m3g.C = C; - })(m3g || (m3g = {})); - var m4; -@@= skipped -31, +28 lines =@@ - })(m4c || (m4c = {})); - var m4d; - (function (m4d) { -- var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { }; -- return C; -- }()); -+ class C { -+ foo() { } -+ } - })(m4d || (m4d = {})); - (function (m4d) { - m4d[m4d["One"] = 0] = "One"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesModules2.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesModules2.js.diff deleted file mode 100644 index 688e562525..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesModules2.js.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.augmentedTypesModules2.js -+++ new.augmentedTypesModules2.js -@@= skipped -60, +60 lines =@@ - function m2g() { } - ; - (function (m2g) { -- var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { }; -- return C; -- }()); -+ class C { -+ foo() { } -+ } - m2g.C = C; - })(m2g || (m2g = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesModules3.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesModules3.js.diff deleted file mode 100644 index 571c42bce9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesModules3.js.diff +++ /dev/null @@ -1,26 +0,0 @@ ---- old.augmentedTypesModules3.js -+++ new.augmentedTypesModules3.js -@@= skipped -8, +8 lines =@@ - class m3a { foo() { } } // error, class isn't ambient or declared before the module - - //// [augmentedTypesModules3.js] --var m3 = /** @class */ (function () { -- function m3() { -- } -- return m3; --}()); // ok since the module is not instantiated -+class m3 { -+} // ok since the module is not instantiated - var m3a; - (function (m3a) { - var y = 2; - })(m3a || (m3a = {})); --var m3a = /** @class */ (function () { -- function m3a() { -- } -- m3a.prototype.foo = function () { }; -- return m3a; --}()); // error, class isn't ambient or declared before the module -+class m3a { -+ foo() { } -+} // error, class isn't ambient or declared before the module \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesModules3b.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesModules3b.js.diff deleted file mode 100644 index cf59df5f7a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesModules3b.js.diff +++ /dev/null @@ -1,45 +0,0 @@ ---- old.augmentedTypesModules3b.js -+++ new.augmentedTypesModules3b.js -@@= skipped -20, +20 lines =@@ - - - //// [augmentedTypesModules3b.js] --var m3b = /** @class */ (function () { -- function m3b() { -- } -- m3b.prototype.foo = function () { }; -- return m3b; --}()); -+class m3b { -+ foo() { } -+} - (function (m3b) { - var y = 2; - })(m3b || (m3b = {})); --var m3c = /** @class */ (function () { -- function m3c() { -- } -- m3c.prototype.foo = function () { }; -- return m3c; --}()); -+class m3c { -+ foo() { } -+} - (function (m3c) { - m3c.y = 2; - })(m3c || (m3c = {})); -@@= skipped -28, +22 lines =@@ - })(m3e || (m3e = {})); - var m3g; - (function (m3g) { -- var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { }; -- return C; -- }()); -+ class C { -+ foo() { } -+ } - m3g.C = C; - })(m3g || (m3g = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesModules4.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesModules4.js.diff deleted file mode 100644 index e2464a84af..0000000000 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesModules4.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.augmentedTypesModules4.js -+++ new.augmentedTypesModules4.js -@@= skipped -47, +47 lines =@@ - })(m4c || (m4c = {})); - var m4d; - (function (m4d) { -- var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { }; -- return C; -- }()); -+ class C { -+ foo() { } -+ } - })(m4d || (m4d = {})); - (function (m4d) { - m4d[m4d["One"] = 0] = "One"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/augmentedTypesVar.js.diff b/testdata/baselines/reference/submodule/compiler/augmentedTypesVar.js.diff index b8a6e81e4e..95d143a81c 100644 --- a/testdata/baselines/reference/submodule/compiler/augmentedTypesVar.js.diff +++ b/testdata/baselines/reference/submodule/compiler/augmentedTypesVar.js.diff @@ -1,30 +1,7 @@ --- old.augmentedTypesVar.js +++ new.augmentedTypesVar.js -@@= skipped -45, +45 lines =@@ - var x2 = 1; // error - function x2() { } // error - var x3 = 1; --var x3 = function () { }; // error -+var x3 = () => { }; // error - // var then class - var x4 = 1; // error --var x4 = /** @class */ (function () { -- function x4() { -- } -- return x4; --}()); // error -+class x4 { -+} // error - var x4a = 1; // error --var x4a = /** @class */ (function () { -- function x4a() { -- } -- x4a.prototype.foo = function () { }; -- return x4a; --}()); // error -+class x4a { -+ foo() { } -+} // error +@@= skipped -56, +56 lines =@@ + } // error // var then enum var x5 = 1; -var x5; diff --git a/testdata/baselines/reference/submodule/compiler/autoAsiForStaticsInClassDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/autoAsiForStaticsInClassDeclaration.js.diff index 5264d0a9d1..d3ad6957de 100644 --- a/testdata/baselines/reference/submodule/compiler/autoAsiForStaticsInClassDeclaration.js.diff +++ b/testdata/baselines/reference/submodule/compiler/autoAsiForStaticsInClassDeclaration.js.diff @@ -1,15 +1,9 @@ --- old.autoAsiForStaticsInClassDeclaration.js +++ new.autoAsiForStaticsInClassDeclaration.js -@@= skipped -6, +6 lines =@@ - } +@@= skipped -7, +7 lines =@@ //// [autoAsiForStaticsInClassDeclaration.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { + class C { + static x; + static y; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/autoLift2.js.diff b/testdata/baselines/reference/submodule/compiler/autoLift2.js.diff deleted file mode 100644 index 2611e18c23..0000000000 --- a/testdata/baselines/reference/submodule/compiler/autoLift2.js.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- old.autoLift2.js -+++ new.autoLift2.js -@@= skipped -33, +33 lines =@@ - - - //// [autoLift2.js] --var A = /** @class */ (function () { -- function A() { -+class A { -+ constructor() { - this.foo; - any; - this.bar; - any; - } -- A.prototype.baz = function () { -- var _this = this; -+ baz() { - this.foo = "foo"; - this.bar = "bar"; -- [1, 2].forEach(function (p) { return _this.foo; }); -- [1, 2].forEach(function (p) { return _this.bar; }); -- }; -- return A; --}()); -+ [1, 2].forEach((p) => this.foo); -+ [1, 2].forEach((p) => this.bar); -+ } -+} - var a = new A(); - a.baz(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/autolift3.js.diff b/testdata/baselines/reference/submodule/compiler/autolift3.js.diff deleted file mode 100644 index d563ae2843..0000000000 --- a/testdata/baselines/reference/submodule/compiler/autolift3.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.autolift3.js -+++ new.autolift3.js -@@= skipped -32, +32 lines =@@ - - - //// [autolift3.js] --var B = /** @class */ (function () { -- function B() { -+class B { -+ constructor() { - function foo() { } - foo(); - var a = 0; -@@= skipped -17, +17 lines =@@ - return inner; - })(); - } -- return B; --}()); -+} - var b = new B(); - b.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/autolift4.js.diff b/testdata/baselines/reference/submodule/compiler/autolift4.js.diff index c46ef746e3..425be45ce6 100644 --- a/testdata/baselines/reference/submodule/compiler/autolift4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/autolift4.js.diff @@ -4,58 +4,33 @@ //// [autolift4.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; +-let Point = (() => { +- class Point { +- constructor(x, y) { +- this.x = x; +- this.y = y; +- } +- getDist() { +- return Math.sqrt(this.x * this.x + this.y * this.y); +- } +- } +- Point.origin = new Point(0, 0); +- return Point; -})(); --var Point = /** @class */ (function () { -- function Point(x, y) { +class Point { + x; + y; + constructor(x, y) { - this.x = x; - this.y = y; - } -- Point.prototype.getDist = function () { ++ this.x = x; ++ this.y = y; ++ } + getDist() { - return Math.sqrt(this.x * this.x + this.y * this.y); -- }; -- Point.origin = new Point(0, 0); -- return Point; --}()); --var Point3D = /** @class */ (function (_super) { -- __extends(Point3D, _super); -- function Point3D(x, y, z, m) { -- var _this = _super.call(this, x, y) || this; -- _this.z = z; -- return _this; -- } -- Point3D.prototype.getDist = function () { ++ return Math.sqrt(this.x * this.x + this.y * this.y); + } + static origin = new Point(0, 0); +} -+class Point3D extends Point { + class Point3D extends Point { + z; -+ constructor(x, y, z, m) { -+ super(x, y); -+ this.z = z; -+ } -+ getDist() { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.m); -- }; -- return Point3D; --}(Point)); -+ } -+} \ No newline at end of file + constructor(x, y, z, m) { + super(x, y); + this.z = z; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/avoid.js.diff b/testdata/baselines/reference/submodule/compiler/avoid.js.diff deleted file mode 100644 index 9dc8213f59..0000000000 --- a/testdata/baselines/reference/submodule/compiler/avoid.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.avoid.js -+++ new.avoid.js -@@= skipped -28, +28 lines =@@ - var why = f(); // error void fn - var w; - w = f(); // error void fn --var C = /** @class */ (function () { -- function C() { -+class C { -+ g() { - } -- C.prototype.g = function () { -- }; -- return C; --}()); -+} - var z = new C().g(); // error void fn - var N = new f(); // ok with void fn \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/awaitedTypeNoLib.js.diff b/testdata/baselines/reference/submodule/compiler/awaitedTypeNoLib.js.diff deleted file mode 100644 index 99d1c270fd..0000000000 --- a/testdata/baselines/reference/submodule/compiler/awaitedTypeNoLib.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.awaitedTypeNoLib.js -+++ new.awaitedTypeNoLib.js -@@= skipped -28, +28 lines =@@ - } - - //// [awaitedTypeNoLib.js] --var Thenable = /** @class */ (function () { -- function Thenable() { -- } -- Thenable.prototype.then = function (a) { }; -- Thenable.prototype.handleResolve = function (result, resolve) { -+class Thenable { -+ then(a) { } -+ handleResolve(result, resolve) { - if (result instanceof Thenable) { - // #58547 This previously was a Debug Failure. False expression: type provided should not be a non-generic 'promise'-like. - this.resolvePromise(result, resolve); - } -- }; -- Thenable.prototype.resolvePromise = function (result, resolve) { }; -- return Thenable; --}()); -+ } -+ resolvePromise(result, resolve) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/badArraySyntax.js.diff b/testdata/baselines/reference/submodule/compiler/badArraySyntax.js.diff index 04d6e338ac..978b4e22a6 100644 --- a/testdata/baselines/reference/submodule/compiler/badArraySyntax.js.diff +++ b/testdata/baselines/reference/submodule/compiler/badArraySyntax.js.diff @@ -1,18 +1,13 @@ --- old.badArraySyntax.js +++ new.badArraySyntax.js -@@= skipped -13, +13 lines =@@ - +@@= skipped -14, +14 lines =@@ //// [badArraySyntax.js] --var Z = /** @class */ (function () { -- function Z() { + class Z { +- constructor() { - this.x = ""; - } -- return Z; --}()); -+class Z { + x = ""; -+} + } var a1 = []; - var a2 = new Z[]; - var a3 = new Z[](); \ No newline at end of file + var a2 = new Z[]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/badInferenceLowerPriorityThanGoodInference.js.diff b/testdata/baselines/reference/submodule/compiler/badInferenceLowerPriorityThanGoodInference.js.diff index 68704faec3..c2f7f0e6f4 100644 --- a/testdata/baselines/reference/submodule/compiler/badInferenceLowerPriorityThanGoodInference.js.diff +++ b/testdata/baselines/reference/submodule/compiler/badInferenceLowerPriorityThanGoodInference.js.diff @@ -5,17 +5,6 @@ //// [badInferenceLowerPriorityThanGoodInference.js] -// Repro from #13118 --var result = canYouInferThis(function () { return ({ -+const result = canYouInferThis(() => ({ + const result = canYouInferThis(() => ({ a: { BLAH: 33 }, -- b: function (x) { } --}); }); -+ b: x => { } -+})); - result.BLAH; - // Repro from #26629 - function goofus(f) { } --goofus(function (a) { return ({ dog: function () { return a; } }); }); --goofus(function (a) { return ({ dog: function () { return a; } }); }); -+goofus((a) => ({ dog() { return a; } })); -+goofus((a) => ({ dog: function () { return a; } })); \ No newline at end of file + b: x => { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/badThisBinding.js.diff b/testdata/baselines/reference/submodule/compiler/badThisBinding.js.diff deleted file mode 100644 index bd18fde760..0000000000 --- a/testdata/baselines/reference/submodule/compiler/badThisBinding.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.badThisBinding.js -+++ new.badThisBinding.js -@@= skipped -15, +15 lines =@@ - } - - //// [badThisBinding.js] --var Greeter = /** @class */ (function () { -- function Greeter() { -- var _this = this; -- foo(function () { -- bar(function () { -- var x = _this; -+class Greeter { -+ constructor() { -+ foo(() => { -+ bar(() => { -+ var x = this; - }); - }); - } -- return Greeter; --}()); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/baseCheck.js.diff b/testdata/baselines/reference/submodule/compiler/baseCheck.js.diff index 9e0a1926fb..5c79c2df35 100644 --- a/testdata/baselines/reference/submodule/compiler/baseCheck.js.diff +++ b/testdata/baselines/reference/submodule/compiler/baseCheck.js.diff @@ -1,109 +1,24 @@ --- old.baseCheck.js +++ new.baseCheck.js -@@= skipped -31, +31 lines =@@ - - - //// [baseCheck.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var C = /** @class */ (function () { -- function C(x, y) { -- } -- return C; --}()); --var ELoc = /** @class */ (function (_super) { -- __extends(ELoc, _super); -- function ELoc(x) { -- return _super.call(this, 0, x) || this; -- } -- return ELoc; --}(C)); --var ELocVar = /** @class */ (function (_super) { -- __extends(ELocVar, _super); -- function ELocVar(x) { -- return _super.call(this, 0, loc) || this; -- } -- ELocVar.prototype.m = function () { -+class C { -+ constructor(x, y) { } -+} -+class ELoc extends C { -+ constructor(x) { -+ super(0, x); -+ } -+} -+class ELocVar extends C { -+ constructor(x) { -+ super(0, loc); -+ } -+ m() { - var loc = 10; -- }; -- return ELocVar; --}(C)); --var D = /** @class */ (function (_super) { -- __extends(D, _super); -- function D(z) { -- var _this = _super.call(this, _this.z) || this; -- _this.z = z; -- return _this; -- } -- return D; --}(C)); // too few params --var E = /** @class */ (function (_super) { -- __extends(E, _super); -- function E(z) { -- var _this = _super.call(this, 0, _this.z) || this; -- _this.z = z; -- return _this; -- } -- return E; --}(C)); --var F = /** @class */ (function (_super) { -- __extends(F, _super); -- function F(z) { -- var _this = _super.call(this, "hello", _this.z) || this; -- _this.z = z; -- return _this; -- } -- return F; --}(C)); // first param type -+ } -+} -+class D extends C { +@@= skipped -48, +48 lines =@@ + } + } + class D extends C { + z; -+ constructor(z) { -+ super(this.z); -+ this.z = z; -+ } -+} // too few params -+class E extends C { + constructor(z) { + super(this.z); + this.z = z; + } + } // too few params + class E extends C { + z; -+ constructor(z) { -+ super(0, this.z); -+ this.z = z; -+ } -+} -+class F extends C { + constructor(z) { + super(0, this.z); + this.z = z; + } + } + class F extends C { + z; -+ constructor(z) { -+ super("hello", this.z); -+ this.z = z; -+ } -+} // first param type - function f() { - if (x < 10) { - x = 11; \ No newline at end of file + constructor(z) { + super("hello", this.z); + this.z = z; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/baseClassImprovedMismatchErrors.js.diff b/testdata/baselines/reference/submodule/compiler/baseClassImprovedMismatchErrors.js.diff index a24f4157ab..f0f05d3eef 100644 --- a/testdata/baselines/reference/submodule/compiler/baseClassImprovedMismatchErrors.js.diff +++ b/testdata/baselines/reference/submodule/compiler/baseClassImprovedMismatchErrors.js.diff @@ -1,65 +1,22 @@ --- old.baseClassImprovedMismatchErrors.js +++ new.baseClassImprovedMismatchErrors.js -@@= skipped -20, +20 lines =@@ - } +@@= skipped -21, +21 lines =@@ //// [baseClassImprovedMismatchErrors.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Base = /** @class */ (function () { -- function Base() { -- } -- Base.prototype.fn = function () { -- return 10; -- }; -- return Base; --}()); --var Derived = /** @class */ (function (_super) { -- __extends(Derived, _super); -- function Derived() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- Derived.prototype.fn = function () { -- return 10; -- }; -- return Derived; --}(Base)); --var DerivedInterface = /** @class */ (function () { -- function DerivedInterface() { -- } -- DerivedInterface.prototype.fn = function () { -- return 10; -- }; -- return DerivedInterface; --}()); -+class Base { + class Base { + n; -+ fn() { -+ return 10; -+ } -+} -+class Derived extends Base { + fn() { + return 10; + } + } + class Derived extends Base { + n; -+ fn() { -+ return 10; -+ } -+} -+class DerivedInterface { + fn() { + return 10; + } + } + class DerivedInterface { + n; -+ fn() { -+ return 10; -+ } -+} \ No newline at end of file + fn() { + return 10; + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/baseConstraintOfDecorator.js.diff b/testdata/baselines/reference/submodule/compiler/baseConstraintOfDecorator.js.diff index 6190935247..9c5edea7ce 100644 --- a/testdata/baselines/reference/submodule/compiler/baseConstraintOfDecorator.js.diff +++ b/testdata/baselines/reference/submodule/compiler/baseConstraintOfDecorator.js.diff @@ -1,73 +1,10 @@ --- old.baseConstraintOfDecorator.js +++ new.baseConstraintOfDecorator.js -@@= skipped -22, +22 lines =@@ - - //// [baseConstraintOfDecorator.js] - "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - Object.defineProperty(exports, "__esModule", { value: true }); - exports.classExtender = classExtender; - exports.classExtender2 = classExtender2; - function classExtender(superClass, _instanceModifier) { -- return /** @class */ (function (_super) { -- __extends(decoratorFunc, _super); -- function decoratorFunc() { -- var args = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- args[_i] = arguments[_i]; -- } -- var _this = _super.apply(this, args) || this; -- _instanceModifier(_this, args); -- return _this; -+ return class decoratorFunc extends superClass { -+ constructor(...args) { -+ super(...args); -+ _instanceModifier(this, args); - } -- return decoratorFunc; -- }(superClass)); --} --var MyClass = /** @class */ (function () { -- function MyClass() { -- } -- return MyClass; --}()); -+ }; -+} -+class MyClass { +@@= skipped -34, +34 lines =@@ + }; + } + class MyClass { + x; -+} + } function classExtender2(superClass, _instanceModifier) { -- return /** @class */ (function (_super) { -- __extends(decoratorFunc, _super); -- function decoratorFunc() { -- var args = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- args[_i] = arguments[_i]; -- } -- var _this = _super.apply(this, args) || this; -- _instanceModifier(_this, args); -- return _this; -+ return class decoratorFunc extends superClass { -+ constructor(...args) { -+ super(...args); -+ _instanceModifier(this, args); - } -- return decoratorFunc; -- }(superClass)); -+ }; - } \ No newline at end of file + return class decoratorFunc extends superClass { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/baseExpressionTypeParameters.js.diff b/testdata/baselines/reference/submodule/compiler/baseExpressionTypeParameters.js.diff index a7a241d00b..b1fea8af2d 100644 --- a/testdata/baselines/reference/submodule/compiler/baseExpressionTypeParameters.js.diff +++ b/testdata/baselines/reference/submodule/compiler/baseExpressionTypeParameters.js.diff @@ -1,51 +1,10 @@ --- old.baseExpressionTypeParameters.js +++ new.baseExpressionTypeParameters.js -@@= skipped -16, +16 lines =@@ - - //// [baseExpressionTypeParameters.js] +@@= skipped -18, +18 lines =@@ // Repro from #17829 --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); function base() { -- var Base = /** @class */ (function () { -- function Base() { -- } -- return Base; -- }()); -+ class Base { + class Base { + static prop; -+ } + } return Base; - } --var Gen = /** @class */ (function (_super) { -- __extends(Gen, _super); -- function Gen() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Gen; --}(base())); // Error, T not in scope --var Spec = /** @class */ (function (_super) { -- __extends(Spec, _super); -- function Spec() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Spec; --}(Gen)); -+class Gen extends base() { -+} // Error, T not in scope -+class Spec extends Gen { -+} - Spec.prop; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/baseIndexSignatureResolution.js.diff b/testdata/baselines/reference/submodule/compiler/baseIndexSignatureResolution.js.diff index 7747706084..e7d85d2305 100644 --- a/testdata/baselines/reference/submodule/compiler/baseIndexSignatureResolution.js.diff +++ b/testdata/baselines/reference/submodule/compiler/baseIndexSignatureResolution.js.diff @@ -1,42 +1,13 @@ --- old.baseIndexSignatureResolution.js +++ new.baseIndexSignatureResolution.js -@@= skipped -26, +26 lines =@@ - */ +@@= skipped -27, +27 lines =@@ //// [baseIndexSignatureResolution.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Base = /** @class */ (function () { -- function Base() { -- } -- return Base; --}()); --var Derived = /** @class */ (function (_super) { -- __extends(Derived, _super); -- function Derived() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Derived; --}(Base)); -+class Base { + class Base { + a; -+} -+class Derived extends Base { + } + class Derived extends Base { + b; -+} + } var x = null; - var y = x[0]; - /* \ No newline at end of file + var y = x[0]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/baseTypeAfterDerivedType.js.diff b/testdata/baselines/reference/submodule/compiler/baseTypeAfterDerivedType.js.diff deleted file mode 100644 index 9c7c0f47a2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/baseTypeAfterDerivedType.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.baseTypeAfterDerivedType.js -+++ new.baseTypeAfterDerivedType.js -@@= skipped -18, +18 lines =@@ - - - //// [baseTypeAfterDerivedType.js] --var Derived2 = /** @class */ (function () { -- function Derived2() { -- } -- Derived2.prototype.method = function () { -- var args = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- args[_i] = arguments[_i]; -- } -- }; -- return Derived2; --}()); -+class Derived2 { -+ method(...args) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/baseTypeOrderChecking.js.diff b/testdata/baselines/reference/submodule/compiler/baseTypeOrderChecking.js.diff index 42cb7b4834..8574b30dab 100644 --- a/testdata/baselines/reference/submodule/compiler/baseTypeOrderChecking.js.diff +++ b/testdata/baselines/reference/submodule/compiler/baseTypeOrderChecking.js.diff @@ -1,55 +1,10 @@ --- old.baseTypeOrderChecking.js +++ new.baseTypeOrderChecking.js -@@= skipped -38, +38 lines =@@ - - - //// [baseTypeOrderChecking.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - var someVariable; --var Class1 = /** @class */ (function () { -- function Class1() { -- } -- return Class1; --}()); --var Class2 = /** @class */ (function (_super) { -- __extends(Class2, _super); -- function Class2() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Class2; --}(Class1)); --var Class3 = /** @class */ (function () { -- function Class3() { -- } -- return Class3; --}()); --var Class4 = /** @class */ (function (_super) { -- __extends(Class4, _super); -- function Class4() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Class4; --}(Class3)); -+class Class1 { -+} -+class Class2 extends Class1 { -+} -+class Class3 { +@@= skipped -44, +44 lines =@@ + class Class2 extends Class1 { + } + class Class3 { + memberVariable; -+} -+class Class4 extends Class3 { -+} \ No newline at end of file + } + class Class4 extends Class3 { + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/baseTypePrivateMemberClash.js.diff b/testdata/baselines/reference/submodule/compiler/baseTypePrivateMemberClash.js.diff index e113bcbecf..78f1063cdd 100644 --- a/testdata/baselines/reference/submodule/compiler/baseTypePrivateMemberClash.js.diff +++ b/testdata/baselines/reference/submodule/compiler/baseTypePrivateMemberClash.js.diff @@ -1,22 +1,11 @@ --- old.baseTypePrivateMemberClash.js +++ new.baseTypePrivateMemberClash.js -@@= skipped -10, +10 lines =@@ - interface Z extends X, Y { } +@@= skipped -11, +11 lines =@@ //// [baseTypePrivateMemberClash.js] --var X = /** @class */ (function () { -- function X() { -- } -- return X; --}()); --var Y = /** @class */ (function () { -- function Y() { -- } -- return Y; --}()); -+class X { + class X { + m; -+} -+class Y { + } + class Y { + m; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/baseTypeWrappingInstantiationChain.js.diff b/testdata/baselines/reference/submodule/compiler/baseTypeWrappingInstantiationChain.js.diff index d78111f77b..d1f755b076 100644 --- a/testdata/baselines/reference/submodule/compiler/baseTypeWrappingInstantiationChain.js.diff +++ b/testdata/baselines/reference/submodule/compiler/baseTypeWrappingInstantiationChain.js.diff @@ -1,76 +1,10 @@ --- old.baseTypeWrappingInstantiationChain.js +++ new.baseTypeWrappingInstantiationChain.js -@@= skipped -29, +29 lines =@@ - - - //// [baseTypeWrappingInstantiationChain.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var CBaseBase = /** @class */ (function () { -- function CBaseBase(x) { -- } -- return CBaseBase; --}()); --var CBase = /** @class */ (function (_super) { -- __extends(CBase, _super); -- function CBase() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return CBase; --}(CBaseBase)); --var Parameter = /** @class */ (function () { -- function Parameter() { -- } -- Parameter.prototype.method = function (t) { }; -- return Parameter; --}()); --var Wrapper = /** @class */ (function () { -- function Wrapper() { -- } -- return Wrapper; --}()); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- C.prototype.works = function () { -+class CBaseBase { -+ constructor(x) { } -+} -+class CBase extends CBaseBase { -+} -+class Parameter { -+ method(t) { } -+} -+class Wrapper { +@@= skipped -38, +38 lines =@@ + method(t) { } + } + class Wrapper { + property; -+} -+class C extends CBase { -+ works() { - new CBaseBase(this); -- }; -- C.prototype.alsoWorks = function () { -+ } -+ alsoWorks() { - new CBase(this); // Should not error, parameter is of type Parameter> -- }; -- C.prototype.method = function (t) { }; -- return C; --}(CBase)); -+ } -+ method(t) { } -+} \ No newline at end of file + } + class C extends CBase { + works() { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/bases.js.diff b/testdata/baselines/reference/submodule/compiler/bases.js.diff deleted file mode 100644 index 415bc5e20e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/bases.js.diff +++ /dev/null @@ -1,47 +0,0 @@ ---- old.bases.js -+++ new.bases.js -@@= skipped -22, +22 lines =@@ - - - //// [bases.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var B = /** @class */ (function () { -- function B() { -+class B { -+ constructor() { - this.y; - any; - } -- return B; --}()); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- var _this = this; -- _this.x; -+} -+class C extends B { -+ constructor() { -+ this.x; - any; -- return _this; - } -- return C; --}(B)); -+} - new C().x; - new C().y; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/bestChoiceType.js.diff b/testdata/baselines/reference/submodule/compiler/bestChoiceType.js.diff deleted file mode 100644 index 1669cddf14..0000000000 --- a/testdata/baselines/reference/submodule/compiler/bestChoiceType.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.bestChoiceType.js -+++ new.bestChoiceType.js -@@= skipped -21, +21 lines =@@ - - //// [bestChoiceType.js] - // Repro from #10041 --(''.match(/ /) || []).map(function (s) { return s.toLowerCase(); }); -+(''.match(/ /) || []).map(s => s.toLowerCase()); - // Similar cases - function f1() { -- var x = ''.match(/ /); -- var y = x || []; -- var z = y.map(function (s) { return s.toLowerCase(); }); -+ let x = ''.match(/ /); -+ let y = x || []; -+ let z = y.map(s => s.toLowerCase()); - } - function f2() { -- var x = ''.match(/ /); -- var y = x ? x : []; -- var z = y.map(function (s) { return s.toLowerCase(); }); -+ let x = ''.match(/ /); -+ let y = x ? x : []; -+ let z = y.map(s => s.toLowerCase()); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/bigintWithoutLib.js.diff b/testdata/baselines/reference/submodule/compiler/bigintWithoutLib.js.diff deleted file mode 100644 index 34b3b52151..0000000000 --- a/testdata/baselines/reference/submodule/compiler/bigintWithoutLib.js.diff +++ /dev/null @@ -1,49 +0,0 @@ ---- old.bigintWithoutLib.js -+++ new.bigintWithoutLib.js -@@= skipped -61, +61 lines =@@ - //// [bigintWithoutLib.js] - // Every line should error because these builtins are not declared - // Test BigInt functions --var bigintVal = BigInt(123); -+let bigintVal = BigInt(123); - bigintVal = BigInt("456"); - new BigInt(123); - bigintVal = BigInt.asIntN(8, 0xffffn); - bigintVal = BigInt.asUintN(8, 0xffffn); - bigintVal = bigintVal.valueOf(); // should error - bigintVal inferred as {} --var stringVal = bigintVal.toString(); // should not error - bigintVal inferred as {} -+let stringVal = bigintVal.toString(); // should not error - bigintVal inferred as {} - stringVal = bigintVal.toString(2); // should error - bigintVal inferred as {} - stringVal = bigintVal.toLocaleString(); // should not error - bigintVal inferred as {} - stringVal = bigintVal.toLocaleString('de-DE'); // should not error - bigintVal inferred as {} - stringVal = bigintVal.toLocaleString('de-DE', { style: 'currency' }); // should not error - bigintVal inferred as {} - stringVal = bigintVal.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }); // should not error - bigintVal inferred as {} - // Test BigInt64Array --var bigIntArray = new BigInt64Array(); -+let bigIntArray = new BigInt64Array(); - bigIntArray = new BigInt64Array(10); - bigIntArray = new BigInt64Array([1n, 2n, 3n]); - bigIntArray = new BigInt64Array([1, 2, 3]); - bigIntArray = new BigInt64Array(new ArrayBuffer(80)); - bigIntArray = new BigInt64Array(new ArrayBuffer(80), 8); - bigIntArray = new BigInt64Array(new ArrayBuffer(80), 8, 3); --var len = bigIntArray.length; -+let len = bigIntArray.length; - bigIntArray.length = 10; --var arrayBufferLike = bigIntArray; -+let arrayBufferLike = bigIntArray; - // Test BigUint64Array --var bigUintArray = new BigUint64Array(); -+let bigUintArray = new BigUint64Array(); - bigUintArray = new BigUint64Array(10); - bigUintArray = new BigUint64Array([1n, 2n, 3n]); - bigUintArray = new BigUint64Array([1, 2, 3]); -@@= skipped -35, +35 lines =@@ - bigIntArray.length = 10; - arrayBufferLike = bigIntArray; - // Test added DataView methods --var dataView = new DataView(new ArrayBuffer(80)); -+const dataView = new DataView(new ArrayBuffer(80)); - dataView.setBigInt64(1, -1n); - dataView.setBigInt64(1, -1n, true); - dataView.setBigInt64(1, -1); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/binaryArithmeticControlFlowGraphNotTooLarge.js.diff b/testdata/baselines/reference/submodule/compiler/binaryArithmeticControlFlowGraphNotTooLarge.js.diff index 3546878ddd..0f3f03b632 100644 --- a/testdata/baselines/reference/submodule/compiler/binaryArithmeticControlFlowGraphNotTooLarge.js.diff +++ b/testdata/baselines/reference/submodule/compiler/binaryArithmeticControlFlowGraphNotTooLarge.js.diff @@ -6,8 +6,5 @@ //// [binaryArithmeticControlFlowGraphNotTooLarge.js] -"use strict"; // Repro from #29926 (expanded 10x for good measure) --var foo = function () { -+const foo = function () { - var a, b, c, d, ab, bc, cd, da, blocks = this.blocks; - if (this.first) { - a = blocks[0] - 1; \ No newline at end of file + const foo = function () { + var a, b, c, d, ab, bc, cd, da, blocks = this.blocks; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/bind1.js.diff b/testdata/baselines/reference/submodule/compiler/bind1.js.diff deleted file mode 100644 index 17445ab654..0000000000 --- a/testdata/baselines/reference/submodule/compiler/bind1.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.bind1.js -+++ new.bind1.js -@@= skipped -9, +9 lines =@@ - //// [bind1.js] - var M; - (function (M) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); // this should be an unresolved symbol I error -+ class C { -+ } // this should be an unresolved symbol I error - M.C = C; - })(M || (M = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/bindingPatternCannotBeOnlyInferenceSource.js.diff b/testdata/baselines/reference/submodule/compiler/bindingPatternCannotBeOnlyInferenceSource.js.diff deleted file mode 100644 index 00872671f0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/bindingPatternCannotBeOnlyInferenceSource.js.diff +++ /dev/null @@ -1,51 +0,0 @@ ---- old.bindingPatternCannotBeOnlyInferenceSource.js -+++ new.bindingPatternCannotBeOnlyInferenceSource.js -@@= skipped -28, +28 lines =@@ - - - //// [bindingPatternCannotBeOnlyInferenceSource.js] --var _a = f(); // error (only in strictNullChecks) --var p1 = f().p1; // error --var _b = f(); // error --var _c = f(), e1 = _c[0], e2 = _c[1]; // error --var funcs1 = { -- funcA: function (a) { }, -- funcB: function (b, bb) { }, -- funcC: function (c, cc, ccc) { }, -+const {} = f(); // error (only in strictNullChecks) -+const { p1 } = f(); // error -+const [] = f(); // error -+const [e1, e2] = f(); // error -+const funcs1 = { -+ funcA: (a) => { }, -+ funcB: (b, bb) => { }, -+ funcC: (c, cc, ccc) => { }, - }; --var _d = useReduxDispatch1(function (d, f) { return ({ -- funcA: function () { -- var p = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- p[_i] = arguments[_i]; -- } -- return d(f.funcA.apply(f, p)); -- }, // p should be inferrable -- funcB: function () { -- var p = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- p[_i] = arguments[_i]; -- } -- return d(f.funcB.apply(f, p)); -- }, -- funcC: function () { -- var p = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- p[_i] = arguments[_i]; -- } -- return d(f.funcC.apply(f, p)); -- }, --}); }); -+const {} = useReduxDispatch1((d, f) => ({ -+ funcA: (...p) => d(f.funcA(...p)), // p should be inferrable -+ funcB: (...p) => d(f.funcB(...p)), -+ funcC: (...p) => d(f.funcC(...p)), -+})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/bindingPatternContextualTypeDoesNotCauseWidening.js.diff b/testdata/baselines/reference/submodule/compiler/bindingPatternContextualTypeDoesNotCauseWidening.js.diff deleted file mode 100644 index 2154261bc2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/bindingPatternContextualTypeDoesNotCauseWidening.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.bindingPatternContextualTypeDoesNotCauseWidening.js -+++ new.bindingPatternContextualTypeDoesNotCauseWidening.js -@@= skipped -6, +6 lines =@@ - - - //// [bindingPatternContextualTypeDoesNotCauseWidening.js] --var _ = pick(['b'], { a: 'a', b: 'b' }); // T: "b" --var _a = pick(['b'], { a: 'a', b: 'b' }); // T: "b" | "a" ??? (before fix) -+const _ = pick(['b'], { a: 'a', b: 'b' }); // T: "b" -+const {} = pick(['b'], { a: 'a', b: 'b' }); // T: "b" | "a" ??? (before fix) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/bindingPatternInParameter01.js.diff b/testdata/baselines/reference/submodule/compiler/bindingPatternInParameter01.js.diff deleted file mode 100644 index 53be5454c9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/bindingPatternInParameter01.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.bindingPatternInParameter01.js -+++ new.bindingPatternInParameter01.js -@@= skipped -8, +8 lines =@@ - - - //// [bindingPatternInParameter01.js] --var nestedArray = [[[1, 2]], [[3, 4]]]; --nestedArray.forEach(function (_a) { -- var _b = _a[0], a = _b[0], b = _b[1]; -+const nestedArray = [[[1, 2]], [[3, 4]]]; -+nestedArray.forEach(([[a, b]]) => { - console.log(a, b); - }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/bindingPatternOmittedExpressionNesting.js.diff b/testdata/baselines/reference/submodule/compiler/bindingPatternOmittedExpressionNesting.js.diff index b757b51130..48138bb639 100644 --- a/testdata/baselines/reference/submodule/compiler/bindingPatternOmittedExpressionNesting.js.diff +++ b/testdata/baselines/reference/submodule/compiler/bindingPatternOmittedExpressionNesting.js.diff @@ -6,7 +6,7 @@ "use strict"; -var _a, _b, _c, _d; Object.defineProperty(exports, "__esModule", { value: true }); --exports._e = (_a = undefined, _b = _a[2], _c = _b[1], _d = _b[3]); +-_a = undefined, _b = _a[2], _c = _b[1], _d = _b[3]; +[, , [, [], , []]] = undefined; diff --git a/testdata/baselines/reference/submodule/compiler/binopAssignmentShouldHaveType.js.diff b/testdata/baselines/reference/submodule/compiler/binopAssignmentShouldHaveType.js.diff deleted file mode 100644 index 6db342fc0a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/binopAssignmentShouldHaveType.js.diff +++ /dev/null @@ -1,28 +0,0 @@ ---- old.binopAssignmentShouldHaveType.js -+++ new.binopAssignmentShouldHaveType.js -@@= skipped -24, +24 lines =@@ - "use strict"; - var Test; - (function (Test) { -- var Bug = /** @class */ (function () { -- function Bug() { -- } -- Bug.prototype.getName = function () { -+ class Bug { -+ getName() { - return "name"; -- }; -- Bug.prototype.bug = function () { -+ } -+ bug() { - var name = null; - if ((name = this.getName()).length > 0) { - console.log(name); - } -- }; -- return Bug; -- }()); -+ } -+ } - Test.Bug = Bug; - })(Test || (Test = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedBindingCaptureThisInFunction.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedBindingCaptureThisInFunction.js.diff deleted file mode 100644 index 1cb88b99b8..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedBindingCaptureThisInFunction.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.blockScopedBindingCaptureThisInFunction.js -+++ new.blockScopedBindingCaptureThisInFunction.js -@@= skipped -10, +10 lines =@@ - - //// [blockScopedBindingCaptureThisInFunction.js] - // https://github.com/Microsoft/TypeScript/issues/11038 --(function () { return function () { -- var _loop_1 = function (someKey) { -- this_1.helloWorld(); -- (function () { return someKey; }); -- }; -- var this_1 = this; -- for (var someKey in {}) { -- _loop_1(someKey); -+() => function () { -+ for (let someKey in {}) { -+ this.helloWorld(); -+ () => someKey; - } --}; }); -+}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedBindingUsedBeforeDef.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedBindingUsedBeforeDef.js.diff deleted file mode 100644 index bb23429acd..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedBindingUsedBeforeDef.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.blockScopedBindingUsedBeforeDef.js -+++ new.blockScopedBindingUsedBeforeDef.js -@@= skipped -11, +11 lines =@@ - - //// [blockScopedBindingUsedBeforeDef.js] - // 1: --for (var _i = 0, _a = [{}]; _i < _a.length; _i++) { -- var _b = a, a = _a[_i][_b]; -+for (let { [a]: a } of [{}]) - continue; --} - // 2: --for (var _c = {}, _d = a, a = _c[_d]; false;) -+for (let { [a]: a } = {}; false;) - continue; - // 3: --var _e = {}, _f = b, b = _e[_f]; -+let { [b]: b } = {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsInDownlevelGenerator.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedBindingsInDownlevelGenerator.js.diff deleted file mode 100644 index 15fe74a229..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsInDownlevelGenerator.js.diff +++ /dev/null @@ -1,96 +0,0 @@ ---- old.blockScopedBindingsInDownlevelGenerator.js -+++ new.blockScopedBindingsInDownlevelGenerator.js -@@= skipped -8, +8 lines =@@ - } - - //// [blockScopedBindingsInDownlevelGenerator.js] --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; -- } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -+function* a() { -+ for (const i of [1, 2, 3]) { -+ (() => i)(); -+ yield i; - } --}; --var __values = (this && this.__values) || function(o) { -- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; -- if (m) return m.call(o); -- if (o && typeof o.length === "number") return { -- next: function () { -- if (o && i >= o.length) o = void 0; -- return { value: o && o[i++], done: !o }; -- } -- }; -- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); --}; --function a() { -- var _loop_1, _a, _b, i, e_1_1; -- var e_1, _c; -- return __generator(this, function (_d) { -- switch (_d.label) { -- case 0: -- _loop_1 = function (i) { -- return __generator(this, function (_e) { -- switch (_e.label) { -- case 0: -- (function () { return i; })(); -- return [4 /*yield*/, i]; -- case 1: -- _e.sent(); -- return [2 /*return*/]; -- } -- }); -- }; -- _d.label = 1; -- case 1: -- _d.trys.push([1, 6, 7, 8]); -- _a = __values([1, 2, 3]), _b = _a.next(); -- _d.label = 2; -- case 2: -- if (!!_b.done) return [3 /*break*/, 5]; -- i = _b.value; -- return [5 /*yield**/, _loop_1(i)]; -- case 3: -- _d.sent(); -- _d.label = 4; -- case 4: -- _b = _a.next(); -- return [3 /*break*/, 2]; -- case 5: return [3 /*break*/, 8]; -- case 6: -- e_1_1 = _d.sent(); -- e_1 = { error: e_1_1 }; -- return [3 /*break*/, 8]; -- case 7: -- try { -- if (_b && !_b.done && (_c = _a.return)) _c.call(_a); -- } -- finally { if (e_1) throw e_1.error; } -- return [7 /*endfinally*/]; -- case 8: return [2 /*return*/]; -- } -- }); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop1.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop1.js.diff index 1444738e77..058b92665d 100644 --- a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop1.js.diff @@ -4,16 +4,7 @@ //// [blockScopedBindingsReassignedInLoop1.js] (function () { 'use strict'; -- var _loop_1 = function (i) { -- (function () { return use(++i); })(); -- out_i_1 = i; -- }; -- var out_i_1; -- for (var i = 0; i < 9; ++i) { -- _loop_1(i); -- i = out_i_1; + 'use strict'; -+ for (let i = 0; i < 9; ++i) { -+ (() => use(++i))(); - } - })(); \ No newline at end of file + for (let i = 0; i < 9; ++i) { + (() => use(++i))(); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop2.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop2.js.diff deleted file mode 100644 index 30675c089b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop2.js.diff +++ /dev/null @@ -1,114 +0,0 @@ ---- old.blockScopedBindingsReassignedInLoop2.js -+++ new.blockScopedBindingsReassignedInLoop2.js -@@= skipped -43, +43 lines =@@ - } - - //// [blockScopedBindingsReassignedInLoop2.js] --var _loop_1 = function (x, y) { -- var a = function () { return x++ + y++; }; -+for (let x = 1, y = 2; x < y; ++x, --y) { -+ let a = () => x++ + y++; - if (x == 1) { -- return out_x_1 = x, out_y_1 = y, "break"; -- } -- else { -- y = 5; -- } -- out_x_1 = x; -- out_y_1 = y; --}; --var out_x_1, out_y_1; --for (var x = 1, y = 2; x < y; ++x, --y) { -- var state_1 = _loop_1(x, y); -- x = out_x_1; -- y = out_y_1; -- if (state_1 === "break") - break; --} --var _loop_2 = function (x, y) { -- var a = function () { return x++ + y++; }; -- if (x == 1) { -- return out_x_2 = x, out_y_2 = y, "continue"; -- } -- else { -- y = 5; -- } -- out_x_2 = x; -- out_y_2 = y; --}; --var out_x_2, out_y_2; --for (var x = 1, y = 2; x < y; ++x, --y) { -- _loop_2(x, y); -- x = out_x_2; -- y = out_y_2; --} --var _loop_3 = function (x, y) { -- var a = function () { return x++ + y++; }; -- if (x == 1) { -- return out_x_3 = x, out_y_3 = y, "break-loop"; -- } -- else { -- y = 5; -- } -- out_x_3 = x; -- out_y_3 = y; --}; --var out_x_3, out_y_3; --loop: for (var x = 1, y = 2; x < y; ++x, --y) { -- var state_2 = _loop_3(x, y); -- x = out_x_3; -- y = out_y_3; -- switch (state_2) { -- case "break-loop": break loop; -- } --} --var _loop_4 = function (x, y) { -- var a = function () { return x++ + y++; }; -- if (x == 1) { -- return out_x_4 = x, out_y_4 = y, "continue-loop"; -- } -- else { -- y = 5; -- } -- out_x_4 = x; -- out_y_4 = y; --}; --var out_x_4, out_y_4; --loop: for (var x = 1, y = 2; x < y; ++x, --y) { -- var state_3 = _loop_4(x, y); -- x = out_x_4; -- y = out_y_4; -- switch (state_3) { -- case "continue-loop": continue loop; -+ } -+ else { -+ y = 5; -+ } -+} -+for (let x = 1, y = 2; x < y; ++x, --y) { -+ let a = () => x++ + y++; -+ if (x == 1) { -+ continue; -+ } -+ else { -+ y = 5; -+ } -+} -+loop: for (let x = 1, y = 2; x < y; ++x, --y) { -+ let a = () => x++ + y++; -+ if (x == 1) { -+ break loop; -+ } -+ else { -+ y = 5; -+ } -+} -+loop: for (let x = 1, y = 2; x < y; ++x, --y) { -+ let a = () => x++ + y++; -+ if (x == 1) { -+ continue loop; -+ } -+ else { -+ y = 5; - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop3.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop3.js.diff deleted file mode 100644 index f4c381a6b3..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop3.js.diff +++ /dev/null @@ -1,232 +0,0 @@ ---- old.blockScopedBindingsReassignedInLoop3.js -+++ new.blockScopedBindingsReassignedInLoop3.js -@@= skipped -93, +93 lines =@@ - - - //// [blockScopedBindingsReassignedInLoop3.js] --var _loop_1 = function (x, y) { -- var a = function () { return x++ + y++; }; -+for (let x = 1, y = 2; x < y; ++x, --y) { -+ let a = () => x++ + y++; - if (x == 1) { -- return out_x_1 = x, out_y_1 = y, "break"; -- } -- else { -- var _loop_5 = function (a_1) { -- var f = function () { return a_1; }; -- if (a_1) { -- a_1 = x; -- return out_a_1 = a_1, "break"; -- } -- else { -- y++; -- } -- out_a_1 = a_1; -- }; -- var out_a_1; -- for (var a_1 = 1; a_1 < 5; --a_1) { -- var state_4 = _loop_5(a_1); -- a_1 = out_a_1; -- if (state_4 === "break") -- break; -- } -- y = 5; -- } -- out_x_1 = x; -- out_y_1 = y; --}; --var out_x_1, out_y_1; --for (var x = 1, y = 2; x < y; ++x, --y) { -- var state_1 = _loop_1(x, y); -- x = out_x_1; -- y = out_y_1; -- if (state_1 === "break") - break; --} --var _loop_2 = function (x, y) { -- var a = function () { return x++ + y++; }; -- if (x == 1) { -- return out_x_2 = x, out_y_2 = y, "continue"; -- } -- else { -- var _loop_6 = function (a_2) { -- var f = function () { return a_2; }; -- if (a_2) { -- a_2 = x; -- return out_a_2 = a_2, "continue"; -- } -- else { -- y++; -- } -- out_a_2 = a_2; -- }; -- var out_a_2; -- for (var a_2 = 1; a_2 < 5; --a_2) { -- _loop_6(a_2); -- a_2 = out_a_2; -- } -- y = 5; -- } -- out_x_2 = x; -- out_y_2 = y; --}; --var out_x_2, out_y_2; --for (var x = 1, y = 2; x < y; ++x, --y) { -- _loop_2(x, y); -- x = out_x_2; -- y = out_y_2; --} --var _loop_3 = function (x, y) { -- var a = function () { return x++ + y++; }; -- if (x == 1) { -- return out_x_3 = x, out_y_3 = y, "break-loop2"; -- } -- else { -- var _loop_7 = function (a_3) { -- var f = function () { return a_3; }; -- if (a_3) { -- a_3 = x; -- return out_a_3 = a_3, "break-loop1"; -- } -- else { -- y++; -- return out_a_3 = a_3, "break-loop2"; -- } -- out_a_3 = a_3; -- }; -- var out_a_3; -- loop1: for (var a_3 = 1; a_3 < 5; --a_3) { -- var state_5 = _loop_7(a_3); -- a_3 = out_a_3; -- switch (state_5) { -- case "break-loop1": break loop1; -- case "break-loop2": return state_5; -- } -- } -- y = 5; -- } -- out_x_3 = x; -- out_y_3 = y; --}; --var out_x_3, out_y_3; --loop2: for (var x = 1, y = 2; x < y; ++x, --y) { -- var state_2 = _loop_3(x, y); -- x = out_x_3; -- y = out_y_3; -- switch (state_2) { -- case "break-loop2": break loop2; -- } --} --var _loop_4 = function (x, y) { -- var a = function () { return x++ + y++; }; -- if (x == 1) { -- return out_x_4 = x, out_y_4 = y, "continue-loop2"; -- } -- else { -- var _loop_8 = function (a_4) { -- var f = function () { return a_4; }; -- if (a_4) { -- a_4 = x; -- return out_a_4 = a_4, "continue-loop1"; -- } -- else { -- y++; -- return out_a_4 = a_4, "continue-loop2"; -- } -- out_a_4 = a_4; -- }; -- var out_a_4; -- loop1: for (var a_4 = 1; a_4 < 5; --a_4) { -- var state_6 = _loop_8(a_4); -- a_4 = out_a_4; -- switch (state_6) { -- case "continue-loop1": continue loop1; -- case "continue-loop2": return state_6; -- } -- } -- y = 5; -- } -- out_x_4 = x; -- out_y_4 = y; --}; --var out_x_4, out_y_4; --loop2: for (var x = 1, y = 2; x < y; ++x, --y) { -- var state_3 = _loop_4(x, y); -- x = out_x_4; -- y = out_y_4; -- switch (state_3) { -- case "continue-loop2": continue loop2; -+ } -+ else { -+ for (let a = 1; a < 5; --a) { -+ let f = () => a; -+ if (a) { -+ a = x; -+ break; -+ } -+ else { -+ y++; -+ } -+ } -+ y = 5; -+ } -+} -+for (let x = 1, y = 2; x < y; ++x, --y) { -+ let a = () => x++ + y++; -+ if (x == 1) { -+ continue; -+ } -+ else { -+ for (let a = 1; a < 5; --a) { -+ let f = () => a; -+ if (a) { -+ a = x; -+ continue; -+ } -+ else { -+ y++; -+ } -+ } -+ y = 5; -+ } -+} -+loop2: for (let x = 1, y = 2; x < y; ++x, --y) { -+ let a = () => x++ + y++; -+ if (x == 1) { -+ break loop2; -+ } -+ else { -+ loop1: for (let a = 1; a < 5; --a) { -+ let f = () => a; -+ if (a) { -+ a = x; -+ break loop1; -+ } -+ else { -+ y++; -+ break loop2; -+ } -+ } -+ y = 5; -+ } -+} -+loop2: for (let x = 1, y = 2; x < y; ++x, --y) { -+ let a = () => x++ + y++; -+ if (x == 1) { -+ continue loop2; -+ } -+ else { -+ loop1: for (let a = 1; a < 5; --a) { -+ let f = () => a; -+ if (a) { -+ a = x; -+ continue loop1; -+ } -+ else { -+ y++; -+ continue loop2; -+ } -+ } -+ y = 5; - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop4.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop4.js.diff deleted file mode 100644 index cde7462e7e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop4.js.diff +++ /dev/null @@ -1,29 +0,0 @@ ---- old.blockScopedBindingsReassignedInLoop4.js -+++ new.blockScopedBindingsReassignedInLoop4.js -@@= skipped -14, +14 lines =@@ - - //// [blockScopedBindingsReassignedInLoop4.js] - function f1() { -- var _loop_1 = function (x, y) { -- var a = function () { return x++ + y++; }; -+ for (let x = 1, y = 2; x < y; ++x, --y) { -+ let a = () => x++ + y++; - if (x == 1) { -- return { value: 1 }; -+ return 1; - } - else { - y = 5; - } -- out_x_1 = x; -- out_y_1 = y; -- }; -- var out_x_1, out_y_1; -- for (var x = 1, y = 2; x < y; ++x, --y) { -- var state_1 = _loop_1(x, y); -- x = out_x_1; -- y = out_y_1; -- if (typeof state_1 === "object") -- return state_1.value; - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop5.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop5.js.diff deleted file mode 100644 index f3aaa13f8b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop5.js.diff +++ /dev/null @@ -1,26 +0,0 @@ ---- old.blockScopedBindingsReassignedInLoop5.js -+++ new.blockScopedBindingsReassignedInLoop5.js -@@= skipped -10, +10 lines =@@ - - - //// [blockScopedBindingsReassignedInLoop5.js] --var _loop_1 = function (x, y) { -- var a = function () { return x++ + y++; }; -+for (let x = 1, y = 2; x < y; ++x, --y) { -+ let a = () => x++ + y++; - if (x == 1) -- return out_x_1 = x, out_y_1 = y, "break"; -+ break; - else - y = 5; -- out_x_1 = x; -- out_y_1 = y; --}; --var out_x_1, out_y_1; --for (var x = 1, y = 2; x < y; ++x, --y) { -- var state_1 = _loop_1(x, y); -- x = out_x_1; -- y = out_y_1; -- if (state_1 === "break") -- break; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop6.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop6.js.diff deleted file mode 100644 index e10d32c657..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedBindingsReassignedInLoop6.js.diff +++ /dev/null @@ -1,59 +0,0 @@ ---- old.blockScopedBindingsReassignedInLoop6.js -+++ new.blockScopedBindingsReassignedInLoop6.js -@@= skipped -32, +32 lines =@@ - - //// [blockScopedBindingsReassignedInLoop6.js] - function f1() { -- var _loop_1 = function (x, y) { -- var a = function () { return x++ + y++; }; -+ for (let [x, y] = [1, 2]; x < y; ++x, --y) { -+ let a = () => x++ + y++; - if (x == 1) -- return out_x_1 = x, out_y_1 = y, "break"; -+ break; - else if (y == 2) - y = 5; - else -- return { value: void 0 }; -- out_x_1 = x; -- out_y_1 = y; -- }; -- var out_x_1, out_y_1; -- for (var _a = [1, 2], x = _a[0], y = _a[1]; x < y; ++x, --y) { -- var state_1 = _loop_1(x, y); -- x = out_x_1; -- y = out_y_1; -- if (typeof state_1 === "object") -- return state_1.value; -- if (state_1 === "break") -- break; -+ return; - } - } - function f2() { -- var _loop_2 = function (x, y) { -- var a = function () { return x++ + y++; }; -+ for (let [{ a: x, b: { c: y } }] = [{ a: 1, b: { c: 2 } }]; x < y; ++x, --y) { -+ let a = () => x++ + y++; - if (x == 1) -- return out_x_2 = x, out_y_2 = y, "break"; -+ break; - else if (y == 2) - y = 5; - else -- return { value: void 0 }; -- out_x_2 = x; -- out_y_2 = y; -- }; -- var out_x_2, out_y_2; -- for (var _a = [{ a: 1, b: { c: 2 } }][0], x = _a.a, y = _a.b.c; x < y; ++x, --y) { -- var state_2 = _loop_2(x, y); -- x = out_x_2; -- y = out_y_2; -- if (typeof state_2 === "object") -- return state_2.value; -- if (state_2 === "break") -- break; -+ return; - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef.js.diff index dc7998b3fb..b4457378b2 100644 --- a/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef.js.diff +++ b/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef.js.diff @@ -1,13 +1,6 @@ --- old.blockScopedEnumVariablesUseBeforeDef.js +++ new.blockScopedEnumVariablesUseBeforeDef.js -@@= skipped -22, +22 lines =@@ - //// [blockScopedEnumVariablesUseBeforeDef.js] - function foo1() { - return E.A; -- var E; -+ let E; - (function (E) { - E[E["A"] = 0] = "A"; +@@= skipped -28, +28 lines =@@ })(E || (E = {})); } function foo2() { @@ -18,9 +11,8 @@ + E[E["A"] = 0] = "A"; + })(E || (E = {})); } --var config = { + const config = { - a: 2 /* AfterObject.A */, -+const config = { + a: AfterObject.A, }; +var AfterObject; diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef_isolatedModules.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef_isolatedModules.js.diff deleted file mode 100644 index 0022f5fa1d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef_isolatedModules.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.blockScopedEnumVariablesUseBeforeDef_isolatedModules.js -+++ new.blockScopedEnumVariablesUseBeforeDef_isolatedModules.js -@@= skipped -22, +22 lines =@@ - //// [blockScopedEnumVariablesUseBeforeDef_isolatedModules.js] - function foo1() { - return E.A; -- var E; -+ let E; - (function (E) { - E[E["A"] = 0] = "A"; - })(E || (E = {})); - } - function foo2() { - return E.A; -- var E; -+ let E; - (function (E) { - E[E["A"] = 0] = "A"; - })(E || (E = {})); - } --var config = { -+const config = { - a: AfterObject.A, - }; - var AfterObject; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef_preserve.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef_preserve.js.diff index 5b041e760f..54684af2fa 100644 --- a/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef_preserve.js.diff +++ b/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef_preserve.js.diff @@ -1,27 +1,18 @@ --- old.blockScopedEnumVariablesUseBeforeDef_preserve.js +++ new.blockScopedEnumVariablesUseBeforeDef_preserve.js -@@= skipped -22, +22 lines =@@ - //// [blockScopedEnumVariablesUseBeforeDef_preserve.js] - function foo1() { - return E.A; -- var E; -+ let E; - (function (E) { - E[E["A"] = 0] = "A"; +@@= skipped -28, +28 lines =@@ })(E || (E = {})); } function foo2() { - return 0 /* E.A */; -- var E; + return E.A; -+ let E; + let E; (function (E) { E[E["A"] = 0] = "A"; })(E || (E = {})); } --var config = { + const config = { - a: 2 /* AfterObject.A */, -+const config = { + a: AfterObject.A, }; var AfterObject; diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef_verbatimModuleSyntax.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef_verbatimModuleSyntax.js.diff deleted file mode 100644 index 51f8328e97..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedEnumVariablesUseBeforeDef_verbatimModuleSyntax.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.blockScopedEnumVariablesUseBeforeDef_verbatimModuleSyntax.js -+++ new.blockScopedEnumVariablesUseBeforeDef_verbatimModuleSyntax.js -@@= skipped -22, +22 lines =@@ - //// [blockScopedEnumVariablesUseBeforeDef_verbatimModuleSyntax.js] - function foo1() { - return E.A; -- var E; -+ let E; - (function (E) { - E[E["A"] = 0] = "A"; - })(E || (E = {})); - } - function foo2() { - return E.A; -- var E; -+ let E; - (function (E) { - E[E["A"] = 0] = "A"; - })(E || (E = {})); - } --var config = { -+const config = { - a: AfterObject.A, - }; - var AfterObject; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictClass.errors.txt b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictClass.errors.txt index f0e4c2cc06..0fcc185589 100644 --- a/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictClass.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictClass.errors.txt @@ -1,14 +1,11 @@ -blockScopedFunctionDeclarationInStrictClass.ts(4,22): error TS1251: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode. blockScopedFunctionDeclarationInStrictClass.ts(7,9): error TS2304: Cannot find name 'foo'. -==== blockScopedFunctionDeclarationInStrictClass.ts (2 errors) ==== +==== blockScopedFunctionDeclarationInStrictClass.ts (1 errors) ==== class c { method() { if (true) { function foo() { } - ~~~ -!!! error TS1251: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode. foo(); // ok } foo(); // not ok diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictClass.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictClass.errors.txt.diff new file mode 100644 index 0000000000..a92cdeb5e1 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictClass.errors.txt.diff @@ -0,0 +1,18 @@ +--- old.blockScopedFunctionDeclarationInStrictClass.errors.txt ++++ new.blockScopedFunctionDeclarationInStrictClass.errors.txt +@@= skipped -0, +0 lines =@@ +-blockScopedFunctionDeclarationInStrictClass.ts(4,22): error TS1251: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode. + blockScopedFunctionDeclarationInStrictClass.ts(7,9): error TS2304: Cannot find name 'foo'. + + +-==== blockScopedFunctionDeclarationInStrictClass.ts (2 errors) ==== ++==== blockScopedFunctionDeclarationInStrictClass.ts (1 errors) ==== + class c { + method() { + if (true) { + function foo() { } +- ~~~ +-!!! error TS1251: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode. + foo(); // ok + } + foo(); // not ok \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictClass.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictClass.js.diff deleted file mode 100644 index 89131926ec..0000000000 --- a/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictClass.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.blockScopedFunctionDeclarationInStrictClass.js -+++ new.blockScopedFunctionDeclarationInStrictClass.js -@@= skipped -11, +11 lines =@@ - } - - //// [blockScopedFunctionDeclarationInStrictClass.js] --var c = /** @class */ (function () { -- function c() { -- } -- c.prototype.method = function () { -+class c { -+ method() { - if (true) { - function foo() { } - foo(); // ok - } - foo(); // not ok -- }; -- return c; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictModule.errors.txt b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictModule.errors.txt index 175fd5671a..f958ba0e05 100644 --- a/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictModule.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationInStrictModule.errors.txt @@ -1,12 +1,9 @@ -blockScopedFunctionDeclarationInStrictModule.ts(2,14): error TS1252: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode. blockScopedFunctionDeclarationInStrictModule.ts(6,10): error TS2304: Cannot find name 'foo'. -==== blockScopedFunctionDeclarationInStrictModule.ts (2 errors) ==== +==== blockScopedFunctionDeclarationInStrictModule.ts (1 errors) ==== if (true) { function foo() { } - ~~~ -!!! error TS1252: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode. foo(); // ok } diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationStrictES5.errors.txt b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationStrictES5.errors.txt index 857941c464..120e1f45d5 100644 --- a/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationStrictES5.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationStrictES5.errors.txt @@ -1,13 +1,10 @@ -blockScopedFunctionDeclarationStrictES5.ts(3,14): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. blockScopedFunctionDeclarationStrictES5.ts(6,1): error TS2304: Cannot find name 'foo'. -==== blockScopedFunctionDeclarationStrictES5.ts (2 errors) ==== +==== blockScopedFunctionDeclarationStrictES5.ts (1 errors) ==== "use strict"; if (true) { function foo() { } // Error to declare function in block scope - ~~~ -!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. foo(); // This call should be ok } foo(); // Error to find name foo diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationStrictES5.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationStrictES5.errors.txt.diff new file mode 100644 index 0000000000..9c8c1bcd6c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/blockScopedFunctionDeclarationStrictES5.errors.txt.diff @@ -0,0 +1,17 @@ +--- old.blockScopedFunctionDeclarationStrictES5.errors.txt ++++ new.blockScopedFunctionDeclarationStrictES5.errors.txt +@@= skipped -0, +0 lines =@@ +-blockScopedFunctionDeclarationStrictES5.ts(3,14): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. + blockScopedFunctionDeclarationStrictES5.ts(6,1): error TS2304: Cannot find name 'foo'. + + +-==== blockScopedFunctionDeclarationStrictES5.ts (2 errors) ==== ++==== blockScopedFunctionDeclarationStrictES5.ts (1 errors) ==== + "use strict"; + if (true) { + function foo() { } // Error to declare function in block scope +- ~~~ +-!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. + foo(); // This call should be ok + } + foo(); // Error to find name foo \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedSameNameFunctionDeclarationStrictES5.errors.txt b/testdata/baselines/reference/submodule/compiler/blockScopedSameNameFunctionDeclarationStrictES5.errors.txt index 2a0872026d..2d70db4f6c 100644 --- a/testdata/baselines/reference/submodule/compiler/blockScopedSameNameFunctionDeclarationStrictES5.errors.txt +++ b/testdata/baselines/reference/submodule/compiler/blockScopedSameNameFunctionDeclarationStrictES5.errors.txt @@ -1,18 +1,14 @@ -blockScopedSameNameFunctionDeclarationStrictES5.ts(4,18): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. blockScopedSameNameFunctionDeclarationStrictES5.ts(6,13): error TS2554: Expected 0 arguments, but got 1. -blockScopedSameNameFunctionDeclarationStrictES5.ts(9,18): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. blockScopedSameNameFunctionDeclarationStrictES5.ts(11,13): error TS2554: Expected 0 arguments, but got 1. blockScopedSameNameFunctionDeclarationStrictES5.ts(14,5): error TS2554: Expected 1 arguments, but got 0. blockScopedSameNameFunctionDeclarationStrictES5.ts(17,1): error TS2554: Expected 1 arguments, but got 0. -==== blockScopedSameNameFunctionDeclarationStrictES5.ts (6 errors) ==== +==== blockScopedSameNameFunctionDeclarationStrictES5.ts (4 errors) ==== "use strict"; function foo(a: number) { if (a === 1) { function foo() { } // Error to declare function in block scope - ~~~ -!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. foo(); foo(10); // not ok ~~ @@ -20,8 +16,6 @@ blockScopedSameNameFunctionDeclarationStrictES5.ts(17,1): error TS2554: Expected } else { function foo() { } // Error to declare function in block scope - ~~~ -!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. foo(); foo(10); // not ok ~~ diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedSameNameFunctionDeclarationStrictES5.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/blockScopedSameNameFunctionDeclarationStrictES5.errors.txt.diff new file mode 100644 index 0000000000..dcc648a56c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/blockScopedSameNameFunctionDeclarationStrictES5.errors.txt.diff @@ -0,0 +1,31 @@ +--- old.blockScopedSameNameFunctionDeclarationStrictES5.errors.txt ++++ new.blockScopedSameNameFunctionDeclarationStrictES5.errors.txt +@@= skipped -0, +0 lines =@@ +-blockScopedSameNameFunctionDeclarationStrictES5.ts(4,18): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. + blockScopedSameNameFunctionDeclarationStrictES5.ts(6,13): error TS2554: Expected 0 arguments, but got 1. +-blockScopedSameNameFunctionDeclarationStrictES5.ts(9,18): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. + blockScopedSameNameFunctionDeclarationStrictES5.ts(11,13): error TS2554: Expected 0 arguments, but got 1. + blockScopedSameNameFunctionDeclarationStrictES5.ts(14,5): error TS2554: Expected 1 arguments, but got 0. + blockScopedSameNameFunctionDeclarationStrictES5.ts(17,1): error TS2554: Expected 1 arguments, but got 0. + + +-==== blockScopedSameNameFunctionDeclarationStrictES5.ts (6 errors) ==== ++==== blockScopedSameNameFunctionDeclarationStrictES5.ts (4 errors) ==== + "use strict"; + function foo(a: number) { + if (a === 1) { + function foo() { } // Error to declare function in block scope +- ~~~ +-!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. + foo(); + foo(10); // not ok + ~~ +@@= skipped -19, +15 lines =@@ + } + else { + function foo() { } // Error to declare function in block scope +- ~~~ +-!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. + foo(); + foo(10); // not ok + ~~ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/blockScopedVariablesUseBeforeDef.js.diff b/testdata/baselines/reference/submodule/compiler/blockScopedVariablesUseBeforeDef.js.diff index a180a3b6b6..7f64351a7c 100644 --- a/testdata/baselines/reference/submodule/compiler/blockScopedVariablesUseBeforeDef.js.diff +++ b/testdata/baselines/reference/submodule/compiler/blockScopedVariablesUseBeforeDef.js.diff @@ -13,33 +13,6 @@ - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; -- } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -- } --}; -var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { - if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; - return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); @@ -58,125 +31,57 @@ - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } -}; function foo0() { -- var a = x; -- var x; -+ let a = x; -+ let x; - } - function foo1() { -- var a = function () { return x; }; -- var x; -+ let a = () => x; -+ let x; - } - function foo2() { -- var a = function () { return x; }; -- var x; -+ let a = function () { return x; }; -+ let x; - } - function foo3() { -- var X = /** @class */ (function () { -- function X() { -- } -- X.prototype.m = function () { return x; }; -- return X; -- }()); -- var x; -+ class X { -+ m() { return x; } -+ } -+ let x; - } - function foo4() { -- var y = /** @class */ (function () { -- function y() { -- } -- y.prototype.m = function () { return x; }; -- return y; -- }()); -- var x; -+ let y = class { -+ m() { return x; } -+ }; -+ let x; - } - function foo5() { -- var x = function () { return y; }; -- var y = function () { return x; }; -+ let x = () => y; -+ let y = () => x; - } - function foo6() { - function f() { - return x; - } -- var x; -+ let x; + let a = x; + let x; +@@= skipped -62, +36 lines =@@ } function foo7() { -- var A = /** @class */ (function () { -- function A() { + class A { +- constructor() { - this.a = x; - } -- return A; -- }()); -- var x; -+ class A { + a = x; -+ } -+ let x; + } + let x; } function foo8() { -- var y = /** @class */ (function () { -- function class_1() { + let y = class { +- constructor() { - this.a = x; - } -- return class_1; -- }()); -- var x; -+ let y = class { + a = x; -+ }; -+ let x; + }; + let x; } function foo9() { - var _a; -- var y = (_a = /** @class */ (function () { -- function class_2() { -- } -- return class_2; -- }()), +- let y = (_a = class { +- }, - __setFunctionName(_a, "y"), - _a.a = x, - _a); -- var x; + let y = class { + static a = x; + }; -+ let x; + let x; } function foo10() { -- var A = /** @class */ (function () { -- function A() { +- let A = (() => { +- class A { - } - A.a = x; - return A; -- }()); -- var x; +- })(); + class A { + static a = x; + } -+ let x; + let x; } function foo11() { function f() { - var _a; -- var y = (_a = /** @class */ (function () { -- function class_3() { -- } -- return class_3; -- }()), +- let y = (_a = class { +- }, - __setFunctionName(_a, "y"), - _a.a = x, - _a); @@ -184,79 +89,26 @@ + static a = x; + }; } -- var x; -+ let x; + let x; } function foo12() { function f() { -- var y = /** @class */ (function () { -- function class_4() { -+ let y = class { + let y = class { + a; -+ constructor() { + constructor() { this.a = x; } -- return class_4; -- }()); -+ }; - } -- var x; -+ let x; - } - function foo13() { -- var a = { -+ let a = { - get a() { return x; } - }; -- var x; -+ let x; - } - function foo14() { -- var a = { -+ let a = { - a: x - }; -- var x; -+ let x; - } - function foo15() { - // https://github.com/microsoft/TypeScript/issues/42678 -- var _a = (function () { -- (function () { return console.log(a); })(); // should error -+ const [a, b,] = (() => { -+ (() => console.log(a))(); // should error - console.log(a); // should error -- var b = function () { return a; }; // should be ok -+ const b = () => a; // should be ok - return [ - 0, - 0, - ]; -- })(), a = _a[0], b = _a[1]; -+ })(); - } - function foo16() { -- var a = (function () { return a; })()[0]; -+ let [a] = (() => a)(); +@@= skipped -81, +69 lines =@@ + let [a] = (() => a)(); } function foo17() { -- var _this = this; -- var promise = (function () { return __awaiter(_this, void 0, void 0, function () { -- return __generator(this, function (_a) { -- switch (_a.label) { -- case 0: -- promise; -- foo; -- return [4 /*yield*/, null]; -- case 1: -- _a.sent(); -- promise; -- foo; -- return [2 /*return*/]; -- } -- }); -- }); })(); -- var foo = 1; +- const promise = (() => __awaiter(this, void 0, void 0, function* () { +- promise; +- foo; +- yield null; +- promise; +- foo; +- }))(); + const promise = (async () => { + promise; + foo; @@ -264,40 +116,17 @@ + promise; + foo; + })(); -+ const foo = 1; + const foo = 1; } // #30907 - function wrapI1() { -- var iter = (function foo() { -- return __generator(this, function (_a) { -- switch (_a.label) { -- case 0: -- iter; -- return [4 /*yield*/, 1]; -- case 1: -- _a.sent(); -- return [2 /*return*/]; -- } -- }); -+ const iter = (function* foo() { -+ iter; -+ yield 1; +@@= skipped -17, +17 lines =@@ })(); } function wrapI2() { -- var iter = (function foo() { -- return __asyncGenerator(this, arguments, function foo_1() { -- return __generator(this, function (_a) { -- switch (_a.label) { -- case 0: -- iter; -- return [4 /*yield*/, __await(1)]; -- case 1: return [4 /*yield*/, _a.sent()]; -- case 2: -- _a.sent(); -- return [2 /*return*/]; -- } -- }); +- const iter = (function foo() { +- return __asyncGenerator(this, arguments, function* foo_1() { +- iter; +- yield yield __await(1); - }); + const iter = (async function* foo() { + iter; diff --git a/testdata/baselines/reference/submodule/compiler/bluebirdStaticThis.js.diff b/testdata/baselines/reference/submodule/compiler/bluebirdStaticThis.js.diff deleted file mode 100644 index 880628290a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/bluebirdStaticThis.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.bluebirdStaticThis.js -+++ new.bluebirdStaticThis.js -@@= skipped -146, +146 lines =@@ - var arr; - var foo; - var fooProm; --fooProm = Promise.try(Promise, function () { -+fooProm = Promise.try(Promise, () => { - return foo; - }); --fooProm = Promise.try(Promise, function () { -+fooProm = Promise.try(Promise, () => { - return foo; - }, arr); --fooProm = Promise.try(Promise, function () { -+fooProm = Promise.try(Promise, () => { - return foo; - }, arr, x); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/booleanFilterAnyArray.js.diff b/testdata/baselines/reference/submodule/compiler/booleanFilterAnyArray.js.diff deleted file mode 100644 index 445551a550..0000000000 --- a/testdata/baselines/reference/submodule/compiler/booleanFilterAnyArray.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.booleanFilterAnyArray.js -+++ new.booleanFilterAnyArray.js -@@= skipped -33, +33 lines =@@ - var ys = realanys.filter(Boolean); - var foo = [{ name: 'x' }]; - var foor; --var foor = foo.filter(function (x) { return x.name; }); -+var foor = foo.filter(x => x.name); - var foos; --var foos = [true, true, false, null].filter(function (thing) { return thing !== null; }); -+var foos = [true, true, false, null].filter((thing) => thing !== null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/booleanLiteralsContextuallyTypedFromUnion.js.diff b/testdata/baselines/reference/submodule/compiler/booleanLiteralsContextuallyTypedFromUnion.js.diff index 2eee8e1185..ac480824b4 100644 --- a/testdata/baselines/reference/submodule/compiler/booleanLiteralsContextuallyTypedFromUnion.js.diff +++ b/testdata/baselines/reference/submodule/compiler/booleanLiteralsContextuallyTypedFromUnion.js.diff @@ -5,23 +5,6 @@ //// [booleanLiteralsContextuallyTypedFromUnion.jsx] -"use strict"; --var isIt = Math.random() > 0.5; --var c = isIt ? { isIt: isIt, text: 'hey' } : { isIt: isIt, value: 123 }; --var cc = isIt ? { isIt: isIt, text: 'hey' } : { isIt: isIt, value: 123 }; --var Funk = function (_props) { return
Hello
; }; --var Fail1 = function () { return ; }; --var Fail2 = function () { return ; }; --var True = true; --var Fail3 = function () { return ; }; --var attrs2 = { optionalBool: true, mandatoryFn: function () { } }; --var Success = function () { return ; }; -+const isIt = Math.random() > 0.5; -+const c = isIt ? { isIt, text: 'hey' } : { isIt, value: 123 }; -+const cc = isIt ? { isIt: isIt, text: 'hey' } : { isIt: isIt, value: 123 }; -+let Funk = (_props) =>
Hello
; -+let Fail1 = () => { }} optionalBool={true}/>; -+let Fail2 = () => { }} optionalBool={true}/>; -+let True = true; -+let Fail3 = () => { }} optionalBool={True}/>; -+let attrs2 = { optionalBool: true, mandatoryFn: () => { } }; -+let Success = () => ; \ No newline at end of file + const isIt = Math.random() > 0.5; + const c = isIt ? { isIt, text: 'hey' } : { isIt, value: 123 }; + const cc = isIt ? { isIt: isIt, text: 'hey' } : { isIt: isIt, value: 123 }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cachedContextualTypes.js.diff b/testdata/baselines/reference/submodule/compiler/cachedContextualTypes.js.diff index d063d7f93e..6236676ccd 100644 --- a/testdata/baselines/reference/submodule/compiler/cachedContextualTypes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/cachedContextualTypes.js.diff @@ -6,17 +6,5 @@ "use strict"; -// Repro from #52198 Object.defineProperty(exports, "__esModule", { value: true }); --var MenuWorkbenchToolBar = /** @class */ (function () { -- function MenuWorkbenchToolBar(options) { -- } -- return MenuWorkbenchToolBar; --}()); -+class MenuWorkbenchToolBar { -+ constructor(options) { } -+} - createInstance(MenuWorkbenchToolBar, { - toolbarOptions: { -- foo: function (bar) { return bar; } -+ foo(bar) { return bar; } - } - }); \ No newline at end of file + class MenuWorkbenchToolBar { + constructor(options) { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/callOfConditionalTypeWithConcreteBranches.js.diff b/testdata/baselines/reference/submodule/compiler/callOfConditionalTypeWithConcreteBranches.js.diff deleted file mode 100644 index 362e91c9e1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/callOfConditionalTypeWithConcreteBranches.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.callOfConditionalTypeWithConcreteBranches.js -+++ new.callOfConditionalTypeWithConcreteBranches.js -@@= skipped -51, +51 lines =@@ - arg(10); - } - // Legal invocations are not problematic --fn(function (m) { return m.toFixed(); }); --fn(function (m) { return m.toFixed(); }); -+fn(m => m.toFixed()); -+fn(m => m.toFixed()); - function fn2(arg) { - function useT(_arg) { } - // Expected: OK -- arg(function (arg) { return useT(arg); }); -+ arg(arg => useT(arg)); - } - // Legal invocations are not problematic --fn2(function (m) { return m(42); }); --fn2(function (m) { return m(42); }); -+fn2(m => m(42)); -+fn2(m => m(42)); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/callOnClass.js.diff b/testdata/baselines/reference/submodule/compiler/callOnClass.js.diff deleted file mode 100644 index aa46a8d740..0000000000 --- a/testdata/baselines/reference/submodule/compiler/callOnClass.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.callOnClass.js -+++ new.callOnClass.js -@@= skipped -6, +6 lines =@@ - - - //// [callOnClass.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} - var c = C(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/callOverloadViaElementAccessExpression.js.diff b/testdata/baselines/reference/submodule/compiler/callOverloadViaElementAccessExpression.js.diff deleted file mode 100644 index 03332758d5..0000000000 --- a/testdata/baselines/reference/submodule/compiler/callOverloadViaElementAccessExpression.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.callOverloadViaElementAccessExpression.js -+++ new.callOverloadViaElementAccessExpression.js -@@= skipped -13, +13 lines =@@ - var r2: number = c['foo'](''); - - //// [callOverloadViaElementAccessExpression.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function (x) { -+class C { -+ foo(x) { - return null; -- }; -- return C; --}()); -+ } -+} - var c = new C(); - var r = c['foo'](1); - var r2 = c['foo'](''); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/callOverloads1.js.diff b/testdata/baselines/reference/submodule/compiler/callOverloads1.js.diff deleted file mode 100644 index 871cf1f58d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/callOverloads1.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.callOverloads1.js -+++ new.callOverloads1.js -@@= skipped -19, +19 lines =@@ - Foo(); - - //// [callOverloads1.js] --var Foo = /** @class */ (function () { -- function Foo(x) { -+class Foo { -+ bar1() { } -+ constructor(x) { - // WScript.Echo("Constructor function has executed"); - } -- Foo.prototype.bar1 = function () { }; -- return Foo; --}()); -+} - function F1(a) { return a; } - var f1 = new Foo("hey"); - f1.bar1(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/callOverloads2.js.diff b/testdata/baselines/reference/submodule/compiler/callOverloads2.js.diff deleted file mode 100644 index 3f3d94697a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/callOverloads2.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.callOverloads2.js -+++ new.callOverloads2.js -@@= skipped -25, +25 lines =@@ - - - //// [callOverloads2.js] --var Foo = /** @class */ (function () { -- function Foo(x) { -+class Foo { -+ bar1() { } -+ constructor(x) { - // WScript.Echo("Constructor function has executed"); - } -- Foo.prototype.bar1 = function () { }; -- return Foo; --}()); -+} - function F1(s) { return s; } // error - function F1(a) { return a; } // error - var f1 = new Foo("hey"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/callOverloads3.js.diff b/testdata/baselines/reference/submodule/compiler/callOverloads3.js.diff deleted file mode 100644 index 50ea5b44d0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/callOverloads3.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.callOverloads3.js -+++ new.callOverloads3.js -@@= skipped -19, +19 lines =@@ - - - //// [callOverloads3.js] --var Foo = /** @class */ (function () { -- function Foo(x) { -+class Foo { -+ bar1() { } -+ constructor(x) { - // WScript.Echo("Constructor function has executed"); - } -- Foo.prototype.bar1 = function () { }; -- return Foo; --}()); -+} - //class Foo(s: String); - var f1 = new Foo("hey"); - f1.bar1(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/callOverloads4.js.diff b/testdata/baselines/reference/submodule/compiler/callOverloads4.js.diff deleted file mode 100644 index 71e23cf00c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/callOverloads4.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.callOverloads4.js -+++ new.callOverloads4.js -@@= skipped -19, +19 lines =@@ - - - //// [callOverloads4.js] --var Foo = /** @class */ (function () { -- function Foo(x) { -+class Foo { -+ bar1() { } -+ constructor(x) { - // WScript.Echo("Constructor function has executed"); - } -- Foo.prototype.bar1 = function () { }; -- return Foo; --}()); -+} - var f1 = new Foo("hey"); - f1.bar1(); - Foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/callOverloads5.js.diff b/testdata/baselines/reference/submodule/compiler/callOverloads5.js.diff deleted file mode 100644 index c379bcd5a7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/callOverloads5.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.callOverloads5.js -+++ new.callOverloads5.js -@@= skipped -21, +21 lines =@@ - - - //// [callOverloads5.js] --var Foo = /** @class */ (function () { -- function Foo(x) { -+class Foo { -+ bar1(a) { } -+ constructor(x) { - // WScript.Echo("Constructor function has executed"); - } -- Foo.prototype.bar1 = function (a) { }; -- return Foo; --}()); -+} - //class Foo(s: String); - var f1 = new Foo("hey"); - f1.bar1("a"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/callbacksDontShareTypes.js.diff b/testdata/baselines/reference/submodule/compiler/callbacksDontShareTypes.js.diff deleted file mode 100644 index 332f38e85d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/callbacksDontShareTypes.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.callbacksDontShareTypes.js -+++ new.callbacksDontShareTypes.js -@@= skipped -22, +22 lines =@@ - //// [callbacksDontShareTypes.js] - var _; - var c2; --var rf1 = function (x) { return x.toFixed(); }; --var r1a = _.map(c2, function (x) { return x.toFixed(); }); -+var rf1 = (x) => { return x.toFixed(); }; -+var r1a = _.map(c2, (x) => { return x.toFixed(); }); - var r1b = _.map(c2, rf1); // this line should not cause the following 2 to have errors --var r5a = _.map(c2, function (x) { return x.toFixed(); }); -+var r5a = _.map(c2, (x) => { return x.toFixed(); }); - var r5b = _.map(c2, rf1); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/callsOnComplexSignatures.js.diff b/testdata/baselines/reference/submodule/compiler/callsOnComplexSignatures.js.diff index 3eb4daa268..2f48bfa689 100644 --- a/testdata/baselines/reference/submodule/compiler/callsOnComplexSignatures.js.diff +++ b/testdata/baselines/reference/submodule/compiler/callsOnComplexSignatures.js.diff @@ -8,49 +8,4 @@ +const react_1 = __importDefault(require("react")); // Simple calls from real usecases function test1() { - function test(t) { -- var z = t.getValue("bar"); // Should be fine -+ const z = t.getValue("bar"); // Should be fine - } - } - function test2() { -- var messages = { -- foo: function (options) { return "Foo"; }, -- bar: function (options) { return "Bar"; }, -- }; -- var test1 = function (type) { -- return messages[type]({ a: "A", b: 0 }); -- }; -+ const messages = { -+ foo: (options) => "Foo", -+ bar: (options) => "Bar", -+ }; -+ const test1 = (type) => messages[type]({ a: "A", b: 0 }); - } - function test3(items) { -- items.forEach(function (item) { return console.log(item); }); -+ items.forEach(item => console.log(item)); - } - function test4(arg1, arg2, arg3, arg4, arg5, arg6) { - arg1(); -@@= skipped -42, +40 lines =@@ - function test5() { - // Pair of non-like intrinsics - function render(url) { -- var Tag = url ? 'a' : 'button'; -+ const Tag = url ? 'a' : 'button'; - return react_1.default.createElement(Tag, null, "test"); - } - // Union of all intrinsics and components of `any` - function App(props) { -- var Comp = props.component; -+ const Comp = props.component; - return (react_1.default.createElement(Comp, null)); - } - // custom components with non-subset props - function render2() { - var C = null; -- var a = react_1.default.createElement(C, { p: true }); -+ const a = react_1.default.createElement(C, { p: true }); - } - } \ No newline at end of file + function test(t) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cannotInvokeNewOnErrorExpression.js.diff b/testdata/baselines/reference/submodule/compiler/cannotInvokeNewOnErrorExpression.js.diff deleted file mode 100644 index 8c1f3284e3..0000000000 --- a/testdata/baselines/reference/submodule/compiler/cannotInvokeNewOnErrorExpression.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.cannotInvokeNewOnErrorExpression.js -+++ new.cannotInvokeNewOnErrorExpression.js -@@= skipped -9, +9 lines =@@ - //// [cannotInvokeNewOnErrorExpression.js] - var M; - (function (M) { -- var ClassA = /** @class */ (function () { -- function ClassA() { -- } -- return ClassA; -- }()); -+ class ClassA { -+ } - })(M || (M = {})); - var t = new M.ClassA[]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/captureSuperPropertyAccessInSuperCall01.js.diff b/testdata/baselines/reference/submodule/compiler/captureSuperPropertyAccessInSuperCall01.js.diff deleted file mode 100644 index fd7d3ceba2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/captureSuperPropertyAccessInSuperCall01.js.diff +++ /dev/null @@ -1,45 +0,0 @@ ---- old.captureSuperPropertyAccessInSuperCall01.js -+++ new.captureSuperPropertyAccessInSuperCall01.js -@@= skipped -13, +13 lines =@@ - } - - //// [captureSuperPropertyAccessInSuperCall01.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A(f) { -- } -- A.prototype.blah = function () { return ""; }; -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- var _this = _super.call(this, function () { return _super.prototype.blah.call(_this); }) || this; -- return _this; -- } -- return B; --}(A)); -+class A { -+ constructor(f) { -+ } -+ blah() { return ""; } -+} -+class B extends A { -+ constructor() { -+ super(() => { return super.blah(); }); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/captureThisInSuperCall.js.diff b/testdata/baselines/reference/submodule/compiler/captureThisInSuperCall.js.diff deleted file mode 100644 index c8fa3d3ffc..0000000000 --- a/testdata/baselines/reference/submodule/compiler/captureThisInSuperCall.js.diff +++ /dev/null @@ -1,42 +0,0 @@ ---- old.captureThisInSuperCall.js -+++ new.captureThisInSuperCall.js -@@= skipped -10, +10 lines =@@ - } - - //// [captureThisInSuperCall.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A(p) { -- } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- var _this = _super.call(this, { test: function () { return _this.someMethod(); } }) || this; -- return _this; -- } -- B.prototype.someMethod = function () { }; -- return B; --}(A)); -+class A { -+ constructor(p) { } -+} -+class B extends A { -+ constructor() { super({ test: () => this.someMethod() }); } -+ someMethod() { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop1.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop1.js.diff deleted file mode 100644 index 093e4142b1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop1.js.diff +++ /dev/null @@ -1,338 +0,0 @@ ---- old.capturedLetConstInLoop1.js -+++ new.capturedLetConstInLoop1.js -@@= skipped -140, +140 lines =@@ - } - - //// [capturedLetConstInLoop1.js] --var _loop_1 = function (x) { -- (function () { return x; }); -- (function () { return x; }); --}; - //==== let --for (var x in {}) { -- _loop_1(x); --} --var _loop_2 = function (x) { -- (function () { return x; }); -- (function () { return x; }); --}; --for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x = _a[_i]; -- _loop_2(x); --} --var _loop_3 = function (x) { -- (function () { return x; }); -- (function () { return x; }); --}; --for (var x = 0; x < 1; ++x) { -- _loop_3(x); --} --var _loop_4 = function () { -- var x; -- (function () { return x; }); -- (function () { return x; }); --}; --while (1 === 1) { -- _loop_4(); --} --var _loop_5 = function () { -- var x; -- (function () { return x; }); -- (function () { return x; }); --}; --do { -- _loop_5(); --} while (1 === 1); --var _loop_6 = function (y) { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); --}; --for (var y = 0; y < 1; ++y) { -- _loop_6(y); --} --var _loop_7 = function (x, y) { -- (function () { return x + y; }); -- (function () { return x + y; }); --}; --for (var x = 0, y = 1; x < 1; ++x) { -- _loop_7(x, y); --} --var _loop_8 = function () { -- var x, y; -- (function () { return x + y; }); -- (function () { return x + y; }); --}; --while (1 === 1) { -- _loop_8(); --} --var _loop_9 = function () { -- var x, y; -- (function () { return x + y; }); -- (function () { return x + y; }); --}; --do { -- _loop_9(); --} while (1 === 1); --var _loop_10 = function (y) { -- var x = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); --}; --for (var y = 0; y < 1; ++y) { -- _loop_10(y); --} --var _loop_init_1 = function () { -- var y = (use(function () { return y; }), 0); -- out_y_1 = y; --}; --var out_y_1; --_loop_init_1(); --for (var y = out_y_1; y < 1; ++y) { --} --var _loop_11 = function (y) { -- if (inc_1) -- ++y; -- else -- inc_1 = true; -- if (!(use(function () { return y; }), y < 1)) -- return out_y_2 = y, "break"; -- out_y_2 = y; --}; --var out_y_2, inc_1 = false; --for (var y = 0;;) { -- var state_1 = _loop_11(y); -- y = out_y_2; -- if (state_1 === "break") -- break; --} --var _loop_12 = function (y) { -- if (inc_2) -- use(function () { return y; }), ++y; -- else -- inc_2 = true; -- out_y_3 = y; --}; --var out_y_3, inc_2 = false; --for (var y = 0; y < 1;) { -- _loop_12(y); -- y = out_y_3; --} --var _loop_init_2 = function () { -- var y = (use(function () { return y; }), 0); -- out_y_4 = y; --}; --var _loop_13 = function (y) { -- if (inc_3) -- use(function () { return y; }), ++y; -- else -- inc_3 = true; -- if (!(use(function () { return y; }), y < 1)) -- return out_y_4 = y, "break"; -- use(function () { return y; }); -- out_y_4 = y; --}; --var out_y_4, inc_3 = false; --_loop_init_2(); --for (var y = out_y_4;;) { -- var state_2 = _loop_13(y); -- y = out_y_4; -- if (state_2 === "break") -- break; --} --var _loop_14 = function (x) { -- (function () { return x; }); -- (function () { return x; }); --}; -+for (let x in {}) { -+ (function () { return x; }); -+ (() => x); -+} -+for (let x of []) { -+ (function () { return x; }); -+ (() => x); -+} -+for (let x = 0; x < 1; ++x) { -+ (function () { return x; }); -+ (() => x); -+} -+while (1 === 1) { -+ let x; -+ (function () { return x; }); -+ (() => x); -+} -+do { -+ let x; -+ (function () { return x; }); -+ (() => x); -+} while (1 === 1); -+for (let y = 0; y < 1; ++y) { -+ let x = 1; -+ (function () { return x; }); -+ (() => x); -+} -+for (let x = 0, y = 1; x < 1; ++x) { -+ (function () { return x + y; }); -+ (() => x + y); -+} -+while (1 === 1) { -+ let x, y; -+ (function () { return x + y; }); -+ (() => x + y); -+} -+do { -+ let x, y; -+ (function () { return x + y; }); -+ (() => x + y); -+} while (1 === 1); -+for (let y = 0; y < 1; ++y) { -+ let x = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+} -+for (let y = (use(() => y), 0); y < 1; ++y) { -+} -+for (let y = 0; use(() => y), y < 1; ++y) { -+} -+for (let y = 0; y < 1; use(() => y), ++y) { -+} -+for (let y = (use(() => y), 0); use(() => y), y < 1; use(() => y), ++y) { -+ use(() => y); -+} - //=========const --for (var x in {}) { -- _loop_14(x); --} --var _loop_15 = function (x) { -- (function () { return x; }); -- (function () { return x; }); --}; --for (var _b = 0, _c = []; _b < _c.length; _b++) { -- var x = _c[_b]; -- _loop_15(x); --} --var _loop_16 = function (x) { -- (function () { return x; }); -- (function () { return x; }); --}; --for (var x = 0; x < 1;) { -- _loop_16(x); --} --var _loop_17 = function () { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); --}; --while (1 === 1) { -- _loop_17(); --} --var _loop_18 = function () { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); --}; --do { -- _loop_18(); --} while (1 === 1); --var _loop_19 = function (y) { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); --}; --for (var y = 0; y < 1;) { -- _loop_19(y); --} --var _loop_20 = function (x, y) { -- (function () { return x + y; }); -- (function () { return x + y; }); --}; --for (var x = 0, y = 1; x < 1;) { -- _loop_20(x, y); --} --var _loop_21 = function () { -- var x = 1, y = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); --}; --while (1 === 1) { -- _loop_21(); --} --var _loop_22 = function () { -- var x = 1, y = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); --}; --do { -- _loop_22(); --} while (1 === 1); --var _loop_23 = function (y) { -- var x = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); --}; --for (var y = 0; y < 1;) { -- _loop_23(y); --} --var _loop_24 = function (sx) { -- (function () { return sobj[sx]; }); --}; --for (var sx in sobj) { -- _loop_24(sx); --} --var _loop_25 = function (ix) { -- (function () { return iobj[ix]; }); --}; --for (var ix in iobj) { -- _loop_25(ix); -+for (const x in {}) { -+ (function () { return x; }); -+ (() => x); -+} -+for (const x of []) { -+ (function () { return x; }); -+ (() => x); -+} -+for (const x = 0; x < 1;) { -+ (function () { return x; }); -+ (() => x); -+} -+while (1 === 1) { -+ const x = 1; -+ (function () { return x; }); -+ (() => x); -+} -+do { -+ const x = 1; -+ (function () { return x; }); -+ (() => x); -+} while (1 === 1); -+for (const y = 0; y < 1;) { -+ const x = 1; -+ (function () { return x; }); -+ (() => x); -+} -+for (const x = 0, y = 1; x < 1;) { -+ (function () { return x + y; }); -+ (() => x + y); -+} -+while (1 === 1) { -+ const x = 1, y = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+} -+do { -+ const x = 1, y = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+} while (1 === 1); -+for (const y = 0; y < 1;) { -+ const x = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+} -+for (let sx in sobj) { -+ (() => sobj[sx]); -+} -+for (let ix in iobj) { -+ (() => iobj[ix]); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop10.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop10.js.diff deleted file mode 100644 index d09a12c0da..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop10.js.diff +++ /dev/null @@ -1,124 +0,0 @@ ---- old.capturedLetConstInLoop10.js -+++ new.capturedLetConstInLoop10.js -@@= skipped -47, +47 lines =@@ - } - - //// [capturedLetConstInLoop10.js] --var A = /** @class */ (function () { -- function A() { -- } -- A.prototype.foo = function () { -- var _loop_1 = function (x) { -- var f = function () { return x; }; -- this_1.bar(f()); -- }; -- var this_1 = this; -- for (var _i = 0, _a = [0]; _i < _a.length; _i++) { -- var x = _a[_i]; -- _loop_1(x); -- } -- }; -- A.prototype.bar = function (a) { -- }; -- A.prototype.baz = function () { -- var _loop_2 = function (x) { -- var a = function () { return x; }; -- var _loop_3 = function (y) { -- var b = function () { return y; }; -- this_2.bar(b()); -- }; -- for (var _b = 0, _c = [1]; _b < _c.length; _b++) { -- var y = _c[_b]; -- _loop_3(y); -- } -- this_2.bar(a()); -- }; -- var this_2 = this; -- for (var _i = 0, _a = [1]; _i < _a.length; _i++) { -- var x = _a[_i]; -- _loop_2(x); -- } -- }; -- A.prototype.baz2 = function () { -- var _loop_4 = function (x) { -- var a = function () { return x; }; -- this_3.bar(a()); -- var _loop_5 = function (y) { -- var b = function () { return y; }; -- this_3.bar(b()); -- }; -- for (var _b = 0, _c = [1]; _b < _c.length; _b++) { -- var y = _c[_b]; -- _loop_5(y); -- } -- }; -- var this_3 = this; -- for (var _i = 0, _a = [1]; _i < _a.length; _i++) { -- var x = _a[_i]; -- _loop_4(x); -- } -- }; -- return A; --}()); --var B = /** @class */ (function () { -- function B() { -- } -- B.prototype.foo = function () { -- var _this = this; -- var a = function () { -- var _loop_6 = function (x) { -- var f = function () { return x; }; -- _this.bar(f()); -- }; -- for (var _i = 0, _a = [0]; _i < _a.length; _i++) { -- var x = _a[_i]; -- _loop_6(x); -- } -- }; -- }; -- B.prototype.bar = function (a) { -- }; -- return B; --}()); -+class A { -+ foo() { -+ for (let x of [0]) { -+ let f = function () { return x; }; -+ this.bar(f()); -+ } -+ } -+ bar(a) { -+ } -+ baz() { -+ for (let x of [1]) { -+ let a = function () { return x; }; -+ for (let y of [1]) { -+ let b = function () { return y; }; -+ this.bar(b()); -+ } -+ this.bar(a()); -+ } -+ } -+ baz2() { -+ for (let x of [1]) { -+ let a = function () { return x; }; -+ this.bar(a()); -+ for (let y of [1]) { -+ let b = function () { return y; }; -+ this.bar(b()); -+ } -+ } -+ } -+} -+class B { -+ foo() { -+ let a = () => { -+ for (let x of [0]) { -+ let f = () => x; -+ this.bar(f()); -+ } -+ }; -+ } -+ bar(a) { -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop11.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop11.js.diff deleted file mode 100644 index 54be650a1a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop11.js.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- old.capturedLetConstInLoop11.js -+++ new.capturedLetConstInLoop11.js -@@= skipped -15, +15 lines =@@ - } - - //// [capturedLetConstInLoop11.js] --var _loop_1 = function () { -- var x = 1; -- (function () { return x; }); --}; - for (;;) { -- _loop_1(); -+ let x = 1; -+ () => x; - } - function foo() { -- var _loop_2 = function () { -- var a = 0; -+ for (;;) { -+ const a = 0; - switch (a) { -- case 0: return { value: function () { return a; } }; -+ case 0: return () => a; - } -- }; -- for (;;) { -- var state_1 = _loop_2(); -- if (typeof state_1 === "object") -- return state_1.value; - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop12.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop12.js.diff index f17db2622c..ef038f19f1 100644 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop12.js.diff +++ b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop12.js.diff @@ -4,37 +4,13 @@ //// [capturedLetConstInLoop12.js] (function () { "use strict"; -- var _loop_1 = function (i) { -- (function () { -- var _a; -- return _a = [i + 1], i = _a[0], _a; -- })(); -- out_i_1 = i; -- }; -- var out_i_1; -- for (var i = 0; i < 4; i++) { -- _loop_1(i); -- i = out_i_1; + "use strict"; -+ for (let i = 0; i < 4; i++) { -+ (() => [i] = [i + 1])(); + for (let i = 0; i < 4; i++) { + (() => [i] = [i + 1])(); } })(); (function () { - "use strict"; -- var _loop_2 = function (i) { -- (function () { -- var _a; -- return (_a = { a: i + 1 }, i = _a.a, _a); -- })(); -- out_i_2 = i; -- }; -- var out_i_2; -- for (var i = 0; i < 4; i++) { -- _loop_2(i); -- i = out_i_2; + "use strict"; -+ for (let i = 0; i < 4; i++) { -+ (() => ({ a: i } = { a: i + 1 }))(); - } - })(); \ No newline at end of file + "use strict"; + for (let i = 0; i < 4; i++) { + (() => ({ a: i } = { a: i + 1 }))(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop13.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop13.js.diff deleted file mode 100644 index bddda8209b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop13.js.diff +++ /dev/null @@ -1,45 +0,0 @@ ---- old.capturedLetConstInLoop13.js -+++ new.capturedLetConstInLoop13.js -@@= skipped -24, +24 lines =@@ - new Main(); - - //// [capturedLetConstInLoop13.js] --var Main = /** @class */ (function () { -- function Main() { -+class Main { -+ constructor() { - this.register("a", "b", "c"); - } -- Main.prototype.register = function () { -- var _this = this; -- var names = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- names[_i] = arguments[_i]; -- } -- var _loop_1 = function (name_1) { -- var _b; -- this_1.bar((_b = {}, -- _b[name_1 + ".a"] = function () { _this.foo(name_1); }, -- _b)); -- }; -- var this_1 = this; -- for (var _a = 0, names_1 = names; _a < names_1.length; _a++) { -- var name_1 = names_1[_a]; -- _loop_1(name_1); -- } -- }; -- Main.prototype.bar = function (a) { }; -- Main.prototype.foo = function (name) { }; -- return Main; --}()); -+ register(...names) { -+ for (let name of names) { -+ this.bar({ -+ [name + ".a"]: () => { this.foo(name); }, -+ }); -+ } -+ } -+ bar(a) { } -+ foo(name) { } -+} - new Main(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop14.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop14.js.diff index d3ba4333af..049deb24aa 100644 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop14.js.diff +++ b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop14.js.diff @@ -7,19 +7,4 @@ -"use strict"; function use(v) { } function foo(x) { - var v = 1; -- var _loop_1 = function () { -- var x_1 = v; -- v = 2; -- (function () { return x_1 + v; }); -- }; -- var v, v; - do { -- _loop_1(); -+ let x = v; -+ var v; -+ var v = 2; -+ () => x + v; - } while (false); - use(v); - } \ No newline at end of file + var v = 1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop2.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop2.js.diff deleted file mode 100644 index 8e87c6deca..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop2.js.diff +++ /dev/null @@ -1,320 +0,0 @@ ---- old.capturedLetConstInLoop2.js -+++ new.capturedLetConstInLoop2.js -@@= skipped -178, +178 lines =@@ - //// [capturedLetConstInLoop2.js] - // ========let - function foo0(x) { -- var _loop_1 = function (x_1) { -- var a = arguments_1.length; -- (function () { return x_1 + a; }); -- (function () { return x_1 + a; }); -- }; -- var arguments_1 = arguments; -- for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x_1 = _a[_i]; -- _loop_1(x_1); -+ for (let x of []) { -+ let a = arguments.length; -+ (function () { return x + a; }); -+ (() => x + a); - } - } - function foo0_1(x) { -- var _loop_2 = function (x_2) { -- var a = arguments_2.length; -- (function () { return x_2 + a; }); -- (function () { return x_2 + a; }); -- }; -- var arguments_2 = arguments; -- for (var x_2 in []) { -- _loop_2(x_2); -+ for (let x in []) { -+ let a = arguments.length; -+ (function () { return x + a; }); -+ (() => x + a); - } - } - function foo1(x) { -- var _loop_3 = function (x_3) { -- var a = arguments_3.length; -- (function () { return x_3 + a; }); -- (function () { return x_3 + a; }); -- }; -- var arguments_3 = arguments; -- for (var x_3 = 0; x_3 < 1; ++x_3) { -- _loop_3(x_3); -+ for (let x = 0; x < 1; ++x) { -+ let a = arguments.length; -+ (function () { return x + a; }); -+ (() => x + a); - } - } - function foo2(x) { -- var _loop_4 = function () { -- var a = arguments_4.length; -- (function () { return x + a; }); -- (function () { return x + a; }); -- }; -- var arguments_4 = arguments; - while (1 === 1) { -- _loop_4(); -+ let a = arguments.length; -+ (function () { return x + a; }); -+ (() => x + a); - } - } - function foo3(x) { -- var _loop_5 = function () { -- var x_4; -- var a = arguments_5.length; -- (function () { return x_4 + a; }); -- (function () { return x_4 + a; }); -- }; -- var arguments_5 = arguments; - do { -- _loop_5(); -+ let x; -+ let a = arguments.length; -+ (function () { return x + a; }); -+ (() => x + a); - } while (1 === 1); - } - function foo4(x) { -- var _loop_6 = function (y) { -- var a = arguments_6.length; -- var x_5 = 1; -- (function () { return x_5 + a; }); -- (function () { return x_5 + a; }); -- }; -- var arguments_6 = arguments; -- for (var y = 0; y < 1; ++y) { -- _loop_6(y); -+ for (let y = 0; y < 1; ++y) { -+ let a = arguments.length; -+ let x = 1; -+ (function () { return x + a; }); -+ (() => x + a); - } - } - function foo5(x) { -- var _loop_7 = function (x_6, y) { -- var a = arguments_7.length; -- (function () { return x_6 + y + a; }); -- (function () { return x_6 + y + a; }); -- }; -- var arguments_7 = arguments; -- for (var x_6 = 0, y = 1; x_6 < 1; ++x_6) { -- _loop_7(x_6, y); -+ for (let x = 0, y = 1; x < 1; ++x) { -+ let a = arguments.length; -+ (function () { return x + y + a; }); -+ (() => x + y + a); - } - } - function foo6(x) { -- var _loop_8 = function () { -- var x_7, y; -- var a = arguments_8.length; -- (function () { return x_7 + y + a; }); -- (function () { return x_7 + y + a; }); -- }; -- var arguments_8 = arguments; - while (1 === 1) { -- _loop_8(); -+ let x, y; -+ let a = arguments.length; -+ (function () { return x + y + a; }); -+ (() => x + y + a); - } - } - function foo7(x) { -- var _loop_9 = function () { -- var x_8, y; -- var a = arguments_9.length; -- (function () { return x_8 + y + a; }); -- (function () { return x_8 + y + a; }); -- }; -- var arguments_9 = arguments; - do { -- _loop_9(); -+ let x, y; -+ let a = arguments.length; -+ (function () { return x + y + a; }); -+ (() => x + y + a); - } while (1 === 1); - } - function foo8(x) { -- var _loop_10 = function (y) { -- var x_9 = 1; -- var a = arguments_10.length; -- (function () { return x_9 + y + a; }); -- (function () { return x_9 + y + a; }); -- }; -- var arguments_10 = arguments; -- for (var y = 0; y < 1; ++y) { -- _loop_10(y); -+ for (let y = 0; y < 1; ++y) { -+ let x = 1; -+ let a = arguments.length; -+ (function () { return x + y + a; }); -+ (() => x + y + a); - } - } - ///=======const - function foo0_c(x) { -- var _loop_11 = function (x_10) { -- var a = arguments_11.length; -- (function () { return x_10 + a; }); -- (function () { return x_10 + a; }); -- }; -- var arguments_11 = arguments; -- for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x_10 = _a[_i]; -- _loop_11(x_10); -+ for (const x of []) { -+ const a = arguments.length; -+ (function () { return x + a; }); -+ (() => x + a); - } - } - function foo0_1_c(x) { -- var _loop_12 = function (x_11) { -- var a = arguments_12.length; -- (function () { return x_11 + a; }); -- (function () { return x_11 + a; }); -- }; -- var arguments_12 = arguments; -- for (var x_11 in []) { -- _loop_12(x_11); -+ for (const x in []) { -+ const a = arguments.length; -+ (function () { return x + a; }); -+ (() => x + a); - } - } - function foo1_c(x) { -- var _loop_13 = function (x_12) { -- var a = arguments_13.length; -- (function () { return x_12 + a; }); -- (function () { return x_12 + a; }); -- }; -- var arguments_13 = arguments; -- for (var x_12 = 0; x_12 < 1;) { -- _loop_13(x_12); -+ for (const x = 0; x < 1;) { -+ const a = arguments.length; -+ (function () { return x + a; }); -+ (() => x + a); - } - } - function foo2_c(x) { -- var _loop_14 = function () { -- var a = arguments_14.length; -- (function () { return x + a; }); -- (function () { return x + a; }); -- }; -- var arguments_14 = arguments; - while (1 === 1) { -- _loop_14(); -+ const a = arguments.length; -+ (function () { return x + a; }); -+ (() => x + a); - } - } - function foo3_c(x) { -- var _loop_15 = function () { -- var x_13 = 1; -- var a = arguments_15.length; -- (function () { return x_13 + a; }); -- (function () { return x_13 + a; }); -- }; -- var arguments_15 = arguments; - do { -- _loop_15(); -+ const x = 1; -+ const a = arguments.length; -+ (function () { return x + a; }); -+ (() => x + a); - } while (1 === 1); - } - function foo4_c(x) { -- var _loop_16 = function (y) { -- var a = arguments_16.length; -- var x_14 = 1; -- (function () { return x_14 + a; }); -- (function () { return x_14 + a; }); -- }; -- var arguments_16 = arguments; -- for (var y = 0; y < 1;) { -- _loop_16(y); -+ for (const y = 0; y < 1;) { -+ const a = arguments.length; -+ const x = 1; -+ (function () { return x + a; }); -+ (() => x + a); - } - } - function foo5_c(x) { -- var _loop_17 = function (x_15, y) { -- var a = arguments_17.length; -- (function () { return x_15 + y + a; }); -- (function () { return x_15 + y + a; }); -- }; -- var arguments_17 = arguments; -- for (var x_15 = 0, y = 1; x_15 < 1;) { -- _loop_17(x_15, y); -+ for (const x = 0, y = 1; x < 1;) { -+ const a = arguments.length; -+ (function () { return x + y + a; }); -+ (() => x + y + a); - } - } - function foo6_c(x) { -- var _loop_18 = function () { -- var x_16 = 1, y = 1; -- var a = arguments_18.length; -- (function () { return x_16 + y + a; }); -- (function () { return x_16 + y + a; }); -- }; -- var arguments_18 = arguments; - while (1 === 1) { -- _loop_18(); -+ const x = 1, y = 1; -+ const a = arguments.length; -+ (function () { return x + y + a; }); -+ (() => x + y + a); - } - } - function foo7_c(x) { -- var _loop_19 = function () { -- var x_17 = 1, y = 1; -- var a = arguments_19.length; -- (function () { return x_17 + y + a; }); -- (function () { return x_17 + y + a; }); -- }; -- var arguments_19 = arguments; - do { -- _loop_19(); -+ const x = 1, y = 1; -+ const a = arguments.length; -+ (function () { return x + y + a; }); -+ (() => x + y + a); - } while (1 === 1); - } - function foo8_c(x) { -- var _loop_20 = function (y) { -- var x_18 = 1; -- var a = arguments_20.length; -- (function () { return x_18 + y + a; }); -- (function () { return x_18 + y + a; }); -- }; -- var arguments_20 = arguments; -- for (var y = 0; y < 1;) { -- _loop_20(y); -+ for (const y = 0; y < 1;) { -+ const x = 1; -+ const a = arguments.length; -+ (function () { return x + y + a; }); -+ (() => x + y + a); - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop3.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop3.js.diff deleted file mode 100644 index 9cb6d7c2f1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop3.js.diff +++ /dev/null @@ -1,342 +0,0 @@ ---- old.capturedLetConstInLoop3.js -+++ new.capturedLetConstInLoop3.js -@@= skipped -220, +220 lines =@@ - - //// [capturedLetConstInLoop3.js] - function foo0(x) { -- var _loop_1 = function (x_1) { -- v = x_1; -- (function () { return x_1 + v; }); -- (function () { return x_1 + v; }); -- }; -- var v; -- for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x_1 = _a[_i]; -- _loop_1(x_1); -+ for (let x of []) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); - } - use(v); - } - function foo0_1(x) { -- var _loop_2 = function (x_2) { -- v = x_2; -- (function () { return x_2 + v; }); -- (function () { return x_2 + v; }); -- }; -- var v; -- for (var x_2 in []) { -- _loop_2(x_2); -+ for (let x in []) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); - } - use(v); - } - function foo1(x) { -- var _loop_3 = function (x_3) { -- v = x_3; -- (function () { return x_3 + v; }); -- (function () { return x_3 + v; }); -- }; -- var v; -- for (var x_3 = 0; x_3 < 1; ++x_3) { -- _loop_3(x_3); -+ for (let x = 0; x < 1; ++x) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); - } - use(v); - } - function foo2(x) { -- var _loop_4 = function () { -- var x_4 = 1; -- v = x_4; -- (function () { return x_4 + v; }); -- (function () { return x_4 + v; }); -- }; -- var v; - while (1 === 1) { -- _loop_4(); -+ let x = 1; -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); - } - use(v); - } - function foo3(x) { -- var _loop_5 = function () { -- var x_5; -- (function () { return x_5 + v; }); -- (function () { return x_5 + v; }); -- }; -- var v; - do { -- _loop_5(); -+ let x; -+ var v; -+ (function () { return x + v; }); -+ (() => x + v); - } while (1 === 1); - use(v); - } - function foo4(x) { -- var _loop_6 = function (y) { -- v = y; -- var x_6 = 1; -- (function () { return x_6 + v; }); -- (function () { return x_6 + v; }); -- }; -- var v; -- for (var y = 0; y < 1; ++y) { -- _loop_6(y); -+ for (let y = 0; y < 1; ++y) { -+ var v = y; -+ let x = 1; -+ (function () { return x + v; }); -+ (() => x + v); - } - use(v); - } - function foo5(x) { -- var _loop_7 = function (x_7, y) { -- v = x_7; -- (function () { return x_7 + y + v; }); -- (function () { return x_7 + y + v; }); -- }; -- var v; -- for (var x_7 = 0, y = 1; x_7 < 1; ++x_7) { -- _loop_7(x_7, y); -+ for (let x = 0, y = 1; x < 1; ++x) { -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); - } - use(v); - } - function foo6(x) { -- var _loop_8 = function () { -- var x_8, y; -- v = x_8; -- (function () { return x_8 + y + v; }); -- (function () { return x_8 + y + v; }); -- }; -- var v; - while (1 === 1) { -- _loop_8(); -+ let x, y; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); - } - use(v); - } - function foo7(x) { -- var _loop_9 = function () { -- var x_9, y; -- v = x_9; -- (function () { return x_9 + y + v; }); -- (function () { return x_9 + y + v; }); -- }; -- var v; - do { -- _loop_9(); -+ let x, y; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); - } while (1 === 1); - use(v); - } - function foo8(x) { -- var _loop_10 = function (y) { -- var x_10 = 1; -- v = x_10; -- (function () { return x_10 + y + v; }); -- (function () { return x_10 + y + v; }); -- }; -- var v; -- for (var y = 0; y < 1; ++y) { -- _loop_10(y); -+ for (let y = 0; y < 1; ++y) { -+ let x = 1; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); - } - use(v); - } - //===const - function foo0_c(x) { -- var _loop_11 = function (x_11) { -- v = x_11; -- (function () { return x_11 + v; }); -- (function () { return x_11 + v; }); -- }; -- var v; -- for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x_11 = _a[_i]; -- _loop_11(x_11); -+ for (const x of []) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); - } - use(v); - } - function foo0_1_c(x) { -- var _loop_12 = function (x_12) { -- v = x_12; -- (function () { return x_12 + v; }); -- (function () { return x_12 + v; }); -- }; -- var v; -- for (var x_12 in []) { -- _loop_12(x_12); -+ for (const x in []) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); - } - use(v); - } - function foo1_c(x) { -- var _loop_13 = function (x_13) { -- v = x_13; -- (function () { return x_13 + v; }); -- (function () { return x_13 + v; }); -- }; -- var v; -- for (var x_13 = 0; x_13 < 1;) { -- _loop_13(x_13); -+ for (const x = 0; x < 1;) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); - } - use(v); - } - function foo2_c(x) { -- var _loop_14 = function () { -- var x_14 = 1; -- v = x_14; -- (function () { return x_14 + v; }); -- (function () { return x_14 + v; }); -- }; -- var v; - while (1 === 1) { -- _loop_14(); -+ const x = 1; -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); - } - use(v); - } - function foo3_c(x) { -- var _loop_15 = function () { -- var x_15 = 1; -- (function () { return x_15 + v; }); -- (function () { return x_15 + v; }); -- }; -- var v; - do { -- _loop_15(); -+ const x = 1; -+ var v; -+ (function () { return x + v; }); -+ (() => x + v); - } while (1 === 1); - use(v); - } - function foo4_c(x) { -- var _loop_16 = function (y) { -- v = y; -- var x_16 = 1; -- (function () { return x_16 + v; }); -- (function () { return x_16 + v; }); -- }; -- var v; -- for (var y = 0; y < 1;) { -- _loop_16(y); -+ for (const y = 0; y < 1;) { -+ var v = y; -+ const x = 1; -+ (function () { return x + v; }); -+ (() => x + v); - } - use(v); - } - function foo5_c(x) { -- var _loop_17 = function (x_17, y) { -- v = x_17; -- (function () { return x_17 + y + v; }); -- (function () { return x_17 + y + v; }); -- }; -- var v; -- for (var x_17 = 0, y = 1; x_17 < 1;) { -- _loop_17(x_17, y); -+ for (const x = 0, y = 1; x < 1;) { -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); - } - use(v); - } - function foo6_c(x) { -- var _loop_18 = function () { -- var x_18 = 1, y = 1; -- v = x_18; -- (function () { return x_18 + y + v; }); -- (function () { return x_18 + y + v; }); -- }; -- var v; - while (1 === 1) { -- _loop_18(); -+ const x = 1, y = 1; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); - } - use(v); - } - function foo7_c(x) { -- var _loop_19 = function () { -- var x_19 = 1, y = 1; -- v = x_19; -- (function () { return x_19 + y + v; }); -- (function () { return x_19 + y + v; }); -- }; -- var v; - do { -- _loop_19(); -+ const x = 1, y = 1; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); - } while (1 === 1); - use(v); - } - function foo8_c(x) { -- var _loop_20 = function (y) { -- var x_20 = 1; -- v = x_20; -- (function () { return x_20 + y + v; }); -- (function () { return x_20 + y + v; }); -- }; -- var v; -- for (var y = 0; y < 1;) { -- _loop_20(y); -+ for (const y = 0; y < 1;) { -+ const x = 1; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); - } - use(v); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop4.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop4.js.diff index ed4922c5d2..2f81187dd4 100644 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop4.js.diff @@ -21,179 +21,117 @@ - return { - setters: [], - execute: function () { -- var _loop_1 = function (x) { +- for (let x of []) { - v0 = x; - (function () { return x + v0; }); -- (function () { return x; }); -- }; -- for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x = _a[_i]; -- _loop_1(x); +- (() => x); - } -- var _loop_2 = function (x) { +- for (let x in []) { - v00 = x; - (function () { return x + v00; }); -- (function () { return x; }); -- }; -- for (var x in []) { -- _loop_2(x); +- (() => x); - } -- var _loop_3 = function (x) { +- for (let x = 0; x < 1; ++x) { - v1 = x; - (function () { return x + v1; }); -- (function () { return x; }); -- }; -- for (var x = 0; x < 1; ++x) { -- _loop_3(x); +- (() => x); - } -- var _loop_4 = function () { -- var x; +- while (1 === 1) { +- let x; - v2 = x; - (function () { return x + v2; }); -- (function () { return x; }); -- }; -- while (1 === 1) { -- _loop_4(); +- (() => x); - } -- var _loop_5 = function () { -- var x; +- do { +- let x; - v3 = x; - (function () { return x + v3; }); -- (function () { return x; }); -- }; -- do { -- _loop_5(); +- (() => x); - } while (1 === 1); -- var _loop_6 = function (y) { -- var x = 1; +- for (let y = 0; y < 1; ++y) { +- let x = 1; - v4 = x; - (function () { return x + v4; }); -- (function () { return x; }); -- }; -- for (var y = 0; y < 1; ++y) { -- _loop_6(y); +- (() => x); - } -- var _loop_7 = function (x, y) { +- for (let x = 0, y = 1; x < 1; ++x) { - v5 = x; - (function () { return x + y + v5; }); -- (function () { return x + y; }); -- }; -- for (var x = 0, y = 1; x < 1; ++x) { -- _loop_7(x, y); +- (() => x + y); - } -- var _loop_8 = function () { -- var x, y; +- while (1 === 1) { +- let x, y; - v6 = x; - (function () { return x + y + v6; }); -- (function () { return x + y; }); -- }; -- while (1 === 1) { -- _loop_8(); +- (() => x + y); - } -- var _loop_9 = function () { -- var x, y; +- do { +- let x, y; - v7 = x; - (function () { return x + y + v7; }); -- (function () { return x + y; }); -- }; -- do { -- _loop_9(); +- (() => x + y); - } while (1 === 1); -- var _loop_10 = function (y) { -- var x = 1; +- for (let y = 0; y < 1; ++y) { +- let x = 1; - v8 = x; - (function () { return x + y + v8; }); -- (function () { return x + y; }); -- }; -- for (var y = 0; y < 1; ++y) { -- _loop_10(y); +- (() => x + y); - } -- var _loop_11 = function (x) { +- for (const x of []) { - v0_c = x; - (function () { return x + v0_c; }); -- (function () { return x; }); -- }; -- for (var _b = 0, _c = []; _b < _c.length; _b++) { -- var x = _c[_b]; -- _loop_11(x); +- (() => x); - } -- var _loop_12 = function (x) { +- for (const x in []) { - v00_c = x; - (function () { return x + v00; }); -- (function () { return x; }); -- }; -- for (var x in []) { -- _loop_12(x); +- (() => x); - } -- var _loop_13 = function (x) { +- for (const x = 0; x < 1;) { - v1_c = x; - (function () { return x + v1_c; }); -- (function () { return x; }); -- }; -- for (var x = 0; x < 1;) { -- _loop_13(x); +- (() => x); - } -- var _loop_14 = function () { -- var x = 1; +- while (1 === 1) { +- const x = 1; - v2_c = x; - (function () { return x + v2_c; }); -- (function () { return x; }); -- }; -- while (1 === 1) { -- _loop_14(); +- (() => x); - } -- var _loop_15 = function () { -- var x = 1; +- do { +- const x = 1; - v3_c = x; - (function () { return x + v3_c; }); -- (function () { return x; }); -- }; -- do { -- _loop_15(); +- (() => x); - } while (1 === 1); -- var _loop_16 = function (y) { -- var x = 1; +- for (const y = 0; y < 1;) { +- const x = 1; - v4_c = x; - (function () { return x + v4_c; }); -- (function () { return x; }); -- }; -- for (var y = 0; y < 1;) { -- _loop_16(y); +- (() => x); - } -- var _loop_17 = function (x, y) { +- for (const x = 0, y = 1; x < 1;) { - v5_c = x; - (function () { return x + y + v5_c; }); -- (function () { return x + y; }); -- }; -- for (var x = 0, y = 1; x < 1;) { -- _loop_17(x, y); +- (() => x + y); - } -- var _loop_18 = function () { -- var x = 1, y = 1; +- while (1 === 1) { +- const x = 1, y = 1; - v6_c = x; - (function () { return x + y + v6_c; }); -- (function () { return x + y; }); -- }; -- while (1 === 1) { -- _loop_18(); +- (() => x + y); - } -- var _loop_19 = function () { -- var x = 1, y = 1; +- do { +- const x = 1, y = 1; - v7_c = x; - (function () { return x + y + v7_c; }); -- (function () { return x + y; }); -- }; -- do { -- _loop_19(); +- (() => x + y); - } while (1 === 1); -- var _loop_20 = function (y) { -- var x = 1; +- for (const y = 0; y < 1;) { +- const x = 1; - v8_c = x; - (function () { return x + y + v8_c; }); -- (function () { return x + y; }); -- }; -- for (var y = 0; y < 1;) { -- _loop_20(y); +- (() => x + y); - } - } - }; diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop5.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop5.js.diff deleted file mode 100644 index c9a72a9db7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop5.js.diff +++ /dev/null @@ -1,491 +0,0 @@ ---- old.capturedLetConstInLoop5.js -+++ new.capturedLetConstInLoop5.js -@@= skipped -283, +283 lines =@@ - //// [capturedLetConstInLoop5.js] - //====let - function foo0(x) { -- var _loop_1 = function (x_1) { -- v = x_1; -- (function () { return x_1 + v; }); -- (function () { return x_1 + v; }); -- if (x_1 == 1) { -- return { value: void 0 }; -+ for (let x of []) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == 1) { -+ return; - } -- }; -- var v; -- for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x_1 = _a[_i]; -- var state_1 = _loop_1(x_1); -- if (typeof state_1 === "object") -- return state_1.value; - } - use(v); - } - function foo00(x) { -- var _loop_2 = function (x_2) { -- v = x_2; -- (function () { return x_2 + v; }); -- (function () { return x_2 + v; }); -- if (x_2 == "1") { -- return { value: void 0 }; -+ for (let x in []) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == "1") { -+ return; - } -- }; -- var v; -- for (var x_2 in []) { -- var state_2 = _loop_2(x_2); -- if (typeof state_2 === "object") -- return state_2.value; - } - use(v); - } - function foo1(x) { -- var _loop_3 = function (x_3) { -- v = x_3; -- (function () { return x_3 + v; }); -- (function () { return x_3 + v; }); -- if (x_3 == 1) { -- return { value: void 0 }; -+ for (let x = 0; x < 1; ++x) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == 1) { -+ return; - } -- }; -- var v; -- for (var x_3 = 0; x_3 < 1; ++x_3) { -- var state_3 = _loop_3(x_3); -- if (typeof state_3 === "object") -- return state_3.value; - } - use(v); - } - function foo2(x) { -- var _loop_4 = function () { -- var x_4 = 1; -- v = x_4; -- (function () { return x_4 + v; }); -- (function () { return x_4 + v; }); -- if (x_4 == 1) { -- return { value: void 0 }; -- } -- }; -- var v; - while (1 === 1) { -- var state_4 = _loop_4(); -- if (typeof state_4 === "object") -- return state_4.value; -+ let x = 1; -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == 1) { -+ return; -+ } - } - use(v); - } - function foo3(x) { -- var _loop_5 = function () { -- var x_5; -- (function () { return x_5 + v; }); -- (function () { return x_5 + v; }); -- if (x_5 == 1) { -- return { value: void 0 }; -- } -- }; -- var v; - do { -- var state_5 = _loop_5(); -- if (typeof state_5 === "object") -- return state_5.value; -+ let x; -+ var v; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == 1) { -+ return; -+ } - } while (1 === 1); - use(v); - } - function foo4(x) { -- var _loop_6 = function (y) { -- v = y; -- var x_6 = 1; -- (function () { return x_6 + v; }); -- (function () { return x_6 + v; }); -- if (x_6 == 1) { -- return { value: void 0 }; -+ for (let y = 0; y < 1; ++y) { -+ var v = y; -+ let x = 1; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == 1) { -+ return; - } -- }; -- var v; -- for (var y = 0; y < 1; ++y) { -- var state_6 = _loop_6(y); -- if (typeof state_6 === "object") -- return state_6.value; - } - use(v); - } - function foo5(x) { -- var _loop_7 = function (x_7, y) { -- v = x_7; -- (function () { return x_7 + y + v; }); -- (function () { return x_7 + y + v; }); -- if (x_7 == 1) { -- return { value: void 0 }; -+ for (let x = 0, y = 1; x < 1; ++x) { -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); -+ if (x == 1) { -+ return; - } -- }; -- var v; -- for (var x_7 = 0, y = 1; x_7 < 1; ++x_7) { -- var state_7 = _loop_7(x_7, y); -- if (typeof state_7 === "object") -- return state_7.value; - } - use(v); - } - function foo6(x) { -- var _loop_8 = function () { -- var x_8, y; -- v = x_8; -- (function () { return x_8 + y + v; }); -- (function () { return x_8 + y + v; }); -- if (x_8 == 1) { -- return { value: void 0 }; -- } -- }; -- var v; - while (1 === 1) { -- var state_8 = _loop_8(); -- if (typeof state_8 === "object") -- return state_8.value; -+ let x, y; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); -+ if (x == 1) { -+ return; -+ } - } - ; - use(v); - } - function foo7(x) { -- var _loop_9 = function () { -- var x_9, y; -- v = x_9; -- (function () { return x_9 + y + v; }); -- (function () { return x_9 + y + v; }); -- if (x_9 == 1) { -- return { value: void 0 }; -- } -- }; -- var v; - do { -- var state_9 = _loop_9(); -- if (typeof state_9 === "object") -- return state_9.value; -+ let x, y; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); -+ if (x == 1) { -+ return; -+ } - } while (1 === 1); - use(v); - } - function foo8(x) { -- var _loop_10 = function (y) { -- var x_10 = 1; -- v = x_10; -- (function () { return x_10 + y + v; }); -- (function () { return x_10 + y + v; }); -- if (x_10 == 1) { -- return { value: void 0 }; -+ for (let y = 0; y < 1; ++y) { -+ let x = 1; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); -+ if (x == 1) { -+ return; - } -- }; -- var v; -- for (var y = 0; y < 1; ++y) { -- var state_10 = _loop_10(y); -- if (typeof state_10 === "object") -- return state_10.value; - } - use(v); - } - //====const - function foo0_c(x) { -- var _loop_11 = function (x_11) { -- v = x_11; -- (function () { return x_11 + v; }); -- (function () { return x_11 + v; }); -- if (x_11 == 1) { -- return { value: void 0 }; -+ for (const x of []) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == 1) { -+ return; - } -- }; -- var v; -- for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x_11 = _a[_i]; -- var state_11 = _loop_11(x_11); -- if (typeof state_11 === "object") -- return state_11.value; - } - use(v); - } - function foo00_c(x) { -- var _loop_12 = function (x_12) { -- v = x_12; -- (function () { return x_12 + v; }); -- (function () { return x_12 + v; }); -- if (x_12 == "1") { -- return { value: void 0 }; -+ for (const x in []) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == "1") { -+ return; - } -- }; -- var v; -- for (var x_12 in []) { -- var state_12 = _loop_12(x_12); -- if (typeof state_12 === "object") -- return state_12.value; - } - use(v); - } - function foo1_c(x) { -- var _loop_13 = function (x_13) { -- v = x_13; -- (function () { return x_13 + v; }); -- (function () { return x_13 + v; }); -- if (x_13 == 1) { -- return { value: void 0 }; -+ for (const x = 0; x < 1;) { -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == 1) { -+ return; - } -- }; -- var v; -- for (var x_13 = 0; x_13 < 1;) { -- var state_13 = _loop_13(x_13); -- if (typeof state_13 === "object") -- return state_13.value; - } - use(v); - } - function foo2_c(x) { -- var _loop_14 = function () { -- var x_14 = 1; -- v = x_14; -- (function () { return x_14 + v; }); -- (function () { return x_14 + v; }); -- if (x_14 == 1) { -- return { value: void 0 }; -- } -- }; -- var v; - while (1 === 1) { -- var state_14 = _loop_14(); -- if (typeof state_14 === "object") -- return state_14.value; -+ const x = 1; -+ var v = x; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == 1) { -+ return; -+ } - } - use(v); - } - function foo3_c(x) { -- var _loop_15 = function () { -- var x_15 = 1; -- (function () { return x_15 + v; }); -- (function () { return x_15 + v; }); -- if (x_15 == 1) { -- return { value: void 0 }; -- } -- }; -- var v; - do { -- var state_15 = _loop_15(); -- if (typeof state_15 === "object") -- return state_15.value; -+ const x = 1; -+ var v; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == 1) { -+ return; -+ } - } while (1 === 1); - use(v); - } - function foo4_c(x) { -- var _loop_16 = function (y) { -- v = y; -- var x_16 = 1; -- (function () { return x_16 + v; }); -- (function () { return x_16 + v; }); -- if (x_16 == 1) { -- return { value: void 0 }; -+ for (const y = 0; y < 1;) { -+ var v = y; -+ let x = 1; -+ (function () { return x + v; }); -+ (() => x + v); -+ if (x == 1) { -+ return; - } -- }; -- var v; -- for (var y = 0; y < 1;) { -- var state_16 = _loop_16(y); -- if (typeof state_16 === "object") -- return state_16.value; - } - use(v); - } - function foo5_c(x) { -- var _loop_17 = function (x_17, y) { -- v = x_17; -- (function () { return x_17 + y + v; }); -- (function () { return x_17 + y + v; }); -- if (x_17 == 1) { -- return { value: void 0 }; -+ for (const x = 0, y = 1; x < 1;) { -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); -+ if (x == 1) { -+ return; - } -- }; -- var v; -- for (var x_17 = 0, y = 1; x_17 < 1;) { -- var state_17 = _loop_17(x_17, y); -- if (typeof state_17 === "object") -- return state_17.value; - } - use(v); - } - function foo6_c(x) { -- var _loop_18 = function () { -- var x_18 = 1, y = 1; -- v = x_18; -- (function () { return x_18 + y + v; }); -- (function () { return x_18 + y + v; }); -- if (x_18 == 1) { -- return { value: void 0 }; -- } -- }; -- var v; - while (1 === 1) { -- var state_18 = _loop_18(); -- if (typeof state_18 === "object") -- return state_18.value; -+ const x = 1, y = 1; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); -+ if (x == 1) { -+ return; -+ } - } - use(v); - } - function foo7_c(x) { -- var _loop_19 = function () { -- var x_19 = 1, y = 1; -- v = x_19; -- (function () { return x_19 + y + v; }); -- (function () { return x_19 + y + v; }); -- if (x_19 == 1) { -- return { value: void 0 }; -- } -- }; -- var v; - do { -- var state_19 = _loop_19(); -- if (typeof state_19 === "object") -- return state_19.value; -+ const x = 1, y = 1; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); -+ if (x == 1) { -+ return; -+ } - } while (1 === 1); - use(v); - } - function foo8_c(x) { -- var _loop_20 = function (y) { -- var x_20 = 1; -- v = x_20; -- (function () { return x_20 + y + v; }); -- (function () { return x_20 + y + v; }); -- if (x_20 == 1) { -- return { value: void 0 }; -+ for (const y = 0; y < 1;) { -+ const x = 1; -+ var v = x; -+ (function () { return x + y + v; }); -+ (() => x + y + v); -+ if (x == 1) { -+ return; - } -- }; -- var v; -- for (var y = 0; y < 1;) { -- var state_20 = _loop_20(y); -- if (typeof state_20 === "object") -- return state_20.value; - } - use(v); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop6.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop6.js.diff deleted file mode 100644 index 53b5db8206..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop6.js.diff +++ /dev/null @@ -1,523 +0,0 @@ ---- old.capturedLetConstInLoop6.js -+++ new.capturedLetConstInLoop6.js -@@= skipped -240, +240 lines =@@ - - - //// [capturedLetConstInLoop6.js] --var _loop_1 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; - // ====let --for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x = _a[_i]; -- var state_1 = _loop_1(x); -- if (state_1 === "break") -+for (let x of []) { -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { - break; -+ } -+ if (x == 2) { -+ continue; -+ } - } --var _loop_2 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -+for (let x in []) { -+ (function () { return x; }); -+ (() => x); - if (x == "1") { -- return "break"; -+ break; - } - if (x == "2") { -- return "continue"; -- } --}; --for (var x in []) { -- var state_2 = _loop_2(x); -- if (state_2 === "break") -- break; --} --var _loop_3 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --for (var x = 0; x < 1; ++x) { -- var state_3 = _loop_3(x); -- if (state_3 === "break") -- break; --} --var _loop_4 = function () { -- var x; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --while (1 === 1) { -- var state_4 = _loop_4(); -- if (state_4 === "break") -- break; --} --var _loop_5 = function () { -- var x; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --do { -- var state_5 = _loop_5(); -- if (state_5 === "break") -- break; --} while (1 === 1); --var _loop_6 = function (y) { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --for (var y = 0; y < 1; ++y) { -- var state_6 = _loop_6(y); -- if (state_6 === "break") -- break; --} --var _loop_7 = function (x, y) { -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --for (var x = 0, y = 1; x < 1; ++x) { -- var state_7 = _loop_7(x, y); -- if (state_7 === "break") -- break; --} --var _loop_8 = function () { -- var x, y; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --while (1 === 1) { -- var state_8 = _loop_8(); -- if (state_8 === "break") -- break; --} --var _loop_9 = function () { -- var x, y; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --do { -- var state_9 = _loop_9(); -- if (state_9 === "break") -- break; --} while (1 === 1); --var _loop_10 = function (y) { -- var x = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --for (var y = 0; y < 1; ++y) { -- var state_10 = _loop_10(y); -- if (state_10 === "break") -- break; --} --var _loop_11 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; -+ continue; -+ } -+} -+for (let x = 0; x < 1; ++x) { -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} -+while (1 === 1) { -+ let x; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} -+do { -+ let x; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} while (1 === 1); -+for (let y = 0; y < 1; ++y) { -+ let x = 1; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} -+for (let x = 0, y = 1; x < 1; ++x) { -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} -+while (1 === 1) { -+ let x, y; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} -+do { -+ let x, y; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} while (1 === 1); -+for (let y = 0; y < 1; ++y) { -+ let x = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} - // ====const --for (var _b = 0, _c = []; _b < _c.length; _b++) { -- var x = _c[_b]; -- var state_11 = _loop_11(x); -- if (state_11 === "break") -+for (const x of []) { -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { - break; -+ } -+ if (x == 2) { -+ continue; -+ } - } --var _loop_12 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -+for (const x in []) { -+ (function () { return x; }); -+ (() => x); - if (x == "1") { -- return "break"; -+ break; - } - if (x == "2") { -- return "continue"; -- } --}; --for (var x in []) { -- var state_12 = _loop_12(x); -- if (state_12 === "break") -- break; --} --var _loop_13 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --for (var x = 0; x < 1;) { -- var state_13 = _loop_13(x); -- if (state_13 === "break") -- break; --} --var _loop_14 = function () { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --while (1 === 1) { -- var state_14 = _loop_14(); -- if (state_14 === "break") -- break; --} --var _loop_15 = function () { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --do { -- var state_15 = _loop_15(); -- if (state_15 === "break") -- break; --} while (1 === 1); --var _loop_16 = function (y) { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --for (var y = 0; y < 1;) { -- var state_16 = _loop_16(y); -- if (state_16 === "break") -- break; --} --var _loop_17 = function (x, y) { -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --for (var x = 0, y = 1; x < 1;) { -- var state_17 = _loop_17(x, y); -- if (state_17 === "break") -- break; --} --var _loop_18 = function () { -- var x = 1, y = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --while (1 === 1) { -- var state_18 = _loop_18(); -- if (state_18 === "break") -- break; --} --var _loop_19 = function () { -- var x = 1, y = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --do { -- var state_19 = _loop_19(); -- if (state_19 === "break") -- break; --} while (1 === 1); --var _loop_20 = function (y) { -- var x = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 2) { -- return "continue"; -- } --}; --for (var y = 0; y < 1;) { -- var state_20 = _loop_20(y); -- if (state_20 === "break") -- break; -+ continue; -+ } -+} -+for (const x = 0; x < 1;) { -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} -+while (1 === 1) { -+ const x = 1; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} -+do { -+ const x = 1; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} while (1 === 1); -+for (const y = 0; y < 1;) { -+ const x = 1; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} -+for (const x = 0, y = 1; x < 1;) { -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} -+while (1 === 1) { -+ const x = 1, y = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} -+do { -+ const x = 1, y = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } -+} while (1 === 1); -+for (const y = 0; y < 1;) { -+ const x = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { -+ break; -+ } -+ if (x == 2) { -+ continue; -+ } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop7.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop7.js.diff deleted file mode 100644 index e90c60b29e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop7.js.diff +++ /dev/null @@ -1,816 +0,0 @@ ---- old.capturedLetConstInLoop7.js -+++ new.capturedLetConstInLoop7.js -@@= skipped -377, +377 lines =@@ - } - - //// [capturedLetConstInLoop7.js] --var _loop_1 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l0"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l0"; -- } --}; - //===let --l0: for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x = _a[_i]; -- var state_1 = _loop_1(x); -- if (state_1 === "break") -- break; -- switch (state_1) { -- case "break-l0": break l0; -- case "continue-l0": continue l0; -- } --} --var _loop_2 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -- if (x == "1") { -- return "break"; -- } -- if (x == "1") { -- return "break-l00"; -- } -- if (x == "2") { -- return "continue"; -- } -- if (x == "2") { -- return "continue-l00"; -- } --}; --l00: for (var x in []) { -- var state_2 = _loop_2(x); -- if (state_2 === "break") -- break; -- switch (state_2) { -- case "break-l00": break l00; -- case "continue-l00": continue l00; -- } --} --var _loop_3 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l1"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l1"; -- } --}; --l1: for (var x = 0; x < 1; ++x) { -- var state_3 = _loop_3(x); -- if (state_3 === "break") -- break; -- switch (state_3) { -- case "break-l1": break l1; -- case "continue-l1": continue l1; -- } --} --var _loop_4 = function () { -- var x; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l2"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l2"; -- } --}; -+l0: for (let x of []) { -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 1) { -+ break l0; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l0; -+ } -+} -+l00: for (let x in []) { -+ (function () { return x; }); -+ (() => x); -+ if (x == "1") { -+ break; -+ } -+ if (x == "1") { -+ break l00; -+ } -+ if (x == "2") { -+ continue; -+ } -+ if (x == "2") { -+ continue l00; -+ } -+} -+l1: for (let x = 0; x < 1; ++x) { -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 1) { -+ break l1; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l1; -+ } -+} - l2: while (1 === 1) { -- var state_4 = _loop_4(); -- if (state_4 === "break") -+ let x; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { - break; -- switch (state_4) { -- case "break-l2": break l2; -- case "continue-l2": continue l2; -+ } -+ if (x == 1) { -+ break l2; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l2; - } - } --var _loop_5 = function () { -- var x; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l3"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l3"; -- } --}; - l3: do { -- var state_5 = _loop_5(); -- if (state_5 === "break") -+ let x; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { - break; -- switch (state_5) { -- case "break-l3": break l3; -- case "continue-l3": continue l3; -+ } -+ if (x == 1) { -+ break l3; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l3; - } - } while (1 === 1); --var _loop_6 = function (y) { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l4"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l4"; -- } --}; --l4: for (var y = 0; y < 1; ++y) { -- var state_6 = _loop_6(y); -- if (state_6 === "break") -- break; -- switch (state_6) { -- case "break-l4": break l4; -- case "continue-l4": continue l4; -- } --} --var _loop_7 = function (x, y) { -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l5"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l5"; -- } --}; --l5: for (var x = 0, y = 1; x < 1; ++x) { -- var state_7 = _loop_7(x, y); -- if (state_7 === "break") -- break; -- switch (state_7) { -- case "break-l5": break l5; -- case "continue-l5": continue l5; -- } --} --var _loop_8 = function () { -- var x, y; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l6"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l6"; -- } --}; -+l4: for (let y = 0; y < 1; ++y) { -+ let x = 1; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 1) { -+ break l4; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l4; -+ } -+} -+l5: for (let x = 0, y = 1; x < 1; ++x) { -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { -+ break; -+ } -+ if (x == 1) { -+ break l5; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l5; -+ } -+} - l6: while (1 === 1) { -- var state_8 = _loop_8(); -- if (state_8 === "break") -+ let x, y; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { - break; -- switch (state_8) { -- case "break-l6": break l6; -- case "continue-l6": continue l6; -+ } -+ if (x == 1) { -+ break l6; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l6; - } - } --var _loop_9 = function () { -- var x, y; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l7"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l7"; -- } --}; - l7: do { -- var state_9 = _loop_9(); -- if (state_9 === "break") -+ let x, y; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { - break; -- switch (state_9) { -- case "break-l7": break l7; -- case "continue-l7": continue l7; -+ } -+ if (x == 1) { -+ break l7; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l7; - } - } while (1 === 1); --var _loop_10 = function (y) { -- var x = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l8"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l8"; -- } --}; --l8: for (var y = 0; y < 1; ++y) { -- var state_10 = _loop_10(y); -- if (state_10 === "break") -+l8: for (let y = 0; y < 1; ++y) { -+ let x = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { - break; -- switch (state_10) { -- case "break-l8": break l8; -- case "continue-l8": continue l8; -+ } -+ if (x == 1) { -+ break l8; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l8; - } - } --var _loop_11 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l0_c"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l0_c"; -- } --}; - //===const --l0_c: for (var _b = 0, _c = []; _b < _c.length; _b++) { -- var x = _c[_b]; -- var state_11 = _loop_11(x); -- if (state_11 === "break") -- break; -- switch (state_11) { -- case "break-l0_c": break l0_c; -- case "continue-l0_c": continue l0_c; -- } --} --var _loop_12 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -- if (x == "1") { -- return "break"; -- } -- if (x == "1") { -- return "break-l00_c"; -- } -- if (x == "2") { -- return "continue"; -- } -- if (x == "2") { -- return "continue-l00_c"; -- } --}; --l00_c: for (var x in []) { -- var state_12 = _loop_12(x); -- if (state_12 === "break") -- break; -- switch (state_12) { -- case "break-l00_c": break l00_c; -- case "continue-l00_c": continue l00_c; -- } --} --var _loop_13 = function (x) { -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l1_c"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l1_c"; -- } --}; --l1_c: for (var x = 0; x < 1;) { -- var state_13 = _loop_13(x); -- if (state_13 === "break") -- break; -- switch (state_13) { -- case "break-l1_c": break l1_c; -- case "continue-l1_c": continue l1_c; -- } --} --var _loop_14 = function () { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l2_c"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l2_c"; -- } --}; -+l0_c: for (const x of []) { -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 1) { -+ break l0_c; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l0_c; -+ } -+} -+l00_c: for (const x in []) { -+ (function () { return x; }); -+ (() => x); -+ if (x == "1") { -+ break; -+ } -+ if (x == "1") { -+ break l00_c; -+ } -+ if (x == "2") { -+ continue; -+ } -+ if (x == "2") { -+ continue l00_c; -+ } -+} -+l1_c: for (const x = 0; x < 1;) { -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 1) { -+ break l1_c; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l1_c; -+ } -+} - l2_c: while (1 === 1) { -- var state_14 = _loop_14(); -- if (state_14 === "break") -+ const x = 1; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { - break; -- switch (state_14) { -- case "break-l2_c": break l2_c; -- case "continue-l2_c": continue l2_c; -+ } -+ if (x == 1) { -+ break l2_c; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l2_c; - } - } --var _loop_15 = function () { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l3_c"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l3_c"; -- } --}; - l3_c: do { -- var state_15 = _loop_15(); -- if (state_15 === "break") -+ const x = 1; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { - break; -- switch (state_15) { -- case "break-l3_c": break l3_c; -- case "continue-l3_c": continue l3_c; -+ } -+ if (x == 1) { -+ break l3_c; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l3_c; - } - } while (1 === 1); --var _loop_16 = function (y) { -- var x = 1; -- (function () { return x; }); -- (function () { return x; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l4_c"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l4_c"; -- } --}; --l4_c: for (var y = 0; y < 1;) { -- var state_16 = _loop_16(y); -- if (state_16 === "break") -- break; -- switch (state_16) { -- case "break-l4_c": break l4_c; -- case "continue-l4_c": continue l4_c; -- } --} --var _loop_17 = function (x, y) { -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l5_c"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l5_c"; -- } --}; --l5_c: for (var x = 0, y = 1; x < 1;) { -- var state_17 = _loop_17(x, y); -- if (state_17 === "break") -- break; -- switch (state_17) { -- case "break-l5_c": break l5_c; -- case "continue-l5_c": continue l5_c; -- } --} --var _loop_18 = function () { -- var x = 1, y = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l6_c"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l6_c"; -- } --}; -+l4_c: for (const y = 0; y < 1;) { -+ const x = 1; -+ (function () { return x; }); -+ (() => x); -+ if (x == 1) { -+ break; -+ } -+ if (x == 1) { -+ break l4_c; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l4_c; -+ } -+} -+l5_c: for (const x = 0, y = 1; x < 1;) { -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { -+ break; -+ } -+ if (x == 1) { -+ break l5_c; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l5_c; -+ } -+} - l6_c: while (1 === 1) { -- var state_18 = _loop_18(); -- if (state_18 === "break") -+ const x = 1, y = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { - break; -- switch (state_18) { -- case "break-l6_c": break l6_c; -- case "continue-l6_c": continue l6_c; -+ } -+ if (x == 1) { -+ break l6_c; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l6_c; - } - } --var _loop_19 = function () { -- var x = 1, y = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l7_c"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l7_c"; -- } --}; - l7_c: do { -- var state_19 = _loop_19(); -- if (state_19 === "break") -+ const x = 1, y = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { - break; -- switch (state_19) { -- case "break-l7_c": break l7_c; -- case "continue-l7_c": continue l7_c; -+ } -+ if (x == 1) { -+ break l7_c; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l7_c; - } - } while (1 === 1); --var _loop_20 = function (y) { -- var x = 1; -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l8_c"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l8_c"; -- } --}; --l8_c: for (var y = 0; y < 1;) { -- var state_20 = _loop_20(y); -- if (state_20 === "break") -+l8_c: for (const y = 0; y < 1;) { -+ const x = 1; -+ (function () { return x + y; }); -+ (() => x + y); -+ if (x == 1) { - break; -- switch (state_20) { -- case "break-l8_c": break l8_c; -- case "continue-l8_c": continue l8_c; -+ } -+ if (x == 1) { -+ break l8_c; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l8_c; - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop8.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop8.js.diff deleted file mode 100644 index 908089a316..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop8.js.diff +++ /dev/null @@ -1,274 +0,0 @@ ---- old.capturedLetConstInLoop8.js -+++ new.capturedLetConstInLoop8.js -@@= skipped -129, +129 lines =@@ - - //// [capturedLetConstInLoop8.js] - function foo() { -- l0: for (var z = 0; z < 1; ++z) { -- var _loop_1 = function (x) { -- var _loop_2 = function (y) { -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (y == 1) { -- return "break"; -- } -- if (y == 1) { -- return "break-l1"; -- } -- if (y == 1) { -- return "break-ll1"; -- } -- if (y == 1) { -- return "continue-l0"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l1"; -- } -- if (x == 2) { -- return "continue-ll1"; -- } -- if (x == 2) { -- return { value: "123" }; -- } -- if (x == 3) { -- return { value: void 0 }; -- } -- }; -- ll1: for (var y = 0; y < 1; ++y) { -- var state_2 = _loop_2(y); -- if (typeof state_2 === "object") -- return state_2; -- if (state_2 === "break") -+ l0: for (let z = 0; z < 1; ++z) { -+ l1: for (let x = 0; x < 1; ++x) { -+ ll1: for (let y = 0; y < 1; ++y) { -+ (function () { return x + y; }); -+ (() => x + y); -+ if (y == 1) { - break; -- switch (state_2) { -- case "break-l1": return state_2; -- case "break-ll1": break ll1; -- case "continue-l0": return state_2; -- case "continue-l1": return state_2; -- case "continue-ll1": continue ll1; -- } -- } -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l1"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l1"; -- } -- if (x == 2) { -- return "continue-l0"; -- } -- if (x == 2) { -- return { value: "456" }; -- } -- if (x == 3) { -- return { value: void 0 }; -- } -- }; -- l1: for (var x = 0; x < 1; ++x) { -- var state_1 = _loop_1(x); -- if (typeof state_1 === "object") -- return state_1.value; -- if (state_1 === "break") -+ } -+ if (y == 1) { -+ break l1; -+ } -+ if (y == 1) { -+ break ll1; -+ } -+ if (y == 1) { -+ continue l0; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l1; -+ } -+ if (x == 2) { -+ continue ll1; -+ } -+ if (x == 2) { -+ return "123"; -+ } -+ if (x == 3) { -+ return; -+ } -+ } -+ if (x == 1) { - break; -- switch (state_1) { -- case "break-l1": break l1; -- case "continue-l0": continue l0; -- case "continue-l1": continue l1; -+ } -+ if (x == 1) { -+ break l1; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l1; -+ } -+ if (x == 2) { -+ continue l0; -+ } -+ if (x == 2) { -+ return "456"; -+ } -+ if (x == 3) { -+ return; - } - } - } - } - function foo_c() { -- l0: for (var z = 0; z < 1;) { -- var _loop_3 = function (x) { -- var _loop_4 = function (y) { -- (function () { return x + y; }); -- (function () { return x + y; }); -- if (y == 1) { -- return "break"; -- } -- if (y == 1) { -- return "break-l1"; -- } -- if (y == 1) { -- return "break-ll1"; -- } -- if (y == 1) { -- return "continue-l0"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l1"; -- } -- if (x == 2) { -- return "continue-ll1"; -- } -- if (x == 2) { -- return { value: "123" }; -- } -- if (x == 3) { -- return { value: void 0 }; -- } -- }; -- ll1: for (var y = 0; y < 1;) { -- var state_4 = _loop_4(y); -- if (typeof state_4 === "object") -- return state_4; -- if (state_4 === "break") -+ l0: for (const z = 0; z < 1;) { -+ l1: for (const x = 0; x < 1;) { -+ ll1: for (const y = 0; y < 1;) { -+ (function () { return x + y; }); -+ (() => x + y); -+ if (y == 1) { - break; -- switch (state_4) { -- case "break-l1": return state_4; -- case "break-ll1": break ll1; -- case "continue-l0": return state_4; -- case "continue-l1": return state_4; -- case "continue-ll1": continue ll1; -- } -- } -- if (x == 1) { -- return "break"; -- } -- if (x == 1) { -- return "break-l1"; -- } -- if (x == 2) { -- return "continue"; -- } -- if (x == 2) { -- return "continue-l1"; -- } -- if (x == 2) { -- return "continue-l0"; -- } -- if (x == 2) { -- return { value: "456" }; -- } -- if (x == 3) { -- return { value: void 0 }; -- } -- }; -- l1: for (var x = 0; x < 1;) { -- var state_3 = _loop_3(x); -- if (typeof state_3 === "object") -- return state_3.value; -- if (state_3 === "break") -+ } -+ if (y == 1) { -+ break l1; -+ } -+ if (y == 1) { -+ break ll1; -+ } -+ if (y == 1) { -+ continue l0; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l1; -+ } -+ if (x == 2) { -+ continue ll1; -+ } -+ if (x == 2) { -+ return "123"; -+ } -+ if (x == 3) { -+ return; -+ } -+ } -+ if (x == 1) { - break; -- switch (state_3) { -- case "break-l1": break l1; -- case "continue-l0": continue l0; -- case "continue-l1": continue l1; -+ } -+ if (x == 1) { -+ break l1; -+ } -+ if (x == 2) { -+ continue; -+ } -+ if (x == 2) { -+ continue l1; -+ } -+ if (x == 2) { -+ continue l0; -+ } -+ if (x == 2) { -+ return "456"; -+ } -+ if (x == 3) { -+ return; - } - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop9.js.diff b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop9.js.diff index d62bf7556c..b4776581f6 100644 --- a/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop9.js.diff +++ b/testdata/baselines/reference/submodule/compiler/capturedLetConstInLoop9.js.diff @@ -1,200 +1,10 @@ --- old.capturedLetConstInLoop9.js +++ new.capturedLetConstInLoop9.js -@@= skipped -140, +140 lines =@@ - } - - //// [capturedLetConstInLoop9.js] --var _loop_1 = function (x) { -- var x_1; -- (function () { return x_1; }); -+for (let x = 0; x < 1; ++x) { -+ let x; -+ (function () { return x; }); - { -- var x_2; -- (function () { return x_2; }); -+ let x; -+ (function () { return x; }); - } - try { } - catch (e) { -- var x_3; -- (function () { return x_3; }); -+ let x; -+ (function () { return x; }); - } -- switch (x_1) { -+ switch (x) { - case 1: -- var x_4; -- (function () { return x_4; }); -+ let x; -+ (function () { return x; }); - break; - } -- var _loop_2 = function () { -- var x_5; -- (function () { return x_5; }); -- }; - while (1 == 1) { -- _loop_2(); -+ let x; -+ (function () { return x; }); - } -- var A = /** @class */ (function () { -- function A() { -+ class A { -+ m() { -+ return x + 1; - } -- A.prototype.m = function () { -- return x_1 + 1; -- }; -- return A; -- }()); --}; --for (var x = 0; x < 1; ++x) { -- _loop_1(x); -+ } - } - function foo() { -- var _loop_3 = function (a) { -- var _b; -+ l0: for (let a of []) { - if (a === 1) { -- return "break"; -+ break; - } - if (a === 2) { -- return "break-l0"; -+ break l0; - } -- for (var _c = 0, _d = []; _c < _d.length; _c++) { -- var b = _d[_c]; -- _b = [{ x: 1, y: 2 }][0], x = _b.x, z = _b.y; -+ for (let b of []) { -+ var [{ x, y: z }] = [{ x: 1, y: 2 }]; - if (b === 1) { - break; - } - if (b === 2) { -- return "break-l0"; -+ break l0; - } - l1: if (b === 3) { - break l1; - } -- return { value: 50 }; -+ return 50; - } -- var _loop_4 = function (b) { -- var _g; -- _g = [{ x1: 1, y: arguments_1.length }][0], x1 = _g.x1, z1 = _g.y; -+ for (let b of []) { -+ var [{ x1, y: z1 }] = [{ x1: 1, y: arguments.length }]; - if (b === 1) { -- return "break"; -- } -- if (b === 2) { -- return "break-l0"; -- } -- (function () { return b; }); -- return { value: 100 }; -- }; -- for (var _e = 0, _f = []; _e < _f.length; _e++) { -- var b = _f[_e]; -- var state_2 = _loop_4(b); -- if (typeof state_2 === "object") -- return state_2; -- if (state_2 === "break") - break; -- switch (state_2) { -- case "break-l0": return state_2; -- } -- } -- (function () { return a; }); -- }; -- var arguments_1 = arguments, x, z, x1, z1; -- l0: for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var a = _a[_i]; -- var state_1 = _loop_3(a); -- if (typeof state_1 === "object") -- return state_1.value; -- if (state_1 === "break") -- break; -- switch (state_1) { -- case "break-l0": break l0; -- } -+ } -+ if (b === 2) { -+ break l0; -+ } -+ () => b; -+ return 100; -+ } -+ () => a; - } - use(x); - use(z); -@@= skipped -103, +68 lines =@@ - use(z1); - } - function foo2() { -- for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var x = _a[_i]; -+ for (let x of []) { - if (x === 1) { - break; - } -@@= skipped -20, +19 lines =@@ - case 1: break; - case 2: continue; - } -- for (var _b = 0, _c = []; _b < _c.length; _b++) { -- var y = _c[_b]; -+ for (let y of []) { - switch (y) { - case 1: break; - case 2: continue; -@@= skipped -9, +8 lines =@@ - } +@@= skipped -236, +236 lines =@@ } } --var C = /** @class */ (function () { -- function C(N) { -+class C { + class C { + N; -+ constructor(N) { + constructor(N) { this.N = N; - } -- C.prototype.foo = function () { -- var _this = this; -- var _loop_5 = function (i) { -- var f = function () { return _this.N * i; }; -- }; -- for (var i = 0; i < 100; i++) { -- _loop_5(i); -+ foo() { -+ for (let i = 0; i < 100; i++) { -+ let f = () => this.N * i; - } -- }; -- return C; --}()); -+ } -+} - function foo3() { -- var x = arguments.length; -- var _loop_6 = function (y) { -- var z = arguments_2.length; -+ let x = arguments.length; -+ for (let y of []) { -+ let z = arguments.length; - (function () { return y + z + arguments.length; }); -- }; -- var arguments_2 = arguments; -- for (var _i = 0, _a = []; _i < _a.length; _i++) { -- var y = _a[_i]; -- _loop_6(y); - } - } \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedParametersInInitializers2.js.diff b/testdata/baselines/reference/submodule/compiler/capturedParametersInInitializers2.js.diff index 1e06052451..e208cc7efa 100644 --- a/testdata/baselines/reference/submodule/compiler/capturedParametersInInitializers2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/capturedParametersInInitializers2.js.diff @@ -8,25 +8,15 @@ - if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; - return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); -}; --function foo(y, x, z) { +-function foo(y = (_a = class { +- get [x]() { return x; } +- constructor() { x; } +- [z]() { return z; } +- }, +- __setFunctionName(_a, "y"), +- _a.c = x, +- _a), x = 1, z = 2) { - var _a; -- if (y === void 0) { y = (_a = /** @class */ (function () { -- function class_1() { -- x; -- } -- Object.defineProperty(class_1.prototype, x, { -- get: function () { return x; }, -- enumerable: false, -- configurable: true -- }); -- class_1.prototype[z] = function () { return z; }; -- return class_1; -- }()), -- __setFunctionName(_a, "y"), -- _a.c = x, -- _a); } -- if (x === void 0) { x = 1; } -- if (z === void 0) { z = 2; } +function foo(y = class { + static c = x; + get [x]() { return x; } @@ -35,17 +25,14 @@ +}, x = 1, z = 2) { y.c; } --function foo2(y, x) { -- var _a, _b; -- if (y === void 0) { y = (_b = /** @class */ (function () { -- function class_2() { -- this[_a] = x; -- } -- return class_2; -- }()), -- _a = x, -- _b); } -- if (x === void 0) { x = 1; } +-function foo2(y = (_a = class { +- constructor() { +- this[_b] = x; +- } +- }, +- _b = x, +- _a), x = 1) { +- var _b, _a; +function foo2(y = class { + [x] = x; +}, x = 1) { diff --git a/testdata/baselines/reference/submodule/compiler/capturedShorthandPropertyAssignmentNoCheck.js.diff b/testdata/baselines/reference/submodule/compiler/capturedShorthandPropertyAssignmentNoCheck.js.diff deleted file mode 100644 index c634ad5f16..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedShorthandPropertyAssignmentNoCheck.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.capturedShorthandPropertyAssignmentNoCheck.js -+++ new.capturedShorthandPropertyAssignmentNoCheck.js -@@= skipped -9, +9 lines =@@ - - - //// [capturedShorthandPropertyAssignmentNoCheck.js] --var fns = []; --var _loop_1 = function (value) { -- fns.push(function () { return ({ value: value }); }); --}; --for (var _i = 0, _a = [1, 2, 3]; _i < _a.length; _i++) { -- var value = _a[_i]; -- _loop_1(value); -+const fns = []; -+for (const value of [1, 2, 3]) { -+ fns.push(() => ({ value })); - } --var result = fns.map(function (fn) { return fn(); }); -+const result = fns.map(fn => fn()); - console.log(result); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/capturedVarInLoop.js.diff b/testdata/baselines/reference/submodule/compiler/capturedVarInLoop.js.diff deleted file mode 100644 index 39557f3638..0000000000 --- a/testdata/baselines/reference/submodule/compiler/capturedVarInLoop.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.capturedVarInLoop.js -+++ new.capturedVarInLoop.js -@@= skipped -7, +7 lines =@@ - } - - //// [capturedVarInLoop.js] --var _loop_1 = function () { -- str = 'x', len = str.length; -- var lambda1 = function (y) { }; -- var lambda2 = function () { return lambda1(len); }; --}; --var str, len; - for (var i = 0; i < 10; i++) { -- _loop_1(); -+ var str = 'x', len = str.length; -+ let lambda1 = (y) => { }; -+ let lambda2 = () => lambda1(len); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/caseInsensitiveFileSystemWithCapsImportTypeDeclarations.js.diff b/testdata/baselines/reference/submodule/compiler/caseInsensitiveFileSystemWithCapsImportTypeDeclarations.js.diff deleted file mode 100644 index c23b2d6a0e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/caseInsensitiveFileSystemWithCapsImportTypeDeclarations.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.caseInsensitiveFileSystemWithCapsImportTypeDeclarations.js -+++ new.caseInsensitiveFileSystemWithCapsImportTypeDeclarations.js -@@= skipped -35, +35 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Broken = void 0; --var Broken = /** @class */ (function () { -- function Broken() { -- } -- Broken.prototype.method = function () { -+class Broken { -+ method() { - return {}; -- }; -- return Broken; --}()); -+ } -+} - exports.Broken = Broken; - diff --git a/testdata/baselines/reference/submodule/compiler/castExpressionParentheses.js.diff b/testdata/baselines/reference/submodule/compiler/castExpressionParentheses.js.diff index 6b6cad1ed3..778d8657c0 100644 --- a/testdata/baselines/reference/submodule/compiler/castExpressionParentheses.js.diff +++ b/testdata/baselines/reference/submodule/compiler/castExpressionParentheses.js.diff @@ -17,14 +17,13 @@ -(typeof A).x; -(-A).x; -new (A()); --(function () { })(); --(function foo() { })(); --(-A).x; +((new A)).foo; +((typeof A)).x; +((-A)).x; +new ((A())); -+(() => { })(); + (() => { })(); +-(function foo() { })(); +-(-A).x; +(function foo() { }()); +((-A)).x; // nested cast, should keep one pair of parenthese diff --git a/testdata/baselines/reference/submodule/compiler/castOfYield.js.diff b/testdata/baselines/reference/submodule/compiler/castOfYield.js.diff deleted file mode 100644 index 7a5889f235..0000000000 --- a/testdata/baselines/reference/submodule/compiler/castOfYield.js.diff +++ /dev/null @@ -1,53 +0,0 @@ ---- old.castOfYield.js -+++ new.castOfYield.js -@@= skipped -8, +8 lines =@@ - - - //// [castOfYield.js] --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; -- } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -- } --}; --function f() { -- return __generator(this, function (_a) { -- switch (_a.label) { -- case 0: return [4 /*yield*/, 0]; -- case 1: -- (_a.sent()); -- // Unlike await, yield is not allowed to appear in a simple unary expression. -- ; -- return [4 /*yield*/, 0]; -- case 2: -- _a.sent(); -- return [2 /*return*/]; -- } -- }); -+function* f() { -+ (yield 0); -+ // Unlike await, yield is not allowed to appear in a simple unary expression. -+ ; -+ yield 0; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/castParentheses.js.diff b/testdata/baselines/reference/submodule/compiler/castParentheses.js.diff index 356ac22ba2..541f0a6c2c 100644 --- a/testdata/baselines/reference/submodule/compiler/castParentheses.js.diff +++ b/testdata/baselines/reference/submodule/compiler/castParentheses.js.diff @@ -1,20 +1,14 @@ --- old.castParentheses.js +++ new.castParentheses.js -@@= skipped -13, +13 lines =@@ - var b = (new a).b +@@= skipped -14, +14 lines =@@ //// [castParentheses.js] --var a = /** @class */ (function () { -- function a() { -- } -- return a; --}()); -+class a { + class a { + static b; -+} + } var b = a; var b = a.b; - var b = a.b.c; +@@= skipped -7, +8 lines =@@ var b = a.b().c; var b = new a; var b = new a.b; diff --git a/testdata/baselines/reference/submodule/compiler/chainedAssignment1.js.diff b/testdata/baselines/reference/submodule/compiler/chainedAssignment1.js.diff index 5a361c2763..f76b677fba 100644 --- a/testdata/baselines/reference/submodule/compiler/chainedAssignment1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/chainedAssignment1.js.diff @@ -1,45 +1,26 @@ --- old.chainedAssignment1.js +++ new.chainedAssignment1.js -@@= skipped -24, +24 lines =@@ - c2 = c3; // Error TS111: Cannot convert Z to Y +@@= skipped -25, +25 lines =@@ //// [chainedAssignment1.js] --var X = /** @class */ (function () { -- function X(z) { -- this.z = z; -- } -- return X; --}()); --var Y = /** @class */ (function () { -- function Y(z) { -- this.z = z; -- } -- return Y; --}()); --var Z = /** @class */ (function () { -- function Z() { -- } -- return Z; --}()); -+class X { + class X { + z; -+ constructor(z) { -+ this.z = z; -+ } + constructor(z) { + this.z = z; + } + a; -+} -+class Y { + } + class Y { + z; -+ constructor(z) { -+ this.z = z; -+ } + constructor(z) { + this.z = z; + } + a; + b; -+} -+class Z { + } + class Z { + z; + c; -+} + } var c1 = new X(3); - var c2 = new Y(5); - var c3 = new Z(); \ No newline at end of file + var c2 = new Y(5); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/chainedAssignment3.js.diff b/testdata/baselines/reference/submodule/compiler/chainedAssignment3.js.diff index d0095ec328..084cba94fd 100644 --- a/testdata/baselines/reference/submodule/compiler/chainedAssignment3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/chainedAssignment3.js.diff @@ -1,42 +1,13 @@ --- old.chainedAssignment3.js +++ new.chainedAssignment3.js -@@= skipped -24, +24 lines =@@ - +@@= skipped -25, +25 lines =@@ //// [chainedAssignment3.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; --}(A)); -+class A { + class A { + id; -+} -+class B extends A { + } + class B extends A { + value; -+} + } var a; - var b; - a = b = null; \ No newline at end of file + var b; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/chainedAssignmentChecking.js.diff b/testdata/baselines/reference/submodule/compiler/chainedAssignmentChecking.js.diff index eba6012db6..6928a19a27 100644 --- a/testdata/baselines/reference/submodule/compiler/chainedAssignmentChecking.js.diff +++ b/testdata/baselines/reference/submodule/compiler/chainedAssignmentChecking.js.diff @@ -1,45 +1,26 @@ --- old.chainedAssignmentChecking.js +++ new.chainedAssignmentChecking.js -@@= skipped -24, +24 lines =@@ - +@@= skipped -25, +25 lines =@@ //// [chainedAssignmentChecking.js] --var X = /** @class */ (function () { -- function X(z) { -- this.z = z; -- } -- return X; --}()); --var Y = /** @class */ (function () { -- function Y(z) { -- this.z = z; -- } -- return Y; --}()); --var Z = /** @class */ (function () { -- function Z() { -- } -- return Z; --}()); -+class X { + class X { + z; -+ constructor(z) { -+ this.z = z; -+ } + constructor(z) { + this.z = z; + } + a; -+} -+class Y { + } + class Y { + z; -+ constructor(z) { -+ this.z = z; -+ } + constructor(z) { + this.z = z; + } + a; + b; -+} -+class Z { + } + class Z { + z; + c; -+} + } var c1 = new X(3); - var c2 = new Y(5); - var c3 = new Z(); \ No newline at end of file + var c2 = new Y(5); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js.diff b/testdata/baselines/reference/submodule/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js.diff index c4e7c63d1b..7259b18760 100644 --- a/testdata/baselines/reference/submodule/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js.diff +++ b/testdata/baselines/reference/submodule/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js.diff @@ -1,67 +1,24 @@ --- old.chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js +++ new.chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js -@@= skipped -21, +21 lines =@@ - (new Chain(new A)).then(a => new B).then(b => new C).then(c => new B).then(b => new A); +@@= skipped -22, +22 lines =@@ //// [chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Chain = /** @class */ (function () { -- function Chain(value) { -+class Chain { + class Chain { + value; -+ constructor(value) { + constructor(value) { this.value = value; } -- Chain.prototype.then = function (cb) { -+ then(cb) { - return null; -- }; -- return Chain; --}()); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; --}(A)); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C; --}(B)); -+ } -+} -+class A { +@@= skipped -8, +9 lines =@@ + } + } + class A { + x; -+} -+class B extends A { + } + class B extends A { + y; -+} -+class C extends B { + } + class C extends B { + z; -+} + } // Ok to go down the chain, but error to try to climb back up --(new Chain(new A)).then(function (a) { return new B; }).then(function (b) { return new C; }).then(function (c) { return new B; }).then(function (b) { return new A; }); -+(new Chain(new A)).then(a => new B).then(b => new C).then(c => new B).then(b => new A); \ No newline at end of file + (new Chain(new A)).then(a => new B).then(b => new C).then(c => new B).then(b => new A); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js.diff b/testdata/baselines/reference/submodule/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js.diff index 4f3bcb0679..16ebb97403 100644 --- a/testdata/baselines/reference/submodule/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js.diff @@ -1,62 +1,18 @@ --- old.chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js +++ new.chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js -@@= skipped -43, +43 lines =@@ - } +@@= skipped -44, +44 lines =@@ //// [chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.js] --var Chain = /** @class */ (function () { -- function Chain(value) { -+class Chain { + class Chain { + value; -+ constructor(value) { + constructor(value) { this.value = value; } -- Chain.prototype.then = function (cb) { -+ then(cb) { - var t; - var s; - // Ok to go down the chain, but error to climb up the chain -- (new Chain(t)).then(function (tt) { return s; }).then(function (ss) { return t; }); -+ (new Chain(t)).then(tt => s).then(ss => t); - // But error to try to climb up the chain -- (new Chain(s)).then(function (ss) { return t; }); -+ (new Chain(s)).then(ss => t); - // Staying at T or S should be fine -- (new Chain(t)).then(function (tt) { return t; }).then(function (tt) { return t; }).then(function (tt) { return t; }); -- (new Chain(s)).then(function (ss) { return s; }).then(function (ss) { return s; }).then(function (ss) { return s; }); -+ (new Chain(t)).then(tt => t).then(tt => t).then(tt => t); -+ (new Chain(s)).then(ss => s).then(ss => s).then(ss => s); - return null; -- }; -- return Chain; --}()); --var Chain2 = /** @class */ (function () { -- function Chain2(value) { -+ } -+} -+class Chain2 { +@@= skipped -17, +18 lines =@@ + } + } + class Chain2 { + value; -+ constructor(value) { + constructor(value) { this.value = value; - } -- Chain2.prototype.then = function (cb) { -+ then(cb) { - var i; - var t; - var s; - // Ok to go down the chain, check the constraint at the end. - // Should get an error that we are assigning a string to a number -- (new Chain2(i)).then(function (ii) { return t; }).then(function (tt) { return s; }).value.x = ""; -+ (new Chain2(i)).then(ii => t).then(tt => s).value.x = ""; - // Staying at T or S should keep the constraint. - // Get an error when we assign a string to a number in both cases -- (new Chain2(i)).then(function (ii) { return t; }).then(function (tt) { return t; }).then(function (tt) { return t; }).then(function (tt) { return t; }).value.x = ""; -- (new Chain2(i)).then(function (ii) { return s; }).then(function (ss) { return s; }).then(function (ss) { return s; }).then(function (ss) { return s; }).value.x = ""; -+ (new Chain2(i)).then(ii => t).then(tt => t).then(tt => t).then(tt => t).value.x = ""; -+ (new Chain2(i)).then(ii => s).then(ss => s).then(ss => s).then(ss => s).value.x = ""; - return null; -- }; -- return Chain2; --}()); -+ } -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/chainedSpecializationToObjectTypeLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/chainedSpecializationToObjectTypeLiteral.js.diff deleted file mode 100644 index 0534f9645b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/chainedSpecializationToObjectTypeLiteral.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.chainedSpecializationToObjectTypeLiteral.js -+++ new.chainedSpecializationToObjectTypeLiteral.js -@@= skipped -14, +14 lines =@@ - - //// [chainedSpecializationToObjectTypeLiteral.js] - var s; --var s2 = s.groupBy(function (s) { return s.length; }); --var s3 = s2.each(function (x) { x.key; /* Type is K, should be number */ }); -+var s2 = s.groupBy(s => s.length); -+var s3 = s2.each(x => { x.key; /* Type is K, should be number */ }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkForObjectTooStrict.js.diff b/testdata/baselines/reference/submodule/compiler/checkForObjectTooStrict.js.diff deleted file mode 100644 index 7cdc03a417..0000000000 --- a/testdata/baselines/reference/submodule/compiler/checkForObjectTooStrict.js.diff +++ /dev/null @@ -1,56 +0,0 @@ ---- old.checkForObjectTooStrict.js -+++ new.checkForObjectTooStrict.js -@@= skipped -33, +33 lines =@@ - - - //// [checkForObjectTooStrict.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - var Foo; - (function (Foo) { -- var Object = /** @class */ (function () { -- function Object() { -- } -- return Object; -- }()); -+ class Object { -+ } - Foo.Object = Object; - })(Foo || (Foo = {})); --var Bar = /** @class */ (function (_super) { -- __extends(Bar, _super); -- function Bar() { -- return _super.call(this) || this; -- } -- return Bar; --}(Foo.Object)); --var Baz = /** @class */ (function (_super) { -- __extends(Baz, _super); -- function Baz() { -- return _super.call(this) || this; -- } -- return Baz; --}(Object)); -+class Bar extends Foo.Object { -+ constructor() { -+ super(); -+ } -+} -+class Baz extends Object { -+ constructor() { -+ super(); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkMergedGlobalUMDSymbol.js.diff b/testdata/baselines/reference/submodule/compiler/checkMergedGlobalUMDSymbol.js.diff deleted file mode 100644 index 7685f2a806..0000000000 --- a/testdata/baselines/reference/submodule/compiler/checkMergedGlobalUMDSymbol.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.checkMergedGlobalUMDSymbol.js -+++ new.checkMergedGlobalUMDSymbol.js -@@= skipped -18, +18 lines =@@ - - - //// [test.js] --var m = THREE; -+const m = THREE; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing1.js.diff b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing1.js.diff index 7804ac1835..5df18362df 100644 --- a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing1.js.diff @@ -1,48 +1,10 @@ --- old.checkSuperCallBeforeThisAccessing1.js +++ new.checkSuperCallBeforeThisAccessing1.js -@@= skipped -12, +12 lines =@@ +@@= skipped -15, +15 lines =@@ + class Based { } - - //// [checkSuperCallBeforeThisAccessing1.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Based = /** @class */ (function () { -- function Based() { -- } -- return Based; --}()); --var Derived = /** @class */ (function (_super) { -- __extends(Derived, _super); -- function Derived() { -- var _this = _super.call(this) || this; -- _this; -- _this.x = 10; -- var that = _this; -- return _this; -- } -- return Derived; --}(Based)); -+class Based { -+} -+class Derived extends Based { + class Derived extends Based { + x; -+ constructor() { -+ super(); -+ this; -+ this.x = 10; -+ var that = this; -+ } -+} \ No newline at end of file + constructor() { + super(); + this; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing2.js.diff b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing2.js.diff index 51d208bd77..02e96022c7 100644 --- a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing2.js.diff @@ -1,49 +1,10 @@ --- old.checkSuperCallBeforeThisAccessing2.js +++ new.checkSuperCallBeforeThisAccessing2.js -@@= skipped -12, +12 lines =@@ +@@= skipped -15, +15 lines =@@ + class Based { } - - //// [checkSuperCallBeforeThisAccessing2.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Based = /** @class */ (function () { -- function Based() { -- } -- return Based; --}()); --var Derived = /** @class */ (function (_super) { -- __extends(Derived, _super); -- function Derived() { -- var _this = this; -- _this.x = 100; -- _this = _super.call(this) || this; -- _this.x = 10; -- var that = _this; -- return _this; -- } -- return Derived; --}(Based)); -+class Based { -+} -+class Derived extends Based { + class Derived extends Based { + x; -+ constructor() { -+ this.x = 100; -+ super(); -+ this.x = 10; -+ var that = this; -+ } -+} \ No newline at end of file + constructor() { + this.x = 100; + super(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing3.js.diff b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing3.js.diff index 326f89e448..79b64fe8aa 100644 --- a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing3.js.diff @@ -1,56 +1,13 @@ --- old.checkSuperCallBeforeThisAccessing3.js +++ new.checkSuperCallBeforeThisAccessing3.js -@@= skipped -17, +17 lines =@@ +@@= skipped -20, +20 lines =@@ + class Based { } - - //// [checkSuperCallBeforeThisAccessing3.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Based = /** @class */ (function () { -- function Based() { -- } -- return Based; --}()); --var Derived = /** @class */ (function (_super) { -- __extends(Derived, _super); -- function Derived() { -- var _this = this; -- var innver = /** @class */ (function () { -- function innver() { -+class Based { -+} -+class Derived extends Based { + class Derived extends Based { + x; -+ constructor() { -+ class innver { + constructor() { + class innver { + y; -+ constructor() { + constructor() { this.y = true; - } -- return innver; -- }()); -- _this = _super.call(this) || this; -- _this.x = 10; -- var that = _this; -- return _this; -+ } -+ super(); -+ this.x = 10; -+ var that = this; - } -- return Derived; --}(Based)); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing4.js.diff b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing4.js.diff index 4aa8dd7ee6..e2f1416d5d 100644 --- a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing4.js.diff @@ -1,65 +1,10 @@ --- old.checkSuperCallBeforeThisAccessing4.js +++ new.checkSuperCallBeforeThisAccessing4.js -@@= skipped -21, +21 lines =@@ +@@= skipped -24, +24 lines =@@ + class Based { } - - //// [checkSuperCallBeforeThisAccessing4.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Based = /** @class */ (function () { -- function Based() { -- } -- return Based; --}()); --var Derived = /** @class */ (function (_super) { -- __extends(Derived, _super); -- function Derived() { -- var _this = this; -- (function () { -- _this; // No error -- }); -- (function () { -- _this; // No error -- }); -- (function () { -- _this; // No error -+class Based { -+} -+class Derived extends Based { + class Derived extends Based { + x; -+ constructor() { -+ (() => { -+ this; // No error -+ }); -+ () => { -+ this; // No error -+ }; -+ (() => { -+ this; // No error - })(); -- _this = _super.call(this) || this; -- _this = _super.call(this) || this; -- _this.x = 10; -- var that = _this; -- return _this; -+ super(); -+ super(); -+ this.x = 10; -+ var that = this; - } -- return Derived; --}(Based)); -+} \ No newline at end of file + constructor() { + (() => { + this; // No error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing5.js.diff b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing5.js.diff index 438f55c1b2..d9b81a2562 100644 --- a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing5.js.diff @@ -1,47 +1,10 @@ --- old.checkSuperCallBeforeThisAccessing5.js +++ new.checkSuperCallBeforeThisAccessing5.js -@@= skipped -9, +9 lines =@@ +@@= skipped -13, +13 lines =@@ + constructor(...arg) { } } - - //// [checkSuperCallBeforeThisAccessing5.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Based = /** @class */ (function () { -- function Based() { -- var arg = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- arg[_i] = arguments[_i]; -- } -- } -- return Based; --}()); --var Derived = /** @class */ (function (_super) { -- __extends(Derived, _super); -- function Derived() { -- var _this = _super.call(this, _this.x) || this; -- return _this; -- } -- return Derived; --}(Based)); -+class Based { -+ constructor(...arg) { } -+} -+class Derived extends Based { + class Derived extends Based { + x; -+ constructor() { -+ super(this.x); -+ } -+} \ No newline at end of file + constructor() { + super(this.x); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing6.js.diff b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing6.js.diff deleted file mode 100644 index 2e8bf404d4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing6.js.diff +++ /dev/null @@ -1,49 +0,0 @@ ---- old.checkSuperCallBeforeThisAccessing6.js -+++ new.checkSuperCallBeforeThisAccessing6.js -@@= skipped -12, +12 lines =@@ - } - - //// [checkSuperCallBeforeThisAccessing6.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Base = /** @class */ (function () { -- function Base() { -- var arg = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- arg[_i] = arguments[_i]; -- } -- } -- return Base; --}()); --var Super = /** @class */ (function (_super) { -- __extends(Super, _super); -- function Super() { -- var _this = this; -- (function () { return _this; }); // No Error -- return _this = _super.call(this) || this; -- } -- return Super; --}(Base)); -+class Base { -+ constructor(...arg) { -+ } -+} -+class Super extends Base { -+ constructor() { -+ (() => this); // No Error -+ super(); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing7.js.diff b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing7.js.diff deleted file mode 100644 index 3a086eb322..0000000000 --- a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing7.js.diff +++ /dev/null @@ -1,43 +0,0 @@ ---- old.checkSuperCallBeforeThisAccessing7.js -+++ new.checkSuperCallBeforeThisAccessing7.js -@@= skipped -11, +11 lines =@@ - } - - //// [checkSuperCallBeforeThisAccessing7.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Base = /** @class */ (function () { -- function Base(func) { -- } -- return Base; --}()); --var Super = /** @class */ (function (_super) { -- __extends(Super, _super); -- function Super() { -- var _this = _super.call(this, (function () { return _this; })) || this; // No error -- return _this; -- } -- return Super; --}(Base)); -+class Base { -+ constructor(func) { -+ } -+} -+class Super extends Base { -+ constructor() { -+ super((() => this)); // No error -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing8.js.diff b/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing8.js.diff deleted file mode 100644 index 213648b075..0000000000 --- a/testdata/baselines/reference/submodule/compiler/checkSuperCallBeforeThisAccessing8.js.diff +++ /dev/null @@ -1,49 +0,0 @@ ---- old.checkSuperCallBeforeThisAccessing8.js -+++ new.checkSuperCallBeforeThisAccessing8.js -@@= skipped -12, +12 lines =@@ - } - - //// [checkSuperCallBeforeThisAccessing8.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Base = /** @class */ (function () { -- function Base() { -- var arg = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- arg[_i] = arguments[_i]; -- } -- } -- return Base; --}()); --var Super = /** @class */ (function (_super) { -- __extends(Super, _super); -- function Super() { -- var _this = this; -- var that = _this; -- return _this = _super.call(this) || this; -- } -- return Super; --}(Base)); -+class Base { -+ constructor(...arg) { -+ } -+} -+class Super extends Base { -+ constructor() { -+ var that = this; -+ super(); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkSwitchStatementIfCaseTypeIsString.js.diff b/testdata/baselines/reference/submodule/compiler/checkSwitchStatementIfCaseTypeIsString.js.diff deleted file mode 100644 index 55670cebf4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/checkSwitchStatementIfCaseTypeIsString.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.checkSwitchStatementIfCaseTypeIsString.js -+++ new.checkSwitchStatementIfCaseTypeIsString.js -@@= skipped -13, +13 lines =@@ - } - - //// [checkSwitchStatementIfCaseTypeIsString.js] --var A = /** @class */ (function () { -- function A() { -- } -- A.prototype.doIt = function (x) { -- var _this = this; -- x.forEach(function (v) { -+class A { -+ doIt(x) { -+ x.forEach((v) => { - switch (v) { -- case "test": use(_this); -+ case "test": use(this); - } - }); -- }; -- return A; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/checkingObjectWithThisInNamePositionNoCrash.js.diff b/testdata/baselines/reference/submodule/compiler/checkingObjectWithThisInNamePositionNoCrash.js.diff index 3d14e47271..58f14cd61d 100644 --- a/testdata/baselines/reference/submodule/compiler/checkingObjectWithThisInNamePositionNoCrash.js.diff +++ b/testdata/baselines/reference/submodule/compiler/checkingObjectWithThisInNamePositionNoCrash.js.diff @@ -1,21 +1,6 @@ --- old.checkingObjectWithThisInNamePositionNoCrash.js +++ new.checkingObjectWithThisInNamePositionNoCrash.js -@@= skipped -13, +13 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.thing = void 0; - exports.thing = { -- doit: function () { -- var _a; -- return _a = {}, -- _a[this.a] = "", -- _a; -+ doit() { -+ return { -+ [this.a]: "", // should refer to the outer object with the doit method, notably not present -+ }; - } - }; - +@@= skipped -23, +23 lines =@@ //// [checkingObjectWithThisInNamePositionNoCrash.d.ts] export declare const thing: { diff --git a/testdata/baselines/reference/submodule/compiler/circularConstraintYieldsAppropriateError.js.diff b/testdata/baselines/reference/submodule/compiler/circularConstraintYieldsAppropriateError.js.diff index 02479444bd..6f103eaefc 100644 --- a/testdata/baselines/reference/submodule/compiler/circularConstraintYieldsAppropriateError.js.diff +++ b/testdata/baselines/reference/submodule/compiler/circularConstraintYieldsAppropriateError.js.diff @@ -1,53 +1,16 @@ --- old.circularConstraintYieldsAppropriateError.js +++ new.circularConstraintYieldsAppropriateError.js -@@= skipped -19, +19 lines =@@ - foo.bar.test - +@@= skipped -21, +21 lines =@@ //// [circularConstraintYieldsAppropriateError.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); // https://github.com/Microsoft/TypeScript/issues/16861 --var BaseType = /** @class */ (function () { -- function BaseType() { -- } -- return BaseType; --}()); --var NextType = /** @class */ (function (_super) { -- __extends(NextType, _super); -- function NextType() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return NextType; --}(BaseType)); --var Foo = /** @class */ (function (_super) { -- __extends(Foo, _super); -- function Foo() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Foo; --}(NextType)); --var foo = new Foo(); -+class BaseType { + class BaseType { + bar; -+} -+class NextType extends BaseType { + } + class NextType extends BaseType { + baz; -+} -+class Foo extends NextType { + } + class Foo extends NextType { + someProp; -+} -+const foo = new Foo(); + } + const foo = new Foo(); foo.bar.test; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/circularConstructorWithReturn.js.diff b/testdata/baselines/reference/submodule/compiler/circularConstructorWithReturn.js.diff index fa27eed66d..382148d83b 100644 --- a/testdata/baselines/reference/submodule/compiler/circularConstructorWithReturn.js.diff +++ b/testdata/baselines/reference/submodule/compiler/circularConstructorWithReturn.js.diff @@ -1,19 +1,10 @@ --- old.circularConstructorWithReturn.js +++ new.circularConstructorWithReturn.js -@@= skipped -26, +26 lines =@@ - exports.getPrismaClient = getPrismaClient; +@@= skipped -27, +27 lines =@@ exports.applyModelsAndClientExtensions = applyModelsAndClientExtensions; function getPrismaClient(options) { -- var PrismaClient = /** @class */ (function () { -- function PrismaClient(options) { -+ class PrismaClient { + class PrismaClient { + self; -+ constructor(options) { + constructor(options) { return (this.self = applyModelsAndClientExtensions(this)); - } -- return PrismaClient; -- }()); -+ } - return PrismaClient; - } - function applyModelsAndClientExtensions(client) { \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/circularContextualMappedType.js.diff b/testdata/baselines/reference/submodule/compiler/circularContextualMappedType.js.diff index 81fdc96998..57a3aa4aed 100644 --- a/testdata/baselines/reference/submodule/compiler/circularContextualMappedType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/circularContextualMappedType.js.diff @@ -6,12 +6,5 @@ //// [circularContextualMappedType.js] -"use strict"; reproduce({ -- name: function () { return 123; } -+ name: () => { return 123; } - }); - reproduce({ -- name: function () { return 123; } -+ name() { return 123; } - }); - reproduce({ - name: function () { return 123; } \ No newline at end of file + name: () => { return 123; } + }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.js.diff b/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.js.diff index 5e722c1673..3408515fe9 100644 --- a/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.js.diff @@ -7,8 +7,4 @@ -"use strict"; // Repro from #17711 Object.freeze({ -- foo: function () { -+ foo() { - return Object.freeze('a'); - }, - }); \ No newline at end of file + foo() { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.types b/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.types index c70c99f134..f922db2738 100644 --- a/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.types +++ b/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.types @@ -5,9 +5,9 @@ Object.freeze({ >Object.freeze({ foo() { return Object.freeze('a'); },}) : Readonly<{ foo(): string; }> ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >{ foo() { return Object.freeze('a'); },} : { foo(): string; } foo() { @@ -15,9 +15,9 @@ Object.freeze({ return Object.freeze('a'); >Object.freeze('a') : string ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >'a' : "a" }, diff --git a/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.types.diff b/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.types.diff index 8de456ecc6..d4cae7c8f5 100644 --- a/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.types.diff +++ b/testdata/baselines/reference/submodule/compiler/circularContextualReturnType.types.diff @@ -5,10 +5,10 @@ Object.freeze({ >Object.freeze({ foo() { return Object.freeze('a'); },}) : Readonly<{ foo(): string; }> ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -+>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } ++>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -+>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } ++>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >{ foo() { return Object.freeze('a'); },} : { foo(): string; } foo() { @@ -17,10 +17,10 @@ return Object.freeze('a'); >Object.freeze('a') : string ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -+>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } ++>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -+>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } ++>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >'a' : "a" }, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/circularObjectLiteralAccessors.js.diff b/testdata/baselines/reference/submodule/compiler/circularObjectLiteralAccessors.js.diff deleted file mode 100644 index 7d31414ccf..0000000000 --- a/testdata/baselines/reference/submodule/compiler/circularObjectLiteralAccessors.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.circularObjectLiteralAccessors.js -+++ new.circularObjectLiteralAccessors.js -@@= skipped -16, +16 lines =@@ - - //// [circularObjectLiteralAccessors.js] - // Repro from #6000 --var a = { -+const a = { - b: { - get foo() { - return a.foo; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/circularOptionalityRemoval.js.diff b/testdata/baselines/reference/submodule/compiler/circularOptionalityRemoval.js.diff deleted file mode 100644 index b82166f69c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/circularOptionalityRemoval.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.circularOptionalityRemoval.js -+++ new.circularOptionalityRemoval.js -@@= skipped -8, +8 lines =@@ - - //// [circularOptionalityRemoval.js] - // Constructed repro --function fn1(x) { -- if (x === void 0) { x = x > 0 ? x : 0; } --} -+function fn1(x = x > 0 ? x : 0) { } - // Report from user --function fn2(x) { -- if (x === void 0) { x = someCondition ? 'value1' : x; } --} -+function fn2(x = someCondition ? 'value1' : x) { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/circularResolvedSignature.js.diff b/testdata/baselines/reference/submodule/compiler/circularResolvedSignature.js.diff deleted file mode 100644 index aeb6bc9367..0000000000 --- a/testdata/baselines/reference/submodule/compiler/circularResolvedSignature.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.circularResolvedSignature.js -+++ new.circularResolvedSignature.js -@@= skipped -22, +22 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Component = Component; - function Component() { -- var _a = useState(function () { return ({ -+ const [state, setState] = useState(() => ({ - value: "string", // this should be a number -- foo: function (arg) { return setState(arg); }, -- bar: function (arg) { return setState(arg); }, -- }); }), state = _a[0], setState = _a[1]; -+ foo: (arg) => setState(arg), -+ bar: (arg) => setState(arg), -+ })); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/circularTypeofWithFunctionModule.js.diff b/testdata/baselines/reference/submodule/compiler/circularTypeofWithFunctionModule.js.diff deleted file mode 100644 index 14f892c497..0000000000 --- a/testdata/baselines/reference/submodule/compiler/circularTypeofWithFunctionModule.js.diff +++ /dev/null @@ -1,43 +0,0 @@ ---- old.circularTypeofWithFunctionModule.js -+++ new.circularTypeofWithFunctionModule.js -@@= skipped -15, +15 lines =@@ - - //// [circularTypeofWithFunctionModule.js] - // Repro from #6072 --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Foo = /** @class */ (function () { -- function Foo() { -- } -- return Foo; --}()); -+class Foo { -+} - function maker(value) { - return maker.Bar; - } - (function (maker) { -- var Bar = /** @class */ (function (_super) { -- __extends(Bar, _super); -- function Bar() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Bar; -- }(Foo)); -+ class Bar extends Foo { -+ } - maker.Bar = Bar; - })(maker || (maker = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/circularlySimplifyingConditionalTypesNoCrash.js.diff b/testdata/baselines/reference/submodule/compiler/circularlySimplifyingConditionalTypesNoCrash.js.diff deleted file mode 100644 index d3eab4e603..0000000000 --- a/testdata/baselines/reference/submodule/compiler/circularlySimplifyingConditionalTypesNoCrash.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.circularlySimplifyingConditionalTypesNoCrash.js -+++ new.circularlySimplifyingConditionalTypesNoCrash.js -@@= skipped -54, +54 lines =@@ - //// [circularlySimplifyingConditionalTypesNoCrash.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); --var myStoreConnect = function (mapStateToProps, mapDispatchToProps, mergeProps, options) { -- if (options === void 0) { options = {}; } -+const myStoreConnect = function (mapStateToProps, mapDispatchToProps, mergeProps, options = {}) { - return connect(mapStateToProps, mapDispatchToProps, mergeProps, options); - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/class2.js.diff b/testdata/baselines/reference/submodule/compiler/class2.js.diff index 71353b1286..77299a1995 100644 --- a/testdata/baselines/reference/submodule/compiler/class2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/class2.js.diff @@ -4,12 +4,13 @@ class foo { constructor() { static f = 3; } } //// [class2.js] --var foo = /** @class */ (function () { -- function foo() { +-let foo = (() => { +- class foo { +- constructor() { } - } - foo.f = 3; - return foo; --}()); +-})(); +class foo { + constructor() { } + static f = 3; diff --git a/testdata/baselines/reference/submodule/compiler/classBlockScoping.js.diff b/testdata/baselines/reference/submodule/compiler/classBlockScoping.js.diff index 9aa8413316..567f5e7605 100644 --- a/testdata/baselines/reference/submodule/compiler/classBlockScoping.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classBlockScoping.js.diff @@ -5,20 +5,16 @@ //// [classBlockScoping.js] function f(b) { - var _a; -- var Foo; -+ let Foo; + let Foo; if (b) { -- Foo = (_a = /** @class */ (function () { -- function Foo() { -- } -- Foo.x = function () { +- Foo = (_a = class Foo { +- static x() { - new _a(); -- }; -- Foo.prototype.m = function () { +- } +- m() { - new _a(); -- }; -- return Foo; -- }()), +- } +- }, - _a.y = new _a(), - _a); + Foo = class Foo { @@ -33,19 +29,18 @@ new Foo(); } else { -- var Foo_1 = /** @class */ (function () { -- function Foo() { +- let Foo = (() => { +- class Foo { +- static x() { +- new Foo(); +- } +- m() { +- new Foo(); +- } - } -- Foo.x = function () { -- new Foo(); -- }; -- Foo.prototype.m = function () { -- new Foo(); -- }; - Foo.y = new Foo(); - return Foo; -- }()); -- new Foo_1(); +- })(); + class Foo { + static y = new Foo(); + static x() { @@ -55,6 +50,6 @@ + new Foo(); + } + } -+ new Foo(); + new Foo(); } } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classCannotExtendVar.js.diff b/testdata/baselines/reference/submodule/compiler/classCannotExtendVar.js.diff deleted file mode 100644 index e0824cbdcf..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classCannotExtendVar.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.classCannotExtendVar.js -+++ new.classCannotExtendVar.js -@@= skipped -10, +10 lines =@@ - - //// [classCannotExtendVar.js] - var Markup; --var Markup = /** @class */ (function () { -- function Markup() { -+class Markup { -+ constructor() { - } -- return Markup; --}()); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classDeclarationBlockScoping1.js.diff b/testdata/baselines/reference/submodule/compiler/classDeclarationBlockScoping1.js.diff deleted file mode 100644 index 16cefdf69c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classDeclarationBlockScoping1.js.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.classDeclarationBlockScoping1.js -+++ new.classDeclarationBlockScoping1.js -@@= skipped -9, +9 lines =@@ - } - - //// [classDeclarationBlockScoping1.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} - { -- var C_1 = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classDeclarationBlockScoping2.js.diff b/testdata/baselines/reference/submodule/compiler/classDeclarationBlockScoping2.js.diff deleted file mode 100644 index 2f5496ec54..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classDeclarationBlockScoping2.js.diff +++ /dev/null @@ -1,27 +0,0 @@ ---- old.classDeclarationBlockScoping2.js -+++ new.classDeclarationBlockScoping2.js -@@= skipped -12, +12 lines =@@ - - //// [classDeclarationBlockScoping2.js] - function f() { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - var c1 = C; - { -- var C_1 = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -- var c2 = C_1; -+ class C { -+ } -+ var c2 = C; - } - return C === c1; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classDeclarationCheckUsedBeforeDefinitionInFunctionDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/classDeclarationCheckUsedBeforeDefinitionInFunctionDeclaration.js.diff deleted file mode 100644 index c71a512cef..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classDeclarationCheckUsedBeforeDefinitionInFunctionDeclaration.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.classDeclarationCheckUsedBeforeDefinitionInFunctionDeclaration.js -+++ new.classDeclarationCheckUsedBeforeDefinitionInFunctionDeclaration.js -@@= skipped -9, +9 lines =@@ - function f() { - new C2(); // OK - } --var C2 = /** @class */ (function () { -- function C2() { -- } -- return C2; --}()); -+class C2 { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classDeclarationMergedInModuleWithContinuation.js.diff b/testdata/baselines/reference/submodule/compiler/classDeclarationMergedInModuleWithContinuation.js.diff deleted file mode 100644 index 08a9510484..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classDeclarationMergedInModuleWithContinuation.js.diff +++ /dev/null @@ -1,47 +0,0 @@ ---- old.classDeclarationMergedInModuleWithContinuation.js -+++ new.classDeclarationMergedInModuleWithContinuation.js -@@= skipped -13, +13 lines =@@ - } - - //// [classDeclarationMergedInModuleWithContinuation.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - var M; - (function (M) { -- var N = /** @class */ (function () { -- function N() { -- } -- return N; -- }()); -+ class N { -+ } - M.N = N; - (function (N) { - N.v = 0; - })(N = M.N || (M.N = {})); - })(M || (M = {})); - (function (M) { -- var O = /** @class */ (function (_super) { -- __extends(O, _super); -- function O() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return O; -- }(M.N)); -+ class O extends M.N { -+ } - M.O = O; - })(M || (M = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classDeclarationShouldBeOutOfScopeInComputedNames.js.diff b/testdata/baselines/reference/submodule/compiler/classDeclarationShouldBeOutOfScopeInComputedNames.js.diff index 69ab831633..7801fd670c 100644 --- a/testdata/baselines/reference/submodule/compiler/classDeclarationShouldBeOutOfScopeInComputedNames.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classDeclarationShouldBeOutOfScopeInComputedNames.js.diff @@ -4,14 +4,16 @@ //// [classDeclarationShouldBeOutOfScopeInComputedNames.js] --var A = /** @class */ (function () { -- function A() { -- this[_b] = 0; -- } -- A[(_a = A.p1, A.p2)] = function () { return 0; }; -- ; -- A.prototype[A.p1] = function () { }; +-let A = (() => { - var _a, _b; +- class A { +- constructor() { +- this[_b] = 0; +- } +- static [(_a = A.p1, A.p2)]() { return 0; } +- ; +- [A.p1]() { } +- } - _b = A.p2; - A.p1 = Symbol(); - A.p2 = Symbol(); @@ -21,7 +23,7 @@ // All of the below should be out of scope or TDZ - `A` has not finished being constructed as they are executed - A[_a] = 0; - return A; --}()); +-})(); + static [A.p1] = 0; + static [A.p2]() { return 0; } + ; diff --git a/testdata/baselines/reference/submodule/compiler/classDeclaredBeforeClassFactory.js.diff b/testdata/baselines/reference/submodule/compiler/classDeclaredBeforeClassFactory.js.diff deleted file mode 100644 index fbba984e1a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classDeclaredBeforeClassFactory.js.diff +++ /dev/null @@ -1,40 +0,0 @@ ---- old.classDeclaredBeforeClassFactory.js -+++ new.classDeclaredBeforeClassFactory.js -@@= skipped -9, +9 lines =@@ - - - //// [classDeclaredBeforeClassFactory.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - // Should be OK due to hoisting --var Derived = /** @class */ (function (_super) { -- __extends(Derived, _super); -- function Derived() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Derived; --}(makeBaseClass())); -+class Derived extends makeBaseClass() { -+} - function makeBaseClass() { -- return /** @class */ (function () { -- function Base() { -- } -- return Base; -- }()); -+ return class Base { -+ }; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionAssignment.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionAssignment.js.diff deleted file mode 100644 index 9a5c8c1e6f..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExpressionAssignment.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.classExpressionAssignment.js -+++ new.classExpressionAssignment.js -@@= skipped -10, +10 lines =@@ - - //// [classExpressionAssignment.js] - // This is invalid --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); -+const A = class { -+}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionExtendingAbstractClass.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionExtendingAbstractClass.js.diff deleted file mode 100644 index af43cafe6b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExpressionExtendingAbstractClass.js.diff +++ /dev/null @@ -1,37 +0,0 @@ ---- old.classExpressionExtendingAbstractClass.js -+++ new.classExpressionExtendingAbstractClass.js -@@= skipped -10, +10 lines =@@ - - - //// [classExpressionExtendingAbstractClass.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C; --}(A)); -+class A { -+} -+var C = class extends A { -+}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js.diff index fe7236c377..9aa70840a8 100644 --- a/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExpressionInClassStaticDeclarations.js.diff @@ -4,36 +4,15 @@ } //// [classExpressionInClassStaticDeclarations.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var C = /** @class */ (function () { -- function C() { +-let C = (() => { +- class C { - } -- C.D = /** @class */ (function (_super) { -- __extends(class_1, _super); -- function class_1() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return class_1; -- }(C)); -- return C; --}()); +- C.D = class extends C { +class C { + static D = class extends C { -+ }; + }; +- return C; +-})(); +} diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionTest1.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionTest1.js.diff deleted file mode 100644 index 5319557a70..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExpressionTest1.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.classExpressionTest1.js -+++ new.classExpressionTest1.js -@@= skipped -15, +15 lines =@@ - - //// [classExpressionTest1.js] - function M() { -- var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.f = function () { -+ class C { -+ f() { - var t; - var x; -- return { t: t, x: x }; -- }; -- return C; -- }()); -+ return { t, x }; -+ } -+ } - var v = new C(); - return v.f(); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionTest2.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionTest2.js.diff deleted file mode 100644 index 2c14a8f206..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExpressionTest2.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.classExpressionTest2.js -+++ new.classExpressionTest2.js -@@= skipped -15, +15 lines =@@ - - //// [classExpressionTest2.js] - function M() { -- var m = /** @class */ (function () { -- function C() { -- } -- C.prototype.f = function () { -+ var m = class C { -+ f() { - var t; - var x; -- return { t: t, x: x }; -- }; -- return C; -- }()); -+ return { t, x }; -+ } -+ }; - var v = new m(); - return v.f(); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js.diff index aa61f1ade4..8e58ccdb88 100644 --- a/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExpressionWithDecorator1.js.diff @@ -5,11 +5,8 @@ //// [classExpressionWithDecorator1.js] -var _a; --var v = (_a = /** @class */ (function () { -- function C() { -- } -- return C; -- }()), +-var v = (_a = class C { +- }, - _a.p = 1, - _a); +var v = diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionWithResolutionOfNamespaceOfSameName01.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionWithResolutionOfNamespaceOfSameName01.js.diff index 5b1cc6e6a2..fc7054217a 100644 --- a/testdata/baselines/reference/submodule/compiler/classExpressionWithResolutionOfNamespaceOfSameName01.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExpressionWithResolutionOfNamespaceOfSameName01.js.diff @@ -1,14 +1,8 @@ --- old.classExpressionWithResolutionOfNamespaceOfSameName01.js +++ new.classExpressionWithResolutionOfNamespaceOfSameName01.js -@@= skipped -10, +10 lines =@@ - } +@@= skipped -11, +11 lines =@@ //// [classExpressionWithResolutionOfNamespaceOfSameName01.js] --var x = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+var x = class C { + var x = class C { + prop; -+}; \ No newline at end of file + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties1.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties1.js.diff index a425a06d76..4f7f894e4e 100644 --- a/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties1.js.diff @@ -5,11 +5,8 @@ //// [classExpressionWithStaticProperties1.js] -var _a; --var v = (_a = /** @class */ (function () { -- function C() { -- } -- return C; -- }()), +-var v = (_a = class C { +- }, - _a.a = 1, - _a.b = 2, - _a.c = _a.a + _a.b, diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties2.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties2.js.diff index b1cbaa2bfa..5329d8c20a 100644 --- a/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties2.js.diff @@ -5,11 +5,8 @@ //// [classExpressionWithStaticProperties2.js] -var _a; --var v = (_a = /** @class */ (function () { -- function C() { -- } -- return C; -- }()), +-var v = (_a = class C { +- }, - _a.a = 1, - _a.c = { +var v = class C { diff --git a/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties3.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties3.js.diff index 3cf4cfa32c..923d045ae3 100644 --- a/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExpressionWithStaticProperties3.js.diff @@ -1,29 +1,18 @@ --- old.classExpressionWithStaticProperties3.js +++ new.classExpressionWithStaticProperties3.js -@@= skipped -11, +11 lines =@@ - arr.forEach(C => console.log(C.y())); - +@@= skipped -13, +13 lines =@@ //// [classExpressionWithStaticProperties3.js] --var arr = []; --var _loop_1 = function (i) { -- var _a = void 0; -- arr.push((_a = /** @class */ (function () { -- function C() { -- } -- return C; -- }()), + const arr = []; + for (let i = 0; i < 3; i++) { +- let _a; +- arr.push((_a = class C { +- }, - _a.x = i, -- _a.y = function () { return _a.x * 2; }, +- _a.y = () => _a.x * 2, - _a)); --}; --for (var i = 0; i < 3; i++) { -- _loop_1(i); -+const arr = []; -+for (let i = 0; i < 3; i++) { + arr.push(class C { + static x = i; + static y = () => C.x * 2; + }); } --arr.forEach(function (C) { return console.log(C.y()); }); -+arr.forEach(C => console.log(C.y())); \ No newline at end of file + arr.forEach(C => console.log(C.y())); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/classExpressions.js.diff index 8e160aead0..e13e13505d 100644 --- a/testdata/baselines/reference/submodule/compiler/classExpressions.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExpressions.js.diff @@ -1,20 +1,16 @@ --- old.classExpressions.js +++ new.classExpressions.js -@@= skipped -10, +10 lines =@@ - }; +@@= skipped -11, +11 lines =@@ //// [classExpressions.js] --var x = /** @class */ (function () { -- function B() { -- this.func = function () { + let x = class B { +- constructor() { +- this.func = () => { - }; -+let x = class B { +- } + prop; -+ onStart() { + onStart() { } -- B.prototype.onStart = function () { + func = () => { - }; -- return B; --}()); -+}; \ No newline at end of file ++ }; + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendingQualifiedName.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendingQualifiedName.js.diff deleted file mode 100644 index edaf21c7bb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExtendingQualifiedName.js.diff +++ /dev/null @@ -1,40 +0,0 @@ ---- old.classExtendingQualifiedName.js -+++ new.classExtendingQualifiedName.js -@@= skipped -9, +9 lines =@@ - } - - //// [classExtendingQualifiedName.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - var M; - (function (M) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -- var D = /** @class */ (function (_super) { -- __extends(D, _super); -- function D() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return D; -- }(M.C)); -+ class C { -+ } -+ class D extends M.C { -+ } - })(M || (M = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendingQualifiedName2.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendingQualifiedName2.js.diff deleted file mode 100644 index 4f183114a1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExtendingQualifiedName2.js.diff +++ /dev/null @@ -1,41 +0,0 @@ ---- old.classExtendingQualifiedName2.js -+++ new.classExtendingQualifiedName2.js -@@= skipped -9, +9 lines =@@ - } - - //// [classExtendingQualifiedName2.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - var M; - (function (M) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - M.C = C; -- var D = /** @class */ (function (_super) { -- __extends(D, _super); -- function D() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return D; -- }(M.C)); -+ class D extends M.C { -+ } - })(M || (M = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendsAcrossFiles.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendsAcrossFiles.js.diff index 338cd9afa9..d27eb5143d 100644 --- a/testdata/baselines/reference/submodule/compiler/classExtendsAcrossFiles.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExtendsAcrossFiles.js.diff @@ -1,90 +1,20 @@ --- old.classExtendsAcrossFiles.js +++ new.classExtendsAcrossFiles.js -@@= skipped -20, +20 lines =@@ - - //// [b.js] +@@= skipped -22, +22 lines =@@ "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.b = void 0; -var a_1 = require("./a"); +const a_1 = require("./a"); exports.b = { -- f: function () { -- var A = /** @class */ (function () { -- function A() { -- } -- return A; -- }()); -- var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; -- }(A)); -+ f: () => { -+ class A { -+ } -+ class B extends A { -+ } - a_1.a.f(); - } - }; - //// [a.js] + f: () => { + class A { +@@= skipped -14, +14 lines =@@ "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.a = void 0; -var b_1 = require("./b"); +const b_1 = require("./b"); exports.a = { -- f: function () { -- var A = /** @class */ (function () { -- function A() { -- } -- return A; -- }()); -- var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; -- }(A)); -+ f: () => { -+ class A { -+ } -+ class B extends A { -+ } - b_1.b.f(); - } - }; \ No newline at end of file + f: () => { + class A { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendsClauseClassMergedWithModuleNotReferingConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendsClauseClassMergedWithModuleNotReferingConstructor.js.diff index ee4910fa3b..f33d1dcd1d 100644 --- a/testdata/baselines/reference/submodule/compiler/classExtendsClauseClassMergedWithModuleNotReferingConstructor.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExtendsClauseClassMergedWithModuleNotReferingConstructor.js.diff @@ -1,45 +1,17 @@ --- old.classExtendsClauseClassMergedWithModuleNotReferingConstructor.js +++ new.classExtendsClauseClassMergedWithModuleNotReferingConstructor.js -@@= skipped -15, +15 lines =@@ - } +@@= skipped -16, +16 lines =@@ //// [classExtendsClauseClassMergedWithModuleNotReferingConstructor.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); -+class A { + class A { + a; -+} + } (function (A) { })(A || (A = {})); - var Foo; +@@= skipped -7, +8 lines =@@ (function (Foo) { var A = 1; -- var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; -- }(A)); -+ class B extends A { + class B extends A { + b; -+ } + } })(Foo || (Foo = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendsClauseClassNotReferringConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendsClauseClassNotReferringConstructor.js.diff index 63e7080b54..d244b7dfc5 100644 --- a/testdata/baselines/reference/submodule/compiler/classExtendsClauseClassNotReferringConstructor.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExtendsClauseClassNotReferringConstructor.js.diff @@ -1,43 +1,15 @@ --- old.classExtendsClauseClassNotReferringConstructor.js +++ new.classExtendsClauseClassNotReferringConstructor.js -@@= skipped -8, +8 lines =@@ - +@@= skipped -9, +9 lines =@@ //// [classExtendsClauseClassNotReferringConstructor.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); -+class A { + class A { + a; -+} + } var Foo; (function (Foo) { var A = 1; -- var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; -- }(A)); -+ class B extends A { + class B extends A { + b; -+ } + } })(Foo || (Foo = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendsInterface.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendsInterface.js.diff deleted file mode 100644 index a9f9931bce..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExtendsInterface.js.diff +++ /dev/null @@ -1,53 +0,0 @@ ---- old.classExtendsInterface.js -+++ new.classExtendsInterface.js -@@= skipped -10, +10 lines =@@ - - - //// [classExtendsInterface.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function (_super) { -- __extends(A, _super); -- function A() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return A; --}(Comparable)); --var B = /** @class */ (function () { -- function B() { -- } -- return B; --}()); --var A2 = /** @class */ (function (_super) { -- __extends(A2, _super); -- function A2() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return A2; --}(Comparable2)); --var B2 = /** @class */ (function () { -- function B2() { -- } -- return B2; --}()); -+class A extends Comparable { -+} -+class B { -+} -+class A2 extends Comparable2 { -+} -+class B2 { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendsInterfaceInExpression.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendsInterfaceInExpression.js.diff deleted file mode 100644 index 256b162fe9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExtendsInterfaceInExpression.js.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.classExtendsInterfaceInExpression.js -+++ new.classExtendsInterfaceInExpression.js -@@= skipped -10, +10 lines =@@ - - - //// [classExtendsInterfaceInExpression.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - function factory(a) { - return null; - } --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C; --}(factory(A))); -+class C extends factory(A) { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendsInterfaceInModule.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendsInterfaceInModule.js.diff deleted file mode 100644 index 96a71eb366..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExtendsInterfaceInModule.js.diff +++ /dev/null @@ -1,48 +0,0 @@ ---- old.classExtendsInterfaceInModule.js -+++ new.classExtendsInterfaceInModule.js -@@= skipped -17, +17 lines =@@ - - - //// [classExtendsInterfaceInModule.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var C1 = /** @class */ (function (_super) { -- __extends(C1, _super); -- function C1() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C1; --}(M.I1)); --var C2 = /** @class */ (function (_super) { -- __extends(C2, _super); -- function C2() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C2; --}(M.I2)); --var D = /** @class */ (function (_super) { -- __extends(D, _super); -- function D() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return D; --}(Mod.Nested.I)); -+class C1 extends M.I1 { -+} -+class C2 extends M.I2 { -+} -+class D extends Mod.Nested.I { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendsInterfaceThatExtendsClassWithPrivates1.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendsInterfaceThatExtendsClassWithPrivates1.js.diff index 2d6a53bd69..14879510ab 100644 --- a/testdata/baselines/reference/submodule/compiler/classExtendsInterfaceThatExtendsClassWithPrivates1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classExtendsInterfaceThatExtendsClassWithPrivates1.js.diff @@ -1,30 +1,20 @@ --- old.classExtendsInterfaceThatExtendsClassWithPrivates1.js +++ new.classExtendsInterfaceThatExtendsClassWithPrivates1.js -@@= skipped -16, +16 lines =@@ - } +@@= skipped -17, +17 lines =@@ //// [classExtendsInterfaceThatExtendsClassWithPrivates1.js] --var C = /** @class */ (function () { -- function C() { + class C { +- constructor() { - this.x = 1; - } -- C.prototype.foo = function (x) { return x; }; -- return C; --}()); --var D2 = /** @class */ (function () { -- function D2() { + foo(x) { return x; } ++ x = 1; + } + class D2 { +- constructor() { - this.x = 3; - } -- D2.prototype.foo = function (x) { return x; }; -- D2.prototype.other = function (x) { return x; }; -- return D2; --}()); -+class C { -+ foo(x) { return x; } -+ x = 1; -+} -+class D2 { -+ foo(x) { return x; } + foo(x) { return x; } + x = 3; -+ other(x) { return x; } -+} \ No newline at end of file + other(x) { return x; } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendsInterface_not.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendsInterface_not.js.diff deleted file mode 100644 index d49f0d4a55..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExtendsInterface_not.js.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- old.classExtendsInterface_not.js -+++ new.classExtendsInterface_not.js -@@= skipped -4, +4 lines =@@ - - - //// [classExtendsInterface_not.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C; --}("".bogus)); -+class C extends "".bogus { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendsMultipleBaseClasses.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendsMultipleBaseClasses.js.diff deleted file mode 100644 index 96862691a8..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExtendsMultipleBaseClasses.js.diff +++ /dev/null @@ -1,44 +0,0 @@ ---- old.classExtendsMultipleBaseClasses.js -+++ new.classExtendsMultipleBaseClasses.js -@@= skipped -5, +5 lines =@@ - class C extends A,B { } - - //// [classExtendsMultipleBaseClasses.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function () { -- function B() { -- } -- return B; --}()); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C; --}(A)); -+class A { -+} -+class B { -+} -+class C extends A, B { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtendsNull.js.diff b/testdata/baselines/reference/submodule/compiler/classExtendsNull.js.diff deleted file mode 100644 index f70b12e860..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExtendsNull.js.diff +++ /dev/null @@ -1,47 +0,0 @@ ---- old.classExtendsNull.js -+++ new.classExtendsNull.js -@@= skipped -14, +14 lines =@@ - } - - //// [classExtendsNull.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- var _this = _super.call(this) || this; -- return Object.create(null); -- } -- return C; --}(null)); --var D = /** @class */ (function (_super) { -- __extends(D, _super); -- function D() { -- return Object.create(null); -- } -- return D; --}(null)); -+class C extends null { -+ constructor() { -+ super(); -+ return Object.create(null); -+ } -+} -+class D extends null { -+ constructor() { -+ return Object.create(null); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classExtensionNameOutput.js.diff b/testdata/baselines/reference/submodule/compiler/classExtensionNameOutput.js.diff deleted file mode 100644 index 6396c42ea0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classExtensionNameOutput.js.diff +++ /dev/null @@ -1,44 +0,0 @@ ---- old.classExtensionNameOutput.js -+++ new.classExtensionNameOutput.js -@@= skipped -10, +10 lines =@@ - } - - //// [classExtensionNameOutput.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); -+class A { -+} - if (true) { -- var B_1 = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; -- }(A)); -- var foo = function () { -- new B_1(); -+ class B extends A { -+ } -+ const foo = function () { -+ new B(); - }; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classFunctionMerging.js.diff b/testdata/baselines/reference/submodule/compiler/classFunctionMerging.js.diff deleted file mode 100644 index aa1a694312..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classFunctionMerging.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.classFunctionMerging.js -+++ new.classFunctionMerging.js -@@= skipped -14, +14 lines =@@ - const b = Foo(12); - - //// [classFunctionMerging.js] --var a = new Foo(""); --var b = Foo(12); -+const a = new Foo(""); -+const b = Foo(12); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classFunctionMerging2.js.diff b/testdata/baselines/reference/submodule/compiler/classFunctionMerging2.js.diff deleted file mode 100644 index d863c6ba28..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classFunctionMerging2.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.classFunctionMerging2.js -+++ new.classFunctionMerging2.js -@@= skipped -15, +15 lines =@@ - console.log(b.a) - - //// [classFunctionMerging2.js] --var b = new B("Hey"); -+let b = new B("Hey"); - console.log(b.a); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classHeritageWithTrailingSeparator.js.diff b/testdata/baselines/reference/submodule/compiler/classHeritageWithTrailingSeparator.js.diff index b649c27267..c370fe8cfd 100644 --- a/testdata/baselines/reference/submodule/compiler/classHeritageWithTrailingSeparator.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classHeritageWithTrailingSeparator.js.diff @@ -1,38 +1,10 @@ --- old.classHeritageWithTrailingSeparator.js +++ new.classHeritageWithTrailingSeparator.js -@@= skipped -5, +5 lines =@@ - } +@@= skipped -6, +6 lines =@@ //// [classHeritageWithTrailingSeparator.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); --var D = /** @class */ (function (_super) { -- __extends(D, _super); -- function D() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return D; --}(C)); -+class C { + class C { + foo; -+} -+class D extends C { -+} \ No newline at end of file + } + class D extends C { + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classImplementingInterfaceIndexer.js.diff b/testdata/baselines/reference/submodule/compiler/classImplementingInterfaceIndexer.js.diff deleted file mode 100644 index 7e11b9eadc..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classImplementingInterfaceIndexer.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.classImplementingInterfaceIndexer.js -+++ new.classImplementingInterfaceIndexer.js -@@= skipped -8, +8 lines =@@ - } - - //// [classImplementingInterfaceIndexer.js] --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); -+class A { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classImplementsClass1.js.diff b/testdata/baselines/reference/submodule/compiler/classImplementsClass1.js.diff deleted file mode 100644 index e9762ed659..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classImplementsClass1.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.classImplementsClass1.js -+++ new.classImplementsClass1.js -@@= skipped -4, +4 lines =@@ - class C implements A { } - - //// [classImplementsClass1.js] --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class A { -+} -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classImplementsClass2.js.diff b/testdata/baselines/reference/submodule/compiler/classImplementsClass2.js.diff deleted file mode 100644 index 0b1e7bbce4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classImplementsClass2.js.diff +++ /dev/null @@ -1,54 +0,0 @@ ---- old.classImplementsClass2.js -+++ new.classImplementsClass2.js -@@= skipped -15, +15 lines =@@ - c2 = c; - - //// [classImplementsClass2.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- A.prototype.foo = function () { return 1; }; -- return A; --}()); --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); // error --var C2 = /** @class */ (function (_super) { -- __extends(C2, _super); -- function C2() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- C2.prototype.foo = function () { -+class A { -+ foo() { return 1; } -+} -+class C { -+} // error -+class C2 extends A { -+ foo() { - return 1; -- }; -- return C2; --}(A)); -+ } -+} - var c; - var c2; - c = c2; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classImplementsClass3.js.diff b/testdata/baselines/reference/submodule/compiler/classImplementsClass3.js.diff deleted file mode 100644 index 2d04fe51e0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classImplementsClass3.js.diff +++ /dev/null @@ -1,53 +0,0 @@ ---- old.classImplementsClass3.js -+++ new.classImplementsClass3.js -@@= skipped -16, +16 lines =@@ - c2 = c; - - //// [classImplementsClass3.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- A.prototype.foo = function () { return 1; }; -- return A; --}()); --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { -+class A { -+ foo() { return 1; } -+} -+class C { -+ foo() { - return 1; -- }; -- return C; --}()); --var C2 = /** @class */ (function (_super) { -- __extends(C2, _super); -- function C2() { -- return _super !== null && _super.apply(this, arguments) || this; - } -- return C2; --}(A)); -+} -+class C2 extends A { -+} - // no errors - var c; - var c2; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classImplementsClass4.js.diff b/testdata/baselines/reference/submodule/compiler/classImplementsClass4.js.diff index a2f0aed153..a6ccd4ec53 100644 --- a/testdata/baselines/reference/submodule/compiler/classImplementsClass4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classImplementsClass4.js.diff @@ -1,55 +1,13 @@ --- old.classImplementsClass4.js +++ new.classImplementsClass4.js -@@= skipped -18, +18 lines =@@ - c2 = c; +@@= skipped -19, +19 lines =@@ //// [classImplementsClass4.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { + class A { +- constructor() { - this.x = 1; - } -- A.prototype.foo = function () { return 1; }; -- return A; --}()); --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { -+class A { + x = 1; -+ foo() { return 1; } -+} -+class C { -+ foo() { - return 1; -- }; -- return C; --}()); --var C2 = /** @class */ (function (_super) { -- __extends(C2, _super); -- function C2() { -- return _super !== null && _super.apply(this, arguments) || this; - } -- return C2; --}(A)); -+} -+class C2 extends A { -+} - var c; - var c2; - c = c2; \ No newline at end of file + foo() { return 1; } + } + class C { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classImplementsClass5.js.diff b/testdata/baselines/reference/submodule/compiler/classImplementsClass5.js.diff index 90629fa711..485d2a0373 100644 --- a/testdata/baselines/reference/submodule/compiler/classImplementsClass5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classImplementsClass5.js.diff @@ -1,57 +1,20 @@ --- old.classImplementsClass5.js +++ new.classImplementsClass5.js -@@= skipped -19, +19 lines =@@ - c2 = c; +@@= skipped -20, +20 lines =@@ //// [classImplementsClass5.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { + class A { +- constructor() { - this.x = 1; - } -- A.prototype.foo = function () { return 1; }; -- return A; --}()); --var C = /** @class */ (function () { -- function C() { ++ x = 1; + foo() { return 1; } + } + class C { +- constructor() { - this.x = 1; - } -- C.prototype.foo = function () { -+class A { -+ x = 1; -+ foo() { return 1; } -+} -+class C { + x = 1; -+ foo() { + foo() { return 1; -- }; -- return C; --}()); --var C2 = /** @class */ (function (_super) { -- __extends(C2, _super); -- function C2() { -- return _super !== null && _super.apply(this, arguments) || this; - } -- return C2; --}(A)); -+} -+class C2 extends A { -+} - var c; - var c2; - c = c2; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classImplementsClass6.js.diff b/testdata/baselines/reference/submodule/compiler/classImplementsClass6.js.diff deleted file mode 100644 index f45f0aa450..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classImplementsClass6.js.diff +++ /dev/null @@ -1,57 +0,0 @@ ---- old.classImplementsClass6.js -+++ new.classImplementsClass6.js -@@= skipped -23, +23 lines =@@ - c2.bar(); // should error - - //// [classImplementsClass6.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- A.bar = function () { -+class A { -+ static bar() { - return ""; -- }; -- A.prototype.foo = function () { return 1; }; -- return A; --}()); --var C = /** @class */ (function () { -- function C() { - } -- C.prototype.foo = function () { -+ foo() { return 1; } -+} -+class C { -+ foo() { - return 1; -- }; -- return C; --}()); --var C2 = /** @class */ (function (_super) { -- __extends(C2, _super); -- function C2() { -- return _super !== null && _super.apply(this, arguments) || this; - } -- return C2; --}(A)); -+} -+class C2 extends A { -+} - var c; - var c2; - c = c2; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classImplementsClass7.js.diff b/testdata/baselines/reference/submodule/compiler/classImplementsClass7.js.diff index 634e511627..48b53599b2 100644 --- a/testdata/baselines/reference/submodule/compiler/classImplementsClass7.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classImplementsClass7.js.diff @@ -1,21 +1,10 @@ --- old.classImplementsClass7.js +++ new.classImplementsClass7.js -@@= skipped -8, +8 lines =@@ - +@@= skipped -9, +9 lines =@@ //// [classImplementsClass7.js] --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function () { -- function B() { -- } -- return B; --}()); -+class A { + class A { + x; -+} -+class B { -+} \ No newline at end of file + } + class B { + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classImplementsImportedInterface.js.diff b/testdata/baselines/reference/submodule/compiler/classImplementsImportedInterface.js.diff index a9aba75dac..b26c628717 100644 --- a/testdata/baselines/reference/submodule/compiler/classImplementsImportedInterface.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classImplementsImportedInterface.js.diff @@ -4,14 +4,7 @@ //// [classImplementsImportedInterface.js] var M2; (function (M2) { -- var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { }; -- return C; -- }()); + var T = M1.I; -+ class C { -+ foo() { } -+ } - })(M2 || (M2 = {})); \ No newline at end of file + class C { + foo() { } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classImplementsPrimitive.js.diff b/testdata/baselines/reference/submodule/compiler/classImplementsPrimitive.js.diff deleted file mode 100644 index 6e48c3f93e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classImplementsPrimitive.js.diff +++ /dev/null @@ -1,69 +0,0 @@ ---- old.classImplementsPrimitive.js -+++ new.classImplementsPrimitive.js -@@= skipped -17, +17 lines =@@ - - //// [classImplementsPrimitive.js] - // classes cannot implement primitives --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); --var C2 = /** @class */ (function () { -- function C2() { -- } -- return C2; --}()); --var C3 = /** @class */ (function () { -- function C3() { -- } -- return C3; --}()); --var C4 = /** @class */ (function () { -- function class_1() { -- } -- return class_1; --}()); --var C5 = /** @class */ (function () { -- function class_2() { -- } -- return class_2; --}()); --var C6 = /** @class */ (function () { -- function class_3() { -- } -- return class_3; --}()); --var C7 = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var C8 = /** @class */ (function () { -- function B() { -- } -- return B; --}()); --var C9 = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} -+class C2 { -+} -+class C3 { -+} -+const C4 = class { -+}; -+const C5 = class { -+}; -+const C6 = class { -+}; -+const C7 = class A { -+}; -+const C8 = class B { -+}; -+const C9 = class C { -+}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classInConvertedLoopES5.js.diff b/testdata/baselines/reference/submodule/compiler/classInConvertedLoopES5.js.diff index edfa1a6ecc..3efec32be8 100644 --- a/testdata/baselines/reference/submodule/compiler/classInConvertedLoopES5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classInConvertedLoopES5.js.diff @@ -1,27 +1,21 @@ --- old.classInConvertedLoopES5.js +++ new.classInConvertedLoopES5.js -@@= skipped -11, +11 lines =@@ - } - +@@= skipped -13, +13 lines =@@ //// [classInConvertedLoopES5.js] --var classesByRow = {}; --var _loop_1 = function (row) { -- var RowClass = /** @class */ (function () { -- function RowClass() { -- this.row = row; + const classesByRow = {}; + for (const row of ['1', '2', '3', '4', '5']) { +- let RowClass = (() => { +- class RowClass { +- constructor() { +- this.row = row; +- } - } -- RowClass.factory = function () { return new RowClass(); }; +- RowClass.factory = () => new RowClass(); - return RowClass; -- }()); -+const classesByRow = {}; -+for (const row of ['1', '2', '3', '4', '5']) { +- })(); + class RowClass { + row = row; + static factory = () => new RowClass(); + } classesByRow[row] = RowClass; --}; --for (var _i = 0, _a = ['1', '2', '3', '4', '5']; _i < _a.length; _i++) { -- var row = _a[_i]; -- _loop_1(row); } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classIndexer.js.diff b/testdata/baselines/reference/submodule/compiler/classIndexer.js.diff deleted file mode 100644 index ce0f7808e4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classIndexer.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.classIndexer.js -+++ new.classIndexer.js -@@= skipped -7, +7 lines =@@ - } - - //// [classIndexer.js] --var C123 = /** @class */ (function () { -- function C123() { -+class C123 { -+ constructor() { - } -- return C123; --}()); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classIndexer2.js.diff b/testdata/baselines/reference/submodule/compiler/classIndexer2.js.diff index cbeca78741..e0fb3a9d7d 100644 --- a/testdata/baselines/reference/submodule/compiler/classIndexer2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classIndexer2.js.diff @@ -1,16 +1,11 @@ --- old.classIndexer2.js +++ new.classIndexer2.js -@@= skipped -9, +9 lines =@@ - } +@@= skipped -10, +10 lines =@@ //// [classIndexer2.js] --var C123 = /** @class */ (function () { -- function C123() { -+class C123 { + class C123 { + x; + y; -+ constructor() { + constructor() { } -- return C123; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classIndexer3.js.diff b/testdata/baselines/reference/submodule/compiler/classIndexer3.js.diff index 4759b4c39d..97a76b2577 100644 --- a/testdata/baselines/reference/submodule/compiler/classIndexer3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classIndexer3.js.diff @@ -1,41 +1,9 @@ --- old.classIndexer3.js +++ new.classIndexer3.js -@@= skipped -12, +12 lines =@@ +@@= skipped -17, +17 lines =@@ + } } - - //// [classIndexer3.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var C123 = /** @class */ (function () { -- function C123() { -- } -- return C123; --}()); --var D123 = /** @class */ (function (_super) { -- __extends(D123, _super); -- function D123() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return D123; --}(C123)); -+class C123 { -+ constructor() { -+ } -+} -+class D123 extends C123 { + class D123 extends C123 { + x; + y; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classIndexer4.js.diff b/testdata/baselines/reference/submodule/compiler/classIndexer4.js.diff deleted file mode 100644 index 29fb12f938..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classIndexer4.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.classIndexer4.js -+++ new.classIndexer4.js -@@= skipped -12, +12 lines =@@ - } - - //// [classIndexer4.js] --var C123 = /** @class */ (function () { -- function C123() { -+class C123 { -+ constructor() { - } -- return C123; --}()); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classInheritence.js.diff b/testdata/baselines/reference/submodule/compiler/classInheritence.js.diff deleted file mode 100644 index 3a93de8cd0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classInheritence.js.diff +++ /dev/null @@ -1,39 +0,0 @@ ---- old.classInheritence.js -+++ new.classInheritence.js -@@= skipped -4, +4 lines =@@ - class A extends A { } - - //// [classInheritence.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; --}(A)); --var A = /** @class */ (function (_super) { -- __extends(A, _super); -- function A() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return A; --}(A)); -+class B extends A { -+} -+class A extends A { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classMemberInitializerScoping.js.diff b/testdata/baselines/reference/submodule/compiler/classMemberInitializerScoping.js.diff index 0713123d62..8f41ee3304 100644 --- a/testdata/baselines/reference/submodule/compiler/classMemberInitializerScoping.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classMemberInitializerScoping.js.diff @@ -4,29 +4,26 @@ //// [classMemberInitializerScoping.js] var aaa = 1; --var CCC = /** @class */ (function () { -- function CCC(aaa) { -- this.y = aaa; +-let CCC = (() => { +- class CCC { +- constructor(aaa) { +- this.y = aaa; +- this.y = ''; // was: error, cannot assign string to number +- } +class CCC { + y = aaa; + static staticY = aaa; // This shouldnt be error + constructor(aaa) { - this.y = ''; // was: error, cannot assign string to number ++ this.y = ''; // was: error, cannot assign string to number } - CCC.staticY = aaa; // This shouldnt be error - return CCC; --}()); +-})(); +} // above is equivalent to this: var aaaa = 1; --var CCCC = /** @class */ (function () { -- function CCCC(aaaa) { -+class CCCC { + class CCCC { + y; -+ constructor(aaaa) { + constructor(aaaa) { this.y = aaaa; - this.y = ''; - } -- return CCCC; --}()); -+} \ No newline at end of file + this.y = ''; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping.js.diff b/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping.js.diff index c58f1770ac..a8bac01050 100644 --- a/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping.js.diff @@ -4,19 +4,21 @@ } //// [classMemberInitializerWithLamdaScoping.js] --var Test = /** @class */ (function () { -- function Test(field) { -- var _this = this; +-let Test = (() => { +- class Test { +- constructor(field) { +- this.field = field; +- this.messageHandler = () => { +- var field = this.field; +- console.log(field); // Using field here shouldnt be error +- }; +- } +class Test { + field; + constructor(field) { - this.field = field; -- this.messageHandler = function () { -- var field = _this.field; -- console.log(field); // Using field here shouldnt be error -- }; ++ this.field = field; } -- Test.staticMessageHandler = function () { +- Test.staticMessageHandler = () => { + messageHandler = () => { + var field = this.field; + console.log(field); // Using field here shouldnt be error @@ -27,22 +29,25 @@ console.log(field); // Using field here shouldnt be error }; - return Test; --}()); +-})(); +} var field1; --var Test1 = /** @class */ (function () { -- function Test1(field1) { +-let Test1 = (() => { +- class Test1 { +- constructor(field1) { +- this.field1 = field1; +- this.messageHandler = () => { +- console.log(field1); // But this should be error as the field1 will resolve to var field1 +- // but since this code would be generated inside constructor, in generated js +- // it would resolve to private field1 and thats not what user intended here. +- }; +- } +class Test1 { + field1; + constructor(field1) { - this.field1 = field1; -- this.messageHandler = function () { -- console.log(field1); // But this should be error as the field1 will resolve to var field1 -- // but since this code would be generated inside constructor, in generated js -- // it would resolve to private field1 and thats not what user intended here. -- }; ++ this.field1 = field1; } -- Test1.staticMessageHandler = function () { +- Test1.staticMessageHandler = () => { + messageHandler = () => { + console.log(field1); // But this should be error as the field1 will resolve to var field1 + // but since this code would be generated inside constructor, in generated js @@ -52,5 +57,5 @@ console.log(field1); // This shouldnt be error as its a static property }; - return Test1; --}()); +-})(); +} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping2.js.diff b/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping2.js.diff index 663195c0d9..e2205f1948 100644 --- a/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping2.js.diff @@ -1,26 +1,21 @@ --- old.classMemberInitializerWithLamdaScoping2.js +++ new.classMemberInitializerWithLamdaScoping2.js -@@= skipped -19, +19 lines =@@ - //// [classMemberInitializerWithLamdaScoping2_0.js] +@@= skipped -20, +20 lines =@@ var field1; //// [classMemberInitializerWithLamdaScoping2_1.js] --var Test1 = /** @class */ (function () { -- function Test1(field1) { -+class Test1 { + class Test1 { + field1; -+ constructor(field1) { + constructor(field1) { this.field1 = field1; -- this.messageHandler = function () { +- this.messageHandler = () => { - console.log(field1); // But this should be error as the field1 will resolve to var field1 - // but since this code would be generated inside constructor, in generated js - // it would resolve to private field1 and thats not what user intended here. - }; } -- return Test1; --}()); + messageHandler = () => { + console.log(field1); // But this should be error as the field1 will resolve to var field1 + // but since this code would be generated inside constructor, in generated js + // it would resolve to private field1 and thats not what user intended here. + }; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping3.js.diff b/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping3.js.diff index e48bc69e6b..ea26268d8d 100644 --- a/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping3.js.diff @@ -1,27 +1,22 @@ --- old.classMemberInitializerWithLamdaScoping3.js +++ new.classMemberInitializerWithLamdaScoping3.js -@@= skipped -22, +22 lines =@@ - "use strict"; +@@= skipped -23, +23 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Test1 = void 0; --var Test1 = /** @class */ (function () { -- function Test1(field1) { -+class Test1 { + class Test1 { + field1; -+ constructor(field1) { + constructor(field1) { this.field1 = field1; -- this.messageHandler = function () { +- this.messageHandler = () => { - console.log(field1); // But this should be error as the field1 will resolve to var field1 - // but since this code would be generated inside constructor, in generated js - // it would resolve to private field1 and thats not what user intended here. - }; } -- return Test1; --}()); + messageHandler = () => { + console.log(field1); // But this should be error as the field1 will resolve to var field1 + // but since this code would be generated inside constructor, in generated js + // it would resolve to private field1 and thats not what user intended here. + }; -+} + } exports.Test1 = Test1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping4.js.diff b/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping4.js.diff index 0412c728bc..f4a315a51b 100644 --- a/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping4.js.diff @@ -1,23 +1,18 @@ --- old.classMemberInitializerWithLamdaScoping4.js +++ new.classMemberInitializerWithLamdaScoping4.js -@@= skipped -22, +22 lines =@@ - "use strict"; +@@= skipped -23, +23 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Test1 = void 0; --var Test1 = /** @class */ (function () { -- function Test1(field1) { -+class Test1 { + class Test1 { + field1; -+ constructor(field1) { + constructor(field1) { this.field1 = field1; -- this.messageHandler = function () { +- this.messageHandler = () => { - console.log(field1); // Should be error that couldnt find symbol field1 - }; } -- return Test1; --}()); + messageHandler = () => { + console.log(field1); // Should be error that couldnt find symbol field1 + }; -+} + } exports.Test1 = Test1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping5.js.diff b/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping5.js.diff index 9bb62b150f..6fae904b4f 100644 --- a/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classMemberInitializerWithLamdaScoping5.js.diff @@ -1,20 +1,14 @@ --- old.classMemberInitializerWithLamdaScoping5.js +++ new.classMemberInitializerWithLamdaScoping5.js -@@= skipped -13, +13 lines =@@ - } - +@@= skipped -15, +15 lines =@@ //// [classMemberInitializerWithLamdaScoping5.js] --var Greeter = /** @class */ (function () { -- function Greeter(message) { -- this.messageHandler = function (message) { + class Greeter { + constructor(message) { +- this.messageHandler = (message) => { - console.log(message); // This shouldnt be error - }; -+class Greeter { -+ constructor(message) { } -- return Greeter; --}()); + messageHandler = (message) => { + console.log(message); // This shouldnt be error + }; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classMemberWithMissingIdentifier.js.diff b/testdata/baselines/reference/submodule/compiler/classMemberWithMissingIdentifier.js.diff index 55269ed2c1..b8be7e3356 100644 --- a/testdata/baselines/reference/submodule/compiler/classMemberWithMissingIdentifier.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classMemberWithMissingIdentifier.js.diff @@ -1,16 +1,10 @@ --- old.classMemberWithMissingIdentifier.js +++ new.classMemberWithMissingIdentifier.js -@@= skipped -5, +5 lines =@@ - } +@@= skipped -6, +6 lines =@@ //// [classMemberWithMissingIdentifier.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { + class C { + ; -+} + } { } ; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classMemberWithMissingIdentifier2.js.diff b/testdata/baselines/reference/submodule/compiler/classMemberWithMissingIdentifier2.js.diff index 250dd2893f..58f193d89a 100644 --- a/testdata/baselines/reference/submodule/compiler/classMemberWithMissingIdentifier2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classMemberWithMissingIdentifier2.js.diff @@ -1,17 +1,10 @@ --- old.classMemberWithMissingIdentifier2.js +++ new.classMemberWithMissingIdentifier2.js -@@= skipped -5, +5 lines =@@ - } +@@= skipped -6, +6 lines =@@ //// [classMemberWithMissingIdentifier2.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { + class C { + ; -+} + } { - [name, string]; - VariableDeclaration; \ No newline at end of file + [name, string]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classMergedWithInterfaceMultipleBasesNoError.js.diff b/testdata/baselines/reference/submodule/compiler/classMergedWithInterfaceMultipleBasesNoError.js.diff index 16f49e4db4..979e7500c7 100644 --- a/testdata/baselines/reference/submodule/compiler/classMergedWithInterfaceMultipleBasesNoError.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classMergedWithInterfaceMultipleBasesNoError.js.diff @@ -1,44 +1,15 @@ --- old.classMergedWithInterfaceMultipleBasesNoError.js +++ new.classMergedWithInterfaceMultipleBasesNoError.js -@@= skipped -13, +13 lines =@@ - - //// [classMergedWithInterfaceMultipleBasesNoError.js] - "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - Object.defineProperty(exports, "__esModule", { value: true }); --var Foo = /** @class */ (function () { -- function Foo() { +@@= skipped -17, +17 lines =@@ + class Foo { + } + class default_1 extends Foo { +- constructor() { +- super(...arguments); +- this.observer = this.handleIntersection; +- this.handleIntersection = () => { }; - } -- return Foo; --}()); --var default_1 = /** @class */ (function (_super) { -- __extends(default_1, _super); -- function default_1() { -- var _this = _super !== null && _super.apply(this, arguments) || this; -- _this.observer = _this.handleIntersection; -- _this.handleIntersection = function () { }; -- return _this; -- } -- return default_1; --}(Foo)); -+class Foo { -+} -+class default_1 extends Foo { + observer = this.handleIntersection; + handleIntersection = () => { }; -+} + } exports.default = default_1; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classMethodWithKeywordName1.js.diff b/testdata/baselines/reference/submodule/compiler/classMethodWithKeywordName1.js.diff deleted file mode 100644 index 4dd224a602..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classMethodWithKeywordName1.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.classMethodWithKeywordName1.js -+++ new.classMethodWithKeywordName1.js -@@= skipped -5, +5 lines =@@ - } - - //// [classMethodWithKeywordName1.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.try = function () { }; -- return C; --}()); -+class C { -+ static try() { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classOrder1.js.diff b/testdata/baselines/reference/submodule/compiler/classOrder1.js.diff deleted file mode 100644 index 5d7d4d4e0e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classOrder1.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.classOrder1.js -+++ new.classOrder1.js -@@= skipped -13, +13 lines =@@ - - - //// [classOrder1.js] --var A = /** @class */ (function () { -- function A() { -- } -- A.prototype.foo = function () { -+class A { -+ foo() { - /*WScript.Echo("Here!");*/ -- }; -- return A; --}()); -+ } -+} - var a = new A(); - a.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classOrder2.js.diff b/testdata/baselines/reference/submodule/compiler/classOrder2.js.diff deleted file mode 100644 index 0c6454ecc4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classOrder2.js.diff +++ /dev/null @@ -1,43 +0,0 @@ ---- old.classOrder2.js -+++ new.classOrder2.js -@@= skipped -20, +20 lines =@@ - - - //// [classOrder2.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function (_super) { -- __extends(A, _super); -- function A() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- A.prototype.foo = function () { this.bar(); }; -- return A; --}(B)); --var B = /** @class */ (function () { -- function B() { -- } -- B.prototype.bar = function () { }; -- return B; --}()); -+class A extends B { -+ foo() { this.bar(); } -+} -+class B { -+ bar() { } -+} - var a = new A(); - a.foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classOrderBug.js.diff b/testdata/baselines/reference/submodule/compiler/classOrderBug.js.diff index f9c209a8e8..b8bc95638d 100644 --- a/testdata/baselines/reference/submodule/compiler/classOrderBug.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classOrderBug.js.diff @@ -1,47 +1,10 @@ --- old.classOrderBug.js +++ new.classOrderBug.js -@@= skipped -17, +17 lines =@@ - +@@= skipped -18, +18 lines =@@ //// [classOrderBug.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var bar = /** @class */ (function () { -- function bar() { -+class bar { + class bar { + baz; -+ constructor() { + constructor() { this.baz = new foo(); - } -- return bar; --}()); --var baz = /** @class */ (function () { -- function baz() { -- } -- return baz; --}()); --var foo = /** @class */ (function (_super) { -- __extends(foo, _super); -- function foo() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return foo; --}(baz)); -+} -+class baz { -+} -+class foo extends baz { -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classOverloadForFunction.js.diff b/testdata/baselines/reference/submodule/compiler/classOverloadForFunction.js.diff deleted file mode 100644 index 6df1073801..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classOverloadForFunction.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.classOverloadForFunction.js -+++ new.classOverloadForFunction.js -@@= skipped -5, +5 lines =@@ - - - //// [classOverloadForFunction.js] --var foo = /** @class */ (function () { -- function foo() { -- } -- return foo; --}()); -+class foo { -+} - ; - function foo() { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classOverloadForFunction2.js.diff b/testdata/baselines/reference/submodule/compiler/classOverloadForFunction2.js.diff deleted file mode 100644 index db959b0cb3..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classOverloadForFunction2.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.classOverloadForFunction2.js -+++ new.classOverloadForFunction2.js -@@= skipped -4, +4 lines =@@ - class bar {} - - //// [classOverloadForFunction2.js] --var bar = /** @class */ (function () { -- function bar() { -- } -- return bar; --}()); -+class bar { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classPropertyErrorOnNameOnly.js.diff b/testdata/baselines/reference/submodule/compiler/classPropertyErrorOnNameOnly.js.diff index d620b439d9..6f0ea69d3a 100644 --- a/testdata/baselines/reference/submodule/compiler/classPropertyErrorOnNameOnly.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classPropertyErrorOnNameOnly.js.diff @@ -6,8 +6,8 @@ //// [classPropertyErrorOnNameOnly.js] -"use strict"; // turn on strictNullChecks --var Example = /** @class */ (function () { -- function Example() { + class Example { +- constructor() { - this.insideClass = function (val) { - switch (val) { - case 1: @@ -24,10 +24,6 @@ - } - }; // all the way to here - } -- return Example; --}()); --var outsideClass = function (val) { -+class Example { + insideClass = function (val) { + switch (val) { + case 1: @@ -43,8 +39,6 @@ + // forgot case 6 + } + }; // all the way to here -+} -+const outsideClass = function (val) { - switch (val) { - case 1: - return "1"; \ No newline at end of file + } + const outsideClass = function (val) { + switch (val) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classSideInheritance1.js.diff b/testdata/baselines/reference/submodule/compiler/classSideInheritance1.js.diff deleted file mode 100644 index 4c84fac90d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classSideInheritance1.js.diff +++ /dev/null @@ -1,46 +0,0 @@ ---- old.classSideInheritance1.js -+++ new.classSideInheritance1.js -@@= skipped -17, +17 lines =@@ - C2.bar(); // valid - - //// [classSideInheritance1.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- A.bar = function () { -+class A { -+ static bar() { - return ""; -- }; -- A.prototype.foo = function () { return 1; }; -- return A; --}()); --var C2 = /** @class */ (function (_super) { -- __extends(C2, _super); -- function C2() { -- return _super !== null && _super.apply(this, arguments) || this; - } -- return C2; --}(A)); -+ foo() { return 1; } -+} -+class C2 extends A { -+} - var a; - var c; - a.bar(); // static off an instance - should be an error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classSideInheritance2.js.diff b/testdata/baselines/reference/submodule/compiler/classSideInheritance2.js.diff index 384de9bcff..3d3cf99554 100644 --- a/testdata/baselines/reference/submodule/compiler/classSideInheritance2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classSideInheritance2.js.diff @@ -1,46 +1,10 @@ --- old.classSideInheritance2.js +++ new.classSideInheritance2.js -@@= skipped -22, +22 lines =@@ +@@= skipped -28, +28 lines =@@ + } } - - //// [classSideInheritance2.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var SubText = /** @class */ (function (_super) { -- __extends(SubText, _super); -- function SubText(text, span) { -- return _super.call(this) || this; -- } -- return SubText; --}(TextBase)); --var TextBase = /** @class */ (function () { -- function TextBase() { -- } -- TextBase.prototype.subText = function (span) { -+class SubText extends TextBase { -+ constructor(text, span) { -+ super(); -+ } -+} -+class TextBase { + class TextBase { + foo; -+ subText(span) { + subText(span) { return new SubText(this, span); -- }; -- return TextBase; --}()); -+ } -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classSideInheritance3.js.diff b/testdata/baselines/reference/submodule/compiler/classSideInheritance3.js.diff index 858291834a..1e1480e418 100644 --- a/testdata/baselines/reference/submodule/compiler/classSideInheritance3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classSideInheritance3.js.diff @@ -1,62 +1,16 @@ --- old.classSideInheritance3.js +++ new.classSideInheritance3.js -@@= skipped -20, +20 lines =@@ - var r3: typeof A = C; // ok +@@= skipped -21, +21 lines =@@ //// [classSideInheritance3.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A(x) { -+class A { + class A { + x; -+ constructor(x) { + constructor(x) { this.x = x; } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B(x, data) { -- var _this = _super.call(this, x) || this; -- _this.data = data; -- return _this; -- } -- return B; --}(A)); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C(x) { -- return _super.call(this, x) || this; -- } -- return C; --}(A)); -+} -+class B extends A { + } + class B extends A { + data; -+ constructor(x, data) { -+ super(x); -+ this.data = data; -+ } -+} -+class C extends A { -+ constructor(x) { -+ super(x); -+ } -+} - var r1 = B; // error - var r2 = B; // error - var r3 = C; // ok \ No newline at end of file + constructor(x, data) { + super(x); + this.data = data; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.js.diff index 85b09a2550..79bc13238b 100644 --- a/testdata/baselines/reference/submodule/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.js.diff @@ -4,14 +4,14 @@ //// [classStaticInitializersUsePropertiesBeforeDeclaration.js] --var Foo = /** @class */ (function () { -- function Foo() { +-let Foo = (() => { +- class Foo { - } - Foo.enumMember = Enum.A; - Foo.objLiteralMember = ObjLiteral.A; - Foo.namespaceMember = Namespace.A; - return Foo; --}()); +-})(); +class Foo { + static enumMember = Enum.A; + static objLiteralMember = ObjLiteral.A; @@ -19,10 +19,4 @@ +} var Enum; (function (Enum) { - Enum[Enum["A"] = 0] = "A"; - })(Enum || (Enum = {})); --var ObjLiteral = { -+const ObjLiteral = { - A: 0 - }; - var Namespace; \ No newline at end of file + Enum[Enum["A"] = 0] = "A"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classStaticPropertyAccess.js.diff b/testdata/baselines/reference/submodule/compiler/classStaticPropertyAccess.js.diff index 11c4a98538..6be9d96ae2 100644 --- a/testdata/baselines/reference/submodule/compiler/classStaticPropertyAccess.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classStaticPropertyAccess.js.diff @@ -5,23 +5,21 @@ //// [classStaticPropertyAccess.js] -"use strict"; --var A = /** @class */ (function () { -- function A() { +-let A = (() => { +- class A { +- static "\""() { } - } -- A["\""] = function () { }; - A.x = 1; - A.y = 1; - A._b = 2; - return A; --}()); --var a = new A(); +-})(); +class A { + static "\""() { } + static x = 1; + static y = 1; + static _b = 2; +} -+const a = new A(); + const a = new A(); a["\""]; // Error - a['y']; // Error - a.y; // Error \ No newline at end of file + a['y']; // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classStaticPropertyTypeGuard.js.diff b/testdata/baselines/reference/submodule/compiler/classStaticPropertyTypeGuard.js.diff index c777ac2003..8dc886311f 100644 --- a/testdata/baselines/reference/submodule/compiler/classStaticPropertyTypeGuard.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classStaticPropertyTypeGuard.js.diff @@ -1,29 +1,10 @@ --- old.classStaticPropertyTypeGuard.js +++ new.classStaticPropertyTypeGuard.js -@@= skipped -15, +15 lines =@@ - +@@= skipped -16, +16 lines =@@ //// [classStaticPropertyTypeGuard.js] // Repro from #8923 --var A = /** @class */ (function () { -- function A() { -+class A { + class A { + static _a; -+ get a() { -+ if (A._a) { -+ return A._a; // is possibly null or undefined. -+ } -+ return A._a = 'helloworld'; - } -- Object.defineProperty(A.prototype, "a", { -- get: function () { -- if (A._a) { -- return A._a; // is possibly null or undefined. -- } -- return A._a = 'helloworld'; -- }, -- enumerable: false, -- configurable: true -- }); -- return A; --}()); -+} \ No newline at end of file + get a() { + if (A._a) { + return A._a; // is possibly null or undefined. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classTypeParametersInStatics.js.diff b/testdata/baselines/reference/submodule/compiler/classTypeParametersInStatics.js.diff index b5b37470e9..7aa0f15aad 100644 --- a/testdata/baselines/reference/submodule/compiler/classTypeParametersInStatics.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classTypeParametersInStatics.js.diff @@ -1,58 +1,13 @@ --- old.classTypeParametersInStatics.js +++ new.classTypeParametersInStatics.js -@@= skipped -37, +37 lines =@@ - //// [classTypeParametersInStatics.js] +@@= skipped -38, +38 lines =@@ var Editor; (function (Editor) { -- var List = /** @class */ (function () { -- function List(isHead, data) { -+ class List { + class List { + isHead; + data; + next; + prev; -+ constructor(isHead, data) { + constructor(isHead, data) { this.isHead = isHead; - this.data = data; - } -- List.MakeHead = function () { -- var entry = new List(true, null); -- entry.prev = entry; -- entry.next = entry; -- return entry; -- }; -- List.MakeHead2 = function () { -- var entry = new List(true, null); -- entry.prev = entry; -- entry.next = entry; -- return entry; -- }; -- List.MakeHead3 = function () { -- var entry = new List(true, null); -- entry.prev = entry; -- entry.next = entry; -- return entry; -- }; -- return List; -- }()); -+ static MakeHead() { -+ var entry = new List(true, null); -+ entry.prev = entry; -+ entry.next = entry; -+ return entry; -+ } -+ static MakeHead2() { -+ var entry = new List(true, null); -+ entry.prev = entry; -+ entry.next = entry; -+ return entry; -+ } -+ static MakeHead3() { -+ var entry = new List(true, null); -+ entry.prev = entry; -+ entry.next = entry; -+ return entry; -+ } -+ } - Editor.List = List; - })(Editor || (Editor = {})); \ No newline at end of file + this.data = data; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classUpdateTests.js.diff b/testdata/baselines/reference/submodule/compiler/classUpdateTests.js.diff index fb9ceff101..32d96ea106 100644 --- a/testdata/baselines/reference/submodule/compiler/classUpdateTests.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classUpdateTests.js.diff @@ -1,264 +1,123 @@ --- old.classUpdateTests.js +++ new.classUpdateTests.js -@@= skipped -115, +115 lines =@@ - } - - //// [classUpdateTests.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - // +@@= skipped -119, +119 lines =@@ // test codegen for instance properties // --var A = /** @class */ (function () { -- function A() { -- this.p1 = 0; -- this.p2 = 0; -- } -- return A; --}()); --var B = /** @class */ (function () { -- function B() { + class A { +- constructor() { - this.p1 = 0; - this.p2 = 0; - } -- return B; --}()); --var C = /** @class */ (function () { -- function C(p1, p2, p3) { -- if (p1 === void 0) { p1 = 0; } -- if (p2 === void 0) { p2 = 0; } -- if (p3 === void 0) { p3 = 0; } -+class A { + p1 = 0; + p2 = 0; + p3; -+} -+class B { + } + class B { +- constructor() { +- this.p1 = 0; +- this.p2 = 0; +- } + p1 = 0; + p2 = 0; + p3; + constructor() { } -+} -+class C { + } + class C { + p1; + p2; -+ constructor(p1 = 0, p2 = 0, p3 = 0) { + constructor(p1 = 0, p2 = 0, p3 = 0) { this.p1 = p1; this.p2 = p2; - } -- return C; --}()); -+} - // - // test requirements for super calls - // --var D = /** @class */ (function () { -- function D() { -- } -- return D; --}()); --var E = /** @class */ (function (_super) { -- __extends(E, _super); -- function E() { -- var _this = _super !== null && _super.apply(this, arguments) || this; -- _this.p1 = 0; -- return _this; -- } -- return E; --}(D)); --var F = /** @class */ (function (_super) { -- __extends(F, _super); -- function F() { -- var _this = this; -- return _this; -- } // ERROR - super call required -- return F; --}(E)); --var G = /** @class */ (function (_super) { -- __extends(G, _super); -- function G() { -- var _this = _super.call(this) || this; -- _this.p1 = 0; -- return _this; -- } // NO ERROR -- return G; --}(D)); --var H = /** @class */ (function () { -- function H() { -- return _super.call(this) || this; -- } // ERROR - no super call allowed -- return H; --}()); --var I = /** @class */ (function (_super) { -- __extends(I, _super); -- function I() { -- return _super.call(this) || this; -- } // ERROR - no super call allowed -- return I; --}(Object)); --var J = /** @class */ (function (_super) { -- __extends(J, _super); -- function J(p1) { -- var _this = _super.call(this) || this; // NO ERROR -- _this.p1 = p1; -- return _this; -- } -- return J; --}(G)); --var K = /** @class */ (function (_super) { -- __extends(K, _super); -- function K(p1) { -- var _this = this; -- var i = 0; -- _this = _super.call(this) || this; -- _this.p1 = p1; -- return _this; -- } -- return K; --}(G)); --var L = /** @class */ (function (_super) { -- __extends(L, _super); -- function L(p1) { -- var _this = _super.call(this) || this; // NO ERROR -- _this.p1 = p1; -- return _this; -- } -- return L; --}(G)); --var M = /** @class */ (function (_super) { -- __extends(M, _super); -- function M(p1) { -- var _this = this; -- var i = 0; -- _this = _super.call(this) || this; -- _this.p1 = p1; -- return _this; +@@= skipped -23, +24 lines =@@ + class D { + } + class E extends D { +- constructor() { +- super(...arguments); +- this.p1 = 0; - } -- return M; --}(G)); -+class D { -+} -+class E extends D { + p1 = 0; -+} -+class F extends E { -+ constructor() { } // ERROR - super call required -+} -+class G extends D { + } + class F extends E { + constructor() { } // ERROR - super call required + } + class G extends D { +- constructor() { +- super(); +- this.p1 = 0; +- } // NO ERROR + p1 = 0; + constructor() { super(); } // NO ERROR -+} -+class H { -+ constructor() { super(); } // ERROR - no super call allowed -+} -+class I extends Object { -+ constructor() { super(); } // ERROR - no super call allowed -+} -+class J extends G { + } + class H { + constructor() { super(); } // ERROR - no super call allowed +@@= skipped -21, +16 lines =@@ + constructor() { super(); } // ERROR - no super call allowed + } + class J extends G { + p1; -+ constructor(p1) { -+ super(); // NO ERROR -+ this.p1 = p1; -+ } -+} -+class K extends G { + constructor(p1) { + super(); // NO ERROR + this.p1 = p1; + } + } + class K extends G { + p1; -+ constructor(p1) { -+ var i = 0; -+ super(); -+ this.p1 = p1; -+ } -+} -+class L extends G { + constructor(p1) { + var i = 0; + super(); +@@= skipped -13, +15 lines =@@ + } + } + class L extends G { + p1; -+ constructor(p1) { -+ super(); // NO ERROR -+ this.p1 = p1; -+ } -+} -+class M extends G { + constructor(p1) { + super(); // NO ERROR + this.p1 = p1; + } + } + class M extends G { + p1; -+ constructor(p1) { -+ var i = 0; -+ super(); -+ this.p1 = p1; -+ } -+} - // + constructor(p1) { + var i = 0; + super(); +@@= skipped -16, +18 lines =@@ // test this reference in field initializers // --var N = /** @class */ (function () { -- function N() { -- this.p1 = 0; -- this.p2 = this.p1; -+class N { + class N { + p1 = 0; + p2 = this.p1; -+ constructor() { + constructor() { +- this.p1 = 0; +- this.p2 = this.p1; this.p2 = 0; } -- return N; --}()); -+} - // - // test error on property declarations within class constructors + } +@@= skipped -11, +11 lines =@@ // --var O = /** @class */ (function () { -- function O() { + class O { + constructor() { - this.p1 = 0; // ERROR -- } -- return O; --}()); --var P = /** @class */ (function () { -- function P() { -- this.p1 = 0; // ERROR -- } -- return P; --}()); --var Q = /** @class */ (function () { -- function Q() { -- this.p1 = 0; // ERROR -- } -- return Q; --}()); --var R = /** @class */ (function () { -- function R() { -- this.p1 = 0; // ERROR -- } -- return R; --}()); -+class O { -+ constructor() { -+ } + } + p1 = 0; // ERROR -+} -+class P { -+ constructor() { -+ } + } + class P { + constructor() { +- this.p1 = 0; // ERROR + } + p1 = 0; // ERROR -+} -+class Q { -+ constructor() { -+ } + } + class Q { + constructor() { +- this.p1 = 0; // ERROR + } + this; + p1 = 0; // ERROR -+} -+class R { -+ constructor() { -+ } + } + class R { + constructor() { +- this.p1 = 0; // ERROR + } + this; + p1 = 0; // ERROR -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classUsedBeforeInitializedVariables.js.diff b/testdata/baselines/reference/submodule/compiler/classUsedBeforeInitializedVariables.js.diff index 94c40809e8..a4c40266ff 100644 --- a/testdata/baselines/reference/submodule/compiler/classUsedBeforeInitializedVariables.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classUsedBeforeInitializedVariables.js.diff @@ -1,28 +1,10 @@ --- old.classUsedBeforeInitializedVariables.js +++ new.classUsedBeforeInitializedVariables.js -@@= skipped -49, +49 lines =@@ - +@@= skipped -50, +50 lines =@@ //// [classUsedBeforeInitializedVariables.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Test = /** @class */ (function () { -- function Test() { -- var _a, _b, _c; -- var _this = this; + class Test { +- constructor() { - this.p1 = 0; - this.p2 = this.p1; - this.p3 = this.p4; @@ -31,46 +13,30 @@ - hello: (this.p6 = "string"), - }; - this.directlyAssigned = this.directlyAssigned; -- this.withinArrowFunction = function () { return _this.withinArrowFunction; }; +- this.withinArrowFunction = () => this.withinArrowFunction; - this.withinFunction = function () { - return this.withinFunction; - }; -- this.withinObjectLiteral = (_a = {}, -- _a[this.withinObjectLiteral] = true, -- _a); -- this.withinObjectLiteralGetterName = (_b = {}, -- Object.defineProperty(_b, this.withinObjectLiteralGetterName, { -- get: function () { -- return true; -- }, -- enumerable: false, -- configurable: true -- }), -- _b); -- this.withinObjectLiteralSetterName = (_c = {}, -- Object.defineProperty(_c, this.withinObjectLiteralSetterName, { -- set: function (_) { }, -- enumerable: false, -- configurable: true -- }), -- _c); -- this.withinClassDeclarationExtension = (/** @class */ (function (_super) { -- __extends(class_1, _super); -- function class_1() { -- return _super !== null && _super.apply(this, arguments) || this; +- this.withinObjectLiteral = { +- [this.withinObjectLiteral]: true, +- }; +- this.withinObjectLiteralGetterName = { +- get [this.withinObjectLiteralGetterName]() { +- return true; - } -- return class_1; -- }(this.withinClassDeclarationExtension))); +- }; +- this.withinObjectLiteralSetterName = { +- set [this.withinObjectLiteralSetterName](_) { } +- }; +- this.withinClassDeclarationExtension = (class extends this.withinClassDeclarationExtension { +- }); - this.fromOptional = this.p5; - // These error cases are ignored (not checked by control flow analysis) -- this.assignedByArrowFunction = (function () { return _this.assignedByFunction; })(); +- this.assignedByArrowFunction = (() => this.assignedByFunction)(); - this.assignedByFunction = (function () { - return this.assignedByFunction; - })(); - } -- return Test; --}()); -+class Test { + p1 = 0; + p2 = this.p1; + p3 = this.p4; @@ -104,4 +70,4 @@ + assignedByFunction = (function () { + return this.assignedByFunction; + })(); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classVarianceCircularity.js.diff b/testdata/baselines/reference/submodule/compiler/classVarianceCircularity.js.diff index ed15dc7e8e..5b9f6fa6f1 100644 --- a/testdata/baselines/reference/submodule/compiler/classVarianceCircularity.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classVarianceCircularity.js.diff @@ -7,22 +7,18 @@ -"use strict"; // Issue #52813 function f() { -- var b = new Bar(); -+ const b = new Bar(); - // Uncomment to create error + const b = new Bar(); +@@= skipped -8, +7 lines =@@ console.log(b.Value); } --var Bar = /** @class */ (function () { -- function Bar() { + class Bar { +- constructor() { - // Or swap these two lines - this.Field = this.num; - this.Value = this.num; - } -- return Bar; --}()); -+class Bar { + num; + // Or swap these two lines + Field = this.num; + Value = this.num; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classVarianceResolveCircularity1.js.diff b/testdata/baselines/reference/submodule/compiler/classVarianceResolveCircularity1.js.diff index 81d077e106..729c5221e5 100644 --- a/testdata/baselines/reference/submodule/compiler/classVarianceResolveCircularity1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classVarianceResolveCircularity1.js.diff @@ -6,15 +6,12 @@ //// [classVarianceResolveCircularity1.js] -"use strict"; // Issue #52813 --var Bar = /** @class */ (function () { -- function Bar() { + class Bar { +- constructor() { - this.Value = callme(this).num; - this.Field = callme(this).num; - } -- return Bar; --}()); -+class Bar { + num; + Value = callme(this).num; + Field = callme(this).num; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classVarianceResolveCircularity2.js.diff b/testdata/baselines/reference/submodule/compiler/classVarianceResolveCircularity2.js.diff index 6e5b3b26f3..46edd29106 100644 --- a/testdata/baselines/reference/submodule/compiler/classVarianceResolveCircularity2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classVarianceResolveCircularity2.js.diff @@ -6,25 +6,17 @@ "use strict"; -// Issue #52813 Object.defineProperty(exports, "__esModule", { value: true }); --var Bar = /** @class */ (function () { -- function Bar() { + class Bar { +- constructor() { - this.Value = callme(new Foo(this)).bar.num; - this.Field = callme(new Foo(this)).bar.num; - } -- return Bar; --}()); --var Foo = /** @class */ (function () { -- function Foo(bar) { -+class Bar { + num; + Value = callme(new Foo(this)).bar.num; + Field = callme(new Foo(this)).bar.num; -+} -+class Foo { + } + class Foo { + bar; -+ constructor(bar) { + constructor(bar) { this.bar = bar; - } -- return Foo; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classWithDuplicateIdentifier.js.diff b/testdata/baselines/reference/submodule/compiler/classWithDuplicateIdentifier.js.diff index b62199887c..f4756e5c89 100644 --- a/testdata/baselines/reference/submodule/compiler/classWithDuplicateIdentifier.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classWithDuplicateIdentifier.js.diff @@ -1,35 +1,16 @@ --- old.classWithDuplicateIdentifier.js +++ new.classWithDuplicateIdentifier.js -@@= skipped -15, +15 lines =@@ - - +@@= skipped -17, +17 lines =@@ //// [classWithDuplicateIdentifier.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.a = function () { return 0; }; // error: duplicate identifier -- return C; --}()); --var K = /** @class */ (function () { -- function K() { -- } -- K.prototype.b = function () { return 0; }; -- return K; --}()); --var D = /** @class */ (function () { -- function D() { -- } -- return D; --}()); -+class C { -+ a() { return 0; } // error: duplicate identifier + class C { + a() { return 0; } // error: duplicate identifier + a; -+} -+class K { + } + class K { + b; // error: duplicate identifier -+ b() { return 0; } -+} -+class D { + b() { return 0; } + } + class D { + c; + c; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classWithEmptyTypeParameter.js.diff b/testdata/baselines/reference/submodule/compiler/classWithEmptyTypeParameter.js.diff deleted file mode 100644 index 2ff794f931..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classWithEmptyTypeParameter.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.classWithEmptyTypeParameter.js -+++ new.classWithEmptyTypeParameter.js -@@= skipped -4, +4 lines =@@ - } - - //// [classWithEmptyTypeParameter.js] --var C = /** @class */ (function () { -- function C() { -- } -- return C; --}()); -+class C { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classWithMultipleBaseClasses.js.diff b/testdata/baselines/reference/submodule/compiler/classWithMultipleBaseClasses.js.diff deleted file mode 100644 index 0f4a116a6d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classWithMultipleBaseClasses.js.diff +++ /dev/null @@ -1,35 +0,0 @@ ---- old.classWithMultipleBaseClasses.js -+++ new.classWithMultipleBaseClasses.js -@@= skipped -26, +26 lines =@@ - } - - //// [classWithMultipleBaseClasses.js] --var A = /** @class */ (function () { -- function A() { -- } -- A.prototype.foo = function () { }; -- return A; --}()); --var B = /** @class */ (function () { -- function B() { -- } -- B.prototype.bar = function () { }; -- return B; --}()); --var D = /** @class */ (function () { -- function D() { -- } -- D.prototype.baz = function () { }; -- D.prototype.bat = function () { }; -- return D; --}()); -+class A { -+ foo() { } -+} -+class B { -+ bar() { } -+} -+class D { -+ baz() { } -+ bat() { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classWithOverloadImplementationOfWrongName.js.diff b/testdata/baselines/reference/submodule/compiler/classWithOverloadImplementationOfWrongName.js.diff deleted file mode 100644 index 817f70a3fe..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classWithOverloadImplementationOfWrongName.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.classWithOverloadImplementationOfWrongName.js -+++ new.classWithOverloadImplementationOfWrongName.js -@@= skipped -7, +7 lines =@@ - } - - //// [classWithOverloadImplementationOfWrongName.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.bar = function (x) { }; -- return C; --}()); -+class C { -+ bar(x) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classWithOverloadImplementationOfWrongName2.js.diff b/testdata/baselines/reference/submodule/compiler/classWithOverloadImplementationOfWrongName2.js.diff deleted file mode 100644 index 17cc2f241c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/classWithOverloadImplementationOfWrongName2.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.classWithOverloadImplementationOfWrongName2.js -+++ new.classWithOverloadImplementationOfWrongName2.js -@@= skipped -7, +7 lines =@@ - } - - //// [classWithOverloadImplementationOfWrongName2.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.bar = function (x) { }; -- return C; --}()); -+class C { -+ bar(x) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/classdecl.js.diff b/testdata/baselines/reference/submodule/compiler/classdecl.js.diff index 8f6bd5c089..f7d7f783af 100644 --- a/testdata/baselines/reference/submodule/compiler/classdecl.js.diff +++ b/testdata/baselines/reference/submodule/compiler/classdecl.js.diff @@ -1,174 +1,22 @@ --- old.classdecl.js +++ new.classdecl.js -@@= skipped -95, +95 lines =@@ - } - - //// [classdecl.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var a = /** @class */ (function () { -- function a(ns) { -- } -- a.prototype.pgF = function () { }; -- Object.defineProperty(a.prototype, "d", { -- get: function () { -- return 30; -- }, -- set: function (a) { -- }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(a, "p2", { -- get: function () { -- return { x: 30, y: 40 }; -- }, -- enumerable: false, -- configurable: true -- }); -- a.d2 = function () { -- }; -- Object.defineProperty(a, "p3", { -- get: function () { -- return "string"; -- }, -- enumerable: false, -- configurable: true -- }); -- a.prototype.foo = function (ns) { -+class a { -+ constructor(ns) { -+ } -+ pgF() { } +@@= skipped -99, +99 lines =@@ + constructor(ns) { + } + pgF() { } + pv; -+ get d() { -+ return 30; -+ } -+ set d(a) { -+ } -+ static get p2() { -+ return { x: 30, y: 40 }; -+ } -+ static d2() { -+ } -+ static get p3() { -+ return "string"; -+ } + get d() { + return 30; + } +@@= skipped -13, +14 lines =@@ + static get p3() { + return "string"; + } + pv3; -+ foo(ns) { + foo(ns) { return ns.toString(); -- }; -- return a; --}()); --var b = /** @class */ (function (_super) { -- __extends(b, _super); -- function b() { -- return _super !== null && _super.apply(this, arguments) || this; } -- return b; --}(a)); -+} -+class b extends a { -+} - var m1; - (function (m1) { -- var b = /** @class */ (function () { -- function b() { -- } -- return b; -- }()); -+ class b { -+ } - m1.b = b; -- var d = /** @class */ (function () { -- function d() { -- } -- return d; -- }()); -+ class d { -+ } - })(m1 || (m1 = {})); - var m2; - (function (m2) { -- var m3; -+ let m3; - (function (m3) { -- var c = /** @class */ (function (_super) { -- __extends(c, _super); -- function c() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return c; -- }(b)); -+ class c extends b { -+ } - m3.c = c; -- var ib2 = /** @class */ (function () { -- function ib2() { -- } -- return ib2; -- }()); -+ class ib2 { -+ } - m3.ib2 = ib2; - })(m3 = m2.m3 || (m2.m3 = {})); - })(m2 || (m2 = {})); --var c = /** @class */ (function (_super) { -- __extends(c, _super); -- function c() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return c; --}(m1.b)); --var ib2 = /** @class */ (function () { -- function ib2() { -- } -- return ib2; --}()); --var d = /** @class */ (function () { -- function d() { -- } -- d.prototype.foo = function (ns) { -- return ns.toString(); -- }; -- return d; --}()); --var e = /** @class */ (function () { -- function e() { -- } -- e.prototype.foo = function (ns) { -- return ns.toString(); -- }; -- return e; --}()); -+class c extends m1.b { -+} -+class ib2 { -+} -+class d { -+ foo(ns) { -+ return ns.toString(); -+ } -+} -+class e { -+ foo(ns) { -+ return ns.toString(); -+ } -+} - +@@= skipped -44, +45 lines =@@ //// [classdecl.d.ts] declare class a { diff --git a/testdata/baselines/reference/submodule/compiler/clinterfaces.js.diff b/testdata/baselines/reference/submodule/compiler/clinterfaces.js.diff index ef1022c062..6add35e0f3 100644 --- a/testdata/baselines/reference/submodule/compiler/clinterfaces.js.diff +++ b/testdata/baselines/reference/submodule/compiler/clinterfaces.js.diff @@ -1,38 +1,12 @@ --- old.clinterfaces.js +++ new.clinterfaces.js -@@= skipped -30, +30 lines =@@ - "use strict"; - var M; - (function (M) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -- var D = /** @class */ (function () { -- function D() { -- } -- return D; -- }()); -+ class C { -+ } -+ class D { -+ } +@@= skipped -36, +36 lines =@@ + } })(M || (M = {})); --var Foo = /** @class */ (function () { -- function Foo() { -- } -- return Foo; --}()); --var Bar = /** @class */ (function () { -- function Bar() { -- } -- return Bar; --}()); -+class Foo { + class Foo { + b; -+} -+class Bar { + } + class Bar { + b; -+} + } module.exports = Foo; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cloduleAcrossModuleDefinitions.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleAcrossModuleDefinitions.js.diff deleted file mode 100644 index 2cec7c43b4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/cloduleAcrossModuleDefinitions.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.cloduleAcrossModuleDefinitions.js -+++ new.cloduleAcrossModuleDefinitions.js -@@= skipped -19, +19 lines =@@ - //// [cloduleAcrossModuleDefinitions.js] - var A; - (function (A) { -- var B = /** @class */ (function () { -- function B() { -- } -- B.prototype.foo = function () { }; -- B.bar = function () { }; -- return B; -- }()); -+ class B { -+ foo() { } -+ static bar() { } -+ } - A.B = B; - })(A || (A = {})); - (function (A) { -- var B; -+ let B; - (function (B) { - B.x = 1; - })(B = A.B || (A.B = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cloduleAndTypeParameters.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleAndTypeParameters.js.diff deleted file mode 100644 index 3f282c4bc2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/cloduleAndTypeParameters.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.cloduleAndTypeParameters.js -+++ new.cloduleAndTypeParameters.js -@@= skipped -15, +15 lines =@@ - } - - //// [cloduleAndTypeParameters.js] --var Foo = /** @class */ (function () { -- function Foo() { -+class Foo { -+ constructor() { - } -- return Foo; --}()); -+} - (function (Foo) { -- var Baz = /** @class */ (function () { -- function Baz() { -- } -- return Baz; -- }()); -+ class Baz { -+ } - Foo.Baz = Baz; - })(Foo || (Foo = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cloduleGenericOnSelfMember.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleGenericOnSelfMember.js.diff index 75ee8cd254..2d89d18b25 100644 --- a/testdata/baselines/reference/submodule/compiler/cloduleGenericOnSelfMember.js.diff +++ b/testdata/baselines/reference/submodule/compiler/cloduleGenericOnSelfMember.js.diff @@ -1,41 +1,10 @@ --- old.cloduleGenericOnSelfMember.js +++ new.cloduleGenericOnSelfMember.js -@@= skipped -13, +13 lines =@@ - } +@@= skipped -14, +14 lines =@@ //// [cloduleGenericOnSelfMember.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var ServiceBase = /** @class */ (function () { -- function ServiceBase() { -- } -- return ServiceBase; --}()); --var Service = /** @class */ (function (_super) { -- __extends(Service, _super); -- function Service() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Service; --}(ServiceBase)); -+class ServiceBase { + class ServiceBase { + field; -+} -+class Service extends ServiceBase { -+} - (function (Service) { - Service.Base = { - name: "1", \ No newline at end of file + } + class Service extends ServiceBase { + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cloduleSplitAcrossFiles.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleSplitAcrossFiles.js.diff deleted file mode 100644 index 094727ad4a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/cloduleSplitAcrossFiles.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.cloduleSplitAcrossFiles.js -+++ new.cloduleSplitAcrossFiles.js -@@= skipped -9, +9 lines =@@ - D.y; - - //// [cloduleSplitAcrossFiles_class.js] --var D = /** @class */ (function () { -- function D() { -- } -- return D; --}()); -+class D { -+} - //// [cloduleSplitAcrossFiles_module.js] - var D; - (function (D) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cloduleStaticMembers.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleStaticMembers.js.diff index d9247430bb..97ee21132c 100644 --- a/testdata/baselines/reference/submodule/compiler/cloduleStaticMembers.js.diff +++ b/testdata/baselines/reference/submodule/compiler/cloduleStaticMembers.js.diff @@ -4,13 +4,13 @@ //// [cloduleStaticMembers.js] --var Clod = /** @class */ (function () { -- function Clod() { +-let Clod = (() => { +- class Clod { - } - Clod.x = 10; - Clod.y = 10; - return Clod; --}()); +-})(); +class Clod { + static x = 10; + static y = 10; diff --git a/testdata/baselines/reference/submodule/compiler/cloduleTest2.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleTest2.js.diff deleted file mode 100644 index fec85ccd6a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/cloduleTest2.js.diff +++ /dev/null @@ -1,38 +0,0 @@ ---- old.cloduleTest2.js -+++ new.cloduleTest2.js -@@= skipped -40, +40 lines =@@ - //// [cloduleTest2.js] - var T1; - (function (T1) { -- var m3d; -+ let m3d; - (function (m3d) { - m3d.y = 2; - })(m3d || (m3d = {})); -@@= skipped -8, +8 lines =@@ - })(T1 || (T1 = {})); - var T2; - (function (T2) { -- var m3d; -+ let m3d; - (function (m3d) { - m3d.y = 2; - })(m3d || (m3d = {})); -@@= skipped -8, +8 lines =@@ - })(T2 || (T2 = {})); - var T3; - (function (T3) { -- var m3d; -+ let m3d; - (function (m3d) { - m3d.y = 2; - })(m3d || (m3d = {})); -@@= skipped -11, +11 lines =@@ - })(T3 || (T3 = {})); - var T4; - (function (T4) { -- var m3d; -+ let m3d; - (function (m3d) { - m3d.y = 2; - })(m3d || (m3d = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cloduleWithDuplicateMember1.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleWithDuplicateMember1.js.diff deleted file mode 100644 index 531ed54492..0000000000 --- a/testdata/baselines/reference/submodule/compiler/cloduleWithDuplicateMember1.js.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.cloduleWithDuplicateMember1.js -+++ new.cloduleWithDuplicateMember1.js -@@= skipped -17, +17 lines =@@ - } - - //// [cloduleWithDuplicateMember1.js] --var C = /** @class */ (function () { -- function C() { -+class C { -+ get x() { return 1; } -+ static get x() { -+ return ''; - } -- Object.defineProperty(C.prototype, "x", { -- get: function () { return 1; }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(C, "x", { -- get: function () { -- return ''; -- }, -- enumerable: false, -- configurable: true -- }); -- C.foo = function () { }; -- return C; --}()); -+ static foo() { } -+} - (function (C) { - C.x = 1; - })(C || (C = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cloduleWithDuplicateMember2.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleWithDuplicateMember2.js.diff deleted file mode 100644 index 1310e93834..0000000000 --- a/testdata/baselines/reference/submodule/compiler/cloduleWithDuplicateMember2.js.diff +++ /dev/null @@ -1,28 +0,0 @@ ---- old.cloduleWithDuplicateMember2.js -+++ new.cloduleWithDuplicateMember2.js -@@= skipped -13, +13 lines =@@ - } - - //// [cloduleWithDuplicateMember2.js] --var C = /** @class */ (function () { -- function C() { -- } -- Object.defineProperty(C.prototype, "x", { -- set: function (y) { }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(C, "y", { -- set: function (z) { }, -- enumerable: false, -- configurable: true -- }); -- return C; --}()); -+class C { -+ set x(y) { } -+ static set y(z) { } -+} - (function (C) { - C.x = 1; - })(C || (C = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cloduleWithPriorInstantiatedModule.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleWithPriorInstantiatedModule.js.diff deleted file mode 100644 index 0c62fca334..0000000000 --- a/testdata/baselines/reference/submodule/compiler/cloduleWithPriorInstantiatedModule.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.cloduleWithPriorInstantiatedModule.js -+++ new.cloduleWithPriorInstantiatedModule.js -@@= skipped -23, +23 lines =@@ - (function (Moclodule) { - var x = 10; - })(Moclodule || (Moclodule = {})); --var Moclodule = /** @class */ (function () { -- function Moclodule() { -- } -- return Moclodule; --}()); -+class Moclodule { -+} - // Instantiated module. - (function (Moclodule) { -- var Manager = /** @class */ (function () { -- function Manager() { -- } -- return Manager; -- }()); -+ class Manager { -+ } - Moclodule.Manager = Manager; - })(Moclodule || (Moclodule = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cloduleWithPriorUninstantiatedModule.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleWithPriorUninstantiatedModule.js.diff deleted file mode 100644 index 138b420439..0000000000 --- a/testdata/baselines/reference/submodule/compiler/cloduleWithPriorUninstantiatedModule.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.cloduleWithPriorUninstantiatedModule.js -+++ new.cloduleWithPriorUninstantiatedModule.js -@@= skipped -17, +17 lines =@@ - } - - //// [cloduleWithPriorUninstantiatedModule.js] --var Moclodule = /** @class */ (function () { -- function Moclodule() { -- } -- return Moclodule; --}()); -+class Moclodule { -+} - // Instantiated module. - (function (Moclodule) { -- var Manager = /** @class */ (function () { -- function Manager() { -- } -- return Manager; -- }()); -+ class Manager { -+ } - Moclodule.Manager = Manager; - })(Moclodule || (Moclodule = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/cloduleWithRecursiveReference.js.diff b/testdata/baselines/reference/submodule/compiler/cloduleWithRecursiveReference.js.diff deleted file mode 100644 index a129504c0f..0000000000 --- a/testdata/baselines/reference/submodule/compiler/cloduleWithRecursiveReference.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.cloduleWithRecursiveReference.js -+++ new.cloduleWithRecursiveReference.js -@@= skipped -11, +11 lines =@@ - //// [cloduleWithRecursiveReference.js] - var M; - (function (M) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - M.C = C; - (function (C_1) { - C_1.C = M.C; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/clodulesDerivedClasses.js.diff b/testdata/baselines/reference/submodule/compiler/clodulesDerivedClasses.js.diff index c1e379abf7..c03dd21bdb 100644 --- a/testdata/baselines/reference/submodule/compiler/clodulesDerivedClasses.js.diff +++ b/testdata/baselines/reference/submodule/compiler/clodulesDerivedClasses.js.diff @@ -1,32 +1,11 @@ --- old.clodulesDerivedClasses.js +++ new.clodulesDerivedClasses.js -@@= skipped -24, +24 lines =@@ - +@@= skipped -25, +25 lines =@@ //// [clodulesDerivedClasses.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Shape = /** @class */ (function () { -- function Shape() { -- } -- return Shape; --}()); -+class Shape { + class Shape { + id; -+} + } (function (Shape) { - var Utils; + let Utils; @@ -35,16 +14,9 @@ Utils.convert = convert; })(Utils = Shape.Utils || (Shape.Utils = {})); })(Shape || (Shape = {})); --var Path = /** @class */ (function (_super) { -- __extends(Path, _super); -- function Path() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Path; --}(Shape)); -+class Path extends Shape { + class Path extends Shape { + name; -+} + } (function (Path) { - var Utils; + let Utils; diff --git a/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js.diff b/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js.diff index aaf212fa2d..829acd3f4e 100644 --- a/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js.diff +++ b/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences.js.diff @@ -7,18 +7,7 @@ -"use strict"; foo(a, fab); foo(b, fab); --var actionA = { payload: 'any-string' }; --var actionB = { payload: true }; -+const actionA = { payload: 'any-string' }; -+const actionB = { payload: true }; - function call(action, fn) { - fn(action); - } --var printFn = function (action) { return console.log(action); }; -+const printFn = (action) => console.log(action); - call(actionA, printFn); - call(actionB, printFn); - + const actionA = { payload: 'any-string' }; @@= skipped -28, +27 lines =@@ }, f: (arg: { kind: T; diff --git a/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences2.js.diff b/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences2.js.diff index b04fcd2c12..27f422ceb3 100644 --- a/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences2.js.diff @@ -6,27 +6,17 @@ //// [coAndContraVariantInferences2.js] -"use strict"; function f1(a, b) { -- var x1 = cast(a, isC); // cast -- var x2 = cast(b, isC); // cast -+ const x1 = cast(a, isC); // cast -+ const x2 = cast(b, isC); // cast - } - function f2(b, c) { - consume(b, c, useA); // consume -@@= skipped -33, +32 lines =@@ - node; // FunctionDeclaration - } + const x1 = cast(a, isC); // cast + const x2 = cast(b, isC); // cast +@@= skipped -35, +34 lines =@@ function bar(node) { -- var a = tryCast(node, isExpression); // tryCast -+ const a = tryCast(node, isExpression); // tryCast + const a = tryCast(node, isExpression); // tryCast } --var maybeClassStatement = tryCast(statement, isClassLike); // ClassLike1 --var x = tryCast(types, isNodeArray); // NodeAray +// Repro from #49924 +var SyntaxKind1; +(function (SyntaxKind1) { + SyntaxKind1[SyntaxKind1["ClassExpression"] = 0] = "ClassExpression"; + SyntaxKind1[SyntaxKind1["ClassStatement"] = 1] = "ClassStatement"; +})(SyntaxKind1 || (SyntaxKind1 = {})); -+const maybeClassStatement = tryCast(statement, isClassLike); // ClassLike1 -+const x = tryCast(types, isNodeArray); // NodeAray \ No newline at end of file + const maybeClassStatement = tryCast(statement, isClassLike); // ClassLike1 + const x = tryCast(types, isNodeArray); // NodeAray \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences3.js.diff b/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences3.js.diff index 031a40ec3b..f237a3f4ee 100644 --- a/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/coAndContraVariantInferences3.js.diff @@ -15,43 +15,4 @@ +})(SyntaxKind || (SyntaxKind = {})); ; buildOverload("updateImportDeclaration") - .overload({ -- 0: function (node, modifiers, importClause, moduleSpecifier, assertClause) { -+ 0(node, modifiers, importClause, moduleSpecifier, assertClause) { - return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); - }, -- 1: function (node, _decorators, modifiers, importClause, moduleSpecifier, assertClause) { -+ 1(node, _decorators, modifiers, importClause, moduleSpecifier, assertClause) { - return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); - }, - }) - .bind({ -- 0: function (_a) { -- var modifiers = _a[1], importClause = _a[2], moduleSpecifier = _a[3], assertClause = _a[4], other = _a[5]; -- return (other === undefined) && -- (modifiers === undefined || every(modifiers, isModifier)) && -- (importClause === undefined || !isArray(importClause)) && -- (moduleSpecifier === undefined || isExpression(moduleSpecifier)) && -- (assertClause === undefined || isAssertClause(assertClause)); -- }, -- 1: function (_a) { -- var decorators = _a[1], modifiers = _a[2], importClause = _a[3], moduleSpecifier = _a[4], assertClause = _a[5]; -- return (decorators === undefined || every(decorators, isDecorator)) && -- (modifiers === undefined || isArray(modifiers)) && -- (importClause === undefined || isImportClause(importClause)) && -- (moduleSpecifier !== undefined && isExpression(moduleSpecifier)) && -- (assertClause === undefined || isAssertClause(assertClause)); -- }, -+ 0: ([, modifiers, importClause, moduleSpecifier, assertClause, other]) => (other === undefined) && -+ (modifiers === undefined || every(modifiers, isModifier)) && -+ (importClause === undefined || !isArray(importClause)) && -+ (moduleSpecifier === undefined || isExpression(moduleSpecifier)) && -+ (assertClause === undefined || isAssertClause(assertClause)), -+ 1: ([, decorators, modifiers, importClause, moduleSpecifier, assertClause]) => (decorators === undefined || every(decorators, isDecorator)) && -+ (modifiers === undefined || isArray(modifiers)) && -+ (importClause === undefined || isImportClause(importClause)) && -+ (moduleSpecifier !== undefined && isExpression(moduleSpecifier)) && -+ (assertClause === undefined || isAssertClause(assertClause)), - }) - .deprecate({ - 1: DISALLOW_DECORATORS \ No newline at end of file + .overload({ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collectionPatternNoError.js.diff b/testdata/baselines/reference/submodule/compiler/collectionPatternNoError.js.diff index b1b3cc9c14..21ea59311a 100644 --- a/testdata/baselines/reference/submodule/compiler/collectionPatternNoError.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collectionPatternNoError.js.diff @@ -1,43 +1,11 @@ --- old.collectionPatternNoError.js +++ new.collectionPatternNoError.js -@@= skipped -39, +39 lines =@@ - - - //// [collectionPatternNoError.js] --var Message = /** @class */ (function () { -- function Message() { -- } -- Message.prototype.clone = function () { -+class Message { -+ clone() { - return this; -- }; -- return Message; --}()); -+ } -+} - function fetchMsg(protoCtor) { +@@= skipped -48, +48 lines =@@ return null; } --var DataProvider = /** @class */ (function () { -- function DataProvider(message, messageList) { -+class DataProvider { + class DataProvider { + message; + messageList; -+ constructor(message, messageList) { + constructor(message, messageList) { this.message = message; - this.messageList = messageList; - } -- DataProvider.prototype.fetch = function () { -- var messageList = fetchMsg(this.messageList); -+ fetch() { -+ const messageList = fetchMsg(this.messageList); - messageList.methodOnMessageList(); -- }; -- return DataProvider; --}()); -+ } -+} - // The same bug as the above but using indexed accesses - // (won't surface directly unless unsound indexed access assignments are forbidden) - function f(message, messageList) { \ No newline at end of file + this.messageList = messageList; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionArgumentsArrowFunctions.js.diff b/testdata/baselines/reference/submodule/compiler/collisionArgumentsArrowFunctions.js.diff deleted file mode 100644 index b49d7640ad..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionArgumentsArrowFunctions.js.diff +++ /dev/null @@ -1,42 +0,0 @@ ---- old.collisionArgumentsArrowFunctions.js -+++ new.collisionArgumentsArrowFunctions.js -@@= skipped -18, +18 lines =@@ - } - - //// [collisionArgumentsArrowFunctions.js] --var f1 = function (i) { -- var arguments = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- arguments[_i - 1] = arguments[_i]; -- } -+var f1 = (i, ...arguments) => { - var arguments; // no error - }; --var f12 = function (arguments) { -- var rest = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- rest[_i - 1] = arguments[_i]; -- } -- var arguments = 10; // no error --}; --var f1NoError = function (arguments) { -- var arguments = 10; // no error --}; --var f2 = function () { -- var restParameters = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- restParameters[_i] = arguments[_i]; -- } -+var f12 = (arguments, ...rest) => { -+ var arguments = 10; // no error -+}; -+var f1NoError = (arguments) => { -+ var arguments = 10; // no error -+}; -+var f2 = (...restParameters) => { - var arguments = 10; // No Error - }; --var f2NoError = function () { -+var f2NoError = () => { - var arguments = 10; // no error - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionArgumentsClassConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/collisionArgumentsClassConstructor.js.diff index e1950e4feb..8f63e05dd4 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionArgumentsClassConstructor.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionArgumentsClassConstructor.js.diff @@ -1,146 +1,17 @@ --- old.collisionArgumentsClassConstructor.js +++ new.collisionArgumentsClassConstructor.js -@@= skipped -89, +89 lines =@@ - - //// [collisionArgumentsClassConstructor.js] - // Constructors --var c1 = /** @class */ (function () { -- function c1(i) { -- var arguments = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- arguments[_i - 1] = arguments[_i]; -- } -- var arguments; // no error -- } -- return c1; --}()); --var c12 = /** @class */ (function () { -- function c12(arguments) { -- var rest = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- rest[_i - 1] = arguments[_i]; -- } -- var arguments = 10; // no error -- } -- return c12; --}()); --var c1NoError = /** @class */ (function () { -- function c1NoError(arguments) { -- var arguments = 10; // no error -- } -- return c1NoError; --}()); --var c2 = /** @class */ (function () { -- function c2() { -- var restParameters = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- restParameters[_i] = arguments[_i]; -- } -- var arguments = 10; // no error -- } -- return c2; --}()); --var c2NoError = /** @class */ (function () { -- function c2NoError() { -- var arguments = 10; // no error -- } -- return c2NoError; --}()); --var c3 = /** @class */ (function () { -- function c3(arguments) { -- var restParameters = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- restParameters[_i - 1] = arguments[_i]; -- } -- this.arguments = arguments; -- var arguments = 10; // no error -- } -- return c3; --}()); --var c3NoError = /** @class */ (function () { -- function c3NoError(arguments) { -- this.arguments = arguments; -- var arguments = 10; // no error -- } -- return c3NoError; --}()); --var c5 = /** @class */ (function () { -- function c5(i) { -- var arguments = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- arguments[_i - 1] = arguments[_i]; -- } -- var arguments; // no error -- } -- return c5; --}()); --var c52 = /** @class */ (function () { -- function c52(arguments) { -- var rest = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- rest[_i - 1] = arguments[_i]; -- } -- var arguments; // no error -- } -- return c52; --}()); --var c5NoError = /** @class */ (function () { -- function c5NoError(arguments) { -- var arguments; // no error -- } -- return c5NoError; --}()); -+class c1 { -+ constructor(i, ...arguments) { -+ var arguments; // no error -+ } -+} -+class c12 { -+ constructor(arguments, ...rest) { -+ var arguments = 10; // no error -+ } -+} -+class c1NoError { -+ constructor(arguments) { -+ var arguments = 10; // no error -+ } -+} -+class c2 { -+ constructor(...restParameters) { -+ var arguments = 10; // no error -+ } -+} -+class c2NoError { -+ constructor() { -+ var arguments = 10; // no error -+ } -+} -+class c3 { +@@= skipped -115, +115 lines =@@ + } + } + class c3 { + arguments; -+ constructor(arguments, ...restParameters) { -+ this.arguments = arguments; -+ var arguments = 10; // no error -+ } -+} -+class c3NoError { + constructor(arguments, ...restParameters) { + this.arguments = arguments; + var arguments = 10; // no error + } + } + class c3NoError { + arguments; -+ constructor(arguments) { -+ this.arguments = arguments; -+ var arguments = 10; // no error -+ } -+} -+class c5 { -+ constructor(i, ...arguments) { -+ var arguments; // no error -+ } -+} -+class c52 { -+ constructor(arguments, ...rest) { -+ var arguments; // no error -+ } -+} -+class c5NoError { -+ constructor(arguments) { -+ var arguments; // no error -+ } -+} \ No newline at end of file + constructor(arguments) { + this.arguments = arguments; + var arguments = 10; // no error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionArgumentsClassMethod.js.diff b/testdata/baselines/reference/submodule/compiler/collisionArgumentsClassMethod.js.diff deleted file mode 100644 index fcee87c6a2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionArgumentsClassMethod.js.diff +++ /dev/null @@ -1,88 +0,0 @@ ---- old.collisionArgumentsClassMethod.js -+++ new.collisionArgumentsClassMethod.js -@@= skipped -50, +50 lines =@@ - } - - //// [collisionArgumentsClassMethod.js] --var c1 = /** @class */ (function () { -- function c1() { -- } -- c1.prototype.foo = function (i) { -- var arguments = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- arguments[_i - 1] = arguments[_i]; -- } -- var arguments; // no error -- }; -- c1.prototype.foo1 = function (arguments) { -- var rest = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- rest[_i - 1] = arguments[_i]; -- } -- var arguments = 10; // no error -- }; -- c1.prototype.fooNoError = function (arguments) { -- var arguments = 10; // no error -- }; -- c1.prototype.f4 = function (i) { -- var arguments = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- arguments[_i - 1] = arguments[_i]; -- } -- var arguments; // no error -- }; -- c1.prototype.f41 = function (arguments) { -- var rest = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- rest[_i - 1] = arguments[_i]; -- } -- var arguments; // no error -- }; -- c1.prototype.f4NoError = function (arguments) { -- var arguments; // no error -- }; -- return c1; --}()); --var c3 = /** @class */ (function () { -- function c3() { -- } -- c3.prototype.foo = function () { -- var restParameters = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- restParameters[_i] = arguments[_i]; -- } -- var arguments = 10; // no error -- }; -- c3.prototype.fooNoError = function () { -- var arguments = 10; // no error -- }; -- return c3; --}()); -+class c1 { -+ foo(i, ...arguments) { -+ var arguments; // no error -+ } -+ foo1(arguments, ...rest) { -+ var arguments = 10; // no error -+ } -+ fooNoError(arguments) { -+ var arguments = 10; // no error -+ } -+ f4(i, ...arguments) { -+ var arguments; // no error -+ } -+ f41(arguments, ...rest) { -+ var arguments; // no error -+ } -+ f4NoError(arguments) { -+ var arguments; // no error -+ } -+} -+class c3 { -+ foo(...restParameters) { -+ var arguments = 10; // no error -+ } -+ fooNoError() { -+ var arguments = 10; // no error -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionArgumentsFunction.js.diff b/testdata/baselines/reference/submodule/compiler/collisionArgumentsFunction.js.diff deleted file mode 100644 index cbd9355726..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionArgumentsFunction.js.diff +++ /dev/null @@ -1,53 +0,0 @@ ---- old.collisionArgumentsFunction.js -+++ new.collisionArgumentsFunction.js -@@= skipped -47, +47 lines =@@ - - //// [collisionArgumentsFunction.js] - // Functions --function f1(arguments) { -- var restParameters = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- restParameters[_i - 1] = arguments[_i]; -- } -+function f1(arguments, ...restParameters) { - var arguments = 10; // no error - } --function f12(i) { -- var arguments = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- arguments[_i - 1] = arguments[_i]; -- } -+function f12(i, ...arguments) { - var arguments; // no error - } - function f1NoError(arguments) { - var arguments = 10; // no error - } --function f3() { -- var restParameters = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- restParameters[_i] = arguments[_i]; -- } -+function f3(...restParameters) { - var arguments = 10; // no error - } - function f3NoError() { - var arguments = 10; // no error - } --function f4(arguments) { -- var rest = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- rest[_i - 1] = arguments[_i]; -- } -+function f4(arguments, ...rest) { - var arguments; // No error - } --function f42(i) { -- var arguments = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- arguments[_i - 1] = arguments[_i]; -- } -+function f42(i, ...arguments) { - var arguments; // No error - } - function f4NoError(arguments) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionArgumentsFunctionExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/collisionArgumentsFunctionExpressions.js.diff deleted file mode 100644 index 176ea8253c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionArgumentsFunctionExpressions.js.diff +++ /dev/null @@ -1,53 +0,0 @@ ---- old.collisionArgumentsFunctionExpressions.js -+++ new.collisionArgumentsFunctionExpressions.js -@@= skipped -37, +37 lines =@@ - - //// [collisionArgumentsFunctionExpressions.js] - function foo() { -- function f1(arguments) { -- var restParameters = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- restParameters[_i - 1] = arguments[_i]; -- } -+ function f1(arguments, ...restParameters) { - var arguments = 10; // no error - } -- function f12(i) { -- var arguments = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- arguments[_i - 1] = arguments[_i]; -- } -+ function f12(i, ...arguments) { - var arguments; // no error - } - function f1NoError(arguments) { - var arguments = 10; // no error - } -- function f3() { -- var restParameters = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- restParameters[_i] = arguments[_i]; -- } -+ function f3(...restParameters) { - var arguments = 10; // no error - } - function f3NoError() { - var arguments = 10; // no error - } -- function f4(arguments) { -- var rest = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- rest[_i - 1] = arguments[_i]; -- } -+ function f4(arguments, ...rest) { - var arguments; // No error - } -- function f42(i) { -- var arguments = []; -- for (var _i = 1; _i < arguments.length; _i++) { -- arguments[_i - 1] = arguments[_i]; -- } -+ function f42(i, ...arguments) { - var arguments; // No error - } - function f4NoError(arguments) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithAccessorChildren.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithAccessorChildren.js.diff index d17fdaa339..57306859b3 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithAccessorChildren.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithAccessorChildren.js.diff @@ -1,102 +1,48 @@ --- old.collisionCodeGenModuleWithAccessorChildren.js +++ new.collisionCodeGenModuleWithAccessorChildren.js -@@= skipped -50, +50 lines =@@ - var M; +@@= skipped -51, +51 lines =@@ (function (M_1) { M_1.x = 3; -- var c = /** @class */ (function () { -- function c() { -+ class c { + class c { + y; -+ set Z(M) { -+ this.y = M_1.x; + set Z(M) { + this.y = M_1.x; } -- Object.defineProperty(c.prototype, "Z", { -- set: function (M) { -- this.y = M_1.x; -- }, -- enumerable: false, -- configurable: true -- }); -- return c; -- }()); -+ } +@@= skipped -7, +8 lines =@@ })(M || (M = {})); (function (M_2) { -- var d = /** @class */ (function () { -- function d() { -+ class d { + class d { + y; -+ set Z(p) { -+ var M = 10; + set Z(p) { + var M = 10; +- this.y = M_2.x; + this.y = x; } -- Object.defineProperty(d.prototype, "Z", { -- set: function (p) { -- var M = 10; -- this.y = M_2.x; -- }, -- enumerable: false, -- configurable: true -- }); -- return d; -- }()); -+ } + } })(M || (M = {})); (function (M) { -- var e = /** @class */ (function () { -- function e() { -+ class e { + class e { + y; -+ set M(p) { + set M(p) { +- this.y = M.x; + this.y = x; } -- Object.defineProperty(e.prototype, "M", { -- set: function (p) { -- this.y = M.x; -- }, -- enumerable: false, -- configurable: true -- }); -- return e; -- }()); -+ } + } })(M || (M = {})); - (function (M_3) { -- var f = /** @class */ (function () { -- function f() { -+ class f { -+ get Z() { -+ var M = 10; +@@= skipped -17, +19 lines =@@ + class f { + get Z() { + var M = 10; +- return M_3.x; + return x; } -- Object.defineProperty(f.prototype, "Z", { -- get: function () { -- var M = 10; -- return M_3.x; -- }, -- enumerable: false, -- configurable: true -- }); -- return f; -- }()); -+ } + } })(M || (M = {})); (function (M) { -- var e = /** @class */ (function () { -- function e() { -+ class e { -+ get M() { + class e { + get M() { +- return M.x; + return x; } -- Object.defineProperty(e.prototype, "M", { -- get: function () { -- return M.x; -- }, -- enumerable: false, -- configurable: true -- }); -- return e; -- }()); -+ } + } })(M || (M = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithConstructorChildren.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithConstructorChildren.js.diff index f56feba9e5..157a5feaba 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithConstructorChildren.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithConstructorChildren.js.diff @@ -1,42 +1,21 @@ --- old.collisionCodeGenModuleWithConstructorChildren.js +++ new.collisionCodeGenModuleWithConstructorChildren.js -@@= skipped -28, +28 lines =@@ - var M; - (function (M_1) { - M_1.x = 3; -- var c = /** @class */ (function () { -- function c(M, p) { -- if (p === void 0) { p = M_1.x; } -+ class c { -+ constructor(M, p = M_1.x) { - } -- return c; -- }()); -+ } +@@= skipped -35, +35 lines =@@ })(M || (M = {})); (function (M_2) { -- var d = /** @class */ (function () { -- function d(M, p) { -- if (p === void 0) { p = M_2.x; } -+ class d { + class d { +- constructor(M, p = M_2.x) { + M; + constructor(M, p = x) { this.M = M; } -- return d; -- }()); -+ } - })(M || (M = {})); - (function (M_3) { -- var d2 = /** @class */ (function () { -- function d2() { -+ class d2 { -+ constructor() { + } +@@= skipped -9, +10 lines =@@ + class d2 { + constructor() { var M = 10; - var p = M_3.x; + var p = x; } -- return d2; -- }()); -+ } + } })(M || (M = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithEnumMemberConflict.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithEnumMemberConflict.js.diff deleted file mode 100644 index 3501e2b4d0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithEnumMemberConflict.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.collisionCodeGenModuleWithEnumMemberConflict.js -+++ new.collisionCodeGenModuleWithEnumMemberConflict.js -@@= skipped -10, +10 lines =@@ - //// [collisionCodeGenModuleWithEnumMemberConflict.js] - var m1; - (function (m1) { -- var e; -+ let e; - (function (e) { - e[e["m1"] = 0] = "m1"; - e[e["m2"] = 0] = "m2"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithFunctionChildren.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithFunctionChildren.js.diff index 8be71994ac..4214ce8f04 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithFunctionChildren.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithFunctionChildren.js.diff @@ -1,14 +1,6 @@ --- old.collisionCodeGenModuleWithFunctionChildren.js +++ new.collisionCodeGenModuleWithFunctionChildren.js -@@= skipped -24, +24 lines =@@ - var M; - (function (M_1) { - M_1.x = 3; -- function fn(M, p) { -- if (p === void 0) { p = M_1.x; } -- } -+ function fn(M, p = M_1.x) { } - })(M || (M = {})); +@@= skipped -29, +29 lines =@@ (function (M_2) { function fn2() { var M; diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithMemberClassConflict.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithMemberClassConflict.js.diff deleted file mode 100644 index 27865292fc..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithMemberClassConflict.js.diff +++ /dev/null @@ -1,36 +0,0 @@ ---- old.collisionCodeGenModuleWithMemberClassConflict.js -+++ new.collisionCodeGenModuleWithMemberClassConflict.js -@@= skipped -19, +19 lines =@@ - //// [collisionCodeGenModuleWithMemberClassConflict.js] - var m1; - (function (m1_1) { -- var m1 = /** @class */ (function () { -- function m1() { -- } -- return m1; -- }()); -+ class m1 { -+ } - m1_1.m1 = m1; - })(m1 || (m1 = {})); - var foo = new m1.m1(); - var m2; - (function (m2_1) { -- var m2 = /** @class */ (function () { -- function m2() { -- } -- return m2; -- }()); -+ class m2 { -+ } - m2_1.m2 = m2; -- var _m2 = /** @class */ (function () { -- function _m2() { -- } -- return _m2; -- }()); -+ class _m2 { -+ } - m2_1._m2 = _m2; - })(m2 || (m2 = {})); - var foo = new m2.m2(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithMemberInterfaceConflict.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithMemberInterfaceConflict.js.diff deleted file mode 100644 index 756c7ab0ef..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithMemberInterfaceConflict.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.collisionCodeGenModuleWithMemberInterfaceConflict.js -+++ new.collisionCodeGenModuleWithMemberInterfaceConflict.js -@@= skipped -11, +11 lines =@@ - //// [collisionCodeGenModuleWithMemberInterfaceConflict.js] - var m1; - (function (m1) { -- var m2 = /** @class */ (function () { -- function m2() { -- } -- return m2; -- }()); -+ class m2 { -+ } - m1.m2 = m2; - })(m1 || (m1 = {})); - var foo = new m1.m2(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithMethodChildren.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithMethodChildren.js.diff index bd5a253653..672ad02d76 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithMethodChildren.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithMethodChildren.js.diff @@ -1,63 +1,20 @@ --- old.collisionCodeGenModuleWithMethodChildren.js +++ new.collisionCodeGenModuleWithMethodChildren.js -@@= skipped -37, +37 lines =@@ - var M; - (function (M_1) { - M_1.x = 3; -- var c = /** @class */ (function () { -- function c() { -- } -- c.prototype.fn = function (M, p) { -- if (p === void 0) { p = M_1.x; } -- }; -- return c; -- }()); -+ class c { -+ fn(M, p = M_1.x) { } -+ } - })(M || (M = {})); - (function (M_2) { -- var d = /** @class */ (function () { -- function d() { -- } -- d.prototype.fn2 = function () { -+ class d { -+ fn2() { +@@= skipped -45, +45 lines =@@ + class d { + fn2() { var M; - var p = M_2.x; -- }; -- return d; -- }()); + var p = x; -+ } -+ } + } + } })(M || (M = {})); - (function (M_3) { -- var e = /** @class */ (function () { -- function e() { -- } -- e.prototype.fn3 = function () { -+ class e { -+ fn3() { +@@= skipped -8, +8 lines =@@ + class e { + fn3() { function M() { - var p = M_3.x; + var p = x; } -- }; -- return e; -- }()); -+ } -+ } - })(M || (M = {})); - (function (M) { -- var f = /** @class */ (function () { -- function f() { -+ class f { -+ M() { } -- f.prototype.M = function () { -- }; -- return f; -- }()); -+ } - })(M || (M = {})); \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithModuleChildren.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithModuleChildren.js.diff index ef74b00b3a..c2cd467e21 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithModuleChildren.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithModuleChildren.js.diff @@ -1,35 +1,15 @@ --- old.collisionCodeGenModuleWithModuleChildren.js +++ new.collisionCodeGenModuleWithModuleChildren.js -@@= skipped -47, +47 lines =@@ - var M; - (function (M_1) { - M_1.x = 3; -- var m1; -+ let m1; - (function (m1) { - var M = 10; - var p = M_1.x; - })(m1 || (m1 = {})); - })(M || (M = {})); - (function (M_2) { -- var m2; -+ let m2; +@@= skipped -58, +58 lines =@@ (function (m2) { -- var M = /** @class */ (function () { -- function M() { -- } -- return M; -- }()); + class M { + } - var p = M_2.x; -+ class M { -+ } + var p = x; var p2 = new M(); })(m2 || (m2 = {})); })(M || (M = {})); - (function (M_3) { -- var m3; -+ let m3; +@@= skipped -9, +9 lines =@@ (function (m3) { function M() { } @@ -39,20 +19,16 @@ })(m3 || (m3 = {})); })(M || (M = {})); (function (M) { -- var m3; -+ let m3; + let m3; (function (m3) { - var p = M.x; + var p = x; var p2; })(m3 || (m3 = {})); })(M || (M = {})); - (function (M_4) { -- var m4; -+ let m4; +@@= skipped -16, +16 lines =@@ (function (m4) { -- var M; -+ let M; + let M; (function (M) { - var p = M_4.x; + var p = x; diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithModuleReopening.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithModuleReopening.js.diff index f2e985584d..76edc83086 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithModuleReopening.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithModuleReopening.js.diff @@ -1,27 +1,7 @@ --- old.collisionCodeGenModuleWithModuleReopening.js +++ new.collisionCodeGenModuleWithModuleReopening.js -@@= skipped -33, +33 lines =@@ - //// [collisionCodeGenModuleWithModuleReopening.js] - var m1; - (function (m1_1) { -- var m1 = /** @class */ (function () { -- function m1() { -- } -- return m1; -- }()); -+ class m1 { -+ } - m1_1.m1 = m1; - })(m1 || (m1 = {})); - var foo = new m1.m1(); - (function (m1) { -- var c1 = /** @class */ (function () { -- function c1() { -- } -- return c1; -- }()); -+ class c1 { -+ } +@@= skipped -43, +43 lines =@@ + } m1.c1 = c1; var b = new c1(); - var c = new m1.m1(); @@ -29,27 +9,8 @@ })(m1 || (m1 = {})); var foo2 = new m1.c1(); var m2; - (function (m2) { -- var c1 = /** @class */ (function () { -- function c1() { -- } -- return c1; -- }()); -+ class c1 { -+ } - m2.c1 = c1; - m2.b10 = 10; - var x = new c1(); - })(m2 || (m2 = {})); - var foo3 = new m2.c1(); - (function (m2_1) { -- var m2 = /** @class */ (function () { -- function m2() { -- } -- return m2; -- }()); -+ class m2 { -+ } +@@= skipped -17, +17 lines =@@ + } m2_1.m2 = m2; var b = new m2(); - var d = m2_1.b10; diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithPrivateMember.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithPrivateMember.js.diff deleted file mode 100644 index 450279df65..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithPrivateMember.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.collisionCodeGenModuleWithPrivateMember.js -+++ new.collisionCodeGenModuleWithPrivateMember.js -@@= skipped -12, +12 lines =@@ - //// [collisionCodeGenModuleWithPrivateMember.js] - var m1; - (function (m1_1) { -- var m1 = /** @class */ (function () { -- function m1() { -- } -- return m1; -- }()); -+ class m1 { -+ } - var x = new m1(); -- var c1 = /** @class */ (function () { -- function c1() { -- } -- return c1; -- }()); -+ class c1 { -+ } - m1_1.c1 = c1; - })(m1 || (m1 = {})); - var foo = new m1.c1(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithUnicodeNames.js.diff b/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithUnicodeNames.js.diff deleted file mode 100644 index 0695625065..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionCodeGenModuleWithUnicodeNames.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.collisionCodeGenModuleWithUnicodeNames.js -+++ new.collisionCodeGenModuleWithUnicodeNames.js -@@= skipped -13, +13 lines =@@ - //// [collisionCodeGenModuleWithUnicodeNames.js] - var 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123; - (function (才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123_1) { -- var 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 = /** @class */ (function () { -- function 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123() { -- } -- return 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123; -- }()); -+ class 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 { -+ } - 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123_1.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 = 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123; - })(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 || (才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 = {})); - var x = new 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndClass.js.diff b/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndClass.js.diff index a2f06d14ae..9e95ab079e 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndClass.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndClass.js.diff @@ -8,44 +8,26 @@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.exports = exports.require = void 0; -- var require = /** @class */ (function () { -- function require() { -- } -- return require; -- }()); +- class require { +- } - exports.require = require; -- var exports = /** @class */ (function () { -- function exports() { -- } -- return exports; -- }()); +- class exports { +- } - exports.exports = exports; - var m1; - (function (m1) { -- var require = /** @class */ (function () { -- function require() { -- } -- return require; -- }()); -- var exports = /** @class */ (function () { -- function exports() { -- } -- return exports; -- }()); +- class require { +- } +- class exports { +- } - })(m1 || (m1 = {})); - var m2; - (function (m2) { -- var require = /** @class */ (function () { -- function require() { -- } -- return require; -- }()); +- class require { +- } - m2.require = require; -- var exports = /** @class */ (function () { -- function exports() { -- } -- return exports; -- }()); +- class exports { +- } - m2.exports = exports; - })(m2 || (m2 = {})); -}); @@ -75,53 +57,5 @@ + m2.exports = exports; +})(m2 || (m2 = {})); //// [collisionExportsRequireAndClass_globalFile.js] --var require = /** @class */ (function () { -- function require() { -- } -- return require; --}()); --var exports = /** @class */ (function () { -- function exports() { -- } -- return exports; --}()); -+class require { -+} -+class exports { -+} - var m3; - (function (m3) { -- var require = /** @class */ (function () { -- function require() { -- } -- return require; -- }()); -- var exports = /** @class */ (function () { -- function exports() { -- } -- return exports; -- }()); -+ class require { -+ } -+ class exports { -+ } - })(m3 || (m3 = {})); - var m4; - (function (m4) { -- var require = /** @class */ (function () { -- function require() { -- } -- return require; -- }()); -+ class require { -+ } - m4.require = require; -- var exports = /** @class */ (function () { -- function exports() { -- } -- return exports; -- }()); -+ class exports { -+ } - m4.exports = exports; - })(m4 || (m4 = {})); \ No newline at end of file + class require { + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndEnum.js.diff b/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndEnum.js.diff index 28fb6b94b3..e7448c4643 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndEnum.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndEnum.js.diff @@ -20,12 +20,12 @@ - })(exports || (exports.exports = exports = {})); - var m1; - (function (m1) { -- var require; +- let require; - (function (require) { - require[require["_thisVal1"] = 0] = "_thisVal1"; - require[require["_thisVal2"] = 1] = "_thisVal2"; - })(require || (require = {})); -- var exports; +- let exports; - (function (exports) { - exports[exports["_thisVal1"] = 0] = "_thisVal1"; - exports[exports["_thisVal2"] = 1] = "_thisVal2"; @@ -33,12 +33,12 @@ - })(m1 || (m1 = {})); - var m2; - (function (m2) { -- var require; +- let require; - (function (require) { - require[require["_thisVal1"] = 0] = "_thisVal1"; - require[require["_thisVal2"] = 1] = "_thisVal2"; - })(require = m2.require || (m2.require = {})); -- var exports; +- let exports; - (function (exports) { - exports[exports["_thisVal1"] = 0] = "_thisVal1"; - exports[exports["_thisVal2"] = 1] = "_thisVal2"; @@ -86,34 +86,4 @@ +})(m2 || (m2 = {})); //// [collisionExportsRequireAndEnum_globalFile.js] var require; - (function (require) { -@@= skipped -54, +52 lines =@@ - })(exports || (exports = {})); - var m3; - (function (m3) { -- var require; -+ let require; - (function (require) { - require[require["_thisVal1"] = 0] = "_thisVal1"; - require[require["_thisVal2"] = 1] = "_thisVal2"; - })(require || (require = {})); -- var exports; -+ let exports; - (function (exports) { - exports[exports["_thisVal1"] = 0] = "_thisVal1"; - exports[exports["_thisVal2"] = 1] = "_thisVal2"; -@@= skipped -13, +13 lines =@@ - })(m3 || (m3 = {})); - var m4; - (function (m4) { -- var require; -+ let require; - (function (require) { - require[require["_thisVal1"] = 0] = "_thisVal1"; - require[require["_thisVal2"] = 1] = "_thisVal2"; - })(require = m4.require || (m4.require = {})); -- var exports; -+ let exports; - (function (exports) { - exports[exports["_thisVal1"] = 0] = "_thisVal1"; - exports[exports["_thisVal2"] = 1] = "_thisVal2"; \ No newline at end of file + (function (require) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndInternalModuleAlias.js.diff b/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndInternalModuleAlias.js.diff index f6e7a07e85..bea1239788 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndInternalModuleAlias.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndInternalModuleAlias.js.diff @@ -10,11 +10,8 @@ - exports.m = void 0; - var m; - (function (m) { -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); +- class c { +- } - m.c = c; - })(m || (exports.m = m = {})); +"use strict"; diff --git a/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndInternalModuleAliasInGlobalFile.js.diff b/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndInternalModuleAliasInGlobalFile.js.diff index bfcd741330..20192ebec8 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndInternalModuleAliasInGlobalFile.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndInternalModuleAliasInGlobalFile.js.diff @@ -1,16 +1,7 @@ --- old.collisionExportsRequireAndInternalModuleAliasInGlobalFile.js +++ new.collisionExportsRequireAndInternalModuleAliasInGlobalFile.js -@@= skipped -26, +26 lines =@@ - //// [collisionExportsRequireAndInternalModuleAliasInGlobalFile.js] - var mOfGloalFile; - (function (mOfGloalFile) { -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } +@@= skipped -30, +30 lines =@@ + } mOfGloalFile.c = c; })(mOfGloalFile || (mOfGloalFile = {})); -var exports = mOfGloalFile.c; diff --git a/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndModule.js.diff b/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndModule.js.diff index 4144fb36f5..f1c8184608 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndModule.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionExportsRequireAndModule.js.diff @@ -12,11 +12,8 @@ - exports.foo2 = foo2; - var require; - (function (require) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); +- class C { +- } - require.C = C; - })(require || (exports.require = require = {})); - function foo() { @@ -24,11 +21,8 @@ - } - var exports; - (function (exports) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); +- class C { +- } - exports.C = C; - })(exports || (exports.exports = exports = {})); - function foo2() { @@ -36,43 +30,31 @@ - } - var m1; - (function (m1) { -- var require; +- let require; - (function (require) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); +- class C { +- } - require.C = C; - })(require || (require = {})); -- var exports; +- let exports; - (function (exports) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); +- class C { +- } - exports.C = C; - })(exports || (exports = {})); - })(m1 || (m1 = {})); - var m2; - (function (m2) { -- var require; +- let require; - (function (require) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); +- class C { +- } - require.C = C; - })(require = m2.require || (m2.require = {})); -- var exports; +- let exports; - (function (exports) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); +- class C { +- } - exports.C = C; - })(exports = m2.exports || (m2.exports = {})); - })(m2 || (m2 = {})); @@ -132,78 +114,4 @@ +})(m2 || (m2 = {})); //// [collisionExportsRequireAndModule_globalFile.js] var require; - (function (require) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - require.C = C; - })(require || (require = {})); - var exports; - (function (exports) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - exports.C = C; - })(exports || (exports = {})); - var m3; - (function (m3) { -- var require; -+ let require; - (function (require) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - require.C = C; - })(require || (require = {})); -- var exports; -+ let exports; - (function (exports) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - exports.C = C; - })(exports || (exports = {})); - })(m3 || (m3 = {})); - var m4; - (function (m4) { -- var require; -+ let require; - (function (require) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - require.C = C; - })(require = m4.require || (m4.require = {})); -- var exports; -+ let exports; - (function (exports) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -+ class C { -+ } - exports.C = C; - })(exports = m4.exports || (m4.exports = {})); - })(m4 || (m4 = {})); \ No newline at end of file + (function (require) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionRestParameterArrowFunctions.js.diff b/testdata/baselines/reference/submodule/compiler/collisionRestParameterArrowFunctions.js.diff deleted file mode 100644 index 71711c4550..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionRestParameterArrowFunctions.js.diff +++ /dev/null @@ -1,34 +0,0 @@ ---- old.collisionRestParameterArrowFunctions.js -+++ new.collisionRestParameterArrowFunctions.js -@@= skipped -15, +15 lines =@@ - } - - //// [collisionRestParameterArrowFunctions.js] --var f1 = function (_i) { -- var restParameters = []; -- for (var _a = 1; _a < arguments.length; _a++) { -- restParameters[_a - 1] = arguments[_a]; -- } -- var _i = 10; // no error --}; --var f1NoError = function (_i) { -- var _i = 10; // no error --}; --var f2 = function () { -- var restParameters = []; -- for (var _a = 0; _a < arguments.length; _a++) { -- restParameters[_a] = arguments[_a]; -- } -+var f1 = (_i, ...restParameters) => { -+ var _i = 10; // no error -+}; -+var f1NoError = (_i) => { -+ var _i = 10; // no error -+}; -+var f2 = (...restParameters) => { - var _i = 10; // No Error - }; --var f2NoError = function () { -+var f2NoError = () => { - var _i = 10; // no error - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionRestParameterClassConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/collisionRestParameterClassConstructor.js.diff index d480e600f3..bcca9db07e 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionRestParameterClassConstructor.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionRestParameterClassConstructor.js.diff @@ -1,116 +1,17 @@ --- old.collisionRestParameterClassConstructor.js +++ new.collisionRestParameterClassConstructor.js -@@= skipped -69, +69 lines =@@ - - //// [collisionRestParameterClassConstructor.js] - // Constructors --var c1 = /** @class */ (function () { -- function c1(_i) { -- var restParameters = []; -- for (var _a = 1; _a < arguments.length; _a++) { -- restParameters[_a - 1] = arguments[_a]; -- } -- var _i = 10; // no error -- } -- return c1; --}()); --var c1NoError = /** @class */ (function () { -- function c1NoError(_i) { -- var _i = 10; // no error -- } -- return c1NoError; --}()); --var c2 = /** @class */ (function () { -- function c2() { -- var restParameters = []; -- for (var _a = 0; _a < arguments.length; _a++) { -- restParameters[_a] = arguments[_a]; -- } -- var _i = 10; // no error -- } -- return c2; --}()); --var c2NoError = /** @class */ (function () { -- function c2NoError() { -- var _i = 10; // no error -- } -- return c2NoError; --}()); --var c3 = /** @class */ (function () { -- function c3(_i) { -- var restParameters = []; -- for (var _a = 1; _a < arguments.length; _a++) { -- restParameters[_a - 1] = arguments[_a]; -- } -- this._i = _i; -- var _i = 10; // no error -- } -- return c3; --}()); --var c3NoError = /** @class */ (function () { -- function c3NoError(_i) { -- this._i = _i; -- var _i = 10; // no error -- } -- return c3NoError; --}()); --var c5 = /** @class */ (function () { -- function c5(_i) { -- var rest = []; -- for (var _a = 1; _a < arguments.length; _a++) { -- rest[_a - 1] = arguments[_a]; -- } -- var _i; // no error -- } -- return c5; --}()); --var c5NoError = /** @class */ (function () { -- function c5NoError(_i) { -- var _i; // no error -- } -- return c5NoError; --}()); -+class c1 { -+ constructor(_i, ...restParameters) { -+ var _i = 10; // no error -+ } -+} -+class c1NoError { -+ constructor(_i) { -+ var _i = 10; // no error -+ } -+} -+class c2 { -+ constructor(...restParameters) { -+ var _i = 10; // no error -+ } -+} -+class c2NoError { -+ constructor() { -+ var _i = 10; // no error -+ } -+} -+class c3 { +@@= skipped -90, +90 lines =@@ + } + } + class c3 { + _i; -+ constructor(_i, ...restParameters) { -+ this._i = _i; -+ var _i = 10; // no error -+ } -+} -+class c3NoError { + constructor(_i, ...restParameters) { + this._i = _i; + var _i = 10; // no error + } + } + class c3NoError { + _i; -+ constructor(_i) { -+ this._i = _i; -+ var _i = 10; // no error -+ } -+} -+class c5 { -+ constructor(_i, ...rest) { -+ var _i; // no error -+ } -+} -+class c5NoError { -+ constructor(_i) { -+ var _i; // no error -+ } -+} \ No newline at end of file + constructor(_i) { + this._i = _i; + var _i = 10; // no error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionRestParameterClassMethod.js.diff b/testdata/baselines/reference/submodule/compiler/collisionRestParameterClassMethod.js.diff deleted file mode 100644 index b37e47ac45..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionRestParameterClassMethod.js.diff +++ /dev/null @@ -1,68 +0,0 @@ ---- old.collisionRestParameterClassMethod.js -+++ new.collisionRestParameterClassMethod.js -@@= skipped -40, +40 lines =@@ - } - - //// [collisionRestParameterClassMethod.js] --var c1 = /** @class */ (function () { -- function c1() { -- } -- c1.prototype.foo = function (_i) { -- var restParameters = []; -- for (var _a = 1; _a < arguments.length; _a++) { -- restParameters[_a - 1] = arguments[_a]; -- } -- var _i = 10; // no error -- }; -- c1.prototype.fooNoError = function (_i) { -- var _i = 10; // no error -- }; -- c1.prototype.f4 = function (_i) { -- var rest = []; -- for (var _a = 1; _a < arguments.length; _a++) { -- rest[_a - 1] = arguments[_a]; -- } -- var _i; // no error -- }; -- c1.prototype.f4NoError = function (_i) { -- var _i; // no error -- }; -- return c1; --}()); --var c3 = /** @class */ (function () { -- function c3() { -- } -- c3.prototype.foo = function () { -- var restParameters = []; -- for (var _a = 0; _a < arguments.length; _a++) { -- restParameters[_a] = arguments[_a]; -- } -- var _i = 10; // no error -- }; -- c3.prototype.fooNoError = function () { -- var _i = 10; // no error -- }; -- return c3; --}()); -+class c1 { -+ foo(_i, ...restParameters) { -+ var _i = 10; // no error -+ } -+ fooNoError(_i) { -+ var _i = 10; // no error -+ } -+ f4(_i, ...rest) { -+ var _i; // no error -+ } -+ f4NoError(_i) { -+ var _i; // no error -+ } -+} -+class c3 { -+ foo(...restParameters) { -+ var _i = 10; // no error -+ } -+ fooNoError() { -+ var _i = 10; // no error -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionRestParameterFunction.js.diff b/testdata/baselines/reference/submodule/compiler/collisionRestParameterFunction.js.diff deleted file mode 100644 index 480016c607..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionRestParameterFunction.js.diff +++ /dev/null @@ -1,37 +0,0 @@ ---- old.collisionRestParameterFunction.js -+++ new.collisionRestParameterFunction.js -@@= skipped -36, +36 lines =@@ - - //// [collisionRestParameterFunction.js] - // Functions --function f1(_i) { -- var restParameters = []; -- for (var _a = 1; _a < arguments.length; _a++) { -- restParameters[_a - 1] = arguments[_a]; -- } -+function f1(_i, ...restParameters) { - var _i = 10; // no error - } - function f1NoError(_i) { - var _i = 10; // no error - } --function f3() { -- var restParameters = []; -- for (var _a = 0; _a < arguments.length; _a++) { -- restParameters[_a] = arguments[_a]; -- } -+function f3(...restParameters) { - var _i = 10; // no error - } - function f3NoError() { - var _i = 10; // no error - } --function f4(_i) { -- var rest = []; -- for (var _a = 1; _a < arguments.length; _a++) { -- rest[_a - 1] = arguments[_a]; -- } -+function f4(_i, ...rest) { - } - function f4NoError(_i) { - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionRestParameterFunctionExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/collisionRestParameterFunctionExpressions.js.diff deleted file mode 100644 index d180ad83b4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionRestParameterFunctionExpressions.js.diff +++ /dev/null @@ -1,37 +0,0 @@ ---- old.collisionRestParameterFunctionExpressions.js -+++ new.collisionRestParameterFunctionExpressions.js -@@= skipped -27, +27 lines =@@ - - //// [collisionRestParameterFunctionExpressions.js] - function foo() { -- function f1(_i) { -- var restParameters = []; -- for (var _a = 1; _a < arguments.length; _a++) { -- restParameters[_a - 1] = arguments[_a]; -- } -+ function f1(_i, ...restParameters) { - var _i = 10; // no error - } - function f1NoError(_i) { - var _i = 10; // no error - } -- function f3() { -- var restParameters = []; -- for (var _a = 0; _a < arguments.length; _a++) { -- restParameters[_a] = arguments[_a]; -- } -+ function f3(...restParameters) { - var _i = 10; // no error - } - function f3NoError() { - var _i = 10; // no error - } -- function f4(_i) { -- var rest = []; -- for (var _a = 1; _a < arguments.length; _a++) { -- rest[_a - 1] = arguments[_a]; -- } -+ function f4(_i, ...rest) { - } - function f4NoError(_i) { - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionRestParameterUnderscoreIUsage.js.diff b/testdata/baselines/reference/submodule/compiler/collisionRestParameterUnderscoreIUsage.js.diff deleted file mode 100644 index df8376aea4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionRestParameterUnderscoreIUsage.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.collisionRestParameterUnderscoreIUsage.js -+++ new.collisionRestParameterUnderscoreIUsage.js -@@= skipped -11, +11 lines =@@ - - //// [collisionRestParameterUnderscoreIUsage.js] - var _i = "This is what I'd expect to see"; --var Foo = /** @class */ (function () { -- function Foo() { -- var args = []; -- for (var _a = 0; _a < arguments.length; _a++) { -- args[_a] = arguments[_a]; -- } -+class Foo { -+ constructor(...args) { - console.log(_i); // This should result in error - } -- return Foo; --}()); -+} - new Foo(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInAccessors.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInAccessors.js.diff deleted file mode 100644 index 00a4621fe2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInAccessors.js.diff +++ /dev/null @@ -1,122 +0,0 @@ ---- old.collisionSuperAndLocalFunctionInAccessors.js -+++ new.collisionSuperAndLocalFunctionInAccessors.js -@@= skipped -41, +41 lines =@@ - } - - //// [collisionSuperAndLocalFunctionInAccessors.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - function _super() { - } --var Foo = /** @class */ (function () { -- function Foo() { -- } -- Object.defineProperty(Foo.prototype, "prop1", { -- get: function () { -- function _super() { -- } -- return 10; -- }, -- set: function (val) { -- function _super() { -- } -- }, -- enumerable: false, -- configurable: true -- }); -- return Foo; --}()); --var b = /** @class */ (function (_super_1) { -- __extends(b, _super_1); -- function b() { -- return _super_1 !== null && _super_1.apply(this, arguments) || this; -- } -- Object.defineProperty(b.prototype, "prop2", { -- get: function () { -- function _super() { -- } -- return 10; -- }, -- set: function (val) { -- function _super() { -- } -- }, -- enumerable: false, -- configurable: true -- }); -- return b; --}(Foo)); --var c = /** @class */ (function (_super_1) { -- __extends(c, _super_1); -- function c() { -- return _super_1 !== null && _super_1.apply(this, arguments) || this; -- } -- Object.defineProperty(c.prototype, "prop2", { -- get: function () { -- var x = function () { -- function _super() { -- } -- }; -- return 10; -- }, -- set: function (val) { -- var x = function () { -- function _super() { -- } -- }; -- }, -- enumerable: false, -- configurable: true -- }); -- return c; --}(Foo)); -+class Foo { -+ get prop1() { -+ function _super() { -+ } -+ return 10; -+ } -+ set prop1(val) { -+ function _super() { -+ } -+ } -+} -+class b extends Foo { -+ get prop2() { -+ function _super() { -+ } -+ return 10; -+ } -+ set prop2(val) { -+ function _super() { -+ } -+ } -+} -+class c extends Foo { -+ get prop2() { -+ var x = () => { -+ function _super() { -+ } -+ }; -+ return 10; -+ } -+ set prop2(val) { -+ var x = () => { -+ function _super() { -+ } -+ }; -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInConstructor.js.diff deleted file mode 100644 index c1d2e3d42b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInConstructor.js.diff +++ /dev/null @@ -1,70 +0,0 @@ ---- old.collisionSuperAndLocalFunctionInConstructor.js -+++ new.collisionSuperAndLocalFunctionInConstructor.js -@@= skipped -26, +26 lines =@@ - } - - //// [collisionSuperAndLocalFunctionInConstructor.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - function _super() { - } --var Foo = /** @class */ (function () { -- function Foo() { -- function _super() { -- } -- } -- return Foo; --}()); --var b = /** @class */ (function (_super_1) { -- __extends(b, _super_1); -- function b() { -- var _this = _super_1.call(this) || this; -- function _super() { -- } -- return _this; -- } -- return b; --}(Foo)); --var c = /** @class */ (function (_super_1) { -- __extends(c, _super_1); -- function c() { -- var _this = _super_1.call(this) || this; -- var x = function () { -+class Foo { -+ constructor() { -+ function _super() { -+ } -+ } -+} -+class b extends Foo { -+ constructor() { -+ super(); -+ function _super() { -+ } -+ } -+} -+class c extends Foo { -+ constructor() { -+ super(); -+ var x = () => { - function _super() { - } - }; -- return _this; - } -- return c; --}(Foo)); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInMethod.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInMethod.js.diff deleted file mode 100644 index f9f1c33151..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInMethod.js.diff +++ /dev/null @@ -1,85 +0,0 @@ ---- old.collisionSuperAndLocalFunctionInMethod.js -+++ new.collisionSuperAndLocalFunctionInMethod.js -@@= skipped -30, +30 lines =@@ - } - - //// [collisionSuperAndLocalFunctionInMethod.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - function _super() { - } --var Foo = /** @class */ (function () { -- function Foo() { -- } -- Foo.prototype.x = function () { -- function _super() { -- } -- }; -- Foo.prototype._super = function () { -- }; -- return Foo; --}()); --var b = /** @class */ (function (_super_1) { -- __extends(b, _super_1); -- function b() { -- return _super_1 !== null && _super_1.apply(this, arguments) || this; -- } -- b.prototype.foo = function () { -- function _super() { -- } -- }; -- b.prototype._super = function () { -- }; -- return b; --}(Foo)); --var c = /** @class */ (function (_super_1) { -- __extends(c, _super_1); -- function c() { -- return _super_1 !== null && _super_1.apply(this, arguments) || this; -- } -- c.prototype.foo = function () { -- var x = function () { -+class Foo { -+ x() { -+ function _super() { -+ } -+ } -+ _super() { -+ } -+} -+class b extends Foo { -+ foo() { -+ function _super() { -+ } -+ } -+ _super() { -+ } -+} -+class c extends Foo { -+ foo() { -+ var x = () => { - function _super() { - } - }; -- }; -- c.prototype._super = function () { -- }; -- return c; --}(Foo)); -+ } -+ _super() { -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInProperty.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInProperty.js.diff index 284f055cb2..35d6af7043 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInProperty.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalFunctionInProperty.js.diff @@ -1,64 +1,36 @@ --- old.collisionSuperAndLocalFunctionInProperty.js +++ new.collisionSuperAndLocalFunctionInProperty.js -@@= skipped -20, +20 lines =@@ - } - - //// [collisionSuperAndLocalFunctionInProperty.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); +@@= skipped -23, +23 lines =@@ function _super() { } --var Foo = /** @class */ (function () { -- function Foo() { + class Foo { +- constructor() { - this.prop1 = { -- doStuff: function () { +- doStuff: () => { - function _super() { - } -- } -- }; -- } -- return Foo; --}()); --var b = /** @class */ (function (_super_1) { -- __extends(b, _super_1); -- function b() { -- var _this = _super_1 !== null && _super_1.apply(this, arguments) || this; -- _this.prop2 = { -- doStuff: function () { -- function _super() { -- } -- } -- }; -- return _this; -- } -- return b; --}(Foo)); -+class Foo { + prop1 = { + doStuff: () => { + function _super() { -+ } + } +- }; +- } + } + }; -+} -+class b extends Foo { + } + class b extends Foo { +- constructor() { +- super(...arguments); +- this.prop2 = { +- doStuff: () => { +- function _super() { +- } + prop2 = { + doStuff: () => { + function _super() { -+ } + } +- }; +- } + } + }; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInAccessors.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInAccessors.js.diff deleted file mode 100644 index 64a79130a7..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInAccessors.js.diff +++ /dev/null @@ -1,109 +0,0 @@ ---- old.collisionSuperAndLocalVarInAccessors.js -+++ new.collisionSuperAndLocalVarInAccessors.js -@@= skipped -34, +34 lines =@@ - } - - //// [collisionSuperAndLocalVarInAccessors.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - var _super = 10; // No Error --var Foo = /** @class */ (function () { -- function Foo() { -- } -- Object.defineProperty(Foo.prototype, "prop1", { -- get: function () { -- var _super = 10; // No error -- return 10; -- }, -- set: function (val) { -- var _super = 10; // No error -- }, -- enumerable: false, -- configurable: true -- }); -- return Foo; --}()); --var b = /** @class */ (function (_super_1) { -- __extends(b, _super_1); -- function b() { -- return _super_1 !== null && _super_1.apply(this, arguments) || this; -- } -- Object.defineProperty(b.prototype, "prop2", { -- get: function () { -- var _super = 10; // Should be error -- return 10; -- }, -- set: function (val) { -- var _super = 10; // Should be error -- }, -- enumerable: false, -- configurable: true -- }); -- return b; --}(Foo)); --var c = /** @class */ (function (_super_1) { -- __extends(c, _super_1); -- function c() { -- return _super_1 !== null && _super_1.apply(this, arguments) || this; -- } -- Object.defineProperty(c.prototype, "prop2", { -- get: function () { -- var x = function () { -- var _super = 10; // Should be error -- }; -- return 10; -- }, -- set: function (val) { -- var x = function () { -- var _super = 10; // Should be error -- }; -- }, -- enumerable: false, -- configurable: true -- }); -- return c; --}(Foo)); -+class Foo { -+ get prop1() { -+ var _super = 10; // No error -+ return 10; -+ } -+ set prop1(val) { -+ var _super = 10; // No error -+ } -+} -+class b extends Foo { -+ get prop2() { -+ var _super = 10; // Should be error -+ return 10; -+ } -+ set prop2(val) { -+ var _super = 10; // Should be error -+ } -+} -+class c extends Foo { -+ get prop2() { -+ var x = () => { -+ var _super = 10; // Should be error -+ }; -+ return 10; -+ } -+ set prop2(val) { -+ var x = () => { -+ var _super = 10; // Should be error -+ }; -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInConstructor.js.diff deleted file mode 100644 index 1ed2efb162..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInConstructor.js.diff +++ /dev/null @@ -1,60 +0,0 @@ ---- old.collisionSuperAndLocalVarInConstructor.js -+++ new.collisionSuperAndLocalVarInConstructor.js -@@= skipped -22, +22 lines =@@ - } - - //// [collisionSuperAndLocalVarInConstructor.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - var _super = 10; // No Error --var Foo = /** @class */ (function () { -- function Foo() { -+class Foo { -+ constructor() { - var _super = 10; // No error - } -- return Foo; --}()); --var b = /** @class */ (function (_super_1) { -- __extends(b, _super_1); -- function b() { -- var _this = _super_1.call(this) || this; -+} -+class b extends Foo { -+ constructor() { -+ super(); - var _super = 10; // Should be error -- return _this; - } -- return b; --}(Foo)); --var c = /** @class */ (function (_super_1) { -- __extends(c, _super_1); -- function c() { -- var _this = _super_1.call(this) || this; -- var x = function () { -+} -+class c extends Foo { -+ constructor() { -+ super(); -+ var x = () => { - var _super = 10; // Should be error - }; -- return _this; - } -- return c; --}(Foo)); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInMethod.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInMethod.js.diff deleted file mode 100644 index 04acad70e0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInMethod.js.diff +++ /dev/null @@ -1,63 +0,0 @@ ---- old.collisionSuperAndLocalVarInMethod.js -+++ new.collisionSuperAndLocalVarInMethod.js -@@= skipped -20, +20 lines =@@ - } - - //// [collisionSuperAndLocalVarInMethod.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - var _super = 10; // No Error --var Foo = /** @class */ (function () { -- function Foo() { -- } -- Foo.prototype.x = function () { -+class Foo { -+ x() { - var _super = 10; // No error -- }; -- return Foo; --}()); --var b = /** @class */ (function (_super_1) { -- __extends(b, _super_1); -- function b() { -- return _super_1 !== null && _super_1.apply(this, arguments) || this; - } -- b.prototype.foo = function () { -+} -+class b extends Foo { -+ foo() { - var _super = 10; // Should be error -- }; -- return b; --}(Foo)); --var c = /** @class */ (function (_super_1) { -- __extends(c, _super_1); -- function c() { -- return _super_1 !== null && _super_1.apply(this, arguments) || this; - } -- c.prototype.foo = function () { -- var x = function () { -+} -+class c extends Foo { -+ foo() { -+ var x = () => { - var _super = 10; // Should be error - }; -- }; -- return c; --}(Foo)); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInProperty.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInProperty.js.diff index d03651dab3..d61cee1ea0 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInProperty.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionSuperAndLocalVarInProperty.js.diff @@ -1,63 +1,38 @@ --- old.collisionSuperAndLocalVarInProperty.js +++ new.collisionSuperAndLocalVarInProperty.js -@@= skipped -19, +19 lines =@@ - } - +@@= skipped -21, +21 lines =@@ //// [collisionSuperAndLocalVarInProperty.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); var _super = 10; // No Error --var Foo = /** @class */ (function () { -- function Foo() { + class Foo { +- constructor() { - this.prop1 = { -- doStuff: function () { +- doStuff: () => { - var _super = 10; // No error - } - }; - this._super = 10; // No error - } -- return Foo; --}()); --var b = /** @class */ (function (_super_1) { -- __extends(b, _super_1); -- function b() { -- var _this = _super_1 !== null && _super_1.apply(this, arguments) || this; -- _this.prop2 = { -- doStuff: function () { -- var _super = 10; // Should be error -- } -- }; -- _this._super = 10; // No error -- return _this; -- } -- return b; --}(Foo)); -+class Foo { + prop1 = { + doStuff: () => { + var _super = 10; // No error + } + }; + _super = 10; // No error -+} -+class b extends Foo { + } + class b extends Foo { +- constructor() { +- super(...arguments); +- this.prop2 = { +- doStuff: () => { +- var _super = 10; // Should be error +- } +- }; +- this._super = 10; // No error +- } + prop2 = { + doStuff: () => { + var _super = 10; // Should be error + } + }; + _super = 10; // No error -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndNameResolution.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndNameResolution.js.diff deleted file mode 100644 index 940724e83c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndNameResolution.js.diff +++ /dev/null @@ -1,44 +0,0 @@ ---- old.collisionSuperAndNameResolution.js -+++ new.collisionSuperAndNameResolution.js -@@= skipped -13, +13 lines =@@ - } - - //// [collisionSuperAndNameResolution.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - var console; - var _super = 10; // No error --var base = /** @class */ (function () { -- function base() { -- } -- return base; --}()); --var Foo = /** @class */ (function (_super_1) { -- __extends(Foo, _super_1); -- function Foo() { -- return _super_1 !== null && _super_1.apply(this, arguments) || this; -- } -- Foo.prototype.x = function () { -+class base { -+} -+class Foo extends base { -+ x() { - console.log(_super); // Error as this doesnt not resolve to user defined _super -- }; -- return Foo; --}(base)); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndParameter.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndParameter.js.diff index 9985c7df7e..d45d50db20 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndParameter.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionSuperAndParameter.js.diff @@ -1,133 +1,20 @@ --- old.collisionSuperAndParameter.js +++ new.collisionSuperAndParameter.js -@@= skipped -64, +64 lines =@@ - } - - //// [collisionSuperAndParameter.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Foo = /** @class */ (function () { -- function Foo() { -- } -- Foo.prototype.a = function () { -- var _this = this; -- var lamda = function (_super) { -- return function (x) { return _this; }; // New scope. So should inject new _this capture -- }; -- }; -- Foo.prototype.b = function (_super) { -- var _this = this; -- var lambda = function () { -- return function (x) { return _this; }; // New scope. So should inject new _this capture -- }; -- }; -- Object.defineProperty(Foo.prototype, "c", { -- set: function (_super) { -- }, -- enumerable: false, -- configurable: true -- }); -- return Foo; --}()); --var Foo2 = /** @class */ (function (_super_1) { -- __extends(Foo2, _super_1); -- function Foo2(_super) { -- var _this = _super_1.call(this) || this; -- _this.prop4 = { -- doStuff: function (_super) { -- } -- }; -- return _this; -- } -- Foo2.prototype.x = function () { -- var _this = this; -- var lamda = function (_super) { -- return function (x) { return _this; }; // New scope. So should inject new _this capture -- }; -- }; -- Foo2.prototype.y = function (_super) { -- var _this = this; -- var lambda = function () { -- return function (x) { return _this; }; // New scope. So should inject new _this capture -- }; -- }; -- Object.defineProperty(Foo2.prototype, "z", { -- set: function (_super) { -- }, -- enumerable: false, -- configurable: true -- }); -- return Foo2; --}(Foo)); --var Foo4 = /** @class */ (function (_super_1) { -- __extends(Foo4, _super_1); -- function Foo4(_super) { -- return _super_1.call(this) || this; -- } -- Foo4.prototype.y = function (_super) { -- var _this = this; -- var lambda = function () { -- return function (x) { return _this; }; // New scope. So should inject new _this capture -- }; -- }; -- return Foo4; --}(Foo)); -+class Foo { -+ a() { -+ var lamda = (_super) => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+ b(_super) { -+ var lambda = () => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+ set c(_super) { -+ } -+} -+class Foo2 extends Foo { -+ x() { -+ var lamda = (_super) => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+ y(_super) { -+ var lambda = () => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+ set z(_super) { -+ } +@@= skipped -91, +91 lines =@@ + } + set z(_super) { + } + prop3; + prop4 = { + doStuff: (_super) => { + } + }; -+ constructor(_super) { -+ super(); -+ } -+} -+class Foo4 extends Foo { -+ constructor(_super) { -+ super(); -+ } -+ y(_super) { -+ var lambda = () => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+} \ No newline at end of file + constructor(_super) { + super(); +- this.prop4 = { +- doStuff: (_super) => { +- } +- }; + } + } + class Foo4 extends Foo { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndParameter1.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndParameter1.js.diff deleted file mode 100644 index a55e2f1309..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndParameter1.js.diff +++ /dev/null @@ -1,44 +0,0 @@ ---- old.collisionSuperAndParameter1.js -+++ new.collisionSuperAndParameter1.js -@@= skipped -11, +11 lines =@@ - } - - //// [collisionSuperAndParameter1.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Foo = /** @class */ (function () { -- function Foo() { -- } -- return Foo; --}()); --var Foo2 = /** @class */ (function (_super_1) { -- __extends(Foo2, _super_1); -- function Foo2() { -- return _super_1 !== null && _super_1.apply(this, arguments) || this; -- } -- Foo2.prototype.x = function () { -- var lambda = function (_super) { -+class Foo { -+} -+class Foo2 extends Foo { -+ x() { -+ var lambda = (_super) => { - }; -- }; -- return Foo2; --}(Foo)); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionSuperAndPropertyNameAsConstuctorParameter.js.diff b/testdata/baselines/reference/submodule/compiler/collisionSuperAndPropertyNameAsConstuctorParameter.js.diff index 617d4c8933..fb34842edd 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionSuperAndPropertyNameAsConstuctorParameter.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionSuperAndPropertyNameAsConstuctorParameter.js.diff @@ -1,84 +1,18 @@ --- old.collisionSuperAndPropertyNameAsConstuctorParameter.js +++ new.collisionSuperAndPropertyNameAsConstuctorParameter.js -@@= skipped -32, +32 lines =@@ +@@= skipped -40, +40 lines =@@ + } } - - //// [collisionSuperAndPropertyNameAsConstuctorParameter.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var a = /** @class */ (function () { -- function a() { -- } -- return a; --}()); --var b1 = /** @class */ (function (_super_1) { -- __extends(b1, _super_1); -- function b1(_super) { -- return _super_1.call(this) || this; -- } -- return b1; --}(a)); --var b2 = /** @class */ (function (_super_1) { -- __extends(b2, _super_1); -- function b2(_super) { -- var _this = _super_1.call(this) || this; -- _this._super = _super; -- return _this; -- } -- return b2; --}(a)); --var b3 = /** @class */ (function (_super_1) { -- __extends(b3, _super_1); -- function b3(_super) { -- return _super_1.call(this) || this; -- } -- return b3; --}(a)); --var b4 = /** @class */ (function (_super_1) { -- __extends(b4, _super_1); -- function b4(_super) { -- var _this = _super_1.call(this) || this; -- _this._super = _super; -- return _this; -- } -- return b4; --}(a)); -+class a { -+} -+class b1 extends a { -+ constructor(_super) { -+ super(); -+ } -+} -+class b2 extends a { + class b2 extends a { + _super; -+ constructor(_super) { -+ super(); -+ this._super = _super; -+ } -+} -+class b3 extends a { -+ constructor(_super) { -+ super(); -+ } -+} -+class b4 extends a { + constructor(_super) { + super(); + this._super = _super; +@@= skipped -11, +12 lines =@@ + } + } + class b4 extends a { + _super; -+ constructor(_super) { -+ super(); -+ this._super = _super; -+ } -+} \ No newline at end of file + constructor(_super) { + super(); + this._super = _super; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndAliasInGlobal.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndAliasInGlobal.js.diff index 62a0d38f81..484d9e87ec 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndAliasInGlobal.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndAliasInGlobal.js.diff @@ -1,14 +1,7 @@ --- old.collisionThisExpressionAndAliasInGlobal.js +++ new.collisionThisExpressionAndAliasInGlobal.js -@@= skipped -7, +7 lines =@@ - import _this = a; // Error - - //// [collisionThisExpressionAndAliasInGlobal.js] --var _this_1 = this; - var a; - (function (a) { +@@= skipped -12, +12 lines =@@ a.b = 10; })(a || (a = {})); --var f = function () { return _this_1; }; --var _this = a; // Error -+var f = () => this; \ No newline at end of file + var f = () => this; +-var _this = a; // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndAmbientClassInGlobal.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndAmbientClassInGlobal.js.diff deleted file mode 100644 index 4ee84fd59e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndAmbientClassInGlobal.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.collisionThisExpressionAndAmbientClassInGlobal.js -+++ new.collisionThisExpressionAndAmbientClassInGlobal.js -@@= skipped -6, +6 lines =@@ - var a = new _this(); // Error - - //// [collisionThisExpressionAndAmbientClassInGlobal.js] --var _this_1 = this; --var f = function () { return _this_1; }; -+var f = () => this; - var a = new _this(); // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndAmbientVarInGlobal.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndAmbientVarInGlobal.js.diff deleted file mode 100644 index 41521fae79..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndAmbientVarInGlobal.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.collisionThisExpressionAndAmbientVarInGlobal.js -+++ new.collisionThisExpressionAndAmbientVarInGlobal.js -@@= skipped -5, +5 lines =@@ - _this = 10; // Error - - //// [collisionThisExpressionAndAmbientVarInGlobal.js] --var _this_1 = this; --var f = function () { return _this_1; }; -+var f = () => this; - _this = 10; // Error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndClassInGlobal.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndClassInGlobal.js.diff deleted file mode 100644 index 7824889ea1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndClassInGlobal.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.collisionThisExpressionAndClassInGlobal.js -+++ new.collisionThisExpressionAndClassInGlobal.js -@@= skipped -5, +5 lines =@@ - var f = () => this; - - //// [collisionThisExpressionAndClassInGlobal.js] --var _this_1 = this; --var _this = /** @class */ (function () { -- function _this() { -- } -- return _this; --}()); --var f = function () { return _this_1; }; -+class _this { -+} -+var f = () => this; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndEnumInGlobal.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndEnumInGlobal.js.diff deleted file mode 100644 index 5d62e2c41c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndEnumInGlobal.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.collisionThisExpressionAndEnumInGlobal.js -+++ new.collisionThisExpressionAndEnumInGlobal.js -@@= skipped -7, +7 lines =@@ - var f = () => this; - - //// [collisionThisExpressionAndEnumInGlobal.js] --var _this_1 = this; - var _this; - (function (_this) { - _this[_this["_thisVal1"] = 0] = "_thisVal1"; - _this[_this["_thisVal2"] = 1] = "_thisVal2"; - })(_this || (_this = {})); --var f = function () { return _this_1; }; -+var f = () => this; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndFunctionInGlobal.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndFunctionInGlobal.js.diff deleted file mode 100644 index 36ce8e79e8..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndFunctionInGlobal.js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.collisionThisExpressionAndFunctionInGlobal.js -+++ new.collisionThisExpressionAndFunctionInGlobal.js -@@= skipped -6, +6 lines =@@ - var f = () => this; - - //// [collisionThisExpressionAndFunctionInGlobal.js] --var _this_1 = this; - function _this() { - return 10; - } --var f = function () { return _this_1; }; -+var f = () => this; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInAccessors.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInAccessors.js.diff deleted file mode 100644 index a16f0881c0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInAccessors.js.diff +++ /dev/null @@ -1,100 +0,0 @@ ---- old.collisionThisExpressionAndLocalVarInAccessors.js -+++ new.collisionThisExpressionAndLocalVarInAccessors.js -@@= skipped -45, +45 lines =@@ - } - - //// [collisionThisExpressionAndLocalVarInAccessors.js] --var class1 = /** @class */ (function () { -- function class1() { -- } -- Object.defineProperty(class1.prototype, "a", { -- get: function () { -- var _this_1 = this; -- var x2 = { -- doStuff: function (callback) { return function () { -- var _this = 2; -- return callback(_this_1); -- }; } -- }; -- return 10; -- }, -- set: function (val) { -- var _this_1 = this; -- var x2 = { -- doStuff: function (callback) { return function () { -- var _this = 2; -- return callback(_this_1); -- }; } -- }; -- }, -- enumerable: false, -- configurable: true -- }); -- return class1; --}()); --var class2 = /** @class */ (function () { -- function class2() { -- } -- Object.defineProperty(class2.prototype, "a", { -- get: function () { -- var _this_1 = this; -- var _this = 2; -- var x2 = { -- doStuff: function (callback) { return function () { -- return callback(_this_1); -- }; } -- }; -- return 10; -- }, -- set: function (val) { -- var _this_1 = this; -- var _this = 2; -- var x2 = { -- doStuff: function (callback) { return function () { -- return callback(_this_1); -- }; } -- }; -- }, -- enumerable: false, -- configurable: true -- }); -- return class2; --}()); -+class class1 { -+ get a() { -+ var x2 = { -+ doStuff: (callback) => () => { -+ var _this = 2; -+ return callback(this); -+ } -+ }; -+ return 10; -+ } -+ set a(val) { -+ var x2 = { -+ doStuff: (callback) => () => { -+ var _this = 2; -+ return callback(this); -+ } -+ }; -+ } -+} -+class class2 { -+ get a() { -+ var _this = 2; -+ var x2 = { -+ doStuff: (callback) => () => { -+ return callback(this); -+ } -+ }; -+ return 10; -+ } -+ set a(val) { -+ var _this = 2; -+ var x2 = { -+ doStuff: (callback) => () => { -+ return callback(this); -+ } -+ }; -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInConstructor.js.diff deleted file mode 100644 index b6a085d18f..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInConstructor.js.diff +++ /dev/null @@ -1,42 +0,0 @@ ---- old.collisionThisExpressionAndLocalVarInConstructor.js -+++ new.collisionThisExpressionAndLocalVarInConstructor.js -@@= skipped -23, +23 lines =@@ - } - - //// [collisionThisExpressionAndLocalVarInConstructor.js] --var class1 = /** @class */ (function () { -- function class1() { -- var _this_1 = this; -+class class1 { -+ constructor() { - var x2 = { -- doStuff: function (callback) { return function () { -+ doStuff: (callback) => () => { - var _this = 2; -- return callback(_this_1); -- }; } -+ return callback(this); -+ } - }; - } -- return class1; --}()); --var class2 = /** @class */ (function () { -- function class2() { -- var _this_1 = this; -+} -+class class2 { -+ constructor() { - var _this = 2; - var x2 = { -- doStuff: function (callback) { return function () { -- return callback(_this_1); -- }; } -+ doStuff: (callback) => () => { -+ return callback(this); -+ } - }; - } -- return class2; --}()); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInFunction.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInFunction.js.diff deleted file mode 100644 index 896b19bce4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInFunction.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.collisionThisExpressionAndLocalVarInFunction.js -+++ new.collisionThisExpressionAndLocalVarInFunction.js -@@= skipped -11, +11 lines =@@ - //// [collisionThisExpressionAndLocalVarInFunction.js] - var console; - function x() { -- var _this_1 = this; - var _this = 5; -- (function (x) { console.log(_this_1.x); }); -+ x => { console.log(this.x); }; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInLambda.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInLambda.js.diff deleted file mode 100644 index 909428ce31..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInLambda.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.collisionThisExpressionAndLocalVarInLambda.js -+++ new.collisionThisExpressionAndLocalVarInLambda.js -@@= skipped -11, +11 lines =@@ - alert(x.doStuff(x => alert(x))); - - //// [collisionThisExpressionAndLocalVarInLambda.js] --var _this_1 = this; - var x = { -- doStuff: function (callback) { return function () { -+ doStuff: (callback) => () => { - var _this = 2; -- return callback(_this_1); -- }; } -+ return callback(this); -+ } - }; --alert(x.doStuff(function (x) { return alert(x); })); -+alert(x.doStuff(x => alert(x))); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInMethod.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInMethod.js.diff deleted file mode 100644 index f13b04ee11..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInMethod.js.diff +++ /dev/null @@ -1,41 +0,0 @@ ---- old.collisionThisExpressionAndLocalVarInMethod.js -+++ new.collisionThisExpressionAndLocalVarInMethod.js -@@= skipped -20, +20 lines =@@ - } - - //// [collisionThisExpressionAndLocalVarInMethod.js] --var a = /** @class */ (function () { -- function a() { -- } -- a.prototype.method1 = function () { -- var _this_1 = this; -+class a { -+ method1() { - return { -- doStuff: function (callback) { return function () { -+ doStuff: (callback) => () => { - var _this = 2; -- return callback(_this_1); -- }; } -+ return callback(this); -+ } - }; -- }; -- a.prototype.method2 = function () { -- var _this_1 = this; -+ } -+ method2() { - var _this = 2; - return { -- doStuff: function (callback) { return function () { -- return callback(_this_1); -- }; } -+ doStuff: (callback) => () => { -+ return callback(this); -+ } - }; -- }; -- return a; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInProperty.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInProperty.js.diff index 0d30dea833..47fb3cf255 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInProperty.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarInProperty.js.diff @@ -1,46 +1,36 @@ --- old.collisionThisExpressionAndLocalVarInProperty.js +++ new.collisionThisExpressionAndLocalVarInProperty.js -@@= skipped -21, +21 lines =@@ - } +@@= skipped -22, +22 lines =@@ //// [collisionThisExpressionAndLocalVarInProperty.js] --var class1 = /** @class */ (function () { -- function class1() { -- var _this_1 = this; + class class1 { +- constructor() { - this.prop1 = { -- doStuff: function (callback) { return function () { +- doStuff: (callback) => () => { - var _this = 2; -- return callback(_this_1); -- }; } +- return callback(this); +- } - }; - } -- return class1; --}()); --var class2 = /** @class */ (function () { -- function class2() { -- var _this_1 = this; -- this.prop1 = { -- doStuff: function (callback) { return function () { -- return callback(_this_1); -- }; } -- }; -+class class1 { + prop1 = { + doStuff: (callback) => () => { + var _this = 2; + return callback(this); + } + }; -+} -+class class2 { -+ constructor() { + } + class class2 { + constructor() { +- this.prop1 = { +- doStuff: (callback) => () => { +- return callback(this); +- } +- }; var _this = 2; } -- return class2; --}()); + prop1 = { + doStuff: (callback) => () => { + return callback(this); + } + }; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarWithSuperExperssion.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarWithSuperExperssion.js.diff deleted file mode 100644 index e190e6867c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndLocalVarWithSuperExperssion.js.diff +++ /dev/null @@ -1,68 +0,0 @@ ---- old.collisionThisExpressionAndLocalVarWithSuperExperssion.js -+++ new.collisionThisExpressionAndLocalVarWithSuperExperssion.js -@@= skipped -20, +20 lines =@@ - } - - //// [collisionThisExpressionAndLocalVarWithSuperExperssion.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var a = /** @class */ (function () { -- function a() { -- } -- a.prototype.foo = function () { -- }; -- return a; --}()); --var b = /** @class */ (function (_super) { -- __extends(b, _super); -- function b() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- b.prototype.foo = function () { -- var _this_1 = this; -+class a { -+ foo() { -+ } -+} -+class b extends a { -+ foo() { - var _this = 10; -- var f = function () { return _super.prototype.foo.call(_this_1); }; -- }; -- return b; --}(a)); --var b2 = /** @class */ (function (_super) { -- __extends(b2, _super); -- function b2() { -- return _super !== null && _super.apply(this, arguments) || this; -+ var f = () => super.foo(); - } -- b2.prototype.foo = function () { -- var _this_1 = this; -- var f = function () { -+} -+class b2 extends a { -+ foo() { -+ var f = () => { - var _this = 10; -- return _super.prototype.foo.call(_this_1); -+ return super.foo(); - }; -- }; -- return b2; --}(a)); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndModuleInGlobal.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndModuleInGlobal.js.diff deleted file mode 100644 index 5c9e653830..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndModuleInGlobal.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.collisionThisExpressionAndModuleInGlobal.js -+++ new.collisionThisExpressionAndModuleInGlobal.js -@@= skipped -7, +7 lines =@@ - var f = () => this; - - //// [collisionThisExpressionAndModuleInGlobal.js] --var _this_1 = this; - var _this; - (function (_this) { -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - })(_this || (_this = {})); --var f = function () { return _this_1; }; -+var f = () => this; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndNameResolution.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndNameResolution.js.diff deleted file mode 100644 index e7d45d0825..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndNameResolution.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.collisionThisExpressionAndNameResolution.js -+++ new.collisionThisExpressionAndNameResolution.js -@@= skipped -15, +15 lines =@@ - - //// [collisionThisExpressionAndNameResolution.js] - var console; --var Foo = /** @class */ (function () { -- function Foo() { -- } -- Foo.prototype.x = function () { -+class Foo { -+ x() { - var _this = 10; // Local var. No this capture in x(), so no conflict. - function inner() { -- var _this_1 = this; - console.log(_this); // Error as this doesnt not resolve to user defined _this -- return function (x) { return _this_1; }; // New scope. So should inject new _this capture into function inner -+ return x => this; // New scope. So should inject new _this capture into function inner - } -- }; -- return Foo; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndParameter.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndParameter.js.diff deleted file mode 100644 index 85af480d70..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndParameter.js.diff +++ /dev/null @@ -1,131 +0,0 @@ ---- old.collisionThisExpressionAndParameter.js -+++ new.collisionThisExpressionAndParameter.js -@@= skipped -95, +95 lines =@@ - declare function f4(_this: string); // no code gen - no error - - //// [collisionThisExpressionAndParameter.js] --var Foo = /** @class */ (function () { -- function Foo() { -- } -- Foo.prototype.x = function () { -- var _this = 10; // Local var. No this capture in x(), so no conflict. -- function inner(_this) { -- var _this_1 = this; -- return function (x) { return _this_1; }; // New scope. So should inject new _this capture into function inner -- } -- }; -- Foo.prototype.y = function () { -- var _this_1 = this; -- var lamda = function (_this) { -- return function (x) { return _this_1; }; // New scope. So should inject new _this capture -- }; -- }; -- Foo.prototype.z = function (_this) { -- var _this_1 = this; -- var lambda = function () { -- return function (x) { return _this_1; }; // New scope. So should inject new _this capture -- }; -- }; -- Foo.prototype.x1 = function () { -- var _this = 10; // Local var. No this capture in x(), so no conflict. -- function inner(_this) { -- } -- }; -- Foo.prototype.y1 = function () { -- var lamda = function (_this) { -- }; -- }; -- Foo.prototype.z1 = function (_this) { -- var lambda = function () { -- }; -- }; -- return Foo; --}()); --var Foo1 = /** @class */ (function () { -- function Foo1(_this) { -- var _this_1 = this; -+class Foo { -+ x() { -+ var _this = 10; // Local var. No this capture in x(), so no conflict. -+ function inner(_this) { -+ return x => this; // New scope. So should inject new _this capture into function inner -+ } -+ } -+ y() { -+ var lamda = (_this) => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+ z(_this) { -+ var lambda = () => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+ x1() { -+ var _this = 10; // Local var. No this capture in x(), so no conflict. -+ function inner(_this) { -+ } -+ } -+ y1() { -+ var lamda = (_this) => { -+ }; -+ } -+ z1(_this) { -+ var lambda = () => { -+ }; -+ } -+} -+class Foo1 { -+ constructor(_this) { - var x2 = { -- doStuff: function (callback) { return function () { -- return callback(_this_1); -- }; } -+ doStuff: (callback) => () => { -+ return callback(this); -+ } - }; - } -- return Foo1; --}()); -+} - function f1(_this) { -- var _this_1 = this; -- (function (x) { console.log(_this_1.x); }); -+ x => { console.log(this.x); }; - } --var Foo3 = /** @class */ (function () { -- function Foo3(_this) { -- var _this_1 = this; -+class Foo3 { -+ constructor(_this) { - var x2 = { -- doStuff: function (callback) { return function () { -- return callback(_this_1); -- }; } -- }; -- } -- Foo3.prototype.z = function (_this) { -- var _this_1 = this; -- var lambda = function () { -- return function (x) { return _this_1; }; // New scope. So should inject new _this capture -- }; -- }; -- return Foo3; --}()); -+ doStuff: (callback) => () => { -+ return callback(this); -+ } -+ }; -+ } -+ z(_this) { -+ var lambda = () => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+} - function f3(_this) { -- var _this_1 = this; -- (function (x) { console.log(_this_1.x); }); -+ x => { console.log(this.x); }; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndPropertyNameAsConstuctorParameter.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndPropertyNameAsConstuctorParameter.js.diff index 6963bbc735..6f851c8a60 100644 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndPropertyNameAsConstuctorParameter.js.diff +++ b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndPropertyNameAsConstuctorParameter.js.diff @@ -1,76 +1,18 @@ --- old.collisionThisExpressionAndPropertyNameAsConstuctorParameter.js +++ new.collisionThisExpressionAndPropertyNameAsConstuctorParameter.js -@@= skipped -37, +37 lines =@@ - } - - //// [collisionThisExpressionAndPropertyNameAsConstuctorParameter.js] --var Foo2 = /** @class */ (function () { -- function Foo2(_this) { -- var _this_1 = this; -- var lambda = function () { -- return function (x) { return _this_1; }; // New scope. So should inject new _this capture -- }; -- } -- return Foo2; --}()); --var Foo3 = /** @class */ (function () { -- function Foo3(_this) { -- var _this_1 = this; -- this._this = _this; -- var lambda = function () { -- return function (x) { return _this_1; }; // New scope. So should inject new _this capture -- }; -- } -- return Foo3; --}()); --var Foo4 = /** @class */ (function () { -- function Foo4(_this) { -- var _this_1 = this; -- var lambda = function () { -- return function (x) { return _this_1; }; // New scope. So should inject new _this capture -- }; -- } -- return Foo4; --}()); --var Foo5 = /** @class */ (function () { -- function Foo5(_this) { -- var _this_1 = this; -- this._this = _this; -- var lambda = function () { -- return function (x) { return _this_1; }; // New scope. So should inject new _this capture -- }; -- } -- return Foo5; --}()); -+class Foo2 { -+ constructor(_this) { -+ var lambda = () => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+} -+class Foo3 { +@@= skipped -45, +45 lines =@@ + } + } + class Foo3 { + _this; -+ constructor(_this) { -+ this._this = _this; -+ var lambda = () => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+} -+class Foo4 { -+ constructor(_this) { -+ var lambda = () => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+} -+class Foo5 { + constructor(_this) { + this._this = _this; + var lambda = () => { +@@= skipped -15, +16 lines =@@ + } + } + class Foo5 { + _this; -+ constructor(_this) { -+ this._this = _this; -+ var lambda = () => { -+ return x => this; // New scope. So should inject new _this capture -+ }; -+ } -+} \ No newline at end of file + constructor(_this) { + this._this = _this; + var lambda = () => { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndVarInGlobal.js.diff b/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndVarInGlobal.js.diff deleted file mode 100644 index 5339f05f68..0000000000 --- a/testdata/baselines/reference/submodule/compiler/collisionThisExpressionAndVarInGlobal.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.collisionThisExpressionAndVarInGlobal.js -+++ new.collisionThisExpressionAndVarInGlobal.js -@@= skipped -4, +4 lines =@@ - var f = () => this; - - //// [collisionThisExpressionAndVarInGlobal.js] --var _this_1 = this; - var _this = 1; --var f = function () { return _this_1; }; -+var f = () => this; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commaOperatorInConditionalExpression.js.diff b/testdata/baselines/reference/submodule/compiler/commaOperatorInConditionalExpression.js.diff deleted file mode 100644 index 1bfd2b5461..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commaOperatorInConditionalExpression.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.commaOperatorInConditionalExpression.js -+++ new.commaOperatorInConditionalExpression.js -@@= skipped -8, +8 lines =@@ - - //// [commaOperatorInConditionalExpression.js] - function f(m) { -- [1, 2, 3].map(function (i) { -- var _a, _b; -- return true ? (_a = {}, _a[m] = i, _a) : (_b = {}, _b[m] = i + 1, _b); -+ [1, 2, 3].map(i => { -+ return true ? { [m]: i } : { [m]: i + 1 }; - }); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.js.diff b/testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.js.diff deleted file mode 100644 index 745a253ea0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commaOperatorLeftSideUnused.js.diff +++ /dev/null @@ -1,48 +0,0 @@ ---- old.commaOperatorLeftSideUnused.js -+++ new.commaOperatorLeftSideUnused.js -@@= skipped -58, +58 lines =@@ - xx = (0, xx.fn)``; - - //// [commaOperatorLeftSideUnused.js] --var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { -- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } -- return cooked; --}; - var xx; - var yy; - function fn() { -- var arr = []; -+ let arr = []; - switch (arr.length) { - // Should error - case 0, 1: -@@= skipped -17, +13 lines =@@ - } - } - // Should error --var x = Math.pow((3, 5), 2); -+let x = Math.pow((3, 5), 2); - // Should error --var a = [(3 + 4), ((1 + 1, 8) * 4)]; -+let a = [(3 + 4), ((1 + 1, 8) * 4)]; - // Error cases - xx = (1, 2); - xx = ('', xx); - xx = (/323/, 5); --xx = ("wat", 'ok'), -+xx = (`wat`, 'ok'), - xx = (true, false); - xx = (false, true); - xx = (null, xx); - xx = (undefined, 10); --xx = (function () { }, 'no'); -+xx = (() => { }, 'no'); - xx = (function () { }, 100); - xx = ({}, {}); - xx = (typeof xx, 'unused'); -@@= skipped -37, +37 lines =@@ - xx = (xx, 100); - xx = (0, xx.fn)(); - xx = (0, xx['fn'])(); --xx = (0, xx.fn)(__makeTemplateObject([""], [""])); -+xx = (0, xx.fn) ``; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentBeforeStaticMethod1.js.diff b/testdata/baselines/reference/submodule/compiler/commentBeforeStaticMethod1.js.diff deleted file mode 100644 index 427be44109..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentBeforeStaticMethod1.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.commentBeforeStaticMethod1.js -+++ new.commentBeforeStaticMethod1.js -@@= skipped -10, +10 lines =@@ - } - - //// [commentBeforeStaticMethod1.js] --var C = /** @class */ (function () { -- function C() { -- } -+class C { - /** - * Returns bar - */ -- C.foo = function () { -+ static foo() { - return "bar"; -- }; -- return C; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement1.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement1.js.diff deleted file mode 100644 index 114c15fc38..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement1.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.commentOnArrayElement1.js -+++ new.commentOnArrayElement1.js -@@= skipped -9, +9 lines =@@ - ]; - - //// [commentOnArrayElement1.js] --var array = [ -+const array = [ - /* element 1*/ - 1 - /* end of element 1 */ , \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement10.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement10.js.diff deleted file mode 100644 index b49f04da91..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement10.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.commentOnArrayElement10.js -+++ new.commentOnArrayElement10.js -@@= skipped -4, +4 lines =@@ - - - //// [commentOnArrayElement10.js] --var array = [, , /* comment */]; -+const array = [, , /* comment */]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement11.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement11.js.diff deleted file mode 100644 index 02b5f85ede..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement11.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.commentOnArrayElement11.js -+++ new.commentOnArrayElement11.js -@@= skipped -6, +6 lines =@@ - - - //// [commentOnArrayElement11.js] --var array = [ -+const array = [ - , /* comment */ - ]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement12.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement12.js.diff deleted file mode 100644 index f41655e5e2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement12.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.commentOnArrayElement12.js -+++ new.commentOnArrayElement12.js -@@= skipped -6, +6 lines =@@ - - - //// [commentOnArrayElement12.js] --var array = [ -+const array = [ - , - , /* comment */ - ]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement13.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement13.js.diff index c753594352..b536a0f505 100644 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement13.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement13.js.diff @@ -4,5 +4,5 @@ //// [commentOnArrayElement13.js] --var array = [ /* comment */]; +-const array = [ /* comment */]; +const array = [ /* comment */ /* comment */]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement14.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement14.js.diff deleted file mode 100644 index ac2f81f1ee..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement14.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.commentOnArrayElement14.js -+++ new.commentOnArrayElement14.js -@@= skipped -4, +4 lines =@@ - - - //// [commentOnArrayElement14.js] --var array = [1 /* comment */]; -+const array = [1 /* comment */]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement15.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement15.js.diff deleted file mode 100644 index c75d9c3e65..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement15.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.commentOnArrayElement15.js -+++ new.commentOnArrayElement15.js -@@= skipped -4, +4 lines =@@ - - - //// [commentOnArrayElement15.js] --var array = [/* comment */ 1 /* comment */]; -+const array = [/* comment */ 1 /* comment */]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement16.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement16.js.diff deleted file mode 100644 index 41504f5431..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement16.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.commentOnArrayElement16.js -+++ new.commentOnArrayElement16.js -@@= skipped -9, +9 lines =@@ - - - //// [commentOnArrayElement16.js] --var array = [ -+const array = [ - // comment start - 1, - 2, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement2.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement2.js.diff deleted file mode 100644 index 4f7ae154db..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement2.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.commentOnArrayElement2.js -+++ new.commentOnArrayElement2.js -@@= skipped -8, +8 lines =@@ - ]; - - //// [commentOnArrayElement2.js] --var array = [ -+const array = [ - /* element 1*/ - 1 /* end of element 1 */, - 2 \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement3.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement3.js.diff deleted file mode 100644 index d93385facb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement3.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.commentOnArrayElement3.js -+++ new.commentOnArrayElement3.js -@@= skipped -10, +10 lines =@@ - ]; - - //// [commentOnArrayElement3.js] --var array = [ -+const array = [ - /* element 1*/ - 1 - /* end of element 1 */ , \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement4.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement4.js.diff deleted file mode 100644 index 2fdc4cec96..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement4.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.commentOnArrayElement4.js -+++ new.commentOnArrayElement4.js -@@= skipped -8, +8 lines =@@ - - - //// [commentOnArrayElement4.js] --var array = [ -+const array = [ - /* element 1 */ - 1, - /* end of element 1 */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement5.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement5.js.diff deleted file mode 100644 index 15cce3ff03..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement5.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.commentOnArrayElement5.js -+++ new.commentOnArrayElement5.js -@@= skipped -9, +9 lines =@@ - - - //// [commentOnArrayElement5.js] --var array = [ -+const array = [ - /* element 1 */ - 1, - /* end of element 1 */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement6.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement6.js.diff deleted file mode 100644 index 418135569c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement6.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.commentOnArrayElement6.js -+++ new.commentOnArrayElement6.js -@@= skipped -4, +4 lines =@@ - - - //// [commentOnArrayElement6.js] --var array = [1, /* comment */]; -+const array = [1, /* comment */]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement7.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement7.js.diff deleted file mode 100644 index 8e3d83142e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement7.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.commentOnArrayElement7.js -+++ new.commentOnArrayElement7.js -@@= skipped -4, +4 lines =@@ - - - //// [commentOnArrayElement7.js] --var array = [/* element 1 */ 1, /* end of element 1 */]; -+const array = [/* element 1 */ 1, /* end of element 1 */]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement8.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement8.js.diff deleted file mode 100644 index 48a492c6b2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement8.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.commentOnArrayElement8.js -+++ new.commentOnArrayElement8.js -@@= skipped -6, +6 lines =@@ - - - //// [commentOnArrayElement8.js] --var array = [ -+const array = [ - 1, /* comment */ - ]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement9.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnArrayElement9.js.diff deleted file mode 100644 index a58d3db575..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnArrayElement9.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.commentOnArrayElement9.js -+++ new.commentOnArrayElement9.js -@@= skipped -6, +6 lines =@@ - - - //// [commentOnArrayElement9.js] --var array = [ -+const array = [ - /* element 1 */ 1, /* end of element 1 */ - ]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnClassAccessor1.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnClassAccessor1.js.diff deleted file mode 100644 index 2cfaf31f83..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnClassAccessor1.js.diff +++ /dev/null @@ -1,25 +0,0 @@ ---- old.commentOnClassAccessor1.js -+++ new.commentOnClassAccessor1.js -@@= skipped -8, +8 lines =@@ - } - - //// [commentOnClassAccessor1.js] --var C = /** @class */ (function () { -- function C() { -- } -- Object.defineProperty(C.prototype, "bar", { -- /** -- * @type {number} -- */ -- get: function () { return 1; }, -- enumerable: false, -- configurable: true -- }); -- return C; --}()); -+class C { -+ /** -+ * @type {number} -+ */ -+ get bar() { return 1; } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnClassAccessor2.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnClassAccessor2.js.diff deleted file mode 100644 index fb10eb5d7b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnClassAccessor2.js.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.commentOnClassAccessor2.js -+++ new.commentOnClassAccessor2.js -@@= skipped -13, +13 lines =@@ - } - - //// [commentOnClassAccessor2.js] --var C = /** @class */ (function () { -- function C() { -- } -- Object.defineProperty(C.prototype, "bar", { -- /** -- * Getter. -- */ -- get: function () { return 1; }, -- /** -- * Setter. -- */ -- set: function (v) { }, -- enumerable: false, -- configurable: true -- }); -- return C; --}()); -+class C { -+ /** -+ * Getter. -+ */ -+ get bar() { return 1; } -+ /** -+ * Setter. -+ */ -+ set bar(v) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnClassMethod1.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnClassMethod1.js.diff deleted file mode 100644 index 635ba5a7db..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnClassMethod1.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.commentOnClassMethod1.js -+++ new.commentOnClassMethod1.js -@@= skipped -9, +9 lines =@@ - } - - //// [commentOnClassMethod1.js] --var WebControls = /** @class */ (function () { -- function WebControls() { -- } -+class WebControls { - /** - * Render a control - */ -- WebControls.prototype.createControl = function () { -- }; -- return WebControls; --}()); -+ createControl() { -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js.diff index 0948bd6df5..59009c5314 100644 --- a/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentOnDecoratedClassDeclaration.js.diff @@ -13,28 +13,29 @@ /** * Leading trivia */ --var Remote = /** @class */ (function () { -- function Remote() { -- } +-let Remote = (() => { +- let Remote = class Remote { +- }; - Remote = __decorate([ - decorator("hello") - ], Remote); - return Remote; --}()); +-})(); +@decorator("hello") +class Remote { +} /** * Floating Comment */ --var AnotherRomote = /** @class */ (function () { -- function AnotherRomote() { -- } +-let AnotherRomote = (() => { +- let AnotherRomote = class AnotherRomote { +- constructor() { } +- }; - AnotherRomote = __decorate([ - decorator("hi") - ], AnotherRomote); - return AnotherRomote; --}()); +-})(); +@decorator("hi") +class AnotherRomote { + constructor() { } diff --git a/testdata/baselines/reference/submodule/compiler/commentOnSignature1.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnSignature1.js.diff index 9705c330dd..bb4c48fea0 100644 --- a/testdata/baselines/reference/submodule/compiler/commentOnSignature1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentOnSignature1.js.diff @@ -10,19 +10,4 @@ -*/ function foo(a) { } --var c = /** @class */ (function () { -- function c(a) { -- } -- c.prototype.foo = function (a) { -- }; -- return c; --}()); -+class c { -+ constructor(a) { -+ } -+ foo(a) { -+ } -+} - //// [b.js] - /// - function foo2(a) { \ No newline at end of file + class c { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnSimpleArrowFunctionBody1.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnSimpleArrowFunctionBody1.js.diff deleted file mode 100644 index 400bcd36db..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnSimpleArrowFunctionBody1.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.commentOnSimpleArrowFunctionBody1.js -+++ new.commentOnSimpleArrowFunctionBody1.js -@@= skipped -12, +12 lines =@@ - //// [commentOnSimpleArrowFunctionBody1.js] - function Foo(x) { - } --Foo(function () { -- // do something -- return 127; --}); -+Foo(() => -+// do something -+127); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentOnStaticMember1.js.diff b/testdata/baselines/reference/submodule/compiler/commentOnStaticMember1.js.diff deleted file mode 100644 index 5dea4525ca..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentOnStaticMember1.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.commentOnStaticMember1.js -+++ new.commentOnStaticMember1.js -@@= skipped -7, +7 lines =@@ - } - - //// [commentOnStaticMember1.js] --var Greeter = /** @class */ (function () { -- function Greeter() { -- } -+class Greeter { - //Hello World -- Greeter.foo = function () { -- }; -- return Greeter; --}()); -+ static foo() { -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentWithUnreasonableIndentationLevel01.js.diff b/testdata/baselines/reference/submodule/compiler/commentWithUnreasonableIndentationLevel01.js.diff index e66d0daec4..0392624fbc 100644 --- a/testdata/baselines/reference/submodule/compiler/commentWithUnreasonableIndentationLevel01.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentWithUnreasonableIndentationLevel01.js.diff @@ -10,12 +10,4 @@ +// Repro from #41223 /** * This is a comment with dumb indentation for some auto-generated thing. - */ --var SomeAutoGeneratedThing = /** @class */ (function () { -- function SomeAutoGeneratedThing() { -- } -- return SomeAutoGeneratedThing; --}()); -+class SomeAutoGeneratedThing { -+} - exports.SomeAutoGeneratedThing = SomeAutoGeneratedThing; \ No newline at end of file + */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsAfterFunctionExpression1.js.diff b/testdata/baselines/reference/submodule/compiler/commentsAfterFunctionExpression1.js.diff deleted file mode 100644 index cf5ff8cf3e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsAfterFunctionExpression1.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.commentsAfterFunctionExpression1.js -+++ new.commentsAfterFunctionExpression1.js -@@= skipped -9, +9 lines =@@ - - //// [commentsAfterFunctionExpression1.js] - var v = { -- f: function (a) { return 0; } /*t1*/, -- g: (function (a) { return 0; }) /*t2*/, -- h: (function (a) { return 0; } /*t3*/) -+ f: a => 0 /*t1*/, -+ g: (a => 0) /*t2*/, -+ h: (a => 0 /*t3*/) - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsArgumentsOfCallExpression1.js.diff b/testdata/baselines/reference/submodule/compiler/commentsArgumentsOfCallExpression1.js.diff deleted file mode 100644 index b44762c18d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsArgumentsOfCallExpression1.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.commentsArgumentsOfCallExpression1.js -+++ new.commentsArgumentsOfCallExpression1.js -@@= skipped -22, +22 lines =@@ - foo(/*c3*/ function () { }); - foo( - /*c4*/ --function () { }); -+() => { }); - foo( - /*c5*/ - /*c6*/ --function () { }); --foo(/*c7*/ function () { }); -+() => { }); -+foo(/*c7*/ () => { }); - foo( - /*c7*/ --/*c8*/ function () { }); -+/*c8*/ () => { }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsArgumentsOfCallExpression2.js.diff b/testdata/baselines/reference/submodule/compiler/commentsArgumentsOfCallExpression2.js.diff deleted file mode 100644 index b8311ce0d9..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsArgumentsOfCallExpression2.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.commentsArgumentsOfCallExpression2.js -+++ new.commentsArgumentsOfCallExpression2.js -@@= skipped -15, +15 lines =@@ - function foo(/*c1*/ x, /*d1*/ y, /*e1*/ w) { } - var a, b; - foo(/*c2*/ 1, /*d2*/ 1 + 2, /*e1*/ a + b); --foo(/*c3*/ function () { }, /*d2*/ function () { }, /*e2*/ a + /*e3*/ b); --foo(/*c3*/ function () { }, /*d3*/ function () { }, /*e3*/ (a + b)); -+foo(/*c3*/ function () { }, /*d2*/ () => { }, /*e2*/ a + /*e3*/ b); -+foo(/*c3*/ function () { }, /*d3*/ () => { }, /*e3*/ (a + b)); - foo( - /*c4*/ function () { }, --/*d4*/ function () { }, -+/*d4*/ () => { }, - /*e4*/ - /*e5*/ "hello"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsBeforeFunctionExpression1.js.diff b/testdata/baselines/reference/submodule/compiler/commentsBeforeFunctionExpression1.js.diff index c28ad5fd74..c8222c9e6c 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsBeforeFunctionExpression1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsBeforeFunctionExpression1.js.diff @@ -4,6 +4,6 @@ //// [commentsBeforeFunctionExpression1.js] var v = { -- f: /**own f*/ function (a) { return 0; } +- f: /**own f*/ (a) => 0 + f: (a) => 0 }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsClass.js.diff b/testdata/baselines/reference/submodule/compiler/commentsClass.js.diff index d0d659223b..8d7a44b13e 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsClass.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsClass.js.diff @@ -1,110 +1,39 @@ --- old.commentsClass.js +++ new.commentsClass.js -@@= skipped -75, +75 lines =@@ - - //// [commentsClass.js] - /** This is class c2 without constuctor*/ --var c2 = /** @class */ (function () { -- function c2() { -- } -- return c2; --}()); // trailing comment1 -+class c2 { -+} // trailing comment1 - var i2 = new c2(); - var i2_c = c2; --var c3 = /** @class */ (function () { -+class c3 { - /** Constructor comment*/ -- function c3() { -+ constructor() { - } // trailing comment of constructor -- return c3; --}()); /* trailing comment 2 */ -+} /* trailing comment 2 */ - var i3 = new c3(); - var i3_c = c3; - /** Class comment*/ --var c4 = /** @class */ (function () { -+class c4 { - /** Constructor comment*/ -- function c4() { -+ constructor() { - } /* trailing comment of constructor 2*/ -- return c4; --}()); -+} - var i4 = new c4(); +@@= skipped -96, +96 lines =@@ var i4_c = c4; /** Class with statics*/ --var c5 = /** @class */ (function () { -- function c5() { -- } -- return c5; --}()); -+class c5 { + class c5 { + static s1; -+} + } var i5 = new c5(); var i5_c = c5; /// class with statics and constructor --var c6 = /** @class */ (function () { -+class c6 { + class c6 { + /// s1 comment + static s1; /// s1 comment2 /// constructor comment -- function c6() { -+ constructor() { + constructor() { } -- return c6; --}()); -+} - var i6 = new c6(); +@@= skipped -13, +16 lines =@@ var i6_c = c6; // class with statics and constructor --var c7 = /** @class */ (function () { -+class c7 { + class c7 { + // s1 comment + static s1; // constructor comment -- function c7() { -+ constructor() { + constructor() { } -- return c7; --}()); -+} - var i7 = new c7(); - var i7_c = c7; +@@= skipped -9, +11 lines =@@ /** class with statics and constructor */ --var c8 = /** @class */ (function () { -+class c8 { + class c8 { + /** s1 comment */ + static s1; /** s1 comment2 */ /** constructor comment */ -- function c8() { -+ constructor() { - /** constructor comment2 - */ - } -- return c8; --}()); -+} - var i8 = new c8(); - var i8_c = c8; --var c9 = /** @class */ (function () { -- function c9() { -+class c9 { -+ constructor() { - /// This is some detached comment - // should emit this leading comment of } too - } -- return c9; --}()); -+} - - + constructor() { +@@= skipped -20, +22 lines =@@ //// [commentsClass.d.ts] /** This is class c2 without constuctor*/ declare class c2 { @@ -128,7 +57,7 @@ } declare var i4: c4; declare var i4_c: typeof c4; -@@= skipped -97, +92 lines =@@ +@@= skipped -22, +22 lines =@@ } declare var i5: c5; declare var i5_c: typeof c5; diff --git a/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js.diff b/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js.diff index fcc6f22702..fc0a16f82d 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsClassMembers.js.diff @@ -1,424 +1,132 @@ --- old.commentsClassMembers.js +++ new.commentsClassMembers.js -@@= skipped -220, +220 lines =@@ - +@@= skipped -221, +221 lines =@@ //// [commentsClassMembers.js] /** This is comment for c1*/ --var c1 = /** @class */ (function () { -+class c1 { + class c1 { + /** p1 is property of c1*/ + p1; -+ /** sum with property*/ -+ p2(/** number to add*/ b) { -+ return this.p1 + b; -+ } /* trailing comment of method*/ -+ /** getter property*/ -+ get p3() { -+ return this.p2(this.p1); -+ } // trailing comment Getter -+ /** setter property*/ -+ set p3(/** this is value*/ value) { -+ this.p1 = this.p2(value); -+ } // trailing comment Setter + /** sum with property*/ + p2(/** number to add*/ b) { + return this.p1 + b; +@@= skipped -12, +14 lines =@@ + set p3(/** this is value*/ value) { + this.p1 = this.p2(value); + } // trailing comment Setter + /** pp1 is property of c1*/ + pp1; -+ /** sum with property*/ -+ pp2(/** number to add*/ b) { -+ return this.p1 + b; -+ } // trailing comment of method -+ /** getter property*/ -+ get pp3() { -+ return this.pp2(this.pp1); -+ } -+ /** setter property*/ -+ set pp3(/** this is value*/ value) { -+ this.pp1 = this.pp2(value); -+ } + /** sum with property*/ + pp2(/** number to add*/ b) { + return this.p1 + b; +@@= skipped -15, +17 lines =@@ /** Constructor method*/ -- function c1() { -+ constructor() { + constructor() { } -- /** sum with property*/ -- c1.prototype.p2 = function (/** number to add*/ b) { -- return this.p1 + b; -- }; /* trailing comment of method*/ -- Object.defineProperty(c1.prototype, "p3", { -- /** getter property*/ -- get: function () { -- return this.p2(this.p1); -- } // trailing comment Getter -- , -- /** setter property*/ -- set: function (/** this is value*/ value) { -- this.p1 = this.p2(value); -- } // trailing comment Setter -- , -- enumerable: false, -- configurable: true -- }); -- /** sum with property*/ -- c1.prototype.pp2 = function (/** number to add*/ b) { -- return this.p1 + b; -- }; // trailing comment of method -- Object.defineProperty(c1.prototype, "pp3", { -- /** getter property*/ -- get: function () { -- return this.pp2(this.pp1); -- }, -- /** setter property*/ -- set: function (/** this is value*/ value) { -- this.pp1 = this.pp2(value); -- }, -- enumerable: false, -- configurable: true -- }); + /** s1 is static property of c1*/ + static s1; /** static sum with property*/ -- c1.s2 = function (/** number to add*/ b) { -+ static s2(/** number to add*/ b) { + static s2(/** number to add*/ b) { return c1.s1 + b; -- }; -- Object.defineProperty(c1, "s3", { -- /** static getter property*/ -- get: function () { -- return c1.s2(c1.s1); -- } /*trailing comment 1 getter*/, -- /** setter property*/ -- set: function (/** this is value*/ value) { -- c1.s1 = c1.s2(value); -- } /*trailing comment 2 */ /*setter*/, -- enumerable: false, -- configurable: true -- }); -- c1.prototype.nc_p2 = function (b) { -+ } -+ /** static getter property*/ -+ static get s3() { -+ return c1.s2(c1.s1); -+ } /*trailing comment 1 getter*/ -+ /** setter property*/ -+ static set s3(/** this is value*/ value) { -+ c1.s1 = c1.s2(value); -+ } /*trailing comment 2 */ /*setter*/ +@@= skipped -12, +14 lines =@@ + static set s3(/** this is value*/ value) { + c1.s1 = c1.s2(value); + } /*trailing comment 2 */ /*setter*/ + nc_p1; -+ nc_p2(b) { + nc_p2(b) { return this.nc_p1 + b; -- }; -- Object.defineProperty(c1.prototype, "nc_p3", { -- get: function () { -- return this.nc_p2(this.nc_p1); -- }, -- set: function (value) { -- this.nc_p1 = this.nc_p2(value); -- }, -- enumerable: false, -- configurable: true -- }); -- c1.prototype.nc_pp2 = function (b) { -+ } -+ get nc_p3() { -+ return this.nc_p2(this.nc_p1); -+ } -+ set nc_p3(value) { -+ this.nc_p1 = this.nc_p2(value); -+ } + } +@@= skipped -9, +10 lines =@@ + set nc_p3(value) { + this.nc_p1 = this.nc_p2(value); + } + nc_pp1; -+ nc_pp2(b) { + nc_pp2(b) { return this.nc_pp1 + b; -- }; -- Object.defineProperty(c1.prototype, "nc_pp3", { -- get: function () { -- return this.nc_pp2(this.nc_pp1); -- }, -- set: function (value) { -- this.nc_pp1 = this.nc_pp2(value); -- }, -- enumerable: false, -- configurable: true -- }); -- c1.nc_s2 = function (b) { -+ } -+ get nc_pp3() { -+ return this.nc_pp2(this.nc_pp1); -+ } -+ set nc_pp3(value) { -+ this.nc_pp1 = this.nc_pp2(value); -+ } + } +@@= skipped -9, +10 lines =@@ + set nc_pp3(value) { + this.nc_pp1 = this.nc_pp2(value); + } + static nc_s1; -+ static nc_s2(b) { + static nc_s2(b) { return c1.nc_s1 + b; -- }; -- Object.defineProperty(c1, "nc_s3", { -- get: function () { -- return c1.nc_s2(c1.nc_s1); -- }, -- set: function (value) { -- c1.nc_s1 = c1.nc_s2(value); -- }, -- enumerable: false, -- configurable: true -- }); -- // sum with property -- c1.prototype.a_p2 = function (b) { -- return this.a_p1 + b; -- }; -- Object.defineProperty(c1.prototype, "a_p3", { -- // getter property -- get: function () { -- return this.a_p2(this.a_p1); -- }, -- // setter property -- set: function (value) { -- this.a_p1 = this.a_p2(value); -- }, -- enumerable: false, -- configurable: true -- }); -- // sum with property -- c1.prototype.a_pp2 = function (b) { -- return this.a_p1 + b; -- }; -- Object.defineProperty(c1.prototype, "a_pp3", { -- // getter property -- get: function () { -- return this.a_pp2(this.a_pp1); -- }, -- // setter property -- set: function (value) { -- this.a_pp1 = this.a_pp2(value); -- }, -- enumerable: false, -- configurable: true -- }); -+ } -+ static get nc_s3() { -+ return c1.nc_s2(c1.nc_s1); -+ } -+ static set nc_s3(value) { -+ c1.nc_s1 = c1.nc_s2(value); -+ } + } +@@= skipped -9, +10 lines =@@ + static set nc_s3(value) { + c1.nc_s1 = c1.nc_s2(value); + } + // p1 is property of c1 + a_p1; -+ // sum with property -+ a_p2(b) { -+ return this.a_p1 + b; -+ } -+ // getter property -+ get a_p3() { -+ return this.a_p2(this.a_p1); -+ } -+ // setter property -+ set a_p3(value) { -+ this.a_p1 = this.a_p2(value); -+ } + // sum with property + a_p2(b) { + return this.a_p1 + b; +@@= skipped -12, +14 lines =@@ + set a_p3(value) { + this.a_p1 = this.a_p2(value); + } + // pp1 is property of c1 + a_pp1; -+ // sum with property -+ a_pp2(b) { -+ return this.a_p1 + b; -+ } -+ // getter property -+ get a_pp3() { -+ return this.a_pp2(this.a_pp1); -+ } -+ // setter property -+ set a_pp3(value) { -+ this.a_pp1 = this.a_pp2(value); -+ } + // sum with property + a_pp2(b) { + return this.a_p1 + b; +@@= skipped -12, +14 lines =@@ + set a_pp3(value) { + this.a_pp1 = this.a_pp2(value); + } + // s1 is static property of c1 + static a_s1; // static sum with property -- c1.a_s2 = function (b) { -+ static a_s2(b) { + static a_s2(b) { return c1.a_s1 + b; -- }; -- Object.defineProperty(c1, "a_s3", { -- // static getter property -- get: function () { -- return c1.s2(c1.s1); -- }, -- // setter property -- set: function (value) { -- c1.a_s1 = c1.a_s2(value); -- }, -- enumerable: false, -- configurable: true -- }); -- /** sum with property */ -- c1.prototype.b_p2 = function (b) { -- return this.b_p1 + b; -- }; -- Object.defineProperty(c1.prototype, "b_p3", { -- /** getter property */ -- get: function () { -- return this.b_p2(this.b_p1); -- }, -- /** setter property */ -- set: function (value) { -- this.b_p1 = this.b_p2(value); -- }, -- enumerable: false, -- configurable: true -- }); -- /** sum with property */ -- c1.prototype.b_pp2 = function (b) { -- return this.b_p1 + b; -- }; -- Object.defineProperty(c1.prototype, "b_pp3", { -- /** getter property */ -- get: function () { -- return this.b_pp2(this.b_pp1); -- }, -- /** setter property */ -- set: function (value) { -- this.b_pp1 = this.b_pp2(value); -- }, -- enumerable: false, -- configurable: true -- }); -+ } -+ // static getter property -+ static get a_s3() { -+ return c1.s2(c1.s1); -+ } -+ // setter property -+ static set a_s3(value) { -+ c1.a_s1 = c1.a_s2(value); -+ } +@@= skipped -12, +14 lines =@@ + static set a_s3(value) { + c1.a_s1 = c1.a_s2(value); + } + /** p1 is property of c1 */ + b_p1; -+ /** sum with property */ -+ b_p2(b) { -+ return this.b_p1 + b; -+ } -+ /** getter property */ -+ get b_p3() { -+ return this.b_p2(this.b_p1); -+ } -+ /** setter property */ -+ set b_p3(value) { -+ this.b_p1 = this.b_p2(value); -+ } + /** sum with property */ + b_p2(b) { + return this.b_p1 + b; +@@= skipped -12, +14 lines =@@ + set b_p3(value) { + this.b_p1 = this.b_p2(value); + } + /** pp1 is property of c1 */ + b_pp1; -+ /** sum with property */ -+ b_pp2(b) { -+ return this.b_p1 + b; -+ } -+ /** getter property */ -+ get b_pp3() { -+ return this.b_pp2(this.b_pp1); -+ } -+ /** setter property */ -+ set b_pp3(value) { -+ this.b_pp1 = this.b_pp2(value); -+ } + /** sum with property */ + b_pp2(b) { + return this.b_p1 + b; +@@= skipped -12, +14 lines =@@ + set b_pp3(value) { + this.b_pp1 = this.b_pp2(value); + } + /** s1 is static property of c1 */ + static b_s1; /** static sum with property */ -- c1.b_s2 = function (b) { -+ static b_s2(b) { + static b_s2(b) { return c1.b_s1 + b; -- }; -- Object.defineProperty(c1, "b_s3", { -- /** static getter property -- */ -- get: function () { -- return c1.s2(c1.s1); -- }, -- /** setter property -- */ -- set: function (value) { -- /** setter */ -- c1.b_s1 = c1.b_s2(value); -- }, -- enumerable: false, -- configurable: true -- }); -- return c1; --}()); -+ } -+ /** static getter property -+ */ -+ static get b_s3() { -+ return c1.s2(c1.s1); -+ } -+ /** setter property -+ */ -+ static set b_s3(value) { -+ /** setter */ -+ c1.b_s1 = c1.b_s2(value); -+ } -+} - var i1 = new c1(); - var i1_p = i1.p1; - var i1_f = i1.p2; -@@= skipped -216, +186 lines =@@ - var i1_s_ncprop = c1.nc_s3; +@@= skipped -39, +41 lines =@@ c1.nc_s3 = i1_s_ncprop; var i1_c = c1; --var cProperties = /** @class */ (function () { -- function cProperties() { + class cProperties { +- constructor() { - this.x = 10; /*trailing comment for property*/ - this.y = 10; // trailing comment of // style - } -- Object.defineProperty(cProperties.prototype, "p1", { -- /** getter only property*/ -- get: function () { -- return this.val; -- } // trailing comment of only getter -- , -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(cProperties.prototype, "nc_p1", { -- get: function () { -- return this.val; -- }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(cProperties.prototype, "p2", { -- /**setter only property*/ -- set: function (value) { -- this.val = value; -- }, -- enumerable: false, -- configurable: true -- }); -- Object.defineProperty(cProperties.prototype, "nc_p2", { -- set: function (value) { -- this.val = value; -- } /* trailing comment of setter only*/, -- enumerable: false, -- configurable: true -- }); -- return cProperties; --}()); -+class cProperties { + val; -+ /** getter only property*/ -+ get p1() { -+ return this.val; -+ } // trailing comment of only getter -+ get nc_p1() { -+ return this.val; -+ } -+ /**setter only property*/ -+ set p2(value) { -+ this.val = value; -+ } -+ set nc_p2(value) { -+ this.val = value; -+ } /* trailing comment of setter only*/ + /** getter only property*/ + get p1() { + return this.val; +@@= skipped -18, +15 lines =@@ + set nc_p2(value) { + this.val = value; + } /* trailing comment of setter only*/ + x = 10; /*trailing comment for property*/ + y = 10; // trailing comment of // style -+} + } var cProperties_i = new cProperties(); cProperties_i.p2 = cProperties_i.p1; - cProperties_i.nc_p2 = cProperties_i.nc_p1; -@@= skipped -49, +30 lines =@@ +@@= skipped -12, +14 lines =@@ /** p1 is property of c1*/ p1: number; /** sum with property*/ diff --git a/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js.diff b/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js.diff index 9610d974cc..a41a38d8a7 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsCommentParsing.js.diff @@ -1,16 +1,6 @@ --- old.commentsCommentParsing.js +++ new.commentsCommentParsing.js -@@= skipped -284, +284 lines =@@ - return a + b + c + d; - } - /**/ --var NoQuickInfoClass = /** @class */ (function () { -- function NoQuickInfoClass() { -- } -- return NoQuickInfoClass; --}()); -+class NoQuickInfoClass { -+} +@@= skipped -289, +289 lines =@@ //// [commentsCommentParsing.d.ts] @@ -22,7 +12,7 @@ declare function multiLine(): void; /** this is eg of single line jsdoc style comment */ declare function jsDocSingleLine(): void; -@@= skipped -22, +23 lines =@@ +@@= skipped -14, +18 lines =@@ /** Shoul mege this line as well * and this too*/ /** Another this one too*/ declare function jsDocMultiLineMerge(): void; diff --git a/testdata/baselines/reference/submodule/compiler/commentsDottedModuleName.js.diff b/testdata/baselines/reference/submodule/compiler/commentsDottedModuleName.js.diff index 00779bc547..604f282adc 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsDottedModuleName.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsDottedModuleName.js.diff @@ -14,11 +14,8 @@ - var InnerModule; - (function (InnerModule) { - /// class b comment -- var b = /** @class */ (function () { -- function b() { -- } -- return b; -- }()); +- class b { +- } - InnerModule.b = b; - })(InnerModule = outerModule.InnerModule || (outerModule.InnerModule = {})); - })(outerModule || (exports.outerModule = outerModule = {})); diff --git a/testdata/baselines/reference/submodule/compiler/commentsExternalModules.js.diff b/testdata/baselines/reference/submodule/compiler/commentsExternalModules.js.diff index 24d1d71942..f34def0627 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsExternalModules.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsExternalModules.js.diff @@ -17,14 +17,11 @@ - return m1.b; - } - /** m2 comments*/ -- var m2; +- let m2; - (function (m2) { - /** class comment;*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); +- class c { +- } - m2.c = c; - ; - /** i*/ @@ -48,14 +45,11 @@ - } - /** m2 comments - */ -- var m2; +- let m2; - (function (m2) { - /** class comment; */ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); +- class c { +- } - m2.c = c; - ; - /** i */ diff --git a/testdata/baselines/reference/submodule/compiler/commentsExternalModules2.js.diff b/testdata/baselines/reference/submodule/compiler/commentsExternalModules2.js.diff index afad1bd91b..4234a8bf9c 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsExternalModules2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsExternalModules2.js.diff @@ -17,14 +17,11 @@ - return m1.b; - } - /** m2 comments*/ -- var m2; +- let m2; - (function (m2) { - /** class comment;*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); +- class c { +- } - m2.c = c; - ; - /** i*/ @@ -48,14 +45,11 @@ - } - /** m2 comments - */ -- var m2; +- let m2; - (function (m2) { - /** class comment; */ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); +- class c { +- } - m2.c = c; - ; - /** i */ diff --git a/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js.diff b/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js.diff index 2375782884..5c483f0ae1 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsExternalModules3.js.diff @@ -1,42 +1,6 @@ --- old.commentsExternalModules3.js +++ new.commentsExternalModules3.js -@@= skipped -71, +71 lines =@@ - return m1.b; - } - /** m2 comments*/ -- var m2; -+ let m2; - (function (m2) { - /** class comment;*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - m2.c = c; - ; - /** i*/ -@@= skipped -31, +28 lines =@@ - } - /** m2 comments - */ -- var m2; -+ let m2; - (function (m2) { - /** class comment; */ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - m2.c = c; - ; - /** i */ -@@= skipped -26, +23 lines =@@ +@@= skipped -122, +122 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.newVar2 = exports.newVar = void 0; /**This is on import declaration*/ diff --git a/testdata/baselines/reference/submodule/compiler/commentsFormatting.js.diff b/testdata/baselines/reference/submodule/compiler/commentsFormatting.js.diff index 23fca7200a..ce6fdd6ae9 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsFormatting.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsFormatting.js.diff @@ -9,17 +9,8 @@ * this is 3 spaces left aligned * this is 2 spaces left aligned * this is 1 spaces left aligned -@@= skipped -13, +13 lines =@@ - * this is 6 spaces right aligned - * this is 7 spaces right aligned - * this is 8 spaces right aligned */ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } +@@= skipped -17, +17 lines =@@ + } m.c = c; /** this is first line - 4 spaces right aligned to class but in js file should be aligned to class declaration -* this is 8 spaces left aligned @@ -35,17 +26,7 @@ * this is 3 spaces left aligned * this is 2 spaces left aligned * this is 1 spaces left aligned -@@= skipped -24, +21 lines =@@ - * this is 6 spaces right aligned - * this is 7 spaces right aligned - * this is 8 spaces right aligned */ -- var c2 = /** @class */ (function () { -- function c2() { -- } -- return c2; -- }()); -+ class c2 { -+ } +@@= skipped -22, +22 lines =@@ m.c2 = c2; /** this is comment with new lines in between @@ -54,35 +35,7 @@ this is 3 spaces left aligned but above line is empty -@@= skipped -32, +29 lines =@@ - - - above 3 lines are empty*/ -- var c3 = /** @class */ (function () { -- function c3() { -- } -- return c3; -- }()); -+ class c3 { -+ } - m.c3 = c3; - /** this is first line - aligned to class declaration - * this is 0 space + tab -@@= skipped -20, +17 lines =@@ - * this is 10 spaces + tab - * this is 11 spaces + tab - * this is 12 spaces + tab */ -- var c4 = /** @class */ (function () { -- function c4() { -- } -- return c4; -- }()); -+ class c4 { -+ } - m.c4 = c4; - })(m || (m = {})); - -@@= skipped -12, +9 lines =@@ +@@= skipped -50, +50 lines =@@ //// [commentsFormatting.d.ts] declare namespace m { /** this is first line - aligned to class declaration diff --git a/testdata/baselines/reference/submodule/compiler/commentsFunction.js.diff b/testdata/baselines/reference/submodule/compiler/commentsFunction.js.diff index d7df479027..c5be9123be 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsFunction.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsFunction.js.diff @@ -1,30 +1,6 @@ --- old.commentsFunction.js +++ new.commentsFunction.js -@@= skipped -74, +74 lines =@@ - return b; - }; - /// lamdaFoo var comment --var lambdaFoo = /** this is lambda comment*/ function (/**param a*/ a, /**param b*/ b) { return a + b; }; --var lambddaNoVarComment = /** this is lambda multiplication*/ function (/**param a*/ a, /**param b*/ b) { return a * b; }; -+var lambdaFoo = /** this is lambda comment*/ (/**param a*/ a, /**param b*/ b) => a + b; -+var lambddaNoVarComment = /** this is lambda multiplication*/ (/**param a*/ a, /**param b*/ b) => a * b; - lambdaFoo(10, 20); - lambddaNoVarComment(10, 20); - function blah(a /* multiline trailing comment -@@= skipped -12, +12 lines =@@ - function blah3(a // trailing commen single line - ) { - } --lambdaFoo = function (a, b) { return a * b; }; // This is trailing comment --/*leading comment*/ (function () { return 0; }); // Needs to be wrapped in parens to be a valid expression (not declaration) --/*leading comment*/ (function () { return 0; }); //trailing comment -+lambdaFoo = (a, b) => a * b; // This is trailing comment -+/*leading comment*/ () => 0; // Needs to be wrapped in parens to be a valid expression (not declaration) -+/*leading comment*/ (() => 0); //trailing comment - function blah4(/*1*/ a /*2*/, /*3*/ b /*4*/) { - } - function foo1() { -@@= skipped -16, +16 lines =@@ +@@= skipped -102, +102 lines =@@ //// [commentsFunction.d.ts] /** This comment should appear for foo*/ diff --git a/testdata/baselines/reference/submodule/compiler/commentsInheritance.js.diff b/testdata/baselines/reference/submodule/compiler/commentsInheritance.js.diff index afe9fe23f8..9c1fef1478 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsInheritance.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsInheritance.js.diff @@ -1,208 +1,84 @@ --- old.commentsInheritance.js +++ new.commentsInheritance.js -@@= skipped -152, +152 lines =@@ - +@@= skipped -153, +153 lines =@@ //// [commentsInheritance.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var c1 = /** @class */ (function () { -- function c1() { -- } -+class c1 { + class c1 { + i1_p1; // i1_f1 -- c1.prototype.i1_f1 = function () { -- }; -- c1.prototype.i1_nc_f1 = function () { -- }; -+ i1_f1() { -+ } + i1_f1() { + } + i1_l1; + i1_nc_p1; -+ i1_nc_f1() { -+ } + i1_nc_f1() { + } + i1_nc_l1; + /** c1_p1*/ + p1; /** c1_f1*/ -- c1.prototype.f1 = function () { -- }; -+ f1() { -+ } + f1() { + } + /** c1_l1*/ + l1; + /** c1_nc_p1*/ + nc_p1; /** c1_nc_f1*/ -- c1.prototype.nc_f1 = function () { -- }; -- return c1; --}()); -+ nc_f1() { -+ } + nc_f1() { + } + /** c1_nc_l1*/ + nc_l1; -+} + } var i1_i; var c1_i = new c1(); // assign to interface i1_i = c1_i; --var c2 = /** @class */ (function () { -+class c2 { + class c2 { + /** c2 c2_p1*/ + c2_p1; -+ /** c2 c2_f1*/ -+ c2_f1() { -+ } -+ /** c2 c2_prop*/ -+ get c2_prop() { -+ return 10; -+ } + /** c2 c2_f1*/ + c2_f1() { + } +@@= skipped -24, +38 lines =@@ + get c2_prop() { + return 10; + } + c2_nc_p1; -+ c2_nc_f1() { -+ } -+ get c2_nc_prop() { -+ return 10; -+ } + c2_nc_f1() { + } + get c2_nc_prop() { + return 10; + } + /** c2 p1*/ + p1; -+ /** c2 f1*/ -+ f1() { -+ } -+ /** c2 prop*/ -+ get prop() { -+ return 10; -+ } + /** c2 f1*/ + f1() { + } +@@= skipped -12, +15 lines =@@ + get prop() { + return 10; + } + nc_p1; -+ nc_f1() { -+ } -+ get nc_prop() { -+ return 10; -+ } - /** c2 constructor*/ -- function c2(a) { -+ constructor(a) { - this.c2_p1 = a; + nc_f1() { } -- /** c2 c2_f1*/ -- c2.prototype.c2_f1 = function () { -- }; -- Object.defineProperty(c2.prototype, "c2_prop", { -- /** c2 c2_prop*/ -- get: function () { -- return 10; -- }, -- enumerable: false, -- configurable: true -- }); -- c2.prototype.c2_nc_f1 = function () { -- }; -- Object.defineProperty(c2.prototype, "c2_nc_prop", { -- get: function () { -- return 10; -- }, -- enumerable: false, -- configurable: true -- }); -- /** c2 f1*/ -- c2.prototype.f1 = function () { -- }; -- Object.defineProperty(c2.prototype, "prop", { -- /** c2 prop*/ -- get: function () { -- return 10; -- }, -- enumerable: false, -- configurable: true -- }); -- c2.prototype.nc_f1 = function () { -- }; -- Object.defineProperty(c2.prototype, "nc_prop", { -- get: function () { -- return 10; -- }, -- enumerable: false, -- configurable: true -- }); -- return c2; --}()); --var c3 = /** @class */ (function (_super) { -- __extends(c3, _super); -- function c3() { -- return _super.call(this, 10) || this; -+} -+class c3 extends c2 { -+ constructor() { -+ super(10); + get nc_prop() { +@@= skipped -14, +15 lines =@@ + constructor() { + super(10); } + /** c3 p1*/ + p1; /** c3 f1*/ -- c3.prototype.f1 = function () { -- }; -- Object.defineProperty(c3.prototype, "prop", { -- /** c3 prop*/ -- get: function () { -- return 10; -- }, -- enumerable: false, -- configurable: true -- }); -- c3.prototype.nc_f1 = function () { -- }; -- Object.defineProperty(c3.prototype, "nc_prop", { -- get: function () { -- return 10; -- }, -- enumerable: false, -- configurable: true -- }); -- return c3; --}(c2)); -+ f1() { -+ } -+ /** c3 prop*/ -+ get prop() { -+ return 10; -+ } + f1() { + } +@@= skipped -7, +9 lines =@@ + get prop() { + return 10; + } + nc_p1; -+ nc_f1() { -+ } -+ get nc_prop() { -+ return 10; -+ } -+} - var c2_i = new c2(10); - var c3_i = new c3(); - // assign - c2_i = c3_i; --var c4 = /** @class */ (function (_super) { -- __extends(c4, _super); -- function c4() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return c4; --}(c2)); -+class c4 extends c2 { -+} - var c4_i = new c4(10); - var i2_i; - var i3_i; -@@= skipped -136, +107 lines =@@ + nc_f1() { + } + get nc_prop() { +@@= skipped -28, +29 lines =@@ i1_f1(): void; /** i1_l1*/ i1_l1: () => void; diff --git a/testdata/baselines/reference/submodule/compiler/commentsInterface.js.diff b/testdata/baselines/reference/submodule/compiler/commentsInterface.js.diff index 1fa1374d08..437d76475b 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsInterface.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsInterface.js.diff @@ -4,7 +4,7 @@ var i2_i_nc_fnfoo_r = i2_i.nc_fnfoo(10); var i3_i; i3_i = { -- f: /**own f*/ function (/**i3_i a*/ a) { return "Hello" + a; }, +- f: /**own f*/ (/**i3_i a*/ a) => "Hello" + a, + f: (/**i3_i a*/ a) => "Hello" + a, l: this.f, /** own x*/ diff --git a/testdata/baselines/reference/submodule/compiler/commentsModules.js.diff b/testdata/baselines/reference/submodule/compiler/commentsModules.js.diff index d1d1d89de9..a5ac1f20cf 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsModules.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsModules.js.diff @@ -1,24 +1,6 @@ --- old.commentsModules.js +++ new.commentsModules.js -@@= skipped -107, +107 lines =@@ - return m1.b; - } - /** m2 comments*/ -- var m2; -+ let m2; - (function (m2) { - /** class comment;*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - m2.c = c; - ; - /** i*/ -@@= skipped -39, +36 lines =@@ +@@= skipped -143, +143 lines =@@ /** module comment of m2.m3*/ var m2; (function (m2) { @@ -26,17 +8,8 @@ + let m3; (function (m3) { /** Exported class comment*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - m3.c = c; - })(m3 = m2.m3 || (m2.m3 = {})); - })(m2 || (m2 = {})); /* trailing dotted module comment*/ -@@= skipped -15, +12 lines =@@ + class c { +@@= skipped -12, +12 lines =@@ /** module comment of m3.m4.m5*/ var m3; (function (m3) { @@ -47,17 +20,8 @@ + let m5; (function (m5) { /** Exported class comment*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - m5.c = c; - })(m5 = m4.m5 || (m4.m5 = {})); - })(m4 = m3.m4 || (m3.m4 = {})); -@@= skipped -18, +15 lines =@@ + class c { +@@= skipped -15, +15 lines =@@ /** module comment of m4.m5.m6*/ var m4; (function (m4) { @@ -67,21 +31,9 @@ - var m6; + let m6; (function (m6) { -- var m7; -+ let m7; + let m7; (function (m7) { - /** Exported class comment*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - m7.c = c; - })(m7 = m6.m7 || (m6.m7 = {})); /* trailing inner module */ /* multiple comments*/ - })(m6 = m5.m6 || (m5.m6 = {})); -@@= skipped -21, +18 lines =@@ +@@= skipped -18, +18 lines =@@ /** module comment of m5.m6.m7*/ var m5; (function (m5) { @@ -92,42 +44,17 @@ + let m7; (function (m7) { /** module m8 comment*/ -- var m8; -+ let m8; - (function (m8) { - /** Exported class comment*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - m8.c = c; - })(m8 = m7.m8 || (m7.m8 = {})); - })(m7 = m6.m7 || (m6.m7 = {})); -@@= skipped -21, +18 lines =@@ + let m8; +@@= skipped -18, +18 lines =@@ new m5.m6.m7.m8.c(); var m6; (function (m6) { - var m7; + let m7; (function (m7) { -- var m8; -+ let m8; + let m8; (function (m8) { - /** Exported class comment*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - m8.c = c; - })(m8 = m7.m8 || (m7.m8 = {})); - })(m7 = m6.m7 || (m6.m7 = {})); -@@= skipped -17, +14 lines =@@ +@@= skipped -14, +14 lines =@@ new m6.m7.m8.c(); var m7; (function (m7) { @@ -135,38 +62,8 @@ + let m8; (function (m8) { /** module m9 comment*/ -- var m9; -+ let m9; - (function (m9) { - /** Exported class comment*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - m9.c = c; - /** class d */ -- var d = /** @class */ (function () { -- function d() { -- } -- return d; -- }()); -+ class d { -+ } - // class e -- var e = /** @class */ (function () { -- function e() { -- } -- return e; -- }()); -+ class e { -+ } - m9.e = e; - })(m9 = m8.m9 || (m8.m9 = {})); - })(m8 = m7.m8 || (m7.m8 = {})); -@@= skipped -46, +37 lines =@@ + let m9; +@@= skipped -37, +37 lines =@@ } /** exported function*/ function fooExport(): number; diff --git a/testdata/baselines/reference/submodule/compiler/commentsMultiModuleMultiFile.js.diff b/testdata/baselines/reference/submodule/compiler/commentsMultiModuleMultiFile.js.diff index d739e6ae6b..20eb192680 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsMultiModuleMultiFile.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsMultiModuleMultiFile.js.diff @@ -13,28 +13,19 @@ - var multiM; - (function (multiM) { - /// class b comment -- var b = /** @class */ (function () { -- function b() { -- } -- return b; -- }()); +- class b { +- } - multiM.b = b; - })(multiM || (exports.multiM = multiM = {})); - /** thi is multi module 2*/ - (function (multiM) { - /** class c comment*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); +- class c { +- } - multiM.c = c; - // class e comment -- var e = /** @class */ (function () { -- function e() { -- } -- return e; -- }()); +- class e { +- } - multiM.e = e; - })(multiM || (exports.multiM = multiM = {})); - new multiM.b(); @@ -49,18 +40,12 @@ - var multiM; - (function (multiM) { - /** class d comment*/ -- var d = /** @class */ (function () { -- function d() { -- } -- return d; -- }()); +- class d { +- } - multiM.d = d; - /// class f comment -- var f = /** @class */ (function () { -- function f() { -- } -- return f; -- }()); +- class f { +- } - multiM.f = f; - })(multiM || (exports.multiM = multiM = {})); - new multiM.d(); diff --git a/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js.diff b/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js.diff index c6480436a0..5fa1378972 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsMultiModuleSingleFile.js.diff @@ -1,50 +1,6 @@ --- old.commentsMultiModuleSingleFile.js +++ new.commentsMultiModuleSingleFile.js -@@= skipped -29, +29 lines =@@ - var multiM; - (function (multiM) { - /** class b*/ -- var b = /** @class */ (function () { -- function b() { -- } -- return b; -- }()); -+ class b { -+ } - multiM.b = b; - // class d -- var d = /** @class */ (function () { -- function d() { -- } -- return d; -- }()); -+ class d { -+ } - multiM.d = d; - })(multiM || (multiM = {})); - /// this is multi module 2 - (function (multiM) { - /** class c comment*/ -- var c = /** @class */ (function () { -- function c() { -- } -- return c; -- }()); -+ class c { -+ } - multiM.c = c; - /// class e -- var e = /** @class */ (function () { -- function e() { -- } -- return e; -- }()); -+ class e { -+ } - multiM.e = e; - })(multiM || (multiM = {})); - new multiM.b(); -@@= skipped -41, +29 lines =@@ +@@= skipped -58, +58 lines =@@ /** class b*/ class b { } diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).js.diff index 08e57cbda8..3412a076f7 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).js.diff @@ -1,15 +1,8 @@ --- old.commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).js +++ new.commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.jsx] --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { +@@= skipped -25, +25 lines =@@ + class Component { + render() { return
- {/* missing */} + @@ -29,8 +22,5 @@ + +
; -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file + } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).js.diff index 393e0b6c34..007a5daddd 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).js.diff @@ -1,15 +1,8 @@ --- old.commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).js +++ new.commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).js -@@= skipped -24, +24 lines =@@ - //// [commentsOnJSXExpressionsArePreserved.jsx] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { +@@= skipped -27, +27 lines =@@ + class Component { + render() { return
- {/* missing */} + @@ -29,8 +22,5 @@ + +
; -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file + } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).js.diff index 4a07ffee5f..ab82309f7f 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).js.diff @@ -1,15 +1,8 @@ --- old.commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).js +++ new.commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.jsx] --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { +@@= skipped -25, +25 lines =@@ + class Component { + render() { return
- {/* missing */} + @@ -29,8 +22,5 @@ + +
; -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file + } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).js.diff index c6d9df55c4..44ce18287e 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).js.diff @@ -1,15 +1,8 @@ --- old.commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).js +++ new.commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.jsx] --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { +@@= skipped -25, +25 lines =@@ + class Component { + render() { return
- {/* missing */} + @@ -29,8 +22,5 @@ + +
; -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file + } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).js.diff index 3f065e095b..4de3c731c9 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).js.diff @@ -11,10 +11,8 @@ - return { - setters: [], - execute: function () { -- Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { +- Component = class Component { +- render() { - return
- {/* missing */} +"use strict"; @@ -39,9 +37,8 @@ + +
; -- }; -- return Component; -- }()); +- } +- }; - } - }; -}); diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).js.diff index 445991f0ef..22f2a898f8 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).js.diff @@ -1,15 +1,8 @@ --- old.commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).js +++ new.commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.jsx] --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { +@@= skipped -25, +25 lines =@@ + class Component { + render() { return
- {/* missing */} + @@ -29,8 +22,5 @@ + +
; -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file + } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).js.diff deleted file mode 100644 index 46473a897c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).js -+++ new.commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.js] --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { - return React.createElement("div", null, null /* preserved */); -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).js.diff deleted file mode 100644 index 5f9cb645d3..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).js -+++ new.commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).js -@@= skipped -24, +24 lines =@@ - //// [commentsOnJSXExpressionsArePreserved.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { - return React.createElement("div", null, null /* preserved */); -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).js.diff deleted file mode 100644 index dd1d68c55a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).js -+++ new.commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.js] --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { - return React.createElement("div", null, null /* preserved */); -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).js.diff deleted file mode 100644 index a546e376bc..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).js -+++ new.commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.js] --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { - return React.createElement("div", null, null /* preserved */); -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).js.diff index ef5f1f7fac..57bba2963c 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).js.diff @@ -11,14 +11,11 @@ - return { - setters: [], - execute: function () { -- Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { +- Component = class Component { +- render() { - return React.createElement("div", null, null /* preserved */); -- }; -- return Component; -- }()); +- } +- }; - } - }; -}); diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).js.diff deleted file mode 100644 index a18f6be720..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).js -+++ new.commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.js] --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { - return React.createElement("div", null, null /* preserved */); -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).js.diff index 9fc95fbd66..1eb2d90098 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).js.diff @@ -5,16 +5,10 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var jsx_runtime_1 = require("react/jsx-runtime"); --var Component = /** @class */ (function () { -- function Component() { +const jsx_runtime_1 = require("react/jsx-runtime"); -+class Component { -+ render() { + class Component { + render() { +- return (0, jsx_runtime_1.jsx)("div", { children: null /* preserved */ }); + return jsx_runtime_1.jsx("div", { children: null /* preserved */ }); } -- Component.prototype.render = function () { -- return (0, jsx_runtime_1.jsx)("div", { children: null /* preserved */ }); -- }; -- return Component; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).js.diff index a78b744b3c..8b8005dbda 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).js.diff @@ -5,16 +5,10 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var jsx_runtime_1 = require("react/jsx-runtime"); --var Component = /** @class */ (function () { -- function Component() { +const jsx_runtime_1 = require("react/jsx-runtime"); -+class Component { -+ render() { + class Component { + render() { +- return (0, jsx_runtime_1.jsx)("div", { children: null /* preserved */ }); + return jsx_runtime_1.jsx("div", { children: null /* preserved */ }); } -- Component.prototype.render = function () { -- return (0, jsx_runtime_1.jsx)("div", { children: null /* preserved */ }); -- }; -- return Component; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).js.diff index 9e6d4c0db0..43e67119ff 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).js.diff @@ -1,18 +1,10 @@ --- old.commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).js +++ new.commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).js -@@= skipped -22, +22 lines =@@ - } - +@@= skipped -24, +24 lines =@@ //// [commentsOnJSXExpressionsArePreserved.js] --var Component = /** @class */ (function () { -- function Component() { -+class Component { -+ render() { + class Component { + render() { +- return (0, _a.jsx)("div", { children: null /* preserved */ }); + return _jsx("div", { children: null /* preserved */ }); } -- Component.prototype.render = function () { -- return (0, _a.jsx)("div", { children: null /* preserved */ }); -- }; -- return Component; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).js.diff index ef3a5dba2b..c2d2caa180 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).js.diff @@ -15,14 +15,11 @@ - } - ], - execute: function () { -- Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { +- Component = class Component { +- render() { - return _jsx("div", { children: null /* preserved */ }); -- }; -- return Component; -- }()); +- } +- }; - } - }; -}); diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).js.diff index 4bcb859c6e..1ebbba6484 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).js.diff @@ -15,14 +15,11 @@ - } - ], - execute: function () { -- Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { +- Component = class Component { +- render() { - return _jsx("div", { children: null /* preserved */ }); -- }; -- return Component; -- }()); +- } +- }; - } - }; -}); diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).js.diff deleted file mode 100644 index 8342b46435..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).js -+++ new.commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.js] --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+class Component { -+ render() { - return _jsx("div", { children: null /* preserved */ }); -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js.diff index c350c8d816..7560c57ff2 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js.diff @@ -5,18 +5,11 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var jsx_dev_runtime_1 = require("react/jsx-dev-runtime"); --var _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; --var Component = /** @class */ (function () { -- function Component() { +const jsx_dev_runtime_1 = require("react/jsx-dev-runtime"); -+const _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; -+class Component { -+ render() { + const _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; + class Component { + render() { +- return (0, jsx_dev_runtime_1.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); + return jsx_dev_runtime_1.jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); } -- Component.prototype.render = function () { -- return (0, jsx_dev_runtime_1.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); -- }; -- return Component; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js.diff index a845746665..b1974f086e 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js.diff @@ -5,18 +5,11 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var jsx_dev_runtime_1 = require("react/jsx-dev-runtime"); --var _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; --var Component = /** @class */ (function () { -- function Component() { +const jsx_dev_runtime_1 = require("react/jsx-dev-runtime"); -+const _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; -+class Component { -+ render() { + const _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; + class Component { + render() { +- return (0, jsx_dev_runtime_1.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); + return jsx_dev_runtime_1.jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); } -- Component.prototype.render = function () { -- return (0, jsx_dev_runtime_1.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); -- }; -- return Component; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js.diff index 2ecd951c71..030ea2bb53 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js.diff @@ -1,20 +1,10 @@ --- old.commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js +++ new.commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.js] --var _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; --var Component = /** @class */ (function () { -- function Component() { -+const _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; -+class Component { -+ render() { +@@= skipped -25, +25 lines =@@ + const _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; + class Component { + render() { +- return (0, _a.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); + return _jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); } -- Component.prototype.render = function () { -- return (0, _a.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); -- }; -- return Component; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).js.diff index ab3d3d7611..7f537ec8e2 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).js.diff @@ -16,14 +16,11 @@ - ], - execute: function () { - _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; -- Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { +- Component = class Component { +- render() { - return _jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); -- }; -- return Component; -- }()); +- } +- }; - } - }; -}); diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).js.diff index e7223ccee5..32ff32565c 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).js.diff @@ -16,14 +16,11 @@ - ], - execute: function () { - _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; -- Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { +- Component = class Component { +- render() { - return _jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); -- }; -- return Component; -- }()); +- } +- }; - } - }; -}); diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).js.diff deleted file mode 100644 index 938772963a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).js -+++ new.commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).js -@@= skipped -22, +22 lines =@@ - } - - //// [commentsOnJSXExpressionsArePreserved.js] --var _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.render = function () { -+const _jsxFileName = "commentsOnJSXExpressionsArePreserved.tsx"; -+class Component { -+ render() { - return _jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); -- }; -- return Component; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnObjectLiteral3.js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnObjectLiteral3.js.diff deleted file mode 100644 index 2592eeb3d1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOnObjectLiteral3.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.commentsOnObjectLiteral3.js -+++ new.commentsOnObjectLiteral3.js -@@= skipped -27, +27 lines =@@ - func: function () { - }, - //PropertyName + CallSignature -- func1: function () { }, -+ func1() { }, - //getter - get a() { - return this.prop; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnObjectLiteral5.js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnObjectLiteral5.js.diff deleted file mode 100644 index 55dc9f0470..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOnObjectLiteral5.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.commentsOnObjectLiteral5.js -+++ new.commentsOnObjectLiteral5.js -@@= skipped -9, +9 lines =@@ - - - //// [commentsOnObjectLiteral5.js] --var a = { -+const a = { - p0: 0, // Comment 0 - p1: 0, /* Comment 1 - A multiline comment. */ \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnPropertyOfObjectLiteral1.js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnPropertyOfObjectLiteral1.js.diff index 44912db6ba..90ad646a10 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnPropertyOfObjectLiteral1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnPropertyOfObjectLiteral1.js.diff @@ -4,20 +4,10 @@ //// [commentsOnPropertyOfObjectLiteral1.js] var resolve = { -- id: /*! @ngInject */ function (details) { return details.id; }, +- id: /*! @ngInject */ (details) => details.id, - id1: /* c1 */ "hello", + id: (details) => details.id, + id1: "hello", id2: -- /*! @ngInject */ function (details) { return details.id; }, -+ /*! @ngInject */ (details) => details.id, - id3: - /*! @ngInject */ -- function (details) { return details.id; }, -+ (details) => details.id, - id4: - /*! @ngInject */ - /* C2 */ -- function (details) { return details.id; }, -+ (details) => details.id, - }; \ No newline at end of file + /*! @ngInject */ (details) => details.id, + id3: \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnReturnStatement1.js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnReturnStatement1.js.diff deleted file mode 100644 index a7d5b06eab..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsOnReturnStatement1.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.commentsOnReturnStatement1.js -+++ new.commentsOnReturnStatement1.js -@@= skipped -11, +11 lines =@@ - } - - //// [commentsOnReturnStatement1.js] --var DebugClass = /** @class */ (function () { -- function DebugClass() { -- } -- DebugClass.debugFunc = function () { -+class DebugClass { -+ static debugFunc() { - // Start Debugger Test Code - var i = 0; - // End Debugger Test Code - return true; -- }; -- return DebugClass; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnStaticMembers.js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnStaticMembers.js.diff index da9ffdb984..582a4f9338 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOnStaticMembers.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOnStaticMembers.js.diff @@ -4,8 +4,8 @@ } //// [commentsOnStaticMembers.js] --var test = /** @class */ (function () { -- function test() { +-let test = (() => { +- class test { - } +class test { /** @@ -22,7 +22,7 @@ */ - test.p3 = ""; - return test; --}()); +-})(); + static p3 = ""; + /** + * p4 comment does not appear in output diff --git a/testdata/baselines/reference/submodule/compiler/commentsOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/commentsOverloads.js.diff index 6585612624..0d9415263e 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsOverloads.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsOverloads.js.diff @@ -1,95 +1,6 @@ --- old.commentsOverloads.js +++ new.commentsOverloads.js -@@= skipped -200, +200 lines =@@ - var i1_i; - var i2_i; - var i3_i; --var c = /** @class */ (function () { -- function c() { -- } -- c.prototype.prop1 = function (aorb) { -- return 10; -- }; -- c.prototype.prop2 = function (aorb) { -- return 10; -- }; -- c.prototype.prop3 = function (aorb) { -- return 10; -- }; -- c.prototype.prop4 = function (aorb) { -- return 10; -- }; -+class c { -+ prop1(aorb) { -+ return 10; -+ } -+ prop2(aorb) { -+ return 10; -+ } -+ prop3(aorb) { -+ return 10; -+ } -+ prop4(aorb) { -+ return 10; -+ } - /** Prop5 implementaion*/ -- c.prototype.prop5 = function (aorb) { -+ prop5(aorb) { - return 10; -- }; -- return c; --}()); --var c1 = /** @class */ (function () { -- function c1(aorb) { -- } -- return c1; --}()); --var c2 = /** @class */ (function () { -- function c2(aorb) { -- } -- return c2; --}()); --var c3 = /** @class */ (function () { -- function c3(aorb) { -- } -- return c3; --}()); --var c4 = /** @class */ (function () { -+ } -+} -+class c1 { -+ constructor(aorb) { -+ } -+} -+class c2 { -+ constructor(aorb) { -+ } -+} -+class c3 { -+ constructor(aorb) { -+ } -+} -+class c4 { - /** c4 3 */ -- function c4(aorb) { -+ constructor(aorb) { - } -- return c4; --}()); --var c5 = /** @class */ (function () { -+} -+class c5 { - /** c5 implementation*/ -- function c5(aorb) { -+ constructor(aorb) { - } -- return c5; --}()); -+} - var c_i = new c(); - var c1_i_1 = new c1(10); - var c1_i_2 = new c1("hello"); -@@= skipped -83, +75 lines =@@ +@@= skipped -275, +275 lines =@@ foo(a: number): number; /** foo 2*/ foo(b: string): number; diff --git a/testdata/baselines/reference/submodule/compiler/commentsTypeParameters.js.diff b/testdata/baselines/reference/submodule/compiler/commentsTypeParameters.js.diff deleted file mode 100644 index 20632135eb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/commentsTypeParameters.js.diff +++ /dev/null @@ -1,32 +0,0 @@ ---- old.commentsTypeParameters.js -+++ new.commentsTypeParameters.js -@@= skipped -17, +17 lines =@@ - } - - //// [commentsTypeParameters.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.method = function (a) { -- }; -- C.staticmethod = function (a) { -- }; -- C.prototype.privatemethod = function (a) { -- }; -- C.privatestaticmethod = function (a) { -- }; -- return C; --}()); -+class C { -+ method(a) { -+ } -+ static staticmethod(a) { -+ } -+ privatemethod(a) { -+ } -+ static privatestaticmethod(a) { -+ } -+} - function compare(a, b) { - return a === b; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js.diff b/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js.diff index d5dd2e0167..6ab5ce9968 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsVarDecl.js.diff @@ -1,15 +1,6 @@ --- old.commentsVarDecl.js +++ new.commentsVarDecl.js -@@= skipped -70, +70 lines =@@ - /// value comment - 20; - /** comment2 */ --var z = /** lambda comment */ function (x, y) { return x + y; }; -+var z = /** lambda comment */ (x, y) => x + y; - var z2; - var x2 = z2; - var n4; -@@= skipped -9, +9 lines =@@ +@@= skipped -79, +79 lines =@@ //// [commentsVarDecl.d.ts] /** Variable comments*/ diff --git a/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js.diff b/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js.diff index c02fa9a5b3..7bbdcf0334 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsdoNotEmitComments.js.diff @@ -10,58 +10,23 @@ var fooVar; foo(50); fooVar(); --var c = (function () { -- function c() { + class c { + constructor() { - this.b = 10; -- } -- c.prototype.myFoo = function () { -- return this.b; -- }; -- Object.defineProperty(c.prototype, "prop1", { -- get: function () { -- return this.b; -- }, -- set: function (val) { -- this.b = val; -- }, -- enumerable: false, -- configurable: true -- }); -- c.prototype.foo1 = function (aOrb) { -+class c { -+ constructor() { -+ } + } + b = 10; -+ myFoo() { -+ return this.b; -+ } -+ get prop1() { -+ return this.b; -+ } -+ set prop1(val) { -+ this.b = val; -+ } -+ foo1(aOrb) { - return aOrb.toString(); -- }; -- return c; --}()); -+ } -+} - var i = new c(); - var i1_i; + myFoo() { + return this.b; + } +@@= skipped -27, +27 lines =@@ var m1; (function (m1) { -- var b = (function () { -- function b(x) { -+ class b { + class b { + x; -+ constructor(x) { + constructor(x) { this.x = x; } -- return b; -- }()); -+ } + } m1.b = b; })(m1 || (m1 = {})); -var shade = 1; @@ -81,7 +46,7 @@ declare var fooVar: () => void; declare class c { constructor(); -@@= skipped -58, +59 lines =@@ +@@= skipped -25, +32 lines =@@ declare var i: c; interface i1 { (a: number): number; diff --git a/testdata/baselines/reference/submodule/compiler/commentsemitComments.js.diff b/testdata/baselines/reference/submodule/compiler/commentsemitComments.js.diff index 09136e9f3a..1cf76bab0a 100644 --- a/testdata/baselines/reference/submodule/compiler/commentsemitComments.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commentsemitComments.js.diff @@ -1,76 +1,26 @@ --- old.commentsemitComments.js +++ new.commentsemitComments.js -@@= skipped -99, +99 lines =@@ - foo(50); - fooVar(); - /**class comment*/ --var c = /** @class */ (function () { -+class c { +@@= skipped -102, +102 lines =@@ + class c { /** constructor comment*/ -- function c() { + constructor() { - /** property comment */ - this.b = 10; -+ constructor() { } + /** property comment */ + b = 10; /** function comment */ -- c.prototype.myFoo = function () { -- return this.b; -- }; -- Object.defineProperty(c.prototype, "prop1", { -- /** getter comment*/ -- get: function () { -- return this.b; -- }, -- /** setter comment*/ -- set: function (val) { -- this.b = val; -- }, -- enumerable: false, -- configurable: true -- }); -+ myFoo() { -+ return this.b; -+ } -+ /** getter comment*/ -+ get prop1() { -+ return this.b; -+ } -+ /** setter comment*/ -+ set prop1(val) { -+ this.b = val; -+ } - /** overload implementation signature*/ -- c.prototype.foo1 = function (aOrb) { -+ foo1(aOrb) { - return aOrb.toString(); -- }; -- return c; --}()); -+ } -+} - /**instance comment*/ - var i = new c(); - /**interface instance comments*/ -@@= skipped -36, +31 lines =@@ - var m1; + myFoo() { + return this.b; +@@= skipped -29, +29 lines =@@ (function (m1) { /** class b */ -- var b = /** @class */ (function () { -- function b(x) { -+ class b { + class b { + x; -+ constructor(x) { + constructor(x) { this.x = x; } -- return b; -- }()); -+ } - m1.b = b; - })(m1 || (m1 = {})); - -@@= skipped -41, +41 lines =@@ +@@= skipped -39, +40 lines =@@ /** caller comments*/ (a: number): number; /** new comments*/ diff --git a/testdata/baselines/reference/submodule/compiler/commonJsImportClassExpression.js.diff b/testdata/baselines/reference/submodule/compiler/commonJsImportClassExpression.js.diff index 6186e22538..c3515fdf56 100644 --- a/testdata/baselines/reference/submodule/compiler/commonJsImportClassExpression.js.diff +++ b/testdata/baselines/reference/submodule/compiler/commonJsImportClassExpression.js.diff @@ -1,18 +1,13 @@ --- old.commonJsImportClassExpression.js +++ new.commonJsImportClassExpression.js -@@= skipped -12, +12 lines =@@ - +@@= skipped -13, +13 lines =@@ //// [mod1.js] "use strict"; --module.exports = /** @class */ (function () { -- function class_1() { + module.exports = class { +- constructor() { - this.chunk = 1; - } -- return class_1; --}()); -+module.exports = class { + chunk = 1; -+}; + }; //// [use.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); \ No newline at end of file + "use strict"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/comparabilityTypeParametersRelatedByUnion.js.diff b/testdata/baselines/reference/submodule/compiler/comparabilityTypeParametersRelatedByUnion.js.diff index 646661d762..3f502d87cc 100644 --- a/testdata/baselines/reference/submodule/compiler/comparabilityTypeParametersRelatedByUnion.js.diff +++ b/testdata/baselines/reference/submodule/compiler/comparabilityTypeParametersRelatedByUnion.js.diff @@ -1,28 +1,10 @@ --- old.comparabilityTypeParametersRelatedByUnion.js +++ new.comparabilityTypeParametersRelatedByUnion.js -@@= skipped -14, +14 lines =@@ - +@@= skipped -15, +15 lines =@@ //// [comparabilityTypeParametersRelatedByUnion.js] --var C = /** @class */ (function () { -- function C(x) { -+class C { + class C { + x; -+ constructor(x) { + constructor(x) { this.x = x; - } -- C.prototype.good = function (y) { -- if (y === this.x) { } -- }; -- C.prototype.bad = function (y) { -- if (y === this.x) { } -- }; -- return C; --}()); -+ good(y) { -+ if (y === this.x) { } -+ } -+ bad(y) { -+ if (y === this.x) { } -+ } -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/comparisonOfPartialDeepAndIndexedAccessTerminatesWithoutError.js.diff b/testdata/baselines/reference/submodule/compiler/comparisonOfPartialDeepAndIndexedAccessTerminatesWithoutError.js.diff deleted file mode 100644 index bfaa88be9a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/comparisonOfPartialDeepAndIndexedAccessTerminatesWithoutError.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.comparisonOfPartialDeepAndIndexedAccessTerminatesWithoutError.js -+++ new.comparisonOfPartialDeepAndIndexedAccessTerminatesWithoutError.js -@@= skipped -15, +15 lines =@@ - //// [comparisonOfPartialDeepAndIndexedAccessTerminatesWithoutError.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); --var x = null; -+const x = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/complexClassRelationships.js.diff b/testdata/baselines/reference/submodule/compiler/complexClassRelationships.js.diff index 29353e3d84..84d3dcd0f1 100644 --- a/testdata/baselines/reference/submodule/compiler/complexClassRelationships.js.diff +++ b/testdata/baselines/reference/submodule/compiler/complexClassRelationships.js.diff @@ -1,132 +1,10 @@ --- old.complexClassRelationships.js +++ new.complexClassRelationships.js -@@= skipped -49, +49 lines =@@ +@@= skipped -62, +62 lines =@@ + } } - - //// [complexClassRelationships.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - // There should be no errors in this file --var Derived = /** @class */ (function (_super) { -- __extends(Derived, _super); -- function Derived() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- Derived.createEmpty = function () { -+class Derived extends Base { -+ static createEmpty() { - var item = new Derived(); - return item; -- }; -- return Derived; --}(Base)); --var BaseCollection = /** @class */ (function () { -- function BaseCollection(f) { -- (function (item) { return [item.Components]; }); -- } -- return BaseCollection; --}()); --var Base = /** @class */ (function () { -- function Base() { -- } -- return Base; --}()); --var Thing = /** @class */ (function () { -- function Thing() { -- } -- Object.defineProperty(Thing.prototype, "Components", { -- get: function () { return null; }, -- enumerable: false, -- configurable: true -- }); -- return Thing; --}()); --var ComponentCollection = /** @class */ (function () { -- function ComponentCollection() { -- } -- ComponentCollection.sortComponents = function (p) { -+ } -+} -+class BaseCollection { -+ constructor(f) { -+ (item) => { return [item.Components]; }; -+ } -+} -+class Base { + class Base { + ownerCollection; -+} -+class Thing { -+ get Components() { return null; } -+} -+class ComponentCollection { -+ static sortComponents(p) { - return p.prop1; -- }; -- return ComponentCollection; --}()); --var Foo = /** @class */ (function () { -- function Foo() { -- } -- Object.defineProperty(Foo.prototype, "prop1", { -- get: function () { -- return new GenericType(this); -- }, -- enumerable: false, -- configurable: true -- }); -- Foo.prototype.populate = function () { -+ } -+} -+class Foo { -+ get prop1() { -+ return new GenericType(this); -+ } -+ populate() { - this.prop2; -- }; -- Object.defineProperty(Foo.prototype, "prop2", { -- get: function () { -- return new BaseCollection(Derived.createEmpty); -- }, -- enumerable: false, -- configurable: true -- }); -- return Foo; --}()); --var GenericType = /** @class */ (function () { -- function GenericType(parent) { -- } -- return GenericType; --}()); --var FooBase = /** @class */ (function () { -- function FooBase() { -- } -- FooBase.prototype.populate = function () { -- }; -- return FooBase; --}()); -+ } -+ get prop2() { -+ return new BaseCollection(Derived.createEmpty); -+ } -+} -+class GenericType { -+ constructor(parent) { } -+} -+class FooBase { -+ populate() { -+ } -+} \ No newline at end of file + } + class Thing { + get Components() { return null; } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/complexNarrowingWithAny.js.diff b/testdata/baselines/reference/submodule/compiler/complexNarrowingWithAny.js.diff index 136d8f2590..07df85e517 100644 --- a/testdata/baselines/reference/submodule/compiler/complexNarrowingWithAny.js.diff +++ b/testdata/baselines/reference/submodule/compiler/complexNarrowingWithAny.js.diff @@ -11,107 +11,10 @@ /** * This file is generated by the Angular 2 template compiler. * Do not edit. -@@= skipped -63, +63 lines =@@ - //stubbed out imports - var import44; - (function (import44) { -- var FormGroupDirective = /** @class */ (function () { -- function FormGroupDirective(any) { -- } -- return FormGroupDirective; -- }()); -+ class FormGroupDirective { -+ constructor(any) { } -+ } - import44.FormGroupDirective = FormGroupDirective; - })(import44 || (import44 = {})); - var import45; - (function (import45) { -- var NgControlStatus = /** @class */ (function () { -- function NgControlStatus(any) { -- } -- return NgControlStatus; -- }()); -+ class NgControlStatus { -+ constructor(any) { } -+ } - import45.NgControlStatus = NgControlStatus; -- var NgControlStatusGroup = /** @class */ (function () { -- function NgControlStatusGroup(any) { -- } -- return NgControlStatusGroup; -- }()); -+ class NgControlStatusGroup { -+ constructor(any) { } -+ } - import45.NgControlStatusGroup = NgControlStatusGroup; - })(import45 || (import45 = {})); - var import46; - (function (import46) { -- var DefaultValueAccessor = /** @class */ (function () { -- function DefaultValueAccessor(any) { -- } -- return DefaultValueAccessor; -- }()); -+ class DefaultValueAccessor { -+ constructor(any) { } -+ } - import46.DefaultValueAccessor = DefaultValueAccessor; - })(import46 || (import46 = {})); - var import47; - (function (import47) { -- var FormControlName = /** @class */ (function () { -- function FormControlName(any) { -- } -- return FormControlName; -- }()); -+ class FormControlName { -+ constructor(any) { } -+ } - import47.FormControlName = FormControlName; - })(import47 || (import47 = {})); - var import48; - (function (import48) { -- var FormControlName = /** @class */ (function () { -- function FormControlName(any) { -- } -- return FormControlName; -- }()); -+ class FormControlName { -+ constructor(any) { } -+ } - import48.FormControlName = FormControlName; - })(import48 || (import48 = {})); - //HERE BE DRAGONS -@@= skipped -66, +54 lines =@@ - //END DRAGONS - var import50; - (function (import50) { -- var NgControl = /** @class */ (function () { -- function NgControl(any) { -- } -- return NgControl; -- }()); -+ class NgControl { -+ constructor(any) { } -+ } - import50.NgControl = NgControl; - })(import50 || (import50 = {})); - var import51; - (function (import51) { -- var ControlContainer = /** @class */ (function () { -- function ControlContainer(any) { -- } -- return ControlContainer; -- }()); -+ class ControlContainer { -+ constructor(any) { } -+ } +@@= skipped -130, +130 lines =@@ import51.ControlContainer = ControlContainer; })(import51 || (import51 = {})); --var _View_AppComponent0 = /** @class */ (function () { -- function _View_AppComponent0(viewUtils, parentInjector, declarationEl) { -+class _View_AppComponent0 { + class _View_AppComponent0 { + _text_0; + _el_1; + _FormGroupDirective_1_3; @@ -426,22 +329,6 @@ + /*private*/ _expr_186; + /*private*/ _expr_187; + /*private*/ _expr_188; -+ constructor(viewUtils, parentInjector, declarationEl) { + constructor(viewUtils, parentInjector, declarationEl) { } -- _View_AppComponent0.prototype.injectorGetInternal = function (token, requestNodeIndex, notFoundResult) { -+ injectorGetInternal(token, requestNodeIndex, notFoundResult) { - if (((token === import46.DefaultValueAccessor) && (3 === requestNodeIndex))) { - return this._DefaultValueAccessor_3_3; - } -@@= skipped -330, +640 lines =@@ - return this._NgControlStatusGroup_1_5; - } - return notFoundResult; -- }; -- return _View_AppComponent0; --}()); -+ } -+} - function viewFactory_AppComponent0(viewUtils, parentInjector, declarationEl) { - return new _View_AppComponent0(viewUtils, parentInjector, declarationEl); - } \ No newline at end of file + injectorGetInternal(token, requestNodeIndex, notFoundResult) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/complicatedGenericRecursiveBaseClassReference.js.diff b/testdata/baselines/reference/submodule/compiler/complicatedGenericRecursiveBaseClassReference.js.diff deleted file mode 100644 index 0a79027570..0000000000 --- a/testdata/baselines/reference/submodule/compiler/complicatedGenericRecursiveBaseClassReference.js.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- old.complicatedGenericRecursiveBaseClassReference.js -+++ new.complicatedGenericRecursiveBaseClassReference.js -@@= skipped -7, +7 lines =@@ - - - //// [complicatedGenericRecursiveBaseClassReference.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var S18 = /** @class */ (function (_super) { -- __extends(S18, _super); -- function S18() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return S18; --}(S18)); -+class S18 extends S18 { -+} - (new S18(123)).S18 = 0; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.js.diff b/testdata/baselines/reference/submodule/compiler/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.js.diff deleted file mode 100644 index 18adca8cea..0000000000 --- a/testdata/baselines/reference/submodule/compiler/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.js.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.js -+++ new.complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.js -@@= skipped -49, +49 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.makeNewChannel = makeNewChannel; - function makeNewChannel(type) { -- var localChannelId = "blahblahblah"; -- return { type: type, localChannelId: localChannelId }; -+ const localChannelId = `blahblahblah`; -+ return { type, localChannelId }; - } --var newTextChannel = makeNewChannel('text'); -+const newTextChannel = makeNewChannel('text'); - // This should work - newTextChannel.phoneNumber = '613-555-1234'; --var newTextChannel2 = makeNewChannel('text'); -+const newTextChannel2 = makeNewChannel('text'); - // Compare with this, which ofc works. - newTextChannel2.phoneNumber = '613-555-1234'; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/complicatedIndexesOfIntersectionsAreInferencable.js.diff b/testdata/baselines/reference/submodule/compiler/complicatedIndexesOfIntersectionsAreInferencable.js.diff index 04de38ab95..9ac3616e3a 100644 --- a/testdata/baselines/reference/submodule/compiler/complicatedIndexesOfIntersectionsAreInferencable.js.diff +++ b/testdata/baselines/reference/submodule/compiler/complicatedIndexesOfIntersectionsAreInferencable.js.diff @@ -7,10 +7,4 @@ -"use strict"; Func({ initialValues: { - foo: "" - }, -- validate: function (props) { -+ validate: props => { - props.foo; - } - }); \ No newline at end of file + foo: "" \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/complicatedPrivacy.js.diff b/testdata/baselines/reference/submodule/compiler/complicatedPrivacy.js.diff index 4559110121..1621697464 100644 --- a/testdata/baselines/reference/submodule/compiler/complicatedPrivacy.js.diff +++ b/testdata/baselines/reference/submodule/compiler/complicatedPrivacy.js.diff @@ -1,114 +1,10 @@ --- old.complicatedPrivacy.js +++ new.complicatedPrivacy.js -@@= skipped -108, +108 lines =@@ - //// [complicatedPrivacy.js] - var m1; - (function (m1) { -- var m2; -+ let m2; - (function (m2) { - function f1(c1) { - } -@@= skipped -8, +8 lines =@@ - function f2(c2) { - } - m2.f2 = f2; -- var C2 = /** @class */ (function () { -- function C2() { -- } -- Object.defineProperty(C2.prototype, "p1", { -- get: function (arg) { -- return new C1(); -- }, -- set: function (arg1) { -- }, -- enumerable: false, -- configurable: true -- }); -- C2.prototype.f55 = function () { -+ class C2 { -+ get p1(arg) { -+ return new C1(); -+ } -+ set p1(arg1) { -+ } -+ f55() { - return "Hello world"; -- }; -- return C2; -- }()); -+ } -+ } - m2.C2 = C2; - })(m2 = m1.m2 || (m1.m2 = {})); - function f2(arg1) { -@@= skipped -32, +25 lines =@@ - function f5(arg2) { +@@= skipped -149, +149 lines =@@ + class C1 { } - m1.f5 = f5; -- var m3; -+ let m3; - (function (m3) { - function f2(f1) { - } - })(m3 || (m3 = {})); -- var C1 = /** @class */ (function () { -- function C1() { -- } -- return C1; -- }()); -- var C5 = /** @class */ (function () { -- function C5() { -- } -- return C5; -- }()); -+ class C1 { -+ } -+ class C5 { + class C5 { + x; -+ } + } m1.C5 = C5; - })(m1 || (m1 = {})); --var C2 = /** @class */ (function () { -- function C2() { -- } -- return C2; --}()); -+class C2 { -+} - var m2; - (function (m2) { -- var m3; -+ let m3; - (function (m3) { -- var c_pr = /** @class */ (function () { -- function c_pr() { -- } -- c_pr.prototype.f1 = function () { -+ class c_pr { -+ f1() { - return "Hello"; -- }; -- return c_pr; -- }()); -+ } -+ } - m3.c_pr = c_pr; -- var m4; -+ let m4; - (function (m4) { -- var C = /** @class */ (function () { -- function C() { -- } -- return C; -- }()); -- var m5; -+ class C { -+ } -+ let m5; - (function (m5) { -- var m6; -+ let m6; - (function (m6) { - function f1() { - return new C(); \ No newline at end of file + })(m1 || (m1 = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js.diff b/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js.diff index c3deb8c91f..91f8b029ec 100644 --- a/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js.diff +++ b/testdata/baselines/reference/submodule/compiler/computedEnumTypeWidening.js.diff @@ -21,113 +21,25 @@ + if (typeof E.D !== "string") E[E.D] = "D"; })(E || (E = {})); function f1() { -- var c1 = E.B; // Fresh E.B -- var v1 = c1; // E -- var c2 = c1; // Fresh E.B -- var v2 = c2; // E -- var c3 = E.B; // E.B -- var v3 = c3; // E.B -- var c4 = c1; // E.B -- var v4 = c4; // E.B -+ const c1 = E.B; // Fresh E.B -+ let v1 = c1; // E -+ const c2 = c1; // Fresh E.B -+ let v2 = c2; // E -+ const c3 = E.B; // E.B -+ let v3 = c3; // E.B -+ const c4 = c1; // E.B -+ let v4 = c4; // E.B - } - function f2(cond) { -- var c1 = cond ? E.A : E.B; // Fresh E.A | fresh E.B -- var c2 = c1; // E.A | E.B -- var c3 = cond ? c1 : c2; // E.A | E.B -- var c4 = cond ? c3 : E.C; // E.A | E.B | fresh E.C -- var c5 = c4; // E.A | E.B | E.C -- var v1 = c1; // E -- var v2 = c2; // E.A | E.B -- var v3 = c3; // E.A | E.B -- var v4 = c4; // E -- var v5 = c5; // E.A | E.B | E.C -+ const c1 = cond ? E.A : E.B; // Fresh E.A | fresh E.B -+ const c2 = c1; // E.A | E.B -+ const c3 = cond ? c1 : c2; // E.A | E.B -+ const c4 = cond ? c3 : E.C; // E.A | E.B | fresh E.C -+ const c5 = c4; // E.A | E.B | E.C -+ let v1 = c1; // E -+ let v2 = c2; // E.A | E.B -+ let v3 = c3; // E.A | E.B -+ let v4 = c4; // E -+ let v5 = c5; // E.A | E.B | E.C - } - function f3() { -- var c1 = E.B; -- var v1 = c1; // E -- var c2 = E.B; -- var v2 = c2; // E.B -- var c3 = E.B; -- var v3 = c3; // E.B -- var c4 = E.B; -- var v4 = c4; // E.B -- var c5 = E.B; -- var v5 = c5; // E.B -+ const c1 = E.B; -+ let v1 = c1; // E -+ const c2 = E.B; -+ let v2 = c2; // E.B -+ const c3 = E.B; -+ let v3 = c3; // E.B -+ const c4 = E.B; -+ let v4 = c4; // E.B -+ const c5 = E.B; -+ let v5 = c5; // E.B - } - function f4() { -- var c1 = E2.B; // Fresh E2.B -- var v1 = E.B; // E2 --} --var c1 = E.B; --var c2 = E.B; --var v1 = E.B; --var v2 = E.B; --var C = /** @class */ (function () { -- function C() { + const c1 = E.B; // Fresh E.B +@@= skipped -51, +54 lines =@@ + let v1 = E.B; + let v2 = E.B; + class C { +- constructor() { - this.p1 = E.B; - this.p2 = E.B; - this.p3 = E.B; - this.p4 = E.B; - } -- return C; --}()); -+ const c1 = E2.B; // Fresh E2.B -+ let v1 = E.B; // E2 -+} -+const c1 = E.B; -+const c2 = E.B; -+let v1 = E.B; -+let v2 = E.B; -+class C { + p1 = E.B; + p2 = E.B; + p3 = E.B; + p4 = E.B; -+} + } // Repro from #52531 var MyEnum; - (function (MyEnum) { -@@= skipped -66, +66 lines =@@ - MyEnum[MyEnum["B"] = 1] = "B"; - MyEnum[MyEnum["C"] = 2] = "C"; - })(MyEnum || (MyEnum = {})); --var val1 = MyEnum.A; -+let val1 = MyEnum.A; - val1 = MyEnum.B; --var val2 = MyDeclaredEnum.A; -+let val2 = MyDeclaredEnum.A; - val2 = MyDeclaredEnum.B; - - -@@= skipped -31, +31 lines =@@ +@@= skipped -45, +43 lines =@@ declare class C { p1: E; p2: E.B; diff --git a/testdata/baselines/reference/submodule/compiler/computedPropertiesInDestructuring1.js.diff b/testdata/baselines/reference/submodule/compiler/computedPropertiesInDestructuring1.js.diff deleted file mode 100644 index e3eab6f979..0000000000 --- a/testdata/baselines/reference/submodule/compiler/computedPropertiesInDestructuring1.js.diff +++ /dev/null @@ -1,62 +0,0 @@ ---- old.computedPropertiesInDestructuring1.js -+++ new.computedPropertiesInDestructuring1.js -@@= skipped -39, +39 lines =@@ - - - //// [computedPropertiesInDestructuring1.js] --var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; - // destructuring in variable declarations --var foo = "bar"; --var _o = { bar: "bar" }, _p = foo, bar = _o[_p]; --var bar2 = { bar: "bar" }["bar"]; --var foo2 = function () { return "bar"; }; --var _q = { bar: "bar" }, _r = foo2(), bar3 = _q[_r]; --var _s = [{ bar: "bar" }], _t = foo, bar4 = _s[0][_t]; --var _u = [{ bar: "bar" }], _v = foo2(), bar5 = _u[0][_v]; --function f1(_a) { -- var x = _a["bar"]; --} --function f2(_a) { -- var _b = foo, x = _a[_b]; --} --function f3(_a) { -- var _b = foo2(), x = _a[_b]; --} --function f4(_a) { -- var _b = foo, x = _a[0][_b]; --} --function f5(_a) { -- var _b = foo2(), x = _a[0][_b]; --} -+let foo = "bar"; -+let { [foo]: bar } = { bar: "bar" }; -+let { ["bar"]: bar2 } = { bar: "bar" }; -+let foo2 = () => "bar"; -+let { [foo2()]: bar3 } = { bar: "bar" }; -+let [{ [foo]: bar4 }] = [{ bar: "bar" }]; -+let [{ [foo2()]: bar5 }] = [{ bar: "bar" }]; -+function f1({ ["bar"]: x }) { } -+function f2({ [foo]: x }) { } -+function f3({ [foo2()]: x }) { } -+function f4([{ [foo]: x }]) { } -+function f5([{ [foo2()]: x }]) { } - // report errors on type errors in computed properties used in destructuring --var _w = [{ bar: "bar" }], _x = foo(), bar6 = _w[0][_x]; --var _y = [{ bar: "bar" }], _z = foo.toExponential(), bar7 = _y[0][_z]; -+let [{ [foo()]: bar6 }] = [{ bar: "bar" }]; -+let [{ [foo.toExponential()]: bar7 }] = [{ bar: "bar" }]; - // destructuring assignment --(_a = { bar: "bar" }, _b = foo, bar = _a[_b]); --(bar2 = { bar: "bar" }["bar"]); --(_c = { bar: "bar" }, _d = foo2(), bar3 = _c[_d]); --_e = [{ bar: "bar" }], _f = foo, bar4 = _e[0][_f]; --_g = [{ bar: "bar" }], _h = foo2(), bar5 = _g[0][_h]; --_j = [{ bar: "bar" }], _k = foo(), bar4 = _j[0][_k]; --_l = [{ bar: "bar" }], _m = (1 + {}), bar4 = _l[0][_m]; -+({ [foo]: bar } = { bar: "bar" }); -+({ ["bar"]: bar2 } = { bar: "bar" }); -+({ [foo2()]: bar3 } = { bar: "bar" }); -+[{ [foo]: bar4 }] = [{ bar: "bar" }]; -+[{ [foo2()]: bar5 }] = [{ bar: "bar" }]; -+[{ [foo()]: bar4 }] = [{ bar: "bar" }]; -+[{ [(1 + {})]: bar4 }] = [{ bar: "bar" }]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/computedPropertiesInDestructuring2.js.diff b/testdata/baselines/reference/submodule/compiler/computedPropertiesInDestructuring2.js.diff deleted file mode 100644 index b711d42c02..0000000000 --- a/testdata/baselines/reference/submodule/compiler/computedPropertiesInDestructuring2.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.computedPropertiesInDestructuring2.js -+++ new.computedPropertiesInDestructuring2.js -@@= skipped -4, +4 lines =@@ - let {[foo2()]: bar3} = {}; - - //// [computedPropertiesInDestructuring2.js] --var foo2 = function () { return "bar"; }; --var _a = {}, _b = foo2(), bar3 = _a[_b]; -+let foo2 = () => "bar"; -+let { [foo2()]: bar3 } = {}; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/computedPropertiesTransformedInOtherwiseNonTSClasses.js.diff b/testdata/baselines/reference/submodule/compiler/computedPropertiesTransformedInOtherwiseNonTSClasses.js.diff index bedba702c1..417e74fb26 100644 --- a/testdata/baselines/reference/submodule/compiler/computedPropertiesTransformedInOtherwiseNonTSClasses.js.diff +++ b/testdata/baselines/reference/submodule/compiler/computedPropertiesTransformedInOtherwiseNonTSClasses.js.diff @@ -1,16 +1,10 @@ --- old.computedPropertiesTransformedInOtherwiseNonTSClasses.js +++ new.computedPropertiesTransformedInOtherwiseNonTSClasses.js -@@= skipped -13, +13 lines =@@ - var NS; +@@= skipped -14, +14 lines =@@ (function (NS) { NS.x = Symbol(); -- var NotTransformed = /** @class */ (function () { -- function NotTransformed() { -- } -- return NotTransformed; -- }()); -- NS.x; -+ class NotTransformed { + class NotTransformed { + [NS.x]; -+ } + } +- NS.x; })(NS || (NS = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/computedPropertyNameWithImportedKey.js.diff b/testdata/baselines/reference/submodule/compiler/computedPropertyNameWithImportedKey.js.diff index ccb209a808..3012b0c7f0 100644 --- a/testdata/baselines/reference/submodule/compiler/computedPropertyNameWithImportedKey.js.diff +++ b/testdata/baselines/reference/submodule/compiler/computedPropertyNameWithImportedKey.js.diff @@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.fn = fn; -var a_1 = require("./a"); --function fn(_a) { -- var _b = a_1.a, value = _a[_b]; +const a_1 = require("./a"); -+function fn({ [a_1.a]: value }) { + function fn({ [a_1.a]: value }) { return value; - } + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/computerPropertiesInES5ShouldBeTransformed.js.diff b/testdata/baselines/reference/submodule/compiler/computerPropertiesInES5ShouldBeTransformed.js.diff deleted file mode 100644 index 72e5e47bb1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/computerPropertiesInES5ShouldBeTransformed.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.computerPropertiesInES5ShouldBeTransformed.js -+++ new.computerPropertiesInES5ShouldBeTransformed.js -@@= skipped -3, +3 lines =@@ - const b = ({ [`key`]: renamed }) => renamed; - - //// [computerPropertiesInES5ShouldBeTransformed.js] --var b = function (_a) { -- var _b = "key", renamed = _a[_b]; -- return renamed; --}; -+const b = ({ [`key`]: renamed }) => renamed; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/concatClassAndString.js.diff b/testdata/baselines/reference/submodule/compiler/concatClassAndString.js.diff deleted file mode 100644 index 85a705bdbd..0000000000 --- a/testdata/baselines/reference/submodule/compiler/concatClassAndString.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.concatClassAndString.js -+++ new.concatClassAndString.js -@@= skipped -8, +8 lines =@@ - - //// [concatClassAndString.js] - // Shouldn't compile (the long form f = f + ""; doesn't): --var f = /** @class */ (function () { -- function f() { -- } -- return f; --}()); -+class f { -+} - f += ''; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/concatTuples.js.diff b/testdata/baselines/reference/submodule/compiler/concatTuples.js.diff deleted file mode 100644 index b684870633..0000000000 --- a/testdata/baselines/reference/submodule/compiler/concatTuples.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.concatTuples.js -+++ new.concatTuples.js -@@= skipped -5, +5 lines =@@ - - - //// [concatTuples.js] --var ijs = [[1, 2]]; -+let ijs = [[1, 2]]; - ijs = ijs.concat([[3, 4], [5, 6]]); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conditionalAnyCheckTypePicksBothBranches.js.diff b/testdata/baselines/reference/submodule/compiler/conditionalAnyCheckTypePicksBothBranches.js.diff deleted file mode 100644 index 5690106a61..0000000000 --- a/testdata/baselines/reference/submodule/compiler/conditionalAnyCheckTypePicksBothBranches.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.conditionalAnyCheckTypePicksBothBranches.js -+++ new.conditionalAnyCheckTypePicksBothBranches.js -@@= skipped -11, +11 lines =@@ - y = 0; // error - - //// [conditionalAnyCheckTypePicksBothBranches.js] --var x; -+let x; - x = 1; - x = 0; // not an error --var y; -+let y; - y = 1; - y = 0; // error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conditionalDoesntLeakUninstantiatedTypeParameter.js.diff b/testdata/baselines/reference/submodule/compiler/conditionalDoesntLeakUninstantiatedTypeParameter.js.diff deleted file mode 100644 index 2d15370251..0000000000 --- a/testdata/baselines/reference/submodule/compiler/conditionalDoesntLeakUninstantiatedTypeParameter.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.conditionalDoesntLeakUninstantiatedTypeParameter.js -+++ new.conditionalDoesntLeakUninstantiatedTypeParameter.js -@@= skipped -10, +10 lines =@@ - - - //// [conditionalDoesntLeakUninstantiatedTypeParameter.js] --var y = 3; // Type '3' is not assignable to type 'T'. (shouldn't error) --var z = '3'; // Type '"3""' is not assignable to type 'T'. (should not mention T) -+const y = 3; // Type '3' is not assignable to type 'T'. (shouldn't error) -+const z = '3'; // Type '"3""' is not assignable to type 'T'. (should not mention T) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conditionalEqualityOnLiteralObjects.js.diff b/testdata/baselines/reference/submodule/compiler/conditionalEqualityOnLiteralObjects.js.diff deleted file mode 100644 index 69548b85fa..0000000000 --- a/testdata/baselines/reference/submodule/compiler/conditionalEqualityOnLiteralObjects.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.conditionalEqualityOnLiteralObjects.js -+++ new.conditionalEqualityOnLiteralObjects.js -@@= skipped -57, +57 lines =@@ - - - //// [conditionalEqualityOnLiteralObjects.js] --var a = { a: 1 }; --var b = [1]; -+const a = { a: 1 }; -+const b = [1]; - if ({ a: 1 } === { a: 1 }) { - } - if ([1] === [1]) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conditionalTypeAssignabilityWhenDeferred.js.diff b/testdata/baselines/reference/submodule/compiler/conditionalTypeAssignabilityWhenDeferred.js.diff index dccc957660..8b2eaf3a4e 100644 --- a/testdata/baselines/reference/submodule/compiler/conditionalTypeAssignabilityWhenDeferred.js.diff +++ b/testdata/baselines/reference/submodule/compiler/conditionalTypeAssignabilityWhenDeferred.js.diff @@ -1,54 +1,10 @@ --- old.conditionalTypeAssignabilityWhenDeferred.js +++ new.conditionalTypeAssignabilityWhenDeferred.js -@@= skipped -145, +145 lines =@@ - x = s; // Error +@@= skipped -169, +169 lines =@@ + const o6 = o; } - function testAssignabilityToConditionalType() { -- var o = { a: 1, b: 2 }; -- var x = undefined; -+ const o = { a: 1, b: 2 }; -+ const x = undefined; - // Simple case: OK -- var o1 = o; -+ const o1 = o; - // Simple case where source happens to be a conditional type: also OK -- var x1 = x; -+ const x1 = x; - // Infer type parameters: no good -- var o2 = o; -+ const o2 = o; - // The next 4 are arguable - if you choose to ignore the `never` distribution case, - // then they're all good. The `never` case _is_ a bit of an outlier - we say distributive types - // look approximately like the sum of their branches, but the `never` case bucks that. -@@= skipped -15, +15 lines =@@ - // being not `never`, but instead the intersection of the branches - a much more precise bound - // on that "impossible" input. - // Distributive where T might instantiate to never: no good -- var o3 = o; -+ const o3 = o; - // Distributive where T & string might instantiate to never: also no good -- var o4 = o; -+ const o4 = o; - // Distributive where {a: T} cannot instantiate to never: OK -- var o5 = o; -+ const o5 = o; - // Distributive where check type is a conditional which returns a non-never type upon instantiation with `never` but can still return never otherwise: no good -- var o6 = o; -+ const o6 = o; - } --var Foo2 = /** @class */ (function () { -- function Foo2() { -- } -- Foo2.prototype.method = function () { -+class Foo2 { + class Foo2 { + prop; -+ method() { + method() { set(this, "prop", "hi"); // <-- type error -- }; -- return Foo2; --}()); -+ } -+} - set(new Foo2(), "prop", "hi"); // <-- typechecks - function f3(x) { - return x; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conditionalTypeBasedContextualTypeReturnTypeWidening.js.diff b/testdata/baselines/reference/submodule/compiler/conditionalTypeBasedContextualTypeReturnTypeWidening.js.diff deleted file mode 100644 index f321d8390a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/conditionalTypeBasedContextualTypeReturnTypeWidening.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.conditionalTypeBasedContextualTypeReturnTypeWidening.js -+++ new.conditionalTypeBasedContextualTypeReturnTypeWidening.js -@@= skipped -14, +14 lines =@@ - - - //// [conditionalTypeBasedContextualTypeReturnTypeWidening.js] --var func1 = useState1(function () { return function () { return 0; }; }); --var func2 = useState2(function () { return function () { return 0; }; }); --var func3 = useState1(function () { return function () { return 0; }; }); --var func4 = useState2(function () { return function () { return 0; }; }); -+const func1 = useState1(() => () => 0); -+const func2 = useState2(() => () => 0); -+const func3 = useState1(() => () => 0); -+const func4 = useState2(() => () => 0); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conditionalTypeContextualTypeSimplificationsSuceeds.js.diff b/testdata/baselines/reference/submodule/compiler/conditionalTypeContextualTypeSimplificationsSuceeds.js.diff index 6b1514ac12..6be09e1a0e 100644 --- a/testdata/baselines/reference/submodule/compiler/conditionalTypeContextualTypeSimplificationsSuceeds.js.diff +++ b/testdata/baselines/reference/submodule/compiler/conditionalTypeContextualTypeSimplificationsSuceeds.js.diff @@ -7,10 +7,4 @@ -"use strict"; function bad(attrs) { } function good1(attrs) { } - function good2(attrs) { } --bad({ when: function (value) { return false; } }); --good1({ when: function (value) { return false; } }); --good2({ when: function (value) { return false; } }); -+bad({ when: value => false }); -+good1({ when: value => false }); -+good2({ when: value => false }); \ No newline at end of file + function good2(attrs) { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.js.diff b/testdata/baselines/reference/submodule/compiler/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.js.diff deleted file mode 100644 index a357e703c2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.js -+++ new.conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.js -@@= skipped -8017, +8017 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.makeThing = makeThing; --function makeThing(name, children) { -- if (children === void 0) { children = []; } --} -+function makeThing(name, children = []) { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conditionalTypeRelaxingConstraintAssignability.js.diff b/testdata/baselines/reference/submodule/compiler/conditionalTypeRelaxingConstraintAssignability.js.diff index f9acb3c258..ce4051457c 100644 --- a/testdata/baselines/reference/submodule/compiler/conditionalTypeRelaxingConstraintAssignability.js.diff +++ b/testdata/baselines/reference/submodule/compiler/conditionalTypeRelaxingConstraintAssignability.js.diff @@ -1,19 +1,10 @@ --- old.conditionalTypeRelaxingConstraintAssignability.js +++ new.conditionalTypeRelaxingConstraintAssignability.js -@@= skipped -42, +42 lines =@@ - "use strict"; +@@= skipped -43, +43 lines =@@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Elem = void 0; --var Elem = /** @class */ (function () { -- function Elem(children_) { -+class Elem { + class Elem { + children_; -+ constructor(children_) { + constructor(children_) { this.children_ = children_; - } -- return Elem; --}()); -+} - exports.Elem = Elem; - new Elem(undefined); - new Elem(''); \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conditionalTypesSimplifyWhenTrivial.js.diff b/testdata/baselines/reference/submodule/compiler/conditionalTypesSimplifyWhenTrivial.js.diff index 793da3f92e..6f01d300a4 100644 --- a/testdata/baselines/reference/submodule/compiler/conditionalTypesSimplifyWhenTrivial.js.diff +++ b/testdata/baselines/reference/submodule/compiler/conditionalTypesSimplifyWhenTrivial.js.diff @@ -5,41 +5,6 @@ //// [conditionalTypesSimplifyWhenTrivial.js] -"use strict"; --var fn1 = function (params) { return params; }; -+const fn1 = (params) => params; + const fn1 = (params) => params; function fn2(x) { - var y = x; - x = y; - } --var fn3 = function (params) { return params; }; -+const fn3 = (params) => params; - function fn4(x) { - var y = x; - x = y; - } --var fn5 = function (params) { return params; }; -+const fn5 = (params) => params; - function fn6(x) { - var y = x; - x = y; - } --var fn7 = function (params) { return params; }; -+const fn7 = (params) => params; - function fn8(x) { - var y = x; - x = y; - } --var fn9 = function (params) { return params; }; -+const fn9 = (params) => params; - function fn10(x) { - var y = x; - x = y; - } --var fn11 = function (params) { return params; }; -+const fn11 = (params) => params; - function fn12(x) { - var y = x; - x = y; - } --var zee = z; // since x is `any`, `x extends null | undefined` should be both true and false - and thus yield `any` -+const zee = z; // since x is `any`, `x extends null | undefined` should be both true and false - and thus yield `any` \ No newline at end of file + var y = x; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conditionallyDuplicateOverloadsCausedByOverloadResolution.js.diff b/testdata/baselines/reference/submodule/compiler/conditionallyDuplicateOverloadsCausedByOverloadResolution.js.diff deleted file mode 100644 index 9996a97252..0000000000 --- a/testdata/baselines/reference/submodule/compiler/conditionallyDuplicateOverloadsCausedByOverloadResolution.js.diff +++ /dev/null @@ -1,16 +0,0 @@ ---- old.conditionallyDuplicateOverloadsCausedByOverloadResolution.js -+++ new.conditionallyDuplicateOverloadsCausedByOverloadResolution.js -@@= skipped -22, +22 lines =@@ - }); - - //// [conditionallyDuplicateOverloadsCausedByOverloadResolution.js] --var out = foo(function (x, y) { -+var out = foo((x, y) => { - function bar() { } - return bar; - }); --var out2 = foo2(function (x, y) { -+var out2 = foo2((x, y) => { - var bar; - return bar; - }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/configFileExtendsAsList.js.diff b/testdata/baselines/reference/submodule/compiler/configFileExtendsAsList.js.diff deleted file mode 100644 index ff8c5c2a51..0000000000 --- a/testdata/baselines/reference/submodule/compiler/configFileExtendsAsList.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.configFileExtendsAsList.js -+++ new.configFileExtendsAsList.js -@@= skipped -20, +20 lines =@@ - - //// [index.js] - function f(x) { } // noImplicitAny error --var y; -+let y; - y.toLowerCase(); // strictNullChecks error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conflictMarkerDiff3Trivia1.js.diff b/testdata/baselines/reference/submodule/compiler/conflictMarkerDiff3Trivia1.js.diff index 27d0a5d733..a3dfeaaec1 100644 --- a/testdata/baselines/reference/submodule/compiler/conflictMarkerDiff3Trivia1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/conflictMarkerDiff3Trivia1.js.diff @@ -1,15 +1,11 @@ --- old.conflictMarkerDiff3Trivia1.js +++ new.conflictMarkerDiff3Trivia1.js -@@= skipped -11, +11 lines =@@ - } +@@= skipped -12, +12 lines =@@ //// [conflictMarkerDiff3Trivia1.js] --var C = /** @class */ (function () { -- function C() { + class C { +- constructor() { - this.v = 1; - } -- return C; --}()); -+class C { + v = 1; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conflictMarkerDiff3Trivia2.js.diff b/testdata/baselines/reference/submodule/compiler/conflictMarkerDiff3Trivia2.js.diff deleted file mode 100644 index f75dc0a31e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/conflictMarkerDiff3Trivia2.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.conflictMarkerDiff3Trivia2.js -+++ new.conflictMarkerDiff3Trivia2.js -@@= skipped -18, +18 lines =@@ - - - //// [conflictMarkerDiff3Trivia2.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { -+class C { -+ foo() { - a(); -- }; -- C.prototype.bar = function () { }; -- return C; --}()); -+ } -+ bar() { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia1.js.diff b/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia1.js.diff index de06458013..98c309fb30 100644 --- a/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia1.js.diff @@ -1,15 +1,11 @@ --- old.conflictMarkerTrivia1.js +++ new.conflictMarkerTrivia1.js -@@= skipped -9, +9 lines =@@ - } +@@= skipped -10, +10 lines =@@ //// [conflictMarkerTrivia1.js] --var C = /** @class */ (function () { -- function C() { + class C { +- constructor() { - this.v = 1; - } -- return C; --}()); -+class C { + v = 1; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia2.js.diff b/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia2.js.diff deleted file mode 100644 index 08dd314711..0000000000 --- a/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia2.js.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.conflictMarkerTrivia2.js -+++ new.conflictMarkerTrivia2.js -@@= skipped -15, +15 lines =@@ - - - //// [conflictMarkerTrivia2.js] --var C = /** @class */ (function () { -- function C() { -- } -- C.prototype.foo = function () { -+class C { -+ foo() { - a(); -- }; -- C.prototype.bar = function () { }; -- return C; --}()); -+ } -+ bar() { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia3.js.diff b/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia3.js.diff deleted file mode 100644 index 903d51c962..0000000000 --- a/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia3.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.conflictMarkerTrivia3.js -+++ new.conflictMarkerTrivia3.js -@@= skipped -4, +4 lines =@@ - <<<<<<< HEAD - - //// [conflictMarkerTrivia3.js] --var x =
; -+const x =
; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia4.js.diff b/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia4.js.diff deleted file mode 100644 index c1d5a6b702..0000000000 --- a/testdata/baselines/reference/submodule/compiler/conflictMarkerTrivia4.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.conflictMarkerTrivia4.js -+++ new.conflictMarkerTrivia4.js -@@= skipped -4, +4 lines =@@ - <<<<<<< HEAD - - //// [conflictMarkerTrivia4.js] --var x = ; -+const x = ; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conflictingDeclarationsImportFromNamespace1.js.diff b/testdata/baselines/reference/submodule/compiler/conflictingDeclarationsImportFromNamespace1.js.diff index 5898f1721a..e854b89c8d 100644 --- a/testdata/baselines/reference/submodule/compiler/conflictingDeclarationsImportFromNamespace1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/conflictingDeclarationsImportFromNamespace1.js.diff @@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.pick = void 0; -var pick = require("lodash/pick"); --var pick = function () { return (0, exports.pick)(); }; +const pick = require("lodash/pick"); -+const pick = () => (0, exports.pick)(); + const pick = () => (0, exports.pick)(); exports.pick = pick; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conflictingDeclarationsImportFromNamespace2.js.diff b/testdata/baselines/reference/submodule/compiler/conflictingDeclarationsImportFromNamespace2.js.diff index 008c55192d..018d6fa105 100644 --- a/testdata/baselines/reference/submodule/compiler/conflictingDeclarationsImportFromNamespace2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/conflictingDeclarationsImportFromNamespace2.js.diff @@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.pick = void 0; -var pick = require("lodash/pick"); --var pick = function () { return (0, exports.pick)(); }; +const pick = require("lodash/pick"); -+const pick = () => (0, exports.pick)(); + const pick = () => (0, exports.pick)(); exports.pick = pick; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/conflictingTypeParameterSymbolTransfer.js.diff b/testdata/baselines/reference/submodule/compiler/conflictingTypeParameterSymbolTransfer.js.diff index 3a28111456..a9203fd8cd 100644 --- a/testdata/baselines/reference/submodule/compiler/conflictingTypeParameterSymbolTransfer.js.diff +++ b/testdata/baselines/reference/submodule/compiler/conflictingTypeParameterSymbolTransfer.js.diff @@ -5,97 +5,36 @@ //// [conflictingTypeParameterSymbolTransfer.js] "use strict"; -// @strict --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.C2 = void 0; +// @strict // Via #56620 --var Base = /** @class */ (function () { -- function Base() { -- } -- return Base; --}()); --var C2 = /** @class */ (function (_super) { -- __extends(C2, _super); -- function C2(T) { -- var _this = _super.call(this) || this; -+class Base { -+} -+class C2 extends Base { + class Base { + } + class C2 extends Base { + T; -+ constructor(T) { -+ super(); + constructor(T) { + super(); // Should not error -- _this.T = T; -+ this.T = T; - // Should error -- var a = null; -- return _this; -+ let a = null; - } -- return C2; --}(Base)); -+} - exports.C2 = C2; - // via #56689 --var Leg = /** @class */ (function () { -- function Leg() { -- } -- return Leg; --}()); --var Foo = /** @class */ (function (_super) { -- __extends(Foo, _super); -- function Foo() { -- var _this = _super !== null && _super.apply(this, arguments) || this; -- _this.t = {}; +@@= skipped -20, +21 lines =@@ + class Leg { + } + class Foo extends Leg { +- constructor() { +- super(...arguments); +- this.t = {}; - // should allow this access since t was declared as a property on Foo -- _this.foo = _this.t; -- return _this; +- this.foo = this.t; - } -- return Foo; --}(Leg)); -+class Leg { -+} -+class Foo extends Leg { + t = {}; + // should allow this access since t was declared as a property on Foo + foo = this.t; -+} + } // via #56661 --var BaseClass = /** @class */ (function () { -- function BaseClass() { -- } -- return BaseClass; --}()); --var Item = /** @class */ (function (_super) { -- __extends(Item, _super); -- function Item() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- Item.prototype.getData = function () { -+class BaseClass { -+} -+class Item extends BaseClass { + class BaseClass { + } + class Item extends BaseClass { + data; -+ getData() { + getData() { // should OK - return this.data; -- }; -- return Item; --}(BaseClass)); -+ } -+} \ No newline at end of file + return this.data; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constDeclarationShadowedByVarDeclaration3.js.diff b/testdata/baselines/reference/submodule/compiler/constDeclarationShadowedByVarDeclaration3.js.diff index 64d91f33a4..849d0044e3 100644 --- a/testdata/baselines/reference/submodule/compiler/constDeclarationShadowedByVarDeclaration3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constDeclarationShadowedByVarDeclaration3.js.diff @@ -1,19 +1,14 @@ --- old.constDeclarationShadowedByVarDeclaration3.js +++ new.constDeclarationShadowedByVarDeclaration3.js -@@= skipped -12, +12 lines =@@ - +@@= skipped -13, +13 lines =@@ //// [constDeclarationShadowedByVarDeclaration3.js] // Ensure only checking for const declarations shadowed by vars --var Rule = /** @class */ (function () { -- function Rule(name) { -- this.regex = new RegExp(''); -- this.name = ''; -+class Rule { + class Rule { + regex = new RegExp(''); + name = ''; -+ constructor(name) { + constructor(name) { +- this.regex = new RegExp(''); +- this.name = ''; this.name = name; } -- return Rule; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constDeclarations-es5.js.diff b/testdata/baselines/reference/submodule/compiler/constDeclarations-es5.js.diff deleted file mode 100644 index b4d7ac4b73..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constDeclarations-es5.js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.constDeclarations-es5.js -+++ new.constDeclarations-es5.js -@@= skipped -6, +6 lines =@@ - - - //// [constDeclarations-es5.js] --var z7 = false; --var z8 = 23; --var z9 = 0, z10 = "", z11 = null; -+const z7 = false; -+const z8 = 23; -+const z9 = 0, z10 = "", z11 = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constEnumErrors.js.diff b/testdata/baselines/reference/submodule/compiler/constEnumErrors.js.diff index 41f8b29653..c7af85fde9 100644 --- a/testdata/baselines/reference/submodule/compiler/constEnumErrors.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constEnumErrors.js.diff @@ -28,10 +28,7 @@ var y0 = E2[1]; var name = "A"; var y1 = E2[name]; --var y2 = E2["".concat(name)]; -+var y2 = E2[`${name}`]; - var x = E2; - var y = [E2]; +@@= skipped -11, +30 lines =@@ function foo(t) { } foo(E2); diff --git a/testdata/baselines/reference/submodule/compiler/constEnumMergingWithValues2.js.diff b/testdata/baselines/reference/submodule/compiler/constEnumMergingWithValues2.js.diff index 76daad09ef..0b3a558748 100644 --- a/testdata/baselines/reference/submodule/compiler/constEnumMergingWithValues2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constEnumMergingWithValues2.js.diff @@ -6,11 +6,8 @@ //// [m1.js] -define(["require", "exports"], function (require, exports) { - "use strict"; -- var foo = /** @class */ (function () { -- function foo() { -- } -- return foo; -- }()); +- class foo { +- } - return foo; -}); +"use strict"; diff --git a/testdata/baselines/reference/submodule/compiler/constEnumMergingWithValues5.js.diff b/testdata/baselines/reference/submodule/compiler/constEnumMergingWithValues5.js.diff index 9b43eee018..658f076c28 100644 --- a/testdata/baselines/reference/submodule/compiler/constEnumMergingWithValues5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constEnumMergingWithValues5.js.diff @@ -8,7 +8,7 @@ - "use strict"; - var foo; - (function (foo) { -- var E; +- let E; - (function (E) { - E[E["X"] = 0] = "X"; - })(E || (E = {})); diff --git a/testdata/baselines/reference/submodule/compiler/constEnumNamespaceReferenceCausesNoImport2.js.diff b/testdata/baselines/reference/submodule/compiler/constEnumNamespaceReferenceCausesNoImport2.js.diff index adc9b55ec9..98cdf95b38 100644 --- a/testdata/baselines/reference/submodule/compiler/constEnumNamespaceReferenceCausesNoImport2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constEnumNamespaceReferenceCausesNoImport2.js.diff @@ -1,15 +1,6 @@ --- old.constEnumNamespaceReferenceCausesNoImport2.js +++ new.constEnumNamespaceReferenceCausesNoImport2.js -@@= skipped -27, +27 lines =@@ - exports.ConstEnumOnlyModule = void 0; - var ConstEnumOnlyModule; - (function (ConstEnumOnlyModule) { -- var ConstFooEnum; -+ let ConstFooEnum; - (function (ConstFooEnum) { - ConstFooEnum[ConstFooEnum["Some"] = 0] = "Some"; - ConstFooEnum[ConstFooEnum["Values"] = 1] = "Values"; -@@= skipped -9, +9 lines =@@ +@@= skipped -36, +36 lines =@@ })(ConstEnumOnlyModule || (exports.ConstEnumOnlyModule = ConstEnumOnlyModule = {})); //// [reexport.js] "use strict"; diff --git a/testdata/baselines/reference/submodule/compiler/constEnumToStringNoComments.js.diff b/testdata/baselines/reference/submodule/compiler/constEnumToStringNoComments.js.diff index 9f412de30d..6b3efa9f73 100644 --- a/testdata/baselines/reference/submodule/compiler/constEnumToStringNoComments.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constEnumToStringNoComments.js.diff @@ -4,18 +4,18 @@ //// [constEnumToStringNoComments.js] --var x0 = 100..toString(); --var x1 = 100..toString(); --var y0 = 0.5.toString(); --var y1 = 0.5.toString(); --var z0 = 2..toString(); --var z1 = 2..toString(); --var a0 = (-1).toString(); --var a1 = (-1).toString(); --var b0 = (-1.5).toString(); --var b1 = (-1.5).toString(); --var c0 = (-1).toString(); --var c1 = (-1).toString(); +-let x0 = 100..toString(); +-let x1 = 100..toString(); +-let y0 = 0.5.toString(); +-let y1 = 0.5.toString(); +-let z0 = 2..toString(); +-let z1 = 2..toString(); +-let a0 = (-1).toString(); +-let a1 = (-1).toString(); +-let b0 = (-1.5).toString(); +-let b1 = (-1.5).toString(); +-let c0 = (-1).toString(); +-let c1 = (-1).toString(); +var Foo; +(function (Foo) { + Foo[Foo["X"] = 100] = "X"; diff --git a/testdata/baselines/reference/submodule/compiler/constEnumToStringWithComments.js.diff b/testdata/baselines/reference/submodule/compiler/constEnumToStringWithComments.js.diff index 43f88858eb..767b458cbd 100644 --- a/testdata/baselines/reference/submodule/compiler/constEnumToStringWithComments.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constEnumToStringWithComments.js.diff @@ -4,18 +4,18 @@ //// [constEnumToStringWithComments.js] --var x0 = 100 /* Foo.X */.toString(); --var x1 = 100 /* Foo["X"] */.toString(); --var y0 = 0.5 /* Foo.Y */.toString(); --var y1 = 0.5 /* Foo["Y"] */.toString(); --var z0 = 2 /* Foo.Z */.toString(); --var z1 = 2 /* Foo["Z"] */.toString(); --var a0 = (-1 /* Foo.A */).toString(); --var a1 = (-1 /* Foo["A"] */).toString(); --var b0 = (-1.5 /* Foo.B */).toString(); --var b1 = (-1.5 /* Foo["B"] */).toString(); --var c0 = (-1 /* Foo.C */).toString(); --var c1 = (-1 /* Foo["C"] */).toString(); +-let x0 = 100 /* Foo.X */.toString(); +-let x1 = 100 /* Foo["X"] */.toString(); +-let y0 = 0.5 /* Foo.Y */.toString(); +-let y1 = 0.5 /* Foo["Y"] */.toString(); +-let z0 = 2 /* Foo.Z */.toString(); +-let z1 = 2 /* Foo["Z"] */.toString(); +-let a0 = (-1 /* Foo.A */).toString(); +-let a1 = (-1 /* Foo["A"] */).toString(); +-let b0 = (-1.5 /* Foo.B */).toString(); +-let b1 = (-1.5 /* Foo["B"] */).toString(); +-let c0 = (-1 /* Foo.C */).toString(); +-let c1 = (-1 /* Foo["C"] */).toString(); +var Foo; +(function (Foo) { + Foo[Foo["X"] = 100] = "X"; diff --git a/testdata/baselines/reference/submodule/compiler/constEnums.js.diff b/testdata/baselines/reference/submodule/compiler/constEnums.js.diff index 8c47cc9f96..cdea6712b7 100644 --- a/testdata/baselines/reference/submodule/compiler/constEnums.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constEnums.js.diff @@ -56,14 +56,8 @@ +})(Comments || (Comments = {})); var A2; (function (A2) { -- var B; -+ let B; - (function (B) { - // module C will be classified as value -- var C; -+ let C; - (function (C) { - var x = 1; + let B; +@@= skipped -11, +61 lines =@@ })(C = B.C || (B.C = {})); })(B = A2.B || (A2.B = {})); })(A2 || (A2 = {})); diff --git a/testdata/baselines/reference/submodule/compiler/constInClassExpression.js.diff b/testdata/baselines/reference/submodule/compiler/constInClassExpression.js.diff index 1df340f7cf..7229d3b99c 100644 --- a/testdata/baselines/reference/submodule/compiler/constInClassExpression.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constInClassExpression.js.diff @@ -1,15 +1,11 @@ --- old.constInClassExpression.js +++ new.constInClassExpression.js -@@= skipped -6, +6 lines =@@ - +@@= skipped -7, +7 lines =@@ //// [constInClassExpression.js] --var C = /** @class */ (function () { -- function class_1() { + let C = class { +- constructor() { - this.a = 4; - } -- return class_1; --}()); -+let C = class { + a = 4; -+}; \ No newline at end of file + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constIndexedAccess.js.diff b/testdata/baselines/reference/submodule/compiler/constIndexedAccess.js.diff index 7255688408..09dea1372e 100644 --- a/testdata/baselines/reference/submodule/compiler/constIndexedAccess.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constIndexedAccess.js.diff @@ -4,31 +4,22 @@ //// [constIndexedAccess.js] --var test; --var s = test[0]; --var n = test[1]; --var s1 = test[0 /* numbers.zero */]; --var n1 = test[1 /* numbers.one */]; --var s2 = test[0 /* numbers["zero"] */]; --var n2 = test[1 /* numbers["one"] */]; +var numbers; +(function (numbers) { + numbers[numbers["zero"] = 0] = "zero"; + numbers[numbers["one"] = 1] = "one"; +})(numbers || (numbers = {})); -+let test; -+let s = test[0]; -+let n = test[1]; + let test; + let s = test[0]; + let n = test[1]; +-let s1 = test[0 /* numbers.zero */]; +-let n1 = test[1 /* numbers.one */]; +-let s2 = test[0 /* numbers["zero"] */]; +-let n2 = test[1 /* numbers["one"] */]; +let s1 = test[numbers.zero]; +let n1 = test[numbers.one]; +let s2 = test[numbers["zero"]]; +let n2 = test[numbers["one"]]; var numbersNotConst; (function (numbersNotConst) { - numbersNotConst[numbersNotConst["zero"] = 0] = "zero"; - numbersNotConst[numbersNotConst["one"] = 1] = "one"; - })(numbersNotConst || (numbersNotConst = {})); --var s3 = test[numbersNotConst.zero]; --var n3 = test[numbersNotConst.one]; -+let s3 = test[numbersNotConst.zero]; -+let n3 = test[numbersNotConst.one]; \ No newline at end of file + numbersNotConst[numbersNotConst["zero"] = 0] = "zero"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constantEnumAssert.js.diff b/testdata/baselines/reference/submodule/compiler/constantEnumAssert.js.diff index e76c05558f..6c6d943fff 100644 --- a/testdata/baselines/reference/submodule/compiler/constantEnumAssert.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constantEnumAssert.js.diff @@ -4,37 +4,24 @@ E3[E3["b"] = 2] = "b"; E3[E3["c"] = 4] = "c"; })(E3 || (E3 = {})); --var E5 = { +var E4; +(function (E4) { + E4[E4["a"] = 0] = "a"; + E4[E4["b"] = 1] = "b"; +})(E4 || (E4 = {})); -+const E5 = { + const E5 = { a: 'a', b: 'b' - }; --var foo1 = { a: E1.a }; --var foo2 = { a: E2.a }; --var foo3 = { a: E1.a }; --var foo4 = { a: E2.a }; --var foo5 = { a: E3.a }; --var foo6 = { a: 0 /* E4.a */ }; --var foo7 = { a: E5.a }; --var foo8 = { a: E1.a }; --var foo9 = { a: E2.a }; --var foo10 = { a: E3.a }; --var foo11 = { a: 0 /* E4.a */ }; --var foo12 = { a: E5.a }; -+const foo1 = { a: E1.a }; -+const foo2 = { a: E2.a }; -+const foo3 = { a: E1.a }; -+const foo4 = { a: E2.a }; -+const foo5 = { a: E3.a }; +@@= skipped -9, +14 lines =@@ + const foo3 = { a: E1.a }; + const foo4 = { a: E2.a }; + const foo5 = { a: E3.a }; +-const foo6 = { a: 0 /* E4.a */ }; +const foo6 = { a: E4.a }; -+const foo7 = { a: E5.a }; -+const foo8 = { a: E1.a }; -+const foo9 = { a: E2.a }; -+const foo10 = { a: E3.a }; + const foo7 = { a: E5.a }; + const foo8 = { a: E1.a }; + const foo9 = { a: E2.a }; + const foo10 = { a: E3.a }; +-const foo11 = { a: 0 /* E4.a */ }; +const foo11 = { a: E4.a }; -+const foo12 = { a: E5.a }; \ No newline at end of file + const foo12 = { a: E5.a }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constantOverloadFunction.js.diff b/testdata/baselines/reference/submodule/compiler/constantOverloadFunction.js.diff deleted file mode 100644 index 229e189327..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constantOverloadFunction.js.diff +++ /dev/null @@ -1,66 +0,0 @@ ---- old.constantOverloadFunction.js -+++ new.constantOverloadFunction.js -@@= skipped -15, +15 lines =@@ - - - //// [constantOverloadFunction.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Base = /** @class */ (function () { -- function Base() { -- } -- Base.prototype.foo = function () { }; -- return Base; --}()); --var Derived1 = /** @class */ (function (_super) { -- __extends(Derived1, _super); -- function Derived1() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- Derived1.prototype.bar = function () { }; -- return Derived1; --}(Base)); --var Derived2 = /** @class */ (function (_super) { -- __extends(Derived2, _super); -- function Derived2() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- Derived2.prototype.baz = function () { }; -- return Derived2; --}(Base)); --var Derived3 = /** @class */ (function (_super) { -- __extends(Derived3, _super); -- function Derived3() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- Derived3.prototype.biz = function () { }; -- return Derived3; --}(Base)); -+class Base { -+ foo() { } -+} -+class Derived1 extends Base { -+ bar() { } -+} -+class Derived2 extends Base { -+ baz() { } -+} -+class Derived3 extends Base { -+ biz() { } -+} - function foo(tagName) { - return null; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constantOverloadFunctionNoSubtypeError.js.diff b/testdata/baselines/reference/submodule/compiler/constantOverloadFunctionNoSubtypeError.js.diff deleted file mode 100644 index 35cbdf0588..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constantOverloadFunctionNoSubtypeError.js.diff +++ /dev/null @@ -1,66 +0,0 @@ ---- old.constantOverloadFunctionNoSubtypeError.js -+++ new.constantOverloadFunctionNoSubtypeError.js -@@= skipped -16, +16 lines =@@ - - - //// [constantOverloadFunctionNoSubtypeError.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Base = /** @class */ (function () { -- function Base() { -- } -- Base.prototype.foo = function () { }; -- return Base; --}()); --var Derived1 = /** @class */ (function (_super) { -- __extends(Derived1, _super); -- function Derived1() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- Derived1.prototype.bar = function () { }; -- return Derived1; --}(Base)); --var Derived2 = /** @class */ (function (_super) { -- __extends(Derived2, _super); -- function Derived2() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- Derived2.prototype.baz = function () { }; -- return Derived2; --}(Base)); --var Derived3 = /** @class */ (function (_super) { -- __extends(Derived3, _super); -- function Derived3() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- Derived3.prototype.biz = function () { }; -- return Derived3; --}(Base)); -+class Base { -+ foo() { } -+} -+class Derived1 extends Base { -+ bar() { } -+} -+class Derived2 extends Base { -+ baz() { } -+} -+class Derived3 extends Base { -+ biz() { } -+} - function foo(tagName) { - return null; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constraintCheckInGenericBaseTypeReference.js.diff b/testdata/baselines/reference/submodule/compiler/constraintCheckInGenericBaseTypeReference.js.diff index 7aeeeab654..fb85053d67 100644 --- a/testdata/baselines/reference/submodule/compiler/constraintCheckInGenericBaseTypeReference.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constraintCheckInGenericBaseTypeReference.js.diff @@ -1,67 +1,16 @@ --- old.constraintCheckInGenericBaseTypeReference.js +++ new.constraintCheckInGenericBaseTypeReference.js -@@= skipped -21, +21 lines =@@ +@@= skipped -26, +26 lines =@@ + method() { } } - - //// [constraintCheckInGenericBaseTypeReference.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - // No errors --var Constraint = /** @class */ (function () { -- function Constraint() { -- } -- Constraint.prototype.method = function () { }; -- return Constraint; --}()); --var GenericBase = /** @class */ (function () { -- function GenericBase() { -- } -- return GenericBase; --}()); --var Derived = /** @class */ (function (_super) { -- __extends(Derived, _super); -- function Derived() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return Derived; --}(GenericBase)); --var TypeArg = /** @class */ (function () { -- function TypeArg() { -- } -- TypeArg.prototype.method = function () { -+class Constraint { -+ method() { } -+} -+class GenericBase { + class GenericBase { + items; -+} -+class Derived extends GenericBase { -+} -+class TypeArg { -+ method() { - Container.People.items; -- }; -- return TypeArg; --}()); --var Container = /** @class */ (function () { -- function Container() { + } + class Derived extends GenericBase { + } +@@= skipped -9, +10 lines =@@ } -- return Container; --}()); -+} -+class Container { + } + class Container { + static People; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constraintsThatReferenceOtherContstraints1.js.diff b/testdata/baselines/reference/submodule/compiler/constraintsThatReferenceOtherContstraints1.js.diff index 46929e531b..0c8a35029b 100644 --- a/testdata/baselines/reference/submodule/compiler/constraintsThatReferenceOtherContstraints1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constraintsThatReferenceOtherContstraints1.js.diff @@ -1,22 +1,9 @@ --- old.constraintsThatReferenceOtherContstraints1.js +++ new.constraintsThatReferenceOtherContstraints1.js -@@= skipped -11, +11 lines =@@ - - - //// [constraintsThatReferenceOtherContstraints1.js] --var Foo = /** @class */ (function () { -- function Foo() { -- } -- return Foo; --}()); --var Bar = /** @class */ (function () { -- function Bar() { -- } -- return Bar; --}()); -+class Foo { -+} -+class Bar { +@@= skipped -14, +14 lines =@@ + class Foo { + } + class Bar { + data; // Error 1 Type 'Object' does not satisfy the constraint 'T' for type parameter 'U extends T'. -+} + } var x; // Error 2 Type '{ a: string; b: number; }' does not satisfy the constraint 'T' for type \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constraintsUsedInPrototypeProperty.js.diff b/testdata/baselines/reference/submodule/compiler/constraintsUsedInPrototypeProperty.js.diff deleted file mode 100644 index 95b3bd13ba..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constraintsUsedInPrototypeProperty.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.constraintsUsedInPrototypeProperty.js -+++ new.constraintsUsedInPrototypeProperty.js -@@= skipped -4, +4 lines =@@ - Foo.prototype; // Foo - - //// [constraintsUsedInPrototypeProperty.js] --var Foo = /** @class */ (function () { -- function Foo() { -- } -- return Foo; --}()); -+class Foo { -+} - Foo.prototype; // Foo \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorArgWithGenericCallSignature.js.diff b/testdata/baselines/reference/submodule/compiler/constructorArgWithGenericCallSignature.js.diff deleted file mode 100644 index f626436931..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorArgWithGenericCallSignature.js.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.constructorArgWithGenericCallSignature.js -+++ new.constructorArgWithGenericCallSignature.js -@@= skipped -18, +18 lines =@@ - //// [constructorArgWithGenericCallSignature.js] - var Test; - (function (Test) { -- var MyClass = /** @class */ (function () { -- function MyClass(func) { -- } -- return MyClass; -- }()); -+ class MyClass { -+ constructor(func) { } -+ } - Test.MyClass = MyClass; - function F(func) { } - Test.F = F; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorArgs.js.diff b/testdata/baselines/reference/submodule/compiler/constructorArgs.js.diff index 03d43cd3fc..4fff0e4688 100644 --- a/testdata/baselines/reference/submodule/compiler/constructorArgs.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constructorArgs.js.diff @@ -1,46 +1,10 @@ --- old.constructorArgs.js +++ new.constructorArgs.js -@@= skipped -17, +17 lines =@@ - - - //// [constructorArgs.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Super = /** @class */ (function () { -- function Super(value) { -- } -- return Super; --}()); --var Sub = /** @class */ (function (_super) { -- __extends(Sub, _super); -- function Sub(options) { -- var _this = _super.call(this, options.value) || this; -- _this.options = options; -- return _this; -- } -- return Sub; --}(Super)); -+class Super { -+ constructor(value) { -+ } -+} -+class Sub extends Super { +@@= skipped -22, +22 lines =@@ + } + } + class Sub extends Super { + options; -+ constructor(options) { -+ super(options.value); -+ this.options = options; -+ } -+} \ No newline at end of file + constructor(options) { + super(options.value); + this.options = options; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorArgsErrors1.js.diff b/testdata/baselines/reference/submodule/compiler/constructorArgsErrors1.js.diff deleted file mode 100644 index 006a885b8f..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorArgsErrors1.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.constructorArgsErrors1.js -+++ new.constructorArgsErrors1.js -@@= skipped -6, +6 lines =@@ - } - - //// [constructorArgsErrors1.js] --var foo = /** @class */ (function () { -- function foo(a) { -+class foo { -+ constructor(a) { - } -- return foo; --}()); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorArgsErrors2.js.diff b/testdata/baselines/reference/submodule/compiler/constructorArgsErrors2.js.diff index 0b173cac65..2b611336db 100644 --- a/testdata/baselines/reference/submodule/compiler/constructorArgsErrors2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constructorArgsErrors2.js.diff @@ -1,16 +1,10 @@ --- old.constructorArgsErrors2.js +++ new.constructorArgsErrors2.js -@@= skipped -7, +7 lines =@@ - +@@= skipped -8, +8 lines =@@ //// [constructorArgsErrors2.js] --var foo = /** @class */ (function () { -- function foo(a) { -+class foo { + class foo { + a; -+ constructor(a) { + constructor(a) { this.a = a; - } -- return foo; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorArgsErrors3.js.diff b/testdata/baselines/reference/submodule/compiler/constructorArgsErrors3.js.diff index 52d94ffae1..172d56a575 100644 --- a/testdata/baselines/reference/submodule/compiler/constructorArgsErrors3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constructorArgsErrors3.js.diff @@ -1,16 +1,10 @@ --- old.constructorArgsErrors3.js +++ new.constructorArgsErrors3.js -@@= skipped -7, +7 lines =@@ - +@@= skipped -8, +8 lines =@@ //// [constructorArgsErrors3.js] --var foo = /** @class */ (function () { -- function foo(a) { -+class foo { + class foo { + a; -+ constructor(a) { + constructor(a) { this.a = a; - } -- return foo; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorArgsErrors4.js.diff b/testdata/baselines/reference/submodule/compiler/constructorArgsErrors4.js.diff index 9774b45742..d239fc6d30 100644 --- a/testdata/baselines/reference/submodule/compiler/constructorArgsErrors4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constructorArgsErrors4.js.diff @@ -1,16 +1,10 @@ --- old.constructorArgsErrors4.js +++ new.constructorArgsErrors4.js -@@= skipped -7, +7 lines =@@ - +@@= skipped -8, +8 lines =@@ //// [constructorArgsErrors4.js] --var foo = /** @class */ (function () { -- function foo(a) { -+class foo { + class foo { + a; -+ constructor(a) { + constructor(a) { this.a = a; - } -- return foo; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorArgsErrors5.js.diff b/testdata/baselines/reference/submodule/compiler/constructorArgsErrors5.js.diff deleted file mode 100644 index db7cf1d946..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorArgsErrors5.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.constructorArgsErrors5.js -+++ new.constructorArgsErrors5.js -@@= skipped -7, +7 lines =@@ - - - //// [constructorArgsErrors5.js] --var foo = /** @class */ (function () { -- function foo(a) { -+class foo { -+ constructor(a) { - } -- return foo; --}()); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorInvocationWithTooFewTypeArgs.js.diff b/testdata/baselines/reference/submodule/compiler/constructorInvocationWithTooFewTypeArgs.js.diff index 157420a9f5..9595f07bac 100644 --- a/testdata/baselines/reference/submodule/compiler/constructorInvocationWithTooFewTypeArgs.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constructorInvocationWithTooFewTypeArgs.js.diff @@ -1,16 +1,10 @@ --- old.constructorInvocationWithTooFewTypeArgs.js +++ new.constructorInvocationWithTooFewTypeArgs.js -@@= skipped -12, +12 lines =@@ - +@@= skipped -13, +13 lines =@@ //// [constructorInvocationWithTooFewTypeArgs.js] --var D = /** @class */ (function () { -- function D() { -- } -- return D; --}()); -+class D { + class D { + x; + y; -+} + } var d = new D(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorOverloads1.js.diff b/testdata/baselines/reference/submodule/compiler/constructorOverloads1.js.diff deleted file mode 100644 index a63fb11010..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorOverloads1.js.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.constructorOverloads1.js -+++ new.constructorOverloads1.js -@@= skipped -23, +23 lines =@@ - - - //// [constructorOverloads1.js] --var Foo = /** @class */ (function () { -- function Foo(x) { -- } -- Foo.prototype.bar1 = function () { }; -- Foo.prototype.bar2 = function () { }; -- return Foo; --}()); -+class Foo { -+ constructor(x) { -+ } -+ constructor(x) { -+ } -+ bar1() { } -+ bar2() { } -+} - var f1 = new Foo("hey"); - var f2 = new Foo(0); - var f3 = new Foo(f1); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorOverloads2.js.diff b/testdata/baselines/reference/submodule/compiler/constructorOverloads2.js.diff deleted file mode 100644 index 58a06f9fef..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorOverloads2.js.diff +++ /dev/null @@ -1,49 +0,0 @@ ---- old.constructorOverloads2.js -+++ new.constructorOverloads2.js -@@= skipped -27, +27 lines =@@ - - - //// [constructorOverloads2.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var FooBase = /** @class */ (function () { -- function FooBase(x) { -- } -- FooBase.prototype.bar1 = function () { }; -- return FooBase; --}()); --var Foo = /** @class */ (function (_super) { -- __extends(Foo, _super); -- function Foo(x, y) { -- return _super.call(this, x) || this; -- } -- Foo.prototype.bar1 = function () { }; -- return Foo; --}(FooBase)); -+class FooBase { -+ constructor(x) { -+ } -+ bar1() { } -+} -+class Foo extends FooBase { -+ constructor(x, y) { -+ super(x); -+ } -+ bar1() { } -+} - var f1 = new Foo("hey"); - var f2 = new Foo(0); - var f3 = new Foo(f1); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorOverloads3.js.diff b/testdata/baselines/reference/submodule/compiler/constructorOverloads3.js.diff deleted file mode 100644 index cc97d8fbd5..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorOverloads3.js.diff +++ /dev/null @@ -1,37 +0,0 @@ ---- old.constructorOverloads3.js -+++ new.constructorOverloads3.js -@@= skipped -24, +24 lines =@@ - - - //// [constructorOverloads3.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var Foo = /** @class */ (function (_super) { -- __extends(Foo, _super); -- function Foo(x, y) { -- var _this = this; -- return _this; -- } -- Foo.prototype.bar1 = function () { }; -- return Foo; --}(FooBase)); -+class Foo extends FooBase { -+ constructor(x, y) { } -+ bar1() { } -+} - var f1 = new Foo("hey"); - var f2 = new Foo(0); - var f3 = new Foo(f1); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorOverloads8.js.diff b/testdata/baselines/reference/submodule/compiler/constructorOverloads8.js.diff deleted file mode 100644 index d817d0940f..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorOverloads8.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.constructorOverloads8.js -+++ new.constructorOverloads8.js -@@= skipped -17, +17 lines =@@ - } - - //// [constructorOverloads8.js] --var C = /** @class */ (function () { -- function C(x) { -- } -- return C; --}()); --var D = /** @class */ (function () { -- function D(x) { -- } -- return D; --}()); -+class C { -+ constructor(x) { } -+ constructor(y, x) { } // illegal, 2 constructor implementations -+} -+class D { -+ constructor(x) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorParametersInVariableDeclarations.js.diff b/testdata/baselines/reference/submodule/compiler/constructorParametersInVariableDeclarations.js.diff index 8070775458..241de5921f 100644 --- a/testdata/baselines/reference/submodule/compiler/constructorParametersInVariableDeclarations.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constructorParametersInVariableDeclarations.js.diff @@ -1,35 +1,26 @@ --- old.constructorParametersInVariableDeclarations.js +++ new.constructorParametersInVariableDeclarations.js -@@= skipped -18, +18 lines =@@ - } +@@= skipped -19, +19 lines =@@ //// [constructorParametersInVariableDeclarations.js] --var A = /** @class */ (function () { -- function A(x) { -- this.a = x; -- this.b = { p: x }; -- this.c = function () { return x; }; -+class A { + class A { + a = x; + b = { p: x }; + c = () => x; -+ constructor(x) { - } -- return A; --}()); --var B = /** @class */ (function () { -- function B() { + constructor(x) { - this.a = x; - this.b = { p: x }; -- this.c = function () { return x; }; -+} -+class B { +- this.c = () => x; + } + } + class B { + a = x; + b = { p: x }; + c = () => x; -+ constructor() { + constructor() { +- this.a = x; +- this.b = { p: x }; +- this.c = () => x; var x = 1; } -- return B; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorParametersThatShadowExternalNamesInVariableDeclarations.js.diff b/testdata/baselines/reference/submodule/compiler/constructorParametersThatShadowExternalNamesInVariableDeclarations.js.diff index 121e39621a..7aef3cb751 100644 --- a/testdata/baselines/reference/submodule/compiler/constructorParametersThatShadowExternalNamesInVariableDeclarations.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constructorParametersThatShadowExternalNamesInVariableDeclarations.js.diff @@ -1,27 +1,18 @@ --- old.constructorParametersThatShadowExternalNamesInVariableDeclarations.js +++ new.constructorParametersThatShadowExternalNamesInVariableDeclarations.js -@@= skipped -16, +16 lines =@@ - +@@= skipped -17, +17 lines =@@ //// [constructorParametersThatShadowExternalNamesInVariableDeclarations.js] var x = 1; --var A = /** @class */ (function () { -- function A(x) { -- this.a = x; -+class A { + class A { + a = x; -+ constructor(x) { - } -- return A; --}()); --var B = /** @class */ (function () { -- function B() { + constructor(x) { - this.a = x; -+} -+class B { + } + } + class B { + a = x; -+ constructor() { + constructor() { +- this.a = x; var x = ""; } -- return B; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorReturningAPrimitive.js.diff b/testdata/baselines/reference/submodule/compiler/constructorReturningAPrimitive.js.diff deleted file mode 100644 index 849947814d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorReturningAPrimitive.js.diff +++ /dev/null @@ -1,27 +0,0 @@ ---- old.constructorReturningAPrimitive.js -+++ new.constructorReturningAPrimitive.js -@@= skipped -23, +23 lines =@@ - //// [constructorReturningAPrimitive.js] - // technically not allowed by JavaScript but we don't have a 'not-primitive' constraint - // functionally only possible when your class is otherwise devoid of members so of little consequence in practice --var A = /** @class */ (function () { -- function A() { -+class A { -+ constructor() { - return 1; - } -- return A; --}()); -+} - var a = new A(); --var B = /** @class */ (function () { -- function B() { -+class B { -+ constructor() { - var x; - return x; - } -- return B; --}()); -+} - var b = new B(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorReturnsInvalidType.js.diff b/testdata/baselines/reference/submodule/compiler/constructorReturnsInvalidType.js.diff deleted file mode 100644 index f8bc33d896..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorReturnsInvalidType.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.constructorReturnsInvalidType.js -+++ new.constructorReturnsInvalidType.js -@@= skipped -11, +11 lines =@@ - - - //// [constructorReturnsInvalidType.js] --var X = /** @class */ (function () { -- function X() { -+class X { -+ constructor() { - return 1; - } -- X.prototype.foo = function () { }; -- return X; --}()); -+ foo() { } -+} - var x = new X(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorStaticParamName.js.diff b/testdata/baselines/reference/submodule/compiler/constructorStaticParamName.js.diff deleted file mode 100644 index 1e84f9e054..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorStaticParamName.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.constructorStaticParamName.js -+++ new.constructorStaticParamName.js -@@= skipped -9, +9 lines =@@ - - //// [constructorStaticParamName.js] - // static as constructor parameter name should only give error if 'use strict' --var test = /** @class */ (function () { -- function test(static) { -- } -- return test; --}()); -+class test { -+ constructor(static) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorStaticParamNameErrors.js.diff b/testdata/baselines/reference/submodule/compiler/constructorStaticParamNameErrors.js.diff deleted file mode 100644 index dbb83953e8..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorStaticParamNameErrors.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.constructorStaticParamNameErrors.js -+++ new.constructorStaticParamNameErrors.js -@@= skipped -9, +9 lines =@@ - //// [constructorStaticParamNameErrors.js] - 'use strict'; - // static as constructor parameter name should give error if 'use strict' --var test = /** @class */ (function () { -- function test(static) { -- } -- return test; --}()); -+class test { -+ constructor(static) { } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorWithCapturedSuper.js.diff b/testdata/baselines/reference/submodule/compiler/constructorWithCapturedSuper.js.diff deleted file mode 100644 index da46d52180..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorWithCapturedSuper.js.diff +++ /dev/null @@ -1,112 +0,0 @@ ---- old.constructorWithCapturedSuper.js -+++ new.constructorWithCapturedSuper.js -@@= skipped -54, +54 lines =@@ - } - - //// [constructorWithCapturedSuper.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var oneA; --var A = /** @class */ (function () { -- function A() { -+let oneA; -+class A { -+ constructor() { - return oneA; - } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B(x) { -- var _this = _super.call(this) || this; -+} -+class B extends A { -+ constructor(x) { -+ super(); - if (x === 1) { -- return _this; -+ return; - } - while (x < 2) { -- return _this; -+ return; - } - try { -- return _this; -+ return; - } - catch (e) { -- return _this; -+ return; - } - finally { -- return _this; -+ return; - } -- return _this; - } -- return B; --}(A)); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C(x) { -- var _this = _super.call(this) || this; -- var _loop_1 = function (i) { -- (function () { return i + x; }); -+} -+class C extends A { -+ constructor(x) { -+ super(); -+ for (let i = 0; i < 10; ++i) { -+ () => i + x; - if (x === 1) { -- return { value: _this }; -+ return; - } -+ } -+ } -+} -+class D extends A { -+ constructor(x) { -+ super(); -+ () => { -+ return; - }; -- for (var i = 0; i < 10; ++i) { -- var state_1 = _loop_1(i); -- if (typeof state_1 === "object") -- return state_1.value; -- } -- return _this; -- } -- return C; --}(A)); --var D = /** @class */ (function (_super) { -- __extends(D, _super); -- function D(x) { -- var _this = _super.call(this) || this; -- (function () { -- return; -- }); - function foo() { - return; - } -- return _this; - } -- return D; --}(A)); -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorWithIncompleteTypeAnnotation.js.diff b/testdata/baselines/reference/submodule/compiler/constructorWithIncompleteTypeAnnotation.js.diff index 599fac25db..d1a4296c99 100644 --- a/testdata/baselines/reference/submodule/compiler/constructorWithIncompleteTypeAnnotation.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constructorWithIncompleteTypeAnnotation.js.diff @@ -4,39 +4,18 @@ //// [constructorWithIncompleteTypeAnnotation.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); -var fs = module; ("fs"); var TypeScriptAllInOne; (function (TypeScriptAllInOne) { -- var Program = /** @class */ (function () { -- function Program() { + class Program { +- constructor() { - this.case = bfs.STATEMENTS(4); - } -- Program.Main = function () { -- var args = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- args[_i] = arguments[_i]; -- } -+ class Program { -+ static Main(...args) { + static Main(...args) { try { var bfs = new BasicFeatures(); - var retValue = 0; +@@= skipped -15, +11 lines =@@ retValue = bfs.VARIABLES(); if (retValue != 0) ^= { @@ -46,73 +25,12 @@ } finally { } -- }; -- Program.prototype.if = function (retValue) { }; -- return Program; -- }()); -+ } + } + case = bfs.STATEMENTS(4); -+ if(retValue) { } -+ } + if(retValue) { } + } TypeScriptAllInOne.Program = Program; - != 0; - { -@@= skipped -70, +47 lines =@@ - console.log('Done'); - return 0; - })(TypeScriptAllInOne || (TypeScriptAllInOne = {})); --var BasicFeatures = /** @class */ (function () { -- function BasicFeatures() { -- } -+class BasicFeatures { - /// - /// Test various of variables. Including nullable,key world as variable,special format - /// - /// -- BasicFeatures.prototype.VARIABLES = function () { -+ VARIABLES() { - var local = Number.MAX_VALUE; - var min = Number.MIN_VALUE; - var inf = Number.NEGATIVE_INFINITY - -@@= skipped -24, +22 lines =@@ - ; - var quoted = '"', quoted2 = "'"; - var reg = /\w*/; -- var objLit = { "var": number = 42, equals: function (x) { return x["var"] === 42; }, instanceof: function () { return 'objLit{42}'; } }; -+ var objLit = { "var": number = 42, equals: function (x) { return x["var"] === 42; }, instanceof: () => 'objLit{42}' }; - var weekday = Weekdays.Monday; - var con = char + f + hexchar + float.toString() + float2.toString() + reg.toString() + objLit + weekday; - // -@@= skipped -26, +26 lines =@@ - var yield = 0; - var sum3 = any + bool + declare + constructor + get + implements + interface + let + module + number + package + private + protected + public + set + static + string + yield; - return 0; -- }; -+ } - /// - /// Test different statements. Including if-else,swith,foreach,(un)checked,lock,using,try-catch-finally - /// - /// - /// -- BasicFeatures.prototype.STATEMENTS = function (i) { -+ STATEMENTS(i) { - var retVal = 0; - if (i == 1) - retVal = 1; -@@= skipped -36, +36 lines =@@ - catch (Exception) { } - } - return retVal; -- }; -+ } - /// - /// Test types in ts language. Including class,struct,interface,delegate,anonymous type - /// - /// -- BasicFeatures.prototype.TYPES = function () { -+ TYPES() { - var retVal = 0; - var c = new CLASS(); +@@= skipped -130, +131 lines =@@ var xx = c; retVal += ; try { } @@ -121,98 +39,25 @@ Property; retVal += c.Member(); retVal += xx.Foo() ? 0 : 1; -@@= skipped -19, +19 lines =@@ - var anony = { a: new CLASS() }; - retVal += anony.a.d(); - return retVal; -- }; -+ } - ///// - ///// Test different operators - ///// - ///// -- BasicFeatures.prototype.OPERATOR = function () { -+ OPERATOR() { - var a = [1, 2, 3, 4, 5,]; /*[] bug*/ // YES [] - var i = a[1]; /*[]*/ - i = i + i - i * i / i % i & i | i ^ i; /*+ - * / % & | ^*/ -@@= skipped -37, +37 lines =@@ - return 0; - else - return 1; -- }; -- return BasicFeatures; --}()); --var CLASS = /** @class */ (function () { -- function CLASS() { -- this.d = function () { yield 0; }; +@@= skipped -48, +48 lines =@@ } -- Object.defineProperty(CLASS.prototype, "Property", { -- get: function () { return 0; }, -- enumerable: false, -- configurable: true -- }); -- CLASS.prototype.Member = function () { -+} -+class CLASS { + } + class CLASS { +- constructor() { +- this.d = () => { yield 0; }; +- } + d = () => { yield 0; }; -+ get Property() { return 0; } -+ Member() { + get Property() { return 0; } + Member() { return 0; -- }; -- CLASS.prototype.Foo = function () { -- var myEvent = function () { return 1; }; -+ } -+ Foo() { -+ var myEvent = () => { return 1; }; - if (myEvent() == 1) - return true ? - : - ; - else - return false; -- }; -- return CLASS; --}()); -+ } -+} - // todo: use these --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); -+class A { -+} - method1(val, number); - { - return val; -@@= skipped -40, +29 lines =@@ - { - return 2 * this.method1(2); +@@= skipped -34, +32 lines =@@ + } } --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- B.prototype.method2 = function () { -+class B extends A { -+ method2() { - return this.method1(2); -- }; -- return B; --}(A)); --var Overloading = /** @class */ (function () { -- function Overloading() { + class Overloading { +- constructor() { - this.otherValue = 42; - } -- return Overloading; --}()); -+} -+class Overloading { +- } + otherValue = 42; -+} + } Overloads(value, string); - Overloads(); - while () \ No newline at end of file + Overloads(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorWithSuperAndPrologue.es5.js.diff b/testdata/baselines/reference/submodule/compiler/constructorWithSuperAndPrologue.es5.js.diff index ac9973ed36..68182998cf 100644 --- a/testdata/baselines/reference/submodule/compiler/constructorWithSuperAndPrologue.es5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/constructorWithSuperAndPrologue.es5.js.diff @@ -1,44 +1,10 @@ --- old.constructorWithSuperAndPrologue.es5.js +++ new.constructorWithSuperAndPrologue.es5.js -@@= skipped -21, +21 lines =@@ - //// [constructorWithSuperAndPrologue.es5.js] - // https://github.com/microsoft/TypeScript/issues/48761 - "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -+class A { -+ constructor() { - console.log("A"); - } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -+} -+class B extends A { -+ constructor() { -+ "ngInject"; +@@= skipped -29, +29 lines =@@ + class B extends A { + constructor() { "ngInject"; ++ "ngInject"; console.log("B"); -- return _super.call(this) || this; -+ super(); - } -- return B; --}(A)); -+} \ No newline at end of file + super(); + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/constructorsWithSpecializedSignatures.js.diff b/testdata/baselines/reference/submodule/compiler/constructorsWithSpecializedSignatures.js.diff deleted file mode 100644 index 1cd432aa8b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/constructorsWithSpecializedSignatures.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.constructorsWithSpecializedSignatures.js -+++ new.constructorsWithSpecializedSignatures.js -@@= skipped -46, +46 lines =@@ - - //// [constructorsWithSpecializedSignatures.js] - // errors --var D = /** @class */ (function () { -- function D(x) { -- } -- return D; --}()); -+class D { -+ constructor(x) { } -+} - // overloads are ok --var D2 = /** @class */ (function () { -- function D2(x) { -- } // error -- return D2; --}()); -+class D2 { -+ constructor(x) { } // error -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextSensitiveReturnTypeInference.js.diff b/testdata/baselines/reference/submodule/compiler/contextSensitiveReturnTypeInference.js.diff index f87efbb327..e92610a536 100644 --- a/testdata/baselines/reference/submodule/compiler/contextSensitiveReturnTypeInference.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextSensitiveReturnTypeInference.js.diff @@ -6,46 +6,6 @@ //// [contextSensitiveReturnTypeInference.js] -"use strict"; -// Repro from #34849 --var DEPS = { -+const DEPS = { + const DEPS = { foo: 1 - }; --test(function (deps, data) { return ({ -- fn1: function () { return deps.foo; }, -- fn2: data.bar --}); }, DEPS); --test(function (deps, data) { return ({ -- fn1: function () { return deps.foo; }, -- fn2: data.bar --}); }, DEPS); --test(function (deps, data) { return ({ -- fn1: function () { return deps.foo; }, -- fn2: data.bar --}); }, DEPS); --test(function (deps, data) { -+test((deps, data) => ({ -+ fn1: function () { return deps.foo; }, -+ fn2: data.bar -+}), DEPS); -+test((deps, data) => ({ -+ fn1: function () { return deps.foo; }, -+ fn2: data.bar -+}), DEPS); -+test((deps, data) => ({ -+ fn1: () => deps.foo, -+ fn2: data.bar -+}), DEPS); -+test((deps, data) => { - return { -- fn1: function () { return deps.foo; }, -+ fn1() { return deps.foo; }, - fn2: data.bar - }; - }, DEPS); --test(function (deps) { return ({ -- fn1: function () { return deps.foo; }, -+test((deps) => ({ -+ fn1() { return deps.foo; }, - fn2: 1 --}); }, DEPS); -+}), DEPS); \ No newline at end of file + }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualExpressionTypecheckingDoesntBlowStack.js.diff b/testdata/baselines/reference/submodule/compiler/contextualExpressionTypecheckingDoesntBlowStack.js.diff deleted file mode 100644 index 52fe934999..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualExpressionTypecheckingDoesntBlowStack.js.diff +++ /dev/null @@ -1,36 +0,0 @@ ---- old.contextualExpressionTypecheckingDoesntBlowStack.js -+++ new.contextualExpressionTypecheckingDoesntBlowStack.js -@@= skipped -26, +26 lines =@@ - //// [contextualExpressionTypecheckingDoesntBlowStack.js] - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); --var Operation = /** @class */ (function () { -- function Operation() { -- } -- Operation.prototype.validateParameters = function (parameterValues) { -- var result = null; -- for (var _i = 0, _a = Object.keys(parameterValues); _i < _a.length; _i++) { -- var parameterLocation = _a[_i]; -- var parameter = this.getParameter(); -+class Operation { -+ validateParameters(parameterValues) { -+ let result = null; -+ for (const parameterLocation of Object.keys(parameterValues)) { -+ const parameter = this.getParameter(); - ; -- var values = this.getValues(); -- var innerResult = parameter.validate(values[parameter.oaParameter.name]); -+ const values = this.getValues(); -+ const innerResult = parameter.validate(values[parameter.oaParameter.name]); - if (innerResult && innerResult.length > 0) { - // Commenting out this line will fix the problem. - result = (result || []).concat(innerResult); - } - } - return result; -- }; -- return Operation; --}()); -+ } -+} - exports.default = Operation; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualPropertyOfGenericMappedType.js.diff b/testdata/baselines/reference/submodule/compiler/contextualPropertyOfGenericMappedType.js.diff index 20879e2b59..b79e469d24 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualPropertyOfGenericMappedType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualPropertyOfGenericMappedType.js.diff @@ -5,5 +5,4 @@ //// [contextualPropertyOfGenericMappedType.js] -// Repro for #24694 --f({ data: 0 }, { data: function (value, key) { } }); -+f({ data: 0 }, { data(value, key) { } }); \ No newline at end of file + f({ data: 0 }, { data(value, key) { } }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualReturnTypeOfIIFE.js.diff b/testdata/baselines/reference/submodule/compiler/contextualReturnTypeOfIIFE.js.diff index 1c34b6d8e1..7e1f1a8e97 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualReturnTypeOfIIFE.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualReturnTypeOfIIFE.js.diff @@ -13,46 +13,11 @@ - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; -- } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -- } --}; --var _this = this; --var test1 = (function () { return __awaiter(_this, void 0, void 0, function () { -- return __generator(this, function (_a) { -- return [2 /*return*/, [1, 'two']]; -- }); --}); })(); --var test2 = new Promise(function (resolve) { return resolve([1, 'two']); }); --var obj = { -- foo: (function () { return [1, 'two']; })() +-const test1 = (() => __awaiter(this, void 0, void 0, function* () { +const test1 = (async () => { -+ return [1, 'two']; + return [1, 'two']; +-}))(); +})(); -+const test2 = new Promise((resolve) => resolve([1, 'two'])); -+const obj = { -+ foo: (() => [1, 'two'])() - }; \ No newline at end of file + const test2 = new Promise((resolve) => resolve([1, 'two'])); + const obj = { + foo: (() => [1, 'two'])() \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualReturnTypeOfIIFE2.js.diff b/testdata/baselines/reference/submodule/compiler/contextualReturnTypeOfIIFE2.js.diff deleted file mode 100644 index 934a2723cc..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualReturnTypeOfIIFE2.js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.contextualReturnTypeOfIIFE2.js -+++ new.contextualReturnTypeOfIIFE2.js -@@= skipped -14, +14 lines =@@ - - //// [contextualReturnTypeOfIIFE2.js] - app.foo.bar = (function () { -- var someFun = function (arg) { }; -- return { someFun: someFun }; -+ const someFun = (arg) => { }; -+ return { someFun }; - })(); - app.foo.bar.someFun(1); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualReturnTypeOfIIFE3.js.diff b/testdata/baselines/reference/submodule/compiler/contextualReturnTypeOfIIFE3.js.diff deleted file mode 100644 index f60ecdde91..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualReturnTypeOfIIFE3.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.contextualReturnTypeOfIIFE3.js -+++ new.contextualReturnTypeOfIIFE3.js -@@= skipped -17, +17 lines =@@ - - //// [contextualReturnTypeOfIIFE3.js] - app.foo.bar = (function () { -- return { someFun: function (arg) { } }; -+ return { someFun(arg) { } }; - })(); - app.foo.bar.someFun(1); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualSignatureInObjectFreeze.types b/testdata/baselines/reference/submodule/compiler/contextualSignatureInObjectFreeze.types index 65ad4971c1..85af5f3c3d 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualSignatureInObjectFreeze.types +++ b/testdata/baselines/reference/submodule/compiler/contextualSignatureInObjectFreeze.types @@ -5,9 +5,9 @@ Object.freeze({ >Object.freeze({ f: function () { }}) : Readonly<{ f: () => void; }> ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >{ f: function () { }} : { f: () => void; } f: function () { } diff --git a/testdata/baselines/reference/submodule/compiler/contextualSignatureInObjectFreeze.types.diff b/testdata/baselines/reference/submodule/compiler/contextualSignatureInObjectFreeze.types.diff index a049c44b4d..40101981ad 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualSignatureInObjectFreeze.types.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualSignatureInObjectFreeze.types.diff @@ -5,10 +5,10 @@ Object.freeze({ >Object.freeze({ f: function () { }}) : Readonly<{ f: () => void; }> ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -+>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } ++>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -+>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } ++>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } >{ f: function () { }} : { f: () => void; } f: function () { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualSignatureInstantiation1.js.diff b/testdata/baselines/reference/submodule/compiler/contextualSignatureInstantiation1.js.diff deleted file mode 100644 index f62d2afb33..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualSignatureInstantiation1.js.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- old.contextualSignatureInstantiation1.js -+++ new.contextualSignatureInstantiation1.js -@@= skipped -9, +9 lines =@@ - var r100 = map2(e2); // type arg inference should fail for S since a generic lambda is not inferentially typed. Falls back to { length: number } - - //// [contextualSignatureInstantiation1.js] --var e = function (x, y) { return x.length; }; -+var e = (x, y) => x.length; - var r99 = map(e); // should be {}[] for S since a generic lambda is not inferentially typed --var e2 = function (x, y) { return x.length; }; -+var e2 = (x, y) => x.length; - var r100 = map2(e2); // type arg inference should fail for S since a generic lambda is not inferentially typed. Falls back to { length: number } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualSignatureInstantiation2.js.diff b/testdata/baselines/reference/submodule/compiler/contextualSignatureInstantiation2.js.diff deleted file mode 100644 index d953558221..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualSignatureInstantiation2.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.contextualSignatureInstantiation2.js -+++ new.contextualSignatureInstantiation2.js -@@= skipped -9, +9 lines =@@ - //// [contextualSignatureInstantiation2.js] - // dot f g x = f(g(x)) - var dot; --dot = function (f) { return function (g) { return function (x) { return f(g(x)); }; }; }; -+dot = (f) => (g) => (x) => f(g(x)); - var id; - var r23 = dot(id)(id); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualSignatureInstantiation4.js.diff b/testdata/baselines/reference/submodule/compiler/contextualSignatureInstantiation4.js.diff index 26876c0450..be8fb6e1e8 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualSignatureInstantiation4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualSignatureInstantiation4.js.diff @@ -6,13 +6,6 @@ //// [contextualSignatureInstantiation4.js] -"use strict"; -// Repros from #32976 --var banana1 = fruitFactory1(Banana); // Banana --var banana2 = fruitFactory2(Banana); // Banana --var banana3 = fruitFactory3(Banana); // Banana<"foo"> --var banana4 = fruitFactory4(Banana); // Banana<"foo"> --var banana5 = fruitFactory5(Banana); // Banana<"foo"> -+const banana1 = fruitFactory1(Banana); // Banana -+const banana2 = fruitFactory2(Banana); // Banana -+const banana3 = fruitFactory3(Banana); // Banana<"foo"> -+const banana4 = fruitFactory4(Banana); // Banana<"foo"> -+const banana5 = fruitFactory5(Banana); // Banana<"foo"> \ No newline at end of file + const banana1 = fruitFactory1(Banana); // Banana + const banana2 = fruitFactory2(Banana); // Banana + const banana3 = fruitFactory3(Banana); // Banana<"foo"> \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualSignature_objectLiteralMethodMayReturnNever.js.diff b/testdata/baselines/reference/submodule/compiler/contextualSignature_objectLiteralMethodMayReturnNever.js.diff deleted file mode 100644 index 9efe437114..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualSignature_objectLiteralMethodMayReturnNever.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.contextualSignature_objectLiteralMethodMayReturnNever.js -+++ new.contextualSignature_objectLiteralMethodMayReturnNever.js -@@= skipped -5, +5 lines =@@ - - - //// [contextualSignature_objectLiteralMethodMayReturnNever.js] --var o = { m: function () { throw new Error("not implemented"); } }; -+const o = { m() { throw new Error("not implemented"); } }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTupleTypeParameterReadonly.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTupleTypeParameterReadonly.js.diff index 8530cb5f01..3bc70edc1a 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTupleTypeParameterReadonly.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTupleTypeParameterReadonly.js.diff @@ -5,27 +5,6 @@ //// [contextualTupleTypeParameterReadonly.js] -"use strict"; --var cases = [ -+const cases = [ + const cases = [ [1, '1'], - [2, '2'], - ]; --var eacher = each(cases); --eacher(function (a, b) { -+const eacher = each(cases); -+eacher((a, b) => { - a; - b; - }); - // TODO: https://github.com/microsoft/TypeScript/issues/53255 --eacher(function () { -- var args = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- args[_i] = arguments[_i]; -- } -- var a = args[0], b = args[1]; -+eacher((...args) => { -+ const [a, b] = args; - a; - b; - }); \ No newline at end of file + [2, '2'], \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypeAppliedToVarArgs.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypeAppliedToVarArgs.js.diff deleted file mode 100644 index 45c727bc0e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypeAppliedToVarArgs.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.contextualTypeAppliedToVarArgs.js -+++ new.contextualTypeAppliedToVarArgs.js -@@= skipped -21, +21 lines =@@ - function delegate(instance, method, data) { - return function () { }; - } --var Foo = /** @class */ (function () { -- function Foo() { -- } -- Foo.prototype.Bar = function () { -+class Foo { -+ Bar() { - delegate(this, function (source, args2) { - var a = source.node; - var b = args2.node; - }); -- }; -- return Foo; --}()); -+ } -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypeArrayReturnType.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypeArrayReturnType.js.diff deleted file mode 100644 index aaaac7f228..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypeArrayReturnType.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.contextualTypeArrayReturnType.js -+++ new.contextualTypeArrayReturnType.js -@@= skipped -23, +23 lines =@@ - - //// [contextualTypeArrayReturnType.js] - var style = { -- initialLeftPageTransforms: function (width) { -+ initialLeftPageTransforms: (width) => { - return [ - { 'ry': null } - ]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypeForInitalizedVariablesFiltersUndefined.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypeForInitalizedVariablesFiltersUndefined.js.diff index 608f552bb6..f77b42cc2c 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTypeForInitalizedVariablesFiltersUndefined.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTypeForInitalizedVariablesFiltersUndefined.js.diff @@ -5,20 +5,6 @@ //// [contextualTypeForInitalizedVariablesFiltersUndefined.js] -"use strict"; --var fInferred = function (_a) { -- var _b = _a === void 0 ? {} : _a, _c = _b.a, a = _c === void 0 ? 0 : _c; -- return a; --}; -+const fInferred = ({ a = 0 } = {}) => a; + const fInferred = ({ a = 0 } = {}) => a; // const fInferred: ({ a }?: { a?: number; }) => number --var fAnnotated = function (_a) { -- var _b = _a === void 0 ? {} : _a, _c = _b.a, a = _c === void 0 ? 0 : _c; -- return a; --}; --var s = t.s; --function fst(_a) { -- var _b = _a === void 0 ? t : _a, s = _b.s; --} -+const fAnnotated = ({ a = 0 } = {}) => a; -+const { s } = t; -+function fst({ s } = t) { } \ No newline at end of file + const fAnnotated = ({ a = 0 } = {}) => a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypeLogicalOr.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypeLogicalOr.js.diff deleted file mode 100644 index bdc5e23c52..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypeLogicalOr.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.contextualTypeLogicalOr.js -+++ new.contextualTypeLogicalOr.js -@@= skipped -21, +21 lines =@@ - - //// [contextualTypeLogicalOr.js] - // Repro from #18005 --var x = 123; -+let x = 123; - var a = x && [1, 2, 3, 4] || - x && [1, 2, 3, 4] || - x && [1, 2, 3, 4] || \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypeObjectSpreadExpression.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypeObjectSpreadExpression.js.diff index 2524c02f5a..a2079caada 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTypeObjectSpreadExpression.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTypeObjectSpreadExpression.js.diff @@ -15,7 +15,6 @@ - }; - return __assign.apply(this, arguments); -}; --var i; + let i; -i = __assign({ a: "a" }); -+let i; +i = { ...{ a: "a" } }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypeOfIndexedAccessParameter.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypeOfIndexedAccessParameter.js.diff index b36298b2c7..08a5f1b9dd 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTypeOfIndexedAccessParameter.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTypeOfIndexedAccessParameter.js.diff @@ -6,8 +6,5 @@ //// [contextualTypeOfIndexedAccessParameter.js] -"use strict"; f("a", { -- cb: function (p) { return p; }, -+ cb: p => p, - }); - function g(x, y) { - x = y; \ No newline at end of file + cb: p => p, + }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypeShouldBeLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypeShouldBeLiteral.js.diff index 45d6ce9d01..7d0a087e6f 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTypeShouldBeLiteral.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTypeShouldBeLiteral.js.diff @@ -7,46 +7,4 @@ -"use strict"; function foo(bar) { } foo({ - type: 'y', - value: 'done', -- method: function () { -+ method() { - this; - this.type; - this.value; -@@= skipped -15, +14 lines =@@ - foo2({ - type2: 'y', - value: 'done', -- method: function () { -+ method() { - this; - this.value; - } - }); --var xy = { -+let xy = { - type: 'y', - value: 11, - ytra: 12 - }; - xy; --var xyz = { -+let xyz = { - x: 'x', - y: 'y', - value: "foo", -- method: function () { -+ method() { - this; - this.x; - this.y; -@@= skipped -23, +23 lines =@@ - } - }; - xyz; --var test = { -+const test = { - items: { - hello: { type: 'string' }, - world: { \ No newline at end of file + type: 'y', \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping.js.diff index fb808237bf..955d3f2bc1 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping.js.diff @@ -1,56 +1,25 @@ --- old.contextualTyping.js +++ new.contextualTyping.js -@@= skipped -227, +227 lines =@@ - +@@= skipped -228, +228 lines =@@ //// [contextualTyping.js] // CONTEXT: Class property declaration --var C1T5 = /** @class */ (function () { -- function C1T5() { + class C1T5 { +- constructor() { - this.foo = function (i) { - return i; - }; - } -- return C1T5; --}()); -+class C1T5 { + foo = function (i) { + return i; + }; -+} + } // CONTEXT: Module property declaration var C2T5; - (function (C2T5) { -@@= skipped -39, +36 lines =@@ - a: [] +@@= skipped -38, +36 lines =@@ }); // CONTEXT: Class property assignment --var C4T5 = /** @class */ (function () { -- function C4T5() { -+class C4T5 { + class C4T5 { + foo; -+ constructor() { + constructor() { this.foo = function (i, s) { - return s; - }; - } -- return C4T5; --}()); -+} - // CONTEXT: Module property assignment - var C5T5; - (function (C5T5) { -@@= skipped -53, +53 lines =@@ - // CONTEXT: Return statement - var c10t5 = function () { return function (n) { return ({}); }; }; - // CONTEXT: Newing a class --var C11t5 = /** @class */ (function () { -- function C11t5(f) { -- } -- return C11t5; --}()); -+class C11t5 { -+ constructor(f) { } -+} - ; - var i = new C11t5(function (n) { return ({}); }); - // CONTEXT: Type annotated expression \ No newline at end of file + return s; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping.js.map.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping.js.map.diff index ecc7692795..146419abeb 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping.js.map.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping.js.map.diff @@ -2,7 +2,7 @@ +++ new.contextualTyping.js.map @@= skipped -0, +0 lines =@@ //// [contextualTyping.js.map] --{"version":3,"file":"contextualTyping.js","sourceRoot":"","sources":["contextualTyping.ts"],"names":[],"mappings":"AAYA,sCAAsC;AACtC;IAAA;QACI,QAAG,GAAqC,UAAS,CAAC;YAC9C,OAAO,CAAC,CAAC;QACb,CAAC,CAAA;IACL,CAAC;IAAD,WAAC;AAAD,CAAC,AAJD,IAIC;AAED,uCAAuC;AACvC,IAAO,IAAI,CAIV;AAJD,WAAO,IAAI;IACI,QAAG,GAAqC,UAAS,CAAC;QACzD,OAAO,CAAC,CAAC;IACb,CAAC,CAAA;AACL,CAAC,EAJM,IAAI,KAAJ,IAAI,QAIV;AAED,gCAAgC;AAChC,IAAI,IAAI,GAA0B,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;AAC7D,IAAI,IAAI,GAAS,CAAC;IACd,CAAC,EAAE,CAAC;CACP,CAAC,CAAA;AACF,IAAI,IAAI,GAAa,EAAE,CAAC;AACxB,IAAI,IAAI,GAAe,cAAa,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AACxD,IAAI,IAAI,GAAwB,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAClE,IAAI,IAAI,GAAmC,UAAS,CAAC,EAAE,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAChF,IAAI,IAAI,GAGJ,UAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9B,IAAI,IAAI,GAAqC,UAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,IAAI,IAAI,GAAe,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AAC/B,IAAI,KAAK,GAAW,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAI,KAAK,GAAwC,CAAC,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,IAAI,KAAK,GAAS;IACd,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,IAAI,KAAK,GAAS,CAAC;IACf,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC,CAAA;AACF,IAAI,KAAK,GAAS,CAAC;IACf,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAEF,qCAAqC;AACrC;IAEI;QACI,IAAI,CAAC,GAAG,GAAG,UAAS,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC;QACb,CAAC,CAAA;IACL,CAAC;IACL,WAAC;AAAD,CAAC,AAPD,IAOC;AAED,sCAAsC;AACtC,IAAO,IAAI,CAKV;AALD,WAAO,IAAI;IAEP,KAAA,GAAG,GAAG,UAAS,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,CAAC;IACb,CAAC,CAAA;AACL,CAAC,EALM,IAAI,KAAJ,IAAI,QAKV;AAED,+BAA+B;AAC/B,IAAI,IAAyB,CAAC;AAC9B,IAAI,GAAwB,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAE9D,kCAAkC;AAClC,IAAI,IAAY,CAAC;AACjB,IAAI,CAAC,CAAC,CAAC,GAAS,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;AAuBzB,IAAI,KAAK,GAkBS,CAAC,EAAE,CAAC,CAAC;AAEvB,KAAK,CAAC,EAAE,GAAG,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;AACtC,KAAK,CAAC,EAAE,GAAS,CAAC;IACd,CAAC,EAAE,CAAC;CACP,CAAC,CAAC;AACH,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;AACd,KAAK,CAAC,EAAE,GAAG,cAAa,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAC5C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAC7C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,EAAE,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAChD,KAAK,CAAC,EAAE,GAAG,UAAS,CAAS,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC;AAE5C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AACnB,KAAK,CAAC,GAAG,GAAG,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,KAAK,CAAC,GAAG,GAAG;IACR,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,KAAK,CAAC,GAAG,GAAS,CAAC;IACf,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC,CAAA;AACF,KAAK,CAAC,GAAG,GAAS,CAAC;IACf,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AACF,yBAAyB;AACzB,SAAS,IAAI,CAAC,CAAsB,IAAG,CAAC;AAAA,CAAC;AACzC,IAAI,CAAC,UAAS,CAAC;IACX,OAAa,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,4BAA4B;AAC5B,IAAI,KAAK,GAA8B,cAAa,OAAO,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;AAE/F,0BAA0B;AAC1B;IAAc,eAAY,CAAsB;IAAI,CAAC;IAAC,YAAC;AAAD,CAAC,AAAvD,IAAuD;AAAA,CAAC;AACxD,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;AAErD,qCAAqC;AACrC,IAAI,KAAK,GAA2B,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;AAC/D,IAAI,KAAK,GAAU,CAAC;IAChB,CAAC,EAAE,CAAC;CACP,CAAC,CAAC;AACH,IAAI,KAAK,GAAc,EAAE,CAAC;AAC1B,IAAI,KAAK,GAAgB,cAAa,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAC1D,IAAI,KAAK,GAAyB,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AACpE,IAAI,KAAK,GAAoC,UAAS,CAAC,EAAE,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAClF,IAAI,KAAK,GAGN,UAAS,CAAQ,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC;AAEnC,IAAI,KAAK,GAAsC,UAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,IAAI,KAAK,GAAgB,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AACjC,IAAI,MAAM,GAAY,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAI,MAAM,GAAyC,CAAC,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,IAAI,MAAM,GAAU;IAChB,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,IAAI,MAAM,GAAU,CAAC;IACjB,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC,CAAA;AACF,IAAI,MAAM,GAAU,CAAC;IACjB,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAOF,SAAS,GAAG,CAAC,CAAC,EAAC,CAAC,IAAI,OAAO,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;AAEjC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AAcnB,KAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/B,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,EAAE,EAAE,EAAE;IACjC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,GAAG;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,GAAG,EAAE,UAAS,EAAE,EAAE,EAAE;QAChB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;CACJ,CAAC;AAIF,IAAI,CAAC,GAAM,EAAG,CAAC"} --//// https://sokra.github.io/source-map-visualization#base64,Ly8gQ09OVEVYVDogQ2xhc3MgcHJvcGVydHkgZGVjbGFyYXRpb24NCnZhciBDMVQ1ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkgew0KICAgIGZ1bmN0aW9uIEMxVDUoKSB7DQogICAgICAgIHRoaXMuZm9vID0gZnVuY3Rpb24gKGkpIHsNCiAgICAgICAgICAgIHJldHVybiBpOw0KICAgICAgICB9Ow0KICAgIH0NCiAgICByZXR1cm4gQzFUNTsNCn0oKSk7DQovLyBDT05URVhUOiBNb2R1bGUgcHJvcGVydHkgZGVjbGFyYXRpb24NCnZhciBDMlQ1Ow0KKGZ1bmN0aW9uIChDMlQ1KSB7DQogICAgQzJUNS5mb28gPSBmdW5jdGlvbiAoaSkgew0KICAgICAgICByZXR1cm4gaTsNCiAgICB9Ow0KfSkoQzJUNSB8fCAoQzJUNSA9IHt9KSk7DQovLyBDT05URVhUOiBWYXJpYWJsZSBkZWNsYXJhdGlvbg0KdmFyIGMzdDEgPSAoZnVuY3Rpb24gKHMpIHsgcmV0dXJuIHM7IH0pOw0KdmFyIGMzdDIgPSAoew0KICAgIG46IDENCn0pOw0KdmFyIGMzdDMgPSBbXTsNCnZhciBjM3Q0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gKHt9KTsgfTsNCnZhciBjM3Q1ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuICh7fSk7IH07DQp2YXIgYzN0NiA9IGZ1bmN0aW9uIChuLCBzKSB7IHJldHVybiAoe30pOyB9Ow0KdmFyIGMzdDcgPSBmdW5jdGlvbiAobikgeyByZXR1cm4gbjsgfTsNCnZhciBjM3Q4ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuIG47IH07DQp2YXIgYzN0OSA9IFtbXSwgW11dOw0KdmFyIGMzdDEwID0gWyh7fSksICh7fSldOw0KdmFyIGMzdDExID0gW2Z1bmN0aW9uIChuLCBzKSB7IHJldHVybiBzOyB9XTsNCnZhciBjM3QxMiA9IHsNCiAgICBmb286ICh7fSkNCn07DQp2YXIgYzN0MTMgPSAoew0KICAgIGY6IGZ1bmN0aW9uIChpLCBzKSB7IHJldHVybiBzOyB9DQp9KTsNCnZhciBjM3QxNCA9ICh7DQogICAgYTogW10NCn0pOw0KLy8gQ09OVEVYVDogQ2xhc3MgcHJvcGVydHkgYXNzaWdubWVudA0KdmFyIEM0VDUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gQzRUNSgpIHsNCiAgICAgICAgdGhpcy5mb28gPSBmdW5jdGlvbiAoaSwgcykgew0KICAgICAgICAgICAgcmV0dXJuIHM7DQogICAgICAgIH07DQogICAgfQ0KICAgIHJldHVybiBDNFQ1Ow0KfSgpKTsNCi8vIENPTlRFWFQ6IE1vZHVsZSBwcm9wZXJ0eSBhc3NpZ25tZW50DQp2YXIgQzVUNTsNCihmdW5jdGlvbiAoQzVUNSkgew0KICAgIEM1VDUuZm9vID0gZnVuY3Rpb24gKGksIHMpIHsNCiAgICAgICAgcmV0dXJuIHM7DQogICAgfTsNCn0pKEM1VDUgfHwgKEM1VDUgPSB7fSkpOw0KLy8gQ09OVEVYVDogVmFyaWFibGUgYXNzaWdubWVudA0KdmFyIGM2dDU7DQpjNnQ1ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuICh7fSk7IH07DQovLyBDT05URVhUOiBBcnJheSBpbmRleCBhc3NpZ25tZW50DQp2YXIgYzd0MjsNCmM3dDJbMF0gPSAoeyBuOiAxIH0pOw0KdmFyIG9iamM4ID0gKHt9KTsNCm9iamM4LnQxID0gKGZ1bmN0aW9uIChzKSB7IHJldHVybiBzOyB9KTsNCm9iamM4LnQyID0gKHsNCiAgICBuOiAxDQp9KTsNCm9iamM4LnQzID0gW107DQpvYmpjOC50NCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICh7fSk7IH07DQpvYmpjOC50NSA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiAoe30pOyB9Ow0Kb2JqYzgudDYgPSBmdW5jdGlvbiAobiwgcykgeyByZXR1cm4gKHt9KTsgfTsNCm9iamM4LnQ3ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuIG47IH07DQpvYmpjOC50OCA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiBuOyB9Ow0Kb2JqYzgudDkgPSBbW10sIFtdXTsNCm9iamM4LnQxMCA9IFsoe30pLCAoe30pXTsNCm9iamM4LnQxMSA9IFtmdW5jdGlvbiAobiwgcykgeyByZXR1cm4gczsgfV07DQpvYmpjOC50MTIgPSB7DQogICAgZm9vOiAoe30pDQp9Ow0Kb2JqYzgudDEzID0gKHsNCiAgICBmOiBmdW5jdGlvbiAoaSwgcykgeyByZXR1cm4gczsgfQ0KfSk7DQpvYmpjOC50MTQgPSAoew0KICAgIGE6IFtdDQp9KTsNCi8vIENPTlRFWFQ6IEZ1bmN0aW9uIGNhbGwNCmZ1bmN0aW9uIGM5dDUoZikgeyB9DQo7DQpjOXQ1KGZ1bmN0aW9uIChuKSB7DQogICAgcmV0dXJuICh7fSk7DQp9KTsNCi8vIENPTlRFWFQ6IFJldHVybiBzdGF0ZW1lbnQNCnZhciBjMTB0NSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZ1bmN0aW9uIChuKSB7IHJldHVybiAoe30pOyB9OyB9Ow0KLy8gQ09OVEVYVDogTmV3aW5nIGEgY2xhc3MNCnZhciBDMTF0NSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBDMTF0NShmKSB7DQogICAgfQ0KICAgIHJldHVybiBDMTF0NTsNCn0oKSk7DQo7DQp2YXIgaSA9IG5ldyBDMTF0NShmdW5jdGlvbiAobikgeyByZXR1cm4gKHt9KTsgfSk7DQovLyBDT05URVhUOiBUeXBlIGFubm90YXRlZCBleHByZXNzaW9uDQp2YXIgYzEydDEgPSAoZnVuY3Rpb24gKHMpIHsgcmV0dXJuIHM7IH0pOw0KdmFyIGMxMnQyID0gKHsNCiAgICBuOiAxDQp9KTsNCnZhciBjMTJ0MyA9IFtdOw0KdmFyIGMxMnQ0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gKHt9KTsgfTsNCnZhciBjMTJ0NSA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiAoe30pOyB9Ow0KdmFyIGMxMnQ2ID0gZnVuY3Rpb24gKG4sIHMpIHsgcmV0dXJuICh7fSk7IH07DQp2YXIgYzEydDcgPSBmdW5jdGlvbiAobikgeyByZXR1cm4gbjsgfTsNCnZhciBjMTJ0OCA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiBuOyB9Ow0KdmFyIGMxMnQ5ID0gW1tdLCBbXV07DQp2YXIgYzEydDEwID0gWyh7fSksICh7fSldOw0KdmFyIGMxMnQxMSA9IFtmdW5jdGlvbiAobiwgcykgeyByZXR1cm4gczsgfV07DQp2YXIgYzEydDEyID0gew0KICAgIGZvbzogKHt9KQ0KfTsNCnZhciBjMTJ0MTMgPSAoew0KICAgIGY6IGZ1bmN0aW9uIChpLCBzKSB7IHJldHVybiBzOyB9DQp9KTsNCnZhciBjMTJ0MTQgPSAoew0KICAgIGE6IFtdDQp9KTsNCmZ1bmN0aW9uIEVGMShhLCBiKSB7IHJldHVybiBhICsgYjsgfQ0KdmFyIGVmdiA9IEVGMSgxLCAyKTsNClBvaW50Lm9yaWdpbiA9IG5ldyBQb2ludCgwLCAwKTsNClBvaW50LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAoZHgsIGR5KSB7DQogICAgcmV0dXJuIG5ldyBQb2ludCh0aGlzLnggKyBkeCwgdGhpcy55ICsgZHkpOw0KfTsNClBvaW50LnByb3RvdHlwZSA9IHsNCiAgICB4OiAwLA0KICAgIHk6IDAsDQogICAgYWRkOiBmdW5jdGlvbiAoZHgsIGR5KSB7DQogICAgICAgIHJldHVybiBuZXcgUG9pbnQodGhpcy54ICsgZHgsIHRoaXMueSArIGR5KTsNCiAgICB9DQp9Ow0KdmFyIHggPSB7fTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnRleHR1YWxUeXBpbmcuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dHVhbFR5cGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHR1YWxUeXBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsc0NBQXNDO0FBQ3RDO0lBQUE7UUFDSSxRQUFHLEdBQXFDLFVBQVMsQ0FBQztZQUM5QyxPQUFPLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQTtJQUNMLENBQUM7SUFBRCxXQUFDO0FBQUQsQ0FBQyxBQUpELElBSUM7QUFFRCx1Q0FBdUM7QUFDdkMsSUFBTyxJQUFJLENBSVY7QUFKRCxXQUFPLElBQUk7SUFDSSxRQUFHLEdBQXFDLFVBQVMsQ0FBQztRQUN6RCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUMsQ0FBQTtBQUNMLENBQUMsRUFKTSxJQUFJLEtBQUosSUFBSSxRQUlWO0FBRUQsZ0NBQWdDO0FBQ2hDLElBQUksSUFBSSxHQUEwQixDQUFDLFVBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0QsSUFBSSxJQUFJLEdBQVMsQ0FBQztJQUNkLENBQUMsRUFBRSxDQUFDO0NBQ1AsQ0FBQyxDQUFBO0FBQ0YsSUFBSSxJQUFJLEdBQWEsRUFBRSxDQUFDO0FBQ3hCLElBQUksSUFBSSxHQUFlLGNBQWEsT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBQ3hELElBQUksSUFBSSxHQUF3QixVQUFTLENBQUMsSUFBSSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFDbEUsSUFBSSxJQUFJLEdBQW1DLFVBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFDaEYsSUFBSSxJQUFJLEdBR0osVUFBUyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFOUIsSUFBSSxJQUFJLEdBQXFDLFVBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLElBQUksSUFBSSxHQUFlLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQy9CLElBQUksS0FBSyxHQUFXLENBQU8sQ0FBQyxFQUFFLENBQUMsRUFBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUMsSUFBSSxLQUFLLEdBQXdDLENBQUMsVUFBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEYsSUFBSSxLQUFLLEdBQVM7SUFDZCxHQUFHLEVBQVEsQ0FBQyxFQUFFLENBQUM7Q0FDbEIsQ0FBQTtBQUNELElBQUksS0FBSyxHQUFTLENBQUM7SUFDZixDQUFDLEVBQUUsVUFBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNsQyxDQUFDLENBQUE7QUFDRixJQUFJLEtBQUssR0FBUyxDQUFDO0lBQ2YsQ0FBQyxFQUFFLEVBQUU7Q0FDUixDQUFDLENBQUE7QUFFRixxQ0FBcUM7QUFDckM7SUFFSTtRQUNJLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBUyxDQUFDLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQTtJQUNMLENBQUM7SUFDTCxXQUFDO0FBQUQsQ0FBQyxBQVBELElBT0M7QUFFRCxzQ0FBc0M7QUFDdEMsSUFBTyxJQUFJLENBS1Y7QUFMRCxXQUFPLElBQUk7SUFFUCxLQUFBLEdBQUcsR0FBRyxVQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDLENBQUE7QUFDTCxDQUFDLEVBTE0sSUFBSSxLQUFKLElBQUksUUFLVjtBQUVELCtCQUErQjtBQUMvQixJQUFJLElBQXlCLENBQUM7QUFDOUIsSUFBSSxHQUF3QixVQUFTLENBQUMsSUFBSSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFFOUQsa0NBQWtDO0FBQ2xDLElBQUksSUFBWSxDQUFDO0FBQ2pCLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBUyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7QUF1QnpCLElBQUksS0FBSyxHQWtCUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRXZCLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLEtBQUssQ0FBQyxFQUFFLEdBQVMsQ0FBQztJQUNkLENBQUMsRUFBRSxDQUFDO0NBQ1AsQ0FBQyxDQUFDO0FBQ0gsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDZCxLQUFLLENBQUMsRUFBRSxHQUFHLGNBQWEsT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBQzVDLEtBQUssQ0FBQyxFQUFFLEdBQUcsVUFBUyxDQUFDLElBQUksT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBQzdDLEtBQUssQ0FBQyxFQUFFLEdBQUcsVUFBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUNoRCxLQUFLLENBQUMsRUFBRSxHQUFHLFVBQVMsQ0FBUyxJQUFJLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBRTVDLEtBQUssQ0FBQyxFQUFFLEdBQUcsVUFBUyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztBQUNuQixLQUFLLENBQUMsR0FBRyxHQUFHLENBQU8sQ0FBQyxFQUFFLENBQUMsRUFBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNDLEtBQUssQ0FBQyxHQUFHLEdBQUc7SUFDUixHQUFHLEVBQVEsQ0FBQyxFQUFFLENBQUM7Q0FDbEIsQ0FBQTtBQUNELEtBQUssQ0FBQyxHQUFHLEdBQVMsQ0FBQztJQUNmLENBQUMsRUFBRSxVQUFTLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2xDLENBQUMsQ0FBQTtBQUNGLEtBQUssQ0FBQyxHQUFHLEdBQVMsQ0FBQztJQUNmLENBQUMsRUFBRSxFQUFFO0NBQ1IsQ0FBQyxDQUFBO0FBQ0YseUJBQXlCO0FBQ3pCLFNBQVMsSUFBSSxDQUFDLENBQXNCLElBQUcsQ0FBQztBQUFBLENBQUM7QUFDekMsSUFBSSxDQUFDLFVBQVMsQ0FBQztJQUNYLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQztBQUVILDRCQUE0QjtBQUM1QixJQUFJLEtBQUssR0FBOEIsY0FBYSxPQUFPLFVBQVMsQ0FBQyxJQUFJLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUUvRiwwQkFBMEI7QUFDMUI7SUFBYyxlQUFZLENBQXNCO0lBQUksQ0FBQztJQUFDLFlBQUM7QUFBRCxDQUFDLEFBQXZELElBQXVEO0FBQUEsQ0FBQztBQUN4RCxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxVQUFTLENBQUMsSUFBSSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVyRCxxQ0FBcUM7QUFDckMsSUFBSSxLQUFLLEdBQTJCLENBQUMsVUFBUyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxJQUFJLEtBQUssR0FBVSxDQUFDO0lBQ2hCLENBQUMsRUFBRSxDQUFDO0NBQ1AsQ0FBQyxDQUFDO0FBQ0gsSUFBSSxLQUFLLEdBQWMsRUFBRSxDQUFDO0FBQzFCLElBQUksS0FBSyxHQUFnQixjQUFhLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUMxRCxJQUFJLEtBQUssR0FBeUIsVUFBUyxDQUFDLElBQUksT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLElBQUksS0FBSyxHQUFvQyxVQUFTLENBQUMsRUFBRSxDQUFDLElBQUksT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLElBQUksS0FBSyxHQUdOLFVBQVMsQ0FBUSxJQUFJLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBRW5DLElBQUksS0FBSyxHQUFzQyxVQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RSxJQUFJLEtBQUssR0FBZ0IsQ0FBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7QUFDakMsSUFBSSxNQUFNLEdBQVksQ0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM5QyxJQUFJLE1BQU0sR0FBeUMsQ0FBQyxVQUFTLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRixJQUFJLE1BQU0sR0FBVTtJQUNoQixHQUFHLEVBQVEsQ0FBQyxFQUFFLENBQUM7Q0FDbEIsQ0FBQTtBQUNELElBQUksTUFBTSxHQUFVLENBQUM7SUFDakIsQ0FBQyxFQUFFLFVBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDbEMsQ0FBQyxDQUFBO0FBQ0YsSUFBSSxNQUFNLEdBQVUsQ0FBQztJQUNqQixDQUFDLEVBQUUsRUFBRTtDQUNSLENBQUMsQ0FBQTtBQU9GLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksT0FBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVqQyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO0FBY25CLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRS9CLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLFVBQVMsRUFBRSxFQUFFLEVBQUU7SUFDakMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQUVGLEtBQUssQ0FBQyxTQUFTLEdBQUc7SUFDZCxDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osR0FBRyxFQUFFLFVBQVMsRUFBRSxFQUFFLEVBQUU7UUFDaEIsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDSixDQUFDO0FBSUYsSUFBSSxDQUFDLEdBQU0sRUFBRyxDQUFDIn0=,Ly8gREVGQVVMVCBJTlRFUkZBQ0VTCmludGVyZmFjZSBJRm9vIHsKICAgIG46IG51bWJlcjsKICAgIHM6IHN0cmluZzsKICAgIGYoaTogbnVtYmVyLCBzOiBzdHJpbmcpOiBzdHJpbmc7CiAgICBhOiBudW1iZXJbXTsKfQoKaW50ZXJmYWNlIElCYXIgewogICAgZm9vOiBJRm9vOwp9CgovLyBDT05URVhUOiBDbGFzcyBwcm9wZXJ0eSBkZWNsYXJhdGlvbgpjbGFzcyBDMVQ1IHsKICAgIGZvbzogKGk6IG51bWJlciwgczogc3RyaW5nKSA9PiBudW1iZXIgPSBmdW5jdGlvbihpKSB7CiAgICAgICAgcmV0dXJuIGk7CiAgICB9Cn0KCi8vIENPTlRFWFQ6IE1vZHVsZSBwcm9wZXJ0eSBkZWNsYXJhdGlvbgptb2R1bGUgQzJUNSB7CiAgICBleHBvcnQgdmFyIGZvbzogKGk6IG51bWJlciwgczogc3RyaW5nKSA9PiBudW1iZXIgPSBmdW5jdGlvbihpKSB7CiAgICAgICAgcmV0dXJuIGk7CiAgICB9Cn0KCi8vIENPTlRFWFQ6IFZhcmlhYmxlIGRlY2xhcmF0aW9uCnZhciBjM3QxOiAoczogc3RyaW5nKSA9PiBzdHJpbmcgPSAoZnVuY3Rpb24ocykgeyByZXR1cm4gcyB9KTsKdmFyIGMzdDIgPSA8SUZvbz4oewogICAgbjogMQp9KQp2YXIgYzN0MzogbnVtYmVyW10gPSBbXTsKdmFyIGMzdDQ6ICgpID0+IElGb28gPSBmdW5jdGlvbigpIHsgcmV0dXJuIDxJRm9vPih7fSkgfTsKdmFyIGMzdDU6IChuOiBudW1iZXIpID0+IElGb28gPSBmdW5jdGlvbihuKSB7IHJldHVybiA8SUZvbz4oe30pIH07CnZhciBjM3Q2OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IElGb28gPSBmdW5jdGlvbihuLCBzKSB7IHJldHVybiA8SUZvbz4oe30pIH07CnZhciBjM3Q3OiB7CiAgICAobjogbnVtYmVyKTogbnVtYmVyOyAgICAKICAgIChzMTogc3RyaW5nKTogbnVtYmVyOwp9ID0gZnVuY3Rpb24obikgeyByZXR1cm4gbjsgfTsKCnZhciBjM3Q4OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlciA9IGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG47IH07CnZhciBjM3Q5OiBudW1iZXJbXVtdID0gW1tdLFtdXTsKdmFyIGMzdDEwOiBJRm9vW10gPSBbPElGb28+KHt9KSw8SUZvbz4oe30pXTsKdmFyIGMzdDExOiB7KG46IG51bWJlciwgczogc3RyaW5nKTogc3RyaW5nO31bXSA9IFtmdW5jdGlvbihuLCBzKSB7IHJldHVybiBzOyB9XTsKdmFyIGMzdDEyOiBJQmFyID0gewogICAgZm9vOiA8SUZvbz4oe30pCn0KdmFyIGMzdDEzID0gPElGb28+KHsKICAgIGY6IGZ1bmN0aW9uKGksIHMpIHsgcmV0dXJuIHM7IH0KfSkKdmFyIGMzdDE0ID0gPElGb28+KHsKICAgIGE6IFtdCn0pCgovLyBDT05URVhUOiBDbGFzcyBwcm9wZXJ0eSBhc3NpZ25tZW50CmNsYXNzIEM0VDUgewogICAgZm9vOiAoaTogbnVtYmVyLCBzOiBzdHJpbmcpID0+IHN0cmluZzsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuZm9vID0gZnVuY3Rpb24oaSwgcykgewogICAgICAgICAgICByZXR1cm4gczsKICAgICAgICB9CiAgICB9Cn0KCi8vIENPTlRFWFQ6IE1vZHVsZSBwcm9wZXJ0eSBhc3NpZ25tZW50Cm1vZHVsZSBDNVQ1IHsKICAgIGV4cG9ydCB2YXIgZm9vOiAoaTogbnVtYmVyLCBzOiBzdHJpbmcpID0+IHN0cmluZzsKICAgIGZvbyA9IGZ1bmN0aW9uKGksIHMpIHsKICAgICAgICByZXR1cm4gczsKICAgIH0KfQoKLy8gQ09OVEVYVDogVmFyaWFibGUgYXNzaWdubWVudAp2YXIgYzZ0NTogKG46IG51bWJlcikgPT4gSUZvbzsKYzZ0NSA9IDwobjogbnVtYmVyKSA9PiBJRm9vPmZ1bmN0aW9uKG4pIHsgcmV0dXJuIDxJRm9vPih7fSkgfTsKCi8vIENPTlRFWFQ6IEFycmF5IGluZGV4IGFzc2lnbm1lbnQKdmFyIGM3dDI6IElGb29bXTsKYzd0MlswXSA9IDxJRm9vPih7bjogMX0pOwoKLy8gQ09OVEVYVDogT2JqZWN0IHByb3BlcnR5IGFzc2lnbm1lbnQKaW50ZXJmYWNlIElQbGFjZUhvbGRlciB7CiAgICB0MTogKHM6IHN0cmluZykgPT4gc3RyaW5nOwogICAgdDI6IElGb287CiAgICB0MzogbnVtYmVyW107CiAgICB0NDogKCkgPT4gSUZvbzsKICAgIHQ1OiAobjogbnVtYmVyKSA9PiBJRm9vOwogICAgdDY6IChuOiBudW1iZXIsIHM6IHN0cmluZykgPT4gSUZvbzsKICAgIHQ3OiB7CiAgICAgICAgICAgIChuOiBudW1iZXIsIHM6IHN0cmluZyk6IG51bWJlcjsgICAgCiAgICAgICAgICAgIC8vKHMxOiBzdHJpbmcsIHMyOiBzdHJpbmcpOiBudW1iZXI7CiAgICAgICAgfTsKICAgIHQ4OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlcjsKICAgIHQ5OiBudW1iZXJbXVtdOwogICAgdDEwOiBJRm9vW107CiAgICB0MTE6IHsobjogbnVtYmVyLCBzOiBzdHJpbmcpOiBzdHJpbmc7fVtdOwogICAgdDEyOiBJQmFyOwogICAgdDEzOiBJRm9vOwogICAgdDE0OiBJRm9vOwogICAgfQoKdmFyIG9iamM4OiB7CiAgICB0MTogKHM6IHN0cmluZykgPT4gc3RyaW5nOwogICAgdDI6IElGb287CiAgICB0MzogbnVtYmVyW107CiAgICB0NDogKCkgPT4gSUZvbzsKICAgIHQ1OiAobjogbnVtYmVyKSA9PiBJRm9vOwogICAgdDY6IChuOiBudW1iZXIsIHM6IHN0cmluZykgPT4gSUZvbzsKICAgIHQ3OiB7CiAgICAgICAgICAgIChuOiBudW1iZXIsIHM6IHN0cmluZyk6IG51bWJlcjsgICAgCiAgICAgICAgICAgIC8vKHMxOiBzdHJpbmcsIHMyOiBzdHJpbmcpOiBudW1iZXI7CiAgICAgICAgfTsKICAgIHQ4OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlcjsKICAgIHQ5OiBudW1iZXJbXVtdOwogICAgdDEwOiBJRm9vW107CiAgICB0MTE6IHsobjogbnVtYmVyLCBzOiBzdHJpbmcpOiBzdHJpbmc7fVtdOwogICAgdDEyOiBJQmFyOwogICAgdDEzOiBJRm9vOwogICAgdDE0OiBJRm9vOwp9ID0gPElQbGFjZUhvbGRlcj4oe30pOwoKb2JqYzgudDEgPSAoZnVuY3Rpb24ocykgeyByZXR1cm4gcyB9KTsKb2JqYzgudDIgPSA8SUZvbz4oewogICAgbjogMQp9KTsKb2JqYzgudDMgPSBbXTsKb2JqYzgudDQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDxJRm9vPih7fSkgfTsKb2JqYzgudDUgPSBmdW5jdGlvbihuKSB7IHJldHVybiA8SUZvbz4oe30pIH07Cm9iamM4LnQ2ID0gZnVuY3Rpb24obiwgcykgeyByZXR1cm4gPElGb28+KHt9KSB9OwpvYmpjOC50NyA9IGZ1bmN0aW9uKG46IG51bWJlcikgeyByZXR1cm4gbiB9OwoKb2JqYzgudDggPSBmdW5jdGlvbihuKSB7IHJldHVybiBuOyB9OwpvYmpjOC50OSA9IFtbXSxbXV07Cm9iamM4LnQxMCA9IFs8SUZvbz4oe30pLDxJRm9vPih7fSldOwpvYmpjOC50MTEgPSBbZnVuY3Rpb24obiwgcykgeyByZXR1cm4gczsgfV07Cm9iamM4LnQxMiA9IHsKICAgIGZvbzogPElGb28+KHt9KQp9Cm9iamM4LnQxMyA9IDxJRm9vPih7CiAgICBmOiBmdW5jdGlvbihpLCBzKSB7IHJldHVybiBzOyB9Cn0pCm9iamM4LnQxNCA9IDxJRm9vPih7CiAgICBhOiBbXQp9KQovLyBDT05URVhUOiBGdW5jdGlvbiBjYWxsCmZ1bmN0aW9uIGM5dDUoZjogKG46IG51bWJlcikgPT4gSUZvbykge307CmM5dDUoZnVuY3Rpb24obikgewogICAgcmV0dXJuIDxJRm9vPih7fSk7Cn0pOwoKLy8gQ09OVEVYVDogUmV0dXJuIHN0YXRlbWVudAp2YXIgYzEwdDU6ICgpID0+IChuOiBudW1iZXIpID0+IElGb28gPSBmdW5jdGlvbigpIHsgcmV0dXJuIGZ1bmN0aW9uKG4pIHsgcmV0dXJuIDxJRm9vPih7fSkgfSB9OwoKLy8gQ09OVEVYVDogTmV3aW5nIGEgY2xhc3MKY2xhc3MgQzExdDUgeyBjb25zdHJ1Y3RvcihmOiAobjogbnVtYmVyKSA9PiBJRm9vKSB7IH0gfTsKdmFyIGkgPSBuZXcgQzExdDUoZnVuY3Rpb24obikgeyByZXR1cm4gPElGb28+KHt9KSB9KTsKCi8vIENPTlRFWFQ6IFR5cGUgYW5ub3RhdGVkIGV4cHJlc3Npb24KdmFyIGMxMnQxID0gPChzOiBzdHJpbmcpID0+IHN0cmluZz4gKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMgfSk7CnZhciBjMTJ0MiA9IDxJRm9vPiAoewogICAgbjogMQp9KTsKdmFyIGMxMnQzID0gPG51bWJlcltdPiBbXTsKdmFyIGMxMnQ0ID0gPCgpID0+IElGb28+IGZ1bmN0aW9uKCkgeyByZXR1cm4gPElGb28+KHt9KSB9Owp2YXIgYzEydDUgPSA8KG46IG51bWJlcikgPT4gSUZvbz4gZnVuY3Rpb24obikgeyByZXR1cm4gPElGb28+KHt9KSB9Owp2YXIgYzEydDYgPSA8KG46IG51bWJlciwgczogc3RyaW5nKSA9PiBJRm9vPiBmdW5jdGlvbihuLCBzKSB7IHJldHVybiA8SUZvbz4oe30pIH07CnZhciBjMTJ0NyA9IDx7CiAgICAobjogbnVtYmVyLCBzOiBzdHJpbmcpOiBudW1iZXI7ICAgIAogICAgLy8oczE6IHN0cmluZywgczI6IHN0cmluZyk6IG51bWJlcjsKfT4gZnVuY3Rpb24objpudW1iZXIpIHsgcmV0dXJuIG4gfTsKCnZhciBjMTJ0OCA9IDwobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlcj4gZnVuY3Rpb24obikgeyByZXR1cm4gbjsgfTsKdmFyIGMxMnQ5ID0gPG51bWJlcltdW10+IFtbXSxbXV07CnZhciBjMTJ0MTAgPSA8SUZvb1tdPiBbPElGb28+KHt9KSw8SUZvbz4oe30pXTsKdmFyIGMxMnQxMSA9IDx7KG46IG51bWJlciwgczogc3RyaW5nKTogc3RyaW5nO31bXT4gW2Z1bmN0aW9uKG4sIHMpIHsgcmV0dXJuIHM7IH1dOwp2YXIgYzEydDEyID0gPElCYXI+IHsKICAgIGZvbzogPElGb28+KHt9KQp9CnZhciBjMTJ0MTMgPSA8SUZvbz4gKHsKICAgIGY6IGZ1bmN0aW9uKGksIHMpIHsgcmV0dXJuIHM7IH0KfSkKdmFyIGMxMnQxNCA9IDxJRm9vPiAoewogICAgYTogW10KfSkKCi8vIENPTlRFWFQ6IENvbnRleHR1YWwgdHlwaW5nIGRlY2xhcmF0aW9ucwoKLy8gY29udGV4dHVhbGx5IHR5cGluZyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMKZGVjbGFyZSBmdW5jdGlvbiBFRjEoYTpudW1iZXIsIGI6bnVtYmVyKTpudW1iZXI7CgpmdW5jdGlvbiBFRjEoYSxiKSB7IHJldHVybiBhK2I7IH0KCnZhciBlZnYgPSBFRjEoMSwyKTsKCgovLyBjb250ZXh0dWFsbHkgdHlwaW5nIGZyb20gYW1iaWVudCBjbGFzcyBkZWNsYXJhdGlvbnMKZGVjbGFyZSBjbGFzcyBQb2ludAp7CiAgICAgIGNvbnN0cnVjdG9yKHg6IG51bWJlciwgeTogbnVtYmVyKTsKICAgICAgeDogbnVtYmVyOwogICAgICB5OiBudW1iZXI7CiAgICAgIGFkZChkeDogbnVtYmVyLCBkeTogbnVtYmVyKTogUG9pbnQ7CiAgICAgIHN0YXRpYyBvcmlnaW46IFBvaW50OwoKfQoKUG9pbnQub3JpZ2luID0gbmV3IFBvaW50KDAsIDApOwoKUG9pbnQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKGR4LCBkeSkgewogICAgcmV0dXJuIG5ldyBQb2ludCh0aGlzLnggKyBkeCwgdGhpcy55ICsgZHkpOwp9OwoKUG9pbnQucHJvdG90eXBlID0gewogICAgeDogMCwKICAgIHk6IDAsCiAgICBhZGQ6IGZ1bmN0aW9uKGR4LCBkeSkgewogICAgICAgIHJldHVybiBuZXcgUG9pbnQodGhpcy54ICsgZHgsIHRoaXMueSArIGR5KTsKICAgIH0KfTsKCmludGVyZmFjZSBBIHsgeDogc3RyaW5nOyB9CmludGVyZmFjZSBCIGV4dGVuZHMgQSB7IH0KdmFyIHg6IEIgPSB7IH07Cg== +-{"version":3,"file":"contextualTyping.js","sourceRoot":"","sources":["contextualTyping.ts"],"names":[],"mappings":"AAYA,sCAAsC;AACtC,MAAM,IAAI;IAAV;QACI,QAAG,GAAqC,UAAS,CAAC;YAC9C,OAAO,CAAC,CAAC;QACb,CAAC,CAAA;IACL,CAAC;CAAA;AAED,uCAAuC;AACvC,IAAO,IAAI,CAIV;AAJD,WAAO,IAAI;IACI,QAAG,GAAqC,UAAS,CAAC;QACzD,OAAO,CAAC,CAAC;IACb,CAAC,CAAA;AACL,CAAC,EAJM,IAAI,KAAJ,IAAI,QAIV;AAED,gCAAgC;AAChC,IAAI,IAAI,GAA0B,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;AAC7D,IAAI,IAAI,GAAS,CAAC;IACd,CAAC,EAAE,CAAC;CACP,CAAC,CAAA;AACF,IAAI,IAAI,GAAa,EAAE,CAAC;AACxB,IAAI,IAAI,GAAe,cAAa,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AACxD,IAAI,IAAI,GAAwB,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAClE,IAAI,IAAI,GAAmC,UAAS,CAAC,EAAE,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAChF,IAAI,IAAI,GAGJ,UAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9B,IAAI,IAAI,GAAqC,UAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,IAAI,IAAI,GAAe,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AAC/B,IAAI,KAAK,GAAW,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAI,KAAK,GAAwC,CAAC,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,IAAI,KAAK,GAAS;IACd,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,IAAI,KAAK,GAAS,CAAC;IACf,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC,CAAA;AACF,IAAI,KAAK,GAAS,CAAC;IACf,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAEF,qCAAqC;AACrC,MAAM,IAAI;IAEN;QACI,IAAI,CAAC,GAAG,GAAG,UAAS,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC;QACb,CAAC,CAAA;IACL,CAAC;CACJ;AAED,sCAAsC;AACtC,IAAO,IAAI,CAKV;AALD,WAAO,IAAI;IAEP,KAAA,GAAG,GAAG,UAAS,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,CAAC;IACb,CAAC,CAAA;AACL,CAAC,EALM,IAAI,KAAJ,IAAI,QAKV;AAED,+BAA+B;AAC/B,IAAI,IAAyB,CAAC;AAC9B,IAAI,GAAwB,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAE9D,kCAAkC;AAClC,IAAI,IAAY,CAAC;AACjB,IAAI,CAAC,CAAC,CAAC,GAAS,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;AAuBzB,IAAI,KAAK,GAkBS,CAAC,EAAE,CAAC,CAAC;AAEvB,KAAK,CAAC,EAAE,GAAG,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;AACtC,KAAK,CAAC,EAAE,GAAS,CAAC;IACd,CAAC,EAAE,CAAC;CACP,CAAC,CAAC;AACH,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;AACd,KAAK,CAAC,EAAE,GAAG,cAAa,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAC5C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAC7C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,EAAE,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAChD,KAAK,CAAC,EAAE,GAAG,UAAS,CAAS,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC;AAE5C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AACnB,KAAK,CAAC,GAAG,GAAG,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,KAAK,CAAC,GAAG,GAAG;IACR,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,KAAK,CAAC,GAAG,GAAS,CAAC;IACf,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC,CAAA;AACF,KAAK,CAAC,GAAG,GAAS,CAAC;IACf,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AACF,yBAAyB;AACzB,SAAS,IAAI,CAAC,CAAsB,IAAG,CAAC;AAAA,CAAC;AACzC,IAAI,CAAC,UAAS,CAAC;IACX,OAAa,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,4BAA4B;AAC5B,IAAI,KAAK,GAA8B,cAAa,OAAO,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;AAE/F,0BAA0B;AAC1B,MAAM,KAAK;IAAG,YAAY,CAAsB,IAAI,CAAC;CAAE;AAAA,CAAC;AACxD,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;AAErD,qCAAqC;AACrC,IAAI,KAAK,GAA2B,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;AAC/D,IAAI,KAAK,GAAU,CAAC;IAChB,CAAC,EAAE,CAAC;CACP,CAAC,CAAC;AACH,IAAI,KAAK,GAAc,EAAE,CAAC;AAC1B,IAAI,KAAK,GAAgB,cAAa,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAC1D,IAAI,KAAK,GAAyB,UAAS,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AACpE,IAAI,KAAK,GAAoC,UAAS,CAAC,EAAE,CAAC,IAAI,OAAa,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;AAClF,IAAI,KAAK,GAGN,UAAS,CAAQ,IAAI,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC;AAEnC,IAAI,KAAK,GAAsC,UAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,IAAI,KAAK,GAAgB,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AACjC,IAAI,MAAM,GAAY,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAI,MAAM,GAAyC,CAAC,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,IAAI,MAAM,GAAU;IAChB,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,IAAI,MAAM,GAAU,CAAC;IACjB,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC,CAAA;AACF,IAAI,MAAM,GAAU,CAAC;IACjB,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAOF,SAAS,GAAG,CAAC,CAAC,EAAC,CAAC,IAAI,OAAO,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;AAEjC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AAcnB,KAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/B,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,EAAE,EAAE,EAAE;IACjC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,GAAG;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,GAAG,EAAE,UAAS,EAAE,EAAE,EAAE;QAChB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;CACJ,CAAC;AAIF,IAAI,CAAC,GAAM,EAAG,CAAC"} +-//// https://sokra.github.io/source-map-visualization#base64,Ly8gQ09OVEVYVDogQ2xhc3MgcHJvcGVydHkgZGVjbGFyYXRpb24NCmNsYXNzIEMxVDUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLmZvbyA9IGZ1bmN0aW9uIChpKSB7DQogICAgICAgICAgICByZXR1cm4gaTsNCiAgICAgICAgfTsNCiAgICB9DQp9DQovLyBDT05URVhUOiBNb2R1bGUgcHJvcGVydHkgZGVjbGFyYXRpb24NCnZhciBDMlQ1Ow0KKGZ1bmN0aW9uIChDMlQ1KSB7DQogICAgQzJUNS5mb28gPSBmdW5jdGlvbiAoaSkgew0KICAgICAgICByZXR1cm4gaTsNCiAgICB9Ow0KfSkoQzJUNSB8fCAoQzJUNSA9IHt9KSk7DQovLyBDT05URVhUOiBWYXJpYWJsZSBkZWNsYXJhdGlvbg0KdmFyIGMzdDEgPSAoZnVuY3Rpb24gKHMpIHsgcmV0dXJuIHM7IH0pOw0KdmFyIGMzdDIgPSAoew0KICAgIG46IDENCn0pOw0KdmFyIGMzdDMgPSBbXTsNCnZhciBjM3Q0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gKHt9KTsgfTsNCnZhciBjM3Q1ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuICh7fSk7IH07DQp2YXIgYzN0NiA9IGZ1bmN0aW9uIChuLCBzKSB7IHJldHVybiAoe30pOyB9Ow0KdmFyIGMzdDcgPSBmdW5jdGlvbiAobikgeyByZXR1cm4gbjsgfTsNCnZhciBjM3Q4ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuIG47IH07DQp2YXIgYzN0OSA9IFtbXSwgW11dOw0KdmFyIGMzdDEwID0gWyh7fSksICh7fSldOw0KdmFyIGMzdDExID0gW2Z1bmN0aW9uIChuLCBzKSB7IHJldHVybiBzOyB9XTsNCnZhciBjM3QxMiA9IHsNCiAgICBmb286ICh7fSkNCn07DQp2YXIgYzN0MTMgPSAoew0KICAgIGY6IGZ1bmN0aW9uIChpLCBzKSB7IHJldHVybiBzOyB9DQp9KTsNCnZhciBjM3QxNCA9ICh7DQogICAgYTogW10NCn0pOw0KLy8gQ09OVEVYVDogQ2xhc3MgcHJvcGVydHkgYXNzaWdubWVudA0KY2xhc3MgQzRUNSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuZm9vID0gZnVuY3Rpb24gKGksIHMpIHsNCiAgICAgICAgICAgIHJldHVybiBzOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCi8vIENPTlRFWFQ6IE1vZHVsZSBwcm9wZXJ0eSBhc3NpZ25tZW50DQp2YXIgQzVUNTsNCihmdW5jdGlvbiAoQzVUNSkgew0KICAgIEM1VDUuZm9vID0gZnVuY3Rpb24gKGksIHMpIHsNCiAgICAgICAgcmV0dXJuIHM7DQogICAgfTsNCn0pKEM1VDUgfHwgKEM1VDUgPSB7fSkpOw0KLy8gQ09OVEVYVDogVmFyaWFibGUgYXNzaWdubWVudA0KdmFyIGM2dDU7DQpjNnQ1ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuICh7fSk7IH07DQovLyBDT05URVhUOiBBcnJheSBpbmRleCBhc3NpZ25tZW50DQp2YXIgYzd0MjsNCmM3dDJbMF0gPSAoeyBuOiAxIH0pOw0KdmFyIG9iamM4ID0gKHt9KTsNCm9iamM4LnQxID0gKGZ1bmN0aW9uIChzKSB7IHJldHVybiBzOyB9KTsNCm9iamM4LnQyID0gKHsNCiAgICBuOiAxDQp9KTsNCm9iamM4LnQzID0gW107DQpvYmpjOC50NCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICh7fSk7IH07DQpvYmpjOC50NSA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiAoe30pOyB9Ow0Kb2JqYzgudDYgPSBmdW5jdGlvbiAobiwgcykgeyByZXR1cm4gKHt9KTsgfTsNCm9iamM4LnQ3ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuIG47IH07DQpvYmpjOC50OCA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiBuOyB9Ow0Kb2JqYzgudDkgPSBbW10sIFtdXTsNCm9iamM4LnQxMCA9IFsoe30pLCAoe30pXTsNCm9iamM4LnQxMSA9IFtmdW5jdGlvbiAobiwgcykgeyByZXR1cm4gczsgfV07DQpvYmpjOC50MTIgPSB7DQogICAgZm9vOiAoe30pDQp9Ow0Kb2JqYzgudDEzID0gKHsNCiAgICBmOiBmdW5jdGlvbiAoaSwgcykgeyByZXR1cm4gczsgfQ0KfSk7DQpvYmpjOC50MTQgPSAoew0KICAgIGE6IFtdDQp9KTsNCi8vIENPTlRFWFQ6IEZ1bmN0aW9uIGNhbGwNCmZ1bmN0aW9uIGM5dDUoZikgeyB9DQo7DQpjOXQ1KGZ1bmN0aW9uIChuKSB7DQogICAgcmV0dXJuICh7fSk7DQp9KTsNCi8vIENPTlRFWFQ6IFJldHVybiBzdGF0ZW1lbnQNCnZhciBjMTB0NSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZ1bmN0aW9uIChuKSB7IHJldHVybiAoe30pOyB9OyB9Ow0KLy8gQ09OVEVYVDogTmV3aW5nIGEgY2xhc3MNCmNsYXNzIEMxMXQ1IHsNCiAgICBjb25zdHJ1Y3RvcihmKSB7IH0NCn0NCjsNCnZhciBpID0gbmV3IEMxMXQ1KGZ1bmN0aW9uIChuKSB7IHJldHVybiAoe30pOyB9KTsNCi8vIENPTlRFWFQ6IFR5cGUgYW5ub3RhdGVkIGV4cHJlc3Npb24NCnZhciBjMTJ0MSA9IChmdW5jdGlvbiAocykgeyByZXR1cm4gczsgfSk7DQp2YXIgYzEydDIgPSAoew0KICAgIG46IDENCn0pOw0KdmFyIGMxMnQzID0gW107DQp2YXIgYzEydDQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAoe30pOyB9Ow0KdmFyIGMxMnQ1ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuICh7fSk7IH07DQp2YXIgYzEydDYgPSBmdW5jdGlvbiAobiwgcykgeyByZXR1cm4gKHt9KTsgfTsNCnZhciBjMTJ0NyA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiBuOyB9Ow0KdmFyIGMxMnQ4ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuIG47IH07DQp2YXIgYzEydDkgPSBbW10sIFtdXTsNCnZhciBjMTJ0MTAgPSBbKHt9KSwgKHt9KV07DQp2YXIgYzEydDExID0gW2Z1bmN0aW9uIChuLCBzKSB7IHJldHVybiBzOyB9XTsNCnZhciBjMTJ0MTIgPSB7DQogICAgZm9vOiAoe30pDQp9Ow0KdmFyIGMxMnQxMyA9ICh7DQogICAgZjogZnVuY3Rpb24gKGksIHMpIHsgcmV0dXJuIHM7IH0NCn0pOw0KdmFyIGMxMnQxNCA9ICh7DQogICAgYTogW10NCn0pOw0KZnVuY3Rpb24gRUYxKGEsIGIpIHsgcmV0dXJuIGEgKyBiOyB9DQp2YXIgZWZ2ID0gRUYxKDEsIDIpOw0KUG9pbnQub3JpZ2luID0gbmV3IFBvaW50KDAsIDApOw0KUG9pbnQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChkeCwgZHkpIHsNCiAgICByZXR1cm4gbmV3IFBvaW50KHRoaXMueCArIGR4LCB0aGlzLnkgKyBkeSk7DQp9Ow0KUG9pbnQucHJvdG90eXBlID0gew0KICAgIHg6IDAsDQogICAgeTogMCwNCiAgICBhZGQ6IGZ1bmN0aW9uIChkeCwgZHkpIHsNCiAgICAgICAgcmV0dXJuIG5ldyBQb2ludCh0aGlzLnggKyBkeCwgdGhpcy55ICsgZHkpOw0KICAgIH0NCn07DQp2YXIgeCA9IHt9Ow0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29udGV4dHVhbFR5cGluZy5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dHVhbFR5cGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHR1YWxUeXBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsc0NBQXNDO0FBQ3RDLE1BQU0sSUFBSTtJQUFWO1FBQ0ksUUFBRyxHQUFxQyxVQUFTLENBQUM7WUFDOUMsT0FBTyxDQUFDLENBQUM7UUFDYixDQUFDLENBQUE7SUFDTCxDQUFDO0NBQUE7QUFFRCx1Q0FBdUM7QUFDdkMsSUFBTyxJQUFJLENBSVY7QUFKRCxXQUFPLElBQUk7SUFDSSxRQUFHLEdBQXFDLFVBQVMsQ0FBQztRQUN6RCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUMsQ0FBQTtBQUNMLENBQUMsRUFKTSxJQUFJLEtBQUosSUFBSSxRQUlWO0FBRUQsZ0NBQWdDO0FBQ2hDLElBQUksSUFBSSxHQUEwQixDQUFDLFVBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0QsSUFBSSxJQUFJLEdBQVMsQ0FBQztJQUNkLENBQUMsRUFBRSxDQUFDO0NBQ1AsQ0FBQyxDQUFBO0FBQ0YsSUFBSSxJQUFJLEdBQWEsRUFBRSxDQUFDO0FBQ3hCLElBQUksSUFBSSxHQUFlLGNBQWEsT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBQ3hELElBQUksSUFBSSxHQUF3QixVQUFTLENBQUMsSUFBSSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFDbEUsSUFBSSxJQUFJLEdBQW1DLFVBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFDaEYsSUFBSSxJQUFJLEdBR0osVUFBUyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFOUIsSUFBSSxJQUFJLEdBQXFDLFVBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLElBQUksSUFBSSxHQUFlLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQy9CLElBQUksS0FBSyxHQUFXLENBQU8sQ0FBQyxFQUFFLENBQUMsRUFBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUMsSUFBSSxLQUFLLEdBQXdDLENBQUMsVUFBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEYsSUFBSSxLQUFLLEdBQVM7SUFDZCxHQUFHLEVBQVEsQ0FBQyxFQUFFLENBQUM7Q0FDbEIsQ0FBQTtBQUNELElBQUksS0FBSyxHQUFTLENBQUM7SUFDZixDQUFDLEVBQUUsVUFBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNsQyxDQUFDLENBQUE7QUFDRixJQUFJLEtBQUssR0FBUyxDQUFDO0lBQ2YsQ0FBQyxFQUFFLEVBQUU7Q0FDUixDQUFDLENBQUE7QUFFRixxQ0FBcUM7QUFDckMsTUFBTSxJQUFJO0lBRU47UUFDSSxJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLENBQUM7UUFDYixDQUFDLENBQUE7SUFDTCxDQUFDO0NBQ0o7QUFFRCxzQ0FBc0M7QUFDdEMsSUFBTyxJQUFJLENBS1Y7QUFMRCxXQUFPLElBQUk7SUFFUCxLQUFBLEdBQUcsR0FBRyxVQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDLENBQUE7QUFDTCxDQUFDLEVBTE0sSUFBSSxLQUFKLElBQUksUUFLVjtBQUVELCtCQUErQjtBQUMvQixJQUFJLElBQXlCLENBQUM7QUFDOUIsSUFBSSxHQUF3QixVQUFTLENBQUMsSUFBSSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFFOUQsa0NBQWtDO0FBQ2xDLElBQUksSUFBWSxDQUFDO0FBQ2pCLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBUyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7QUF1QnpCLElBQUksS0FBSyxHQWtCUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRXZCLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxVQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLEtBQUssQ0FBQyxFQUFFLEdBQVMsQ0FBQztJQUNkLENBQUMsRUFBRSxDQUFDO0NBQ1AsQ0FBQyxDQUFDO0FBQ0gsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDZCxLQUFLLENBQUMsRUFBRSxHQUFHLGNBQWEsT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBQzVDLEtBQUssQ0FBQyxFQUFFLEdBQUcsVUFBUyxDQUFDLElBQUksT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBQzdDLEtBQUssQ0FBQyxFQUFFLEdBQUcsVUFBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUNoRCxLQUFLLENBQUMsRUFBRSxHQUFHLFVBQVMsQ0FBUyxJQUFJLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0FBRTVDLEtBQUssQ0FBQyxFQUFFLEdBQUcsVUFBUyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztBQUNuQixLQUFLLENBQUMsR0FBRyxHQUFHLENBQU8sQ0FBQyxFQUFFLENBQUMsRUFBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNDLEtBQUssQ0FBQyxHQUFHLEdBQUc7SUFDUixHQUFHLEVBQVEsQ0FBQyxFQUFFLENBQUM7Q0FDbEIsQ0FBQTtBQUNELEtBQUssQ0FBQyxHQUFHLEdBQVMsQ0FBQztJQUNmLENBQUMsRUFBRSxVQUFTLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2xDLENBQUMsQ0FBQTtBQUNGLEtBQUssQ0FBQyxHQUFHLEdBQVMsQ0FBQztJQUNmLENBQUMsRUFBRSxFQUFFO0NBQ1IsQ0FBQyxDQUFBO0FBQ0YseUJBQXlCO0FBQ3pCLFNBQVMsSUFBSSxDQUFDLENBQXNCLElBQUcsQ0FBQztBQUFBLENBQUM7QUFDekMsSUFBSSxDQUFDLFVBQVMsQ0FBQztJQUNYLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQztBQUVILDRCQUE0QjtBQUM1QixJQUFJLEtBQUssR0FBOEIsY0FBYSxPQUFPLFVBQVMsQ0FBQyxJQUFJLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUUvRiwwQkFBMEI7QUFDMUIsTUFBTSxLQUFLO0lBQUcsWUFBWSxDQUFzQixJQUFJLENBQUM7Q0FBRTtBQUFBLENBQUM7QUFDeEQsSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsVUFBUyxDQUFDLElBQUksT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFckQscUNBQXFDO0FBQ3JDLElBQUksS0FBSyxHQUEyQixDQUFDLFVBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0QsSUFBSSxLQUFLLEdBQVUsQ0FBQztJQUNoQixDQUFDLEVBQUUsQ0FBQztDQUNQLENBQUMsQ0FBQztBQUNILElBQUksS0FBSyxHQUFjLEVBQUUsQ0FBQztBQUMxQixJQUFJLEtBQUssR0FBZ0IsY0FBYSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7QUFDMUQsSUFBSSxLQUFLLEdBQXlCLFVBQVMsQ0FBQyxJQUFJLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUNwRSxJQUFJLEtBQUssR0FBb0MsVUFBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUNsRixJQUFJLEtBQUssR0FHTixVQUFTLENBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztBQUVuQyxJQUFJLEtBQUssR0FBc0MsVUFBUyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekUsSUFBSSxLQUFLLEdBQWdCLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2pDLElBQUksTUFBTSxHQUFZLENBQU8sQ0FBQyxFQUFFLENBQUMsRUFBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDOUMsSUFBSSxNQUFNLEdBQXlDLENBQUMsVUFBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEYsSUFBSSxNQUFNLEdBQVU7SUFDaEIsR0FBRyxFQUFRLENBQUMsRUFBRSxDQUFDO0NBQ2xCLENBQUE7QUFDRCxJQUFJLE1BQU0sR0FBVSxDQUFDO0lBQ2pCLENBQUMsRUFBRSxVQUFTLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2xDLENBQUMsQ0FBQTtBQUNGLElBQUksTUFBTSxHQUFVLENBQUM7SUFDakIsQ0FBQyxFQUFFLEVBQUU7Q0FDUixDQUFDLENBQUE7QUFPRixTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFakMsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztBQWNuQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUUvQixLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUM7QUFFRixLQUFLLENBQUMsU0FBUyxHQUFHO0lBQ2QsQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLEdBQUcsRUFBRSxVQUFTLEVBQUUsRUFBRSxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0osQ0FBQztBQUlGLElBQUksQ0FBQyxHQUFNLEVBQUcsQ0FBQyJ9,Ly8gREVGQVVMVCBJTlRFUkZBQ0VTCmludGVyZmFjZSBJRm9vIHsKICAgIG46IG51bWJlcjsKICAgIHM6IHN0cmluZzsKICAgIGYoaTogbnVtYmVyLCBzOiBzdHJpbmcpOiBzdHJpbmc7CiAgICBhOiBudW1iZXJbXTsKfQoKaW50ZXJmYWNlIElCYXIgewogICAgZm9vOiBJRm9vOwp9CgovLyBDT05URVhUOiBDbGFzcyBwcm9wZXJ0eSBkZWNsYXJhdGlvbgpjbGFzcyBDMVQ1IHsKICAgIGZvbzogKGk6IG51bWJlciwgczogc3RyaW5nKSA9PiBudW1iZXIgPSBmdW5jdGlvbihpKSB7CiAgICAgICAgcmV0dXJuIGk7CiAgICB9Cn0KCi8vIENPTlRFWFQ6IE1vZHVsZSBwcm9wZXJ0eSBkZWNsYXJhdGlvbgptb2R1bGUgQzJUNSB7CiAgICBleHBvcnQgdmFyIGZvbzogKGk6IG51bWJlciwgczogc3RyaW5nKSA9PiBudW1iZXIgPSBmdW5jdGlvbihpKSB7CiAgICAgICAgcmV0dXJuIGk7CiAgICB9Cn0KCi8vIENPTlRFWFQ6IFZhcmlhYmxlIGRlY2xhcmF0aW9uCnZhciBjM3QxOiAoczogc3RyaW5nKSA9PiBzdHJpbmcgPSAoZnVuY3Rpb24ocykgeyByZXR1cm4gcyB9KTsKdmFyIGMzdDIgPSA8SUZvbz4oewogICAgbjogMQp9KQp2YXIgYzN0MzogbnVtYmVyW10gPSBbXTsKdmFyIGMzdDQ6ICgpID0+IElGb28gPSBmdW5jdGlvbigpIHsgcmV0dXJuIDxJRm9vPih7fSkgfTsKdmFyIGMzdDU6IChuOiBudW1iZXIpID0+IElGb28gPSBmdW5jdGlvbihuKSB7IHJldHVybiA8SUZvbz4oe30pIH07CnZhciBjM3Q2OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IElGb28gPSBmdW5jdGlvbihuLCBzKSB7IHJldHVybiA8SUZvbz4oe30pIH07CnZhciBjM3Q3OiB7CiAgICAobjogbnVtYmVyKTogbnVtYmVyOyAgICAKICAgIChzMTogc3RyaW5nKTogbnVtYmVyOwp9ID0gZnVuY3Rpb24obikgeyByZXR1cm4gbjsgfTsKCnZhciBjM3Q4OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlciA9IGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG47IH07CnZhciBjM3Q5OiBudW1iZXJbXVtdID0gW1tdLFtdXTsKdmFyIGMzdDEwOiBJRm9vW10gPSBbPElGb28+KHt9KSw8SUZvbz4oe30pXTsKdmFyIGMzdDExOiB7KG46IG51bWJlciwgczogc3RyaW5nKTogc3RyaW5nO31bXSA9IFtmdW5jdGlvbihuLCBzKSB7IHJldHVybiBzOyB9XTsKdmFyIGMzdDEyOiBJQmFyID0gewogICAgZm9vOiA8SUZvbz4oe30pCn0KdmFyIGMzdDEzID0gPElGb28+KHsKICAgIGY6IGZ1bmN0aW9uKGksIHMpIHsgcmV0dXJuIHM7IH0KfSkKdmFyIGMzdDE0ID0gPElGb28+KHsKICAgIGE6IFtdCn0pCgovLyBDT05URVhUOiBDbGFzcyBwcm9wZXJ0eSBhc3NpZ25tZW50CmNsYXNzIEM0VDUgewogICAgZm9vOiAoaTogbnVtYmVyLCBzOiBzdHJpbmcpID0+IHN0cmluZzsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuZm9vID0gZnVuY3Rpb24oaSwgcykgewogICAgICAgICAgICByZXR1cm4gczsKICAgICAgICB9CiAgICB9Cn0KCi8vIENPTlRFWFQ6IE1vZHVsZSBwcm9wZXJ0eSBhc3NpZ25tZW50Cm1vZHVsZSBDNVQ1IHsKICAgIGV4cG9ydCB2YXIgZm9vOiAoaTogbnVtYmVyLCBzOiBzdHJpbmcpID0+IHN0cmluZzsKICAgIGZvbyA9IGZ1bmN0aW9uKGksIHMpIHsKICAgICAgICByZXR1cm4gczsKICAgIH0KfQoKLy8gQ09OVEVYVDogVmFyaWFibGUgYXNzaWdubWVudAp2YXIgYzZ0NTogKG46IG51bWJlcikgPT4gSUZvbzsKYzZ0NSA9IDwobjogbnVtYmVyKSA9PiBJRm9vPmZ1bmN0aW9uKG4pIHsgcmV0dXJuIDxJRm9vPih7fSkgfTsKCi8vIENPTlRFWFQ6IEFycmF5IGluZGV4IGFzc2lnbm1lbnQKdmFyIGM3dDI6IElGb29bXTsKYzd0MlswXSA9IDxJRm9vPih7bjogMX0pOwoKLy8gQ09OVEVYVDogT2JqZWN0IHByb3BlcnR5IGFzc2lnbm1lbnQKaW50ZXJmYWNlIElQbGFjZUhvbGRlciB7CiAgICB0MTogKHM6IHN0cmluZykgPT4gc3RyaW5nOwogICAgdDI6IElGb287CiAgICB0MzogbnVtYmVyW107CiAgICB0NDogKCkgPT4gSUZvbzsKICAgIHQ1OiAobjogbnVtYmVyKSA9PiBJRm9vOwogICAgdDY6IChuOiBudW1iZXIsIHM6IHN0cmluZykgPT4gSUZvbzsKICAgIHQ3OiB7CiAgICAgICAgICAgIChuOiBudW1iZXIsIHM6IHN0cmluZyk6IG51bWJlcjsgICAgCiAgICAgICAgICAgIC8vKHMxOiBzdHJpbmcsIHMyOiBzdHJpbmcpOiBudW1iZXI7CiAgICAgICAgfTsKICAgIHQ4OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlcjsKICAgIHQ5OiBudW1iZXJbXVtdOwogICAgdDEwOiBJRm9vW107CiAgICB0MTE6IHsobjogbnVtYmVyLCBzOiBzdHJpbmcpOiBzdHJpbmc7fVtdOwogICAgdDEyOiBJQmFyOwogICAgdDEzOiBJRm9vOwogICAgdDE0OiBJRm9vOwogICAgfQoKdmFyIG9iamM4OiB7CiAgICB0MTogKHM6IHN0cmluZykgPT4gc3RyaW5nOwogICAgdDI6IElGb287CiAgICB0MzogbnVtYmVyW107CiAgICB0NDogKCkgPT4gSUZvbzsKICAgIHQ1OiAobjogbnVtYmVyKSA9PiBJRm9vOwogICAgdDY6IChuOiBudW1iZXIsIHM6IHN0cmluZykgPT4gSUZvbzsKICAgIHQ3OiB7CiAgICAgICAgICAgIChuOiBudW1iZXIsIHM6IHN0cmluZyk6IG51bWJlcjsgICAgCiAgICAgICAgICAgIC8vKHMxOiBzdHJpbmcsIHMyOiBzdHJpbmcpOiBudW1iZXI7CiAgICAgICAgfTsKICAgIHQ4OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlcjsKICAgIHQ5OiBudW1iZXJbXVtdOwogICAgdDEwOiBJRm9vW107CiAgICB0MTE6IHsobjogbnVtYmVyLCBzOiBzdHJpbmcpOiBzdHJpbmc7fVtdOwogICAgdDEyOiBJQmFyOwogICAgdDEzOiBJRm9vOwogICAgdDE0OiBJRm9vOwp9ID0gPElQbGFjZUhvbGRlcj4oe30pOwoKb2JqYzgudDEgPSAoZnVuY3Rpb24ocykgeyByZXR1cm4gcyB9KTsKb2JqYzgudDIgPSA8SUZvbz4oewogICAgbjogMQp9KTsKb2JqYzgudDMgPSBbXTsKb2JqYzgudDQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDxJRm9vPih7fSkgfTsKb2JqYzgudDUgPSBmdW5jdGlvbihuKSB7IHJldHVybiA8SUZvbz4oe30pIH07Cm9iamM4LnQ2ID0gZnVuY3Rpb24obiwgcykgeyByZXR1cm4gPElGb28+KHt9KSB9OwpvYmpjOC50NyA9IGZ1bmN0aW9uKG46IG51bWJlcikgeyByZXR1cm4gbiB9OwoKb2JqYzgudDggPSBmdW5jdGlvbihuKSB7IHJldHVybiBuOyB9OwpvYmpjOC50OSA9IFtbXSxbXV07Cm9iamM4LnQxMCA9IFs8SUZvbz4oe30pLDxJRm9vPih7fSldOwpvYmpjOC50MTEgPSBbZnVuY3Rpb24obiwgcykgeyByZXR1cm4gczsgfV07Cm9iamM4LnQxMiA9IHsKICAgIGZvbzogPElGb28+KHt9KQp9Cm9iamM4LnQxMyA9IDxJRm9vPih7CiAgICBmOiBmdW5jdGlvbihpLCBzKSB7IHJldHVybiBzOyB9Cn0pCm9iamM4LnQxNCA9IDxJRm9vPih7CiAgICBhOiBbXQp9KQovLyBDT05URVhUOiBGdW5jdGlvbiBjYWxsCmZ1bmN0aW9uIGM5dDUoZjogKG46IG51bWJlcikgPT4gSUZvbykge307CmM5dDUoZnVuY3Rpb24obikgewogICAgcmV0dXJuIDxJRm9vPih7fSk7Cn0pOwoKLy8gQ09OVEVYVDogUmV0dXJuIHN0YXRlbWVudAp2YXIgYzEwdDU6ICgpID0+IChuOiBudW1iZXIpID0+IElGb28gPSBmdW5jdGlvbigpIHsgcmV0dXJuIGZ1bmN0aW9uKG4pIHsgcmV0dXJuIDxJRm9vPih7fSkgfSB9OwoKLy8gQ09OVEVYVDogTmV3aW5nIGEgY2xhc3MKY2xhc3MgQzExdDUgeyBjb25zdHJ1Y3RvcihmOiAobjogbnVtYmVyKSA9PiBJRm9vKSB7IH0gfTsKdmFyIGkgPSBuZXcgQzExdDUoZnVuY3Rpb24obikgeyByZXR1cm4gPElGb28+KHt9KSB9KTsKCi8vIENPTlRFWFQ6IFR5cGUgYW5ub3RhdGVkIGV4cHJlc3Npb24KdmFyIGMxMnQxID0gPChzOiBzdHJpbmcpID0+IHN0cmluZz4gKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMgfSk7CnZhciBjMTJ0MiA9IDxJRm9vPiAoewogICAgbjogMQp9KTsKdmFyIGMxMnQzID0gPG51bWJlcltdPiBbXTsKdmFyIGMxMnQ0ID0gPCgpID0+IElGb28+IGZ1bmN0aW9uKCkgeyByZXR1cm4gPElGb28+KHt9KSB9Owp2YXIgYzEydDUgPSA8KG46IG51bWJlcikgPT4gSUZvbz4gZnVuY3Rpb24obikgeyByZXR1cm4gPElGb28+KHt9KSB9Owp2YXIgYzEydDYgPSA8KG46IG51bWJlciwgczogc3RyaW5nKSA9PiBJRm9vPiBmdW5jdGlvbihuLCBzKSB7IHJldHVybiA8SUZvbz4oe30pIH07CnZhciBjMTJ0NyA9IDx7CiAgICAobjogbnVtYmVyLCBzOiBzdHJpbmcpOiBudW1iZXI7ICAgIAogICAgLy8oczE6IHN0cmluZywgczI6IHN0cmluZyk6IG51bWJlcjsKfT4gZnVuY3Rpb24objpudW1iZXIpIHsgcmV0dXJuIG4gfTsKCnZhciBjMTJ0OCA9IDwobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlcj4gZnVuY3Rpb24obikgeyByZXR1cm4gbjsgfTsKdmFyIGMxMnQ5ID0gPG51bWJlcltdW10+IFtbXSxbXV07CnZhciBjMTJ0MTAgPSA8SUZvb1tdPiBbPElGb28+KHt9KSw8SUZvbz4oe30pXTsKdmFyIGMxMnQxMSA9IDx7KG46IG51bWJlciwgczogc3RyaW5nKTogc3RyaW5nO31bXT4gW2Z1bmN0aW9uKG4sIHMpIHsgcmV0dXJuIHM7IH1dOwp2YXIgYzEydDEyID0gPElCYXI+IHsKICAgIGZvbzogPElGb28+KHt9KQp9CnZhciBjMTJ0MTMgPSA8SUZvbz4gKHsKICAgIGY6IGZ1bmN0aW9uKGksIHMpIHsgcmV0dXJuIHM7IH0KfSkKdmFyIGMxMnQxNCA9IDxJRm9vPiAoewogICAgYTogW10KfSkKCi8vIENPTlRFWFQ6IENvbnRleHR1YWwgdHlwaW5nIGRlY2xhcmF0aW9ucwoKLy8gY29udGV4dHVhbGx5IHR5cGluZyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMKZGVjbGFyZSBmdW5jdGlvbiBFRjEoYTpudW1iZXIsIGI6bnVtYmVyKTpudW1iZXI7CgpmdW5jdGlvbiBFRjEoYSxiKSB7IHJldHVybiBhK2I7IH0KCnZhciBlZnYgPSBFRjEoMSwyKTsKCgovLyBjb250ZXh0dWFsbHkgdHlwaW5nIGZyb20gYW1iaWVudCBjbGFzcyBkZWNsYXJhdGlvbnMKZGVjbGFyZSBjbGFzcyBQb2ludAp7CiAgICAgIGNvbnN0cnVjdG9yKHg6IG51bWJlciwgeTogbnVtYmVyKTsKICAgICAgeDogbnVtYmVyOwogICAgICB5OiBudW1iZXI7CiAgICAgIGFkZChkeDogbnVtYmVyLCBkeTogbnVtYmVyKTogUG9pbnQ7CiAgICAgIHN0YXRpYyBvcmlnaW46IFBvaW50OwoKfQoKUG9pbnQub3JpZ2luID0gbmV3IFBvaW50KDAsIDApOwoKUG9pbnQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKGR4LCBkeSkgewogICAgcmV0dXJuIG5ldyBQb2ludCh0aGlzLnggKyBkeCwgdGhpcy55ICsgZHkpOwp9OwoKUG9pbnQucHJvdG90eXBlID0gewogICAgeDogMCwKICAgIHk6IDAsCiAgICBhZGQ6IGZ1bmN0aW9uKGR4LCBkeSkgewogICAgICAgIHJldHVybiBuZXcgUG9pbnQodGhpcy54ICsgZHgsIHRoaXMueSArIGR5KTsKICAgIH0KfTsKCmludGVyZmFjZSBBIHsgeDogc3RyaW5nOyB9CmludGVyZmFjZSBCIGV4dGVuZHMgQSB7IH0KdmFyIHg6IEIgPSB7IH07Cg== +{"version":3,"file":"contextualTyping.js","sourceRoot":"","sources":["contextualTyping.ts"],"names":[],"mappings":"AAYA,sCAAsC;AACtC,MAAM,IAAI;IACN,GAAG,GAAqC,UAAS,CAAC,EAAE;QAChD,OAAO,CAAC,CAAC;IAAA,CACZ,CAAA;CACJ;AAED,uCAAuC;AACvC,IAAO,IAIN;AAJD,WAAO,IAAI,EAAC;IACG,QAAG,GAAqC,UAAS,CAAC,EAAE;QAC3D,OAAO,CAAC,CAAC;IAAA,CACZ,CAAA;AAAA,CACJ,EAJM,IAAI,KAAJ,IAAI,QAIV;AAED,gCAAgC;AAChC,IAAI,IAAI,GAA0B,CAAC,UAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA,CAAA,CAAE,CAAC,CAAC;AAC7D,IAAI,IAAI,GAAS,CAAC;IACd,CAAC,EAAE,CAAC;CACP,CAAC,CAAA;AACF,IAAI,IAAI,GAAa,EAAE,CAAC;AACxB,IAAI,IAAI,GAAe,YAAW,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC;AACxD,IAAI,IAAI,GAAwB,UAAS,CAAC,EAAE,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC;AAClE,IAAI,IAAI,GAAmC,UAAS,CAAC,EAAE,CAAC,EAAE,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC;AAChF,IAAI,IAAI,GAGJ,UAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA,CAAE,CAAC;AAE9B,IAAI,IAAI,GAAqC,UAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA,CAAE,CAAC;AACvE,IAAI,IAAI,GAAe,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AAC/B,IAAI,KAAK,GAAW,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAI,KAAK,GAAwC,CAAC,UAAS,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC;AAChF,IAAI,KAAK,GAAS;IACd,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,IAAI,KAAK,GAAS,CAAC;IACf,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA,CAAE;CAClC,CAAC,CAAA;AACF,IAAI,KAAK,GAAS,CAAC;IACf,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAEF,qCAAqC;AACrC,MAAM,IAAI;IACN,GAAG,CAAmC;IACtC,cAAc;QACV,IAAI,CAAC,GAAG,GAAG,UAAS,CAAC,EAAE,CAAC,EAAE;YACtB,OAAO,CAAC,CAAC;QAAA,CACZ,CAAA;IAAA,CACJ;CACJ;AAED,sCAAsC;AACtC,IAAO,IAKN;AALD,WAAO,IAAI,EAAC;IAER,QAAG,GAAG,UAAS,CAAC,EAAE,CAAC,EAAE;QACjB,OAAO,CAAC,CAAC;IAAA,CACZ,CAAA;AAAA,CACJ,EALM,IAAI,KAAJ,IAAI,QAKV;AAED,+BAA+B;AAC/B,IAAI,IAAyB,CAAC;AAC9B,IAAI,GAAwB,UAAS,CAAC,EAAE,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC;AAE9D,kCAAkC;AAClC,IAAI,IAAY,CAAC;AACjB,IAAI,CAAC,CAAC,CAAC,GAAS,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;AAuBzB,IAAI,KAAK,GAkBS,CAAC,EAAE,CAAC,CAAC;AAEvB,KAAK,CAAC,EAAE,GAAG,CAAC,UAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA,CAAA,CAAE,CAAC,CAAC;AACtC,KAAK,CAAC,EAAE,GAAS,CAAC;IACd,CAAC,EAAE,CAAC;CACP,CAAC,CAAC;AACH,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;AACd,KAAK,CAAC,EAAE,GAAG,YAAW,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC;AAC5C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,EAAE,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC;AAC7C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,EAAE,CAAC,EAAE,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC;AAChD,KAAK,CAAC,EAAE,GAAG,UAAS,CAAS,EAAE,EAAE,OAAO,CAAC,CAAA,CAAA,CAAE,CAAC;AAE5C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA,CAAE,CAAC;AACrC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AACnB,KAAK,CAAC,GAAG,GAAG,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAS,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC;AAC3C,KAAK,CAAC,GAAG,GAAG;IACR,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,KAAK,CAAC,GAAG,GAAS,CAAC;IACf,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA,CAAE;CAClC,CAAC,CAAA;AACF,KAAK,CAAC,GAAG,GAAS,CAAC;IACf,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AACF,yBAAyB;AACzB,SAAS,IAAI,CAAC,CAAsB,EAAE,EAAC,CAAC;AAAA,CAAC;AACzC,IAAI,CAAC,UAAS,CAAC,EAAE;IACb,OAAa,CAAC,EAAE,CAAC,CAAC;AAAA,CACrB,CAAC,CAAC;AAEH,4BAA4B;AAC5B,IAAI,KAAK,GAA8B,YAAW,EAAE,OAAO,UAAS,CAAC,EAAE,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAA,CAAA,CAAE,CAAC;AAE/F,0BAA0B;AAC1B,MAAM,KAAK;IAAG,YAAY,CAAsB,EAAE,EAAC,CAAE;CAAE;AAAA,CAAC;AACxD,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,UAAS,CAAC,EAAE,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC,CAAC;AAErD,qCAAqC;AACrC,IAAI,KAAK,GAA2B,CAAC,UAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA,CAAA,CAAE,CAAC,CAAC;AAC/D,IAAI,KAAK,GAAU,CAAC;IAChB,CAAC,EAAE,CAAC;CACP,CAAC,CAAC;AACH,IAAI,KAAK,GAAc,EAAE,CAAC;AAC1B,IAAI,KAAK,GAAgB,YAAW,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC;AAC1D,IAAI,KAAK,GAAyB,UAAS,CAAC,EAAE,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC;AACpE,IAAI,KAAK,GAAoC,UAAS,CAAC,EAAE,CAAC,EAAE,EAAE,OAAa,CAAC,EAAE,CAAC,CAAA,CAAA,CAAE,CAAC;AAClF,IAAI,KAAK,GAGN,UAAS,CAAQ,EAAE,EAAE,OAAO,CAAC,CAAA,CAAA,CAAE,CAAC;AAEnC,IAAI,KAAK,GAAsC,UAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA,CAAE,CAAC;AACzE,IAAI,KAAK,GAAgB,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AACjC,IAAI,MAAM,GAAY,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAI,MAAM,GAAyC,CAAC,UAAS,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC;AAClF,IAAI,MAAM,GAAU;IAChB,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,IAAI,MAAM,GAAU,CAAC;IACjB,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA,CAAE;CAClC,CAAC,CAAA;AACF,IAAI,MAAM,GAAU,CAAC;IACjB,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAOF,SAAS,GAAG,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,OAAO,CAAC,GAAC,CAAC,CAAC,CAAA,CAAE;AAEjC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AAcnB,KAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/B,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,EAAE,EAAE,EAAE,EAAE;IACnC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAAA,CAC9C,CAAC;AAEF,KAAK,CAAC,SAAS,GAAG;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,GAAG,EAAE,UAAS,EAAE,EAAE,EAAE,EAAE;QAClB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAAA,CAC9C;CACJ,CAAC;AAIF,IAAI,CAAC,GAAM,EAAG,CAAC"} +//// https://sokra.github.io/source-map-visualization#base64,Ly8gQ09OVEVYVDogQ2xhc3MgcHJvcGVydHkgZGVjbGFyYXRpb24NCmNsYXNzIEMxVDUgew0KICAgIGZvbyA9IGZ1bmN0aW9uIChpKSB7DQogICAgICAgIHJldHVybiBpOw0KICAgIH07DQp9DQovLyBDT05URVhUOiBNb2R1bGUgcHJvcGVydHkgZGVjbGFyYXRpb24NCnZhciBDMlQ1Ow0KKGZ1bmN0aW9uIChDMlQ1KSB7DQogICAgQzJUNS5mb28gPSBmdW5jdGlvbiAoaSkgew0KICAgICAgICByZXR1cm4gaTsNCiAgICB9Ow0KfSkoQzJUNSB8fCAoQzJUNSA9IHt9KSk7DQovLyBDT05URVhUOiBWYXJpYWJsZSBkZWNsYXJhdGlvbg0KdmFyIGMzdDEgPSAoZnVuY3Rpb24gKHMpIHsgcmV0dXJuIHM7IH0pOw0KdmFyIGMzdDIgPSAoew0KICAgIG46IDENCn0pOw0KdmFyIGMzdDMgPSBbXTsNCnZhciBjM3Q0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gKHt9KTsgfTsNCnZhciBjM3Q1ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuICh7fSk7IH07DQp2YXIgYzN0NiA9IGZ1bmN0aW9uIChuLCBzKSB7IHJldHVybiAoe30pOyB9Ow0KdmFyIGMzdDcgPSBmdW5jdGlvbiAobikgeyByZXR1cm4gbjsgfTsNCnZhciBjM3Q4ID0gZnVuY3Rpb24gKG4pIHsgcmV0dXJuIG47IH07DQp2YXIgYzN0OSA9IFtbXSwgW11dOw0KdmFyIGMzdDEwID0gWyh7fSksICh7fSldOw0KdmFyIGMzdDExID0gW2Z1bmN0aW9uIChuLCBzKSB7IHJldHVybiBzOyB9XTsNCnZhciBjM3QxMiA9IHsNCiAgICBmb286ICh7fSkNCn07DQp2YXIgYzN0MTMgPSAoew0KICAgIGY6IGZ1bmN0aW9uIChpLCBzKSB7IHJldHVybiBzOyB9DQp9KTsNCnZhciBjM3QxNCA9ICh7DQogICAgYTogW10NCn0pOw0KLy8gQ09OVEVYVDogQ2xhc3MgcHJvcGVydHkgYXNzaWdubWVudA0KY2xhc3MgQzRUNSB7DQogICAgZm9vOw0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLmZvbyA9IGZ1bmN0aW9uIChpLCBzKSB7DQogICAgICAgICAgICByZXR1cm4gczsNCiAgICAgICAgfTsNCiAgICB9DQp9DQovLyBDT05URVhUOiBNb2R1bGUgcHJvcGVydHkgYXNzaWdubWVudA0KdmFyIEM1VDU7DQooZnVuY3Rpb24gKEM1VDUpIHsNCiAgICBDNVQ1LmZvbyA9IGZ1bmN0aW9uIChpLCBzKSB7DQogICAgICAgIHJldHVybiBzOw0KICAgIH07DQp9KShDNVQ1IHx8IChDNVQ1ID0ge30pKTsNCi8vIENPTlRFWFQ6IFZhcmlhYmxlIGFzc2lnbm1lbnQNCnZhciBjNnQ1Ow0KYzZ0NSA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiAoe30pOyB9Ow0KLy8gQ09OVEVYVDogQXJyYXkgaW5kZXggYXNzaWdubWVudA0KdmFyIGM3dDI7DQpjN3QyWzBdID0gKHsgbjogMSB9KTsNCnZhciBvYmpjOCA9ICh7fSk7DQpvYmpjOC50MSA9IChmdW5jdGlvbiAocykgeyByZXR1cm4gczsgfSk7DQpvYmpjOC50MiA9ICh7DQogICAgbjogMQ0KfSk7DQpvYmpjOC50MyA9IFtdOw0Kb2JqYzgudDQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAoe30pOyB9Ow0Kb2JqYzgudDUgPSBmdW5jdGlvbiAobikgeyByZXR1cm4gKHt9KTsgfTsNCm9iamM4LnQ2ID0gZnVuY3Rpb24gKG4sIHMpIHsgcmV0dXJuICh7fSk7IH07DQpvYmpjOC50NyA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiBuOyB9Ow0Kb2JqYzgudDggPSBmdW5jdGlvbiAobikgeyByZXR1cm4gbjsgfTsNCm9iamM4LnQ5ID0gW1tdLCBbXV07DQpvYmpjOC50MTAgPSBbKHt9KSwgKHt9KV07DQpvYmpjOC50MTEgPSBbZnVuY3Rpb24gKG4sIHMpIHsgcmV0dXJuIHM7IH1dOw0Kb2JqYzgudDEyID0gew0KICAgIGZvbzogKHt9KQ0KfTsNCm9iamM4LnQxMyA9ICh7DQogICAgZjogZnVuY3Rpb24gKGksIHMpIHsgcmV0dXJuIHM7IH0NCn0pOw0Kb2JqYzgudDE0ID0gKHsNCiAgICBhOiBbXQ0KfSk7DQovLyBDT05URVhUOiBGdW5jdGlvbiBjYWxsDQpmdW5jdGlvbiBjOXQ1KGYpIHsgfQ0KOw0KYzl0NShmdW5jdGlvbiAobikgew0KICAgIHJldHVybiAoe30pOw0KfSk7DQovLyBDT05URVhUOiBSZXR1cm4gc3RhdGVtZW50DQp2YXIgYzEwdDUgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBmdW5jdGlvbiAobikgeyByZXR1cm4gKHt9KTsgfTsgfTsNCi8vIENPTlRFWFQ6IE5ld2luZyBhIGNsYXNzDQpjbGFzcyBDMTF0NSB7DQogICAgY29uc3RydWN0b3IoZikgeyB9DQp9DQo7DQp2YXIgaSA9IG5ldyBDMTF0NShmdW5jdGlvbiAobikgeyByZXR1cm4gKHt9KTsgfSk7DQovLyBDT05URVhUOiBUeXBlIGFubm90YXRlZCBleHByZXNzaW9uDQp2YXIgYzEydDEgPSAoZnVuY3Rpb24gKHMpIHsgcmV0dXJuIHM7IH0pOw0KdmFyIGMxMnQyID0gKHsNCiAgICBuOiAxDQp9KTsNCnZhciBjMTJ0MyA9IFtdOw0KdmFyIGMxMnQ0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gKHt9KTsgfTsNCnZhciBjMTJ0NSA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiAoe30pOyB9Ow0KdmFyIGMxMnQ2ID0gZnVuY3Rpb24gKG4sIHMpIHsgcmV0dXJuICh7fSk7IH07DQp2YXIgYzEydDcgPSBmdW5jdGlvbiAobikgeyByZXR1cm4gbjsgfTsNCnZhciBjMTJ0OCA9IGZ1bmN0aW9uIChuKSB7IHJldHVybiBuOyB9Ow0KdmFyIGMxMnQ5ID0gW1tdLCBbXV07DQp2YXIgYzEydDEwID0gWyh7fSksICh7fSldOw0KdmFyIGMxMnQxMSA9IFtmdW5jdGlvbiAobiwgcykgeyByZXR1cm4gczsgfV07DQp2YXIgYzEydDEyID0gew0KICAgIGZvbzogKHt9KQ0KfTsNCnZhciBjMTJ0MTMgPSAoew0KICAgIGY6IGZ1bmN0aW9uIChpLCBzKSB7IHJldHVybiBzOyB9DQp9KTsNCnZhciBjMTJ0MTQgPSAoew0KICAgIGE6IFtdDQp9KTsNCmZ1bmN0aW9uIEVGMShhLCBiKSB7IHJldHVybiBhICsgYjsgfQ0KdmFyIGVmdiA9IEVGMSgxLCAyKTsNClBvaW50Lm9yaWdpbiA9IG5ldyBQb2ludCgwLCAwKTsNClBvaW50LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAoZHgsIGR5KSB7DQogICAgcmV0dXJuIG5ldyBQb2ludCh0aGlzLnggKyBkeCwgdGhpcy55ICsgZHkpOw0KfTsNClBvaW50LnByb3RvdHlwZSA9IHsNCiAgICB4OiAwLA0KICAgIHk6IDAsDQogICAgYWRkOiBmdW5jdGlvbiAoZHgsIGR5KSB7DQogICAgICAgIHJldHVybiBuZXcgUG9pbnQodGhpcy54ICsgZHgsIHRoaXMueSArIGR5KTsNCiAgICB9DQp9Ow0KdmFyIHggPSB7fTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnRleHR1YWxUeXBpbmcuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dHVhbFR5cGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHR1YWxUeXBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsc0NBQXNDO0FBQ3RDLE1BQU0sSUFBSTtJQUNOLEdBQUcsR0FBcUMsVUFBUyxDQUFDLEVBQUU7UUFDaEQsT0FBTyxDQUFDLENBQUM7SUFBQSxDQUNaLENBQUE7Q0FDSjtBQUVELHVDQUF1QztBQUN2QyxJQUFPLElBSU47QUFKRCxXQUFPLElBQUksRUFBQztJQUNHLFFBQUcsR0FBcUMsVUFBUyxDQUFDLEVBQUU7UUFDM0QsT0FBTyxDQUFDLENBQUM7SUFBQSxDQUNaLENBQUE7QUFBQSxDQUNKLEVBSk0sSUFBSSxLQUFKLElBQUksUUFJVjtBQUVELGdDQUFnQztBQUNoQyxJQUFJLElBQUksR0FBMEIsQ0FBQyxVQUFTLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBRSxDQUFDLENBQUM7QUFDN0QsSUFBSSxJQUFJLEdBQVMsQ0FBQztJQUNkLENBQUMsRUFBRSxDQUFDO0NBQ1AsQ0FBQyxDQUFBO0FBQ0YsSUFBSSxJQUFJLEdBQWEsRUFBRSxDQUFDO0FBQ3hCLElBQUksSUFBSSxHQUFlLFlBQVcsRUFBRSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFFLENBQUM7QUFDeEQsSUFBSSxJQUFJLEdBQXdCLFVBQVMsQ0FBQyxFQUFFLEVBQUUsT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBRSxDQUFDO0FBQ2xFLElBQUksSUFBSSxHQUFtQyxVQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFFLENBQUM7QUFDaEYsSUFBSSxJQUFJLEdBR0osVUFBUyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBLENBQUUsQ0FBQztBQUU5QixJQUFJLElBQUksR0FBcUMsVUFBUyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBLENBQUUsQ0FBQztBQUN2RSxJQUFJLElBQUksR0FBZSxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztBQUMvQixJQUFJLEtBQUssR0FBVyxDQUFPLENBQUMsRUFBRSxDQUFDLEVBQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVDLElBQUksS0FBSyxHQUF3QyxDQUFDLFVBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUEsQ0FBRSxDQUFDLENBQUM7QUFDaEYsSUFBSSxLQUFLLEdBQVM7SUFDZCxHQUFHLEVBQVEsQ0FBQyxFQUFFLENBQUM7Q0FDbEIsQ0FBQTtBQUNELElBQUksS0FBSyxHQUFTLENBQUM7SUFDZixDQUFDLEVBQUUsVUFBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQSxDQUFFO0NBQ2xDLENBQUMsQ0FBQTtBQUNGLElBQUksS0FBSyxHQUFTLENBQUM7SUFDZixDQUFDLEVBQUUsRUFBRTtDQUNSLENBQUMsQ0FBQTtBQUVGLHFDQUFxQztBQUNyQyxNQUFNLElBQUk7SUFDTixHQUFHLENBQW1DO0lBQ3RDLGNBQWM7UUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN0QixPQUFPLENBQUMsQ0FBQztRQUFBLENBQ1osQ0FBQTtJQUFBLENBQ0o7Q0FDSjtBQUVELHNDQUFzQztBQUN0QyxJQUFPLElBS047QUFMRCxXQUFPLElBQUksRUFBQztJQUVSLFFBQUcsR0FBRyxVQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDakIsT0FBTyxDQUFDLENBQUM7SUFBQSxDQUNaLENBQUE7QUFBQSxDQUNKLEVBTE0sSUFBSSxLQUFKLElBQUksUUFLVjtBQUVELCtCQUErQjtBQUMvQixJQUFJLElBQXlCLENBQUM7QUFDOUIsSUFBSSxHQUF3QixVQUFTLENBQUMsRUFBRSxFQUFFLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUUsQ0FBQztBQUU5RCxrQ0FBa0M7QUFDbEMsSUFBSSxJQUFZLENBQUM7QUFDakIsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFTLENBQUMsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztBQXVCekIsSUFBSSxLQUFLLEdBa0JTLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFdkIsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLFVBQVMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFFLENBQUMsQ0FBQztBQUN0QyxLQUFLLENBQUMsRUFBRSxHQUFTLENBQUM7SUFDZCxDQUFDLEVBQUUsQ0FBQztDQUNQLENBQUMsQ0FBQztBQUNILEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQ2QsS0FBSyxDQUFDLEVBQUUsR0FBRyxZQUFXLEVBQUUsT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBRSxDQUFDO0FBQzVDLEtBQUssQ0FBQyxFQUFFLEdBQUcsVUFBUyxDQUFDLEVBQUUsRUFBRSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFFLENBQUM7QUFDN0MsS0FBSyxDQUFDLEVBQUUsR0FBRyxVQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFhLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFFLENBQUM7QUFDaEQsS0FBSyxDQUFDLEVBQUUsR0FBRyxVQUFTLENBQVMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBLENBQUEsQ0FBRSxDQUFDO0FBRTVDLEtBQUssQ0FBQyxFQUFFLEdBQUcsVUFBUyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBLENBQUUsQ0FBQztBQUNyQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ25CLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNwQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQSxDQUFFLENBQUMsQ0FBQztBQUMzQyxLQUFLLENBQUMsR0FBRyxHQUFHO0lBQ1IsR0FBRyxFQUFRLENBQUMsRUFBRSxDQUFDO0NBQ2xCLENBQUE7QUFDRCxLQUFLLENBQUMsR0FBRyxHQUFTLENBQUM7SUFDZixDQUFDLEVBQUUsVUFBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQSxDQUFFO0NBQ2xDLENBQUMsQ0FBQTtBQUNGLEtBQUssQ0FBQyxHQUFHLEdBQVMsQ0FBQztJQUNmLENBQUMsRUFBRSxFQUFFO0NBQ1IsQ0FBQyxDQUFBO0FBQ0YseUJBQXlCO0FBQ3pCLFNBQVMsSUFBSSxDQUFDLENBQXNCLEVBQUUsRUFBQyxDQUFDO0FBQUEsQ0FBQztBQUN6QyxJQUFJLENBQUMsVUFBUyxDQUFDLEVBQUU7SUFDYixPQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7QUFBQSxDQUNyQixDQUFDLENBQUM7QUFFSCw0QkFBNEI7QUFDNUIsSUFBSSxLQUFLLEdBQThCLFlBQVcsRUFBRSxPQUFPLFVBQVMsQ0FBQyxFQUFFLEVBQUUsT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBRSxDQUFBLENBQUEsQ0FBRSxDQUFDO0FBRS9GLDBCQUEwQjtBQUMxQixNQUFNLEtBQUs7SUFBRyxZQUFZLENBQXNCLEVBQUUsRUFBQyxDQUFFO0NBQUU7QUFBQSxDQUFDO0FBQ3hELElBQUksQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLFVBQVMsQ0FBQyxFQUFFLEVBQUUsT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBRSxDQUFDLENBQUM7QUFFckQscUNBQXFDO0FBQ3JDLElBQUksS0FBSyxHQUEyQixDQUFDLFVBQVMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFFLENBQUMsQ0FBQztBQUMvRCxJQUFJLEtBQUssR0FBVSxDQUFDO0lBQ2hCLENBQUMsRUFBRSxDQUFDO0NBQ1AsQ0FBQyxDQUFDO0FBQ0gsSUFBSSxLQUFLLEdBQWMsRUFBRSxDQUFDO0FBQzFCLElBQUksS0FBSyxHQUFnQixZQUFXLEVBQUUsT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBRSxDQUFDO0FBQzFELElBQUksS0FBSyxHQUF5QixVQUFTLENBQUMsRUFBRSxFQUFFLE9BQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFBLENBQUUsQ0FBQztBQUNwRSxJQUFJLEtBQUssR0FBb0MsVUFBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUEsQ0FBRSxDQUFDO0FBQ2xGLElBQUksS0FBSyxHQUdOLFVBQVMsQ0FBUSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUEsQ0FBQSxDQUFFLENBQUM7QUFFbkMsSUFBSSxLQUFLLEdBQXNDLFVBQVMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQSxDQUFFLENBQUM7QUFDekUsSUFBSSxLQUFLLEdBQWdCLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2pDLElBQUksTUFBTSxHQUFZLENBQU8sQ0FBQyxFQUFFLENBQUMsRUFBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDOUMsSUFBSSxNQUFNLEdBQXlDLENBQUMsVUFBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQSxDQUFFLENBQUMsQ0FBQztBQUNsRixJQUFJLE1BQU0sR0FBVTtJQUNoQixHQUFHLEVBQVEsQ0FBQyxFQUFFLENBQUM7Q0FDbEIsQ0FBQTtBQUNELElBQUksTUFBTSxHQUFVLENBQUM7SUFDakIsQ0FBQyxFQUFFLFVBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUEsQ0FBRTtDQUNsQyxDQUFDLENBQUE7QUFDRixJQUFJLE1BQU0sR0FBVSxDQUFDO0lBQ2pCLENBQUMsRUFBRSxFQUFFO0NBQ1IsQ0FBQyxDQUFBO0FBT0YsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFBLENBQUU7QUFFakMsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztBQWNuQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUUvQixLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUU7SUFDbkMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQUEsQ0FDOUMsQ0FBQztBQUVGLEtBQUssQ0FBQyxTQUFTLEdBQUc7SUFDZCxDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osR0FBRyxFQUFFLFVBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUNsQixPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFBQSxDQUM5QztDQUNKLENBQUM7QUFJRixJQUFJLENBQUMsR0FBTSxFQUFHLENBQUMifQ==,Ly8gREVGQVVMVCBJTlRFUkZBQ0VTCmludGVyZmFjZSBJRm9vIHsKICAgIG46IG51bWJlcjsKICAgIHM6IHN0cmluZzsKICAgIGYoaTogbnVtYmVyLCBzOiBzdHJpbmcpOiBzdHJpbmc7CiAgICBhOiBudW1iZXJbXTsKfQoKaW50ZXJmYWNlIElCYXIgewogICAgZm9vOiBJRm9vOwp9CgovLyBDT05URVhUOiBDbGFzcyBwcm9wZXJ0eSBkZWNsYXJhdGlvbgpjbGFzcyBDMVQ1IHsKICAgIGZvbzogKGk6IG51bWJlciwgczogc3RyaW5nKSA9PiBudW1iZXIgPSBmdW5jdGlvbihpKSB7CiAgICAgICAgcmV0dXJuIGk7CiAgICB9Cn0KCi8vIENPTlRFWFQ6IE1vZHVsZSBwcm9wZXJ0eSBkZWNsYXJhdGlvbgptb2R1bGUgQzJUNSB7CiAgICBleHBvcnQgdmFyIGZvbzogKGk6IG51bWJlciwgczogc3RyaW5nKSA9PiBudW1iZXIgPSBmdW5jdGlvbihpKSB7CiAgICAgICAgcmV0dXJuIGk7CiAgICB9Cn0KCi8vIENPTlRFWFQ6IFZhcmlhYmxlIGRlY2xhcmF0aW9uCnZhciBjM3QxOiAoczogc3RyaW5nKSA9PiBzdHJpbmcgPSAoZnVuY3Rpb24ocykgeyByZXR1cm4gcyB9KTsKdmFyIGMzdDIgPSA8SUZvbz4oewogICAgbjogMQp9KQp2YXIgYzN0MzogbnVtYmVyW10gPSBbXTsKdmFyIGMzdDQ6ICgpID0+IElGb28gPSBmdW5jdGlvbigpIHsgcmV0dXJuIDxJRm9vPih7fSkgfTsKdmFyIGMzdDU6IChuOiBudW1iZXIpID0+IElGb28gPSBmdW5jdGlvbihuKSB7IHJldHVybiA8SUZvbz4oe30pIH07CnZhciBjM3Q2OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IElGb28gPSBmdW5jdGlvbihuLCBzKSB7IHJldHVybiA8SUZvbz4oe30pIH07CnZhciBjM3Q3OiB7CiAgICAobjogbnVtYmVyKTogbnVtYmVyOyAgICAKICAgIChzMTogc3RyaW5nKTogbnVtYmVyOwp9ID0gZnVuY3Rpb24obikgeyByZXR1cm4gbjsgfTsKCnZhciBjM3Q4OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlciA9IGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG47IH07CnZhciBjM3Q5OiBudW1iZXJbXVtdID0gW1tdLFtdXTsKdmFyIGMzdDEwOiBJRm9vW10gPSBbPElGb28+KHt9KSw8SUZvbz4oe30pXTsKdmFyIGMzdDExOiB7KG46IG51bWJlciwgczogc3RyaW5nKTogc3RyaW5nO31bXSA9IFtmdW5jdGlvbihuLCBzKSB7IHJldHVybiBzOyB9XTsKdmFyIGMzdDEyOiBJQmFyID0gewogICAgZm9vOiA8SUZvbz4oe30pCn0KdmFyIGMzdDEzID0gPElGb28+KHsKICAgIGY6IGZ1bmN0aW9uKGksIHMpIHsgcmV0dXJuIHM7IH0KfSkKdmFyIGMzdDE0ID0gPElGb28+KHsKICAgIGE6IFtdCn0pCgovLyBDT05URVhUOiBDbGFzcyBwcm9wZXJ0eSBhc3NpZ25tZW50CmNsYXNzIEM0VDUgewogICAgZm9vOiAoaTogbnVtYmVyLCBzOiBzdHJpbmcpID0+IHN0cmluZzsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuZm9vID0gZnVuY3Rpb24oaSwgcykgewogICAgICAgICAgICByZXR1cm4gczsKICAgICAgICB9CiAgICB9Cn0KCi8vIENPTlRFWFQ6IE1vZHVsZSBwcm9wZXJ0eSBhc3NpZ25tZW50Cm1vZHVsZSBDNVQ1IHsKICAgIGV4cG9ydCB2YXIgZm9vOiAoaTogbnVtYmVyLCBzOiBzdHJpbmcpID0+IHN0cmluZzsKICAgIGZvbyA9IGZ1bmN0aW9uKGksIHMpIHsKICAgICAgICByZXR1cm4gczsKICAgIH0KfQoKLy8gQ09OVEVYVDogVmFyaWFibGUgYXNzaWdubWVudAp2YXIgYzZ0NTogKG46IG51bWJlcikgPT4gSUZvbzsKYzZ0NSA9IDwobjogbnVtYmVyKSA9PiBJRm9vPmZ1bmN0aW9uKG4pIHsgcmV0dXJuIDxJRm9vPih7fSkgfTsKCi8vIENPTlRFWFQ6IEFycmF5IGluZGV4IGFzc2lnbm1lbnQKdmFyIGM3dDI6IElGb29bXTsKYzd0MlswXSA9IDxJRm9vPih7bjogMX0pOwoKLy8gQ09OVEVYVDogT2JqZWN0IHByb3BlcnR5IGFzc2lnbm1lbnQKaW50ZXJmYWNlIElQbGFjZUhvbGRlciB7CiAgICB0MTogKHM6IHN0cmluZykgPT4gc3RyaW5nOwogICAgdDI6IElGb287CiAgICB0MzogbnVtYmVyW107CiAgICB0NDogKCkgPT4gSUZvbzsKICAgIHQ1OiAobjogbnVtYmVyKSA9PiBJRm9vOwogICAgdDY6IChuOiBudW1iZXIsIHM6IHN0cmluZykgPT4gSUZvbzsKICAgIHQ3OiB7CiAgICAgICAgICAgIChuOiBudW1iZXIsIHM6IHN0cmluZyk6IG51bWJlcjsgICAgCiAgICAgICAgICAgIC8vKHMxOiBzdHJpbmcsIHMyOiBzdHJpbmcpOiBudW1iZXI7CiAgICAgICAgfTsKICAgIHQ4OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlcjsKICAgIHQ5OiBudW1iZXJbXVtdOwogICAgdDEwOiBJRm9vW107CiAgICB0MTE6IHsobjogbnVtYmVyLCBzOiBzdHJpbmcpOiBzdHJpbmc7fVtdOwogICAgdDEyOiBJQmFyOwogICAgdDEzOiBJRm9vOwogICAgdDE0OiBJRm9vOwogICAgfQoKdmFyIG9iamM4OiB7CiAgICB0MTogKHM6IHN0cmluZykgPT4gc3RyaW5nOwogICAgdDI6IElGb287CiAgICB0MzogbnVtYmVyW107CiAgICB0NDogKCkgPT4gSUZvbzsKICAgIHQ1OiAobjogbnVtYmVyKSA9PiBJRm9vOwogICAgdDY6IChuOiBudW1iZXIsIHM6IHN0cmluZykgPT4gSUZvbzsKICAgIHQ3OiB7CiAgICAgICAgICAgIChuOiBudW1iZXIsIHM6IHN0cmluZyk6IG51bWJlcjsgICAgCiAgICAgICAgICAgIC8vKHMxOiBzdHJpbmcsIHMyOiBzdHJpbmcpOiBudW1iZXI7CiAgICAgICAgfTsKICAgIHQ4OiAobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlcjsKICAgIHQ5OiBudW1iZXJbXVtdOwogICAgdDEwOiBJRm9vW107CiAgICB0MTE6IHsobjogbnVtYmVyLCBzOiBzdHJpbmcpOiBzdHJpbmc7fVtdOwogICAgdDEyOiBJQmFyOwogICAgdDEzOiBJRm9vOwogICAgdDE0OiBJRm9vOwp9ID0gPElQbGFjZUhvbGRlcj4oe30pOwoKb2JqYzgudDEgPSAoZnVuY3Rpb24ocykgeyByZXR1cm4gcyB9KTsKb2JqYzgudDIgPSA8SUZvbz4oewogICAgbjogMQp9KTsKb2JqYzgudDMgPSBbXTsKb2JqYzgudDQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDxJRm9vPih7fSkgfTsKb2JqYzgudDUgPSBmdW5jdGlvbihuKSB7IHJldHVybiA8SUZvbz4oe30pIH07Cm9iamM4LnQ2ID0gZnVuY3Rpb24obiwgcykgeyByZXR1cm4gPElGb28+KHt9KSB9OwpvYmpjOC50NyA9IGZ1bmN0aW9uKG46IG51bWJlcikgeyByZXR1cm4gbiB9OwoKb2JqYzgudDggPSBmdW5jdGlvbihuKSB7IHJldHVybiBuOyB9OwpvYmpjOC50OSA9IFtbXSxbXV07Cm9iamM4LnQxMCA9IFs8SUZvbz4oe30pLDxJRm9vPih7fSldOwpvYmpjOC50MTEgPSBbZnVuY3Rpb24obiwgcykgeyByZXR1cm4gczsgfV07Cm9iamM4LnQxMiA9IHsKICAgIGZvbzogPElGb28+KHt9KQp9Cm9iamM4LnQxMyA9IDxJRm9vPih7CiAgICBmOiBmdW5jdGlvbihpLCBzKSB7IHJldHVybiBzOyB9Cn0pCm9iamM4LnQxNCA9IDxJRm9vPih7CiAgICBhOiBbXQp9KQovLyBDT05URVhUOiBGdW5jdGlvbiBjYWxsCmZ1bmN0aW9uIGM5dDUoZjogKG46IG51bWJlcikgPT4gSUZvbykge307CmM5dDUoZnVuY3Rpb24obikgewogICAgcmV0dXJuIDxJRm9vPih7fSk7Cn0pOwoKLy8gQ09OVEVYVDogUmV0dXJuIHN0YXRlbWVudAp2YXIgYzEwdDU6ICgpID0+IChuOiBudW1iZXIpID0+IElGb28gPSBmdW5jdGlvbigpIHsgcmV0dXJuIGZ1bmN0aW9uKG4pIHsgcmV0dXJuIDxJRm9vPih7fSkgfSB9OwoKLy8gQ09OVEVYVDogTmV3aW5nIGEgY2xhc3MKY2xhc3MgQzExdDUgeyBjb25zdHJ1Y3RvcihmOiAobjogbnVtYmVyKSA9PiBJRm9vKSB7IH0gfTsKdmFyIGkgPSBuZXcgQzExdDUoZnVuY3Rpb24obikgeyByZXR1cm4gPElGb28+KHt9KSB9KTsKCi8vIENPTlRFWFQ6IFR5cGUgYW5ub3RhdGVkIGV4cHJlc3Npb24KdmFyIGMxMnQxID0gPChzOiBzdHJpbmcpID0+IHN0cmluZz4gKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMgfSk7CnZhciBjMTJ0MiA9IDxJRm9vPiAoewogICAgbjogMQp9KTsKdmFyIGMxMnQzID0gPG51bWJlcltdPiBbXTsKdmFyIGMxMnQ0ID0gPCgpID0+IElGb28+IGZ1bmN0aW9uKCkgeyByZXR1cm4gPElGb28+KHt9KSB9Owp2YXIgYzEydDUgPSA8KG46IG51bWJlcikgPT4gSUZvbz4gZnVuY3Rpb24obikgeyByZXR1cm4gPElGb28+KHt9KSB9Owp2YXIgYzEydDYgPSA8KG46IG51bWJlciwgczogc3RyaW5nKSA9PiBJRm9vPiBmdW5jdGlvbihuLCBzKSB7IHJldHVybiA8SUZvbz4oe30pIH07CnZhciBjMTJ0NyA9IDx7CiAgICAobjogbnVtYmVyLCBzOiBzdHJpbmcpOiBudW1iZXI7ICAgIAogICAgLy8oczE6IHN0cmluZywgczI6IHN0cmluZyk6IG51bWJlcjsKfT4gZnVuY3Rpb24objpudW1iZXIpIHsgcmV0dXJuIG4gfTsKCnZhciBjMTJ0OCA9IDwobjogbnVtYmVyLCBzOiBzdHJpbmcpID0+IG51bWJlcj4gZnVuY3Rpb24obikgeyByZXR1cm4gbjsgfTsKdmFyIGMxMnQ5ID0gPG51bWJlcltdW10+IFtbXSxbXV07CnZhciBjMTJ0MTAgPSA8SUZvb1tdPiBbPElGb28+KHt9KSw8SUZvbz4oe30pXTsKdmFyIGMxMnQxMSA9IDx7KG46IG51bWJlciwgczogc3RyaW5nKTogc3RyaW5nO31bXT4gW2Z1bmN0aW9uKG4sIHMpIHsgcmV0dXJuIHM7IH1dOwp2YXIgYzEydDEyID0gPElCYXI+IHsKICAgIGZvbzogPElGb28+KHt9KQp9CnZhciBjMTJ0MTMgPSA8SUZvbz4gKHsKICAgIGY6IGZ1bmN0aW9uKGksIHMpIHsgcmV0dXJuIHM7IH0KfSkKdmFyIGMxMnQxNCA9IDxJRm9vPiAoewogICAgYTogW10KfSkKCi8vIENPTlRFWFQ6IENvbnRleHR1YWwgdHlwaW5nIGRlY2xhcmF0aW9ucwoKLy8gY29udGV4dHVhbGx5IHR5cGluZyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMKZGVjbGFyZSBmdW5jdGlvbiBFRjEoYTpudW1iZXIsIGI6bnVtYmVyKTpudW1iZXI7CgpmdW5jdGlvbiBFRjEoYSxiKSB7IHJldHVybiBhK2I7IH0KCnZhciBlZnYgPSBFRjEoMSwyKTsKCgovLyBjb250ZXh0dWFsbHkgdHlwaW5nIGZyb20gYW1iaWVudCBjbGFzcyBkZWNsYXJhdGlvbnMKZGVjbGFyZSBjbGFzcyBQb2ludAp7CiAgICAgIGNvbnN0cnVjdG9yKHg6IG51bWJlciwgeTogbnVtYmVyKTsKICAgICAgeDogbnVtYmVyOwogICAgICB5OiBudW1iZXI7CiAgICAgIGFkZChkeDogbnVtYmVyLCBkeTogbnVtYmVyKTogUG9pbnQ7CiAgICAgIHN0YXRpYyBvcmlnaW46IFBvaW50OwoKfQoKUG9pbnQub3JpZ2luID0gbmV3IFBvaW50KDAsIDApOwoKUG9pbnQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKGR4LCBkeSkgewogICAgcmV0dXJuIG5ldyBQb2ludCh0aGlzLnggKyBkeCwgdGhpcy55ICsgZHkpOwp9OwoKUG9pbnQucHJvdG90eXBlID0gewogICAgeDogMCwKICAgIHk6IDAsCiAgICBhZGQ6IGZ1bmN0aW9uKGR4LCBkeSkgewogICAgICAgIHJldHVybiBuZXcgUG9pbnQodGhpcy54ICsgZHgsIHRoaXMueSArIGR5KTsKICAgIH0KfTsKCmludGVyZmFjZSBBIHsgeDogc3RyaW5nOyB9CmludGVyZmFjZSBCIGV4dGVuZHMgQSB7IH0KdmFyIHg6IEIgPSB7IH07Cg== \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping.sourcemap.txt.diff index 7313436d8e..f1dd1d330e 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping.sourcemap.txt.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping.sourcemap.txt.diff @@ -1,36 +1,19 @@ --- old.contextualTyping.sourcemap.txt +++ new.contextualTyping.sourcemap.txt -@@= skipped -10, +10 lines =@@ - >>>// CONTEXT: Class property declaration +@@= skipped -31, +31 lines =@@ 1 > - 2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --3 > ^^-> - 1 >// DEFAULT INTERFACES - >interface IFoo { - > n: number; -@@= skipped -18, +17 lines =@@ - 1 >Emitted(1, 1) Source(13, 1) + SourceIndex(0) - 2 >Emitted(1, 39) Source(13, 39) + SourceIndex(0) - --- -->>>var C1T5 = /** @class */ (function () { --1-> --2 >^^^^^^^^^^^^^^^^^^^^^^-> --1-> -+>>>class C1T5 { -+1 > -+2 >^^^^^^ -+3 > ^^^^ + 2 >^^^^^^ + 3 > ^^^^ +-4 > ^^^^^^^^^^-> +4 > ^^^^^^^^^^^^^^^-> -+1 > + 1 > > --1->Emitted(2, 1) Source(14, 1) + SourceIndex(0) -+2 >class -+3 > C1T5 -+1 >Emitted(2, 1) Source(14, 1) + SourceIndex(0) -+2 >Emitted(2, 7) Source(14, 7) + SourceIndex(0) -+3 >Emitted(2, 11) Source(14, 11) + SourceIndex(0) - --- -->>> function C1T5() { + 2 >class +@@= skipped -9, +9 lines =@@ + 2 >Emitted(2, 7) Source(14, 7) + SourceIndex(0) + 3 >Emitted(2, 11) Source(14, 11) + SourceIndex(0) + --- +->>> constructor() { +>>> foo = function (i) { 1->^^^^ -2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> @@ -117,63 +100,35 @@ +>>> }; 1 >^^^^ 2 > ^ --3 > ^^^^^^^^^^^^-> --1 > ++3 > ^ + 1 > - > -2 > } -1 >Emitted(7, 5) Source(18, 1) + SourceIndex(0) -2 >Emitted(7, 6) Source(18, 2) + SourceIndex(0) ----- -->>> return C1T5; --1->^^^^ --2 > ^^^^^^^^^^^ --1-> --2 > } --1->Emitted(8, 5) Source(18, 1) + SourceIndex(0) --2 >Emitted(8, 16) Source(18, 2) + SourceIndex(0) ----- -->>>}()); --1 > --2 >^ --3 > --4 > ^^^^ --5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> --1 > --2 >} --3 > --4 > class C1T5 { -- > foo: (i: number, s: string) => number = function(i) { -- > return i; -- > } -- > } --1 >Emitted(9, 1) Source(18, 1) + SourceIndex(0) --2 >Emitted(9, 2) Source(18, 2) + SourceIndex(0) --3 >Emitted(9, 2) Source(14, 1) + SourceIndex(0) --4 >Emitted(9, 6) Source(18, 2) + SourceIndex(0) -+3 > ^ -+1 > +2 > + > } +3 > +1 >Emitted(5, 5) Source(16, 18) + SourceIndex(0) +2 >Emitted(5, 6) Source(17, 6) + SourceIndex(0) +3 >Emitted(5, 7) Source(17, 6) + SourceIndex(0) -+--- -+>>>} -+1 >^ -+2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -+1 > + --- + >>>} + 1 >^ + 2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> + 1 > +-1 >Emitted(8, 2) Source(18, 2) + SourceIndex(0) + >} +1 >Emitted(6, 2) Source(18, 2) + SourceIndex(0) --- >>>// CONTEXT: Module property declaration 1-> -@@= skipped -102, +75 lines =@@ +@@= skipped -73, +62 lines =@@ > > 2 >// CONTEXT: Module property declaration --1->Emitted(10, 1) Source(20, 1) + SourceIndex(0) --2 >Emitted(10, 40) Source(20, 40) + SourceIndex(0) +-1->Emitted(9, 1) Source(20, 1) + SourceIndex(0) +-2 >Emitted(9, 40) Source(20, 40) + SourceIndex(0) +1->Emitted(7, 1) Source(20, 1) + SourceIndex(0) +2 >Emitted(7, 40) Source(20, 40) + SourceIndex(0) --- @@ -196,10 +151,10 @@ + > export var foo: (i: number, s: string) => number = function(i) { + > return i; > } --1 >Emitted(11, 1) Source(21, 1) + SourceIndex(0) --2 >Emitted(11, 5) Source(21, 8) + SourceIndex(0) --3 >Emitted(11, 9) Source(21, 12) + SourceIndex(0) --4 >Emitted(11, 10) Source(25, 2) + SourceIndex(0) +-1 >Emitted(10, 1) Source(21, 1) + SourceIndex(0) +-2 >Emitted(10, 5) Source(21, 8) + SourceIndex(0) +-3 >Emitted(10, 9) Source(21, 12) + SourceIndex(0) +-4 >Emitted(10, 10) Source(25, 2) + SourceIndex(0) + > } +1 >Emitted(8, 1) Source(21, 1) + SourceIndex(0) +2 >Emitted(8, 5) Source(21, 8) + SourceIndex(0) @@ -215,9 +170,9 @@ 1-> 2 >module 3 > C2T5 --1->Emitted(12, 1) Source(21, 1) + SourceIndex(0) --2 >Emitted(12, 12) Source(21, 8) + SourceIndex(0) --3 >Emitted(12, 16) Source(21, 12) + SourceIndex(0) +-1->Emitted(11, 1) Source(21, 1) + SourceIndex(0) +-2 >Emitted(11, 12) Source(21, 8) + SourceIndex(0) +-3 >Emitted(11, 16) Source(21, 12) + SourceIndex(0) +4 > +1->Emitted(9, 1) Source(21, 1) + SourceIndex(0) +2 >Emitted(9, 12) Source(21, 8) + SourceIndex(0) @@ -238,11 +193,11 @@ 3 > : (i: number, s: string) => number = 4 > function( 5 > i --1->Emitted(13, 5) Source(22, 16) + SourceIndex(0) --2 >Emitted(13, 13) Source(22, 19) + SourceIndex(0) --3 >Emitted(13, 16) Source(22, 56) + SourceIndex(0) --4 >Emitted(13, 26) Source(22, 65) + SourceIndex(0) --5 >Emitted(13, 27) Source(22, 66) + SourceIndex(0) +-1->Emitted(12, 5) Source(22, 16) + SourceIndex(0) +-2 >Emitted(12, 13) Source(22, 19) + SourceIndex(0) +-3 >Emitted(12, 16) Source(22, 56) + SourceIndex(0) +-4 >Emitted(12, 26) Source(22, 65) + SourceIndex(0) +-5 >Emitted(12, 27) Source(22, 66) + SourceIndex(0) +6 > ) +1->Emitted(10, 5) Source(22, 16) + SourceIndex(0) +2 >Emitted(10, 13) Source(22, 19) + SourceIndex(0) @@ -262,10 +217,10 @@ 2 > return 3 > i 4 > ; --1 >Emitted(14, 9) Source(23, 9) + SourceIndex(0) --2 >Emitted(14, 16) Source(23, 16) + SourceIndex(0) --3 >Emitted(14, 17) Source(23, 17) + SourceIndex(0) --4 >Emitted(14, 18) Source(23, 18) + SourceIndex(0) +-1 >Emitted(13, 9) Source(23, 9) + SourceIndex(0) +-2 >Emitted(13, 16) Source(23, 16) + SourceIndex(0) +-3 >Emitted(13, 17) Source(23, 17) + SourceIndex(0) +-4 >Emitted(13, 18) Source(23, 18) + SourceIndex(0) +1 >Emitted(11, 9) Source(23, 9) + SourceIndex(0) +2 >Emitted(11, 16) Source(23, 16) + SourceIndex(0) +3 >Emitted(11, 17) Source(23, 17) + SourceIndex(0) @@ -282,9 +237,9 @@ +2 > + > } 3 > --1 >Emitted(15, 5) Source(24, 5) + SourceIndex(0) --2 >Emitted(15, 6) Source(24, 6) + SourceIndex(0) --3 >Emitted(15, 7) Source(24, 6) + SourceIndex(0) +-1 >Emitted(14, 5) Source(24, 5) + SourceIndex(0) +-2 >Emitted(14, 6) Source(24, 6) + SourceIndex(0) +-3 >Emitted(14, 7) Source(24, 6) + SourceIndex(0) +1 >Emitted(12, 5) Source(23, 18) + SourceIndex(0) +2 >Emitted(12, 6) Source(24, 6) + SourceIndex(0) +3 >Emitted(12, 7) Source(24, 6) + SourceIndex(0) @@ -306,13 +261,13 @@ > return i; > } > } --1->Emitted(16, 1) Source(25, 1) + SourceIndex(0) --2 >Emitted(16, 2) Source(25, 2) + SourceIndex(0) --3 >Emitted(16, 4) Source(21, 8) + SourceIndex(0) --4 >Emitted(16, 8) Source(21, 12) + SourceIndex(0) --5 >Emitted(16, 13) Source(21, 8) + SourceIndex(0) --6 >Emitted(16, 17) Source(21, 12) + SourceIndex(0) --7 >Emitted(16, 25) Source(25, 2) + SourceIndex(0) +-1->Emitted(15, 1) Source(25, 1) + SourceIndex(0) +-2 >Emitted(15, 2) Source(25, 2) + SourceIndex(0) +-3 >Emitted(15, 4) Source(21, 8) + SourceIndex(0) +-4 >Emitted(15, 8) Source(21, 12) + SourceIndex(0) +-5 >Emitted(15, 13) Source(21, 8) + SourceIndex(0) +-6 >Emitted(15, 17) Source(21, 12) + SourceIndex(0) +-7 >Emitted(15, 25) Source(25, 2) + SourceIndex(0) +1->Emitted(13, 1) Source(24, 6) + SourceIndex(0) +2 >Emitted(13, 2) Source(25, 2) + SourceIndex(0) +3 >Emitted(13, 4) Source(21, 8) + SourceIndex(0) @@ -327,8 +282,8 @@ > > 2 >// CONTEXT: Variable declaration --1->Emitted(17, 1) Source(27, 1) + SourceIndex(0) --2 >Emitted(17, 33) Source(27, 33) + SourceIndex(0) +-1->Emitted(16, 1) Source(27, 1) + SourceIndex(0) +-2 >Emitted(16, 33) Source(27, 33) + SourceIndex(0) +1->Emitted(14, 1) Source(27, 1) + SourceIndex(0) +2 >Emitted(14, 33) Source(27, 33) + SourceIndex(0) --- @@ -370,21 +325,21 @@ -13> } -14> ) -15> ; --1->Emitted(18, 1) Source(28, 1) + SourceIndex(0) --2 >Emitted(18, 5) Source(28, 5) + SourceIndex(0) --3 >Emitted(18, 9) Source(28, 9) + SourceIndex(0) --4 >Emitted(18, 12) Source(28, 35) + SourceIndex(0) --5 >Emitted(18, 13) Source(28, 36) + SourceIndex(0) --6 >Emitted(18, 23) Source(28, 45) + SourceIndex(0) --7 >Emitted(18, 24) Source(28, 46) + SourceIndex(0) --8 >Emitted(18, 28) Source(28, 50) + SourceIndex(0) --9 >Emitted(18, 35) Source(28, 57) + SourceIndex(0) --10>Emitted(18, 36) Source(28, 58) + SourceIndex(0) --11>Emitted(18, 37) Source(28, 58) + SourceIndex(0) --12>Emitted(18, 38) Source(28, 59) + SourceIndex(0) --13>Emitted(18, 39) Source(28, 60) + SourceIndex(0) --14>Emitted(18, 40) Source(28, 61) + SourceIndex(0) --15>Emitted(18, 41) Source(28, 62) + SourceIndex(0) +-1->Emitted(17, 1) Source(28, 1) + SourceIndex(0) +-2 >Emitted(17, 5) Source(28, 5) + SourceIndex(0) +-3 >Emitted(17, 9) Source(28, 9) + SourceIndex(0) +-4 >Emitted(17, 12) Source(28, 35) + SourceIndex(0) +-5 >Emitted(17, 13) Source(28, 36) + SourceIndex(0) +-6 >Emitted(17, 23) Source(28, 45) + SourceIndex(0) +-7 >Emitted(17, 24) Source(28, 46) + SourceIndex(0) +-8 >Emitted(17, 28) Source(28, 50) + SourceIndex(0) +-9 >Emitted(17, 35) Source(28, 57) + SourceIndex(0) +-10>Emitted(17, 36) Source(28, 58) + SourceIndex(0) +-11>Emitted(17, 37) Source(28, 58) + SourceIndex(0) +-12>Emitted(17, 38) Source(28, 59) + SourceIndex(0) +-13>Emitted(17, 39) Source(28, 60) + SourceIndex(0) +-14>Emitted(17, 40) Source(28, 61) + SourceIndex(0) +-15>Emitted(17, 41) Source(28, 62) + SourceIndex(0) +8 > ) +9 > { +10> return @@ -417,11 +372,11 @@ 3 > c3t2 4 > = 5 > ( --1 >Emitted(19, 1) Source(29, 1) + SourceIndex(0) --2 >Emitted(19, 5) Source(29, 5) + SourceIndex(0) --3 >Emitted(19, 9) Source(29, 9) + SourceIndex(0) --4 >Emitted(19, 12) Source(29, 18) + SourceIndex(0) --5 >Emitted(19, 13) Source(29, 19) + SourceIndex(0) +-1 >Emitted(18, 1) Source(29, 1) + SourceIndex(0) +-2 >Emitted(18, 5) Source(29, 5) + SourceIndex(0) +-3 >Emitted(18, 9) Source(29, 9) + SourceIndex(0) +-4 >Emitted(18, 12) Source(29, 18) + SourceIndex(0) +-5 >Emitted(18, 13) Source(29, 19) + SourceIndex(0) +1 >Emitted(16, 1) Source(29, 1) + SourceIndex(0) +2 >Emitted(16, 5) Source(29, 5) + SourceIndex(0) +3 >Emitted(16, 9) Source(29, 9) + SourceIndex(0) @@ -434,10 +389,10 @@ 2 > n 3 > : 4 > 1 --1 >Emitted(20, 5) Source(30, 5) + SourceIndex(0) --2 >Emitted(20, 6) Source(30, 6) + SourceIndex(0) --3 >Emitted(20, 8) Source(30, 8) + SourceIndex(0) --4 >Emitted(20, 9) Source(30, 9) + SourceIndex(0) +-1 >Emitted(19, 5) Source(30, 5) + SourceIndex(0) +-2 >Emitted(19, 6) Source(30, 6) + SourceIndex(0) +-3 >Emitted(19, 8) Source(30, 8) + SourceIndex(0) +-4 >Emitted(19, 9) Source(30, 9) + SourceIndex(0) +1 >Emitted(17, 5) Source(30, 5) + SourceIndex(0) +2 >Emitted(17, 6) Source(30, 6) + SourceIndex(0) +3 >Emitted(17, 8) Source(30, 8) + SourceIndex(0) @@ -449,9 +404,9 @@ >} 2 > ) 3 > --1 >Emitted(21, 2) Source(31, 2) + SourceIndex(0) --2 >Emitted(21, 3) Source(31, 3) + SourceIndex(0) --3 >Emitted(21, 4) Source(31, 3) + SourceIndex(0) +-1 >Emitted(20, 2) Source(31, 2) + SourceIndex(0) +-2 >Emitted(20, 3) Source(31, 3) + SourceIndex(0) +-3 >Emitted(20, 4) Source(31, 3) + SourceIndex(0) +1 >Emitted(18, 2) Source(31, 2) + SourceIndex(0) +2 >Emitted(18, 3) Source(31, 3) + SourceIndex(0) +3 >Emitted(18, 4) Source(31, 3) + SourceIndex(0) @@ -462,12 +417,12 @@ 4 > : number[] = 5 > [] 6 > ; --1->Emitted(22, 1) Source(32, 1) + SourceIndex(0) --2 >Emitted(22, 5) Source(32, 5) + SourceIndex(0) --3 >Emitted(22, 9) Source(32, 9) + SourceIndex(0) --4 >Emitted(22, 12) Source(32, 22) + SourceIndex(0) --5 >Emitted(22, 14) Source(32, 24) + SourceIndex(0) --6 >Emitted(22, 15) Source(32, 25) + SourceIndex(0) +-1->Emitted(21, 1) Source(32, 1) + SourceIndex(0) +-2 >Emitted(21, 5) Source(32, 5) + SourceIndex(0) +-3 >Emitted(21, 9) Source(32, 9) + SourceIndex(0) +-4 >Emitted(21, 12) Source(32, 22) + SourceIndex(0) +-5 >Emitted(21, 14) Source(32, 24) + SourceIndex(0) +-6 >Emitted(21, 15) Source(32, 25) + SourceIndex(0) +1->Emitted(19, 1) Source(32, 1) + SourceIndex(0) +2 >Emitted(19, 5) Source(32, 5) + SourceIndex(0) +3 >Emitted(19, 9) Source(32, 9) + SourceIndex(0) @@ -515,19 +470,19 @@ -11> -12> } -13> ; --1->Emitted(23, 1) Source(33, 1) + SourceIndex(0) --2 >Emitted(23, 5) Source(33, 5) + SourceIndex(0) --3 >Emitted(23, 9) Source(33, 9) + SourceIndex(0) --4 >Emitted(23, 12) Source(33, 24) + SourceIndex(0) --5 >Emitted(23, 26) Source(33, 37) + SourceIndex(0) --6 >Emitted(23, 33) Source(33, 50) + SourceIndex(0) --7 >Emitted(23, 34) Source(33, 51) + SourceIndex(0) --8 >Emitted(23, 36) Source(33, 53) + SourceIndex(0) --9 >Emitted(23, 37) Source(33, 54) + SourceIndex(0) --10>Emitted(23, 38) Source(33, 54) + SourceIndex(0) --11>Emitted(23, 39) Source(33, 55) + SourceIndex(0) --12>Emitted(23, 40) Source(33, 56) + SourceIndex(0) --13>Emitted(23, 41) Source(33, 57) + SourceIndex(0) +-1->Emitted(22, 1) Source(33, 1) + SourceIndex(0) +-2 >Emitted(22, 5) Source(33, 5) + SourceIndex(0) +-3 >Emitted(22, 9) Source(33, 9) + SourceIndex(0) +-4 >Emitted(22, 12) Source(33, 24) + SourceIndex(0) +-5 >Emitted(22, 26) Source(33, 37) + SourceIndex(0) +-6 >Emitted(22, 33) Source(33, 50) + SourceIndex(0) +-7 >Emitted(22, 34) Source(33, 51) + SourceIndex(0) +-8 >Emitted(22, 36) Source(33, 53) + SourceIndex(0) +-9 >Emitted(22, 37) Source(33, 54) + SourceIndex(0) +-10>Emitted(22, 38) Source(33, 54) + SourceIndex(0) +-11>Emitted(22, 39) Source(33, 55) + SourceIndex(0) +-12>Emitted(22, 40) Source(33, 56) + SourceIndex(0) +-13>Emitted(22, 41) Source(33, 57) + SourceIndex(0) +5 > function() +6 > { +7 > return @@ -596,21 +551,21 @@ -13> -14> } -15> ; --1->Emitted(24, 1) Source(34, 1) + SourceIndex(0) --2 >Emitted(24, 5) Source(34, 5) + SourceIndex(0) --3 >Emitted(24, 9) Source(34, 9) + SourceIndex(0) --4 >Emitted(24, 12) Source(34, 33) + SourceIndex(0) --5 >Emitted(24, 22) Source(34, 42) + SourceIndex(0) --6 >Emitted(24, 23) Source(34, 43) + SourceIndex(0) --7 >Emitted(24, 27) Source(34, 47) + SourceIndex(0) --8 >Emitted(24, 34) Source(34, 60) + SourceIndex(0) --9 >Emitted(24, 35) Source(34, 61) + SourceIndex(0) --10>Emitted(24, 37) Source(34, 63) + SourceIndex(0) --11>Emitted(24, 38) Source(34, 64) + SourceIndex(0) --12>Emitted(24, 39) Source(34, 64) + SourceIndex(0) --13>Emitted(24, 40) Source(34, 65) + SourceIndex(0) --14>Emitted(24, 41) Source(34, 66) + SourceIndex(0) --15>Emitted(24, 42) Source(34, 67) + SourceIndex(0) +-1->Emitted(23, 1) Source(34, 1) + SourceIndex(0) +-2 >Emitted(23, 5) Source(34, 5) + SourceIndex(0) +-3 >Emitted(23, 9) Source(34, 9) + SourceIndex(0) +-4 >Emitted(23, 12) Source(34, 33) + SourceIndex(0) +-5 >Emitted(23, 22) Source(34, 42) + SourceIndex(0) +-6 >Emitted(23, 23) Source(34, 43) + SourceIndex(0) +-7 >Emitted(23, 27) Source(34, 47) + SourceIndex(0) +-8 >Emitted(23, 34) Source(34, 60) + SourceIndex(0) +-9 >Emitted(23, 35) Source(34, 61) + SourceIndex(0) +-10>Emitted(23, 37) Source(34, 63) + SourceIndex(0) +-11>Emitted(23, 38) Source(34, 64) + SourceIndex(0) +-12>Emitted(23, 39) Source(34, 64) + SourceIndex(0) +-13>Emitted(23, 40) Source(34, 65) + SourceIndex(0) +-14>Emitted(23, 41) Source(34, 66) + SourceIndex(0) +-15>Emitted(23, 42) Source(34, 67) + SourceIndex(0) +7 > ) +8 > { +9 > return @@ -679,23 +634,23 @@ -15> -16> } -17> ; --1->Emitted(25, 1) Source(35, 1) + SourceIndex(0) --2 >Emitted(25, 5) Source(35, 5) + SourceIndex(0) --3 >Emitted(25, 9) Source(35, 9) + SourceIndex(0) --4 >Emitted(25, 12) Source(35, 44) + SourceIndex(0) --5 >Emitted(25, 22) Source(35, 53) + SourceIndex(0) --6 >Emitted(25, 23) Source(35, 54) + SourceIndex(0) --7 >Emitted(25, 25) Source(35, 56) + SourceIndex(0) --8 >Emitted(25, 26) Source(35, 57) + SourceIndex(0) --9 >Emitted(25, 30) Source(35, 61) + SourceIndex(0) --10>Emitted(25, 37) Source(35, 74) + SourceIndex(0) --11>Emitted(25, 38) Source(35, 75) + SourceIndex(0) --12>Emitted(25, 40) Source(35, 77) + SourceIndex(0) --13>Emitted(25, 41) Source(35, 78) + SourceIndex(0) --14>Emitted(25, 42) Source(35, 78) + SourceIndex(0) --15>Emitted(25, 43) Source(35, 79) + SourceIndex(0) --16>Emitted(25, 44) Source(35, 80) + SourceIndex(0) --17>Emitted(25, 45) Source(35, 81) + SourceIndex(0) +-1->Emitted(24, 1) Source(35, 1) + SourceIndex(0) +-2 >Emitted(24, 5) Source(35, 5) + SourceIndex(0) +-3 >Emitted(24, 9) Source(35, 9) + SourceIndex(0) +-4 >Emitted(24, 12) Source(35, 44) + SourceIndex(0) +-5 >Emitted(24, 22) Source(35, 53) + SourceIndex(0) +-6 >Emitted(24, 23) Source(35, 54) + SourceIndex(0) +-7 >Emitted(24, 25) Source(35, 56) + SourceIndex(0) +-8 >Emitted(24, 26) Source(35, 57) + SourceIndex(0) +-9 >Emitted(24, 30) Source(35, 61) + SourceIndex(0) +-10>Emitted(24, 37) Source(35, 74) + SourceIndex(0) +-11>Emitted(24, 38) Source(35, 75) + SourceIndex(0) +-12>Emitted(24, 40) Source(35, 77) + SourceIndex(0) +-13>Emitted(24, 41) Source(35, 78) + SourceIndex(0) +-14>Emitted(24, 42) Source(35, 78) + SourceIndex(0) +-15>Emitted(24, 43) Source(35, 79) + SourceIndex(0) +-16>Emitted(24, 44) Source(35, 80) + SourceIndex(0) +-17>Emitted(24, 45) Source(35, 81) + SourceIndex(0) +9 > ) +10> { +11> return @@ -762,19 +717,19 @@ -11> -12> } -13> ; --1 >Emitted(26, 1) Source(36, 1) + SourceIndex(0) --2 >Emitted(26, 5) Source(36, 5) + SourceIndex(0) --3 >Emitted(26, 9) Source(36, 9) + SourceIndex(0) --4 >Emitted(26, 12) Source(39, 5) + SourceIndex(0) --5 >Emitted(26, 22) Source(39, 14) + SourceIndex(0) --6 >Emitted(26, 23) Source(39, 15) + SourceIndex(0) --7 >Emitted(26, 27) Source(39, 19) + SourceIndex(0) --8 >Emitted(26, 34) Source(39, 26) + SourceIndex(0) --9 >Emitted(26, 35) Source(39, 27) + SourceIndex(0) --10>Emitted(26, 36) Source(39, 28) + SourceIndex(0) --11>Emitted(26, 37) Source(39, 29) + SourceIndex(0) --12>Emitted(26, 38) Source(39, 30) + SourceIndex(0) --13>Emitted(26, 39) Source(39, 31) + SourceIndex(0) +-1 >Emitted(25, 1) Source(36, 1) + SourceIndex(0) +-2 >Emitted(25, 5) Source(36, 5) + SourceIndex(0) +-3 >Emitted(25, 9) Source(36, 9) + SourceIndex(0) +-4 >Emitted(25, 12) Source(39, 5) + SourceIndex(0) +-5 >Emitted(25, 22) Source(39, 14) + SourceIndex(0) +-6 >Emitted(25, 23) Source(39, 15) + SourceIndex(0) +-7 >Emitted(25, 27) Source(39, 19) + SourceIndex(0) +-8 >Emitted(25, 34) Source(39, 26) + SourceIndex(0) +-9 >Emitted(25, 35) Source(39, 27) + SourceIndex(0) +-10>Emitted(25, 36) Source(39, 28) + SourceIndex(0) +-11>Emitted(25, 37) Source(39, 29) + SourceIndex(0) +-12>Emitted(25, 38) Source(39, 30) + SourceIndex(0) +-13>Emitted(25, 39) Source(39, 31) + SourceIndex(0) +7 > ) +8 > { +9 > return @@ -833,19 +788,19 @@ -11> -12> } -13> ; --1->Emitted(27, 1) Source(41, 1) + SourceIndex(0) --2 >Emitted(27, 5) Source(41, 5) + SourceIndex(0) --3 >Emitted(27, 9) Source(41, 9) + SourceIndex(0) --4 >Emitted(27, 12) Source(41, 46) + SourceIndex(0) --5 >Emitted(27, 22) Source(41, 55) + SourceIndex(0) --6 >Emitted(27, 23) Source(41, 56) + SourceIndex(0) --7 >Emitted(27, 27) Source(41, 60) + SourceIndex(0) --8 >Emitted(27, 34) Source(41, 67) + SourceIndex(0) --9 >Emitted(27, 35) Source(41, 68) + SourceIndex(0) --10>Emitted(27, 36) Source(41, 69) + SourceIndex(0) --11>Emitted(27, 37) Source(41, 70) + SourceIndex(0) --12>Emitted(27, 38) Source(41, 71) + SourceIndex(0) --13>Emitted(27, 39) Source(41, 72) + SourceIndex(0) +-1->Emitted(26, 1) Source(41, 1) + SourceIndex(0) +-2 >Emitted(26, 5) Source(41, 5) + SourceIndex(0) +-3 >Emitted(26, 9) Source(41, 9) + SourceIndex(0) +-4 >Emitted(26, 12) Source(41, 46) + SourceIndex(0) +-5 >Emitted(26, 22) Source(41, 55) + SourceIndex(0) +-6 >Emitted(26, 23) Source(41, 56) + SourceIndex(0) +-7 >Emitted(26, 27) Source(41, 60) + SourceIndex(0) +-8 >Emitted(26, 34) Source(41, 67) + SourceIndex(0) +-9 >Emitted(26, 35) Source(41, 68) + SourceIndex(0) +-10>Emitted(26, 36) Source(41, 69) + SourceIndex(0) +-11>Emitted(26, 37) Source(41, 70) + SourceIndex(0) +-12>Emitted(26, 38) Source(41, 71) + SourceIndex(0) +-13>Emitted(26, 39) Source(41, 72) + SourceIndex(0) +7 > ) +8 > { +9 > return @@ -875,16 +830,16 @@ 8 > [] 9 > ] 10> ; --1 >Emitted(28, 1) Source(42, 1) + SourceIndex(0) --2 >Emitted(28, 5) Source(42, 5) + SourceIndex(0) --3 >Emitted(28, 9) Source(42, 9) + SourceIndex(0) --4 >Emitted(28, 12) Source(42, 24) + SourceIndex(0) --5 >Emitted(28, 13) Source(42, 25) + SourceIndex(0) --6 >Emitted(28, 15) Source(42, 27) + SourceIndex(0) --7 >Emitted(28, 17) Source(42, 28) + SourceIndex(0) --8 >Emitted(28, 19) Source(42, 30) + SourceIndex(0) --9 >Emitted(28, 20) Source(42, 31) + SourceIndex(0) --10>Emitted(28, 21) Source(42, 32) + SourceIndex(0) +-1 >Emitted(27, 1) Source(42, 1) + SourceIndex(0) +-2 >Emitted(27, 5) Source(42, 5) + SourceIndex(0) +-3 >Emitted(27, 9) Source(42, 9) + SourceIndex(0) +-4 >Emitted(27, 12) Source(42, 24) + SourceIndex(0) +-5 >Emitted(27, 13) Source(42, 25) + SourceIndex(0) +-6 >Emitted(27, 15) Source(42, 27) + SourceIndex(0) +-7 >Emitted(27, 17) Source(42, 28) + SourceIndex(0) +-8 >Emitted(27, 19) Source(42, 30) + SourceIndex(0) +-9 >Emitted(27, 20) Source(42, 31) + SourceIndex(0) +-10>Emitted(27, 21) Source(42, 32) + SourceIndex(0) +1 >Emitted(25, 1) Source(42, 1) + SourceIndex(0) +2 >Emitted(25, 5) Source(42, 5) + SourceIndex(0) +3 >Emitted(25, 9) Source(42, 9) + SourceIndex(0) @@ -902,20 +857,20 @@ 12> ) 13> ] 14> ; --1->Emitted(29, 1) Source(43, 1) + SourceIndex(0) --2 >Emitted(29, 5) Source(43, 5) + SourceIndex(0) --3 >Emitted(29, 10) Source(43, 10) + SourceIndex(0) --4 >Emitted(29, 13) Source(43, 21) + SourceIndex(0) --5 >Emitted(29, 14) Source(43, 28) + SourceIndex(0) --6 >Emitted(29, 15) Source(43, 29) + SourceIndex(0) --7 >Emitted(29, 17) Source(43, 31) + SourceIndex(0) --8 >Emitted(29, 18) Source(43, 32) + SourceIndex(0) --9 >Emitted(29, 20) Source(43, 39) + SourceIndex(0) --10>Emitted(29, 21) Source(43, 40) + SourceIndex(0) --11>Emitted(29, 23) Source(43, 42) + SourceIndex(0) --12>Emitted(29, 24) Source(43, 43) + SourceIndex(0) --13>Emitted(29, 25) Source(43, 44) + SourceIndex(0) --14>Emitted(29, 26) Source(43, 45) + SourceIndex(0) +-1->Emitted(28, 1) Source(43, 1) + SourceIndex(0) +-2 >Emitted(28, 5) Source(43, 5) + SourceIndex(0) +-3 >Emitted(28, 10) Source(43, 10) + SourceIndex(0) +-4 >Emitted(28, 13) Source(43, 21) + SourceIndex(0) +-5 >Emitted(28, 14) Source(43, 28) + SourceIndex(0) +-6 >Emitted(28, 15) Source(43, 29) + SourceIndex(0) +-7 >Emitted(28, 17) Source(43, 31) + SourceIndex(0) +-8 >Emitted(28, 18) Source(43, 32) + SourceIndex(0) +-9 >Emitted(28, 20) Source(43, 39) + SourceIndex(0) +-10>Emitted(28, 21) Source(43, 40) + SourceIndex(0) +-11>Emitted(28, 23) Source(43, 42) + SourceIndex(0) +-12>Emitted(28, 24) Source(43, 43) + SourceIndex(0) +-13>Emitted(28, 25) Source(43, 44) + SourceIndex(0) +-14>Emitted(28, 26) Source(43, 45) + SourceIndex(0) +1->Emitted(26, 1) Source(43, 1) + SourceIndex(0) +2 >Emitted(26, 5) Source(43, 5) + SourceIndex(0) +3 >Emitted(26, 10) Source(43, 10) + SourceIndex(0) @@ -969,23 +924,23 @@ -15> } -16> ] -17> ; --1->Emitted(30, 1) Source(44, 1) + SourceIndex(0) --2 >Emitted(30, 5) Source(44, 5) + SourceIndex(0) --3 >Emitted(30, 10) Source(44, 10) + SourceIndex(0) --4 >Emitted(30, 13) Source(44, 50) + SourceIndex(0) --5 >Emitted(30, 14) Source(44, 51) + SourceIndex(0) --6 >Emitted(30, 24) Source(44, 60) + SourceIndex(0) --7 >Emitted(30, 25) Source(44, 61) + SourceIndex(0) --8 >Emitted(30, 27) Source(44, 63) + SourceIndex(0) --9 >Emitted(30, 28) Source(44, 64) + SourceIndex(0) --10>Emitted(30, 32) Source(44, 68) + SourceIndex(0) --11>Emitted(30, 39) Source(44, 75) + SourceIndex(0) --12>Emitted(30, 40) Source(44, 76) + SourceIndex(0) --13>Emitted(30, 41) Source(44, 77) + SourceIndex(0) --14>Emitted(30, 42) Source(44, 78) + SourceIndex(0) --15>Emitted(30, 43) Source(44, 79) + SourceIndex(0) --16>Emitted(30, 44) Source(44, 80) + SourceIndex(0) --17>Emitted(30, 45) Source(44, 81) + SourceIndex(0) +-1->Emitted(29, 1) Source(44, 1) + SourceIndex(0) +-2 >Emitted(29, 5) Source(44, 5) + SourceIndex(0) +-3 >Emitted(29, 10) Source(44, 10) + SourceIndex(0) +-4 >Emitted(29, 13) Source(44, 50) + SourceIndex(0) +-5 >Emitted(29, 14) Source(44, 51) + SourceIndex(0) +-6 >Emitted(29, 24) Source(44, 60) + SourceIndex(0) +-7 >Emitted(29, 25) Source(44, 61) + SourceIndex(0) +-8 >Emitted(29, 27) Source(44, 63) + SourceIndex(0) +-9 >Emitted(29, 28) Source(44, 64) + SourceIndex(0) +-10>Emitted(29, 32) Source(44, 68) + SourceIndex(0) +-11>Emitted(29, 39) Source(44, 75) + SourceIndex(0) +-12>Emitted(29, 40) Source(44, 76) + SourceIndex(0) +-13>Emitted(29, 41) Source(44, 77) + SourceIndex(0) +-14>Emitted(29, 42) Source(44, 78) + SourceIndex(0) +-15>Emitted(29, 43) Source(44, 79) + SourceIndex(0) +-16>Emitted(29, 44) Source(44, 80) + SourceIndex(0) +-17>Emitted(29, 45) Source(44, 81) + SourceIndex(0) +10> ) +11> { +12> return @@ -1020,10 +975,10 @@ 2 >var 3 > c3t12 4 > : IBar = --1 >Emitted(31, 1) Source(45, 1) + SourceIndex(0) --2 >Emitted(31, 5) Source(45, 5) + SourceIndex(0) --3 >Emitted(31, 10) Source(45, 10) + SourceIndex(0) --4 >Emitted(31, 13) Source(45, 19) + SourceIndex(0) +-1 >Emitted(30, 1) Source(45, 1) + SourceIndex(0) +-2 >Emitted(30, 5) Source(45, 5) + SourceIndex(0) +-3 >Emitted(30, 10) Source(45, 10) + SourceIndex(0) +-4 >Emitted(30, 13) Source(45, 19) + SourceIndex(0) +1 >Emitted(28, 1) Source(45, 1) + SourceIndex(0) +2 >Emitted(28, 5) Source(45, 5) + SourceIndex(0) +3 >Emitted(28, 10) Source(45, 10) + SourceIndex(0) @@ -1035,12 +990,12 @@ 4 > ( 5 > {} 6 > ) --1->Emitted(32, 5) Source(46, 5) + SourceIndex(0) --2 >Emitted(32, 8) Source(46, 8) + SourceIndex(0) --3 >Emitted(32, 10) Source(46, 16) + SourceIndex(0) --4 >Emitted(32, 11) Source(46, 17) + SourceIndex(0) --5 >Emitted(32, 13) Source(46, 19) + SourceIndex(0) --6 >Emitted(32, 14) Source(46, 20) + SourceIndex(0) +-1->Emitted(31, 5) Source(46, 5) + SourceIndex(0) +-2 >Emitted(31, 8) Source(46, 8) + SourceIndex(0) +-3 >Emitted(31, 10) Source(46, 16) + SourceIndex(0) +-4 >Emitted(31, 11) Source(46, 17) + SourceIndex(0) +-5 >Emitted(31, 13) Source(46, 19) + SourceIndex(0) +-6 >Emitted(31, 14) Source(46, 20) + SourceIndex(0) +1->Emitted(29, 5) Source(46, 5) + SourceIndex(0) +2 >Emitted(29, 8) Source(46, 8) + SourceIndex(0) +3 >Emitted(29, 10) Source(46, 16) + SourceIndex(0) @@ -1054,8 +1009,8 @@ 1 > >} 2 > --1 >Emitted(33, 2) Source(47, 2) + SourceIndex(0) --2 >Emitted(33, 3) Source(47, 2) + SourceIndex(0) +-1 >Emitted(32, 2) Source(47, 2) + SourceIndex(0) +-2 >Emitted(32, 3) Source(47, 2) + SourceIndex(0) +1 >Emitted(30, 2) Source(47, 2) + SourceIndex(0) +2 >Emitted(30, 3) Source(47, 2) + SourceIndex(0) --- @@ -1065,11 +1020,11 @@ 3 > c3t13 4 > = 5 > ( --1->Emitted(34, 1) Source(48, 1) + SourceIndex(0) --2 >Emitted(34, 5) Source(48, 5) + SourceIndex(0) --3 >Emitted(34, 10) Source(48, 10) + SourceIndex(0) --4 >Emitted(34, 13) Source(48, 19) + SourceIndex(0) --5 >Emitted(34, 14) Source(48, 20) + SourceIndex(0) +-1->Emitted(33, 1) Source(48, 1) + SourceIndex(0) +-2 >Emitted(33, 5) Source(48, 5) + SourceIndex(0) +-3 >Emitted(33, 10) Source(48, 10) + SourceIndex(0) +-4 >Emitted(33, 13) Source(48, 19) + SourceIndex(0) +-5 >Emitted(33, 14) Source(48, 20) + SourceIndex(0) +1->Emitted(31, 1) Source(48, 1) + SourceIndex(0) +2 >Emitted(31, 5) Source(48, 5) + SourceIndex(0) +3 >Emitted(31, 10) Source(48, 10) + SourceIndex(0) @@ -1108,19 +1063,19 @@ -11> ; -12> -13> } --1->Emitted(35, 5) Source(49, 5) + SourceIndex(0) --2 >Emitted(35, 6) Source(49, 6) + SourceIndex(0) --3 >Emitted(35, 8) Source(49, 8) + SourceIndex(0) --4 >Emitted(35, 18) Source(49, 17) + SourceIndex(0) --5 >Emitted(35, 19) Source(49, 18) + SourceIndex(0) --6 >Emitted(35, 21) Source(49, 20) + SourceIndex(0) --7 >Emitted(35, 22) Source(49, 21) + SourceIndex(0) --8 >Emitted(35, 26) Source(49, 25) + SourceIndex(0) --9 >Emitted(35, 33) Source(49, 32) + SourceIndex(0) --10>Emitted(35, 34) Source(49, 33) + SourceIndex(0) --11>Emitted(35, 35) Source(49, 34) + SourceIndex(0) --12>Emitted(35, 36) Source(49, 35) + SourceIndex(0) --13>Emitted(35, 37) Source(49, 36) + SourceIndex(0) +-1->Emitted(34, 5) Source(49, 5) + SourceIndex(0) +-2 >Emitted(34, 6) Source(49, 6) + SourceIndex(0) +-3 >Emitted(34, 8) Source(49, 8) + SourceIndex(0) +-4 >Emitted(34, 18) Source(49, 17) + SourceIndex(0) +-5 >Emitted(34, 19) Source(49, 18) + SourceIndex(0) +-6 >Emitted(34, 21) Source(49, 20) + SourceIndex(0) +-7 >Emitted(34, 22) Source(49, 21) + SourceIndex(0) +-8 >Emitted(34, 26) Source(49, 25) + SourceIndex(0) +-9 >Emitted(34, 33) Source(49, 32) + SourceIndex(0) +-10>Emitted(34, 34) Source(49, 33) + SourceIndex(0) +-11>Emitted(34, 35) Source(49, 34) + SourceIndex(0) +-12>Emitted(34, 36) Source(49, 35) + SourceIndex(0) +-13>Emitted(34, 37) Source(49, 36) + SourceIndex(0) +8 > ) +9 > { +10> return @@ -1149,9 +1104,9 @@ >} 2 > ) 3 > --1 >Emitted(36, 2) Source(50, 2) + SourceIndex(0) --2 >Emitted(36, 3) Source(50, 3) + SourceIndex(0) --3 >Emitted(36, 4) Source(50, 3) + SourceIndex(0) +-1 >Emitted(35, 2) Source(50, 2) + SourceIndex(0) +-2 >Emitted(35, 3) Source(50, 3) + SourceIndex(0) +-3 >Emitted(35, 4) Source(50, 3) + SourceIndex(0) +1 >Emitted(33, 2) Source(50, 2) + SourceIndex(0) +2 >Emitted(33, 3) Source(50, 3) + SourceIndex(0) +3 >Emitted(33, 4) Source(50, 3) + SourceIndex(0) @@ -1162,11 +1117,11 @@ 3 > c3t14 4 > = 5 > ( --1->Emitted(37, 1) Source(51, 1) + SourceIndex(0) --2 >Emitted(37, 5) Source(51, 5) + SourceIndex(0) --3 >Emitted(37, 10) Source(51, 10) + SourceIndex(0) --4 >Emitted(37, 13) Source(51, 19) + SourceIndex(0) --5 >Emitted(37, 14) Source(51, 20) + SourceIndex(0) +-1->Emitted(36, 1) Source(51, 1) + SourceIndex(0) +-2 >Emitted(36, 5) Source(51, 5) + SourceIndex(0) +-3 >Emitted(36, 10) Source(51, 10) + SourceIndex(0) +-4 >Emitted(36, 13) Source(51, 19) + SourceIndex(0) +-5 >Emitted(36, 14) Source(51, 20) + SourceIndex(0) +1->Emitted(34, 1) Source(51, 1) + SourceIndex(0) +2 >Emitted(34, 5) Source(51, 5) + SourceIndex(0) +3 >Emitted(34, 10) Source(51, 10) + SourceIndex(0) @@ -1179,10 +1134,10 @@ 2 > a 3 > : 4 > [] --1 >Emitted(38, 5) Source(52, 5) + SourceIndex(0) --2 >Emitted(38, 6) Source(52, 6) + SourceIndex(0) --3 >Emitted(38, 8) Source(52, 8) + SourceIndex(0) --4 >Emitted(38, 10) Source(52, 10) + SourceIndex(0) +-1 >Emitted(37, 5) Source(52, 5) + SourceIndex(0) +-2 >Emitted(37, 6) Source(52, 6) + SourceIndex(0) +-3 >Emitted(37, 8) Source(52, 8) + SourceIndex(0) +-4 >Emitted(37, 10) Source(52, 10) + SourceIndex(0) +1 >Emitted(35, 5) Source(52, 5) + SourceIndex(0) +2 >Emitted(35, 6) Source(52, 6) + SourceIndex(0) +3 >Emitted(35, 8) Source(52, 8) + SourceIndex(0) @@ -1194,41 +1149,36 @@ >} 2 > ) 3 > --1 >Emitted(39, 2) Source(53, 2) + SourceIndex(0) --2 >Emitted(39, 3) Source(53, 3) + SourceIndex(0) --3 >Emitted(39, 4) Source(53, 3) + SourceIndex(0) +-1 >Emitted(38, 2) Source(53, 2) + SourceIndex(0) +-2 >Emitted(38, 3) Source(53, 3) + SourceIndex(0) +-3 >Emitted(38, 4) Source(53, 3) + SourceIndex(0) +1 >Emitted(36, 2) Source(53, 2) + SourceIndex(0) +2 >Emitted(36, 3) Source(53, 3) + SourceIndex(0) +3 >Emitted(36, 4) Source(53, 3) + SourceIndex(0) --- >>>// CONTEXT: Class property assignment 1-> - 2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --3 > ^^^-> - 1-> +@@= skipped -11, +11 lines =@@ > > 2 >// CONTEXT: Class property assignment --1->Emitted(40, 1) Source(55, 1) + SourceIndex(0) --2 >Emitted(40, 38) Source(55, 38) + SourceIndex(0) +-1->Emitted(39, 1) Source(55, 1) + SourceIndex(0) +-2 >Emitted(39, 38) Source(55, 38) + SourceIndex(0) +1->Emitted(37, 1) Source(55, 1) + SourceIndex(0) +2 >Emitted(37, 38) Source(55, 38) + SourceIndex(0) --- -->>>var C4T5 = /** @class */ (function () { --1-> --2 >^^^^^^^^^^^^^^^^^^^^^^-> --1-> -+>>>class C4T5 { -+1 > -+2 >^^^^^^ -+3 > ^^^^ -+1 > + >>>class C4T5 { + 1 > + 2 >^^^^^^ + 3 > ^^^^ +-4 > ^^^^^^^^^^-> + 1 > > --1->Emitted(41, 1) Source(56, 1) + SourceIndex(0) ----- -->>> function C4T5() { -+2 >class -+3 > C4T5 + 2 >class + 3 > C4T5 +-1 >Emitted(40, 1) Source(56, 1) + SourceIndex(0) +-2 >Emitted(40, 7) Source(56, 7) + SourceIndex(0) +-3 >Emitted(40, 11) Source(56, 11) + SourceIndex(0) +1 >Emitted(38, 1) Source(56, 1) + SourceIndex(0) +2 >Emitted(38, 7) Source(56, 7) + SourceIndex(0) +3 >Emitted(38, 11) Source(56, 11) + SourceIndex(0) @@ -1245,24 +1195,24 @@ +1 >Emitted(39, 5) Source(57, 5) + SourceIndex(0) +2 >Emitted(39, 8) Source(57, 8) + SourceIndex(0) +3 >Emitted(39, 9) Source(57, 43) + SourceIndex(0) -+--- -+>>> constructor() { + --- + >>> constructor() { 1->^^^^ -2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> --1->class C4T5 { +-1-> { - > foo: (i: number, s: string) => string; +2 > ^^^^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^-> +1-> > --1->Emitted(42, 5) Source(58, 5) + SourceIndex(0) +-1->Emitted(41, 5) Source(58, 5) + SourceIndex(0) +2 > constructor() +1->Emitted(40, 5) Source(58, 5) + SourceIndex(0) +2 >Emitted(40, 19) Source(58, 19) + SourceIndex(0) --- >>> this.foo = function (i, s) { 1->^^^^^^^^ -@@= skipped -40, +59 lines =@@ +@@= skipped -34, +48 lines =@@ 7 > ^ 8 > ^^ 9 > ^ @@ -1276,15 +1226,15 @@ 7 > i 8 > , 9 > s --1->Emitted(43, 9) Source(59, 9) + SourceIndex(0) --2 >Emitted(43, 13) Source(59, 13) + SourceIndex(0) --3 >Emitted(43, 14) Source(59, 14) + SourceIndex(0) --4 >Emitted(43, 17) Source(59, 17) + SourceIndex(0) --5 >Emitted(43, 20) Source(59, 20) + SourceIndex(0) --6 >Emitted(43, 30) Source(59, 29) + SourceIndex(0) --7 >Emitted(43, 31) Source(59, 30) + SourceIndex(0) --8 >Emitted(43, 33) Source(59, 32) + SourceIndex(0) --9 >Emitted(43, 34) Source(59, 33) + SourceIndex(0) +-1->Emitted(42, 9) Source(59, 9) + SourceIndex(0) +-2 >Emitted(42, 13) Source(59, 13) + SourceIndex(0) +-3 >Emitted(42, 14) Source(59, 14) + SourceIndex(0) +-4 >Emitted(42, 17) Source(59, 17) + SourceIndex(0) +-5 >Emitted(42, 20) Source(59, 20) + SourceIndex(0) +-6 >Emitted(42, 30) Source(59, 29) + SourceIndex(0) +-7 >Emitted(42, 31) Source(59, 30) + SourceIndex(0) +-8 >Emitted(42, 33) Source(59, 32) + SourceIndex(0) +-9 >Emitted(42, 34) Source(59, 33) + SourceIndex(0) +10> ) +1->Emitted(41, 9) Source(59, 9) + SourceIndex(0) +2 >Emitted(41, 13) Source(59, 13) + SourceIndex(0) @@ -1308,10 +1258,10 @@ 2 > return 3 > s 4 > ; --1 >Emitted(44, 13) Source(60, 13) + SourceIndex(0) --2 >Emitted(44, 20) Source(60, 20) + SourceIndex(0) --3 >Emitted(44, 21) Source(60, 21) + SourceIndex(0) --4 >Emitted(44, 22) Source(60, 22) + SourceIndex(0) +-1 >Emitted(43, 13) Source(60, 13) + SourceIndex(0) +-2 >Emitted(43, 20) Source(60, 20) + SourceIndex(0) +-3 >Emitted(43, 21) Source(60, 21) + SourceIndex(0) +-4 >Emitted(43, 22) Source(60, 22) + SourceIndex(0) +1 >Emitted(42, 13) Source(60, 13) + SourceIndex(0) +2 >Emitted(42, 20) Source(60, 20) + SourceIndex(0) +3 >Emitted(42, 21) Source(60, 21) + SourceIndex(0) @@ -1327,9 +1277,9 @@ +2 > + > } 3 > --1 >Emitted(45, 9) Source(61, 9) + SourceIndex(0) --2 >Emitted(45, 10) Source(61, 10) + SourceIndex(0) --3 >Emitted(45, 11) Source(61, 10) + SourceIndex(0) +-1 >Emitted(44, 9) Source(61, 9) + SourceIndex(0) +-2 >Emitted(44, 10) Source(61, 10) + SourceIndex(0) +-3 >Emitted(44, 11) Source(61, 10) + SourceIndex(0) +1 >Emitted(43, 9) Source(60, 22) + SourceIndex(0) +2 >Emitted(43, 10) Source(61, 10) + SourceIndex(0) +3 >Emitted(43, 11) Source(61, 10) + SourceIndex(0) @@ -1337,64 +1287,32 @@ >>> } 1 >^^^^ 2 > ^ --3 > ^^^^^^^^^^^^-> --1 > + 1 > - > -2 > } --1 >Emitted(46, 5) Source(62, 5) + SourceIndex(0) --2 >Emitted(46, 6) Source(62, 6) + SourceIndex(0) ----- -->>> return C4T5; --1->^^^^ --2 > ^^^^^^^^^^^ --1-> -- > --2 > } --1->Emitted(47, 5) Source(63, 1) + SourceIndex(0) --2 >Emitted(47, 16) Source(63, 2) + SourceIndex(0) ----- -->>>}()); --1 > --2 >^ --3 > --4 > ^^^^ --5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> --1 > --2 >} --3 > --4 > class C4T5 { -- > foo: (i: number, s: string) => string; -- > constructor() { -- > this.foo = function(i, s) { -- > return s; -- > } -- > } -- > } --1 >Emitted(48, 1) Source(63, 1) + SourceIndex(0) --2 >Emitted(48, 2) Source(63, 2) + SourceIndex(0) --3 >Emitted(48, 2) Source(56, 1) + SourceIndex(0) --4 >Emitted(48, 6) Source(63, 2) + SourceIndex(0) -+1 > +-1 >Emitted(45, 5) Source(62, 5) + SourceIndex(0) +-2 >Emitted(45, 6) Source(62, 6) + SourceIndex(0) +2 > + > } +1 >Emitted(44, 5) Source(61, 10) + SourceIndex(0) +2 >Emitted(44, 6) Source(62, 6) + SourceIndex(0) -+--- -+>>>} -+1 >^ -+2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -+1 > -+ >} + --- + >>>} + 1 >^ + 2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> + 1 > + >} +-1 >Emitted(46, 2) Source(63, 2) + SourceIndex(0) +1 >Emitted(45, 2) Source(63, 2) + SourceIndex(0) --- >>>// CONTEXT: Module property assignment 1-> -@@= skipped -85, +62 lines =@@ +@@= skipped -60, +62 lines =@@ > > 2 >// CONTEXT: Module property assignment --1->Emitted(49, 1) Source(65, 1) + SourceIndex(0) --2 >Emitted(49, 39) Source(65, 39) + SourceIndex(0) +-1->Emitted(47, 1) Source(65, 1) + SourceIndex(0) +-2 >Emitted(47, 39) Source(65, 39) + SourceIndex(0) +1->Emitted(46, 1) Source(65, 1) + SourceIndex(0) +2 >Emitted(46, 39) Source(65, 39) + SourceIndex(0) --- @@ -1419,10 +1337,10 @@ + > foo = function(i, s) { + > return s; > } --1 >Emitted(50, 1) Source(66, 1) + SourceIndex(0) --2 >Emitted(50, 5) Source(66, 8) + SourceIndex(0) --3 >Emitted(50, 9) Source(66, 12) + SourceIndex(0) --4 >Emitted(50, 10) Source(71, 2) + SourceIndex(0) +-1 >Emitted(48, 1) Source(66, 1) + SourceIndex(0) +-2 >Emitted(48, 5) Source(66, 8) + SourceIndex(0) +-3 >Emitted(48, 9) Source(66, 12) + SourceIndex(0) +-4 >Emitted(48, 10) Source(71, 2) + SourceIndex(0) + > } +1 >Emitted(47, 1) Source(66, 1) + SourceIndex(0) +2 >Emitted(47, 5) Source(66, 8) + SourceIndex(0) @@ -1438,9 +1356,9 @@ 1-> 2 >module 3 > C5T5 --1->Emitted(51, 1) Source(66, 1) + SourceIndex(0) --2 >Emitted(51, 12) Source(66, 8) + SourceIndex(0) --3 >Emitted(51, 16) Source(66, 12) + SourceIndex(0) +-1->Emitted(49, 1) Source(66, 1) + SourceIndex(0) +-2 >Emitted(49, 12) Source(66, 8) + SourceIndex(0) +-3 >Emitted(49, 16) Source(66, 12) + SourceIndex(0) +4 > +1->Emitted(48, 1) Source(66, 1) + SourceIndex(0) +2 >Emitted(48, 12) Source(66, 8) + SourceIndex(0) @@ -1474,14 +1392,14 @@ -6 > i -7 > , -8 > s --1->Emitted(52, 5) Source(68, 5) + SourceIndex(0) --2 >Emitted(52, 10) Source(68, 5) + SourceIndex(0) --3 >Emitted(52, 13) Source(68, 8) + SourceIndex(0) --4 >Emitted(52, 16) Source(68, 11) + SourceIndex(0) --5 >Emitted(52, 26) Source(68, 20) + SourceIndex(0) --6 >Emitted(52, 27) Source(68, 21) + SourceIndex(0) --7 >Emitted(52, 29) Source(68, 23) + SourceIndex(0) --8 >Emitted(52, 30) Source(68, 24) + SourceIndex(0) +-1->Emitted(50, 5) Source(68, 5) + SourceIndex(0) +-2 >Emitted(50, 10) Source(68, 5) + SourceIndex(0) +-3 >Emitted(50, 13) Source(68, 8) + SourceIndex(0) +-4 >Emitted(50, 16) Source(68, 11) + SourceIndex(0) +-5 >Emitted(50, 26) Source(68, 20) + SourceIndex(0) +-6 >Emitted(50, 27) Source(68, 21) + SourceIndex(0) +-7 >Emitted(50, 29) Source(68, 23) + SourceIndex(0) +-8 >Emitted(50, 30) Source(68, 24) + SourceIndex(0) +2 > foo +3 > = +4 > function( @@ -1509,10 +1427,10 @@ 2 > return 3 > s 4 > ; --1 >Emitted(53, 9) Source(69, 9) + SourceIndex(0) --2 >Emitted(53, 16) Source(69, 16) + SourceIndex(0) --3 >Emitted(53, 17) Source(69, 17) + SourceIndex(0) --4 >Emitted(53, 18) Source(69, 18) + SourceIndex(0) +-1 >Emitted(51, 9) Source(69, 9) + SourceIndex(0) +-2 >Emitted(51, 16) Source(69, 16) + SourceIndex(0) +-3 >Emitted(51, 17) Source(69, 17) + SourceIndex(0) +-4 >Emitted(51, 18) Source(69, 18) + SourceIndex(0) +1 >Emitted(50, 9) Source(69, 9) + SourceIndex(0) +2 >Emitted(50, 16) Source(69, 16) + SourceIndex(0) +3 >Emitted(50, 17) Source(69, 17) + SourceIndex(0) @@ -1529,9 +1447,9 @@ +2 > + > } 3 > --1 >Emitted(54, 5) Source(70, 5) + SourceIndex(0) --2 >Emitted(54, 6) Source(70, 6) + SourceIndex(0) --3 >Emitted(54, 7) Source(70, 6) + SourceIndex(0) +-1 >Emitted(52, 5) Source(70, 5) + SourceIndex(0) +-2 >Emitted(52, 6) Source(70, 6) + SourceIndex(0) +-3 >Emitted(52, 7) Source(70, 6) + SourceIndex(0) +1 >Emitted(51, 5) Source(69, 18) + SourceIndex(0) +2 >Emitted(51, 6) Source(70, 6) + SourceIndex(0) +3 >Emitted(51, 7) Source(70, 6) + SourceIndex(0) @@ -1553,13 +1471,13 @@ > return s; > } > } --1->Emitted(55, 1) Source(71, 1) + SourceIndex(0) --2 >Emitted(55, 2) Source(71, 2) + SourceIndex(0) --3 >Emitted(55, 4) Source(66, 8) + SourceIndex(0) --4 >Emitted(55, 8) Source(66, 12) + SourceIndex(0) --5 >Emitted(55, 13) Source(66, 8) + SourceIndex(0) --6 >Emitted(55, 17) Source(66, 12) + SourceIndex(0) --7 >Emitted(55, 25) Source(71, 2) + SourceIndex(0) +-1->Emitted(53, 1) Source(71, 1) + SourceIndex(0) +-2 >Emitted(53, 2) Source(71, 2) + SourceIndex(0) +-3 >Emitted(53, 4) Source(66, 8) + SourceIndex(0) +-4 >Emitted(53, 8) Source(66, 12) + SourceIndex(0) +-5 >Emitted(53, 13) Source(66, 8) + SourceIndex(0) +-6 >Emitted(53, 17) Source(66, 12) + SourceIndex(0) +-7 >Emitted(53, 25) Source(71, 2) + SourceIndex(0) +1->Emitted(52, 1) Source(70, 6) + SourceIndex(0) +2 >Emitted(52, 2) Source(71, 2) + SourceIndex(0) +3 >Emitted(52, 4) Source(66, 8) + SourceIndex(0) @@ -1574,8 +1492,8 @@ > > 2 >// CONTEXT: Variable assignment --1->Emitted(56, 1) Source(73, 1) + SourceIndex(0) --2 >Emitted(56, 32) Source(73, 32) + SourceIndex(0) +-1->Emitted(54, 1) Source(73, 1) + SourceIndex(0) +-2 >Emitted(54, 32) Source(73, 32) + SourceIndex(0) +1->Emitted(53, 1) Source(73, 1) + SourceIndex(0) +2 >Emitted(53, 32) Source(73, 32) + SourceIndex(0) --- @@ -1585,10 +1503,10 @@ 2 >var 3 > c6t5: (n: number) => IFoo 4 > ; --1 >Emitted(57, 1) Source(74, 1) + SourceIndex(0) --2 >Emitted(57, 5) Source(74, 5) + SourceIndex(0) --3 >Emitted(57, 9) Source(74, 30) + SourceIndex(0) --4 >Emitted(57, 10) Source(74, 31) + SourceIndex(0) +-1 >Emitted(55, 1) Source(74, 1) + SourceIndex(0) +-2 >Emitted(55, 5) Source(74, 5) + SourceIndex(0) +-3 >Emitted(55, 9) Source(74, 30) + SourceIndex(0) +-4 >Emitted(55, 10) Source(74, 31) + SourceIndex(0) +1 >Emitted(54, 1) Source(74, 1) + SourceIndex(0) +2 >Emitted(54, 5) Source(74, 5) + SourceIndex(0) +3 >Emitted(54, 9) Source(74, 30) + SourceIndex(0) @@ -1634,20 +1552,20 @@ -12> -13> } -14> ; --1->Emitted(58, 1) Source(75, 1) + SourceIndex(0) --2 >Emitted(58, 5) Source(75, 5) + SourceIndex(0) --3 >Emitted(58, 8) Source(75, 29) + SourceIndex(0) --4 >Emitted(58, 18) Source(75, 38) + SourceIndex(0) --5 >Emitted(58, 19) Source(75, 39) + SourceIndex(0) --6 >Emitted(58, 23) Source(75, 43) + SourceIndex(0) --7 >Emitted(58, 30) Source(75, 56) + SourceIndex(0) --8 >Emitted(58, 31) Source(75, 57) + SourceIndex(0) --9 >Emitted(58, 33) Source(75, 59) + SourceIndex(0) --10>Emitted(58, 34) Source(75, 60) + SourceIndex(0) --11>Emitted(58, 35) Source(75, 60) + SourceIndex(0) --12>Emitted(58, 36) Source(75, 61) + SourceIndex(0) --13>Emitted(58, 37) Source(75, 62) + SourceIndex(0) --14>Emitted(58, 38) Source(75, 63) + SourceIndex(0) +-1->Emitted(56, 1) Source(75, 1) + SourceIndex(0) +-2 >Emitted(56, 5) Source(75, 5) + SourceIndex(0) +-3 >Emitted(56, 8) Source(75, 29) + SourceIndex(0) +-4 >Emitted(56, 18) Source(75, 38) + SourceIndex(0) +-5 >Emitted(56, 19) Source(75, 39) + SourceIndex(0) +-6 >Emitted(56, 23) Source(75, 43) + SourceIndex(0) +-7 >Emitted(56, 30) Source(75, 56) + SourceIndex(0) +-8 >Emitted(56, 31) Source(75, 57) + SourceIndex(0) +-9 >Emitted(56, 33) Source(75, 59) + SourceIndex(0) +-10>Emitted(56, 34) Source(75, 60) + SourceIndex(0) +-11>Emitted(56, 35) Source(75, 60) + SourceIndex(0) +-12>Emitted(56, 36) Source(75, 61) + SourceIndex(0) +-13>Emitted(56, 37) Source(75, 62) + SourceIndex(0) +-14>Emitted(56, 38) Source(75, 63) + SourceIndex(0) +6 > ) +7 > { +8 > return @@ -1680,8 +1598,8 @@ > > 2 >// CONTEXT: Array index assignment --1 >Emitted(59, 1) Source(77, 1) + SourceIndex(0) --2 >Emitted(59, 35) Source(77, 35) + SourceIndex(0) +-1 >Emitted(57, 1) Source(77, 1) + SourceIndex(0) +-2 >Emitted(57, 35) Source(77, 35) + SourceIndex(0) +1 >Emitted(56, 1) Source(77, 1) + SourceIndex(0) +2 >Emitted(56, 35) Source(77, 35) + SourceIndex(0) --- @@ -1691,10 +1609,10 @@ 2 >var 3 > c7t2: IFoo[] 4 > ; --1 >Emitted(60, 1) Source(78, 1) + SourceIndex(0) --2 >Emitted(60, 5) Source(78, 5) + SourceIndex(0) --3 >Emitted(60, 9) Source(78, 17) + SourceIndex(0) --4 >Emitted(60, 10) Source(78, 18) + SourceIndex(0) +-1 >Emitted(58, 1) Source(78, 1) + SourceIndex(0) +-2 >Emitted(58, 5) Source(78, 5) + SourceIndex(0) +-3 >Emitted(58, 9) Source(78, 17) + SourceIndex(0) +-4 >Emitted(58, 10) Source(78, 18) + SourceIndex(0) +1 >Emitted(57, 1) Source(78, 1) + SourceIndex(0) +2 >Emitted(57, 5) Source(78, 5) + SourceIndex(0) +3 >Emitted(57, 9) Source(78, 17) + SourceIndex(0) @@ -1706,20 +1624,20 @@ 12> } 13> ) 14> ; --1->Emitted(61, 1) Source(79, 1) + SourceIndex(0) --2 >Emitted(61, 5) Source(79, 5) + SourceIndex(0) --3 >Emitted(61, 6) Source(79, 6) + SourceIndex(0) --4 >Emitted(61, 7) Source(79, 7) + SourceIndex(0) --5 >Emitted(61, 8) Source(79, 8) + SourceIndex(0) --6 >Emitted(61, 11) Source(79, 17) + SourceIndex(0) --7 >Emitted(61, 12) Source(79, 18) + SourceIndex(0) --8 >Emitted(61, 14) Source(79, 19) + SourceIndex(0) --9 >Emitted(61, 15) Source(79, 20) + SourceIndex(0) --10>Emitted(61, 17) Source(79, 22) + SourceIndex(0) --11>Emitted(61, 18) Source(79, 23) + SourceIndex(0) --12>Emitted(61, 20) Source(79, 24) + SourceIndex(0) --13>Emitted(61, 21) Source(79, 25) + SourceIndex(0) --14>Emitted(61, 22) Source(79, 26) + SourceIndex(0) +-1->Emitted(59, 1) Source(79, 1) + SourceIndex(0) +-2 >Emitted(59, 5) Source(79, 5) + SourceIndex(0) +-3 >Emitted(59, 6) Source(79, 6) + SourceIndex(0) +-4 >Emitted(59, 7) Source(79, 7) + SourceIndex(0) +-5 >Emitted(59, 8) Source(79, 8) + SourceIndex(0) +-6 >Emitted(59, 11) Source(79, 17) + SourceIndex(0) +-7 >Emitted(59, 12) Source(79, 18) + SourceIndex(0) +-8 >Emitted(59, 14) Source(79, 19) + SourceIndex(0) +-9 >Emitted(59, 15) Source(79, 20) + SourceIndex(0) +-10>Emitted(59, 17) Source(79, 22) + SourceIndex(0) +-11>Emitted(59, 18) Source(79, 23) + SourceIndex(0) +-12>Emitted(59, 20) Source(79, 24) + SourceIndex(0) +-13>Emitted(59, 21) Source(79, 25) + SourceIndex(0) +-14>Emitted(59, 22) Source(79, 26) + SourceIndex(0) +1->Emitted(58, 1) Source(79, 1) + SourceIndex(0) +2 >Emitted(58, 5) Source(79, 5) + SourceIndex(0) +3 >Emitted(58, 6) Source(79, 6) + SourceIndex(0) @@ -1741,14 +1659,14 @@ 6 > {} 7 > ) 8 > ; --1 >Emitted(62, 1) Source(102, 1) + SourceIndex(0) --2 >Emitted(62, 5) Source(102, 5) + SourceIndex(0) --3 >Emitted(62, 10) Source(102, 10) + SourceIndex(0) --4 >Emitted(62, 13) Source(120, 19) + SourceIndex(0) --5 >Emitted(62, 14) Source(120, 20) + SourceIndex(0) --6 >Emitted(62, 16) Source(120, 22) + SourceIndex(0) --7 >Emitted(62, 17) Source(120, 23) + SourceIndex(0) --8 >Emitted(62, 18) Source(120, 24) + SourceIndex(0) +-1 >Emitted(60, 1) Source(102, 1) + SourceIndex(0) +-2 >Emitted(60, 5) Source(102, 5) + SourceIndex(0) +-3 >Emitted(60, 10) Source(102, 10) + SourceIndex(0) +-4 >Emitted(60, 13) Source(120, 19) + SourceIndex(0) +-5 >Emitted(60, 14) Source(120, 20) + SourceIndex(0) +-6 >Emitted(60, 16) Source(120, 22) + SourceIndex(0) +-7 >Emitted(60, 17) Source(120, 23) + SourceIndex(0) +-8 >Emitted(60, 18) Source(120, 24) + SourceIndex(0) +1 >Emitted(59, 1) Source(102, 1) + SourceIndex(0) +2 >Emitted(59, 5) Source(102, 5) + SourceIndex(0) +3 >Emitted(59, 10) Source(102, 10) + SourceIndex(0) @@ -1796,22 +1714,22 @@ -14> } -15> ) -16> ; --1->Emitted(63, 1) Source(122, 1) + SourceIndex(0) --2 >Emitted(63, 6) Source(122, 6) + SourceIndex(0) --3 >Emitted(63, 7) Source(122, 7) + SourceIndex(0) --4 >Emitted(63, 9) Source(122, 9) + SourceIndex(0) --5 >Emitted(63, 12) Source(122, 12) + SourceIndex(0) --6 >Emitted(63, 13) Source(122, 13) + SourceIndex(0) --7 >Emitted(63, 23) Source(122, 22) + SourceIndex(0) --8 >Emitted(63, 24) Source(122, 23) + SourceIndex(0) --9 >Emitted(63, 28) Source(122, 27) + SourceIndex(0) --10>Emitted(63, 35) Source(122, 34) + SourceIndex(0) --11>Emitted(63, 36) Source(122, 35) + SourceIndex(0) --12>Emitted(63, 37) Source(122, 35) + SourceIndex(0) --13>Emitted(63, 38) Source(122, 36) + SourceIndex(0) --14>Emitted(63, 39) Source(122, 37) + SourceIndex(0) --15>Emitted(63, 40) Source(122, 38) + SourceIndex(0) --16>Emitted(63, 41) Source(122, 39) + SourceIndex(0) +-1->Emitted(61, 1) Source(122, 1) + SourceIndex(0) +-2 >Emitted(61, 6) Source(122, 6) + SourceIndex(0) +-3 >Emitted(61, 7) Source(122, 7) + SourceIndex(0) +-4 >Emitted(61, 9) Source(122, 9) + SourceIndex(0) +-5 >Emitted(61, 12) Source(122, 12) + SourceIndex(0) +-6 >Emitted(61, 13) Source(122, 13) + SourceIndex(0) +-7 >Emitted(61, 23) Source(122, 22) + SourceIndex(0) +-8 >Emitted(61, 24) Source(122, 23) + SourceIndex(0) +-9 >Emitted(61, 28) Source(122, 27) + SourceIndex(0) +-10>Emitted(61, 35) Source(122, 34) + SourceIndex(0) +-11>Emitted(61, 36) Source(122, 35) + SourceIndex(0) +-12>Emitted(61, 37) Source(122, 35) + SourceIndex(0) +-13>Emitted(61, 38) Source(122, 36) + SourceIndex(0) +-14>Emitted(61, 39) Source(122, 37) + SourceIndex(0) +-15>Emitted(61, 40) Source(122, 38) + SourceIndex(0) +-16>Emitted(61, 41) Source(122, 39) + SourceIndex(0) +9 > ) +10> { +11> return @@ -1845,12 +1763,12 @@ 4 > t2 5 > = 6 > ( --1 >Emitted(64, 1) Source(123, 1) + SourceIndex(0) --2 >Emitted(64, 6) Source(123, 6) + SourceIndex(0) --3 >Emitted(64, 7) Source(123, 7) + SourceIndex(0) --4 >Emitted(64, 9) Source(123, 9) + SourceIndex(0) --5 >Emitted(64, 12) Source(123, 18) + SourceIndex(0) --6 >Emitted(64, 13) Source(123, 19) + SourceIndex(0) +-1 >Emitted(62, 1) Source(123, 1) + SourceIndex(0) +-2 >Emitted(62, 6) Source(123, 6) + SourceIndex(0) +-3 >Emitted(62, 7) Source(123, 7) + SourceIndex(0) +-4 >Emitted(62, 9) Source(123, 9) + SourceIndex(0) +-5 >Emitted(62, 12) Source(123, 18) + SourceIndex(0) +-6 >Emitted(62, 13) Source(123, 19) + SourceIndex(0) +1 >Emitted(61, 1) Source(123, 1) + SourceIndex(0) +2 >Emitted(61, 6) Source(123, 6) + SourceIndex(0) +3 >Emitted(61, 7) Source(123, 7) + SourceIndex(0) @@ -1864,10 +1782,10 @@ 2 > n 3 > : 4 > 1 --1 >Emitted(65, 5) Source(124, 5) + SourceIndex(0) --2 >Emitted(65, 6) Source(124, 6) + SourceIndex(0) --3 >Emitted(65, 8) Source(124, 8) + SourceIndex(0) --4 >Emitted(65, 9) Source(124, 9) + SourceIndex(0) +-1 >Emitted(63, 5) Source(124, 5) + SourceIndex(0) +-2 >Emitted(63, 6) Source(124, 6) + SourceIndex(0) +-3 >Emitted(63, 8) Source(124, 8) + SourceIndex(0) +-4 >Emitted(63, 9) Source(124, 9) + SourceIndex(0) +1 >Emitted(62, 5) Source(124, 5) + SourceIndex(0) +2 >Emitted(62, 6) Source(124, 6) + SourceIndex(0) +3 >Emitted(62, 8) Source(124, 8) + SourceIndex(0) @@ -1879,9 +1797,9 @@ >} 2 > ) 3 > ; --1 >Emitted(66, 2) Source(125, 2) + SourceIndex(0) --2 >Emitted(66, 3) Source(125, 3) + SourceIndex(0) --3 >Emitted(66, 4) Source(125, 4) + SourceIndex(0) +-1 >Emitted(64, 2) Source(125, 2) + SourceIndex(0) +-2 >Emitted(64, 3) Source(125, 3) + SourceIndex(0) +-3 >Emitted(64, 4) Source(125, 4) + SourceIndex(0) +1 >Emitted(63, 2) Source(125, 2) + SourceIndex(0) +2 >Emitted(63, 3) Source(125, 3) + SourceIndex(0) +3 >Emitted(63, 4) Source(125, 4) + SourceIndex(0) @@ -1892,13 +1810,13 @@ 5 > = 6 > [] 7 > ; --1->Emitted(67, 1) Source(126, 1) + SourceIndex(0) --2 >Emitted(67, 6) Source(126, 6) + SourceIndex(0) --3 >Emitted(67, 7) Source(126, 7) + SourceIndex(0) --4 >Emitted(67, 9) Source(126, 9) + SourceIndex(0) --5 >Emitted(67, 12) Source(126, 12) + SourceIndex(0) --6 >Emitted(67, 14) Source(126, 14) + SourceIndex(0) --7 >Emitted(67, 15) Source(126, 15) + SourceIndex(0) +-1->Emitted(65, 1) Source(126, 1) + SourceIndex(0) +-2 >Emitted(65, 6) Source(126, 6) + SourceIndex(0) +-3 >Emitted(65, 7) Source(126, 7) + SourceIndex(0) +-4 >Emitted(65, 9) Source(126, 9) + SourceIndex(0) +-5 >Emitted(65, 12) Source(126, 12) + SourceIndex(0) +-6 >Emitted(65, 14) Source(126, 14) + SourceIndex(0) +-7 >Emitted(65, 15) Source(126, 15) + SourceIndex(0) +1->Emitted(64, 1) Source(126, 1) + SourceIndex(0) +2 >Emitted(64, 6) Source(126, 6) + SourceIndex(0) +3 >Emitted(64, 7) Source(126, 7) + SourceIndex(0) @@ -1949,20 +1867,20 @@ -12> -13> } -14> ; --1->Emitted(68, 1) Source(127, 1) + SourceIndex(0) --2 >Emitted(68, 6) Source(127, 6) + SourceIndex(0) --3 >Emitted(68, 7) Source(127, 7) + SourceIndex(0) --4 >Emitted(68, 9) Source(127, 9) + SourceIndex(0) --5 >Emitted(68, 12) Source(127, 12) + SourceIndex(0) --6 >Emitted(68, 26) Source(127, 25) + SourceIndex(0) --7 >Emitted(68, 33) Source(127, 38) + SourceIndex(0) --8 >Emitted(68, 34) Source(127, 39) + SourceIndex(0) --9 >Emitted(68, 36) Source(127, 41) + SourceIndex(0) --10>Emitted(68, 37) Source(127, 42) + SourceIndex(0) --11>Emitted(68, 38) Source(127, 42) + SourceIndex(0) --12>Emitted(68, 39) Source(127, 43) + SourceIndex(0) --13>Emitted(68, 40) Source(127, 44) + SourceIndex(0) --14>Emitted(68, 41) Source(127, 45) + SourceIndex(0) +-1->Emitted(66, 1) Source(127, 1) + SourceIndex(0) +-2 >Emitted(66, 6) Source(127, 6) + SourceIndex(0) +-3 >Emitted(66, 7) Source(127, 7) + SourceIndex(0) +-4 >Emitted(66, 9) Source(127, 9) + SourceIndex(0) +-5 >Emitted(66, 12) Source(127, 12) + SourceIndex(0) +-6 >Emitted(66, 26) Source(127, 25) + SourceIndex(0) +-7 >Emitted(66, 33) Source(127, 38) + SourceIndex(0) +-8 >Emitted(66, 34) Source(127, 39) + SourceIndex(0) +-9 >Emitted(66, 36) Source(127, 41) + SourceIndex(0) +-10>Emitted(66, 37) Source(127, 42) + SourceIndex(0) +-11>Emitted(66, 38) Source(127, 42) + SourceIndex(0) +-12>Emitted(66, 39) Source(127, 43) + SourceIndex(0) +-13>Emitted(66, 40) Source(127, 44) + SourceIndex(0) +-14>Emitted(66, 41) Source(127, 45) + SourceIndex(0) +6 > function() +7 > { +8 > return @@ -2032,22 +1950,22 @@ -14> -15> } -16> ; --1->Emitted(69, 1) Source(128, 1) + SourceIndex(0) --2 >Emitted(69, 6) Source(128, 6) + SourceIndex(0) --3 >Emitted(69, 7) Source(128, 7) + SourceIndex(0) --4 >Emitted(69, 9) Source(128, 9) + SourceIndex(0) --5 >Emitted(69, 12) Source(128, 12) + SourceIndex(0) --6 >Emitted(69, 22) Source(128, 21) + SourceIndex(0) --7 >Emitted(69, 23) Source(128, 22) + SourceIndex(0) --8 >Emitted(69, 27) Source(128, 26) + SourceIndex(0) --9 >Emitted(69, 34) Source(128, 39) + SourceIndex(0) --10>Emitted(69, 35) Source(128, 40) + SourceIndex(0) --11>Emitted(69, 37) Source(128, 42) + SourceIndex(0) --12>Emitted(69, 38) Source(128, 43) + SourceIndex(0) --13>Emitted(69, 39) Source(128, 43) + SourceIndex(0) --14>Emitted(69, 40) Source(128, 44) + SourceIndex(0) --15>Emitted(69, 41) Source(128, 45) + SourceIndex(0) --16>Emitted(69, 42) Source(128, 46) + SourceIndex(0) +-1->Emitted(67, 1) Source(128, 1) + SourceIndex(0) +-2 >Emitted(67, 6) Source(128, 6) + SourceIndex(0) +-3 >Emitted(67, 7) Source(128, 7) + SourceIndex(0) +-4 >Emitted(67, 9) Source(128, 9) + SourceIndex(0) +-5 >Emitted(67, 12) Source(128, 12) + SourceIndex(0) +-6 >Emitted(67, 22) Source(128, 21) + SourceIndex(0) +-7 >Emitted(67, 23) Source(128, 22) + SourceIndex(0) +-8 >Emitted(67, 27) Source(128, 26) + SourceIndex(0) +-9 >Emitted(67, 34) Source(128, 39) + SourceIndex(0) +-10>Emitted(67, 35) Source(128, 40) + SourceIndex(0) +-11>Emitted(67, 37) Source(128, 42) + SourceIndex(0) +-12>Emitted(67, 38) Source(128, 43) + SourceIndex(0) +-13>Emitted(67, 39) Source(128, 43) + SourceIndex(0) +-14>Emitted(67, 40) Source(128, 44) + SourceIndex(0) +-15>Emitted(67, 41) Source(128, 45) + SourceIndex(0) +-16>Emitted(67, 42) Source(128, 46) + SourceIndex(0) +8 > ) +9 > { +10> return @@ -2117,24 +2035,24 @@ -16> -17> } -18> ; --1->Emitted(70, 1) Source(129, 1) + SourceIndex(0) --2 >Emitted(70, 6) Source(129, 6) + SourceIndex(0) --3 >Emitted(70, 7) Source(129, 7) + SourceIndex(0) --4 >Emitted(70, 9) Source(129, 9) + SourceIndex(0) --5 >Emitted(70, 12) Source(129, 12) + SourceIndex(0) --6 >Emitted(70, 22) Source(129, 21) + SourceIndex(0) --7 >Emitted(70, 23) Source(129, 22) + SourceIndex(0) --8 >Emitted(70, 25) Source(129, 24) + SourceIndex(0) --9 >Emitted(70, 26) Source(129, 25) + SourceIndex(0) --10>Emitted(70, 30) Source(129, 29) + SourceIndex(0) --11>Emitted(70, 37) Source(129, 42) + SourceIndex(0) --12>Emitted(70, 38) Source(129, 43) + SourceIndex(0) --13>Emitted(70, 40) Source(129, 45) + SourceIndex(0) --14>Emitted(70, 41) Source(129, 46) + SourceIndex(0) --15>Emitted(70, 42) Source(129, 46) + SourceIndex(0) --16>Emitted(70, 43) Source(129, 47) + SourceIndex(0) --17>Emitted(70, 44) Source(129, 48) + SourceIndex(0) --18>Emitted(70, 45) Source(129, 49) + SourceIndex(0) +-1->Emitted(68, 1) Source(129, 1) + SourceIndex(0) +-2 >Emitted(68, 6) Source(129, 6) + SourceIndex(0) +-3 >Emitted(68, 7) Source(129, 7) + SourceIndex(0) +-4 >Emitted(68, 9) Source(129, 9) + SourceIndex(0) +-5 >Emitted(68, 12) Source(129, 12) + SourceIndex(0) +-6 >Emitted(68, 22) Source(129, 21) + SourceIndex(0) +-7 >Emitted(68, 23) Source(129, 22) + SourceIndex(0) +-8 >Emitted(68, 25) Source(129, 24) + SourceIndex(0) +-9 >Emitted(68, 26) Source(129, 25) + SourceIndex(0) +-10>Emitted(68, 30) Source(129, 29) + SourceIndex(0) +-11>Emitted(68, 37) Source(129, 42) + SourceIndex(0) +-12>Emitted(68, 38) Source(129, 43) + SourceIndex(0) +-13>Emitted(68, 40) Source(129, 45) + SourceIndex(0) +-14>Emitted(68, 41) Source(129, 46) + SourceIndex(0) +-15>Emitted(68, 42) Source(129, 46) + SourceIndex(0) +-16>Emitted(68, 43) Source(129, 47) + SourceIndex(0) +-17>Emitted(68, 44) Source(129, 48) + SourceIndex(0) +-18>Emitted(68, 45) Source(129, 49) + SourceIndex(0) +10> ) +11> { +12> return @@ -2202,20 +2120,20 @@ -12> -13> } -14> ; --1 >Emitted(71, 1) Source(130, 1) + SourceIndex(0) --2 >Emitted(71, 6) Source(130, 6) + SourceIndex(0) --3 >Emitted(71, 7) Source(130, 7) + SourceIndex(0) --4 >Emitted(71, 9) Source(130, 9) + SourceIndex(0) --5 >Emitted(71, 12) Source(130, 12) + SourceIndex(0) --6 >Emitted(71, 22) Source(130, 21) + SourceIndex(0) --7 >Emitted(71, 23) Source(130, 30) + SourceIndex(0) --8 >Emitted(71, 27) Source(130, 34) + SourceIndex(0) --9 >Emitted(71, 34) Source(130, 41) + SourceIndex(0) --10>Emitted(71, 35) Source(130, 42) + SourceIndex(0) --11>Emitted(71, 36) Source(130, 42) + SourceIndex(0) --12>Emitted(71, 37) Source(130, 43) + SourceIndex(0) --13>Emitted(71, 38) Source(130, 44) + SourceIndex(0) --14>Emitted(71, 39) Source(130, 45) + SourceIndex(0) +-1 >Emitted(69, 1) Source(130, 1) + SourceIndex(0) +-2 >Emitted(69, 6) Source(130, 6) + SourceIndex(0) +-3 >Emitted(69, 7) Source(130, 7) + SourceIndex(0) +-4 >Emitted(69, 9) Source(130, 9) + SourceIndex(0) +-5 >Emitted(69, 12) Source(130, 12) + SourceIndex(0) +-6 >Emitted(69, 22) Source(130, 21) + SourceIndex(0) +-7 >Emitted(69, 23) Source(130, 30) + SourceIndex(0) +-8 >Emitted(69, 27) Source(130, 34) + SourceIndex(0) +-9 >Emitted(69, 34) Source(130, 41) + SourceIndex(0) +-10>Emitted(69, 35) Source(130, 42) + SourceIndex(0) +-11>Emitted(69, 36) Source(130, 42) + SourceIndex(0) +-12>Emitted(69, 37) Source(130, 43) + SourceIndex(0) +-13>Emitted(69, 38) Source(130, 44) + SourceIndex(0) +-14>Emitted(69, 39) Source(130, 45) + SourceIndex(0) +8 > ) +9 > { +10> return @@ -2275,20 +2193,20 @@ -12> -13> } -14> ; --1->Emitted(72, 1) Source(132, 1) + SourceIndex(0) --2 >Emitted(72, 6) Source(132, 6) + SourceIndex(0) --3 >Emitted(72, 7) Source(132, 7) + SourceIndex(0) --4 >Emitted(72, 9) Source(132, 9) + SourceIndex(0) --5 >Emitted(72, 12) Source(132, 12) + SourceIndex(0) --6 >Emitted(72, 22) Source(132, 21) + SourceIndex(0) --7 >Emitted(72, 23) Source(132, 22) + SourceIndex(0) --8 >Emitted(72, 27) Source(132, 26) + SourceIndex(0) --9 >Emitted(72, 34) Source(132, 33) + SourceIndex(0) --10>Emitted(72, 35) Source(132, 34) + SourceIndex(0) --11>Emitted(72, 36) Source(132, 35) + SourceIndex(0) --12>Emitted(72, 37) Source(132, 36) + SourceIndex(0) --13>Emitted(72, 38) Source(132, 37) + SourceIndex(0) --14>Emitted(72, 39) Source(132, 38) + SourceIndex(0) +-1->Emitted(70, 1) Source(132, 1) + SourceIndex(0) +-2 >Emitted(70, 6) Source(132, 6) + SourceIndex(0) +-3 >Emitted(70, 7) Source(132, 7) + SourceIndex(0) +-4 >Emitted(70, 9) Source(132, 9) + SourceIndex(0) +-5 >Emitted(70, 12) Source(132, 12) + SourceIndex(0) +-6 >Emitted(70, 22) Source(132, 21) + SourceIndex(0) +-7 >Emitted(70, 23) Source(132, 22) + SourceIndex(0) +-8 >Emitted(70, 27) Source(132, 26) + SourceIndex(0) +-9 >Emitted(70, 34) Source(132, 33) + SourceIndex(0) +-10>Emitted(70, 35) Source(132, 34) + SourceIndex(0) +-11>Emitted(70, 36) Source(132, 35) + SourceIndex(0) +-12>Emitted(70, 37) Source(132, 36) + SourceIndex(0) +-13>Emitted(70, 38) Source(132, 37) + SourceIndex(0) +-14>Emitted(70, 39) Source(132, 38) + SourceIndex(0) +8 > ) +9 > { +10> return @@ -2319,17 +2237,17 @@ 9 > [] 10> ] 11> ; --1 >Emitted(73, 1) Source(133, 1) + SourceIndex(0) --2 >Emitted(73, 6) Source(133, 6) + SourceIndex(0) --3 >Emitted(73, 7) Source(133, 7) + SourceIndex(0) --4 >Emitted(73, 9) Source(133, 9) + SourceIndex(0) --5 >Emitted(73, 12) Source(133, 12) + SourceIndex(0) --6 >Emitted(73, 13) Source(133, 13) + SourceIndex(0) --7 >Emitted(73, 15) Source(133, 15) + SourceIndex(0) --8 >Emitted(73, 17) Source(133, 16) + SourceIndex(0) --9 >Emitted(73, 19) Source(133, 18) + SourceIndex(0) --10>Emitted(73, 20) Source(133, 19) + SourceIndex(0) --11>Emitted(73, 21) Source(133, 20) + SourceIndex(0) +-1 >Emitted(71, 1) Source(133, 1) + SourceIndex(0) +-2 >Emitted(71, 6) Source(133, 6) + SourceIndex(0) +-3 >Emitted(71, 7) Source(133, 7) + SourceIndex(0) +-4 >Emitted(71, 9) Source(133, 9) + SourceIndex(0) +-5 >Emitted(71, 12) Source(133, 12) + SourceIndex(0) +-6 >Emitted(71, 13) Source(133, 13) + SourceIndex(0) +-7 >Emitted(71, 15) Source(133, 15) + SourceIndex(0) +-8 >Emitted(71, 17) Source(133, 16) + SourceIndex(0) +-9 >Emitted(71, 19) Source(133, 18) + SourceIndex(0) +-10>Emitted(71, 20) Source(133, 19) + SourceIndex(0) +-11>Emitted(71, 21) Source(133, 20) + SourceIndex(0) +1 >Emitted(70, 1) Source(133, 1) + SourceIndex(0) +2 >Emitted(70, 6) Source(133, 6) + SourceIndex(0) +3 >Emitted(70, 7) Source(133, 7) + SourceIndex(0) @@ -2348,21 +2266,21 @@ 13> ) 14> ] 15> ; --1->Emitted(74, 1) Source(134, 1) + SourceIndex(0) --2 >Emitted(74, 6) Source(134, 6) + SourceIndex(0) --3 >Emitted(74, 7) Source(134, 7) + SourceIndex(0) --4 >Emitted(74, 10) Source(134, 10) + SourceIndex(0) --5 >Emitted(74, 13) Source(134, 13) + SourceIndex(0) --6 >Emitted(74, 14) Source(134, 20) + SourceIndex(0) --7 >Emitted(74, 15) Source(134, 21) + SourceIndex(0) --8 >Emitted(74, 17) Source(134, 23) + SourceIndex(0) --9 >Emitted(74, 18) Source(134, 24) + SourceIndex(0) --10>Emitted(74, 20) Source(134, 31) + SourceIndex(0) --11>Emitted(74, 21) Source(134, 32) + SourceIndex(0) --12>Emitted(74, 23) Source(134, 34) + SourceIndex(0) --13>Emitted(74, 24) Source(134, 35) + SourceIndex(0) --14>Emitted(74, 25) Source(134, 36) + SourceIndex(0) --15>Emitted(74, 26) Source(134, 37) + SourceIndex(0) +-1->Emitted(72, 1) Source(134, 1) + SourceIndex(0) +-2 >Emitted(72, 6) Source(134, 6) + SourceIndex(0) +-3 >Emitted(72, 7) Source(134, 7) + SourceIndex(0) +-4 >Emitted(72, 10) Source(134, 10) + SourceIndex(0) +-5 >Emitted(72, 13) Source(134, 13) + SourceIndex(0) +-6 >Emitted(72, 14) Source(134, 20) + SourceIndex(0) +-7 >Emitted(72, 15) Source(134, 21) + SourceIndex(0) +-8 >Emitted(72, 17) Source(134, 23) + SourceIndex(0) +-9 >Emitted(72, 18) Source(134, 24) + SourceIndex(0) +-10>Emitted(72, 20) Source(134, 31) + SourceIndex(0) +-11>Emitted(72, 21) Source(134, 32) + SourceIndex(0) +-12>Emitted(72, 23) Source(134, 34) + SourceIndex(0) +-13>Emitted(72, 24) Source(134, 35) + SourceIndex(0) +-14>Emitted(72, 25) Source(134, 36) + SourceIndex(0) +-15>Emitted(72, 26) Source(134, 37) + SourceIndex(0) +1->Emitted(71, 1) Source(134, 1) + SourceIndex(0) +2 >Emitted(71, 6) Source(134, 6) + SourceIndex(0) +3 >Emitted(71, 7) Source(134, 7) + SourceIndex(0) @@ -2417,24 +2335,24 @@ -16> } -17> ] -18> ; --1->Emitted(75, 1) Source(135, 1) + SourceIndex(0) --2 >Emitted(75, 6) Source(135, 6) + SourceIndex(0) --3 >Emitted(75, 7) Source(135, 7) + SourceIndex(0) --4 >Emitted(75, 10) Source(135, 10) + SourceIndex(0) --5 >Emitted(75, 13) Source(135, 13) + SourceIndex(0) --6 >Emitted(75, 14) Source(135, 14) + SourceIndex(0) --7 >Emitted(75, 24) Source(135, 23) + SourceIndex(0) --8 >Emitted(75, 25) Source(135, 24) + SourceIndex(0) --9 >Emitted(75, 27) Source(135, 26) + SourceIndex(0) --10>Emitted(75, 28) Source(135, 27) + SourceIndex(0) --11>Emitted(75, 32) Source(135, 31) + SourceIndex(0) --12>Emitted(75, 39) Source(135, 38) + SourceIndex(0) --13>Emitted(75, 40) Source(135, 39) + SourceIndex(0) --14>Emitted(75, 41) Source(135, 40) + SourceIndex(0) --15>Emitted(75, 42) Source(135, 41) + SourceIndex(0) --16>Emitted(75, 43) Source(135, 42) + SourceIndex(0) --17>Emitted(75, 44) Source(135, 43) + SourceIndex(0) --18>Emitted(75, 45) Source(135, 44) + SourceIndex(0) +-1->Emitted(73, 1) Source(135, 1) + SourceIndex(0) +-2 >Emitted(73, 6) Source(135, 6) + SourceIndex(0) +-3 >Emitted(73, 7) Source(135, 7) + SourceIndex(0) +-4 >Emitted(73, 10) Source(135, 10) + SourceIndex(0) +-5 >Emitted(73, 13) Source(135, 13) + SourceIndex(0) +-6 >Emitted(73, 14) Source(135, 14) + SourceIndex(0) +-7 >Emitted(73, 24) Source(135, 23) + SourceIndex(0) +-8 >Emitted(73, 25) Source(135, 24) + SourceIndex(0) +-9 >Emitted(73, 27) Source(135, 26) + SourceIndex(0) +-10>Emitted(73, 28) Source(135, 27) + SourceIndex(0) +-11>Emitted(73, 32) Source(135, 31) + SourceIndex(0) +-12>Emitted(73, 39) Source(135, 38) + SourceIndex(0) +-13>Emitted(73, 40) Source(135, 39) + SourceIndex(0) +-14>Emitted(73, 41) Source(135, 40) + SourceIndex(0) +-15>Emitted(73, 42) Source(135, 41) + SourceIndex(0) +-16>Emitted(73, 43) Source(135, 42) + SourceIndex(0) +-17>Emitted(73, 44) Source(135, 43) + SourceIndex(0) +-18>Emitted(73, 45) Source(135, 44) + SourceIndex(0) +11> ) +12> { +13> return @@ -2470,11 +2388,11 @@ 3 > . 4 > t12 5 > = --1 >Emitted(76, 1) Source(136, 1) + SourceIndex(0) --2 >Emitted(76, 6) Source(136, 6) + SourceIndex(0) --3 >Emitted(76, 7) Source(136, 7) + SourceIndex(0) --4 >Emitted(76, 10) Source(136, 10) + SourceIndex(0) --5 >Emitted(76, 13) Source(136, 13) + SourceIndex(0) +-1 >Emitted(74, 1) Source(136, 1) + SourceIndex(0) +-2 >Emitted(74, 6) Source(136, 6) + SourceIndex(0) +-3 >Emitted(74, 7) Source(136, 7) + SourceIndex(0) +-4 >Emitted(74, 10) Source(136, 10) + SourceIndex(0) +-5 >Emitted(74, 13) Source(136, 13) + SourceIndex(0) +1 >Emitted(73, 1) Source(136, 1) + SourceIndex(0) +2 >Emitted(73, 6) Source(136, 6) + SourceIndex(0) +3 >Emitted(73, 7) Source(136, 7) + SourceIndex(0) @@ -2487,12 +2405,12 @@ 4 > ( 5 > {} 6 > ) --1->Emitted(77, 5) Source(137, 5) + SourceIndex(0) --2 >Emitted(77, 8) Source(137, 8) + SourceIndex(0) --3 >Emitted(77, 10) Source(137, 16) + SourceIndex(0) --4 >Emitted(77, 11) Source(137, 17) + SourceIndex(0) --5 >Emitted(77, 13) Source(137, 19) + SourceIndex(0) --6 >Emitted(77, 14) Source(137, 20) + SourceIndex(0) +-1->Emitted(75, 5) Source(137, 5) + SourceIndex(0) +-2 >Emitted(75, 8) Source(137, 8) + SourceIndex(0) +-3 >Emitted(75, 10) Source(137, 16) + SourceIndex(0) +-4 >Emitted(75, 11) Source(137, 17) + SourceIndex(0) +-5 >Emitted(75, 13) Source(137, 19) + SourceIndex(0) +-6 >Emitted(75, 14) Source(137, 20) + SourceIndex(0) +1->Emitted(74, 5) Source(137, 5) + SourceIndex(0) +2 >Emitted(74, 8) Source(137, 8) + SourceIndex(0) +3 >Emitted(74, 10) Source(137, 16) + SourceIndex(0) @@ -2506,8 +2424,8 @@ 1 > >} 2 > --1 >Emitted(78, 2) Source(138, 2) + SourceIndex(0) --2 >Emitted(78, 3) Source(138, 2) + SourceIndex(0) +-1 >Emitted(76, 2) Source(138, 2) + SourceIndex(0) +-2 >Emitted(76, 3) Source(138, 2) + SourceIndex(0) +1 >Emitted(75, 2) Source(138, 2) + SourceIndex(0) +2 >Emitted(75, 3) Source(138, 2) + SourceIndex(0) --- @@ -2517,12 +2435,12 @@ 4 > t13 5 > = 6 > ( --1->Emitted(79, 1) Source(139, 1) + SourceIndex(0) --2 >Emitted(79, 6) Source(139, 6) + SourceIndex(0) --3 >Emitted(79, 7) Source(139, 7) + SourceIndex(0) --4 >Emitted(79, 10) Source(139, 10) + SourceIndex(0) --5 >Emitted(79, 13) Source(139, 19) + SourceIndex(0) --6 >Emitted(79, 14) Source(139, 20) + SourceIndex(0) +-1->Emitted(77, 1) Source(139, 1) + SourceIndex(0) +-2 >Emitted(77, 6) Source(139, 6) + SourceIndex(0) +-3 >Emitted(77, 7) Source(139, 7) + SourceIndex(0) +-4 >Emitted(77, 10) Source(139, 10) + SourceIndex(0) +-5 >Emitted(77, 13) Source(139, 19) + SourceIndex(0) +-6 >Emitted(77, 14) Source(139, 20) + SourceIndex(0) +1->Emitted(76, 1) Source(139, 1) + SourceIndex(0) +2 >Emitted(76, 6) Source(139, 6) + SourceIndex(0) +3 >Emitted(76, 7) Source(139, 7) + SourceIndex(0) @@ -2562,19 +2480,19 @@ -11> ; -12> -13> } --1->Emitted(80, 5) Source(140, 5) + SourceIndex(0) --2 >Emitted(80, 6) Source(140, 6) + SourceIndex(0) --3 >Emitted(80, 8) Source(140, 8) + SourceIndex(0) --4 >Emitted(80, 18) Source(140, 17) + SourceIndex(0) --5 >Emitted(80, 19) Source(140, 18) + SourceIndex(0) --6 >Emitted(80, 21) Source(140, 20) + SourceIndex(0) --7 >Emitted(80, 22) Source(140, 21) + SourceIndex(0) --8 >Emitted(80, 26) Source(140, 25) + SourceIndex(0) --9 >Emitted(80, 33) Source(140, 32) + SourceIndex(0) --10>Emitted(80, 34) Source(140, 33) + SourceIndex(0) --11>Emitted(80, 35) Source(140, 34) + SourceIndex(0) --12>Emitted(80, 36) Source(140, 35) + SourceIndex(0) --13>Emitted(80, 37) Source(140, 36) + SourceIndex(0) +-1->Emitted(78, 5) Source(140, 5) + SourceIndex(0) +-2 >Emitted(78, 6) Source(140, 6) + SourceIndex(0) +-3 >Emitted(78, 8) Source(140, 8) + SourceIndex(0) +-4 >Emitted(78, 18) Source(140, 17) + SourceIndex(0) +-5 >Emitted(78, 19) Source(140, 18) + SourceIndex(0) +-6 >Emitted(78, 21) Source(140, 20) + SourceIndex(0) +-7 >Emitted(78, 22) Source(140, 21) + SourceIndex(0) +-8 >Emitted(78, 26) Source(140, 25) + SourceIndex(0) +-9 >Emitted(78, 33) Source(140, 32) + SourceIndex(0) +-10>Emitted(78, 34) Source(140, 33) + SourceIndex(0) +-11>Emitted(78, 35) Source(140, 34) + SourceIndex(0) +-12>Emitted(78, 36) Source(140, 35) + SourceIndex(0) +-13>Emitted(78, 37) Source(140, 36) + SourceIndex(0) +8 > ) +9 > { +10> return @@ -2603,9 +2521,9 @@ >} 2 > ) 3 > --1 >Emitted(81, 2) Source(141, 2) + SourceIndex(0) --2 >Emitted(81, 3) Source(141, 3) + SourceIndex(0) --3 >Emitted(81, 4) Source(141, 3) + SourceIndex(0) +-1 >Emitted(79, 2) Source(141, 2) + SourceIndex(0) +-2 >Emitted(79, 3) Source(141, 3) + SourceIndex(0) +-3 >Emitted(79, 4) Source(141, 3) + SourceIndex(0) +1 >Emitted(78, 2) Source(141, 2) + SourceIndex(0) +2 >Emitted(78, 3) Source(141, 3) + SourceIndex(0) +3 >Emitted(78, 4) Source(141, 3) + SourceIndex(0) @@ -2616,12 +2534,12 @@ 4 > t14 5 > = 6 > ( --1->Emitted(82, 1) Source(142, 1) + SourceIndex(0) --2 >Emitted(82, 6) Source(142, 6) + SourceIndex(0) --3 >Emitted(82, 7) Source(142, 7) + SourceIndex(0) --4 >Emitted(82, 10) Source(142, 10) + SourceIndex(0) --5 >Emitted(82, 13) Source(142, 19) + SourceIndex(0) --6 >Emitted(82, 14) Source(142, 20) + SourceIndex(0) +-1->Emitted(80, 1) Source(142, 1) + SourceIndex(0) +-2 >Emitted(80, 6) Source(142, 6) + SourceIndex(0) +-3 >Emitted(80, 7) Source(142, 7) + SourceIndex(0) +-4 >Emitted(80, 10) Source(142, 10) + SourceIndex(0) +-5 >Emitted(80, 13) Source(142, 19) + SourceIndex(0) +-6 >Emitted(80, 14) Source(142, 20) + SourceIndex(0) +1->Emitted(79, 1) Source(142, 1) + SourceIndex(0) +2 >Emitted(79, 6) Source(142, 6) + SourceIndex(0) +3 >Emitted(79, 7) Source(142, 7) + SourceIndex(0) @@ -2635,10 +2553,10 @@ 2 > a 3 > : 4 > [] --1 >Emitted(83, 5) Source(143, 5) + SourceIndex(0) --2 >Emitted(83, 6) Source(143, 6) + SourceIndex(0) --3 >Emitted(83, 8) Source(143, 8) + SourceIndex(0) --4 >Emitted(83, 10) Source(143, 10) + SourceIndex(0) +-1 >Emitted(81, 5) Source(143, 5) + SourceIndex(0) +-2 >Emitted(81, 6) Source(143, 6) + SourceIndex(0) +-3 >Emitted(81, 8) Source(143, 8) + SourceIndex(0) +-4 >Emitted(81, 10) Source(143, 10) + SourceIndex(0) +1 >Emitted(80, 5) Source(143, 5) + SourceIndex(0) +2 >Emitted(80, 6) Source(143, 6) + SourceIndex(0) +3 >Emitted(80, 8) Source(143, 8) + SourceIndex(0) @@ -2650,9 +2568,9 @@ >} 2 > ) 3 > --1 >Emitted(84, 2) Source(144, 2) + SourceIndex(0) --2 >Emitted(84, 3) Source(144, 3) + SourceIndex(0) --3 >Emitted(84, 4) Source(144, 3) + SourceIndex(0) +-1 >Emitted(82, 2) Source(144, 2) + SourceIndex(0) +-2 >Emitted(82, 3) Source(144, 3) + SourceIndex(0) +-3 >Emitted(82, 4) Source(144, 3) + SourceIndex(0) +1 >Emitted(81, 2) Source(144, 2) + SourceIndex(0) +2 >Emitted(81, 3) Source(144, 3) + SourceIndex(0) +3 >Emitted(81, 4) Source(144, 3) + SourceIndex(0) @@ -2663,8 +2581,8 @@ 1-> > 2 >// CONTEXT: Function call --1->Emitted(85, 1) Source(145, 1) + SourceIndex(0) --2 >Emitted(85, 26) Source(145, 26) + SourceIndex(0) +-1->Emitted(83, 1) Source(145, 1) + SourceIndex(0) +-2 >Emitted(83, 26) Source(145, 26) + SourceIndex(0) +1->Emitted(82, 1) Source(145, 1) + SourceIndex(0) +2 >Emitted(82, 26) Source(145, 26) + SourceIndex(0) --- @@ -2687,13 +2605,13 @@ 5 > f: (n: number) => IFoo -6 > ) { -7 > } --1 >Emitted(86, 1) Source(146, 1) + SourceIndex(0) --2 >Emitted(86, 10) Source(146, 10) + SourceIndex(0) --3 >Emitted(86, 14) Source(146, 14) + SourceIndex(0) --4 >Emitted(86, 15) Source(146, 15) + SourceIndex(0) --5 >Emitted(86, 16) Source(146, 37) + SourceIndex(0) --6 >Emitted(86, 20) Source(146, 40) + SourceIndex(0) --7 >Emitted(86, 21) Source(146, 41) + SourceIndex(0) +-1 >Emitted(84, 1) Source(146, 1) + SourceIndex(0) +-2 >Emitted(84, 10) Source(146, 10) + SourceIndex(0) +-3 >Emitted(84, 14) Source(146, 14) + SourceIndex(0) +-4 >Emitted(84, 15) Source(146, 15) + SourceIndex(0) +-5 >Emitted(84, 16) Source(146, 37) + SourceIndex(0) +-6 >Emitted(84, 20) Source(146, 40) + SourceIndex(0) +-7 >Emitted(84, 21) Source(146, 41) + SourceIndex(0) +6 > ) +7 > { +8 > } @@ -2712,8 +2630,8 @@ 3 > ^^^^^^^^^^^^^^^^^^^-> 1 > 2 >; --1 >Emitted(87, 1) Source(146, 41) + SourceIndex(0) --2 >Emitted(87, 2) Source(146, 42) + SourceIndex(0) +-1 >Emitted(85, 1) Source(146, 41) + SourceIndex(0) +-2 >Emitted(85, 2) Source(146, 42) + SourceIndex(0) +1 >Emitted(84, 1) Source(146, 41) + SourceIndex(0) +2 >Emitted(84, 2) Source(146, 42) + SourceIndex(0) --- @@ -2731,11 +2649,11 @@ 3 > ( 4 > function( 5 > n --1->Emitted(88, 1) Source(147, 1) + SourceIndex(0) --2 >Emitted(88, 5) Source(147, 5) + SourceIndex(0) --3 >Emitted(88, 6) Source(147, 6) + SourceIndex(0) --4 >Emitted(88, 16) Source(147, 15) + SourceIndex(0) --5 >Emitted(88, 17) Source(147, 16) + SourceIndex(0) +-1->Emitted(86, 1) Source(147, 1) + SourceIndex(0) +-2 >Emitted(86, 5) Source(147, 5) + SourceIndex(0) +-3 >Emitted(86, 6) Source(147, 6) + SourceIndex(0) +-4 >Emitted(86, 16) Source(147, 15) + SourceIndex(0) +-5 >Emitted(86, 17) Source(147, 16) + SourceIndex(0) +6 > ) +1->Emitted(85, 1) Source(147, 1) + SourceIndex(0) +2 >Emitted(85, 5) Source(147, 5) + SourceIndex(0) @@ -2760,12 +2678,12 @@ 4 > {} 5 > ) 6 > ; --1->Emitted(89, 5) Source(148, 5) + SourceIndex(0) --2 >Emitted(89, 12) Source(148, 18) + SourceIndex(0) --3 >Emitted(89, 13) Source(148, 19) + SourceIndex(0) --4 >Emitted(89, 15) Source(148, 21) + SourceIndex(0) --5 >Emitted(89, 16) Source(148, 22) + SourceIndex(0) --6 >Emitted(89, 17) Source(148, 23) + SourceIndex(0) +-1->Emitted(87, 5) Source(148, 5) + SourceIndex(0) +-2 >Emitted(87, 12) Source(148, 18) + SourceIndex(0) +-3 >Emitted(87, 13) Source(148, 19) + SourceIndex(0) +-4 >Emitted(87, 15) Source(148, 21) + SourceIndex(0) +-5 >Emitted(87, 16) Source(148, 22) + SourceIndex(0) +-6 >Emitted(87, 17) Source(148, 23) + SourceIndex(0) +1 >Emitted(86, 5) Source(148, 5) + SourceIndex(0) +2 >Emitted(86, 12) Source(148, 18) + SourceIndex(0) +3 >Emitted(86, 13) Source(148, 19) + SourceIndex(0) @@ -2785,10 +2703,10 @@ + >} 3 > ) 4 > ; --1 >Emitted(90, 1) Source(149, 1) + SourceIndex(0) --2 >Emitted(90, 2) Source(149, 2) + SourceIndex(0) --3 >Emitted(90, 3) Source(149, 3) + SourceIndex(0) --4 >Emitted(90, 4) Source(149, 4) + SourceIndex(0) +-1 >Emitted(88, 1) Source(149, 1) + SourceIndex(0) +-2 >Emitted(88, 2) Source(149, 2) + SourceIndex(0) +-3 >Emitted(88, 3) Source(149, 3) + SourceIndex(0) +-4 >Emitted(88, 4) Source(149, 4) + SourceIndex(0) +1 >Emitted(87, 1) Source(148, 23) + SourceIndex(0) +2 >Emitted(87, 2) Source(149, 2) + SourceIndex(0) +3 >Emitted(87, 3) Source(149, 3) + SourceIndex(0) @@ -2800,8 +2718,8 @@ > > 2 >// CONTEXT: Return statement --1->Emitted(91, 1) Source(151, 1) + SourceIndex(0) --2 >Emitted(91, 29) Source(151, 29) + SourceIndex(0) +-1->Emitted(89, 1) Source(151, 1) + SourceIndex(0) +-2 >Emitted(89, 29) Source(151, 29) + SourceIndex(0) +1->Emitted(88, 1) Source(151, 1) + SourceIndex(0) +2 >Emitted(88, 29) Source(151, 29) + SourceIndex(0) --- @@ -2865,26 +2783,26 @@ -18> -19> } -20> ; --1->Emitted(92, 1) Source(152, 1) + SourceIndex(0) --2 >Emitted(92, 5) Source(152, 5) + SourceIndex(0) --3 >Emitted(92, 10) Source(152, 10) + SourceIndex(0) --4 >Emitted(92, 13) Source(152, 40) + SourceIndex(0) --5 >Emitted(92, 27) Source(152, 53) + SourceIndex(0) --6 >Emitted(92, 34) Source(152, 60) + SourceIndex(0) --7 >Emitted(92, 44) Source(152, 69) + SourceIndex(0) --8 >Emitted(92, 45) Source(152, 70) + SourceIndex(0) --9 >Emitted(92, 49) Source(152, 74) + SourceIndex(0) --10>Emitted(92, 56) Source(152, 87) + SourceIndex(0) --11>Emitted(92, 57) Source(152, 88) + SourceIndex(0) --12>Emitted(92, 59) Source(152, 90) + SourceIndex(0) --13>Emitted(92, 60) Source(152, 91) + SourceIndex(0) --14>Emitted(92, 61) Source(152, 91) + SourceIndex(0) --15>Emitted(92, 62) Source(152, 92) + SourceIndex(0) --16>Emitted(92, 63) Source(152, 93) + SourceIndex(0) --17>Emitted(92, 64) Source(152, 93) + SourceIndex(0) --18>Emitted(92, 65) Source(152, 94) + SourceIndex(0) --19>Emitted(92, 66) Source(152, 95) + SourceIndex(0) --20>Emitted(92, 67) Source(152, 96) + SourceIndex(0) +-1->Emitted(90, 1) Source(152, 1) + SourceIndex(0) +-2 >Emitted(90, 5) Source(152, 5) + SourceIndex(0) +-3 >Emitted(90, 10) Source(152, 10) + SourceIndex(0) +-4 >Emitted(90, 13) Source(152, 40) + SourceIndex(0) +-5 >Emitted(90, 27) Source(152, 53) + SourceIndex(0) +-6 >Emitted(90, 34) Source(152, 60) + SourceIndex(0) +-7 >Emitted(90, 44) Source(152, 69) + SourceIndex(0) +-8 >Emitted(90, 45) Source(152, 70) + SourceIndex(0) +-9 >Emitted(90, 49) Source(152, 74) + SourceIndex(0) +-10>Emitted(90, 56) Source(152, 87) + SourceIndex(0) +-11>Emitted(90, 57) Source(152, 88) + SourceIndex(0) +-12>Emitted(90, 59) Source(152, 90) + SourceIndex(0) +-13>Emitted(90, 60) Source(152, 91) + SourceIndex(0) +-14>Emitted(90, 61) Source(152, 91) + SourceIndex(0) +-15>Emitted(90, 62) Source(152, 92) + SourceIndex(0) +-16>Emitted(90, 63) Source(152, 93) + SourceIndex(0) +-17>Emitted(90, 64) Source(152, 93) + SourceIndex(0) +-18>Emitted(90, 65) Source(152, 94) + SourceIndex(0) +-19>Emitted(90, 66) Source(152, 95) + SourceIndex(0) +-20>Emitted(90, 67) Source(152, 96) + SourceIndex(0) +5 > function() +6 > { +7 > return @@ -2928,71 +2846,47 @@ --- >>>// CONTEXT: Newing a class 1 > - 2 >^^^^^^^^^^^^^^^^^^^^^^^^^^ --3 > ^^^^^^^^^^^^^^^-> - 1 > +@@= skipped -73, +79 lines =@@ > > 2 >// CONTEXT: Newing a class --1 >Emitted(93, 1) Source(154, 1) + SourceIndex(0) --2 >Emitted(93, 27) Source(154, 27) + SourceIndex(0) +-1 >Emitted(91, 1) Source(154, 1) + SourceIndex(0) +-2 >Emitted(91, 27) Source(154, 27) + SourceIndex(0) +1 >Emitted(90, 1) Source(154, 1) + SourceIndex(0) +2 >Emitted(90, 27) Source(154, 27) + SourceIndex(0) --- -->>>var C11t5 = /** @class */ (function () { --1-> --2 >^^^^^^^^^^^^^^^^^^^^^^^^-> --1-> -+>>>class C11t5 { -+1 > -+2 >^^^^^^ -+3 > ^^^^^ -+4 > ^^^^^^^^^^^^-> -+1 > + >>>class C11t5 { + 1 > +@@= skipped -12, +12 lines =@@ > --1->Emitted(94, 1) Source(155, 1) + SourceIndex(0) ----- -->>> function C11t5(f) { --1->^^^^ --2 > ^^^^^^^^^^^^^^^ --3 > ^ --1->class C11t5 { --2 > constructor( --3 > f: (n: number) => IFoo --1->Emitted(95, 5) Source(155, 15) + SourceIndex(0) --2 >Emitted(95, 20) Source(155, 27) + SourceIndex(0) --3 >Emitted(95, 21) Source(155, 49) + SourceIndex(0) ----- -->>> } --1 >^^^^ --2 > ^ --3 > ^^^^^^^^^^^^^-> --1 >) { --2 > } --1 >Emitted(96, 5) Source(155, 53) + SourceIndex(0) --2 >Emitted(96, 6) Source(155, 54) + SourceIndex(0) ----- -->>> return C11t5; -+2 >class -+3 > C11t5 + 2 >class + 3 > C11t5 +-1 >Emitted(92, 1) Source(155, 1) + SourceIndex(0) +-2 >Emitted(92, 7) Source(155, 7) + SourceIndex(0) +-3 >Emitted(92, 12) Source(155, 12) + SourceIndex(0) +1 >Emitted(91, 1) Source(155, 1) + SourceIndex(0) +2 >Emitted(91, 7) Source(155, 7) + SourceIndex(0) +3 >Emitted(91, 12) Source(155, 12) + SourceIndex(0) -+--- -+>>> constructor(f) { } + --- + >>> constructor(f) { } 1->^^^^ 2 > ^^^^^^^^^^^^ --1-> --2 > } --1->Emitted(97, 5) Source(155, 55) + SourceIndex(0) --2 >Emitted(97, 17) Source(155, 56) + SourceIndex(0) -+3 > ^ + 3 > ^ +-4 > ^^^^ +-5 > ^ +4 > ^^ +5 > ^^ +6 > ^ -+1-> { -+2 > constructor( -+3 > f: (n: number) => IFoo + 1-> { + 2 > constructor( + 3 > f: (n: number) => IFoo +-4 > ) { +-5 > } +-1->Emitted(93, 5) Source(155, 15) + SourceIndex(0) +-2 >Emitted(93, 17) Source(155, 27) + SourceIndex(0) +-3 >Emitted(93, 18) Source(155, 49) + SourceIndex(0) +-4 >Emitted(93, 22) Source(155, 53) + SourceIndex(0) +-5 >Emitted(93, 23) Source(155, 54) + SourceIndex(0) +4 > ) +5 > { +6 > } @@ -3003,41 +2897,27 @@ +5 >Emitted(92, 22) Source(155, 52) + SourceIndex(0) +6 >Emitted(92, 23) Source(155, 54) + SourceIndex(0) --- -->>>}()); --1 > --2 >^ --3 > --4 > ^^^^ --1 > --2 >} --3 > --4 > class C11t5 { constructor(f: (n: number) => IFoo) { } } --1 >Emitted(98, 1) Source(155, 55) + SourceIndex(0) --2 >Emitted(98, 2) Source(155, 56) + SourceIndex(0) --3 >Emitted(98, 2) Source(155, 1) + SourceIndex(0) --4 >Emitted(98, 6) Source(155, 56) + SourceIndex(0) -+>>>} -+1 >^ -+2 > ^-> -+1 > } + >>>} + 1 >^ + 2 > ^-> + 1 > } +-1 >Emitted(94, 2) Source(155, 56) + SourceIndex(0) +1 >Emitted(93, 2) Source(155, 56) + SourceIndex(0) --- >>>; --1 > -+1-> - 2 >^ + 1-> +@@= skipped -33, +36 lines =@@ 3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> --1 > -+1-> + 1-> 2 >; --1 >Emitted(99, 1) Source(155, 56) + SourceIndex(0) --2 >Emitted(99, 2) Source(155, 57) + SourceIndex(0) +-1->Emitted(95, 1) Source(155, 56) + SourceIndex(0) +-2 >Emitted(95, 2) Source(155, 57) + SourceIndex(0) +1->Emitted(94, 1) Source(155, 56) + SourceIndex(0) +2 >Emitted(94, 2) Source(155, 57) + SourceIndex(0) --- >>>var i = new C11t5(function (n) { return ({}); }); 1-> -@@= skipped -145, +140 lines =@@ +@@= skipped -13, +13 lines =@@ 7 > ^ 8 > ^^^^^^^^^^ 9 > ^ @@ -3079,25 +2959,25 @@ -17> } -18> ) -19> ; --1->Emitted(100, 1) Source(156, 1) + SourceIndex(0) --2 >Emitted(100, 5) Source(156, 5) + SourceIndex(0) --3 >Emitted(100, 6) Source(156, 6) + SourceIndex(0) --4 >Emitted(100, 9) Source(156, 9) + SourceIndex(0) --5 >Emitted(100, 13) Source(156, 13) + SourceIndex(0) --6 >Emitted(100, 18) Source(156, 18) + SourceIndex(0) --7 >Emitted(100, 19) Source(156, 19) + SourceIndex(0) --8 >Emitted(100, 29) Source(156, 28) + SourceIndex(0) --9 >Emitted(100, 30) Source(156, 29) + SourceIndex(0) --10>Emitted(100, 34) Source(156, 33) + SourceIndex(0) --11>Emitted(100, 41) Source(156, 46) + SourceIndex(0) --12>Emitted(100, 42) Source(156, 47) + SourceIndex(0) --13>Emitted(100, 44) Source(156, 49) + SourceIndex(0) --14>Emitted(100, 45) Source(156, 50) + SourceIndex(0) --15>Emitted(100, 46) Source(156, 50) + SourceIndex(0) --16>Emitted(100, 47) Source(156, 51) + SourceIndex(0) --17>Emitted(100, 48) Source(156, 52) + SourceIndex(0) --18>Emitted(100, 49) Source(156, 53) + SourceIndex(0) --19>Emitted(100, 50) Source(156, 54) + SourceIndex(0) +-1->Emitted(96, 1) Source(156, 1) + SourceIndex(0) +-2 >Emitted(96, 5) Source(156, 5) + SourceIndex(0) +-3 >Emitted(96, 6) Source(156, 6) + SourceIndex(0) +-4 >Emitted(96, 9) Source(156, 9) + SourceIndex(0) +-5 >Emitted(96, 13) Source(156, 13) + SourceIndex(0) +-6 >Emitted(96, 18) Source(156, 18) + SourceIndex(0) +-7 >Emitted(96, 19) Source(156, 19) + SourceIndex(0) +-8 >Emitted(96, 29) Source(156, 28) + SourceIndex(0) +-9 >Emitted(96, 30) Source(156, 29) + SourceIndex(0) +-10>Emitted(96, 34) Source(156, 33) + SourceIndex(0) +-11>Emitted(96, 41) Source(156, 46) + SourceIndex(0) +-12>Emitted(96, 42) Source(156, 47) + SourceIndex(0) +-13>Emitted(96, 44) Source(156, 49) + SourceIndex(0) +-14>Emitted(96, 45) Source(156, 50) + SourceIndex(0) +-15>Emitted(96, 46) Source(156, 50) + SourceIndex(0) +-16>Emitted(96, 47) Source(156, 51) + SourceIndex(0) +-17>Emitted(96, 48) Source(156, 52) + SourceIndex(0) +-18>Emitted(96, 49) Source(156, 53) + SourceIndex(0) +-19>Emitted(96, 50) Source(156, 54) + SourceIndex(0) +10> ) +11> { +12> return @@ -3136,8 +3016,8 @@ > > 2 >// CONTEXT: Type annotated expression --1 >Emitted(101, 1) Source(158, 1) + SourceIndex(0) --2 >Emitted(101, 38) Source(158, 38) + SourceIndex(0) +-1 >Emitted(97, 1) Source(158, 1) + SourceIndex(0) +-2 >Emitted(97, 38) Source(158, 38) + SourceIndex(0) +1 >Emitted(96, 1) Source(158, 1) + SourceIndex(0) +2 >Emitted(96, 38) Source(158, 38) + SourceIndex(0) --- @@ -3179,21 +3059,21 @@ -13> } -14> ) -15> ; --1->Emitted(102, 1) Source(159, 1) + SourceIndex(0) --2 >Emitted(102, 5) Source(159, 5) + SourceIndex(0) --3 >Emitted(102, 10) Source(159, 10) + SourceIndex(0) --4 >Emitted(102, 13) Source(159, 37) + SourceIndex(0) --5 >Emitted(102, 14) Source(159, 38) + SourceIndex(0) --6 >Emitted(102, 24) Source(159, 47) + SourceIndex(0) --7 >Emitted(102, 25) Source(159, 48) + SourceIndex(0) --8 >Emitted(102, 29) Source(159, 52) + SourceIndex(0) --9 >Emitted(102, 36) Source(159, 59) + SourceIndex(0) --10>Emitted(102, 37) Source(159, 60) + SourceIndex(0) --11>Emitted(102, 38) Source(159, 60) + SourceIndex(0) --12>Emitted(102, 39) Source(159, 61) + SourceIndex(0) --13>Emitted(102, 40) Source(159, 62) + SourceIndex(0) --14>Emitted(102, 41) Source(159, 63) + SourceIndex(0) --15>Emitted(102, 42) Source(159, 64) + SourceIndex(0) +-1->Emitted(98, 1) Source(159, 1) + SourceIndex(0) +-2 >Emitted(98, 5) Source(159, 5) + SourceIndex(0) +-3 >Emitted(98, 10) Source(159, 10) + SourceIndex(0) +-4 >Emitted(98, 13) Source(159, 37) + SourceIndex(0) +-5 >Emitted(98, 14) Source(159, 38) + SourceIndex(0) +-6 >Emitted(98, 24) Source(159, 47) + SourceIndex(0) +-7 >Emitted(98, 25) Source(159, 48) + SourceIndex(0) +-8 >Emitted(98, 29) Source(159, 52) + SourceIndex(0) +-9 >Emitted(98, 36) Source(159, 59) + SourceIndex(0) +-10>Emitted(98, 37) Source(159, 60) + SourceIndex(0) +-11>Emitted(98, 38) Source(159, 60) + SourceIndex(0) +-12>Emitted(98, 39) Source(159, 61) + SourceIndex(0) +-13>Emitted(98, 40) Source(159, 62) + SourceIndex(0) +-14>Emitted(98, 41) Source(159, 63) + SourceIndex(0) +-15>Emitted(98, 42) Source(159, 64) + SourceIndex(0) +8 > ) +9 > { +10> return @@ -3226,11 +3106,11 @@ 3 > c12t2 4 > = 5 > ( --1 >Emitted(103, 1) Source(160, 1) + SourceIndex(0) --2 >Emitted(103, 5) Source(160, 5) + SourceIndex(0) --3 >Emitted(103, 10) Source(160, 10) + SourceIndex(0) --4 >Emitted(103, 13) Source(160, 20) + SourceIndex(0) --5 >Emitted(103, 14) Source(160, 21) + SourceIndex(0) +-1 >Emitted(99, 1) Source(160, 1) + SourceIndex(0) +-2 >Emitted(99, 5) Source(160, 5) + SourceIndex(0) +-3 >Emitted(99, 10) Source(160, 10) + SourceIndex(0) +-4 >Emitted(99, 13) Source(160, 20) + SourceIndex(0) +-5 >Emitted(99, 14) Source(160, 21) + SourceIndex(0) +1 >Emitted(98, 1) Source(160, 1) + SourceIndex(0) +2 >Emitted(98, 5) Source(160, 5) + SourceIndex(0) +3 >Emitted(98, 10) Source(160, 10) + SourceIndex(0) @@ -3243,10 +3123,10 @@ 2 > n 3 > : 4 > 1 --1 >Emitted(104, 5) Source(161, 5) + SourceIndex(0) --2 >Emitted(104, 6) Source(161, 6) + SourceIndex(0) --3 >Emitted(104, 8) Source(161, 8) + SourceIndex(0) --4 >Emitted(104, 9) Source(161, 9) + SourceIndex(0) +-1 >Emitted(100, 5) Source(161, 5) + SourceIndex(0) +-2 >Emitted(100, 6) Source(161, 6) + SourceIndex(0) +-3 >Emitted(100, 8) Source(161, 8) + SourceIndex(0) +-4 >Emitted(100, 9) Source(161, 9) + SourceIndex(0) +1 >Emitted(99, 5) Source(161, 5) + SourceIndex(0) +2 >Emitted(99, 6) Source(161, 6) + SourceIndex(0) +3 >Emitted(99, 8) Source(161, 8) + SourceIndex(0) @@ -3258,9 +3138,9 @@ >} 2 > ) 3 > ; --1 >Emitted(105, 2) Source(162, 2) + SourceIndex(0) --2 >Emitted(105, 3) Source(162, 3) + SourceIndex(0) --3 >Emitted(105, 4) Source(162, 4) + SourceIndex(0) +-1 >Emitted(101, 2) Source(162, 2) + SourceIndex(0) +-2 >Emitted(101, 3) Source(162, 3) + SourceIndex(0) +-3 >Emitted(101, 4) Source(162, 4) + SourceIndex(0) +1 >Emitted(100, 2) Source(162, 2) + SourceIndex(0) +2 >Emitted(100, 3) Source(162, 3) + SourceIndex(0) +3 >Emitted(100, 4) Source(162, 4) + SourceIndex(0) @@ -3271,12 +3151,12 @@ 4 > = 5 > [] 6 > ; --1->Emitted(106, 1) Source(163, 1) + SourceIndex(0) --2 >Emitted(106, 5) Source(163, 5) + SourceIndex(0) --3 >Emitted(106, 10) Source(163, 10) + SourceIndex(0) --4 >Emitted(106, 13) Source(163, 24) + SourceIndex(0) --5 >Emitted(106, 15) Source(163, 26) + SourceIndex(0) --6 >Emitted(106, 16) Source(163, 27) + SourceIndex(0) +-1->Emitted(102, 1) Source(163, 1) + SourceIndex(0) +-2 >Emitted(102, 5) Source(163, 5) + SourceIndex(0) +-3 >Emitted(102, 10) Source(163, 10) + SourceIndex(0) +-4 >Emitted(102, 13) Source(163, 24) + SourceIndex(0) +-5 >Emitted(102, 15) Source(163, 26) + SourceIndex(0) +-6 >Emitted(102, 16) Source(163, 27) + SourceIndex(0) +1->Emitted(101, 1) Source(163, 1) + SourceIndex(0) +2 >Emitted(101, 5) Source(163, 5) + SourceIndex(0) +3 >Emitted(101, 10) Source(163, 10) + SourceIndex(0) @@ -3324,19 +3204,19 @@ -11> -12> } -13> ; --1->Emitted(107, 1) Source(164, 1) + SourceIndex(0) --2 >Emitted(107, 5) Source(164, 5) + SourceIndex(0) --3 >Emitted(107, 10) Source(164, 10) + SourceIndex(0) --4 >Emitted(107, 13) Source(164, 26) + SourceIndex(0) --5 >Emitted(107, 27) Source(164, 39) + SourceIndex(0) --6 >Emitted(107, 34) Source(164, 52) + SourceIndex(0) --7 >Emitted(107, 35) Source(164, 53) + SourceIndex(0) --8 >Emitted(107, 37) Source(164, 55) + SourceIndex(0) --9 >Emitted(107, 38) Source(164, 56) + SourceIndex(0) --10>Emitted(107, 39) Source(164, 56) + SourceIndex(0) --11>Emitted(107, 40) Source(164, 57) + SourceIndex(0) --12>Emitted(107, 41) Source(164, 58) + SourceIndex(0) --13>Emitted(107, 42) Source(164, 59) + SourceIndex(0) +-1->Emitted(103, 1) Source(164, 1) + SourceIndex(0) +-2 >Emitted(103, 5) Source(164, 5) + SourceIndex(0) +-3 >Emitted(103, 10) Source(164, 10) + SourceIndex(0) +-4 >Emitted(103, 13) Source(164, 26) + SourceIndex(0) +-5 >Emitted(103, 27) Source(164, 39) + SourceIndex(0) +-6 >Emitted(103, 34) Source(164, 52) + SourceIndex(0) +-7 >Emitted(103, 35) Source(164, 53) + SourceIndex(0) +-8 >Emitted(103, 37) Source(164, 55) + SourceIndex(0) +-9 >Emitted(103, 38) Source(164, 56) + SourceIndex(0) +-10>Emitted(103, 39) Source(164, 56) + SourceIndex(0) +-11>Emitted(103, 40) Source(164, 57) + SourceIndex(0) +-12>Emitted(103, 41) Source(164, 58) + SourceIndex(0) +-13>Emitted(103, 42) Source(164, 59) + SourceIndex(0) +5 > function() +6 > { +7 > return @@ -3405,21 +3285,21 @@ -13> -14> } -15> ; --1->Emitted(108, 1) Source(165, 1) + SourceIndex(0) --2 >Emitted(108, 5) Source(165, 5) + SourceIndex(0) --3 >Emitted(108, 10) Source(165, 10) + SourceIndex(0) --4 >Emitted(108, 13) Source(165, 35) + SourceIndex(0) --5 >Emitted(108, 23) Source(165, 44) + SourceIndex(0) --6 >Emitted(108, 24) Source(165, 45) + SourceIndex(0) --7 >Emitted(108, 28) Source(165, 49) + SourceIndex(0) --8 >Emitted(108, 35) Source(165, 62) + SourceIndex(0) --9 >Emitted(108, 36) Source(165, 63) + SourceIndex(0) --10>Emitted(108, 38) Source(165, 65) + SourceIndex(0) --11>Emitted(108, 39) Source(165, 66) + SourceIndex(0) --12>Emitted(108, 40) Source(165, 66) + SourceIndex(0) --13>Emitted(108, 41) Source(165, 67) + SourceIndex(0) --14>Emitted(108, 42) Source(165, 68) + SourceIndex(0) --15>Emitted(108, 43) Source(165, 69) + SourceIndex(0) +-1->Emitted(104, 1) Source(165, 1) + SourceIndex(0) +-2 >Emitted(104, 5) Source(165, 5) + SourceIndex(0) +-3 >Emitted(104, 10) Source(165, 10) + SourceIndex(0) +-4 >Emitted(104, 13) Source(165, 35) + SourceIndex(0) +-5 >Emitted(104, 23) Source(165, 44) + SourceIndex(0) +-6 >Emitted(104, 24) Source(165, 45) + SourceIndex(0) +-7 >Emitted(104, 28) Source(165, 49) + SourceIndex(0) +-8 >Emitted(104, 35) Source(165, 62) + SourceIndex(0) +-9 >Emitted(104, 36) Source(165, 63) + SourceIndex(0) +-10>Emitted(104, 38) Source(165, 65) + SourceIndex(0) +-11>Emitted(104, 39) Source(165, 66) + SourceIndex(0) +-12>Emitted(104, 40) Source(165, 66) + SourceIndex(0) +-13>Emitted(104, 41) Source(165, 67) + SourceIndex(0) +-14>Emitted(104, 42) Source(165, 68) + SourceIndex(0) +-15>Emitted(104, 43) Source(165, 69) + SourceIndex(0) +7 > ) +8 > { +9 > return @@ -3488,23 +3368,23 @@ -15> -16> } -17> ; --1->Emitted(109, 1) Source(166, 1) + SourceIndex(0) --2 >Emitted(109, 5) Source(166, 5) + SourceIndex(0) --3 >Emitted(109, 10) Source(166, 10) + SourceIndex(0) --4 >Emitted(109, 13) Source(166, 46) + SourceIndex(0) --5 >Emitted(109, 23) Source(166, 55) + SourceIndex(0) --6 >Emitted(109, 24) Source(166, 56) + SourceIndex(0) --7 >Emitted(109, 26) Source(166, 58) + SourceIndex(0) --8 >Emitted(109, 27) Source(166, 59) + SourceIndex(0) --9 >Emitted(109, 31) Source(166, 63) + SourceIndex(0) --10>Emitted(109, 38) Source(166, 76) + SourceIndex(0) --11>Emitted(109, 39) Source(166, 77) + SourceIndex(0) --12>Emitted(109, 41) Source(166, 79) + SourceIndex(0) --13>Emitted(109, 42) Source(166, 80) + SourceIndex(0) --14>Emitted(109, 43) Source(166, 80) + SourceIndex(0) --15>Emitted(109, 44) Source(166, 81) + SourceIndex(0) --16>Emitted(109, 45) Source(166, 82) + SourceIndex(0) --17>Emitted(109, 46) Source(166, 83) + SourceIndex(0) +-1->Emitted(105, 1) Source(166, 1) + SourceIndex(0) +-2 >Emitted(105, 5) Source(166, 5) + SourceIndex(0) +-3 >Emitted(105, 10) Source(166, 10) + SourceIndex(0) +-4 >Emitted(105, 13) Source(166, 46) + SourceIndex(0) +-5 >Emitted(105, 23) Source(166, 55) + SourceIndex(0) +-6 >Emitted(105, 24) Source(166, 56) + SourceIndex(0) +-7 >Emitted(105, 26) Source(166, 58) + SourceIndex(0) +-8 >Emitted(105, 27) Source(166, 59) + SourceIndex(0) +-9 >Emitted(105, 31) Source(166, 63) + SourceIndex(0) +-10>Emitted(105, 38) Source(166, 76) + SourceIndex(0) +-11>Emitted(105, 39) Source(166, 77) + SourceIndex(0) +-12>Emitted(105, 41) Source(166, 79) + SourceIndex(0) +-13>Emitted(105, 42) Source(166, 80) + SourceIndex(0) +-14>Emitted(105, 43) Source(166, 80) + SourceIndex(0) +-15>Emitted(105, 44) Source(166, 81) + SourceIndex(0) +-16>Emitted(105, 45) Source(166, 82) + SourceIndex(0) +-17>Emitted(105, 46) Source(166, 83) + SourceIndex(0) +9 > ) +10> { +11> return @@ -3571,19 +3451,19 @@ -11> -12> } -13> ; --1 >Emitted(110, 1) Source(167, 1) + SourceIndex(0) --2 >Emitted(110, 5) Source(167, 5) + SourceIndex(0) --3 >Emitted(110, 10) Source(167, 10) + SourceIndex(0) --4 >Emitted(110, 13) Source(170, 4) + SourceIndex(0) --5 >Emitted(110, 23) Source(170, 13) + SourceIndex(0) --6 >Emitted(110, 24) Source(170, 21) + SourceIndex(0) --7 >Emitted(110, 28) Source(170, 25) + SourceIndex(0) --8 >Emitted(110, 35) Source(170, 32) + SourceIndex(0) --9 >Emitted(110, 36) Source(170, 33) + SourceIndex(0) --10>Emitted(110, 37) Source(170, 33) + SourceIndex(0) --11>Emitted(110, 38) Source(170, 34) + SourceIndex(0) --12>Emitted(110, 39) Source(170, 35) + SourceIndex(0) --13>Emitted(110, 40) Source(170, 36) + SourceIndex(0) +-1 >Emitted(106, 1) Source(167, 1) + SourceIndex(0) +-2 >Emitted(106, 5) Source(167, 5) + SourceIndex(0) +-3 >Emitted(106, 10) Source(167, 10) + SourceIndex(0) +-4 >Emitted(106, 13) Source(170, 4) + SourceIndex(0) +-5 >Emitted(106, 23) Source(170, 13) + SourceIndex(0) +-6 >Emitted(106, 24) Source(170, 21) + SourceIndex(0) +-7 >Emitted(106, 28) Source(170, 25) + SourceIndex(0) +-8 >Emitted(106, 35) Source(170, 32) + SourceIndex(0) +-9 >Emitted(106, 36) Source(170, 33) + SourceIndex(0) +-10>Emitted(106, 37) Source(170, 33) + SourceIndex(0) +-11>Emitted(106, 38) Source(170, 34) + SourceIndex(0) +-12>Emitted(106, 39) Source(170, 35) + SourceIndex(0) +-13>Emitted(106, 40) Source(170, 36) + SourceIndex(0) +7 > ) +8 > { +9 > return @@ -3642,19 +3522,19 @@ -11> -12> } -13> ; --1->Emitted(111, 1) Source(172, 1) + SourceIndex(0) --2 >Emitted(111, 5) Source(172, 5) + SourceIndex(0) --3 >Emitted(111, 10) Source(172, 10) + SourceIndex(0) --4 >Emitted(111, 13) Source(172, 48) + SourceIndex(0) --5 >Emitted(111, 23) Source(172, 57) + SourceIndex(0) --6 >Emitted(111, 24) Source(172, 58) + SourceIndex(0) --7 >Emitted(111, 28) Source(172, 62) + SourceIndex(0) --8 >Emitted(111, 35) Source(172, 69) + SourceIndex(0) --9 >Emitted(111, 36) Source(172, 70) + SourceIndex(0) --10>Emitted(111, 37) Source(172, 71) + SourceIndex(0) --11>Emitted(111, 38) Source(172, 72) + SourceIndex(0) --12>Emitted(111, 39) Source(172, 73) + SourceIndex(0) --13>Emitted(111, 40) Source(172, 74) + SourceIndex(0) +-1->Emitted(107, 1) Source(172, 1) + SourceIndex(0) +-2 >Emitted(107, 5) Source(172, 5) + SourceIndex(0) +-3 >Emitted(107, 10) Source(172, 10) + SourceIndex(0) +-4 >Emitted(107, 13) Source(172, 48) + SourceIndex(0) +-5 >Emitted(107, 23) Source(172, 57) + SourceIndex(0) +-6 >Emitted(107, 24) Source(172, 58) + SourceIndex(0) +-7 >Emitted(107, 28) Source(172, 62) + SourceIndex(0) +-8 >Emitted(107, 35) Source(172, 69) + SourceIndex(0) +-9 >Emitted(107, 36) Source(172, 70) + SourceIndex(0) +-10>Emitted(107, 37) Source(172, 71) + SourceIndex(0) +-11>Emitted(107, 38) Source(172, 72) + SourceIndex(0) +-12>Emitted(107, 39) Source(172, 73) + SourceIndex(0) +-13>Emitted(107, 40) Source(172, 74) + SourceIndex(0) +7 > ) +8 > { +9 > return @@ -3684,16 +3564,16 @@ 8 > [] 9 > ] 10> ; --1 >Emitted(112, 1) Source(173, 1) + SourceIndex(0) --2 >Emitted(112, 5) Source(173, 5) + SourceIndex(0) --3 >Emitted(112, 10) Source(173, 10) + SourceIndex(0) --4 >Emitted(112, 13) Source(173, 26) + SourceIndex(0) --5 >Emitted(112, 14) Source(173, 27) + SourceIndex(0) --6 >Emitted(112, 16) Source(173, 29) + SourceIndex(0) --7 >Emitted(112, 18) Source(173, 30) + SourceIndex(0) --8 >Emitted(112, 20) Source(173, 32) + SourceIndex(0) --9 >Emitted(112, 21) Source(173, 33) + SourceIndex(0) --10>Emitted(112, 22) Source(173, 34) + SourceIndex(0) +-1 >Emitted(108, 1) Source(173, 1) + SourceIndex(0) +-2 >Emitted(108, 5) Source(173, 5) + SourceIndex(0) +-3 >Emitted(108, 10) Source(173, 10) + SourceIndex(0) +-4 >Emitted(108, 13) Source(173, 26) + SourceIndex(0) +-5 >Emitted(108, 14) Source(173, 27) + SourceIndex(0) +-6 >Emitted(108, 16) Source(173, 29) + SourceIndex(0) +-7 >Emitted(108, 18) Source(173, 30) + SourceIndex(0) +-8 >Emitted(108, 20) Source(173, 32) + SourceIndex(0) +-9 >Emitted(108, 21) Source(173, 33) + SourceIndex(0) +-10>Emitted(108, 22) Source(173, 34) + SourceIndex(0) +1 >Emitted(107, 1) Source(173, 1) + SourceIndex(0) +2 >Emitted(107, 5) Source(173, 5) + SourceIndex(0) +3 >Emitted(107, 10) Source(173, 10) + SourceIndex(0) @@ -3711,20 +3591,20 @@ 12> ) 13> ] 14> ; --1->Emitted(113, 1) Source(174, 1) + SourceIndex(0) --2 >Emitted(113, 5) Source(174, 5) + SourceIndex(0) --3 >Emitted(113, 11) Source(174, 11) + SourceIndex(0) --4 >Emitted(113, 14) Source(174, 23) + SourceIndex(0) --5 >Emitted(113, 15) Source(174, 30) + SourceIndex(0) --6 >Emitted(113, 16) Source(174, 31) + SourceIndex(0) --7 >Emitted(113, 18) Source(174, 33) + SourceIndex(0) --8 >Emitted(113, 19) Source(174, 34) + SourceIndex(0) --9 >Emitted(113, 21) Source(174, 41) + SourceIndex(0) --10>Emitted(113, 22) Source(174, 42) + SourceIndex(0) --11>Emitted(113, 24) Source(174, 44) + SourceIndex(0) --12>Emitted(113, 25) Source(174, 45) + SourceIndex(0) --13>Emitted(113, 26) Source(174, 46) + SourceIndex(0) --14>Emitted(113, 27) Source(174, 47) + SourceIndex(0) +-1->Emitted(109, 1) Source(174, 1) + SourceIndex(0) +-2 >Emitted(109, 5) Source(174, 5) + SourceIndex(0) +-3 >Emitted(109, 11) Source(174, 11) + SourceIndex(0) +-4 >Emitted(109, 14) Source(174, 23) + SourceIndex(0) +-5 >Emitted(109, 15) Source(174, 30) + SourceIndex(0) +-6 >Emitted(109, 16) Source(174, 31) + SourceIndex(0) +-7 >Emitted(109, 18) Source(174, 33) + SourceIndex(0) +-8 >Emitted(109, 19) Source(174, 34) + SourceIndex(0) +-9 >Emitted(109, 21) Source(174, 41) + SourceIndex(0) +-10>Emitted(109, 22) Source(174, 42) + SourceIndex(0) +-11>Emitted(109, 24) Source(174, 44) + SourceIndex(0) +-12>Emitted(109, 25) Source(174, 45) + SourceIndex(0) +-13>Emitted(109, 26) Source(174, 46) + SourceIndex(0) +-14>Emitted(109, 27) Source(174, 47) + SourceIndex(0) +1->Emitted(108, 1) Source(174, 1) + SourceIndex(0) +2 >Emitted(108, 5) Source(174, 5) + SourceIndex(0) +3 >Emitted(108, 11) Source(174, 11) + SourceIndex(0) @@ -3778,23 +3658,23 @@ -15> } -16> ] -17> ; --1->Emitted(114, 1) Source(175, 1) + SourceIndex(0) --2 >Emitted(114, 5) Source(175, 5) + SourceIndex(0) --3 >Emitted(114, 11) Source(175, 11) + SourceIndex(0) --4 >Emitted(114, 14) Source(175, 52) + SourceIndex(0) --5 >Emitted(114, 15) Source(175, 53) + SourceIndex(0) --6 >Emitted(114, 25) Source(175, 62) + SourceIndex(0) --7 >Emitted(114, 26) Source(175, 63) + SourceIndex(0) --8 >Emitted(114, 28) Source(175, 65) + SourceIndex(0) --9 >Emitted(114, 29) Source(175, 66) + SourceIndex(0) --10>Emitted(114, 33) Source(175, 70) + SourceIndex(0) --11>Emitted(114, 40) Source(175, 77) + SourceIndex(0) --12>Emitted(114, 41) Source(175, 78) + SourceIndex(0) --13>Emitted(114, 42) Source(175, 79) + SourceIndex(0) --14>Emitted(114, 43) Source(175, 80) + SourceIndex(0) --15>Emitted(114, 44) Source(175, 81) + SourceIndex(0) --16>Emitted(114, 45) Source(175, 82) + SourceIndex(0) --17>Emitted(114, 46) Source(175, 83) + SourceIndex(0) +-1->Emitted(110, 1) Source(175, 1) + SourceIndex(0) +-2 >Emitted(110, 5) Source(175, 5) + SourceIndex(0) +-3 >Emitted(110, 11) Source(175, 11) + SourceIndex(0) +-4 >Emitted(110, 14) Source(175, 52) + SourceIndex(0) +-5 >Emitted(110, 15) Source(175, 53) + SourceIndex(0) +-6 >Emitted(110, 25) Source(175, 62) + SourceIndex(0) +-7 >Emitted(110, 26) Source(175, 63) + SourceIndex(0) +-8 >Emitted(110, 28) Source(175, 65) + SourceIndex(0) +-9 >Emitted(110, 29) Source(175, 66) + SourceIndex(0) +-10>Emitted(110, 33) Source(175, 70) + SourceIndex(0) +-11>Emitted(110, 40) Source(175, 77) + SourceIndex(0) +-12>Emitted(110, 41) Source(175, 78) + SourceIndex(0) +-13>Emitted(110, 42) Source(175, 79) + SourceIndex(0) +-14>Emitted(110, 43) Source(175, 80) + SourceIndex(0) +-15>Emitted(110, 44) Source(175, 81) + SourceIndex(0) +-16>Emitted(110, 45) Source(175, 82) + SourceIndex(0) +-17>Emitted(110, 46) Source(175, 83) + SourceIndex(0) +10> ) +11> { +12> return @@ -3829,10 +3709,10 @@ 2 >var 3 > c12t12 4 > = --1 >Emitted(115, 1) Source(176, 1) + SourceIndex(0) --2 >Emitted(115, 5) Source(176, 5) + SourceIndex(0) --3 >Emitted(115, 11) Source(176, 11) + SourceIndex(0) --4 >Emitted(115, 14) Source(176, 21) + SourceIndex(0) +-1 >Emitted(111, 1) Source(176, 1) + SourceIndex(0) +-2 >Emitted(111, 5) Source(176, 5) + SourceIndex(0) +-3 >Emitted(111, 11) Source(176, 11) + SourceIndex(0) +-4 >Emitted(111, 14) Source(176, 21) + SourceIndex(0) +1 >Emitted(110, 1) Source(176, 1) + SourceIndex(0) +2 >Emitted(110, 5) Source(176, 5) + SourceIndex(0) +3 >Emitted(110, 11) Source(176, 11) + SourceIndex(0) @@ -3844,12 +3724,12 @@ 4 > ( 5 > {} 6 > ) --1->Emitted(116, 5) Source(177, 5) + SourceIndex(0) --2 >Emitted(116, 8) Source(177, 8) + SourceIndex(0) --3 >Emitted(116, 10) Source(177, 16) + SourceIndex(0) --4 >Emitted(116, 11) Source(177, 17) + SourceIndex(0) --5 >Emitted(116, 13) Source(177, 19) + SourceIndex(0) --6 >Emitted(116, 14) Source(177, 20) + SourceIndex(0) +-1->Emitted(112, 5) Source(177, 5) + SourceIndex(0) +-2 >Emitted(112, 8) Source(177, 8) + SourceIndex(0) +-3 >Emitted(112, 10) Source(177, 16) + SourceIndex(0) +-4 >Emitted(112, 11) Source(177, 17) + SourceIndex(0) +-5 >Emitted(112, 13) Source(177, 19) + SourceIndex(0) +-6 >Emitted(112, 14) Source(177, 20) + SourceIndex(0) +1->Emitted(111, 5) Source(177, 5) + SourceIndex(0) +2 >Emitted(111, 8) Source(177, 8) + SourceIndex(0) +3 >Emitted(111, 10) Source(177, 16) + SourceIndex(0) @@ -3863,8 +3743,8 @@ 1 > >} 2 > --1 >Emitted(117, 2) Source(178, 2) + SourceIndex(0) --2 >Emitted(117, 3) Source(178, 2) + SourceIndex(0) +-1 >Emitted(113, 2) Source(178, 2) + SourceIndex(0) +-2 >Emitted(113, 3) Source(178, 2) + SourceIndex(0) +1 >Emitted(112, 2) Source(178, 2) + SourceIndex(0) +2 >Emitted(112, 3) Source(178, 2) + SourceIndex(0) --- @@ -3874,11 +3754,11 @@ 3 > c12t13 4 > = 5 > ( --1->Emitted(118, 1) Source(179, 1) + SourceIndex(0) --2 >Emitted(118, 5) Source(179, 5) + SourceIndex(0) --3 >Emitted(118, 11) Source(179, 11) + SourceIndex(0) --4 >Emitted(118, 14) Source(179, 21) + SourceIndex(0) --5 >Emitted(118, 15) Source(179, 22) + SourceIndex(0) +-1->Emitted(114, 1) Source(179, 1) + SourceIndex(0) +-2 >Emitted(114, 5) Source(179, 5) + SourceIndex(0) +-3 >Emitted(114, 11) Source(179, 11) + SourceIndex(0) +-4 >Emitted(114, 14) Source(179, 21) + SourceIndex(0) +-5 >Emitted(114, 15) Source(179, 22) + SourceIndex(0) +1->Emitted(113, 1) Source(179, 1) + SourceIndex(0) +2 >Emitted(113, 5) Source(179, 5) + SourceIndex(0) +3 >Emitted(113, 11) Source(179, 11) + SourceIndex(0) @@ -3917,19 +3797,19 @@ -11> ; -12> -13> } --1->Emitted(119, 5) Source(180, 5) + SourceIndex(0) --2 >Emitted(119, 6) Source(180, 6) + SourceIndex(0) --3 >Emitted(119, 8) Source(180, 8) + SourceIndex(0) --4 >Emitted(119, 18) Source(180, 17) + SourceIndex(0) --5 >Emitted(119, 19) Source(180, 18) + SourceIndex(0) --6 >Emitted(119, 21) Source(180, 20) + SourceIndex(0) --7 >Emitted(119, 22) Source(180, 21) + SourceIndex(0) --8 >Emitted(119, 26) Source(180, 25) + SourceIndex(0) --9 >Emitted(119, 33) Source(180, 32) + SourceIndex(0) --10>Emitted(119, 34) Source(180, 33) + SourceIndex(0) --11>Emitted(119, 35) Source(180, 34) + SourceIndex(0) --12>Emitted(119, 36) Source(180, 35) + SourceIndex(0) --13>Emitted(119, 37) Source(180, 36) + SourceIndex(0) +-1->Emitted(115, 5) Source(180, 5) + SourceIndex(0) +-2 >Emitted(115, 6) Source(180, 6) + SourceIndex(0) +-3 >Emitted(115, 8) Source(180, 8) + SourceIndex(0) +-4 >Emitted(115, 18) Source(180, 17) + SourceIndex(0) +-5 >Emitted(115, 19) Source(180, 18) + SourceIndex(0) +-6 >Emitted(115, 21) Source(180, 20) + SourceIndex(0) +-7 >Emitted(115, 22) Source(180, 21) + SourceIndex(0) +-8 >Emitted(115, 26) Source(180, 25) + SourceIndex(0) +-9 >Emitted(115, 33) Source(180, 32) + SourceIndex(0) +-10>Emitted(115, 34) Source(180, 33) + SourceIndex(0) +-11>Emitted(115, 35) Source(180, 34) + SourceIndex(0) +-12>Emitted(115, 36) Source(180, 35) + SourceIndex(0) +-13>Emitted(115, 37) Source(180, 36) + SourceIndex(0) +8 > ) +9 > { +10> return @@ -3958,9 +3838,9 @@ >} 2 > ) 3 > --1 >Emitted(120, 2) Source(181, 2) + SourceIndex(0) --2 >Emitted(120, 3) Source(181, 3) + SourceIndex(0) --3 >Emitted(120, 4) Source(181, 3) + SourceIndex(0) +-1 >Emitted(116, 2) Source(181, 2) + SourceIndex(0) +-2 >Emitted(116, 3) Source(181, 3) + SourceIndex(0) +-3 >Emitted(116, 4) Source(181, 3) + SourceIndex(0) +1 >Emitted(115, 2) Source(181, 2) + SourceIndex(0) +2 >Emitted(115, 3) Source(181, 3) + SourceIndex(0) +3 >Emitted(115, 4) Source(181, 3) + SourceIndex(0) @@ -3971,11 +3851,11 @@ 3 > c12t14 4 > = 5 > ( --1->Emitted(121, 1) Source(182, 1) + SourceIndex(0) --2 >Emitted(121, 5) Source(182, 5) + SourceIndex(0) --3 >Emitted(121, 11) Source(182, 11) + SourceIndex(0) --4 >Emitted(121, 14) Source(182, 21) + SourceIndex(0) --5 >Emitted(121, 15) Source(182, 22) + SourceIndex(0) +-1->Emitted(117, 1) Source(182, 1) + SourceIndex(0) +-2 >Emitted(117, 5) Source(182, 5) + SourceIndex(0) +-3 >Emitted(117, 11) Source(182, 11) + SourceIndex(0) +-4 >Emitted(117, 14) Source(182, 21) + SourceIndex(0) +-5 >Emitted(117, 15) Source(182, 22) + SourceIndex(0) +1->Emitted(116, 1) Source(182, 1) + SourceIndex(0) +2 >Emitted(116, 5) Source(182, 5) + SourceIndex(0) +3 >Emitted(116, 11) Source(182, 11) + SourceIndex(0) @@ -3988,10 +3868,10 @@ 2 > a 3 > : 4 > [] --1 >Emitted(122, 5) Source(183, 5) + SourceIndex(0) --2 >Emitted(122, 6) Source(183, 6) + SourceIndex(0) --3 >Emitted(122, 8) Source(183, 8) + SourceIndex(0) --4 >Emitted(122, 10) Source(183, 10) + SourceIndex(0) +-1 >Emitted(118, 5) Source(183, 5) + SourceIndex(0) +-2 >Emitted(118, 6) Source(183, 6) + SourceIndex(0) +-3 >Emitted(118, 8) Source(183, 8) + SourceIndex(0) +-4 >Emitted(118, 10) Source(183, 10) + SourceIndex(0) +1 >Emitted(117, 5) Source(183, 5) + SourceIndex(0) +2 >Emitted(117, 6) Source(183, 6) + SourceIndex(0) +3 >Emitted(117, 8) Source(183, 8) + SourceIndex(0) @@ -4003,9 +3883,9 @@ >} 2 > ) 3 > --1 >Emitted(123, 2) Source(184, 2) + SourceIndex(0) --2 >Emitted(123, 3) Source(184, 3) + SourceIndex(0) --3 >Emitted(123, 4) Source(184, 3) + SourceIndex(0) +-1 >Emitted(119, 2) Source(184, 2) + SourceIndex(0) +-2 >Emitted(119, 3) Source(184, 3) + SourceIndex(0) +-3 >Emitted(119, 4) Source(184, 3) + SourceIndex(0) +1 >Emitted(118, 2) Source(184, 2) + SourceIndex(0) +2 >Emitted(118, 3) Source(184, 3) + SourceIndex(0) +3 >Emitted(118, 4) Source(184, 3) + SourceIndex(0) @@ -4048,21 +3928,21 @@ -13> ; -14> -15> } --1->Emitted(124, 1) Source(191, 1) + SourceIndex(0) --2 >Emitted(124, 10) Source(191, 10) + SourceIndex(0) --3 >Emitted(124, 13) Source(191, 13) + SourceIndex(0) --4 >Emitted(124, 14) Source(191, 14) + SourceIndex(0) --5 >Emitted(124, 15) Source(191, 15) + SourceIndex(0) --6 >Emitted(124, 17) Source(191, 16) + SourceIndex(0) --7 >Emitted(124, 18) Source(191, 17) + SourceIndex(0) --8 >Emitted(124, 22) Source(191, 21) + SourceIndex(0) --9 >Emitted(124, 29) Source(191, 28) + SourceIndex(0) --10>Emitted(124, 30) Source(191, 29) + SourceIndex(0) --11>Emitted(124, 33) Source(191, 30) + SourceIndex(0) --12>Emitted(124, 34) Source(191, 31) + SourceIndex(0) --13>Emitted(124, 35) Source(191, 32) + SourceIndex(0) --14>Emitted(124, 36) Source(191, 33) + SourceIndex(0) --15>Emitted(124, 37) Source(191, 34) + SourceIndex(0) +-1->Emitted(120, 1) Source(191, 1) + SourceIndex(0) +-2 >Emitted(120, 10) Source(191, 10) + SourceIndex(0) +-3 >Emitted(120, 13) Source(191, 13) + SourceIndex(0) +-4 >Emitted(120, 14) Source(191, 14) + SourceIndex(0) +-5 >Emitted(120, 15) Source(191, 15) + SourceIndex(0) +-6 >Emitted(120, 17) Source(191, 16) + SourceIndex(0) +-7 >Emitted(120, 18) Source(191, 17) + SourceIndex(0) +-8 >Emitted(120, 22) Source(191, 21) + SourceIndex(0) +-9 >Emitted(120, 29) Source(191, 28) + SourceIndex(0) +-10>Emitted(120, 30) Source(191, 29) + SourceIndex(0) +-11>Emitted(120, 33) Source(191, 30) + SourceIndex(0) +-12>Emitted(120, 34) Source(191, 31) + SourceIndex(0) +-13>Emitted(120, 35) Source(191, 32) + SourceIndex(0) +-14>Emitted(120, 36) Source(191, 33) + SourceIndex(0) +-15>Emitted(120, 37) Source(191, 34) + SourceIndex(0) +8 > ) +9 > { +10> return @@ -4095,17 +3975,17 @@ 9 > 2 10> ) 11> ; --1 >Emitted(125, 1) Source(193, 1) + SourceIndex(0) --2 >Emitted(125, 5) Source(193, 5) + SourceIndex(0) --3 >Emitted(125, 8) Source(193, 8) + SourceIndex(0) --4 >Emitted(125, 11) Source(193, 11) + SourceIndex(0) --5 >Emitted(125, 14) Source(193, 14) + SourceIndex(0) --6 >Emitted(125, 15) Source(193, 15) + SourceIndex(0) --7 >Emitted(125, 16) Source(193, 16) + SourceIndex(0) --8 >Emitted(125, 18) Source(193, 17) + SourceIndex(0) --9 >Emitted(125, 19) Source(193, 18) + SourceIndex(0) --10>Emitted(125, 20) Source(193, 19) + SourceIndex(0) --11>Emitted(125, 21) Source(193, 20) + SourceIndex(0) +-1 >Emitted(121, 1) Source(193, 1) + SourceIndex(0) +-2 >Emitted(121, 5) Source(193, 5) + SourceIndex(0) +-3 >Emitted(121, 8) Source(193, 8) + SourceIndex(0) +-4 >Emitted(121, 11) Source(193, 11) + SourceIndex(0) +-5 >Emitted(121, 14) Source(193, 14) + SourceIndex(0) +-6 >Emitted(121, 15) Source(193, 15) + SourceIndex(0) +-7 >Emitted(121, 16) Source(193, 16) + SourceIndex(0) +-8 >Emitted(121, 18) Source(193, 17) + SourceIndex(0) +-9 >Emitted(121, 19) Source(193, 18) + SourceIndex(0) +-10>Emitted(121, 20) Source(193, 19) + SourceIndex(0) +-11>Emitted(121, 21) Source(193, 20) + SourceIndex(0) +1 >Emitted(120, 1) Source(193, 1) + SourceIndex(0) +2 >Emitted(120, 5) Source(193, 5) + SourceIndex(0) +3 >Emitted(120, 8) Source(193, 8) + SourceIndex(0) @@ -4124,19 +4004,19 @@ 11> 0 12> ) 13> ; --1->Emitted(126, 1) Source(207, 1) + SourceIndex(0) --2 >Emitted(126, 6) Source(207, 6) + SourceIndex(0) --3 >Emitted(126, 7) Source(207, 7) + SourceIndex(0) --4 >Emitted(126, 13) Source(207, 13) + SourceIndex(0) --5 >Emitted(126, 16) Source(207, 16) + SourceIndex(0) --6 >Emitted(126, 20) Source(207, 20) + SourceIndex(0) --7 >Emitted(126, 25) Source(207, 25) + SourceIndex(0) --8 >Emitted(126, 26) Source(207, 26) + SourceIndex(0) --9 >Emitted(126, 27) Source(207, 27) + SourceIndex(0) --10>Emitted(126, 29) Source(207, 29) + SourceIndex(0) --11>Emitted(126, 30) Source(207, 30) + SourceIndex(0) --12>Emitted(126, 31) Source(207, 31) + SourceIndex(0) --13>Emitted(126, 32) Source(207, 32) + SourceIndex(0) +-1->Emitted(122, 1) Source(207, 1) + SourceIndex(0) +-2 >Emitted(122, 6) Source(207, 6) + SourceIndex(0) +-3 >Emitted(122, 7) Source(207, 7) + SourceIndex(0) +-4 >Emitted(122, 13) Source(207, 13) + SourceIndex(0) +-5 >Emitted(122, 16) Source(207, 16) + SourceIndex(0) +-6 >Emitted(122, 20) Source(207, 20) + SourceIndex(0) +-7 >Emitted(122, 25) Source(207, 25) + SourceIndex(0) +-8 >Emitted(122, 26) Source(207, 26) + SourceIndex(0) +-9 >Emitted(122, 27) Source(207, 27) + SourceIndex(0) +-10>Emitted(122, 29) Source(207, 29) + SourceIndex(0) +-11>Emitted(122, 30) Source(207, 30) + SourceIndex(0) +-12>Emitted(122, 31) Source(207, 31) + SourceIndex(0) +-13>Emitted(122, 32) Source(207, 32) + SourceIndex(0) +1->Emitted(121, 1) Source(207, 1) + SourceIndex(0) +2 >Emitted(121, 6) Source(207, 6) + SourceIndex(0) +3 >Emitted(121, 7) Source(207, 7) + SourceIndex(0) @@ -4167,17 +4047,17 @@ 9 > dx 10> , 11> dy --1->Emitted(127, 1) Source(209, 1) + SourceIndex(0) --2 >Emitted(127, 6) Source(209, 6) + SourceIndex(0) --3 >Emitted(127, 7) Source(209, 7) + SourceIndex(0) --4 >Emitted(127, 16) Source(209, 16) + SourceIndex(0) --5 >Emitted(127, 17) Source(209, 17) + SourceIndex(0) --6 >Emitted(127, 20) Source(209, 20) + SourceIndex(0) --7 >Emitted(127, 23) Source(209, 23) + SourceIndex(0) --8 >Emitted(127, 33) Source(209, 32) + SourceIndex(0) --9 >Emitted(127, 35) Source(209, 34) + SourceIndex(0) --10>Emitted(127, 37) Source(209, 36) + SourceIndex(0) --11>Emitted(127, 39) Source(209, 38) + SourceIndex(0) +-1->Emitted(123, 1) Source(209, 1) + SourceIndex(0) +-2 >Emitted(123, 6) Source(209, 6) + SourceIndex(0) +-3 >Emitted(123, 7) Source(209, 7) + SourceIndex(0) +-4 >Emitted(123, 16) Source(209, 16) + SourceIndex(0) +-5 >Emitted(123, 17) Source(209, 17) + SourceIndex(0) +-6 >Emitted(123, 20) Source(209, 20) + SourceIndex(0) +-7 >Emitted(123, 23) Source(209, 23) + SourceIndex(0) +-8 >Emitted(123, 33) Source(209, 32) + SourceIndex(0) +-9 >Emitted(123, 35) Source(209, 34) + SourceIndex(0) +-10>Emitted(123, 37) Source(209, 36) + SourceIndex(0) +-11>Emitted(123, 39) Source(209, 38) + SourceIndex(0) +12> ) +1->Emitted(122, 1) Source(209, 1) + SourceIndex(0) +2 >Emitted(122, 6) Source(209, 6) + SourceIndex(0) @@ -4207,24 +4087,24 @@ 16> dy 17> ) 18> ; --1->Emitted(128, 5) Source(210, 5) + SourceIndex(0) --2 >Emitted(128, 12) Source(210, 12) + SourceIndex(0) --3 >Emitted(128, 16) Source(210, 16) + SourceIndex(0) --4 >Emitted(128, 21) Source(210, 21) + SourceIndex(0) --5 >Emitted(128, 22) Source(210, 22) + SourceIndex(0) --6 >Emitted(128, 26) Source(210, 26) + SourceIndex(0) --7 >Emitted(128, 27) Source(210, 27) + SourceIndex(0) --8 >Emitted(128, 28) Source(210, 28) + SourceIndex(0) --9 >Emitted(128, 31) Source(210, 31) + SourceIndex(0) --10>Emitted(128, 33) Source(210, 33) + SourceIndex(0) --11>Emitted(128, 35) Source(210, 35) + SourceIndex(0) --12>Emitted(128, 39) Source(210, 39) + SourceIndex(0) --13>Emitted(128, 40) Source(210, 40) + SourceIndex(0) --14>Emitted(128, 41) Source(210, 41) + SourceIndex(0) --15>Emitted(128, 44) Source(210, 44) + SourceIndex(0) --16>Emitted(128, 46) Source(210, 46) + SourceIndex(0) --17>Emitted(128, 47) Source(210, 47) + SourceIndex(0) --18>Emitted(128, 48) Source(210, 48) + SourceIndex(0) +-1->Emitted(124, 5) Source(210, 5) + SourceIndex(0) +-2 >Emitted(124, 12) Source(210, 12) + SourceIndex(0) +-3 >Emitted(124, 16) Source(210, 16) + SourceIndex(0) +-4 >Emitted(124, 21) Source(210, 21) + SourceIndex(0) +-5 >Emitted(124, 22) Source(210, 22) + SourceIndex(0) +-6 >Emitted(124, 26) Source(210, 26) + SourceIndex(0) +-7 >Emitted(124, 27) Source(210, 27) + SourceIndex(0) +-8 >Emitted(124, 28) Source(210, 28) + SourceIndex(0) +-9 >Emitted(124, 31) Source(210, 31) + SourceIndex(0) +-10>Emitted(124, 33) Source(210, 33) + SourceIndex(0) +-11>Emitted(124, 35) Source(210, 35) + SourceIndex(0) +-12>Emitted(124, 39) Source(210, 39) + SourceIndex(0) +-13>Emitted(124, 40) Source(210, 40) + SourceIndex(0) +-14>Emitted(124, 41) Source(210, 41) + SourceIndex(0) +-15>Emitted(124, 44) Source(210, 44) + SourceIndex(0) +-16>Emitted(124, 46) Source(210, 46) + SourceIndex(0) +-17>Emitted(124, 47) Source(210, 47) + SourceIndex(0) +-18>Emitted(124, 48) Source(210, 48) + SourceIndex(0) +1->Emitted(123, 5) Source(210, 5) + SourceIndex(0) +2 >Emitted(123, 12) Source(210, 12) + SourceIndex(0) +3 >Emitted(123, 16) Source(210, 16) + SourceIndex(0) @@ -4255,9 +4135,9 @@ +2 > + >} 3 > ; --1 >Emitted(129, 1) Source(211, 1) + SourceIndex(0) --2 >Emitted(129, 2) Source(211, 2) + SourceIndex(0) --3 >Emitted(129, 3) Source(211, 3) + SourceIndex(0) +-1 >Emitted(125, 1) Source(211, 1) + SourceIndex(0) +-2 >Emitted(125, 2) Source(211, 2) + SourceIndex(0) +-3 >Emitted(125, 3) Source(211, 3) + SourceIndex(0) +1 >Emitted(124, 1) Source(210, 48) + SourceIndex(0) +2 >Emitted(124, 2) Source(211, 2) + SourceIndex(0) +3 >Emitted(124, 3) Source(211, 3) + SourceIndex(0) @@ -4268,11 +4148,11 @@ 3 > . 4 > prototype 5 > = --1->Emitted(130, 1) Source(213, 1) + SourceIndex(0) --2 >Emitted(130, 6) Source(213, 6) + SourceIndex(0) --3 >Emitted(130, 7) Source(213, 7) + SourceIndex(0) --4 >Emitted(130, 16) Source(213, 16) + SourceIndex(0) --5 >Emitted(130, 19) Source(213, 19) + SourceIndex(0) +-1->Emitted(126, 1) Source(213, 1) + SourceIndex(0) +-2 >Emitted(126, 6) Source(213, 6) + SourceIndex(0) +-3 >Emitted(126, 7) Source(213, 7) + SourceIndex(0) +-4 >Emitted(126, 16) Source(213, 16) + SourceIndex(0) +-5 >Emitted(126, 19) Source(213, 19) + SourceIndex(0) +1->Emitted(125, 1) Source(213, 1) + SourceIndex(0) +2 >Emitted(125, 6) Source(213, 6) + SourceIndex(0) +3 >Emitted(125, 7) Source(213, 7) + SourceIndex(0) @@ -4285,10 +4165,10 @@ 2 > x 3 > : 4 > 0 --1 >Emitted(131, 5) Source(214, 5) + SourceIndex(0) --2 >Emitted(131, 6) Source(214, 6) + SourceIndex(0) --3 >Emitted(131, 8) Source(214, 8) + SourceIndex(0) --4 >Emitted(131, 9) Source(214, 9) + SourceIndex(0) +-1 >Emitted(127, 5) Source(214, 5) + SourceIndex(0) +-2 >Emitted(127, 6) Source(214, 6) + SourceIndex(0) +-3 >Emitted(127, 8) Source(214, 8) + SourceIndex(0) +-4 >Emitted(127, 9) Source(214, 9) + SourceIndex(0) +1 >Emitted(126, 5) Source(214, 5) + SourceIndex(0) +2 >Emitted(126, 6) Source(214, 6) + SourceIndex(0) +3 >Emitted(126, 8) Source(214, 8) + SourceIndex(0) @@ -4300,10 +4180,10 @@ 2 > y 3 > : 4 > 0 --1->Emitted(132, 5) Source(215, 5) + SourceIndex(0) --2 >Emitted(132, 6) Source(215, 6) + SourceIndex(0) --3 >Emitted(132, 8) Source(215, 8) + SourceIndex(0) --4 >Emitted(132, 9) Source(215, 9) + SourceIndex(0) +-1->Emitted(128, 5) Source(215, 5) + SourceIndex(0) +-2 >Emitted(128, 6) Source(215, 6) + SourceIndex(0) +-3 >Emitted(128, 8) Source(215, 8) + SourceIndex(0) +-4 >Emitted(128, 9) Source(215, 9) + SourceIndex(0) +1->Emitted(127, 5) Source(215, 5) + SourceIndex(0) +2 >Emitted(127, 6) Source(215, 6) + SourceIndex(0) +3 >Emitted(127, 8) Source(215, 8) + SourceIndex(0) @@ -4325,13 +4205,13 @@ 5 > dx 6 > , 7 > dy --1->Emitted(133, 5) Source(216, 5) + SourceIndex(0) --2 >Emitted(133, 8) Source(216, 8) + SourceIndex(0) --3 >Emitted(133, 10) Source(216, 10) + SourceIndex(0) --4 >Emitted(133, 20) Source(216, 19) + SourceIndex(0) --5 >Emitted(133, 22) Source(216, 21) + SourceIndex(0) --6 >Emitted(133, 24) Source(216, 23) + SourceIndex(0) --7 >Emitted(133, 26) Source(216, 25) + SourceIndex(0) +-1->Emitted(129, 5) Source(216, 5) + SourceIndex(0) +-2 >Emitted(129, 8) Source(216, 8) + SourceIndex(0) +-3 >Emitted(129, 10) Source(216, 10) + SourceIndex(0) +-4 >Emitted(129, 20) Source(216, 19) + SourceIndex(0) +-5 >Emitted(129, 22) Source(216, 21) + SourceIndex(0) +-6 >Emitted(129, 24) Source(216, 23) + SourceIndex(0) +-7 >Emitted(129, 26) Source(216, 25) + SourceIndex(0) +8 > ) +1->Emitted(128, 5) Source(216, 5) + SourceIndex(0) +2 >Emitted(128, 8) Source(216, 8) + SourceIndex(0) @@ -4357,24 +4237,24 @@ 16> dy 17> ) 18> ; --1->Emitted(134, 9) Source(217, 9) + SourceIndex(0) --2 >Emitted(134, 16) Source(217, 16) + SourceIndex(0) --3 >Emitted(134, 20) Source(217, 20) + SourceIndex(0) --4 >Emitted(134, 25) Source(217, 25) + SourceIndex(0) --5 >Emitted(134, 26) Source(217, 26) + SourceIndex(0) --6 >Emitted(134, 30) Source(217, 30) + SourceIndex(0) --7 >Emitted(134, 31) Source(217, 31) + SourceIndex(0) --8 >Emitted(134, 32) Source(217, 32) + SourceIndex(0) --9 >Emitted(134, 35) Source(217, 35) + SourceIndex(0) --10>Emitted(134, 37) Source(217, 37) + SourceIndex(0) --11>Emitted(134, 39) Source(217, 39) + SourceIndex(0) --12>Emitted(134, 43) Source(217, 43) + SourceIndex(0) --13>Emitted(134, 44) Source(217, 44) + SourceIndex(0) --14>Emitted(134, 45) Source(217, 45) + SourceIndex(0) --15>Emitted(134, 48) Source(217, 48) + SourceIndex(0) --16>Emitted(134, 50) Source(217, 50) + SourceIndex(0) --17>Emitted(134, 51) Source(217, 51) + SourceIndex(0) --18>Emitted(134, 52) Source(217, 52) + SourceIndex(0) +-1->Emitted(130, 9) Source(217, 9) + SourceIndex(0) +-2 >Emitted(130, 16) Source(217, 16) + SourceIndex(0) +-3 >Emitted(130, 20) Source(217, 20) + SourceIndex(0) +-4 >Emitted(130, 25) Source(217, 25) + SourceIndex(0) +-5 >Emitted(130, 26) Source(217, 26) + SourceIndex(0) +-6 >Emitted(130, 30) Source(217, 30) + SourceIndex(0) +-7 >Emitted(130, 31) Source(217, 31) + SourceIndex(0) +-8 >Emitted(130, 32) Source(217, 32) + SourceIndex(0) +-9 >Emitted(130, 35) Source(217, 35) + SourceIndex(0) +-10>Emitted(130, 37) Source(217, 37) + SourceIndex(0) +-11>Emitted(130, 39) Source(217, 39) + SourceIndex(0) +-12>Emitted(130, 43) Source(217, 43) + SourceIndex(0) +-13>Emitted(130, 44) Source(217, 44) + SourceIndex(0) +-14>Emitted(130, 45) Source(217, 45) + SourceIndex(0) +-15>Emitted(130, 48) Source(217, 48) + SourceIndex(0) +-16>Emitted(130, 50) Source(217, 50) + SourceIndex(0) +-17>Emitted(130, 51) Source(217, 51) + SourceIndex(0) +-18>Emitted(130, 52) Source(217, 52) + SourceIndex(0) +1->Emitted(129, 9) Source(217, 9) + SourceIndex(0) +2 >Emitted(129, 16) Source(217, 16) + SourceIndex(0) +3 >Emitted(129, 20) Source(217, 20) + SourceIndex(0) @@ -4400,8 +4280,8 @@ 1 > - > -2 > } --1 >Emitted(135, 5) Source(218, 5) + SourceIndex(0) --2 >Emitted(135, 6) Source(218, 6) + SourceIndex(0) +-1 >Emitted(131, 5) Source(218, 5) + SourceIndex(0) +-2 >Emitted(131, 6) Source(218, 6) + SourceIndex(0) +2 > + > } +1 >Emitted(130, 5) Source(217, 52) + SourceIndex(0) @@ -4413,8 +4293,8 @@ 1 > >} 2 > ; --1 >Emitted(136, 2) Source(219, 2) + SourceIndex(0) --2 >Emitted(136, 3) Source(219, 3) + SourceIndex(0) +-1 >Emitted(132, 2) Source(219, 2) + SourceIndex(0) +-2 >Emitted(132, 3) Source(219, 3) + SourceIndex(0) +1 >Emitted(131, 2) Source(219, 2) + SourceIndex(0) +2 >Emitted(131, 3) Source(219, 3) + SourceIndex(0) --- @@ -4424,12 +4304,12 @@ 4 > : B = 5 > { } 6 > ; --1->Emitted(137, 1) Source(223, 1) + SourceIndex(0) --2 >Emitted(137, 5) Source(223, 5) + SourceIndex(0) --3 >Emitted(137, 6) Source(223, 6) + SourceIndex(0) --4 >Emitted(137, 9) Source(223, 12) + SourceIndex(0) --5 >Emitted(137, 11) Source(223, 15) + SourceIndex(0) --6 >Emitted(137, 12) Source(223, 16) + SourceIndex(0) +-1->Emitted(133, 1) Source(223, 1) + SourceIndex(0) +-2 >Emitted(133, 5) Source(223, 5) + SourceIndex(0) +-3 >Emitted(133, 6) Source(223, 6) + SourceIndex(0) +-4 >Emitted(133, 9) Source(223, 12) + SourceIndex(0) +-5 >Emitted(133, 11) Source(223, 15) + SourceIndex(0) +-6 >Emitted(133, 12) Source(223, 16) + SourceIndex(0) +1->Emitted(132, 1) Source(223, 1) + SourceIndex(0) +2 >Emitted(132, 5) Source(223, 5) + SourceIndex(0) +3 >Emitted(132, 6) Source(223, 6) + SourceIndex(0) diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping10.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping10.js.diff index cb15be248a..9a16726e0b 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping10.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping10.js.diff @@ -1,15 +1,11 @@ --- old.contextualTyping10.js +++ new.contextualTyping10.js -@@= skipped -3, +3 lines =@@ - class foo { public bar:{id:number;}[] = [{id:1}, {id:2}]; } +@@= skipped -4, +4 lines =@@ //// [contextualTyping10.js] --var foo = /** @class */ (function () { -- function foo() { + class foo { +- constructor() { - this.bar = [{ id: 1 }, { id: 2 }]; - } -- return foo; --}()); -+class foo { + bar = [{ id: 1 }, { id: 2 }]; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping11.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping11.js.diff index 0a197ff653..1e77dfaf13 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping11.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping11.js.diff @@ -1,15 +1,11 @@ --- old.contextualTyping11.js +++ new.contextualTyping11.js -@@= skipped -3, +3 lines =@@ - class foo { public bar:{id:number;}[] = [({})]; } +@@= skipped -4, +4 lines =@@ //// [contextualTyping11.js] --var foo = /** @class */ (function () { -- function foo() { + class foo { +- constructor() { - this.bar = [({})]; - } -- return foo; --}()); -+class foo { + bar = [({})]; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping12.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping12.js.diff index 773d133b47..4e86da878c 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping12.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping12.js.diff @@ -1,15 +1,11 @@ --- old.contextualTyping12.js +++ new.contextualTyping12.js -@@= skipped -3, +3 lines =@@ - class foo { public bar:{id:number;}[] = [{id:1}, {id:2, name:"foo"}]; } +@@= skipped -4, +4 lines =@@ //// [contextualTyping12.js] --var foo = /** @class */ (function () { -- function foo() { + class foo { +- constructor() { - this.bar = [{ id: 1 }, { id: 2, name: "foo" }]; - } -- return foo; --}()); -+class foo { + bar = [{ id: 1 }, { id: 2, name: "foo" }]; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping14.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping14.js.diff index a3fed537ea..29d7924181 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping14.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping14.js.diff @@ -1,15 +1,11 @@ --- old.contextualTyping14.js +++ new.contextualTyping14.js -@@= skipped -3, +3 lines =@@ - class foo { public bar:(a:number)=>number = function(a){return a}; } +@@= skipped -4, +4 lines =@@ //// [contextualTyping14.js] --var foo = /** @class */ (function () { -- function foo() { + class foo { +- constructor() { - this.bar = function (a) { return a; }; - } -- return foo; --}()); -+class foo { + bar = function (a) { return a; }; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping15.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping15.js.diff index 231c34f518..f9e1ef0439 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping15.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping15.js.diff @@ -1,15 +1,11 @@ --- old.contextualTyping15.js +++ new.contextualTyping15.js -@@= skipped -3, +3 lines =@@ - class foo { public bar: { (): number; (i: number): number; } = function() { return 1 }; } +@@= skipped -4, +4 lines =@@ //// [contextualTyping15.js] --var foo = /** @class */ (function () { -- function foo() { + class foo { +- constructor() { - this.bar = function () { return 1; }; - } -- return foo; --}()); -+class foo { + bar = function () { return 1; }; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping3.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping3.js.diff index 6f8860a12a..3e23b8e5b4 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping3.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping3.js.diff @@ -1,15 +1,11 @@ --- old.contextualTyping3.js +++ new.contextualTyping3.js -@@= skipped -3, +3 lines =@@ - class foo { public bar:{id:number;} = {id:5}; } +@@= skipped -4, +4 lines =@@ //// [contextualTyping3.js] --var foo = /** @class */ (function () { -- function foo() { + class foo { +- constructor() { - this.bar = { id: 5 }; - } -- return foo; --}()); -+class foo { + bar = { id: 5 }; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping4.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping4.js.diff index d09b9fac7c..86c9a15678 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping4.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping4.js.diff @@ -1,15 +1,11 @@ --- old.contextualTyping4.js +++ new.contextualTyping4.js -@@= skipped -3, +3 lines =@@ - class foo { public bar:{id:number;} = {id:5, name:"foo"}; } +@@= skipped -4, +4 lines =@@ //// [contextualTyping4.js] --var foo = /** @class */ (function () { -- function foo() { + class foo { +- constructor() { - this.bar = { id: 5, name: "foo" }; - } -- return foo; --}()); -+class foo { + bar = { id: 5, name: "foo" }; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTyping5.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTyping5.js.diff index 070a6223b1..dc4df28bdf 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTyping5.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTyping5.js.diff @@ -1,15 +1,11 @@ --- old.contextualTyping5.js +++ new.contextualTyping5.js -@@= skipped -3, +3 lines =@@ - class foo { public bar:{id:number;} = { }; } +@@= skipped -4, +4 lines =@@ //// [contextualTyping5.js] --var foo = /** @class */ (function () { -- function foo() { + class foo { +- constructor() { - this.bar = {}; - } -- return foo; --}()); -+class foo { + bar = {}; -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingArrayDestructuringWithDefaults.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingArrayDestructuringWithDefaults.js.diff deleted file mode 100644 index 3e10b8ad5b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingArrayDestructuringWithDefaults.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.contextualTypingArrayDestructuringWithDefaults.js -+++ new.contextualTypingArrayDestructuringWithDefaults.js -@@= skipped -13, +13 lines =@@ - - - //// [contextualTypingArrayDestructuringWithDefaults.js] --var _a = [][0], c0 = _a === void 0 ? { a: "a" } : _a; --var _b = [1], x1 = _b[0], _c = _b[1], c1 = _c === void 0 ? { a: "a" } : _c; --var _d = [][0], c_ = _d === void 0 ? { a: "a" } : _d; -+let [c0 = { a: "a" }] = []; -+let [x1, c1 = { a: "a" }] = [1]; -+let [c_ = { a: "a" }] = []; - // not a great example, expect an error - function foo() { -- var _a = [1].length, length = _a === void 0 ? { a: 1 } : _a; -+ let { length = { a: 1 } } = [1]; - return length; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingArrayOfLambdas.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingArrayOfLambdas.js.diff index c1f4490e52..d678cc14fc 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingArrayOfLambdas.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTypingArrayOfLambdas.js.diff @@ -1,51 +1,15 @@ --- old.contextualTypingArrayOfLambdas.js +++ new.contextualTypingArrayOfLambdas.js -@@= skipped -16, +16 lines =@@ - +@@= skipped -17, +17 lines =@@ //// [contextualTypingArrayOfLambdas.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; --}(A)); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C; --}(A)); --var xs = [function (x) { }, function (x) { }, function (x) { }]; -+class A { + class A { + foo; -+} -+class B extends A { + } + class B extends A { + bar; -+} -+class C extends A { + } + class C extends A { + baz; -+} -+var xs = [(x) => { }, (x) => { }, (x) => { }]; \ No newline at end of file + } + var xs = [(x) => { }, (x) => { }, (x) => { }]; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingFunctionReturningFunction.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingFunctionReturningFunction.js.diff deleted file mode 100644 index 14aaef8e81..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingFunctionReturningFunction.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.contextualTypingFunctionReturningFunction.js -+++ new.contextualTypingFunctionReturningFunction.js -@@= skipped -15, +15 lines =@@ - - //// [contextualTypingFunctionReturningFunction.js] - f({ -- a: function (s) { }, -- b: function () { return function (n) { }; }, -+ a: s => { }, -+ b: () => n => { }, - }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingFunctionReturningFunction2.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingFunctionReturningFunction2.js.diff deleted file mode 100644 index 35135f3e26..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingFunctionReturningFunction2.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.contextualTypingFunctionReturningFunction2.js -+++ new.contextualTypingFunctionReturningFunction2.js -@@= skipped -7, +7 lines =@@ - - - //// [contextualTypingFunctionReturningFunction2.js] --f(function () { return function (n) { return n; }; }); -+f(() => n => n); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingOfAccessors.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingOfAccessors.js.diff deleted file mode 100644 index f3259d402d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingOfAccessors.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.contextualTypingOfAccessors.js -+++ new.contextualTypingOfAccessors.js -@@= skipped -19, +19 lines =@@ - var x; - x = { - get foo() { -- return function (n) { return n; }; -+ return (n) => n; - }, - set foo(x) { } - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingOfConditionalExpression.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingOfConditionalExpression.js.diff index 92e7c3672a..de1352b5a0 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingOfConditionalExpression.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTypingOfConditionalExpression.js.diff @@ -1,53 +1,15 @@ --- old.contextualTypingOfConditionalExpression.js +++ new.contextualTypingOfConditionalExpression.js -@@= skipped -16, +16 lines =@@ - - +@@= skipped -18, +18 lines =@@ //// [contextualTypingOfConditionalExpression.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var x = true ? function (a) { return a.toExponential(); } : function (b) { return b.toFixed(); }; --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; --}(A)); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C; --}(A)); --var x2 = true ? function (a) { return a.foo; } : function (b) { return b.foo; }; -+var x = true ? (a) => a.toExponential() : (b) => b.toFixed(); -+class A { + var x = true ? (a) => a.toExponential() : (b) => b.toFixed(); + class A { + foo; -+} -+class B extends A { + } + class B extends A { + bar; -+} -+class C extends A { + } + class C extends A { + baz; -+} -+var x2 = true ? (a) => a.foo : (b) => b.foo; \ No newline at end of file + } + var x2 = true ? (a) => a.foo : (b) => b.foo; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingOfConditionalExpression2.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingOfConditionalExpression2.js.diff index e58b26d41e..b1fc3da969 100644 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingOfConditionalExpression2.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextualTypingOfConditionalExpression2.js.diff @@ -1,51 +1,15 @@ --- old.contextualTypingOfConditionalExpression2.js +++ new.contextualTypingOfConditionalExpression2.js -@@= skipped -14, +14 lines =@@ - +@@= skipped -15, +15 lines =@@ //// [contextualTypingOfConditionalExpression2.js] --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); --var A = /** @class */ (function () { -- function A() { -- } -- return A; --}()); --var B = /** @class */ (function (_super) { -- __extends(B, _super); -- function B() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return B; --}(A)); --var C = /** @class */ (function (_super) { -- __extends(C, _super); -- function C() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return C; --}(A)); --var x2 = true ? function (a) { return a.foo; } : function (b) { }; -+class A { + class A { + foo; -+} -+class B extends A { + } + class B extends A { + bar; -+} -+class C extends A { + } + class C extends A { + baz; -+} -+var x2 = true ? (a) => a.foo : (b) => { }; \ No newline at end of file + } + var x2 = true ? (a) => a.foo : (b) => { }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingOfGenericFunctionTypedArguments1.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingOfGenericFunctionTypedArguments1.js.diff deleted file mode 100644 index bf746fc3c1..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingOfGenericFunctionTypedArguments1.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.contextualTypingOfGenericFunctionTypedArguments1.js -+++ new.contextualTypingOfGenericFunctionTypedArguments1.js -@@= skipped -23, +23 lines =@@ - var c2; - var _; - // errors on all 3 lines, bug was that r5 was the only line with errors --var f = function (x) { return x.toFixed(); }; -+var f = (x) => { return x.toFixed(); }; - var r5 = _.forEach(c2, f); --var r6 = _.forEach(c2, function (x) { return x.toFixed(); }); -+var r6 = _.forEach(c2, (x) => { return x.toFixed(); }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingOfLambdaReturnExpression.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingOfLambdaReturnExpression.js.diff deleted file mode 100644 index b8af392aeb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingOfLambdaReturnExpression.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.contextualTypingOfLambdaReturnExpression.js -+++ new.contextualTypingOfLambdaReturnExpression.js -@@= skipped -9, +9 lines =@@ - - //// [contextualTypingOfLambdaReturnExpression.js] - function callb(a) { } --callb(function (a) { return a.length; }); // Ok, we choose the second overload because the first one gave us an error when trying to resolve the lambda return type --callb(function (a) { a.length; }); // Error, we picked the first overload and errored when type checking the lambda body -+callb((a) => a.length); // Ok, we choose the second overload because the first one gave us an error when trying to resolve the lambda return type -+callb((a) => { a.length; }); // Error, we picked the first overload and errored when type checking the lambda body \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingOfLambdaWithMultipleSignatures.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingOfLambdaWithMultipleSignatures.js.diff deleted file mode 100644 index 9bf1f99c73..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingOfLambdaWithMultipleSignatures.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.contextualTypingOfLambdaWithMultipleSignatures.js -+++ new.contextualTypingOfLambdaWithMultipleSignatures.js -@@= skipped -10, +10 lines =@@ - - //// [contextualTypingOfLambdaWithMultipleSignatures.js] - var foo; --foo.getFoo = function (bar) { }; -+foo.getFoo = bar => { }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingOfLambdaWithMultipleSignatures2.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingOfLambdaWithMultipleSignatures2.js.diff deleted file mode 100644 index ed497757b6..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingOfLambdaWithMultipleSignatures2.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.contextualTypingOfLambdaWithMultipleSignatures2.js -+++ new.contextualTypingOfLambdaWithMultipleSignatures2.js -@@= skipped -9, +9 lines =@@ - - //// [contextualTypingOfLambdaWithMultipleSignatures2.js] - var f; --f = function (a) { return a.asdf; }; -+f = (a) => { return a.asdf; }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingOfObjectLiterals2.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingOfObjectLiterals2.js.diff deleted file mode 100644 index ad996d1ced..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingOfObjectLiterals2.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.contextualTypingOfObjectLiterals2.js -+++ new.contextualTypingOfObjectLiterals2.js -@@= skipped -8, +8 lines =@@ - - //// [contextualTypingOfObjectLiterals2.js] - function f2(args) { } --f2({ foo: function (s) { return s.hmm; } }); // 's' should be 'string', so this should be an error -+f2({ foo: s => s.hmm }); // 's' should be 'string', so this should be an error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingOfOptionalMembers.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingOfOptionalMembers.js.diff deleted file mode 100644 index 4dc9dff73b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingOfOptionalMembers.js.diff +++ /dev/null @@ -1,38 +0,0 @@ ---- old.contextualTypingOfOptionalMembers.js -+++ new.contextualTypingOfOptionalMembers.js -@@= skipped -79, +79 lines =@@ - app({ - state: 100, - actions: { -- foo: function (s) { return s; } // Should be typed number => number -+ foo: s => s // Should be typed number => number - }, -- view: function (s, a) { return undefined; }, -+ view: (s, a) => undefined, - }); --var y = foo({ -- bar: function (x) { -+const y = foo({ -+ bar(x) { - } - }); - app2({ - state: 100, - actions: { -- foo: function (s) { return s; } // Should be typed number => number -+ foo: s => s // Should be typed number => number - }, -- view: function (s, a) { return undefined; }, -+ view: (s, a) => undefined, - }); - app3({ - state: 100, - actions: [ -- function (s) { return s; } // Should be typed number => number -+ s => s // Should be typed number => number - ], -- view: function (s, a) { return undefined; }, -+ view: (s, a) => undefined, - }); --var a = ; // TODO: should be number => number, but JSX resolution is missing an inferential pass -+const a = s}/>; // TODO: should be number => number, but JSX resolution is missing an inferential pass \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingOfTooShortOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingOfTooShortOverloads.js.diff deleted file mode 100644 index 70227f3597..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingOfTooShortOverloads.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.contextualTypingOfTooShortOverloads.js -+++ new.contextualTypingOfTooShortOverloads.js -@@= skipped -54, +54 lines =@@ - //// [contextualTypingOfTooShortOverloads.js] - // small repro from #11875 - var use; --use(function (req, res) { }); -+use((req, res) => { }); - // larger repro from #11875 --var app; --app.use(function (err, req, res, next) { return; }); -+let app; -+app.use((err, req, res, next) => { return; }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingTwoInstancesOfSameTypeParameter.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingTwoInstancesOfSameTypeParameter.js.diff deleted file mode 100644 index 320131ec1f..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingTwoInstancesOfSameTypeParameter.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.contextualTypingTwoInstancesOfSameTypeParameter.js -+++ new.contextualTypingTwoInstancesOfSameTypeParameter.js -@@= skipped -9, +9 lines =@@ - function f6(x) { - return null; - } --f6(function (x) { return f6(function (y) { return x = y; }); }); -+f6(x => f6(y => x = y)); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingWithFixedTypeParameters1.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingWithFixedTypeParameters1.js.diff deleted file mode 100644 index c24026a713..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingWithFixedTypeParameters1.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.contextualTypingWithFixedTypeParameters1.js -+++ new.contextualTypingWithFixedTypeParameters1.js -@@= skipped -6, +6 lines =@@ - - //// [contextualTypingWithFixedTypeParameters1.js] - var f10; --f10('', function () { return function (a) { return a.foo; }; }, ''); // a is "" --var r9 = f10('', function () { return (function (a) { return a.foo; }); }, 1); // error -+f10('', () => a => a.foo, ''); // a is "" -+var r9 = f10('', () => (a => a.foo), 1); // error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingWithGenericAndNonGenericSignature.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingWithGenericAndNonGenericSignature.js.diff deleted file mode 100644 index 28c6347ec2..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingWithGenericAndNonGenericSignature.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.contextualTypingWithGenericAndNonGenericSignature.js -+++ new.contextualTypingWithGenericAndNonGenericSignature.js -@@= skipped -20, +20 lines =@@ - //// [contextualTypingWithGenericAndNonGenericSignature.js] - //• If e is a FunctionExpression or ArrowFunctionExpression with no type parameters and no parameter or return type annotations, and T is a function type with EXACTLY ONE non - generic call signature, then any inferences made for type parameters referenced by the parameters of T’s call signature are fixed(section 4.12.2) and e is processed with the contextual type T, as described in section 4.9.3. - var f2; --f2 = function (x, y) { return x; }; -+f2 = (x, y) => { return x; }; - var f3; --f3 = function (x, y) { return x; }; -+f3 = (x, y) => { return x; }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextualTypingWithGenericSignature.js.diff b/testdata/baselines/reference/submodule/compiler/contextualTypingWithGenericSignature.js.diff deleted file mode 100644 index 7326bd4e3e..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextualTypingWithGenericSignature.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.contextualTypingWithGenericSignature.js -+++ new.contextualTypingWithGenericSignature.js -@@= skipped -11, +11 lines =@@ - //// [contextualTypingWithGenericSignature.js] - // If e is a FunctionExpression or ArrowFunctionExpression with no type parameters and no parameter or return type annotations, and T is a function type with EXACTLY ONE non - generic call signature, then any inferences made for type parameters referenced by the parameters of T’s call signature are fixed(section 4.12.2) and e is processed with the contextual type T, as described in section 4.9.3. - var f2; --f2 = function (x, y) { return x; }; -+f2 = (x, y) => { return x; }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js.diff b/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js.diff index 9b359fb774..66d0d46f9e 100644 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contextuallyTypedBooleanLiterals.js.diff @@ -6,16 +6,10 @@ //// [contextuallyTypedBooleanLiterals.js] -"use strict"; -// Repro from #48363 --var bn1 = box(0); // Box --var bn2 = box(0); // Ok --var bb1 = box(false); // Box --var bb2 = box(false); // Error, box not assignable to Box --var x = observable(false); -+const bn1 = box(0); // Box -+const bn2 = box(0); // Ok -+const bb1 = box(false); // Box -+const bb2 = box(false); // Error, box not assignable to Box -+const x = observable(false); + const bn1 = box(0); // Box + const bn2 = box(0); // Ok + const bb1 = box(false); // Box +@@= skipped -10, +8 lines =@@ //// [contextuallyTypedBooleanLiterals.d.ts] diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypedByDiscriminableUnion.js.diff b/testdata/baselines/reference/submodule/compiler/contextuallyTypedByDiscriminableUnion.js.diff deleted file mode 100644 index 61db49d6eb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypedByDiscriminableUnion.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.contextuallyTypedByDiscriminableUnion.js -+++ new.contextuallyTypedByDiscriminableUnion.js -@@= skipped -45, +45 lines =@@ - } - invoke({ - kind: "a", -- method: function (a) { -+ method(a) { - return +a; - } - }); --var kind = "a"; -+const kind = "a"; - invoke({ -- kind: kind, -- method: function (a) { -+ kind, -+ method(a) { - return +a; - } - }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypedGenericAssignment.js.diff b/testdata/baselines/reference/submodule/compiler/contextuallyTypedGenericAssignment.js.diff deleted file mode 100644 index 4ff773227d..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypedGenericAssignment.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.contextuallyTypedGenericAssignment.js -+++ new.contextuallyTypedGenericAssignment.js -@@= skipped -8, +8 lines =@@ - - //// [contextuallyTypedGenericAssignment.js] - function foo(arg) { } --foo(function (t, u) { return t.a; }); -+foo((t, u) => t.a); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypedJsxAttribute.js.diff b/testdata/baselines/reference/submodule/compiler/contextuallyTypedJsxAttribute.js.diff deleted file mode 100644 index 5b212b0fc6..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypedJsxAttribute.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.contextuallyTypedJsxAttribute.js -+++ new.contextuallyTypedJsxAttribute.js -@@= skipped -25, +25 lines =@@ - - - //// [index.jsx] --; -+ { }}/>; - Test({ - as: "bar", -- callback: function (value) { }, -+ callback: (value) => { }, - }); --; -+ { }}/>; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypedParametersWithInitializers1.js.diff b/testdata/baselines/reference/submodule/compiler/contextuallyTypedParametersWithInitializers1.js.diff deleted file mode 100644 index 59b72d9c27..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypedParametersWithInitializers1.js.diff +++ /dev/null @@ -1,192 +0,0 @@ ---- old.contextuallyTypedParametersWithInitializers1.js -+++ new.contextuallyTypedParametersWithInitializers1.js -@@= skipped -89, +89 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.executeSomething = executeSomething; --var f10 = function (_a) { -- var _b = _a.foo, foo = _b === void 0 ? 42 : _b; -- return foo; --}; --var f11 = id1(function (_a) { -- var _b = _a.foo, foo = _b === void 0 ? 42 : _b; -- return foo; --}); --var f12 = id2(function (_a) { -- var _b = _a.foo, foo = _b === void 0 ? 42 : _b; -- return foo; --}); --var f13 = id3(function (_a) { -- var _b = _a.foo, foo = _b === void 0 ? 42 : _b; -- return foo; --}); --var f14 = id4(function (_a) { -- var _b = _a.foo, foo = _b === void 0 ? 42 : _b; -- return foo; --}); --var f20 = function (foo) { -- if (foo === void 0) { foo = 42; } -- return foo; --}; --var f21 = id1(function (foo) { -- if (foo === void 0) { foo = 42; } -- return foo; --}); --var f22 = id2(function (foo) { -- if (foo === void 0) { foo = 42; } -- return foo; --}); --var f25 = id5(function (foo) { -- if (foo === void 0) { foo = 42; } -- return foo; --}); --var f1 = function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}; // number --var f2 = function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}; // number --var f3 = function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}; // number --var f4 = function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}; // number --var f5 = function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}; // any --var f6 = function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}; // number --var f7 = function (x) { return 0; }; // Implicit any error --var f8 = function () { -- var x = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- x[_i] = arguments[_i]; -- } -- return 0; --}; // [] --g1(function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}); // number --g2(function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}); // number --g3(function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}); // number --g4(function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}); // number --g5(function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}); // any --g6(function (x) { -- if (x === void 0) { x = 1; } -- return 0; --}); // number --g6(function (x) { return 0; }); // Implicit any error --g6(function () { -- var x = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- x[_i] = arguments[_i]; -- } -- return 0; --}); // [] -+const f10 = function ({ foo = 42 }) { return foo; }; -+const f11 = id1(function ({ foo = 42 }) { return foo; }); -+const f12 = id2(function ({ foo = 42 }) { return foo; }); -+const f13 = id3(function ({ foo = 42 }) { return foo; }); -+const f14 = id4(function ({ foo = 42 }) { return foo; }); -+const f20 = function (foo = 42) { return foo; }; -+const f21 = id1(function (foo = 42) { return foo; }); -+const f22 = id2(function (foo = 42) { return foo; }); -+const f25 = id5(function (foo = 42) { return foo; }); -+const f1 = (x = 1) => 0; // number -+const f2 = (x = 1) => 0; // number -+const f3 = (x = 1) => 0; // number -+const f4 = (x = 1) => 0; // number -+const f5 = (x = 1) => 0; // any -+const f6 = (x = 1) => 0; // number -+const f7 = (x) => 0; // Implicit any error -+const f8 = (...x) => 0; // [] -+g1((x = 1) => 0); // number -+g2((x = 1) => 0); // number -+g3((x = 1) => 0); // number -+g4((x = 1) => 0); // number -+g5((x = 1) => 0); // any -+g6((x = 1) => 0); // number -+g6((x) => 0); // Implicit any error -+g6((...x) => 0); // [] - // Repro from #28816 - function id(input) { return input; } --function getFoo(_a) { -- var _b = _a.foo, foo = _b === void 0 ? 42 : _b; -- return foo; --} --var newGetFoo = id(getFoo); --var newGetFoo2 = id(function getFoo(_a) { -- var _b = _a.foo, foo = _b === void 0 ? 42 : _b; -- return foo; --}); --function add(x, y) { -- if (y === void 0) { y = 0; } -- return x + y; --} --var memoizedAdd = memoize(add); --var add2 = function (x, y) { -- if (y === void 0) { y = 0; } -- return x + y; --}; --var memoizedAdd2 = memoize(add2); --var memoizedAdd3 = memoize(function (x, y) { -- if (y === void 0) { y = 0; } -- return x + y; --}); -+function getFoo({ foo = 42 }) { -+ return foo; -+} -+const newGetFoo = id(getFoo); -+const newGetFoo2 = id(function getFoo({ foo = 42 }) { -+ return foo; -+}); -+function add(x, y = 0) { -+ return x + y; -+} -+const memoizedAdd = memoize(add); -+const add2 = (x, y = 0) => x + y; -+const memoizedAdd2 = memoize(add2); -+const memoizedAdd3 = memoize((x, y = 0) => x + y); - function executeSomething() { -- return execute(function (root, debug) { -- if (debug === void 0) { debug = true; } -+ return execute((root, debug = true) => { - if (debug) { - root.innerHTML = ''; - } - }); - } --var fz1 = function (debug) { -- if (debug === void 0) { debug = true; } -- return false; --}; --var fz2 = function (debug) { -- if (debug === void 0) { debug = true; } -- return false; --}; -+const fz1 = (debug = true) => false; -+const fz2 = (debug = true) => false; - - - //// [contextuallyTypedParametersWithInitializers1.d.ts] \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypingOrOperator.js.diff b/testdata/baselines/reference/submodule/compiler/contextuallyTypingOrOperator.js.diff deleted file mode 100644 index a7f5a991e4..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypingOrOperator.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.contextuallyTypingOrOperator.js -+++ new.contextuallyTypingOrOperator.js -@@= skipped -8, +8 lines =@@ - var v4 = (s: number) => 1 || function (s: string) { return s.length }; - - //// [contextuallyTypingOrOperator.js] --var v = { a: function (s) { return s.length; } } || { a: function (s) { return 1; } }; --var v2 = function (s) { return s.length || function (s) { s.length; }; }; --var v3 = function (s) { return s.length || function (s) { return 1; }; }; --var v4 = function (s) { return 1 || function (s) { return s.length; }; }; -+var v = { a: s => s.length } || { a: s => 1 }; -+var v2 = (s) => s.length || function (s) { s.length; }; -+var v3 = (s) => s.length || function (s) { return 1; }; -+var v4 = (s) => 1 || function (s) { return s.length; }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypingOrOperator2.js.diff b/testdata/baselines/reference/submodule/compiler/contextuallyTypingOrOperator2.js.diff deleted file mode 100644 index 19909ec855..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypingOrOperator2.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.contextuallyTypingOrOperator2.js -+++ new.contextuallyTypingOrOperator2.js -@@= skipped -5, +5 lines =@@ - var v2 = (s: string) => s.length || function (s) { s.aaa }; - - //// [contextuallyTypingOrOperator2.js] --var v = { a: function (s) { return s.length; } } || { a: function (s) { return 1; } }; --var v2 = function (s) { return s.length || function (s) { s.aaa; }; }; -+var v = { a: s => s.length } || { a: s => 1 }; -+var v2 = (s) => s.length || function (s) { s.aaa; }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contextuallyTypingRestParameters.js.diff b/testdata/baselines/reference/submodule/compiler/contextuallyTypingRestParameters.js.diff deleted file mode 100644 index 2d9e521d9c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/contextuallyTypingRestParameters.js.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- old.contextuallyTypingRestParameters.js -+++ new.contextuallyTypingRestParameters.js -@@= skipped -9, +9 lines =@@ - }; - - //// [contextuallyTypingRestParameters.js] --var x = function () { -- var y = []; -- for (var _i = 0; _i < arguments.length; _i++) { -- y[_i] = arguments[_i]; -- } -+var x = function (... /*3*/y) { - var t = y; - var x2 = t; // This should be error - var x3 = t; // No error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/continueInLoopsWithCapturedBlockScopedBindings1.js.diff b/testdata/baselines/reference/submodule/compiler/continueInLoopsWithCapturedBlockScopedBindings1.js.diff deleted file mode 100644 index 1d5879c6c3..0000000000 --- a/testdata/baselines/reference/submodule/compiler/continueInLoopsWithCapturedBlockScopedBindings1.js.diff +++ /dev/null @@ -1,23 +0,0 @@ ---- old.continueInLoopsWithCapturedBlockScopedBindings1.js -+++ new.continueInLoopsWithCapturedBlockScopedBindings1.js -@@= skipped -15, +15 lines =@@ - - //// [continueInLoopsWithCapturedBlockScopedBindings1.js] - function foo() { -- var _loop_1 = function (i) { -+ for (const i of [0, 1]) { - if (i === 0) { -- return "continue"; -+ continue; - } - // Trigger non-simple-loop emit -- (function () { -+ (() => { - return i; - })(); -- }; -- for (var _i = 0, _a = [0, 1]; _i < _a.length; _i++) { -- var i = _a[_i]; -- _loop_1(i); - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/continueNotInIterationStatement4.js.diff b/testdata/baselines/reference/submodule/compiler/continueNotInIterationStatement4.js.diff deleted file mode 100644 index 78606dc109..0000000000 --- a/testdata/baselines/reference/submodule/compiler/continueNotInIterationStatement4.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.continueNotInIterationStatement4.js -+++ new.continueNotInIterationStatement4.js -@@= skipped -10, +10 lines =@@ - - //// [continueNotInIterationStatement4.js] - TWO: while (true) { -- var x = function () { -+ var x = () => { - continue TWO; - }; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/contravariantInferenceAndTypeGuard.js.diff b/testdata/baselines/reference/submodule/compiler/contravariantInferenceAndTypeGuard.js.diff index 0e310ae4bc..34ab385ad2 100644 --- a/testdata/baselines/reference/submodule/compiler/contravariantInferenceAndTypeGuard.js.diff +++ b/testdata/baselines/reference/submodule/compiler/contravariantInferenceAndTypeGuard.js.diff @@ -5,15 +5,6 @@ //// [contravariantInferenceAndTypeGuard.js] -"use strict"; --var list2 = new List(); --var filter1 = list2.filter(function (item, node, list) { -+const list2 = new List(); -+const filter1 = list2.filter(function (item, node, list) { - this.b; // $ExpectType string - item; // $ExpectType Test | null - node; // $ExpectType ListItem - list; // $ExpectType List - return !!item; - }, { b: 'c' }); --var x = filter1; // $ExpectType List -+const x = filter1; // $ExpectType List \ No newline at end of file + const list2 = new List(); + const filter1 = list2.filter(function (item, node, list) { + this.b; // $ExpectType string \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowAliasedDiscriminants.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowAliasedDiscriminants.js.diff index 43e1c7b7be..0b0f8e4b9d 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowAliasedDiscriminants.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowAliasedDiscriminants.js.diff @@ -7,107 +7,4 @@ -"use strict"; function useQuery() { return { - isSuccess: false, - data: undefined, - }; - } --var _a = useQuery(), data1 = _a.data, isSuccess1 = _a.isSuccess; --var _b = useQuery(), data2 = _b.data, isSuccess2 = _b.isSuccess; --var _c = useQuery(), data3 = _c.data, isSuccess3 = _c.isSuccess; -+const { data: data1, isSuccess: isSuccess1 } = useQuery(); -+const { data: data2, isSuccess: isSuccess2 } = useQuery(); -+const { data: data3, isSuccess: isSuccess3 } = useQuery(); - if (isSuccess1 && isSuccess2 && isSuccess3) { - data1.toExponential(); // should ok - data2.toExponential(); // should ok - data3.toExponential(); // should ok - } --var areSuccess = isSuccess1 && isSuccess2 && isSuccess3; -+const areSuccess = isSuccess1 && isSuccess2 && isSuccess3; - if (areSuccess) { - data1.toExponential(); // should ok - data2.toExponential(); // should ok - data3.toExponential(); // should ok - } - { -- var _d = useQuery(), data1_1 = _d.data, isSuccess1_1 = _d.isSuccess; -- var _e = useQuery(), data2_1 = _e.data, isSuccess2_1 = _e.isSuccess; -- var _f = useQuery(), data3_1 = _f.data, isSuccess3_1 = _f.isSuccess; -- var areSuccess_1 = isSuccess1_1 && isSuccess2_1 && isSuccess3_1; -- if (areSuccess_1) { -- data1_1.toExponential(); // should error -- data2_1.toExponential(); // should error -- data3_1.toExponential(); // should ok -+ let { data: data1, isSuccess: isSuccess1 } = useQuery(); -+ let { data: data2, isSuccess: isSuccess2 } = useQuery(); -+ const { data: data3, isSuccess: isSuccess3 } = useQuery(); -+ const areSuccess = isSuccess1 && isSuccess2 && isSuccess3; -+ if (areSuccess) { -+ data1.toExponential(); // should error -+ data2.toExponential(); // should error -+ data3.toExponential(); // should ok - } - } - { -- var _g = getArrayResult(), foo1 = _g[0], bar1 = _g[1]; -- var _h = getArrayResult(), foo2 = _h[0], bar2 = _h[1]; -- var _j = getArrayResult(), foo3 = _j[0], bar3 = _j[1]; -- var arrayAllSuccess = foo1 && foo2 && foo3; -+ const [foo1, bar1] = getArrayResult(); -+ const [foo2, bar2] = getArrayResult(); -+ const [foo3, bar3] = getArrayResult(); -+ const arrayAllSuccess = foo1 && foo2 && foo3; - if (arrayAllSuccess) { - bar1.toExponential(); // should ok - bar2.toExponential(); // should ok -@@= skipped -44, +43 lines =@@ - } - } - { -- var _k = getArrayResult(), foo1 = _k[0], bar1 = _k[1]; -- var _l = getArrayResult(), foo2 = _l[0], bar2 = _l[1]; -- var _m = getArrayResult(), foo3 = _m[0], bar3 = _m[1]; -- var arrayAllSuccess = foo1 && foo2 && foo3; -+ const [foo1, bar1] = getArrayResult(); -+ let [foo2, bar2] = getArrayResult(); -+ let [foo3, bar3] = getArrayResult(); -+ const arrayAllSuccess = foo1 && foo2 && foo3; - if (arrayAllSuccess) { - bar1.toExponential(); // should ok - bar2.toExponential(); // should error -@@= skipped -11, +11 lines =@@ - } - } - { -- var resp = void 0; -- var data = resp.resp.data, type = resp.type; -+ let resp; -+ const { resp: { data }, type } = resp; - if (type === 'string') { - data; - } -@@= skipped -10, +10 lines =@@ - } - } - { -- var resp = void 0; -- var dataAlias = resp.resp.data, type = resp.type; -+ let resp; -+ const { resp: { data: dataAlias }, type } = resp; - if (type === 'string') { - dataAlias; - } -@@= skipped -9, +9 lines =@@ - resp.resp.data; - } - } --function bindingPatternInParameter(_a) { -- var data1 = _a.data, isSuccess1 = _a.isSuccess; -- var _b = useQuery(), data2 = _b.data, isSuccess2 = _b.isSuccess; -- var areSuccess = isSuccess1 && isSuccess2; -+function bindingPatternInParameter({ data: data1, isSuccess: isSuccess1 }) { -+ const { data: data2, isSuccess: isSuccess2 } = useQuery(); -+ const areSuccess = isSuccess1 && isSuccess2; - if (areSuccess) { - data1.toExponential(); - data2.toExponential(); \ No newline at end of file + isSuccess: false, \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowAnalysisOnBareThisKeyword.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowAnalysisOnBareThisKeyword.js.diff index 38ba521041..3f3cc51104 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowAnalysisOnBareThisKeyword.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowAnalysisOnBareThisKeyword.js.diff @@ -7,12 +7,4 @@ -"use strict"; function bigger() { if (isBig(this)) { - this.big; // Expect property to exist -@@= skipped -8, +7 lines =@@ - } - function bar() { - if (typeof this === "string") { -- var x = this; -+ const x = this; - } - } \ No newline at end of file + this.big; // Expect property to exist \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowArrayErrors.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowArrayErrors.js.diff deleted file mode 100644 index 4c5be29539..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowArrayErrors.js.diff +++ /dev/null @@ -1,67 +0,0 @@ ---- old.controlFlowArrayErrors.js -+++ new.controlFlowArrayErrors.js -@@= skipped -68, +68 lines =@@ - - //// [controlFlowArrayErrors.js] - function f1() { -- var x = []; // Implicit any[] error in some locations -- var y = x; // Implicit any[] error -+ let x = []; // Implicit any[] error in some locations -+ let y = x; // Implicit any[] error - x.push(5); -- var z = x; -+ let z = x; - } - function f2() { -- var x; // Implicit any[] error in some locations -+ let x; // Implicit any[] error in some locations - x = []; -- var y = x; // Implicit any[] error -+ let y = x; // Implicit any[] error - x.push(5); -- var z = x; -+ let z = x; - } - function f3() { -- var x = []; // Implicit any[] error in some locations -+ let x = []; // Implicit any[] error in some locations - x.push(5); - function g() { - x; // Implicit any[] error - } - } - function f4() { -- var x; -+ let x; - x = [5, "hello"]; // Non-evolving array - x.push(true); // Error - } - function f5() { -- var x = [5, "hello"]; // Non-evolving array -+ let x = [5, "hello"]; // Non-evolving array - x.push(true); // Error - } - function f6() { -- var x; -+ let x; - if (cond()) { - x = []; - x.push(5); -@@= skipped -42, +42 lines =@@ - x.push(99); // Error - } - function f7() { -- var x = []; // x has evolving array value -+ let x = []; // x has evolving array value - x.push(5); -- var y = x; // y has non-evolving array value -+ let y = x; // y has non-evolving array value - x.push("hello"); // Ok - y.push("hello"); // Error - } - function f8() { -- var x = []; // Implicit any[] error in some locations -+ const x = []; // Implicit any[] error in some locations - x.push(5); - function g() { - x; // Implicit any[] error \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowArrays.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowArrays.js.diff deleted file mode 100644 index 63d64ac711..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowArrays.js.diff +++ /dev/null @@ -1,155 +0,0 @@ ---- old.controlFlowArrays.js -+++ new.controlFlowArrays.js -@@= skipped -190, +190 lines =@@ - - //// [controlFlowArrays.js] - function f1() { -- var x = []; -+ let x = []; - x[0] = 5; - x[1] = "hello"; - x[2] = true; - return x; // (string | number | boolean)[] - } - function f2() { -- var x = []; -+ let x = []; - x.push(5); - x.push("hello"); - x.push(true); - return x; // (string | number | boolean)[] - } - function f3() { -- var x; -+ let x; - x = []; - x.push(5, "hello"); - return x; // (string | number)[] - } - function f4() { -- var x = []; -+ let x = []; - if (cond()) { - x.push(5); - } -@@= skipped -30, +30 lines =@@ - return x; // (string | number)[] - } - function f5() { -- var x; -+ let x; - if (cond()) { - x = []; - x.push(5); -@@= skipped -12, +12 lines =@@ - return x; // (string | number)[] - } - function f6() { -- var x; -+ let x; - if (cond()) { - x = 5; - } -@@= skipped -11, +11 lines =@@ - return x; // number | string[] - } - function f7() { -- var x = null; -+ let x = null; - if (cond()) { - x = []; - while (cond()) { -@@= skipped -10, +10 lines =@@ - return x; // string[] | null - } - function f8() { -- var x = []; -+ let x = []; - x.push(5); - if (cond()) - return x; // number[] -@@= skipped -11, +11 lines =@@ - return x; // (string | number | boolean)[] - } - function f9() { -- var x = []; -+ let x = []; - if (cond()) { - x.push(5); - return x; // number[] -@@= skipped -11, +11 lines =@@ - } - } - function f10() { -- var x = []; -+ let x = []; - if (cond()) { - x.push(true); - x; // boolean[] -@@= skipped -17, +17 lines =@@ - return x; // (string | number | boolean)[] - } - function f11() { -- var x = []; -+ let x = []; - if (x.length === 0) { // x.length ok on implicit any[] - x.push("hello"); - } - return x; - } - function f12() { -- var x; -+ let x; - x = []; - if (x.length === 0) { // x.length ok on implicit any[] - x.push("hello"); -@@= skipped -22, +22 lines =@@ - return x; // (string | number | boolean)[] - } - function f14() { -- var x = []; -+ const x = []; - x.push(5); - x.push("hello"); - x.push(true); - return x; // (string | number | boolean)[] - } - function f15() { -- var x = []; -+ let x = []; - while (cond()) { - while (cond()) { } - x.push("hello"); -@@= skipped -15, +15 lines =@@ - return x; // string[] - } - function f16() { -- var x; -- var y; -+ let x; -+ let y; - (x = [], x).push(5); - (x.push("hello"), x).push(true); - ((x))[3] = { a: 1 }; - return x; // (string | number | boolean | { a: number })[] - } - function f17() { -- var x = []; -+ let x = []; - x.unshift(5); - x.unshift("hello"); - x.unshift(true); - return x; // (string | number | boolean)[] - } - function f18() { -- var x = []; -+ let x = []; - x.push(5); - x.unshift("hello"); - x[2] = true; - return x; // (string | number | boolean)[] - } --var arr = []; -+let arr = []; - arr.push({ val: 1, bar: 2 }); - foo(arr); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowBreakContinueWithLabel.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowBreakContinueWithLabel.js.diff index 35a7584815..c7f07f7901 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowBreakContinueWithLabel.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowBreakContinueWithLabel.js.diff @@ -7,11 +7,4 @@ -"use strict"; var User; (function (User) { - User[User["A"] = 0] = "A"; - User[User["B"] = 1] = "B"; - })(User || (User = {})); --var user = User.A; -+let user = User.A; - label: while (true) { - switch (user) { - case User.A: \ No newline at end of file + User[User["A"] = 0] = "A"; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowCaching.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowCaching.js.diff deleted file mode 100644 index ad90d780f5..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowCaching.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.controlFlowCaching.js -+++ new.controlFlowCaching.js -@@= skipped -116, +116 lines =@@ - labelOffset.y -= size; - break; - } -- var _ = rotation; -+ let _ = rotation; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionWithinTernary.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionWithinTernary.js.diff index b025e4912d..759213b84b 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionWithinTernary.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionAssertionWithinTernary.js.diff @@ -6,8 +6,5 @@ //// [controlFlowCommaExpressionAssertionWithinTernary.js] -"use strict"; function foo2(param) { -- var val = param !== undefined; -+ const val = param !== undefined; - return val ? (assert(param !== undefined), param) : null; - // ^^^^^ Still typed as number | null | undefined - } \ No newline at end of file + const val = param !== undefined; + return val ? (assert(param !== undefined), param) : null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionFunctionCall.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionFunctionCall.js.diff deleted file mode 100644 index 7214df0ded..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowCommaExpressionFunctionCall.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.controlFlowCommaExpressionFunctionCall.js -+++ new.controlFlowCommaExpressionFunctionCall.js -@@= skipped -13, +13 lines =@@ - } - - //// [controlFlowCommaExpressionFunctionCall.js] --var otherValue = function () { return true; }; --var value = null; -+const otherValue = () => true; -+const value = null; - function isNumber(obj) { - return true; // method implementation irrelevant - } - // Bad case - fails - if (isNumber((otherValue(), value))) { -- var b = value; // string | number , but should be number -+ const b = value; // string | number , but should be number - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringLoop.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringLoop.js.diff index a879f7416c..69009d6440 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringLoop.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringLoop.js.diff @@ -8,19 +8,4 @@ -// Repro from #28758 function isNumVal(x) { return typeof x.val === 'number'; - } - function foo(things) { -- for (var _i = 0, things_1 = things; _i < things_1.length; _i++) { -- var thing = things_1[_i]; -+ for (const thing of things) { - if (isNumVal(thing)) { -- var val = thing.val; -+ const { val } = thing; - val.toFixed(2); - } - else { -- var val = thing.val; -+ const { val } = thing; - val.length; - } - } \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringParameters.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringParameters.js.diff deleted file mode 100644 index 6027fefa31..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringParameters.js.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.controlFlowDestructuringParameters.js -+++ new.controlFlowDestructuringParameters.js -@@= skipped -10, +10 lines =@@ - - //// [controlFlowDestructuringParameters.js] - // Repro for #8376 --[{ x: 1 }].map(function (_a) { -- var x = _a.x; -- return x; --}); -+[{ x: 1 }].map(({ x }) => x); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringVariablesInTryCatch.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringVariablesInTryCatch.js.diff index 9bedd868d4..c2ece0ab7c 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringVariablesInTryCatch.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowDestructuringVariablesInTryCatch.js.diff @@ -7,16 +7,12 @@ -"use strict"; try { var a = f1(); -- var b = f2()[0]; -- var c = f3().c; -- var _a = [][0], d = _a === void 0 ? 1 : _a; -- var _b = {}.e, e = _b === void 0 ? 1 : _b; -+ var [b] = f2(); -+ var { c } = f3(); -+ var [d = 1] = []; -+ var { e = 1 } = {}; + var [b] = f2(); +@@= skipped -8, +7 lines =@@ + var [d = 1] = []; + var { e = 1 } = {}; } --catch (_c) { +-catch (_a) { +catch { console.error("error"); } diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowFinallyNoCatchAssignments.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowFinallyNoCatchAssignments.js.diff index a509f19911..d7f5ee37b4 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowFinallyNoCatchAssignments.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowFinallyNoCatchAssignments.js.diff @@ -5,11 +5,6 @@ //// [controlFlowFinallyNoCatchAssignments.js] -"use strict"; --var x; -+let x; + let x; x = Math.random(); --var a; -+let a; - try { - if (x) { - a = 1; \ No newline at end of file + let a; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowForCatchAndFinally.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowForCatchAndFinally.js.diff index 36620d75e5..e59a5d6292 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowForCatchAndFinally.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowForCatchAndFinally.js.diff @@ -14,68 +14,24 @@ - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; -- } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -- } --}; -function test() { -- return __awaiter(this, void 0, void 0, function () { -- var browser, page; -- return __generator(this, function (_a) { -- switch (_a.label) { -- case 0: -- browser = undefined; -- page = undefined; -- _a.label = 1; -- case 1: -- _a.trys.push([1, , 5, 10]); -- return [4 /*yield*/, test1()]; -- case 2: -- browser = _a.sent(); -- return [4 /*yield*/, test2(browser)]; -- case 3: -- page = _a.sent(); -- return [4 /*yield*/, page.content()]; -- case 4: return [2 /*return*/, _a.sent()]; -- case 5: -- if (!page) return [3 /*break*/, 7]; -- return [4 /*yield*/, page.close()]; -- case 6: -- _a.sent(); // ok -- _a.label = 7; -- case 7: -- if (!browser) return [3 /*break*/, 9]; -- return [4 /*yield*/, browser.close()]; -- case 8: -- _a.sent(); // ok -- _a.label = 9; -- case 9: return [7 /*endfinally*/]; -- case 10: return [2 /*return*/]; +- return __awaiter(this, void 0, void 0, function* () { +- let browser = undefined; +- let page = undefined; +- try { +- browser = yield test1(); +- page = yield test2(browser); +- return yield page.content(); +- ; +- } +- finally { +- if (page) { +- yield page.close(); // ok - } -- }); +- if (browser) { +- yield browser.close(); // ok +- } +- } - }); +async function test() { + let browser = undefined; @@ -96,10 +52,12 @@ + } } ; --var Foo = /** @class */ (function () { -- function Foo() { + class Foo { +- constructor() { - this.abortController = undefined; -+class Foo { +- } +- operation() { +- return __awaiter(this, void 0, void 0, function* () { + abortController = undefined; + async operation() { + if (this.abortController !== undefined) { @@ -110,30 +68,21 @@ + this.abortController = new Aborter(); + } + catch (error) { -+ if (this.abortController !== undefined) { + if (this.abortController !== undefined) { +- this.abortController.abort(); +- this.abortController = undefined; +- } +- try { +- this.abortController = new Aborter(); +- } +- catch (error) { +- if (this.abortController !== undefined) { +- this.abortController.abort(); // ok +- } +- } +- }); + this.abortController.abort(); // ok + } + } } -- Foo.prototype.operation = function () { -- return __awaiter(this, void 0, void 0, function () { -- return __generator(this, function (_a) { -- if (this.abortController !== undefined) { -- this.abortController.abort(); -- this.abortController = undefined; -- } -- try { -- this.abortController = new Aborter(); -- } -- catch (error) { -- if (this.abortController !== undefined) { -- this.abortController.abort(); // ok -- } -- } -- return [2 /*return*/]; -- }); -- }); -- }; -- return Foo; --}()); -+} \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowForCompoundAssignmentToThisMember.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowForCompoundAssignmentToThisMember.js.diff index 83c4991c16..4073314dd8 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowForCompoundAssignmentToThisMember.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowForCompoundAssignmentToThisMember.js.diff @@ -1,23 +1,12 @@ --- old.controlFlowForCompoundAssignmentToThisMember.js +++ new.controlFlowForCompoundAssignmentToThisMember.js -@@= skipped -20, +20 lines =@@ - } +@@= skipped -21, +21 lines =@@ //// [controlFlowForCompoundAssignmentToThisMember.js] --var DatasourceCommandWidgetElement = /** @class */ (function () { -- function DatasourceCommandWidgetElement(target) { -+class DatasourceCommandWidgetElement { + class DatasourceCommandWidgetElement { + _commandBased; + _commandElement; + commandElement; -+ constructor(target) { + constructor(target) { if (target instanceof DatasourceCommandWidgetElement) { - this._commandBased = true; - this._commandElement = target.commandElement; -@@= skipped -13, +16 lines =@@ - this._commandElement = target.commandElement; - } - } -- return DatasourceCommandWidgetElement; --}()); -+} \ No newline at end of file + this._commandBased = true; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowForIndexSignatures.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowForIndexSignatures.js.diff deleted file mode 100644 index 01cdf514e6..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowForIndexSignatures.js.diff +++ /dev/null @@ -1,27 +0,0 @@ ---- old.controlFlowForIndexSignatures.js -+++ new.controlFlowForIndexSignatures.js -@@= skipped -24, +24 lines =@@ - - - //// [controlFlowForIndexSignatures.js] --var boo = { bar: 'bar' }; -+const boo = { bar: 'bar' }; - function a(aboo1) { - if (!aboo1) - return; -- var aboo2 = boo; -+ const aboo2 = boo; - } - if (b) { -- var bboo_1 = boo; -+ const bboo = boo; - } - b = boo; --var bboo = boo; -+const bboo = boo; - if (typeof c === 'string') { -- var boo1 = { bar: 'works' }; -- var boo2 = { bar: 1 }; // should error -+ const boo1 = { bar: 'works' }; -+ const boo2 = { bar: 1 }; // should error - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowInitializedDestructuringVariables.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowInitializedDestructuringVariables.js.diff index 16a8d180a1..53de216b59 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowInitializedDestructuringVariables.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowInitializedDestructuringVariables.js.diff @@ -5,5 +5,4 @@ //// [controlFlowInitializedDestructuringVariables.js] -"use strict"; --var _a = obj.a, a = _a === void 0 ? "0" : _a, _b = obj.b, b = _b === void 0 ? +a : _b; -+const { a = "0", b = +a, } = obj; \ No newline at end of file + const { a = "0", b = +a, } = obj; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowLoopAnalysis.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowLoopAnalysis.js.diff deleted file mode 100644 index 42a026b71c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowLoopAnalysis.js.diff +++ /dev/null @@ -1,37 +0,0 @@ ---- old.controlFlowLoopAnalysis.js -+++ new.controlFlowLoopAnalysis.js -@@= skipped -52, +52 lines =@@ - - //// [controlFlowLoopAnalysis.js] - // Repro from #8418 --var cond; -+let cond; - function foo(x) { return 1; } - function test1() { -- var x; -+ let x; - while (cond) { - while (cond) { - while (cond) { -@@= skipped -15, +15 lines =@@ - } - // Repro from #8418 - function test2() { -- var x; -+ let x; - x = 1; - while (cond) { - while (cond) { -@@= skipped -10, +10 lines =@@ - } - // Repro from #8511 - function mapUntilCant(values, canTake, mapping) { -- var result = []; -- for (var index = 0, length_1 = values.length; index < length_1; index++) { -- var value = values[index]; -+ let result = []; -+ for (let index = 0, length = values.length; index < length; index++) { -+ let value = values[index]; - if (canTake(value, index)) { - result.push(mapping(value, index)); - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowManyCallExpressionStatementsPerf.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowManyCallExpressionStatementsPerf.js.diff index daa1a376a2..bd2f24bb1d 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowManyCallExpressionStatementsPerf.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowManyCallExpressionStatementsPerf.js.diff @@ -6,8 +6,5 @@ //// [controlFlowManyCallExpressionStatementsPerf.js] -"use strict"; function test(x) { return x; } --var state = true; -+let state = true; - if (state) { - test(state && state); - test(state && state); \ No newline at end of file + let state = true; + if (state) { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowManyConsecutiveConditionsNoTimeout.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowManyConsecutiveConditionsNoTimeout.js.diff deleted file mode 100644 index 225af35e2c..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowManyConsecutiveConditionsNoTimeout.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.controlFlowManyConsecutiveConditionsNoTimeout.js -+++ new.controlFlowManyConsecutiveConditionsNoTimeout.js -@@= skipped -142, +142 lines =@@ - Choice[Choice["One"] = 0] = "One"; - Choice[Choice["Two"] = 1] = "Two"; - })(Choice || (exports.Choice = Choice = {})); --var choice = Choice.One; --var choiceOne = Choice.One; -+const choice = Choice.One; -+const choiceOne = Choice.One; - if (choice === choiceOne) { } - if (choice === choiceOne) { } - if (choice === choiceOne) { } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowNoImplicitAny.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowNoImplicitAny.js.diff deleted file mode 100644 index 1b4e39b310..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowNoImplicitAny.js.diff +++ /dev/null @@ -1,127 +0,0 @@ ---- old.controlFlowNoImplicitAny.js -+++ new.controlFlowNoImplicitAny.js -@@= skipped -131, +131 lines =@@ - //// [controlFlowNoImplicitAny.js] - // CFA for 'let' with no type annotation and initializer - function f1() { -- var x; -+ let x; - if (cond) { - x = 1; - } - if (cond) { - x = "hello"; - } -- var y = x; // string | number | undefined -+ const y = x; // string | number | undefined - } - // CFA for 'let' with no type annotation and 'undefined' initializer - function f2() { -- var x = undefined; -+ let x = undefined; - if (cond) { - x = 1; - } - if (cond) { - x = "hello"; - } -- var y = x; // string | number | undefined -+ const y = x; // string | number | undefined - } - // CFA for 'let' with no type annotation and 'null' initializer - function f3() { -- var x = null; -+ let x = null; - if (cond) { - x = 1; - } - if (cond) { - x = "hello"; - } -- var y = x; // string | number | null -+ const y = x; // string | number | null - } - // No CFA for 'let' with with type annotation - function f4() { -- var x; -+ let x; - if (cond) { - x = 1; - } - if (cond) { - x = "hello"; - } -- var y = x; // any -+ const y = x; // any - } - // CFA for 'var' with no type annotation and initializer - function f5() { -@@= skipped -51, +51 lines =@@ - if (cond) { - x = "hello"; - } -- var y = x; // string | number | undefined -+ const y = x; // string | number | undefined - } - // CFA for 'var' with no type annotation and 'undefined' initializer - function f6() { -@@= skipped -11, +11 lines =@@ - if (cond) { - x = "hello"; - } -- var y = x; // string | number | undefined -+ const y = x; // string | number | undefined - } - // CFA for 'var' with no type annotation and 'null' initializer - function f7() { -@@= skipped -11, +11 lines =@@ - if (cond) { - x = "hello"; - } -- var y = x; // string | number | null -+ const y = x; // string | number | null - } - // No CFA for 'var' with with type annotation - function f8() { -@@= skipped -11, +11 lines =@@ - if (cond) { - x = "hello"; - } -- var y = x; // any -+ const y = x; // any - } - // No CFA for captured outer variables - function f9() { -- var x; -+ let x; - if (cond) { - x = 1; - } - if (cond) { - x = "hello"; - } -- var y = x; // string | number | undefined -+ const y = x; // string | number | undefined - function f() { -- var z = x; // any -+ const z = x; // any - } - } - // No CFA for captured outer variables - function f10() { -- var x; -+ let x; - if (cond) { - x = 1; - } - if (cond) { - x = "hello"; - } -- var y = x; // string | number | undefined -- var f = function () { -- var z = x; // any -+ const y = x; // string | number | undefined -+ const f = () => { -+ const z = x; // any - }; - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowNullTypeAndLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowNullTypeAndLiteral.js.diff index 72994815ba..55ade78c08 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowNullTypeAndLiteral.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowNullTypeAndLiteral.js.diff @@ -6,20 +6,5 @@ //// [controlFlowNullTypeAndLiteral.js] -"use strict"; // Repros from #23771 --var myNull = null; --var objWithValMaybeNull = { val: 1 }; --var addOne = function (num) { -+const myNull = null; -+const objWithValMaybeNull = { val: 1 }; -+const addOne = function (num) { - return num + 1; - }; - if (objWithValMaybeNull.val !== null) -@@= skipped -17, +16 lines =@@ - addOne(objWithValMaybeNull.val); // Error - function f(x) { - if (x === myNull) { -- var s = x; // Error -+ const s = x; // Error - } - } \ No newline at end of file + const myNull = null; + const objWithValMaybeNull = { val: 1 }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowOuterVariable.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowOuterVariable.js.diff deleted file mode 100644 index 3a8a02e2db..0000000000 --- a/testdata/baselines/reference/submodule/compiler/controlFlowOuterVariable.js.diff +++ /dev/null @@ -1,17 +0,0 @@ ---- old.controlFlowOuterVariable.js -+++ new.controlFlowOuterVariable.js -@@= skipped -15, +15 lines =@@ - - //// [controlFlowOuterVariable.js] - // Repros from #10641 --var CONFIG = { -+const CONFIG = { - foo: '', - setFoo: function (foo) { - CONFIG.foo = foo; - } - }; --var helper = function (t) { -+const helper = function (t) { - helper(t.slice(1)); - }; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowPropertyDeclarations.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowPropertyDeclarations.js.diff index d64dcdda71..c0f009b46e 100644 --- a/testdata/baselines/reference/submodule/compiler/controlFlowPropertyDeclarations.js.diff +++ b/testdata/baselines/reference/submodule/compiler/controlFlowPropertyDeclarations.js.diff @@ -8,19 +8,17 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.StyleParser = exports.HTMLtoJSX = void 0; var HTMLDOMPropertyConfig = require('react/lib/HTMLDOMPropertyConfig'); -@@= skipped -86, +85 lines =@@ - function isConvertiblePixelValue(value) { +@@= skipped -87, +86 lines =@@ return /^\d+px$/.test(value); } --var HTMLtoJSX = /** @class */ (function () { -- function HTMLtoJSX() { -- var _this = this; + class HTMLtoJSX { +- constructor() { - /** - * Handles processing of the specified text node - * - * @param {TextNode} node - */ -- this._visitText = function (node) { +- this._visitText = (node) => { - var parentTag = node.parentNode && node.parentNode.tagName.toLowerCase(); - if (parentTag === 'textarea' || parentTag === 'style') { - // Ignore text content of textareas and styles, as it will have already been moved @@ -28,7 +26,7 @@ - return; - } - var text = ''; -- if (_this._inPreTag) { +- if (this._inPreTag) { - // If this text is contained within a
, we need to ensure the JSX
 -                // whitespace coalescing rules don't eat the whitespace. This means
 -                // wrapping newlines and sequences of two or more spaces in variables.
@@ -43,12 +41,9 @@
 -                if (text.indexOf('\n') > -1) {
 -                }
 -            }
--            _this.output += text;
+-            this.output += text;
 -        };
 -    }
--    return HTMLtoJSX;
--}());
-+class HTMLtoJSX {
 +    output;
 +    level;
 +    _inPreTag;
@@ -82,21 +77,19 @@
 +        }
 +        this.output += text;
 +    };
-+}
+ }
  exports.HTMLtoJSX = HTMLtoJSX;
  ;
- /**
+@@= skipped -39, +40 lines =@@
   * Handles parsing of inline styles
   */
--var StyleParser = /** @class */ (function () {
--    function StyleParser() {
--        var _this = this;
+ class StyleParser {
+-    constructor() {
 -        this.styles = {};
--        this.toJSXString = function () {
--            for (var key in _this.styles) {
--                if (!_this.styles.hasOwnProperty(key)) {
+-        this.toJSXString = () => {
+-            for (var key in this.styles) {
+-                if (!this.styles.hasOwnProperty(key)) {
 -                }
-+class StyleParser {
 +    styles = {};
 +    toJSXString = () => {
 +        for (var key in this.styles) {
@@ -104,9 +97,7 @@
              }
 -        };
 -    }
--    return StyleParser;
--}());
 +        }
 +    };
-+}
+ }
  exports.StyleParser = StyleParser;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowPropertyInitializer.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowPropertyInitializer.js.diff
index f71a427e71..b6175fb191 100644
--- a/testdata/baselines/reference/submodule/compiler/controlFlowPropertyInitializer.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/controlFlowPropertyInitializer.js.diff
@@ -1,17 +1,11 @@
 --- old.controlFlowPropertyInitializer.js
 +++ new.controlFlowPropertyInitializer.js
-@@= skipped -10, +10 lines =@@
-
- //// [controlFlowPropertyInitializer.js]
+@@= skipped -12, +12 lines =@@
  // Repro from #8967
--var LANG = "Turbo Pascal";
--var BestLanguage = /** @class */ (function () {
--    function BestLanguage() {
+ const LANG = "Turbo Pascal";
+ class BestLanguage {
+-    constructor() {
 -        this.name = LANG;
 -    }
--    return BestLanguage;
--}());
-+const LANG = "Turbo Pascal";
-+class BestLanguage {
 +    name = LANG;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowSelfReferentialLoop.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowSelfReferentialLoop.js.diff
index 406fc12a2e..4015bfc679 100644
--- a/testdata/baselines/reference/submodule/compiler/controlFlowSelfReferentialLoop.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/controlFlowSelfReferentialLoop.js.diff
@@ -9,20 +9,4 @@
 +// Repro from #12319
  function md5(string) {
      function FF(a, b, c, d, x, s, ac) {
-         return 0;
-@@= skipped -106, +106 lines =@@
-     return {};
- }
- ;
--(function () {
--    var id = 'a';
-+(() => {
-+    let id = 'a';
-     while (1) {
--        var data = getObject(id);
--        var message = data.message;
-+        const data = getObject(id);
-+        const message = data.message;
-         id = message.id;
-     }
- })();
\ No newline at end of file
+         return 0;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/controlFlowWithIncompleteTypes.js.diff b/testdata/baselines/reference/submodule/compiler/controlFlowWithIncompleteTypes.js.diff
index 93f1135af2..6e1c290db9 100644
--- a/testdata/baselines/reference/submodule/compiler/controlFlowWithIncompleteTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/controlFlowWithIncompleteTypes.js.diff
@@ -6,17 +6,5 @@
  //// [controlFlowWithIncompleteTypes.js]
 -// Repro from #11000
  function foo1() {
--    var x = 0;
-+    let x = 0;
-     while (cond) {
-         if (typeof x === "string") {
-             x = x.slice();
-@@= skipped -13, +12 lines =@@
-     }
- }
- function foo2() {
--    var x = 0;
-+    let x = 0;
-     while (cond) {
-         if (typeof x === "number") {
-             x = "abc";
\ No newline at end of file
+     let x = 0;
+     while (cond) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/convertClassExpressionToFunctionFromObjectProperty1.js.diff b/testdata/baselines/reference/submodule/compiler/convertClassExpressionToFunctionFromObjectProperty1.js.diff
deleted file mode 100644
index 86ec6b4f23..0000000000
--- a/testdata/baselines/reference/submodule/compiler/convertClassExpressionToFunctionFromObjectProperty1.js.diff
+++ /dev/null
@@ -1,634 +0,0 @@
---- old.convertClassExpressionToFunctionFromObjectProperty1.js
-+++ new.convertClassExpressionToFunctionFromObjectProperty1.js
-@@= skipped -242, +242 lines =@@
-
-
- //// [convertClassExpressionToFunctionFromObjectProperty1.js]
--var foo = {};
-+const foo = {};
- // properties
--foo.x = /** @class */ (function () {
--    function x() {
--    }
--    return x;
--}());
--foo.y = /** @class */ (function () {
--    function y() {
--    }
--    return y;
--}());
-+foo.x = class {
-+    constructor() { }
-+};
-+foo.y = class {
-+    constructor() { }
-+};
- // keywords
--foo.break = /** @class */ (function () {
--    function break_1() {
--    }
--    return break_1;
--}());
--foo.case = /** @class */ (function () {
--    function case_1() {
--    }
--    return case_1;
--}());
--foo.catch = /** @class */ (function () {
--    function catch_1() {
--    }
--    return catch_1;
--}());
--foo.class = /** @class */ (function () {
--    function class_1() {
--    }
--    return class_1;
--}());
--foo.const = /** @class */ (function () {
--    function const_1() {
--    }
--    return const_1;
--}());
--foo.continue = /** @class */ (function () {
--    function continue_1() {
--    }
--    return continue_1;
--}());
--foo.debugger = /** @class */ (function () {
--    function debugger_1() {
--    }
--    return debugger_1;
--}());
--foo.default = /** @class */ (function () {
--    function default_1() {
--    }
--    return default_1;
--}());
--foo.delete = /** @class */ (function () {
--    function delete_1() {
--    }
--    return delete_1;
--}());
--foo.do = /** @class */ (function () {
--    function do_1() {
--    }
--    return do_1;
--}());
--foo.else = /** @class */ (function () {
--    function else_1() {
--    }
--    return else_1;
--}());
--foo.enum = /** @class */ (function () {
--    function enum_1() {
--    }
--    return enum_1;
--}());
--foo.export = /** @class */ (function () {
--    function export_1() {
--    }
--    return export_1;
--}());
--foo.extends = /** @class */ (function () {
--    function extends_1() {
--    }
--    return extends_1;
--}());
--foo.false = /** @class */ (function () {
--    function false_1() {
--    }
--    return false_1;
--}());
--foo.finally = /** @class */ (function () {
--    function finally_1() {
--    }
--    return finally_1;
--}());
--foo.for = /** @class */ (function () {
--    function for_1() {
--    }
--    return for_1;
--}());
--foo.function = /** @class */ (function () {
--    function function_1() {
--    }
--    return function_1;
--}());
--foo.if = /** @class */ (function () {
--    function if_1() {
--    }
--    return if_1;
--}());
--foo.import = /** @class */ (function () {
--    function import_1() {
--    }
--    return import_1;
--}());
--foo.in = /** @class */ (function () {
--    function in_1() {
--    }
--    return in_1;
--}());
--foo.instanceof = /** @class */ (function () {
--    function instanceof_1() {
--    }
--    return instanceof_1;
--}());
--foo.new = /** @class */ (function () {
--    function new_1() {
--    }
--    return new_1;
--}());
--foo.null = /** @class */ (function () {
--    function null_1() {
--    }
--    return null_1;
--}());
--foo.return = /** @class */ (function () {
--    function return_1() {
--    }
--    return return_1;
--}());
--foo.super = /** @class */ (function () {
--    function super_1() {
--    }
--    return super_1;
--}());
--foo.switch = /** @class */ (function () {
--    function switch_1() {
--    }
--    return switch_1;
--}());
--foo.this = /** @class */ (function () {
--    function this_1() {
--    }
--    return this_1;
--}());
--foo.throw = /** @class */ (function () {
--    function throw_1() {
--    }
--    return throw_1;
--}());
--foo.true = /** @class */ (function () {
--    function true_1() {
--    }
--    return true_1;
--}());
--foo.try = /** @class */ (function () {
--    function try_1() {
--    }
--    return try_1;
--}());
--foo.typeof = /** @class */ (function () {
--    function typeof_1() {
--    }
--    return typeof_1;
--}());
--foo.var = /** @class */ (function () {
--    function var_1() {
--    }
--    return var_1;
--}());
--foo.void = /** @class */ (function () {
--    function void_1() {
--    }
--    return void_1;
--}());
--foo.while = /** @class */ (function () {
--    function while_1() {
--    }
--    return while_1;
--}());
--foo.with = /** @class */ (function () {
--    function with_1() {
--    }
--    return with_1;
--}());
--foo.implements = /** @class */ (function () {
--    function implements_1() {
--    }
--    return implements_1;
--}());
--foo.interface = /** @class */ (function () {
--    function interface_1() {
--    }
--    return interface_1;
--}());
--foo.let = /** @class */ (function () {
--    function let_1() {
--    }
--    return let_1;
--}());
--foo.package = /** @class */ (function () {
--    function package_1() {
--    }
--    return package_1;
--}());
--foo.private = /** @class */ (function () {
--    function private_1() {
--    }
--    return private_1;
--}());
--foo.protected = /** @class */ (function () {
--    function protected_1() {
--    }
--    return protected_1;
--}());
--foo.public = /** @class */ (function () {
--    function public_1() {
--    }
--    return public_1;
--}());
--foo.static = /** @class */ (function () {
--    function static_1() {
--    }
--    return static_1;
--}());
--foo.yield = /** @class */ (function () {
--    function yield_1() {
--    }
--    return yield_1;
--}());
--foo.abstract = /** @class */ (function () {
--    function abstract() {
--    }
--    return abstract;
--}());
--foo.as = /** @class */ (function () {
--    function as() {
--    }
--    return as;
--}());
--foo.asserts = /** @class */ (function () {
--    function asserts() {
--    }
--    return asserts;
--}());
--foo.any = /** @class */ (function () {
--    function any() {
--    }
--    return any;
--}());
--foo.async = /** @class */ (function () {
--    function async() {
--    }
--    return async;
--}());
--foo.await = /** @class */ (function () {
--    function await() {
--    }
--    return await;
--}());
--foo.boolean = /** @class */ (function () {
--    function boolean() {
--    }
--    return boolean;
--}());
--foo.constructor = /** @class */ (function () {
--    function constructor() {
--    }
--    return constructor;
--}());
--foo.declare = /** @class */ (function () {
--    function declare() {
--    }
--    return declare;
--}());
--foo.get = /** @class */ (function () {
--    function get() {
--    }
--    return get;
--}());
--foo.infer = /** @class */ (function () {
--    function infer() {
--    }
--    return infer;
--}());
--foo.is = /** @class */ (function () {
--    function is() {
--    }
--    return is;
--}());
--foo.keyof = /** @class */ (function () {
--    function keyof() {
--    }
--    return keyof;
--}());
--foo.module = /** @class */ (function () {
--    function module() {
--    }
--    return module;
--}());
--foo.namespace = /** @class */ (function () {
--    function namespace() {
--    }
--    return namespace;
--}());
--foo.never = /** @class */ (function () {
--    function never() {
--    }
--    return never;
--}());
--foo.readonly = /** @class */ (function () {
--    function readonly() {
--    }
--    return readonly;
--}());
--foo.require = /** @class */ (function () {
--    function require() {
--    }
--    return require;
--}());
--foo.number = /** @class */ (function () {
--    function number() {
--    }
--    return number;
--}());
--foo.object = /** @class */ (function () {
--    function object() {
--    }
--    return object;
--}());
--foo.set = /** @class */ (function () {
--    function set() {
--    }
--    return set;
--}());
--foo.string = /** @class */ (function () {
--    function string() {
--    }
--    return string;
--}());
--foo.symbol = /** @class */ (function () {
--    function symbol() {
--    }
--    return symbol;
--}());
--foo.type = /** @class */ (function () {
--    function type() {
--    }
--    return type;
--}());
--foo.undefined = /** @class */ (function () {
--    function undefined() {
--    }
--    return undefined;
--}());
--foo.unique = /** @class */ (function () {
--    function unique() {
--    }
--    return unique;
--}());
--foo.unknown = /** @class */ (function () {
--    function unknown() {
--    }
--    return unknown;
--}());
--foo.from = /** @class */ (function () {
--    function from() {
--    }
--    return from;
--}());
--foo.global = /** @class */ (function () {
--    function global() {
--    }
--    return global;
--}());
--foo.bigint = /** @class */ (function () {
--    function bigint() {
--    }
--    return bigint;
--}());
--foo.of = /** @class */ (function () {
--    function of() {
--    }
--    return of;
--}());
-+foo.break = class {
-+    constructor() { }
-+};
-+foo.case = class {
-+    constructor() { }
-+};
-+foo.catch = class {
-+    constructor() { }
-+};
-+foo.class = class {
-+    constructor() { }
-+};
-+foo.const = class {
-+    constructor() { }
-+};
-+foo.continue = class {
-+    constructor() { }
-+};
-+foo.debugger = class {
-+    constructor() { }
-+};
-+foo.default = class {
-+    constructor() { }
-+};
-+foo.delete = class {
-+    constructor() { }
-+};
-+foo.do = class {
-+    constructor() { }
-+};
-+foo.else = class {
-+    constructor() { }
-+};
-+foo.enum = class {
-+    constructor() { }
-+};
-+foo.export = class {
-+    constructor() { }
-+};
-+foo.extends = class {
-+    constructor() { }
-+};
-+foo.false = class {
-+    constructor() { }
-+};
-+foo.finally = class {
-+    constructor() { }
-+};
-+foo.for = class {
-+    constructor() { }
-+};
-+foo.function = class {
-+    constructor() { }
-+};
-+foo.if = class {
-+    constructor() { }
-+};
-+foo.import = class {
-+    constructor() { }
-+};
-+foo.in = class {
-+    constructor() { }
-+};
-+foo.instanceof = class {
-+    constructor() { }
-+};
-+foo.new = class {
-+    constructor() { }
-+};
-+foo.null = class {
-+    constructor() { }
-+};
-+foo.return = class {
-+    constructor() { }
-+};
-+foo.super = class {
-+    constructor() { }
-+};
-+foo.switch = class {
-+    constructor() { }
-+};
-+foo.this = class {
-+    constructor() { }
-+};
-+foo.throw = class {
-+    constructor() { }
-+};
-+foo.true = class {
-+    constructor() { }
-+};
-+foo.try = class {
-+    constructor() { }
-+};
-+foo.typeof = class {
-+    constructor() { }
-+};
-+foo.var = class {
-+    constructor() { }
-+};
-+foo.void = class {
-+    constructor() { }
-+};
-+foo.while = class {
-+    constructor() { }
-+};
-+foo.with = class {
-+    constructor() { }
-+};
-+foo.implements = class {
-+    constructor() { }
-+};
-+foo.interface = class {
-+    constructor() { }
-+};
-+foo.let = class {
-+    constructor() { }
-+};
-+foo.package = class {
-+    constructor() { }
-+};
-+foo.private = class {
-+    constructor() { }
-+};
-+foo.protected = class {
-+    constructor() { }
-+};
-+foo.public = class {
-+    constructor() { }
-+};
-+foo.static = class {
-+    constructor() { }
-+};
-+foo.yield = class {
-+    constructor() { }
-+};
-+foo.abstract = class {
-+    constructor() { }
-+};
-+foo.as = class {
-+    constructor() { }
-+};
-+foo.asserts = class {
-+    constructor() { }
-+};
-+foo.any = class {
-+    constructor() { }
-+};
-+foo.async = class {
-+    constructor() { }
-+};
-+foo.await = class {
-+    constructor() { }
-+};
-+foo.boolean = class {
-+    constructor() { }
-+};
-+foo.constructor = class {
-+    constructor() { }
-+};
-+foo.declare = class {
-+    constructor() { }
-+};
-+foo.get = class {
-+    constructor() { }
-+};
-+foo.infer = class {
-+    constructor() { }
-+};
-+foo.is = class {
-+    constructor() { }
-+};
-+foo.keyof = class {
-+    constructor() { }
-+};
-+foo.module = class {
-+    constructor() { }
-+};
-+foo.namespace = class {
-+    constructor() { }
-+};
-+foo.never = class {
-+    constructor() { }
-+};
-+foo.readonly = class {
-+    constructor() { }
-+};
-+foo.require = class {
-+    constructor() { }
-+};
-+foo.number = class {
-+    constructor() { }
-+};
-+foo.object = class {
-+    constructor() { }
-+};
-+foo.set = class {
-+    constructor() { }
-+};
-+foo.string = class {
-+    constructor() { }
-+};
-+foo.symbol = class {
-+    constructor() { }
-+};
-+foo.type = class {
-+    constructor() { }
-+};
-+foo.undefined = class {
-+    constructor() { }
-+};
-+foo.unique = class {
-+    constructor() { }
-+};
-+foo.unknown = class {
-+    constructor() { }
-+};
-+foo.from = class {
-+    constructor() { }
-+};
-+foo.global = class {
-+    constructor() { }
-+};
-+foo.bigint = class {
-+    constructor() { }
-+};
-+foo.of = class {
-+    constructor() { }
-+};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/convertClassExpressionToFunctionFromObjectProperty2.js.diff b/testdata/baselines/reference/submodule/compiler/convertClassExpressionToFunctionFromObjectProperty2.js.diff
deleted file mode 100644
index d4fca2a339..0000000000
--- a/testdata/baselines/reference/submodule/compiler/convertClassExpressionToFunctionFromObjectProperty2.js.diff
+++ /dev/null
@@ -1,632 +0,0 @@
---- old.convertClassExpressionToFunctionFromObjectProperty2.js
-+++ new.convertClassExpressionToFunctionFromObjectProperty2.js
-@@= skipped -242, +242 lines =@@
-
- //// [convertClassExpressionToFunctionFromObjectProperty2.js]
- ({
--    x: /** @class */ (function () {
--        function x() {
--        }
--        return x;
--    }()),
--    y: /** @class */ (function () {
--        function y() {
--        }
--        return y;
--    }()),
-+    x: class {
-+        constructor() { }
-+    },
-+    y: class {
-+        constructor() { }
-+    },
-     // keywords
--    break: /** @class */ (function () {
--        function break_1() {
--        }
--        return break_1;
--    }()),
--    case: /** @class */ (function () {
--        function case_1() {
--        }
--        return case_1;
--    }()),
--    catch: /** @class */ (function () {
--        function catch_1() {
--        }
--        return catch_1;
--    }()),
--    class: /** @class */ (function () {
--        function class_1() {
--        }
--        return class_1;
--    }()),
--    const: /** @class */ (function () {
--        function const_1() {
--        }
--        return const_1;
--    }()),
--    continue: /** @class */ (function () {
--        function continue_1() {
--        }
--        return continue_1;
--    }()),
--    debugger: /** @class */ (function () {
--        function debugger_1() {
--        }
--        return debugger_1;
--    }()),
--    default: /** @class */ (function () {
--        function default_1() {
--        }
--        return default_1;
--    }()),
--    delete: /** @class */ (function () {
--        function delete_1() {
--        }
--        return delete_1;
--    }()),
--    do: /** @class */ (function () {
--        function do_1() {
--        }
--        return do_1;
--    }()),
--    else: /** @class */ (function () {
--        function else_1() {
--        }
--        return else_1;
--    }()),
--    enum: /** @class */ (function () {
--        function enum_1() {
--        }
--        return enum_1;
--    }()),
--    export: /** @class */ (function () {
--        function export_1() {
--        }
--        return export_1;
--    }()),
--    extends: /** @class */ (function () {
--        function extends_1() {
--        }
--        return extends_1;
--    }()),
--    false: /** @class */ (function () {
--        function false_1() {
--        }
--        return false_1;
--    }()),
--    finally: /** @class */ (function () {
--        function finally_1() {
--        }
--        return finally_1;
--    }()),
--    for: /** @class */ (function () {
--        function for_1() {
--        }
--        return for_1;
--    }()),
--    function: /** @class */ (function () {
--        function function_1() {
--        }
--        return function_1;
--    }()),
--    if: /** @class */ (function () {
--        function if_1() {
--        }
--        return if_1;
--    }()),
--    import: /** @class */ (function () {
--        function import_1() {
--        }
--        return import_1;
--    }()),
--    in: /** @class */ (function () {
--        function in_1() {
--        }
--        return in_1;
--    }()),
--    instanceof: /** @class */ (function () {
--        function instanceof_1() {
--        }
--        return instanceof_1;
--    }()),
--    new: /** @class */ (function () {
--        function new_1() {
--        }
--        return new_1;
--    }()),
--    null: /** @class */ (function () {
--        function null_1() {
--        }
--        return null_1;
--    }()),
--    return: /** @class */ (function () {
--        function return_1() {
--        }
--        return return_1;
--    }()),
--    super: /** @class */ (function () {
--        function super_1() {
--        }
--        return super_1;
--    }()),
--    switch: /** @class */ (function () {
--        function switch_1() {
--        }
--        return switch_1;
--    }()),
--    this: /** @class */ (function () {
--        function this_1() {
--        }
--        return this_1;
--    }()),
--    throw: /** @class */ (function () {
--        function throw_1() {
--        }
--        return throw_1;
--    }()),
--    true: /** @class */ (function () {
--        function true_1() {
--        }
--        return true_1;
--    }()),
--    try: /** @class */ (function () {
--        function try_1() {
--        }
--        return try_1;
--    }()),
--    typeof: /** @class */ (function () {
--        function typeof_1() {
--        }
--        return typeof_1;
--    }()),
--    var: /** @class */ (function () {
--        function var_1() {
--        }
--        return var_1;
--    }()),
--    void: /** @class */ (function () {
--        function void_1() {
--        }
--        return void_1;
--    }()),
--    while: /** @class */ (function () {
--        function while_1() {
--        }
--        return while_1;
--    }()),
--    with: /** @class */ (function () {
--        function with_1() {
--        }
--        return with_1;
--    }()),
--    implements: /** @class */ (function () {
--        function implements_1() {
--        }
--        return implements_1;
--    }()),
--    interface: /** @class */ (function () {
--        function interface_1() {
--        }
--        return interface_1;
--    }()),
--    let: /** @class */ (function () {
--        function let_1() {
--        }
--        return let_1;
--    }()),
--    package: /** @class */ (function () {
--        function package_1() {
--        }
--        return package_1;
--    }()),
--    private: /** @class */ (function () {
--        function private_1() {
--        }
--        return private_1;
--    }()),
--    protected: /** @class */ (function () {
--        function protected_1() {
--        }
--        return protected_1;
--    }()),
--    public: /** @class */ (function () {
--        function public_1() {
--        }
--        return public_1;
--    }()),
--    static: /** @class */ (function () {
--        function static_1() {
--        }
--        return static_1;
--    }()),
--    yield: /** @class */ (function () {
--        function yield_1() {
--        }
--        return yield_1;
--    }()),
--    abstract: /** @class */ (function () {
--        function abstract() {
--        }
--        return abstract;
--    }()),
--    as: /** @class */ (function () {
--        function as() {
--        }
--        return as;
--    }()),
--    asserts: /** @class */ (function () {
--        function asserts() {
--        }
--        return asserts;
--    }()),
--    any: /** @class */ (function () {
--        function any() {
--        }
--        return any;
--    }()),
--    async: /** @class */ (function () {
--        function async() {
--        }
--        return async;
--    }()),
--    await: /** @class */ (function () {
--        function await() {
--        }
--        return await;
--    }()),
--    boolean: /** @class */ (function () {
--        function boolean() {
--        }
--        return boolean;
--    }()),
--    constructor: /** @class */ (function () {
--        function constructor() {
--        }
--        return constructor;
--    }()),
--    declare: /** @class */ (function () {
--        function declare() {
--        }
--        return declare;
--    }()),
--    get: /** @class */ (function () {
--        function get() {
--        }
--        return get;
--    }()),
--    infer: /** @class */ (function () {
--        function infer() {
--        }
--        return infer;
--    }()),
--    is: /** @class */ (function () {
--        function is() {
--        }
--        return is;
--    }()),
--    keyof: /** @class */ (function () {
--        function keyof() {
--        }
--        return keyof;
--    }()),
--    module: /** @class */ (function () {
--        function module() {
--        }
--        return module;
--    }()),
--    namespace: /** @class */ (function () {
--        function namespace() {
--        }
--        return namespace;
--    }()),
--    never: /** @class */ (function () {
--        function never() {
--        }
--        return never;
--    }()),
--    readonly: /** @class */ (function () {
--        function readonly() {
--        }
--        return readonly;
--    }()),
--    require: /** @class */ (function () {
--        function require() {
--        }
--        return require;
--    }()),
--    number: /** @class */ (function () {
--        function number() {
--        }
--        return number;
--    }()),
--    object: /** @class */ (function () {
--        function object() {
--        }
--        return object;
--    }()),
--    set: /** @class */ (function () {
--        function set() {
--        }
--        return set;
--    }()),
--    string: /** @class */ (function () {
--        function string() {
--        }
--        return string;
--    }()),
--    symbol: /** @class */ (function () {
--        function symbol() {
--        }
--        return symbol;
--    }()),
--    type: /** @class */ (function () {
--        function type() {
--        }
--        return type;
--    }()),
--    undefined: /** @class */ (function () {
--        function undefined() {
--        }
--        return undefined;
--    }()),
--    unique: /** @class */ (function () {
--        function unique() {
--        }
--        return unique;
--    }()),
--    unknown: /** @class */ (function () {
--        function unknown() {
--        }
--        return unknown;
--    }()),
--    from: /** @class */ (function () {
--        function from() {
--        }
--        return from;
--    }()),
--    global: /** @class */ (function () {
--        function global() {
--        }
--        return global;
--    }()),
--    bigint: /** @class */ (function () {
--        function bigint() {
--        }
--        return bigint;
--    }()),
--    of: /** @class */ (function () {
--        function of() {
--        }
--        return of;
--    }())
-+    break: class {
-+        constructor() { }
-+    },
-+    case: class {
-+        constructor() { }
-+    },
-+    catch: class {
-+        constructor() { }
-+    },
-+    class: class {
-+        constructor() { }
-+    },
-+    const: class {
-+        constructor() { }
-+    },
-+    continue: class {
-+        constructor() { }
-+    },
-+    debugger: class {
-+        constructor() { }
-+    },
-+    default: class {
-+        constructor() { }
-+    },
-+    delete: class {
-+        constructor() { }
-+    },
-+    do: class {
-+        constructor() { }
-+    },
-+    else: class {
-+        constructor() { }
-+    },
-+    enum: class {
-+        constructor() { }
-+    },
-+    export: class {
-+        constructor() { }
-+    },
-+    extends: class {
-+        constructor() { }
-+    },
-+    false: class {
-+        constructor() { }
-+    },
-+    finally: class {
-+        constructor() { }
-+    },
-+    for: class {
-+        constructor() { }
-+    },
-+    function: class {
-+        constructor() { }
-+    },
-+    if: class {
-+        constructor() { }
-+    },
-+    import: class {
-+        constructor() { }
-+    },
-+    in: class {
-+        constructor() { }
-+    },
-+    instanceof: class {
-+        constructor() { }
-+    },
-+    new: class {
-+        constructor() { }
-+    },
-+    null: class {
-+        constructor() { }
-+    },
-+    return: class {
-+        constructor() { }
-+    },
-+    super: class {
-+        constructor() { }
-+    },
-+    switch: class {
-+        constructor() { }
-+    },
-+    this: class {
-+        constructor() { }
-+    },
-+    throw: class {
-+        constructor() { }
-+    },
-+    true: class {
-+        constructor() { }
-+    },
-+    try: class {
-+        constructor() { }
-+    },
-+    typeof: class {
-+        constructor() { }
-+    },
-+    var: class {
-+        constructor() { }
-+    },
-+    void: class {
-+        constructor() { }
-+    },
-+    while: class {
-+        constructor() { }
-+    },
-+    with: class {
-+        constructor() { }
-+    },
-+    implements: class {
-+        constructor() { }
-+    },
-+    interface: class {
-+        constructor() { }
-+    },
-+    let: class {
-+        constructor() { }
-+    },
-+    package: class {
-+        constructor() { }
-+    },
-+    private: class {
-+        constructor() { }
-+    },
-+    protected: class {
-+        constructor() { }
-+    },
-+    public: class {
-+        constructor() { }
-+    },
-+    static: class {
-+        constructor() { }
-+    },
-+    yield: class {
-+        constructor() { }
-+    },
-+    abstract: class {
-+        constructor() { }
-+    },
-+    as: class {
-+        constructor() { }
-+    },
-+    asserts: class {
-+        constructor() { }
-+    },
-+    any: class {
-+        constructor() { }
-+    },
-+    async: class {
-+        constructor() { }
-+    },
-+    await: class {
-+        constructor() { }
-+    },
-+    boolean: class {
-+        constructor() { }
-+    },
-+    constructor: class {
-+        constructor() { }
-+    },
-+    declare: class {
-+        constructor() { }
-+    },
-+    get: class {
-+        constructor() { }
-+    },
-+    infer: class {
-+        constructor() { }
-+    },
-+    is: class {
-+        constructor() { }
-+    },
-+    keyof: class {
-+        constructor() { }
-+    },
-+    module: class {
-+        constructor() { }
-+    },
-+    namespace: class {
-+        constructor() { }
-+    },
-+    never: class {
-+        constructor() { }
-+    },
-+    readonly: class {
-+        constructor() { }
-+    },
-+    require: class {
-+        constructor() { }
-+    },
-+    number: class {
-+        constructor() { }
-+    },
-+    object: class {
-+        constructor() { }
-+    },
-+    set: class {
-+        constructor() { }
-+    },
-+    string: class {
-+        constructor() { }
-+    },
-+    symbol: class {
-+        constructor() { }
-+    },
-+    type: class {
-+        constructor() { }
-+    },
-+    undefined: class {
-+        constructor() { }
-+    },
-+    unique: class {
-+        constructor() { }
-+    },
-+    unknown: class {
-+        constructor() { }
-+    },
-+    from: class {
-+        constructor() { }
-+    },
-+    global: class {
-+        constructor() { }
-+    },
-+    bigint: class {
-+        constructor() { }
-+    },
-+    of: class {
-+        constructor() { }
-+    }
- });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/convertKeywordsYes.js.diff b/testdata/baselines/reference/submodule/compiler/convertKeywordsYes.js.diff
index d8b143a4dd..54277f9377 100644
--- a/testdata/baselines/reference/submodule/compiler/convertKeywordsYes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/convertKeywordsYes.js.diff
@@ -1,11 +1,10 @@
 --- old.convertKeywordsYes.js
 +++ new.convertKeywordsYes.js
-@@= skipped -383, +383 lines =@@
-     while: 0,
+@@= skipped -384, +384 lines =@@
      with: 0,
  };
--var bigClass = /** @class */ (function () {
--    function bigClass() {
+ class bigClass {
+-    constructor() {
 -        this["constructor"] = 0;
 -        this.any = 0;
 -        this.boolean = 0;
@@ -61,9 +60,6 @@
 -        this.while = 0;
 -        this.with = 0;
 -    }
--    return bigClass;
--}());
-+class bigClass {
 +    "constructor" = 0;
 +    any = 0;
 +    boolean = 0;
@@ -118,110 +114,6 @@
 +    void = 0;
 +    while = 0;
 +    with = 0;
-+}
+ }
  var bigEnum;
- (function (bigEnum) {
-     bigEnum[bigEnum["constructor"] = 0] = "constructor";
-@@= skipped -118, +115 lines =@@
- })(bigEnum || (bigEnum = {}));
- var bigModule;
- (function (bigModule) {
--    var constructor = /** @class */ (function () {
--        function constructor() {
--        }
--        return constructor;
--    }());
--    var implements = /** @class */ (function () {
--        function implements_1() {
--        }
--        return implements_1;
--    }());
--    var interface = /** @class */ (function () {
--        function interface_1() {
--        }
--        return interface_1;
--    }());
--    var let = /** @class */ (function () {
--        function let_1() {
--        }
--        return let_1;
--    }());
--    var module = /** @class */ (function () {
--        function module() {
--        }
--        return module;
--    }());
--    var package = /** @class */ (function () {
--        function package_1() {
--        }
--        return package_1;
--    }());
--    var private = /** @class */ (function () {
--        function private_1() {
--        }
--        return private_1;
--    }());
--    var protected = /** @class */ (function () {
--        function protected_1() {
--        }
--        return protected_1;
--    }());
--    var public = /** @class */ (function () {
--        function public_1() {
--        }
--        return public_1;
--    }());
--    var set = /** @class */ (function () {
--        function set() {
--        }
--        return set;
--    }());
--    var static = /** @class */ (function () {
--        function static_1() {
--        }
--        return static_1;
--    }());
--    var get = /** @class */ (function () {
--        function get() {
--        }
--        return get;
--    }());
--    var yield = /** @class */ (function () {
--        function yield_1() {
--        }
--        return yield_1;
--    }());
--    var declare = /** @class */ (function () {
--        function declare() {
--        }
--        return declare;
--    }());
-+    class constructor {
-+    }
-+    class implements {
-+    }
-+    class interface {
-+    }
-+    class let {
-+    }
-+    class module {
-+    }
-+    class package {
-+    }
-+    class private {
-+    }
-+    class protected {
-+    }
-+    class public {
-+    }
-+    class set {
-+    }
-+    class static {
-+    }
-+    class get {
-+    }
-+    class yield {
-+    }
-+    class declare {
-+    }
- })(bigModule || (bigModule = {}));
\ No newline at end of file
+ (function (bigEnum) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/correctOrderOfPromiseMethod.js.diff b/testdata/baselines/reference/submodule/compiler/correctOrderOfPromiseMethod.js.diff
index 282987b271..73b4602ef2 100644
--- a/testdata/baselines/reference/submodule/compiler/correctOrderOfPromiseMethod.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/correctOrderOfPromiseMethod.js.diff
@@ -13,31 +13,21 @@
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
 -};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+-function countEverything() {
+-    return __awaiter(this, void 0, void 0, function* () {
+-        const providerA = () => __awaiter(this, void 0, void 0, function* () { return []; });
+-        const providerB = () => __awaiter(this, void 0, void 0, function* () { return []; });
+-        const [resultA, resultB] = yield Promise.all([
+-            providerA(),
+-            providerB(),
+-        ]);
+-        const dataA = resultA;
+-        const dataB = resultB;
+-        if (dataA && dataB) {
+-            return dataA.length + dataB.length;
+-        }
+-        return 0;
+-    });
 +async function countEverything() {
 +    const providerA = async () => { return []; };
 +    const providerB = async () => { return []; };
@@ -49,38 +39,8 @@
 +    const dataB = resultB;
 +    if (dataA && dataB) {
 +        return dataA.length + dataB.length;
-     }
--};
--function countEverything() {
--    return __awaiter(this, void 0, void 0, function () {
--        var providerA, providerB, _a, resultA, resultB, dataA, dataB;
--        var _this = this;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    providerA = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
--                        return [2 /*return*/, []];
--                    }); }); };
--                    providerB = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
--                        return [2 /*return*/, []];
--                    }); }); };
--                    return [4 /*yield*/, Promise.all([
--                            providerA(),
--                            providerB(),
--                        ])];
--                case 1:
--                    _a = _b.sent(), resultA = _a[0], resultB = _a[1];
--                    dataA = resultA;
--                    dataB = resultB;
--                    if (dataA && dataB) {
--                        return [2 /*return*/, dataA.length + dataB.length];
--                    }
--                    return [2 /*return*/, 0];
--            }
--        });
--    });
++    }
 +    return 0;
  }
  // #31179
--var expected = Promise.all(undefined);
-+const expected = Promise.all(undefined);
\ No newline at end of file
+ const expected = Promise.all(undefined);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/correlatedUnions.js.diff b/testdata/baselines/reference/submodule/compiler/correlatedUnions.js.diff
index b55c2c22ca..4caee878bc 100644
--- a/testdata/baselines/reference/submodule/compiler/correlatedUnions.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/correlatedUnions.js.diff
@@ -9,165 +9,7 @@
  function processRecord(rec) {
      rec.f(rec.v);
  }
- processRecord(r1);
- processRecord(r2);
--processRecord({ kind: 'n', v: 42, f: function (v) { return v.toExponential(); } });
-+processRecord({ kind: 'n', v: 42, f: v => v.toExponential() });
- function renderTextField(props) { }
- function renderSelectField(props) { }
--var renderFuncs = {
-+const renderFuncs = {
-     text: renderTextField,
-     select: renderSelectField,
- };
- function renderField(field) {
--    var renderFn = renderFuncs[field.type];
-+    const renderFn = renderFuncs[field.type];
-     renderFn(field.data);
- }
--var handlers = {
--    foo: function (s) { return s.length; },
--    bar: function (n) { return n.toFixed(2); }
-+const handlers = {
-+    foo: s => s.length,
-+    bar: n => n.toFixed(2)
- };
--var data = [
-+const data = [
-     { type: 'foo', data: 'abc' },
-     { type: 'foo', data: 'def' },
-     { type: 'bar', data: 42 },
- ];
- function process(data) {
--    data.forEach(function (block) {
-+    data.forEach(block => {
-         if (block.type in handlers) {
-             handlers[block.type](block.data);
-         }
-@@= skipped -36, +34 lines =@@
- }
- process(data);
- process([{ type: 'foo', data: 'abc' }]);
--function call(_a) {
--    var letter = _a.letter, caller = _a.caller;
-+function call({ letter, caller }) {
-     caller(letter);
- }
- call(xx);
- function processEvents(events) {
--    var _loop_1 = function (event_1) {
--        document.addEventListener(event_1.name, function (ev) { return event_1.callback(ev); }, { once: event_1.once });
--    };
--    for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {
--        var event_1 = events_1[_i];
--        _loop_1(event_1);
-+    for (const event of events) {
-+        document.addEventListener(event.name, (ev) => event.callback(ev), { once: event.once });
-     }
- }
--function createEventListener(_a) {
--    var name = _a.name, _b = _a.once, once = _b === void 0 ? false : _b, callback = _a.callback;
--    return { name: name, once: once, callback: callback };
-+function createEventListener({ name, once = false, callback }) {
-+    return { name, once, callback };
- }
--var clickEvent = createEventListener({
-+const clickEvent = createEventListener({
-     name: "click",
--    callback: function (ev) { return console.log(ev); },
-+    callback: ev => console.log(ev),
- });
--var scrollEvent = createEventListener({
-+const scrollEvent = createEventListener({
-     name: "scroll",
--    callback: function (ev) { return console.log(ev); },
-+    callback: ev => console.log(ev),
- });
- processEvents([clickEvent, scrollEvent]);
- processEvents([
--    { name: "click", callback: function (ev) { return console.log(ev); } },
--    { name: "scroll", callback: function (ev) { return console.log(ev); } },
-+    { name: "click", callback: ev => console.log(ev) },
-+    { name: "scroll", callback: ev => console.log(ev) },
- ]);
- // --------
- function ff1() {
--    var funs = {
--        sum: function (a, b) { return a + b; },
--        concat: function (a, b, c) { return a + b + c; }
-+    const funs = {
-+        sum: (a, b) => a + b,
-+        concat: (a, b, c) => a + b + c
-     };
--    function apply(funKey) {
--        var args = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            args[_i - 1] = arguments[_i];
--        }
--        var fn = funs[funKey];
--        fn.apply(void 0, args);
-+    function apply(funKey, ...args) {
-+        const fn = funs[funKey];
-+        fn(...args);
-     }
--    var x1 = apply('sum', 1, 2);
--    var x2 = apply('concat', 'str1', 'str2', 'str3');
-+    const x1 = apply('sum', 1, 2);
-+    const x2 = apply('concat', 'str1', 'str2', 'str3');
- }
- function f1(funcs, key, arg) {
-     funcs[key](arg);
- }
- function f2(funcs, key, arg) {
--    var func = funcs[key]; // Type Funcs[K]
-+    const func = funcs[key]; // Type Funcs[K]
-     func(arg);
- }
- function f3(funcs, key, arg) {
--    var func = funcs[key];
-+    const func = funcs[key];
-     func(arg);
- }
- function f4(x, y) {
-     x = y;
- }
--var ref = {
-+const ref = {
-     someKey: { name: "" },
-     someOtherKey: { name: 42 }
- };
- function func(k) {
--    var myObj = ref[k];
-+    const myObj = ref[k];
-     if (myObj) {
-         return myObj.name;
-     }
--    var myObj2 = ref[k];
-+    const myObj2 = ref[k];
-     if (myObj2) {
-         return myObj2.name;
-     }
-@@= skipped -80, +70 lines =@@
- function foo(prop, f) {
-     bar(f[prop]);
- }
--var ALL_BARS = [{ name: 'a' }, { name: 'b' }];
--var BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name');
--var getStringAndNumberFromOriginalAndMapped = function (original, mappedFromOriginal, key, nestedKey) {
-+const ALL_BARS = [{ name: 'a' }, { name: 'b' }];
-+const BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name');
-+const getStringAndNumberFromOriginalAndMapped = (original, mappedFromOriginal, key, nestedKey) => {
-     return [original[key][nestedKey], mappedFromOriginal[key][nestedKey]];
- };
- function getConfigOrDefault(userConfig, key, defaultValue) {
--    var userValue = userConfig[key];
--    var assertedCheck = userValue ? userValue : defaultValue;
-+    const userValue = userConfig[key];
-+    const assertedCheck = userValue ? userValue : defaultValue;
-     return assertedCheck;
- }
- function getValueConcrete(o, k) {
-@@= skipped -16, +16 lines =@@
+@@= skipped -122, +120 lines =@@
 
 
  //// [correlatedUnions.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/correlatedUnions.types b/testdata/baselines/reference/submodule/compiler/correlatedUnions.types
index 41a398fd7f..ba53ae38d7 100644
--- a/testdata/baselines/reference/submodule/compiler/correlatedUnions.types
+++ b/testdata/baselines/reference/submodule/compiler/correlatedUnions.types
@@ -860,15 +860,15 @@ function getConfigOrDefault(
 >key : T
 
   const assertedCheck = userValue ? userValue! : defaultValue;
->assertedCheck : NonNullable[T]>
->userValue ? userValue! : defaultValue : NonNullable[T]>
+>assertedCheck : Config[T]
+>userValue ? userValue! : defaultValue : Config[T]
 >userValue : Partial[T]
 >userValue! : NonNullable[T]>
 >userValue : NonNullable[T]>
 >defaultValue : Config[T]
 
   return assertedCheck;
->assertedCheck : NonNullable[T]>
+>assertedCheck : Config[T]
 }
 
 // repro from #47523
diff --git a/testdata/baselines/reference/submodule/compiler/correlatedUnions.types.diff b/testdata/baselines/reference/submodule/compiler/correlatedUnions.types.diff
index 1e94053bb7..23d299c30c 100644
--- a/testdata/baselines/reference/submodule/compiler/correlatedUnions.types.diff
+++ b/testdata/baselines/reference/submodule/compiler/correlatedUnions.types.diff
@@ -141,4 +141,23 @@
 +><  K extends KeyOfOriginal,  N extends NestedKeyOfOriginalFor>(  original: Original,  mappedFromOriginal: MappedFromOriginal,  key: K,  nestedKey: N): [Original[K][N], MappedFromOriginal[K][N]] => {  return [original[key][nestedKey], mappedFromOriginal[key][nestedKey]];} : (original: Original, mappedFromOriginal: SameKeys, key: K, nestedKey: N) => [Original[K][N], SameKeys[K][N]]
 
    K extends KeyOfOriginal,
-   N extends NestedKeyOfOriginalFor
\ No newline at end of file
+   N extends NestedKeyOfOriginalFor
+@@= skipped -63, +63 lines =@@
+ >key : T
+
+   const assertedCheck = userValue ? userValue! : defaultValue;
+->assertedCheck : NonNullable[T]>
+->userValue ? userValue! : defaultValue : NonNullable[T]>
++>assertedCheck : Config[T]
++>userValue ? userValue! : defaultValue : Config[T]
+ >userValue : Partial[T]
+ >userValue! : NonNullable[T]>
+ >userValue : NonNullable[T]>
+ >defaultValue : Config[T]
+
+   return assertedCheck;
+->assertedCheck : NonNullable[T]>
++>assertedCheck : Config[T]
+ }
+
+ // repro from #47523
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/covariance1.js.diff b/testdata/baselines/reference/submodule/compiler/covariance1.js.diff
index 73205e1ffb..7127e8cc70 100644
--- a/testdata/baselines/reference/submodule/compiler/covariance1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/covariance1.js.diff
@@ -1,19 +1,10 @@
 --- old.covariance1.js
 +++ new.covariance1.js
-@@= skipped -21, +21 lines =@@
- //// [covariance1.js]
+@@= skipped -22, +22 lines =@@
  var M;
  (function (M) {
--    var XX = /** @class */ (function () {
--        function XX(m1) {
-+    class XX {
+     class XX {
 +        m1;
-+        constructor(m1) {
+         constructor(m1) {
              this.m1 = m1;
-         }
--        return XX;
--    }());
-+    }
-     M.XX = XX;
-     function f(y) { }
-     M.f = f;
\ No newline at end of file
+         }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/crashInEmitTokenWithComment.js.diff b/testdata/baselines/reference/submodule/compiler/crashInEmitTokenWithComment.js.diff
deleted file mode 100644
index efa1cd0e11..0000000000
--- a/testdata/baselines/reference/submodule/compiler/crashInEmitTokenWithComment.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.crashInEmitTokenWithComment.js
-+++ new.crashInEmitTokenWithComment.js
-@@= skipped -8, +8 lines =@@
-
- //// [crashInEmitTokenWithComment.js]
- // GH#32358
--var fn = function (param) { return undefined; };
--var foo = { bar: 'a' };
--fn(function (_a) {
--    var _b = foo.bar, c = _a[_b];
--    return undefined;
--});
-+const fn = (param) => undefined;
-+const foo = { bar: 'a' };
-+fn(({ [foo.bar]: c }) => undefined);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/crashInGetTextOfComputedPropertyName.js.diff b/testdata/baselines/reference/submodule/compiler/crashInGetTextOfComputedPropertyName.js.diff
deleted file mode 100644
index b8854a1bfa..0000000000
--- a/testdata/baselines/reference/submodule/compiler/crashInGetTextOfComputedPropertyName.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.crashInGetTextOfComputedPropertyName.js
-+++ new.crashInGetTextOfComputedPropertyName.js
-@@= skipped -34, +34 lines =@@
- //// [crashInGetTextOfComputedPropertyName.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var itemId = 'some-id';
-+const itemId = 'some-id';
- // --- test on first level ---
--var items = {};
--var _a = items, _b = itemId, itemOk1 = _a[_b];
-+const items = {};
-+const { [itemId]: itemOk1 } = items;
- typeof itemOk1; // pass
--var objWithItems = { items: {} };
--var itemOk2 = objWithItems.items[itemId];
-+const objWithItems = { items: {} };
-+const itemOk2 = objWithItems.items[itemId];
- typeof itemOk2; // pass
--var _c = objWithItems, _d = _c.items /*happens when default value is provided*/, _e = _d === void 0 ? {} : _d /*happens when default value is provided*/, _f = itemId, itemWithTSError = _e[_f];
-+const { items: { [itemId]: itemWithTSError } = {} /*happens when default value is provided*/ } = objWithItems;
- // in order to re-produce the error, uncomment next line:
- typeof itemWithTSError; // :(
- // will result in:
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/crashInResolveInterface.js.diff b/testdata/baselines/reference/submodule/compiler/crashInResolveInterface.js.diff
deleted file mode 100644
index 7277b00ae5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/crashInResolveInterface.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.crashInResolveInterface.js
-+++ new.crashInResolveInterface.js
-@@= skipped -19, +19 lines =@@
-
- //// [file1.js]
- var q1;
--var x = q1.each(function (x) { return c.log(x); });
-+var x = q1.each(x => c.log(x));
- //// [file2.js]
- ///
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/crashInresolveReturnStatement.js.diff b/testdata/baselines/reference/submodule/compiler/crashInresolveReturnStatement.js.diff
deleted file mode 100644
index 975372bce3..0000000000
--- a/testdata/baselines/reference/submodule/compiler/crashInresolveReturnStatement.js.diff
+++ /dev/null
@@ -1,43 +0,0 @@
---- old.crashInresolveReturnStatement.js
-+++ new.crashInresolveReturnStatement.js
-@@= skipped -20, +20 lines =@@
-
-
- //// [crashInresolveReturnStatement.js]
--var WorkItemToolbar = /** @class */ (function () {
--    function WorkItemToolbar() {
--    }
--    WorkItemToolbar.prototype.onToolbarItemClick = function () {
-+class WorkItemToolbar {
-+    onToolbarItemClick() {
-         WITDialogs.createCopyOfWorkItem();
--    };
--    return WorkItemToolbar;
--}());
--var CreateCopyOfWorkItemDialog = /** @class */ (function () {
--    function CreateCopyOfWorkItemDialog() {
-     }
--    CreateCopyOfWorkItemDialog.prototype.getDialogResult = function () {
-+}
-+class CreateCopyOfWorkItemDialog {
-+    getDialogResult() {
-         return null;
--    };
--    return CreateCopyOfWorkItemDialog;
--}());
-+    }
-+}
- function createWorkItemDialog(dialogType) {
- }
--var WITDialogs = /** @class */ (function () {
--    function WITDialogs() {
--    }
--    WITDialogs.createCopyOfWorkItem = function () {
-+class WITDialogs {
-+    static createCopyOfWorkItem() {
-         createWorkItemDialog(CreateCopyOfWorkItemDialog);
--    };
--    return WITDialogs;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/crashInsourcePropertyIsRelatableToTargetProperty.js.diff b/testdata/baselines/reference/submodule/compiler/crashInsourcePropertyIsRelatableToTargetProperty.js.diff
index b8a8a0754d..db310f0560 100644
--- a/testdata/baselines/reference/submodule/compiler/crashInsourcePropertyIsRelatableToTargetProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/crashInsourcePropertyIsRelatableToTargetProperty.js.diff
@@ -1,42 +1,13 @@
 --- old.crashInsourcePropertyIsRelatableToTargetProperty.js
 +++ new.crashInsourcePropertyIsRelatableToTargetProperty.js
-@@= skipped -12, +12 lines =@@
-
+@@= skipped -13, +13 lines =@@
 
  //// [crashInsourcePropertyIsRelatableToTargetProperty.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.x = 1;
 -    }
--    return C;
--}());
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return D;
--}(C));
-+class C {
 +    x = 1;
-+}
-+class D extends C {
-+}
- function foo(x, items) {
-     return null;
+ }
+ class D extends C {
  }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/crashIntypeCheckInvocationExpression.js.diff b/testdata/baselines/reference/submodule/compiler/crashIntypeCheckInvocationExpression.js.diff
index b6f9de7848..abc14ae3ab 100644
--- a/testdata/baselines/reference/submodule/compiler/crashIntypeCheckInvocationExpression.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/crashIntypeCheckInvocationExpression.js.diff
@@ -12,7 +12,7 @@
 -    function doCompile(fileset, moduleType) {
 -        return undefined;
 -    }
--    exports.compileServer = task(function () {
+-    exports.compileServer = task(() => {
 -        var folder = path.join(), fileset = nake.fileSetSync(folder);
 -        return doCompile(fileset, moduleType);
 -    });
diff --git a/testdata/baselines/reference/submodule/compiler/crashIntypeCheckObjectCreationExpression.js.diff b/testdata/baselines/reference/submodule/compiler/crashIntypeCheckObjectCreationExpression.js.diff
index dfd2d508d6..7b623875d4 100644
--- a/testdata/baselines/reference/submodule/compiler/crashIntypeCheckObjectCreationExpression.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/crashIntypeCheckObjectCreationExpression.js.diff
@@ -8,16 +8,13 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.BuildWorkspaceService = void 0;
--    var BuildWorkspaceService = /** @class */ (function () {
--        function BuildWorkspaceService() {
--        }
--        BuildWorkspaceService.prototype.injectRequestService = function (service) {
+-    class BuildWorkspaceService {
+-        injectRequestService(service) {
 -            this.injectBuildService(new X(service));
--        };
--        BuildWorkspaceService.prototype.injectBuildService = function (service) {
--        };
--        return BuildWorkspaceService;
--    }());
+-        }
+-        injectBuildService(service) {
+-        }
+-    }
 -    exports.BuildWorkspaceService = BuildWorkspaceService;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/crashOnMethodSignatures.js.diff b/testdata/baselines/reference/submodule/compiler/crashOnMethodSignatures.js.diff
deleted file mode 100644
index fb9d26ff30..0000000000
--- a/testdata/baselines/reference/submodule/compiler/crashOnMethodSignatures.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.crashOnMethodSignatures.js
-+++ new.crashOnMethodSignatures.js
-@@= skipped -6, +6 lines =@@
-
-
- //// [crashOnMethodSignatures.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/crashRegressionTest.js.diff b/testdata/baselines/reference/submodule/compiler/crashRegressionTest.js.diff
index 54e6ef871d..30ca59df4b 100644
--- a/testdata/baselines/reference/submodule/compiler/crashRegressionTest.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/crashRegressionTest.js.diff
@@ -11,32 +11,22 @@
 +        let TemplateEngine;
          (function (TemplateEngine) {
              "use strict";
--            var StringTemplate = /** @class */ (function () {
--                function StringTemplate(templateStorage) {
 +            "use strict";
-+            class StringTemplate {
+             class StringTemplate {
 +                _templateStorage;
-+                constructor(templateStorage) {
+                 constructor(templateStorage) {
                      this._templateStorage = templateStorage;
                  }
--                StringTemplate.prototype.text = function (value) {
-+                text(value) {
-                     this._templateStorage.templateSources[this._name] = value;
--                };
--                return StringTemplate;
--            }());
--            var TemplateStorage = /** @class */ (function () {
--                function TemplateStorage() {
+@@= skipped -14, +16 lines =@@
+                 }
+             }
+             class TemplateStorage {
+-                constructor() {
 -                    this.templateSources = {};
 -                    this.templateData = {};
-                 }
--                return TemplateStorage;
--            }());
-+            }
-+            class TemplateStorage {
+-                }
 +                templateSources = {};
 +                templateData = {};
-+            }
+             }
              TemplateEngine.TemplateStorage = TemplateStorage;
-         })(TemplateEngine = Util.TemplateEngine || (Util.TemplateEngine = {}));
-     })(Util = MsPortal.Util || (MsPortal.Util = {}));
\ No newline at end of file
+         })(TemplateEngine = Util.TemplateEngine || (Util.TemplateEngine = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/createArray.js.diff b/testdata/baselines/reference/submodule/compiler/createArray.js.diff
deleted file mode 100644
index d7005cfd57..0000000000
--- a/testdata/baselines/reference/submodule/compiler/createArray.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.createArray.js
-+++ new.createArray.js
-@@= skipped -18, +18 lines =@@
-
- //// [createArray.js]
- var na = new number[];
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
- new C[];
- var ba = new boolean[];
- var sa = new string[];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileAccessors.js.diff b/testdata/baselines/reference/submodule/compiler/declFileAccessors.js.diff
index 5a6351a01c..528dc22ad7 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileAccessors.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileAccessors.js.diff
@@ -1,266 +1,6 @@
 --- old.declFileAccessors.js
 +++ new.declFileAccessors.js
-@@= skipped -104, +104 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.c1 = void 0;
- /** This is comment for c1*/
--var c1 = /** @class */ (function () {
--    function c1() {
--    }
--    Object.defineProperty(c1.prototype, "p3", {
--        /** getter property*/
--        get: function () {
--            return 10;
--        },
--        /** setter property*/
--        set: function (/** this is value*/ value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c1.prototype, "pp3", {
--        /** private getter property*/
--        get: function () {
--            return 10;
--        },
--        /** private setter property*/
--        set: function (/** this is value*/ value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c1, "s3", {
--        /** static getter property*/
--        get: function () {
--            return 10;
--        },
--        /** setter property*/
--        set: function (/** this is value*/ value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c1.prototype, "nc_p3", {
--        get: function () {
--            return 10;
--        },
--        set: function (value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c1.prototype, "nc_pp3", {
--        get: function () {
--            return 10;
--        },
--        set: function (value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c1, "nc_s3", {
--        get: function () {
--            return "";
--        },
--        set: function (value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c1.prototype, "onlyGetter", {
--        // Only getter property
--        get: function () {
--            return 10;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c1.prototype, "onlySetter", {
--        // Only setter property
--        set: function (value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return c1;
--}());
-+class c1 {
-+    /** getter property*/
-+    get p3() {
-+        return 10;
-+    }
-+    /** setter property*/
-+    set p3(/** this is value*/ value) {
-+    }
-+    /** private getter property*/
-+    get pp3() {
-+        return 10;
-+    }
-+    /** private setter property*/
-+    set pp3(/** this is value*/ value) {
-+    }
-+    /** static getter property*/
-+    static get s3() {
-+        return 10;
-+    }
-+    /** setter property*/
-+    static set s3(/** this is value*/ value) {
-+    }
-+    get nc_p3() {
-+        return 10;
-+    }
-+    set nc_p3(value) {
-+    }
-+    get nc_pp3() {
-+        return 10;
-+    }
-+    set nc_pp3(value) {
-+    }
-+    static get nc_s3() {
-+        return "";
-+    }
-+    static set nc_s3(value) {
-+    }
-+    // Only getter property
-+    get onlyGetter() {
-+        return 10;
-+    }
-+    // Only setter property
-+    set onlySetter(value) {
-+    }
-+}
- exports.c1 = c1;
- //// [declFileAccessors_1.js]
- /** This is comment for c2 - the global class*/
--var c2 = /** @class */ (function () {
--    function c2() {
--    }
--    Object.defineProperty(c2.prototype, "p3", {
--        /** getter property*/
--        get: function () {
--            return 10;
--        },
--        /** setter property*/
--        set: function (/** this is value*/ value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c2.prototype, "pp3", {
--        /** private getter property*/
--        get: function () {
--            return 10;
--        },
--        /** private setter property*/
--        set: function (/** this is value*/ value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c2, "s3", {
--        /** static getter property*/
--        get: function () {
--            return 10;
--        },
--        /** setter property*/
--        set: function (/** this is value*/ value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c2.prototype, "nc_p3", {
--        get: function () {
--            return 10;
--        },
--        set: function (value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c2.prototype, "nc_pp3", {
--        get: function () {
--            return 10;
--        },
--        set: function (value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c2, "nc_s3", {
--        get: function () {
--            return "";
--        },
--        set: function (value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c2.prototype, "onlyGetter", {
--        // Only getter property
--        get: function () {
--            return 10;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(c2.prototype, "onlySetter", {
--        // Only setter property
--        set: function (value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return c2;
--}());
-+class c2 {
-+    /** getter property*/
-+    get p3() {
-+        return 10;
-+    }
-+    /** setter property*/
-+    set p3(/** this is value*/ value) {
-+    }
-+    /** private getter property*/
-+    get pp3() {
-+        return 10;
-+    }
-+    /** private setter property*/
-+    set pp3(/** this is value*/ value) {
-+    }
-+    /** static getter property*/
-+    static get s3() {
-+        return 10;
-+    }
-+    /** setter property*/
-+    static set s3(/** this is value*/ value) {
-+    }
-+    get nc_p3() {
-+        return 10;
-+    }
-+    set nc_p3(value) {
-+    }
-+    get nc_pp3() {
-+        return 10;
-+    }
-+    set nc_pp3(value) {
-+    }
-+    static get nc_s3() {
-+        return "";
-+    }
-+    static set nc_s3(value) {
-+    }
-+    // Only getter property
-+    get onlyGetter() {
-+        return 10;
-+    }
-+    // Only setter property
-+    set onlySetter(value) {
-+    }
-+}
-
-
- //// [declFileAccessors_0.d.ts]
-@@= skipped -186, +116 lines =@@
+@@= skipped -220, +220 lines =@@
      private set nc_pp3(value);
      static get nc_s3(): string;
      static set nc_s3(value: string);
diff --git a/testdata/baselines/reference/submodule/compiler/declFileAliasUseBeforeDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/declFileAliasUseBeforeDeclaration.js.diff
deleted file mode 100644
index ce04db935b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileAliasUseBeforeDeclaration.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.declFileAliasUseBeforeDeclaration.js
-+++ new.declFileAliasUseBeforeDeclaration.js
-@@= skipped -10, +10 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Foo = void 0;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.Foo = Foo;
- //// [declFileAliasUseBeforeDeclaration_test.js]
- "use strict";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileClassExtendsNull.js.diff b/testdata/baselines/reference/submodule/compiler/declFileClassExtendsNull.js.diff
deleted file mode 100644
index 79ba7e372c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileClassExtendsNull.js.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- old.declFileClassExtendsNull.js
-+++ new.declFileClassExtendsNull.js
-@@= skipped -4, +4 lines =@@
- }
-
- //// [declFileClassExtendsNull.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var ExtendsNull = /** @class */ (function (_super) {
--    __extends(ExtendsNull, _super);
--    function ExtendsNull() {
--    }
--    return ExtendsNull;
--}(null));
-+class ExtendsNull extends null {
-+}
-
-
- //// [declFileClassExtendsNull.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileClassWithIndexSignature.js.diff b/testdata/baselines/reference/submodule/compiler/declFileClassWithIndexSignature.js.diff
deleted file mode 100644
index e50a1a4aac..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileClassWithIndexSignature.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.declFileClassWithIndexSignature.js
-+++ new.declFileClassWithIndexSignature.js
-@@= skipped -5, +5 lines =@@
- }
-
- //// [declFileClassWithIndexSignature.js]
--var BlockIntrinsics = /** @class */ (function () {
--    function BlockIntrinsics() {
--    }
--    return BlockIntrinsics;
--}());
-+class BlockIntrinsics {
-+}
-
-
- //// [declFileClassWithIndexSignature.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileClassWithStaticMethodReturningConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/declFileClassWithStaticMethodReturningConstructor.js.diff
deleted file mode 100644
index 66d5e3d1bb..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileClassWithStaticMethodReturningConstructor.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.declFileClassWithStaticMethodReturningConstructor.js
-+++ new.declFileClassWithStaticMethodReturningConstructor.js
-@@= skipped -10, +10 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Enhancement = void 0;
--var Enhancement = /** @class */ (function () {
--    function Enhancement() {
--    }
--    Enhancement.getType = function () {
-+class Enhancement {
-+    static getType() {
-         return this;
--    };
--    return Enhancement;
--}());
-+    }
-+}
- exports.Enhancement = Enhancement;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declFileConstructors.js.diff b/testdata/baselines/reference/submodule/compiler/declFileConstructors.js.diff
index 0a0e5e5915..319013060e 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileConstructors.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileConstructors.js.diff
@@ -1,193 +1,57 @@
 --- old.declFileConstructors.js
 +++ new.declFileConstructors.js
-@@= skipped -99, +99 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ConstructorWithParameterInitializer = exports.ConstructorWithOptionalParameterProperty = exports.ConstructorWithPrivateParameterProperty = exports.ConstructorWithPublicParameterProperty = exports.ConstructorWithOverloads = exports.ConstructorWithRestParamters = exports.ConstructorWithParameters = exports.SimpleConstructor = void 0;
--var SimpleConstructor = /** @class */ (function () {
-+class SimpleConstructor {
-     /** This comment should appear for foo*/
--    function SimpleConstructor() {
-+    constructor() {
-     }
--    return SimpleConstructor;
--}());
-+}
- exports.SimpleConstructor = SimpleConstructor;
--var ConstructorWithParameters = /** @class */ (function () {
-+class ConstructorWithParameters {
-     /** This is comment for function signature*/
--    function ConstructorWithParameters(/** this is comment about a*/ a, 
-+    constructor(/** this is comment about a*/ a, 
-     /** this is comment for b*/
-     b) {
-         var d = a;
-     }
--    return ConstructorWithParameters;
--}());
-+}
- exports.ConstructorWithParameters = ConstructorWithParameters;
--var ConstructorWithRestParamters = /** @class */ (function () {
--    function ConstructorWithRestParamters(a) {
--        var rests = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            rests[_i - 1] = arguments[_i];
--        }
-+class ConstructorWithRestParamters {
-+    constructor(a, ...rests) {
-         return a + rests.join("");
-     }
--    return ConstructorWithRestParamters;
--}());
-+}
- exports.ConstructorWithRestParamters = ConstructorWithRestParamters;
--var ConstructorWithOverloads = /** @class */ (function () {
--    function ConstructorWithOverloads(a) {
-+class ConstructorWithOverloads {
-+    constructor(a) {
-     }
--    return ConstructorWithOverloads;
--}());
-+}
+@@= skipped -126, +126 lines =@@
+ }
  exports.ConstructorWithOverloads = ConstructorWithOverloads;
--var ConstructorWithPublicParameterProperty = /** @class */ (function () {
--    function ConstructorWithPublicParameterProperty(x) {
-+class ConstructorWithPublicParameterProperty {
+ class ConstructorWithPublicParameterProperty {
 +    x;
-+    constructor(x) {
+     constructor(x) {
          this.x = x;
      }
--    return ConstructorWithPublicParameterProperty;
--}());
-+}
+ }
  exports.ConstructorWithPublicParameterProperty = ConstructorWithPublicParameterProperty;
--var ConstructorWithPrivateParameterProperty = /** @class */ (function () {
--    function ConstructorWithPrivateParameterProperty(x) {
-+class ConstructorWithPrivateParameterProperty {
+ class ConstructorWithPrivateParameterProperty {
 +    x;
-+    constructor(x) {
+     constructor(x) {
          this.x = x;
      }
--    return ConstructorWithPrivateParameterProperty;
--}());
-+}
+ }
  exports.ConstructorWithPrivateParameterProperty = ConstructorWithPrivateParameterProperty;
--var ConstructorWithOptionalParameterProperty = /** @class */ (function () {
--    function ConstructorWithOptionalParameterProperty(x) {
-+class ConstructorWithOptionalParameterProperty {
+ class ConstructorWithOptionalParameterProperty {
 +    x;
-+    constructor(x) {
+     constructor(x) {
          this.x = x;
      }
--    return ConstructorWithOptionalParameterProperty;
--}());
-+}
+ }
  exports.ConstructorWithOptionalParameterProperty = ConstructorWithOptionalParameterProperty;
--var ConstructorWithParameterInitializer = /** @class */ (function () {
--    function ConstructorWithParameterInitializer(x) {
--        if (x === void 0) { x = "hello"; }
-+class ConstructorWithParameterInitializer {
+ class ConstructorWithParameterInitializer {
 +    x;
-+    constructor(x = "hello") {
+     constructor(x = "hello") {
          this.x = x;
      }
--    return ConstructorWithParameterInitializer;
--}());
-+}
- exports.ConstructorWithParameterInitializer = ConstructorWithParameterInitializer;
- //// [declFileConstructors_1.js]
--var GlobalSimpleConstructor = /** @class */ (function () {
-+class GlobalSimpleConstructor {
-     /** This comment should appear for foo*/
--    function GlobalSimpleConstructor() {
-+    constructor() {
+@@= skipped -47, +51 lines =@@
      }
--    return GlobalSimpleConstructor;
--}());
--var GlobalConstructorWithParameters = /** @class */ (function () {
-+}
-+class GlobalConstructorWithParameters {
-     /** This is comment for function signature*/
--    function GlobalConstructorWithParameters(/** this is comment about a*/ a, 
-+    constructor(/** this is comment about a*/ a, 
-     /** this is comment for b*/
-     b) {
-         var d = a;
-     }
--    return GlobalConstructorWithParameters;
--}());
--var GlobalConstructorWithRestParamters = /** @class */ (function () {
--    function GlobalConstructorWithRestParamters(a) {
--        var rests = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            rests[_i - 1] = arguments[_i];
--        }
-+}
-+class GlobalConstructorWithRestParamters {
-+    constructor(a, ...rests) {
-         return a + rests.join("");
-     }
--    return GlobalConstructorWithRestParamters;
--}());
--var GlobalConstructorWithOverloads = /** @class */ (function () {
--    function GlobalConstructorWithOverloads(a) {
--    }
--    return GlobalConstructorWithOverloads;
--}());
--var GlobalConstructorWithPublicParameterProperty = /** @class */ (function () {
--    function GlobalConstructorWithPublicParameterProperty(x) {
--        this.x = x;
--    }
--    return GlobalConstructorWithPublicParameterProperty;
--}());
--var GlobalConstructorWithPrivateParameterProperty = /** @class */ (function () {
--    function GlobalConstructorWithPrivateParameterProperty(x) {
--        this.x = x;
--    }
--    return GlobalConstructorWithPrivateParameterProperty;
--}());
--var GlobalConstructorWithOptionalParameterProperty = /** @class */ (function () {
--    function GlobalConstructorWithOptionalParameterProperty(x) {
--        this.x = x;
--    }
--    return GlobalConstructorWithOptionalParameterProperty;
--}());
--var GlobalConstructorWithParameterInitializer = /** @class */ (function () {
--    function GlobalConstructorWithParameterInitializer(x) {
--        if (x === void 0) { x = "hello"; }
--        this.x = x;
--    }
--    return GlobalConstructorWithParameterInitializer;
--}());
-+}
-+class GlobalConstructorWithOverloads {
-+    constructor(a) {
-+    }
-+}
-+class GlobalConstructorWithPublicParameterProperty {
+ }
+ class GlobalConstructorWithPublicParameterProperty {
 +    x;
-+    constructor(x) {
-+        this.x = x;
-+    }
-+}
-+class GlobalConstructorWithPrivateParameterProperty {
+     constructor(x) {
+         this.x = x;
+     }
+ }
+ class GlobalConstructorWithPrivateParameterProperty {
 +    x;
-+    constructor(x) {
-+        this.x = x;
-+    }
-+}
-+class GlobalConstructorWithOptionalParameterProperty {
+     constructor(x) {
+         this.x = x;
+     }
+ }
+ class GlobalConstructorWithOptionalParameterProperty {
 +    x;
-+    constructor(x) {
-+        this.x = x;
-+    }
-+}
-+class GlobalConstructorWithParameterInitializer {
+     constructor(x) {
+         this.x = x;
+     }
+ }
+ class GlobalConstructorWithParameterInitializer {
 +    x;
-+    constructor(x = "hello") {
-+        this.x = x;
-+    }
-+}
-
-
- //// [declFileConstructors_0.d.ts]
\ No newline at end of file
+     constructor(x = "hello") {
+         this.x = x;
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileExportImportChain.js.diff b/testdata/baselines/reference/submodule/compiler/declFileExportImportChain.js.diff
index ed2354403f..401b983c75 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileExportImportChain.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileExportImportChain.js.diff
@@ -9,13 +9,10 @@
 -    "use strict";
 -    var m1;
 -    (function (m1) {
--        var m2;
+-        let m2;
 -        (function (m2) {
--            var c1 = /** @class */ (function () {
--                function c1() {
--                }
--                return c1;
--            }());
+-            class c1 {
+-            }
 -            m2.c1 = c1;
 -        })(m2 = m1.m2 || (m1.m2 = {}));
 -    })(m1 || (m1 = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/declFileExportImportChain2.js.diff b/testdata/baselines/reference/submodule/compiler/declFileExportImportChain2.js.diff
index ed2bed88be..a11463f3b2 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileExportImportChain2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileExportImportChain2.js.diff
@@ -9,13 +9,10 @@
 -    "use strict";
 -    var m1;
 -    (function (m1) {
--        var m2;
+-        let m2;
 -        (function (m2) {
--            var c1 = /** @class */ (function () {
--                function c1() {
--                }
--                return c1;
--            }());
+-            class c1 {
+-            }
 -            m2.c1 = c1;
 -        })(m2 = m1.m2 || (m1.m2 = {}));
 -    })(m1 || (m1 = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/declFileForClassWithMultipleBaseClasses.js.diff b/testdata/baselines/reference/submodule/compiler/declFileForClassWithMultipleBaseClasses.js.diff
deleted file mode 100644
index 00c7111330..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileForClassWithMultipleBaseClasses.js.diff
+++ /dev/null
@@ -1,42 +0,0 @@
---- old.declFileForClassWithMultipleBaseClasses.js
-+++ new.declFileForClassWithMultipleBaseClasses.js
-@@= skipped -28, +28 lines =@@
- }
-
- //// [declFileForClassWithMultipleBaseClasses.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.foo = function () { };
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--    }
--    B.prototype.bar = function () { };
--    return B;
--}());
--var D = /** @class */ (function () {
--    function D() {
--    }
--    D.prototype.baz = function () { };
--    D.prototype.bat = function () { };
--    D.prototype.foo = function () { };
--    D.prototype.bar = function () { };
--    return D;
--}());
-+class A {
-+    foo() { }
-+}
-+class B {
-+    bar() { }
-+}
-+class D {
-+    baz() { }
-+    bat() { }
-+    foo() { }
-+    bar() { }
-+}
-
-
- //// [declFileForClassWithMultipleBaseClasses.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileForClassWithPrivateOverloadedFunction.js.diff b/testdata/baselines/reference/submodule/compiler/declFileForClassWithPrivateOverloadedFunction.js.diff
deleted file mode 100644
index 6be70d73dd..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileForClassWithPrivateOverloadedFunction.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.declFileForClassWithPrivateOverloadedFunction.js
-+++ new.declFileForClassWithPrivateOverloadedFunction.js
-@@= skipped -7, +7 lines =@@
- }
-
- //// [declFileForClassWithPrivateOverloadedFunction.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function (x) { };
--    return C;
--}());
-+class C {
-+    foo(x) { }
-+}
-
-
- //// [declFileForClassWithPrivateOverloadedFunction.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileForFunctionTypeAsTypeParameter.js.diff b/testdata/baselines/reference/submodule/compiler/declFileForFunctionTypeAsTypeParameter.js.diff
deleted file mode 100644
index 40dba1585c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileForFunctionTypeAsTypeParameter.js.diff
+++ /dev/null
@@ -1,40 +0,0 @@
---- old.declFileForFunctionTypeAsTypeParameter.js
-+++ new.declFileForFunctionTypeAsTypeParameter.js
-@@= skipped -10, +10 lines =@@
-
-
- //// [declFileForFunctionTypeAsTypeParameter.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var X = /** @class */ (function () {
--    function X() {
--    }
--    return X;
--}());
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(X));
-+class X {
-+}
-+class C extends X {
-+}
-
-
- //// [declFileForFunctionTypeAsTypeParameter.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileForTypeParameters.js.diff b/testdata/baselines/reference/submodule/compiler/declFileForTypeParameters.js.diff
index 0338de8031..e8f8a807e2 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileForTypeParameters.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileForTypeParameters.js.diff
@@ -1,22 +1,10 @@
 --- old.declFileForTypeParameters.js
 +++ new.declFileForTypeParameters.js
-@@= skipped -8, +8 lines =@@
- }
+@@= skipped -9, +9 lines =@@
 
  //// [declFileForTypeParameters.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function (a) {
-+class C {
+ class C {
 +    x;
-+    foo(a) {
+     foo(a) {
          return this.x;
--    };
--    return C;
--}());
-+    }
-+}
-
-
- //// [declFileForTypeParameters.d.ts]
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileFunctions.js.diff b/testdata/baselines/reference/submodule/compiler/declFileFunctions.js.diff
deleted file mode 100644
index 68eba1e7eb..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileFunctions.js.diff
+++ /dev/null
@@ -1,54 +0,0 @@
---- old.declFileFunctions.js
-+++ new.declFileFunctions.js
-@@= skipped -96, +96 lines =@@
- b) {
-     var d = a;
- }
--function fooWithRestParameters(a) {
--    var rests = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        rests[_i - 1] = arguments[_i];
--    }
-+function fooWithRestParameters(a, ...rests) {
-     return a + rests.join("");
- }
- function fooWithOverloads(a) {
-@@= skipped -22, +18 lines =@@
- function fooWithTypeTypePredicateAndGeneric(a) {
-     return true;
- }
--function fooWithTypeTypePredicateAndRestParam(a) {
--    var rest = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        rest[_i - 1] = arguments[_i];
--    }
-+function fooWithTypeTypePredicateAndRestParam(a, ...rest) {
-     return true;
- }
- /** This comment should appear for nonExportedFoo*/
-@@= skipped -16, +12 lines =@@
- b) {
-     var d = a;
- }
--function nonExportedFooWithRestParameters(a) {
--    var rests = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        rests[_i - 1] = arguments[_i];
--    }
-+function nonExportedFooWithRestParameters(a, ...rests) {
-     return a + rests.join("");
- }
- function nonExportedFooWithOverloads(a) {
-@@= skipped -20, +16 lines =@@
- b) {
-     var d = a;
- }
--function globalfooWithRestParameters(a) {
--    var rests = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        rests[_i - 1] = arguments[_i];
--    }
-+function globalfooWithRestParameters(a, ...rests) {
-     return a + rests.join("");
- }
- function globalfooWithOverloads(a) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileGenericClassWithGenericExtendedClass.js.diff b/testdata/baselines/reference/submodule/compiler/declFileGenericClassWithGenericExtendedClass.js.diff
index 45173e1770..ce38028e08 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileGenericClassWithGenericExtendedClass.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileGenericClassWithGenericExtendedClass.js.diff
@@ -1,48 +1,9 @@
 --- old.declFileGenericClassWithGenericExtendedClass.js
 +++ new.declFileGenericClassWithGenericExtendedClass.js
-@@= skipped -14, +14 lines =@@
-
-
- //// [declFileGenericClassWithGenericExtendedClass.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Base = /** @class */ (function () {
--    function Base() {
--    }
--    return Base;
--}());
--var Derived = /** @class */ (function (_super) {
--    __extends(Derived, _super);
--    function Derived() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Derived;
--}(Base));
--var Baz = /** @class */ (function () {
--    function Baz() {
--    }
--    return Baz;
--}());
-+class Base {
-+}
-+class Derived extends Base {
-+}
-+class Baz {
+@@= skipped -19, +19 lines =@@
+ class Derived extends Base {
+ }
+ class Baz {
 +    derived;
-+}
-
+ }
 
- //// [declFileGenericClassWithGenericExtendedClass.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileGenericType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileGenericType.js.diff
index 4430f0cab2..5af8f004ce 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileGenericType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileGenericType.js.diff
@@ -1,76 +1,10 @@
 --- old.declFileGenericType.js
 +++ new.declFileGenericType.js
-@@= skipped -42, +42 lines =@@
-
- //// [declFileGenericType.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.j = exports.h = exports.g = exports.x = exports.e = exports.d = exports.c = exports.b = exports.a = exports.C = void 0;
- exports.f = f;
- var C;
- (function (C) {
--    var A = /** @class */ (function () {
--        function A() {
--        }
--        return A;
--    }());
-+    class A {
-+    }
-     C.A = A;
--    var B = /** @class */ (function () {
--        function B() {
--        }
--        return B;
--    }());
-+    class B {
-+    }
-     C.B = B;
-     function F(x) { return null; }
-     C.F = F;
-@@= skipped -44, +23 lines =@@
-     C.F5 = F5;
+@@= skipped -66, +66 lines =@@
      function F6(x) { return null; }
      C.F6 = F6;
--    var D = /** @class */ (function () {
--        function D(val) {
-+    class D {
+     class D {
 +        val;
-+        constructor(val) {
+         constructor(val) {
              this.val = val;
-         }
--        return D;
--    }());
-+    }
-     C.D = D;
- })(C || (exports.C = C = {}));
- exports.b = C.F;
-@@= skipped -15, +15 lines =@@
- exports.x = (new C.D(new C.A())).val;
- function f() { }
- exports.g = C.F5();
--var h = /** @class */ (function (_super) {
--    __extends(h, _super);
--    function h() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return h;
--}(C.A));
-+class h extends C.A {
-+}
- exports.h = h;
- exports.j = C.F6;
+         }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js.diff b/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js.diff
index b9736fe4e3..b8361a9497 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileGenericType2.js.diff
@@ -1,24 +1,6 @@
 --- old.declFileGenericType2.js
 +++ new.declFileGenericType2.js
-@@= skipped -43, +43 lines =@@
-
-
- //// [declFileGenericType2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
+@@= skipped -46, +46 lines =@@
  // Module
  var templa;
  (function (templa) {
@@ -28,20 +10,9 @@
 -        var mvc;
 +        let mvc;
          (function (mvc) {
--            var AbstractElementController = /** @class */ (function (_super) {
--                __extends(AbstractElementController, _super);
--                function AbstractElementController() {
--                    return _super.call(this) || this;
-+            class AbstractElementController extends templa.mvc.AbstractController {
-+                constructor() {
-+                    super();
-                 }
--                return AbstractElementController;
--            }(templa.mvc.AbstractController));
-+            }
-             mvc.AbstractElementController = AbstractElementController;
-         })(mvc = dom.mvc || (dom.mvc = {}));
-     })(dom = templa.dom || (templa.dom = {}));
+             class AbstractElementController extends templa.mvc.AbstractController {
+                 constructor() {
+@@= skipped -15, +15 lines =@@
  })(templa || (templa = {}));
  // Module
  (function (templa) {
@@ -54,25 +25,12 @@
 -            var composite;
 +            let composite;
              (function (composite) {
--                var AbstractCompositeElementController = /** @class */ (function (_super) {
--                    __extends(AbstractCompositeElementController, _super);
--                    function AbstractCompositeElementController() {
--                        var _this = _super.call(this) || this;
--                        _this._controllers = [];
--                        return _this;
-+                class AbstractCompositeElementController extends templa.dom.mvc.AbstractElementController {
+                 class AbstractCompositeElementController extends templa.dom.mvc.AbstractElementController {
 +                    _controllers;
-+                    constructor() {
-+                        super();
-+                        this._controllers = [];
-                     }
--                    return AbstractCompositeElementController;
--                }(templa.dom.mvc.AbstractElementController));
-+                }
-                 composite.AbstractCompositeElementController = AbstractCompositeElementController;
-             })(composite = mvc.composite || (mvc.composite = {}));
-         })(mvc = dom.mvc || (dom.mvc = {}));
-@@= skipped -79, +60 lines =@@
+                     constructor() {
+                         super();
+                         this._controllers = [];
+@@= skipped -41, +42 lines =@@
      interface IElementController extends templa.mvc.IController {
      }
  }
diff --git a/testdata/baselines/reference/submodule/compiler/declFileImportChainInExportAssignment.js.diff b/testdata/baselines/reference/submodule/compiler/declFileImportChainInExportAssignment.js.diff
index 416c2ec783..4a8556727c 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileImportChainInExportAssignment.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileImportChainInExportAssignment.js.diff
@@ -1,19 +1,6 @@
 --- old.declFileImportChainInExportAssignment.js
 +++ new.declFileImportChainInExportAssignment.js
-@@= skipped -14, +14 lines =@@
- "use strict";
- var m;
- (function (m) {
--    var c;
-+    let c;
-     (function (c_1) {
--        var c = /** @class */ (function () {
--            function c() {
--            }
--            return c;
--        }());
-+        class c {
-+        }
+@@= skipped -21, +21 lines =@@
          c_1.c = c;
      })(c = m.c || (m.c = {}));
  })(m || (m = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/declFileImportedTypeUseInTypeArgPosition.js.diff b/testdata/baselines/reference/submodule/compiler/declFileImportedTypeUseInTypeArgPosition.js.diff
deleted file mode 100644
index f01e229cf2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileImportedTypeUseInTypeArgPosition.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.declFileImportedTypeUseInTypeArgPosition.js
-+++ new.declFileImportedTypeUseInTypeArgPosition.js
-@@= skipped -15, +15 lines =@@
-
-
- //// [declFileImportedTypeUseInTypeArgPosition.js]
--var List = /** @class */ (function () {
--    function List() {
--    }
--    return List;
--}());
-+class List {
-+}
-
-
- //// [declFileImportedTypeUseInTypeArgPosition.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js.diff b/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js.diff
index 34ea529a6c..6ae186e710 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileInternalAliases.js.diff
@@ -1,20 +1,6 @@
 --- old.declFileInternalAliases.js
 +++ new.declFileInternalAliases.js
-@@= skipped -16, +16 lines =@@
- //// [declFileInternalAliases.js]
- var m;
- (function (m) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     m.c = c;
- })(m || (m = {}));
- var m1;
-@@= skipped -26, +23 lines =@@
+@@= skipped -39, +39 lines =@@
  }
  declare namespace m1 {
      import x = m.c;
diff --git a/testdata/baselines/reference/submodule/compiler/declFileMethods.js.diff b/testdata/baselines/reference/submodule/compiler/declFileMethods.js.diff
deleted file mode 100644
index e4e17c1645..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileMethods.js.diff
+++ /dev/null
@@ -1,241 +0,0 @@
---- old.declFileMethods.js
-+++ new.declFileMethods.js
-@@= skipped -192, +192 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.c1 = void 0;
--var c1 = /** @class */ (function () {
--    function c1() {
--    }
-+class c1 {
-     /** This comment should appear for foo*/
--    c1.prototype.foo = function () {
--    };
-+    foo() {
-+    }
-     /** This is comment for function signature*/
--    c1.prototype.fooWithParameters = function (/** this is comment about a*/ a, 
-+    fooWithParameters(/** this is comment about a*/ a, 
-     /** this is comment for b*/
-     b) {
-         var d = a;
--    };
--    c1.prototype.fooWithRestParameters = function (a) {
--        var rests = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            rests[_i - 1] = arguments[_i];
--        }
-+    }
-+    fooWithRestParameters(a, ...rests) {
-         return a + rests.join("");
--    };
--    c1.prototype.fooWithOverloads = function (a) {
-+    }
-+    fooWithOverloads(a) {
-         return a;
--    };
-+    }
-     /** This comment should appear for privateFoo*/
--    c1.prototype.privateFoo = function () {
--    };
-+    privateFoo() {
-+    }
-     /** This is comment for function signature*/
--    c1.prototype.privateFooWithParameters = function (/** this is comment about a*/ a, 
-+    privateFooWithParameters(/** this is comment about a*/ a, 
-     /** this is comment for b*/
-     b) {
-         var d = a;
--    };
--    c1.prototype.privateFooWithRestParameters = function (a) {
--        var rests = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            rests[_i - 1] = arguments[_i];
--        }
-+    }
-+    privateFooWithRestParameters(a, ...rests) {
-         return a + rests.join("");
--    };
--    c1.prototype.privateFooWithOverloads = function (a) {
-+    }
-+    privateFooWithOverloads(a) {
-         return a;
--    };
-+    }
-     /** This comment should appear for static foo*/
--    c1.staticFoo = function () {
--    };
-+    static staticFoo() {
-+    }
-     /** This is comment for function signature*/
--    c1.staticFooWithParameters = function (/** this is comment about a*/ a, 
-+    static staticFooWithParameters(/** this is comment about a*/ a, 
-     /** this is comment for b*/
-     b) {
-         var d = a;
--    };
--    c1.staticFooWithRestParameters = function (a) {
--        var rests = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            rests[_i - 1] = arguments[_i];
--        }
-+    }
-+    static staticFooWithRestParameters(a, ...rests) {
-         return a + rests.join("");
--    };
--    c1.staticFooWithOverloads = function (a) {
-+    }
-+    static staticFooWithOverloads(a) {
-         return a;
--    };
-+    }
-     /** This comment should appear for privateStaticFoo*/
--    c1.privateStaticFoo = function () {
--    };
-+    static privateStaticFoo() {
-+    }
-     /** This is comment for function signature*/
--    c1.privateStaticFooWithParameters = function (/** this is comment about a*/ a, 
-+    static privateStaticFooWithParameters(/** this is comment about a*/ a, 
-     /** this is comment for b*/
-     b) {
-         var d = a;
--    };
--    c1.privateStaticFooWithRestParameters = function (a) {
--        var rests = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            rests[_i - 1] = arguments[_i];
--        }
-+    }
-+    static privateStaticFooWithRestParameters(a, ...rests) {
-         return a + rests.join("");
--    };
--    c1.privateStaticFooWithOverloads = function (a) {
-+    }
-+    static privateStaticFooWithOverloads(a) {
-         return a;
--    };
--    return c1;
--}());
-+    }
-+}
- exports.c1 = c1;
- //// [declFileMethods_1.js]
--var c2 = /** @class */ (function () {
--    function c2() {
--    }
-+class c2 {
-     /** This comment should appear for foo*/
--    c2.prototype.foo = function () {
--    };
-+    foo() {
-+    }
-     /** This is comment for function signature*/
--    c2.prototype.fooWithParameters = function (/** this is comment about a*/ a, 
-+    fooWithParameters(/** this is comment about a*/ a, 
-     /** this is comment for b*/
-     b) {
-         var d = a;
--    };
--    c2.prototype.fooWithRestParameters = function (a) {
--        var rests = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            rests[_i - 1] = arguments[_i];
--        }
-+    }
-+    fooWithRestParameters(a, ...rests) {
-         return a + rests.join("");
--    };
--    c2.prototype.fooWithOverloads = function (a) {
-+    }
-+    fooWithOverloads(a) {
-         return a;
--    };
-+    }
-     /** This comment should appear for privateFoo*/
--    c2.prototype.privateFoo = function () {
--    };
-+    privateFoo() {
-+    }
-     /** This is comment for function signature*/
--    c2.prototype.privateFooWithParameters = function (/** this is comment about a*/ a, 
-+    privateFooWithParameters(/** this is comment about a*/ a, 
-     /** this is comment for b*/
-     b) {
-         var d = a;
--    };
--    c2.prototype.privateFooWithRestParameters = function (a) {
--        var rests = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            rests[_i - 1] = arguments[_i];
--        }
-+    }
-+    privateFooWithRestParameters(a, ...rests) {
-         return a + rests.join("");
--    };
--    c2.prototype.privateFooWithOverloads = function (a) {
-+    }
-+    privateFooWithOverloads(a) {
-         return a;
--    };
-+    }
-     /** This comment should appear for static foo*/
--    c2.staticFoo = function () {
--    };
-+    static staticFoo() {
-+    }
-     /** This is comment for function signature*/
--    c2.staticFooWithParameters = function (/** this is comment about a*/ a, 
-+    static staticFooWithParameters(/** this is comment about a*/ a, 
-     /** this is comment for b*/
-     b) {
-         var d = a;
--    };
--    c2.staticFooWithRestParameters = function (a) {
--        var rests = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            rests[_i - 1] = arguments[_i];
--        }
-+    }
-+    static staticFooWithRestParameters(a, ...rests) {
-         return a + rests.join("");
--    };
--    c2.staticFooWithOverloads = function (a) {
-+    }
-+    static staticFooWithOverloads(a) {
-         return a;
--    };
-+    }
-     /** This comment should appear for privateStaticFoo*/
--    c2.privateStaticFoo = function () {
--    };
-+    static privateStaticFoo() {
-+    }
-     /** This is comment for function signature*/
--    c2.privateStaticFooWithParameters = function (/** this is comment about a*/ a, 
-+    static privateStaticFooWithParameters(/** this is comment about a*/ a, 
-     /** this is comment for b*/
-     b) {
-         var d = a;
--    };
--    c2.privateStaticFooWithRestParameters = function (a) {
--        var rests = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            rests[_i - 1] = arguments[_i];
--        }
-+    }
-+    static privateStaticFooWithRestParameters(a, ...rests) {
-         return a + rests.join("");
--    };
--    c2.privateStaticFooWithOverloads = function (a) {
-+    }
-+    static privateStaticFooWithOverloads(a) {
-         return a;
--    };
--    return c2;
--}());
-+    }
-+}
-
-
- //// [declFileMethods_0.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileModuleAssignmentInObjectLiteralProperty.js.diff b/testdata/baselines/reference/submodule/compiler/declFileModuleAssignmentInObjectLiteralProperty.js.diff
deleted file mode 100644
index da1ad74bb7..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileModuleAssignmentInObjectLiteralProperty.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.declFileModuleAssignmentInObjectLiteralProperty.js
-+++ new.declFileModuleAssignmentInObjectLiteralProperty.js
-@@= skipped -12, +12 lines =@@
- //// [declFileModuleAssignmentInObjectLiteralProperty.js]
- var m1;
- (function (m1) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     m1.c = c;
- })(m1 || (m1 = {}));
- var d = {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileModuleContinuation.js.diff b/testdata/baselines/reference/submodule/compiler/declFileModuleContinuation.js.diff
index ec69d73ecf..0180c73d9b 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileModuleContinuation.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileModuleContinuation.js.diff
@@ -10,13 +10,5 @@
 -        var C;
 +        let C;
          (function (C) {
--            var W = /** @class */ (function () {
--                function W() {
--                }
--                return W;
--            }());
-+            class W {
-+            }
-             C.W = W;
-         })(C = B.C || (B.C = {}));
-     })(B = A.B || (A.B = {}));
\ No newline at end of file
+             class W {
+             }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileModuleWithPropertyOfTypeModule.js.diff b/testdata/baselines/reference/submodule/compiler/declFileModuleWithPropertyOfTypeModule.js.diff
deleted file mode 100644
index 0c56557599..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileModuleWithPropertyOfTypeModule.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.declFileModuleWithPropertyOfTypeModule.js
-+++ new.declFileModuleWithPropertyOfTypeModule.js
-@@= skipped -10, +10 lines =@@
- //// [declFileModuleWithPropertyOfTypeModule.js]
- var m;
- (function (m) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     m.c = c;
-     m.a = m;
- })(m || (m = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFilePrivateMethodOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/declFilePrivateMethodOverloads.js.diff
deleted file mode 100644
index 336be73c0c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFilePrivateMethodOverloads.js.diff
+++ /dev/null
@@ -1,28 +0,0 @@
---- old.declFilePrivateMethodOverloads.js
-+++ new.declFilePrivateMethodOverloads.js
-@@= skipped -24, +24 lines =@@
- }
-
- //// [declFilePrivateMethodOverloads.js]
--var c1 = /** @class */ (function () {
--    function c1() {
--    }
--    c1.prototype._forEachBindingContext = function (context, fn) {
--        // Function here
--    };
--    c1.prototype.overloadWithArityDifference = function (context) {
--        // Function here
--    };
--    return c1;
--}());
-+class c1 {
-+    _forEachBindingContext(context, fn) {
-+        // Function here
-+    }
-+    overloadWithArityDifference(context) {
-+        // Function here
-+    }
-+}
-
-
- //// [declFilePrivateMethodOverloads.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFilePrivateStatic.js.diff b/testdata/baselines/reference/submodule/compiler/declFilePrivateStatic.js.diff
index 721ab2df37..3a10a0258f 100644
--- a/testdata/baselines/reference/submodule/compiler/declFilePrivateStatic.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFilePrivateStatic.js.diff
@@ -4,35 +4,19 @@
  }
 
  //// [declFilePrivateStatic.js]
--var C = /** @class */ (function () {
--    function C() {
+-let C = (() => {
+-    class C {
+-        static a() { }
+-        static b() { }
+-        static get c() { return 1; }
+-        static get d() { return 1; }
+-        static set e(v) { }
+-        static set f(v) { }
 -    }
--    C.a = function () { };
--    C.b = function () { };
--    Object.defineProperty(C, "c", {
--        get: function () { return 1; },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C, "d", {
--        get: function () { return 1; },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C, "e", {
--        set: function (v) { },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C, "f", {
--        set: function (v) { },
--        enumerable: false,
--        configurable: true
--    });
 -    C.x = 1;
 -    C.y = 1;
 -    return C;
--}());
+-})();
 +class C {
 +    static x = 1;
 +    static y = 1;
diff --git a/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js.diff b/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js.diff
index cdc79e1bda..8904cd8559 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileRegressionTests.js.diff
@@ -1,11 +1,6 @@
 --- old.declFileRegressionTests.js
 +++ new.declFileRegressionTests.js
-@@= skipped -9, +9 lines =@@
- //// [declFileRegressionTests.js]
- // 'null' not converted to 'any' in d.ts
- // function types not piped through correctly
--var n = { w: null, x: '', y: function () { }, z: 32 };
-+var n = { w: null, x: '', y: () => { }, z: 32 };
+@@= skipped -13, +13 lines =@@
 
 
  //// [declFileRegressionTests.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declFileRestParametersOfFunctionAndFunctionType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileRestParametersOfFunctionAndFunctionType.js.diff
deleted file mode 100644
index 07cddb2f7e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileRestParametersOfFunctionAndFunctionType.js.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- old.declFileRestParametersOfFunctionAndFunctionType.js
-+++ new.declFileRestParametersOfFunctionAndFunctionType.js
-@@= skipped -11, +11 lines =@@
-
-
- //// [declFileRestParametersOfFunctionAndFunctionType.js]
--function f1() {
--    var args = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        args[_i] = arguments[_i];
--    }
--}
-+function f1(...args) { }
- function f2(x) { }
- function f3(x) { }
- function f4() { }
- function f5() { }
--var f6 = function () { return [10]; };
-+var f6 = () => { return [10]; };
-
-
- //// [declFileRestParametersOfFunctionAndFunctionType.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js.diff
index 9709f3cc4c..591b91a171 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationArrayType.js.diff
@@ -1,59 +1,6 @@
 --- old.declFileTypeAnnotationArrayType.js
 +++ new.declFileTypeAnnotationArrayType.js
-@@= skipped -52, +52 lines =@@
- }
-
- //// [declFileTypeAnnotationArrayType.js]
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
-+}
- var m;
- (function (m) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     m.c = c;
--    var g = /** @class */ (function () {
--        function g() {
--        }
--        return g;
--    }());
-+    class g {
-+    }
-     m.g = g;
- })(m || (m = {}));
--var g = /** @class */ (function () {
--    function g() {
--    }
--    return g;
--}());
-+class g {
-+}
- // Just the name
- function foo() {
-     return [new c()];
-@@= skipped -55, +43 lines =@@
- }
- // Array of function types
- function foo9() {
--    return [function () { return new c(); }];
-+    return [() => new c()];
- }
- function foo10() {
--    return [function () { return new c(); }];
-+    return [() => new c()];
- }
-
-
-@@= skipped -18, +18 lines =@@
+@@= skipped -113, +113 lines =@@
  }
  declare class g {
  }
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationParenType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationParenType.js.diff
index 079bee8a57..e7f4b1ba0d 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationParenType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationParenType.js.diff
@@ -1,25 +1,10 @@
 --- old.declFileTypeAnnotationParenType.js
 +++ new.declFileTypeAnnotationParenType.js
-@@= skipped -11, +11 lines =@@
- var l = (() => new c()) || "";
+@@= skipped -12, +12 lines =@@
 
  //// [declFileTypeAnnotationParenType.js]
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
--var x = [function () { return new c(); }];
--var y = [function () { return new c(); }];
--var k = (function () { return new c(); }) || "";
--var l = (function () { return new c(); }) || "";
-+class c {
+ class c {
 +    p;
-+}
-+var x = [() => new c()];
-+var y = [() => new c()];
-+var k = (() => new c()) || "";
-+var l = (() => new c()) || "";
-
-
- //// [declFileTypeAnnotationParenType.d.ts]
\ No newline at end of file
+ }
+ var x = [() => new c()];
+ var y = [() => new c()];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js.diff
index 90fcb2b81c..0080dfeb2e 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTupleType.js.diff
@@ -1,51 +1,6 @@
 --- old.declFileTypeAnnotationTupleType.js
 +++ new.declFileTypeAnnotationTupleType.js
-@@= skipped -19, +19 lines =@@
- var y = x;
-
- //// [declFileTypeAnnotationTupleType.js]
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
-+}
- var m;
- (function (m) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     m.c = c;
--    var g = /** @class */ (function () {
--        function g() {
--        }
--        return g;
--    }());
-+    class g {
-+    }
-     m.g = g;
- })(m || (m = {}));
--var g = /** @class */ (function () {
--    function g() {
--    }
--    return g;
--}());
-+class g {
-+}
- // Just the name
- var k = [new c(), new m.c()];
- var l = k;
--var x = [new g(), new m.g(), function () { return new c(); }];
-+var x = [new g(), new m.g(), () => new c()];
- var y = x;
-
-
-@@= skipped -43, +31 lines =@@
+@@= skipped -50, +50 lines =@@
  }
  declare class g {
  }
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeAlias.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeAlias.js.diff
deleted file mode 100644
index b5e6c87ae5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeAlias.js.diff
+++ /dev/null
@@ -1,41 +0,0 @@
---- old.declFileTypeAnnotationTypeAlias.js
-+++ new.declFileTypeAnnotationTypeAlias.js
-@@= skipped -34, +34 lines =@@
- //// [declFileTypeAnnotationTypeAlias.js]
- var M;
- (function (M) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     M.c = c;
--    var m;
-+    let m;
-     (function (m) {
--        var c = /** @class */ (function () {
--            function c() {
--            }
--            return c;
--        }());
-+        class c {
-+        }
-         m.c = c;
-     })(m = M.m || (M.m = {}));
- })(M || (M = {}));
- (function (M) {
--    var N;
-+    let N;
-     (function (N) {
--        var Window = /** @class */ (function () {
--            function Window() {
--            }
--            return Window;
--        }());
-+        class Window {
-+        }
-         N.Window = Window;
-     })(N = M.N || (M.N = {}));
- })(M || (M = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js.diff
index b887e1e641..854e225b8f 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeLiteral.js.diff
@@ -1,36 +1,6 @@
 --- old.declFileTypeAnnotationTypeLiteral.js
 +++ new.declFileTypeAnnotationTypeLiteral.js
-@@= skipped -40, +40 lines =@@
- var z: new (a: string) => m.c;
-
- //// [declFileTypeAnnotationTypeLiteral.js]
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
--var g = /** @class */ (function () {
--    function g() {
--    }
--    return g;
--}());
-+class c {
-+}
-+class g {
-+}
- var m;
- (function (m) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     m.c = c;
- })(m || (m = {}));
- // Object literal with everything
-@@= skipped -36, +27 lines =@@
+@@= skipped -67, +67 lines =@@
      class c {
      }
  }
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js.diff
index d935307e23..21e11db8be 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeQuery.js.diff
@@ -1,46 +1,6 @@
 --- old.declFileTypeAnnotationTypeQuery.js
 +++ new.declFileTypeAnnotationTypeQuery.js
-@@= skipped -44, +44 lines =@@
- }
-
- //// [declFileTypeAnnotationTypeQuery.js]
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
-+}
- var m;
- (function (m) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     m.c = c;
--    var g = /** @class */ (function () {
--        function g() {
--        }
--        return g;
--    }());
-+    class g {
-+    }
-     m.g = g;
- })(m || (m = {}));
--var g = /** @class */ (function () {
--    function g() {
--    }
--    return g;
--}());
-+class g {
-+}
- // Just the name
- function foo() {
-     return c;
-@@= skipped -66, +54 lines =@@
+@@= skipped -98, +98 lines =@@
  }
  declare class g {
  }
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js.diff
index 91cf98c2d6..6889f13a07 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationTypeReference.js.diff
@@ -1,46 +1,6 @@
 --- old.declFileTypeAnnotationTypeReference.js
 +++ new.declFileTypeAnnotationTypeReference.js
-@@= skipped -44, +44 lines =@@
- }
-
- //// [declFileTypeAnnotationTypeReference.js]
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
-+}
- var m;
- (function (m) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     m.c = c;
--    var g = /** @class */ (function () {
--        function g() {
--        }
--        return g;
--    }());
-+    class g {
-+    }
-     m.g = g;
- })(m || (m = {}));
--var g = /** @class */ (function () {
--    function g() {
--    }
--    return g;
--}());
-+class g {
-+}
- // Just the name
- function foo() {
-     return new c();
-@@= skipped -66, +54 lines =@@
+@@= skipped -98, +98 lines =@@
  }
  declare class g {
  }
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js.diff
index 6495a1777a..93c2fbcd18 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationUnionType.js.diff
@@ -1,57 +1,28 @@
 --- old.declFileTypeAnnotationUnionType.js
 +++ new.declFileTypeAnnotationUnionType.js
-@@= skipped -23, +23 lines =@@
- var y = new g() || new m.g() || (() => new c());
+@@= skipped -24, +24 lines =@@
 
  //// [declFileTypeAnnotationUnionType.js]
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
+ class c {
 +    p;
-+}
+ }
  var m;
  (function (m) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
+     class c {
 +        q;
-+    }
+     }
      m.c = c;
--    var g = /** @class */ (function () {
--        function g() {
--        }
--        return g;
--    }());
-+    class g {
+     class g {
 +        r;
-+    }
+     }
      m.g = g;
  })(m || (m = {}));
--var g = /** @class */ (function () {
--    function g() {
--    }
--    return g;
--}());
-+class g {
+ class g {
 +    s;
-+}
+ }
  // Just the name
  var k = new c() || new m.c();
- var l = new c() || new m.c();
--var x = new g() || new m.g() || (function () { return new c(); });
--var y = new g() || new m.g() || (function () { return new c(); });
-+var x = new g() || new m.g() || (() => new c());
-+var y = new g() || new m.g() || (() => new c());
-
-
- //// [declFileTypeAnnotationUnionType.d.ts]
-@@= skipped -47, +39 lines =@@
+@@= skipped -34, +38 lines =@@
  declare class g {
      private s;
  }
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js.diff
index ff69420dbe..4a1c92754b 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorAccessors.js.diff
@@ -1,245 +1,6 @@
 --- old.declFileTypeAnnotationVisibilityErrorAccessors.js
 +++ new.declFileTypeAnnotationVisibilityErrorAccessors.js
-@@= skipped -103, +103 lines =@@
- //// [declFileTypeAnnotationVisibilityErrorAccessors.js]
- var m;
- (function (m) {
--    var private1 = /** @class */ (function () {
--        function private1() {
--        }
--        return private1;
--    }());
--    var public1 = /** @class */ (function () {
--        function public1() {
--        }
--        return public1;
--    }());
-+    class private1 {
-+    }
-+    class public1 {
-+    }
-     m.public1 = public1;
--    var m2;
-+    let m2;
-     (function (m2) {
--        var public2 = /** @class */ (function () {
--            function public2() {
--            }
--            return public2;
--        }());
-+        class public2 {
-+        }
-         m2.public2 = public2;
-     })(m2 || (m2 = {}));
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        Object.defineProperty(c.prototype, "foo1", {
--            // getter with annotation
--            get: function () {
--                return;
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo2", {
--            // getter without annotation
--            get: function () {
--                return new private1();
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo3", {
--            // setter with annotation
--            set: function (param) {
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo4", {
--            // Both - getter without annotation, setter with annotation
--            get: function () {
--                return new private1();
--            },
--            set: function (param) {
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo5", {
--            // Both - with annotation
--            get: function () {
--                return;
--            },
--            set: function (param) {
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo11", {
--            // getter with annotation
--            get: function () {
--                return;
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo12", {
--            // getter without annotation
--            get: function () {
--                return new public1();
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo13", {
--            // setter with annotation
--            set: function (param) {
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo14", {
--            // Both - getter without annotation, setter with annotation
--            get: function () {
--                return new public1();
--            },
--            set: function (param) {
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo15", {
--            // Both - with annotation
--            get: function () {
--                return;
--            },
--            set: function (param) {
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo111", {
--            // getter with annotation
--            get: function () {
--                return;
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo112", {
--            // getter without annotation
--            get: function () {
--                return new m2.public2();
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo113", {
--            // setter with annotation
--            set: function (param) {
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo114", {
--            // Both - getter without annotation, setter with annotation
--            get: function () {
--                return new m2.public2();
--            },
--            set: function (param) {
--            },
--            enumerable: false,
--            configurable: true
--        });
--        Object.defineProperty(c.prototype, "foo115", {
--            // Both - with annotation
--            get: function () {
--                return;
--            },
--            set: function (param) {
--            },
--            enumerable: false,
--            configurable: true
--        });
--        return c;
--    }());
-+    class c {
-+        // getter with annotation
-+        get foo1() {
-+            return;
-+        }
-+        // getter without annotation
-+        get foo2() {
-+            return new private1();
-+        }
-+        // setter with annotation
-+        set foo3(param) {
-+        }
-+        // Both - getter without annotation, setter with annotation
-+        get foo4() {
-+            return new private1();
-+        }
-+        set foo4(param) {
-+        }
-+        // Both - with annotation
-+        get foo5() {
-+            return;
-+        }
-+        set foo5(param) {
-+        }
-+        // getter with annotation
-+        get foo11() {
-+            return;
-+        }
-+        // getter without annotation
-+        get foo12() {
-+            return new public1();
-+        }
-+        // setter with annotation
-+        set foo13(param) {
-+        }
-+        // Both - getter without annotation, setter with annotation
-+        get foo14() {
-+            return new public1();
-+        }
-+        set foo14(param) {
-+        }
-+        // Both - with annotation
-+        get foo15() {
-+            return;
-+        }
-+        set foo15(param) {
-+        }
-+        // getter with annotation
-+        get foo111() {
-+            return;
-+        }
-+        // getter without annotation
-+        get foo112() {
-+            return new m2.public2();
-+        }
-+        // setter with annotation
-+        set foo113(param) {
-+        }
-+        // Both - getter without annotation, setter with annotation
-+        get foo114() {
-+            return new m2.public2();
-+        }
-+        set foo114(param) {
-+        }
-+        // Both - with annotation
-+        get foo115() {
-+            return;
-+        }
-+        set foo115(param) {
-+        }
-+    }
-     m.c = c;
- })(m || (m = {}));
-
-@@= skipped -169, +97 lines =@@
+@@= skipped -200, +200 lines =@@
          }
      }
      export class c {
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.js.diff
deleted file mode 100644
index 6239ceb95b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.js.diff
+++ /dev/null
@@ -1,77 +0,0 @@
---- old.declFileTypeAnnotationVisibilityErrorParameterOfFunction.js
-+++ new.declFileTypeAnnotationVisibilityErrorParameterOfFunction.js
-@@= skipped -48, +48 lines =@@
- //// [declFileTypeAnnotationVisibilityErrorParameterOfFunction.js]
- var m;
- (function (m) {
--    var private1 = /** @class */ (function () {
--        function private1() {
--        }
--        return private1;
--    }());
--    var public1 = /** @class */ (function () {
--        function public1() {
--        }
--        return public1;
--    }());
-+    class private1 {
-+    }
-+    class public1 {
-+    }
-     m.public1 = public1;
-     // Directly using names from this module
-     function foo1(param) {
-     }
--    function foo2(param) {
--        if (param === void 0) { param = new private1(); }
-+    function foo2(param = new private1()) {
-     }
-     function foo3(param) {
-     }
-     m.foo3 = foo3;
--    function foo4(param) {
--        if (param === void 0) { param = new private1(); }
-+    function foo4(param = new private1()) {
-     }
-     m.foo4 = foo4;
-     function foo11(param) {
-     }
--    function foo12(param) {
--        if (param === void 0) { param = new public1(); }
-+    function foo12(param = new public1()) {
-     }
-     function foo13(param) {
-     }
-     m.foo13 = foo13;
--    function foo14(param) {
--        if (param === void 0) { param = new public1(); }
-+    function foo14(param = new public1()) {
-     }
-     m.foo14 = foo14;
--    var m2;
-+    let m2;
-     (function (m2) {
--        var public2 = /** @class */ (function () {
--            function public2() {
--            }
--            return public2;
--        }());
-+        class public2 {
-+        }
-         m2.public2 = public2;
-     })(m2 || (m2 = {}));
-     function foo111(param) {
-     }
--    function foo112(param) {
--        if (param === void 0) { param = new m2.public2(); }
-+    function foo112(param = new m2.public2()) {
-     }
-     function foo113(param) {
-     }
-     m.foo113 = foo113;
--    function foo114(param) {
--        if (param === void 0) { param = new m2.public2(); }
-+    function foo114(param = new m2.public2()) {
-     }
-     m.foo114 = foo114;
- })(m || (m = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.js.diff
deleted file mode 100644
index e2576da246..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.js.diff
+++ /dev/null
@@ -1,40 +0,0 @@
---- old.declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.js
-+++ new.declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.js
-@@= skipped -60, +60 lines =@@
- //// [declFileTypeAnnotationVisibilityErrorReturnTypeOfFunction.js]
- var m;
- (function (m) {
--    var private1 = /** @class */ (function () {
--        function private1() {
--        }
--        return private1;
--    }());
--    var public1 = /** @class */ (function () {
--        function public1() {
--        }
--        return public1;
--    }());
-+    class private1 {
-+    }
-+    class public1 {
-+    }
-     m.public1 = public1;
-     // Directly using names from this module
-     function foo1() {
-@@= skipped -40, +34 lines =@@
-         return new public1();
-     }
-     m.foo14 = foo14;
--    var m2;
-+    let m2;
-     (function (m2) {
--        var public2 = /** @class */ (function () {
--            function public2() {
--            }
--            return public2;
--        }());
-+        class public2 {
-+        }
-         m2.public2 = public2;
-     })(m2 || (m2 = {}));
-     function foo111() {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js.diff
index b68f39e135..2b2bc3ea7f 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeAlias.js.diff
@@ -1,67 +1,6 @@
 --- old.declFileTypeAnnotationVisibilityErrorTypeAlias.js
 +++ new.declFileTypeAnnotationVisibilityErrorTypeAlias.js
-@@= skipped -44, +44 lines =@@
- //// [declFileTypeAnnotationVisibilityErrorTypeAlias.js]
- var M;
- (function (M) {
--    var N;
-+    let N;
-     (function (N) {
--        var Window = /** @class */ (function () {
--            function Window() {
--            }
--            return Window;
--        }());
-+        class Window {
-+        }
-         N.Window = Window;
-     })(N = M.N || (M.N = {}));
- })(M || (M = {}));
- var M1;
- (function (M1) {
--    var N;
-+    let N;
-     (function (N) {
--        var Window = /** @class */ (function () {
--            function Window() {
--            }
--            return Window;
--        }());
-+        class Window {
-+        }
-         N.Window = Window;
-     })(N = M1.N || (M1.N = {}));
- })(M1 || (M1 = {}));
- var M2;
- (function (M2) {
--    var private1 = /** @class */ (function () {
--        function private1() {
--        }
--        return private1;
--    }());
--    var public1 = /** @class */ (function () {
--        function public1() {
--        }
--        return public1;
--    }());
--    var m3;
-+    class private1 {
-+    }
-+    class public1 {
-+    }
-+    let m3;
-     (function (m3) {
--        var public1 = /** @class */ (function () {
--            function public1() {
--            }
--            return public1;
--        }());
-+        class public1 {
-+        }
-         m3.public1 = public1;
-     })(m3 || (m3 = {}));
- })(M2 || (M2 = {}));
-@@= skipped -55, +40 lines =@@
+@@= skipped -84, +84 lines =@@
      export namespace N {
          class Window {
          }
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js.diff
index 89219bbc6f..62702874b8 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorTypeLiteral.js.diff
@@ -1,37 +1,6 @@
 --- old.declFileTypeAnnotationVisibilityErrorTypeLiteral.js
 +++ new.declFileTypeAnnotationVisibilityErrorTypeLiteral.js
-@@= skipped -37, +37 lines =@@
- //// [declFileTypeAnnotationVisibilityErrorTypeLiteral.js]
- var m;
- (function (m) {
--    var private1 = /** @class */ (function () {
--        function private1() {
--        }
--        return private1;
--    }());
--    var m2;
-+    class private1 {
-+    }
-+    let m2;
-     (function (m2) {
--        var public1 = /** @class */ (function () {
--            function public1() {
--            }
--            return public1;
--        }());
-+        class public1 {
-+        }
-         m2.public1 = public1;
-     })(m2 || (m2 = {}));
-     m.x2 = {
-         x: new private1(),
-         y: new m2.public1(),
--        method: function () {
-+        method() {
-             return new private1();
-         }
-     };
-@@= skipped -56, +50 lines =@@
+@@= skipped -87, +87 lines =@@
          y: m2.public1;
          method(): private1;
      };
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorVariableDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorVariableDeclaration.js.diff
deleted file mode 100644
index 4247fb3f16..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeAnnotationVisibilityErrorVariableDeclaration.js.diff
+++ /dev/null
@@ -1,40 +0,0 @@
---- old.declFileTypeAnnotationVisibilityErrorVariableDeclaration.js
-+++ new.declFileTypeAnnotationVisibilityErrorVariableDeclaration.js
-@@= skipped -36, +36 lines =@@
- //// [declFileTypeAnnotationVisibilityErrorVariableDeclaration.js]
- var m;
- (function (m) {
--    var private1 = /** @class */ (function () {
--        function private1() {
--        }
--        return private1;
--    }());
--    var public1 = /** @class */ (function () {
--        function public1() {
--        }
--        return public1;
--    }());
-+    class private1 {
-+    }
-+    class public1 {
-+    }
-     m.public1 = public1;
-     // Directly using names from this module
-     var x;
-@@= skipped -18, +12 lines =@@
-     var x2;
-     var y2 = new public1();
-     m.l2 = new public1();
--    var m2;
-+    let m2;
-     (function (m2) {
--        var public2 = /** @class */ (function () {
--            function public2() {
--            }
--            return public2;
--        }());
-+        class public2 {
-+        }
-         m2.public2 = public2;
-     })(m2 || (m2 = {}));
-     var x3;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeofClass.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeofClass.js.diff
index 877981e008..c88b48dc66 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeofClass.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeofClass.js.diff
@@ -1,29 +1,13 @@
 --- old.declFileTypeofClass.js
 +++ new.declFileTypeofClass.js
-@@= skipped -17, +17 lines =@@
-
+@@= skipped -18, +18 lines =@@
 
  //// [declFileTypeofClass.js]
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
+ class c {
 +    static x;
 +    static y;
 +    x3;
 +    y3;
-+}
+ }
  var x;
- var y = c;
- var z;
--var genericC = /** @class */ (function () {
--    function genericC() {
--    }
--    return genericC;
--}());
-+class genericC {
-+}
- var genericX = genericC;
-
+ var y = c;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js.diff
index 010fbd0f22..609212f55b 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileTypeofFunction.js.diff
@@ -1,15 +1,6 @@
 --- old.declFileTypeofFunction.js
 +++ new.declFileTypeofFunction.js
-@@= skipped -48, +48 lines =@@
- var foo3 = function () {
-     return foo3;
- };
--var x = function () {
-+var x = () => {
-     return x;
- };
- function foo5(x) {
-@@= skipped -21, +21 lines =@@
+@@= skipped -69, +69 lines =@@
  declare function foo(): typeof foo;
  declare var foo1: typeof foo;
  declare var foo2: typeof foo;
diff --git a/testdata/baselines/reference/submodule/compiler/declFileTypeofInAnonymousType.js.diff b/testdata/baselines/reference/submodule/compiler/declFileTypeofInAnonymousType.js.diff
deleted file mode 100644
index bbc98600f8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declFileTypeofInAnonymousType.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.declFileTypeofInAnonymousType.js
-+++ new.declFileTypeofInAnonymousType.js
-@@= skipped -25, +25 lines =@@
- //// [declFileTypeofInAnonymousType.js]
- var m1;
- (function (m1) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     m1.c = c;
--    var e;
-+    let e;
-     (function (e) {
-         e[e["weekday"] = 0] = "weekday";
-         e[e["weekend"] = 1] = "weekend";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileWithClassNameConflictingWithClassReferredByExtendsClause.js.diff b/testdata/baselines/reference/submodule/compiler/declFileWithClassNameConflictingWithClassReferredByExtendsClause.js.diff
index 5c76efdd78..18caf0a383 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileWithClassNameConflictingWithClassReferredByExtendsClause.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileWithClassNameConflictingWithClassReferredByExtendsClause.js.diff
@@ -1,24 +1,7 @@
 --- old.declFileWithClassNameConflictingWithClassReferredByExtendsClause.js
 +++ new.declFileWithClassNameConflictingWithClassReferredByExtendsClause.js
-@@= skipped -21, +21 lines =@@
-
-
+@@= skipped -23, +23 lines =@@
  //// [declFileWithClassNameConflictingWithClassReferredByExtendsClause.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  var X;
  (function (X) {
 -    var Y;
@@ -27,16 +10,9 @@
 -        var base;
 +        let base;
          (function (base) {
--            var W = /** @class */ (function (_super) {
--                __extends(W, _super);
--                function W() {
--                    return _super !== null && _super.apply(this, arguments) || this;
--                }
--                return W;
--            }(A.B.Base.W));
-+            class W extends A.B.Base.W {
+             class W extends A.B.Base.W {
 +                name;
-+            }
+             }
              base.W = W;
          })(base = Y.base || (Y.base = {}));
      })(Y = X.Y || (X.Y = {}));
@@ -51,16 +27,8 @@
 -            var Z;
 +            let Z;
              (function (Z) {
--                var W = /** @class */ (function (_super) {
--                    __extends(W, _super);
--                    function W() {
--                        return _super !== null && _super.apply(this, arguments) || this;
--                    }
--                    return W;
--                }(X.Y.base.W));
-+                class W extends X.Y.base.W {
+                 class W extends X.Y.base.W {
 +                    value;
-+                }
+                 }
                  Z.W = W;
-             })(Z = base.Z || (base.Z = {}));
-         })(base = Y.base || (Y.base = {}));
\ No newline at end of file
+             })(Z = base.Z || (base.Z = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileWithExtendsClauseThatHasItsContainerNameConflict.js.diff b/testdata/baselines/reference/submodule/compiler/declFileWithExtendsClauseThatHasItsContainerNameConflict.js.diff
index 11171af194..fbd9e70973 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileWithExtendsClauseThatHasItsContainerNameConflict.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileWithExtendsClauseThatHasItsContainerNameConflict.js.diff
@@ -1,37 +1,15 @@
 --- old.declFileWithExtendsClauseThatHasItsContainerNameConflict.js
 +++ new.declFileWithExtendsClauseThatHasItsContainerNameConflict.js
-@@= skipped -19, +19 lines =@@
- }
-
+@@= skipped -21, +21 lines =@@
  //// [declFileWithExtendsClauseThatHasItsContainerNameConflict.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  var A;
  (function (A) {
 -    var B;
 +    let B;
      (function (B) {
--        var EventManager = /** @class */ (function () {
--            function EventManager() {
--            }
--            return EventManager;
--        }());
-+        class EventManager {
+         class EventManager {
 +            id;
-+        }
+         }
          B.EventManager = EventManager;
      })(B = A.B || (A.B = {}));
  })(A || (A = {}));
@@ -42,16 +20,9 @@
 -        var C;
 +        let C;
          (function (C) {
--            var ContextMenu = /** @class */ (function (_super) {
--                __extends(ContextMenu, _super);
--                function ContextMenu() {
--                    return _super !== null && _super.apply(this, arguments) || this;
--                }
--                return ContextMenu;
--            }(B.EventManager));
+-            class ContextMenu extends B.EventManager {
 +            class ContextMenu extends EventManager {
 +                name;
-+            }
+             }
              C.ContextMenu = ContextMenu;
-         })(C = B.C || (B.C = {}));
-     })(B = A.B || (A.B = {}));
\ No newline at end of file
+         })(C = B.C || (B.C = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause1.js.diff b/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause1.js.diff
index c779147f2e..4a83580ae4 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause1.js.diff
@@ -13,13 +13,5 @@
 -            var C;
 +            let C;
              (function (C) {
--                var W = /** @class */ (function () {
--                    function W() {
--                    }
--                    return W;
--                }());
-+                class W {
-+                }
-                 C.W = W;
-             })(C = B.C || (B.C = {}));
-         })(B = A.B || (A.B = {}));
\ No newline at end of file
+                 class W {
+                 }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause2.js.diff b/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause2.js.diff
index b17e73da36..9a2d8588b7 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause2.js.diff
@@ -13,13 +13,5 @@
 -            var C;
 +            let C;
              (function (C) {
--                var W = /** @class */ (function () {
--                    function W() {
--                    }
--                    return W;
--                }());
-+                class W {
-+                }
-                 C.W = W;
-             })(C = B.C || (B.C = {}));
-         })(B = A.B || (A.B = {}));
\ No newline at end of file
+                 class W {
+                 }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause3.js.diff b/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause3.js.diff
index e7ce203f70..bc4ffc528e 100644
--- a/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declFileWithInternalModuleNameConflictsInExtendsClause3.js.diff
@@ -13,13 +13,5 @@
 -            var C;
 +            let C;
              (function (C) {
--                var W = /** @class */ (function () {
--                    function W() {
--                    }
--                    return W;
--                }());
-+                class W {
-+                }
-                 C.W = W;
-             })(C = B.C || (B.C = {}));
-         })(B = A.B || (A.B = {}));
\ No newline at end of file
+                 class W {
+                 }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declInput-2.js.diff b/testdata/baselines/reference/submodule/compiler/declInput-2.js.diff
index a17f32c4bc..0c34c22e3f 100644
--- a/testdata/baselines/reference/submodule/compiler/declInput-2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declInput-2.js.diff
@@ -1,36 +1,9 @@
 --- old.declInput-2.js
 +++ new.declInput-2.js
-@@= skipped -25, +25 lines =@@
- //// [declInput-2.js]
- var M;
- (function (M) {
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        return C;
--    }());
--    var E = /** @class */ (function () {
--        function E() {
--        }
--        return E;
--    }());
-+    class C {
-+    }
-+    class E {
-+    }
+@@= skipped -31, +31 lines =@@
+     }
      M.E = E;
--    var D = /** @class */ (function () {
--        function D() {
--        }
--        D.prototype.m232 = function () { return null; };
--        D.prototype.m242 = function () { return null; };
--        D.prototype.m252 = function () { return null; }; // don't generate
--        D.prototype.m26 = function (i) { };
--        D.prototype.m262 = function (i) { };
--        D.prototype.m3 = function () { return new C(); };
--        return D;
--    }());
-+    class D {
+     class D {
 +        c; // don't generate
 +        m1;
 +        m2;
@@ -38,17 +11,10 @@
 +        m23;
 +        m24;
 +        m25; // don't generate
-+        m232() { return null; }
-+        m242() { return null; }
-+        m252() { return null; } // don't generate
-+        m26(i) { }
-+        m262(i) { }
-+        m3() { return new C(); }
-+    }
-     M.D = D;
- })(M || (M = {}));
-
-@@= skipped -37, +35 lines =@@
+         m232() { return null; }
+         m242() { return null; }
+         m252() { return null; } // don't generate
+@@= skipped -22, +29 lines =@@
      interface I2 {
      }
      export class D {
diff --git a/testdata/baselines/reference/submodule/compiler/declInput.js.diff b/testdata/baselines/reference/submodule/compiler/declInput.js.diff
deleted file mode 100644
index ccb67ae7bd..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declInput.js.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- old.declInput.js
-+++ new.declInput.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [declInput.js]
--var bar = /** @class */ (function () {
--    function bar() {
--    }
--    bar.prototype.f = function () { return ''; };
--    bar.prototype.g = function () { return { a: null, b: undefined, c: void 4 }; };
--    bar.prototype.h = function (x, y, z) {
--        if (x === void 0) { x = 4; }
--        if (y === void 0) { y = null; }
--        if (z === void 0) { z = ''; }
--        x++;
--    };
--    return bar;
--}());
-+class bar {
-+    f() { return ''; }
-+    g() { return { a: null, b: undefined, c: void 4 }; }
-+    h(x = 4, y = null, z = '') { x++; }
-+}
-
-
- //// [declInput.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declInput3.js.diff b/testdata/baselines/reference/submodule/compiler/declInput3.js.diff
deleted file mode 100644
index b40b90cd5b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declInput3.js.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- old.declInput3.js
-+++ new.declInput3.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [declInput3.js]
--var bar = /** @class */ (function () {
--    function bar() {
--    }
--    bar.prototype.f = function () { return ''; };
--    bar.prototype.g = function () { return { a: null, b: undefined, c: void 4 }; };
--    bar.prototype.h = function (x, y, z) {
--        if (x === void 0) { x = 4; }
--        if (y === void 0) { y = null; }
--        if (z === void 0) { z = ''; }
--        x++;
--    };
--    return bar;
--}());
-+class bar {
-+    f() { return ''; }
-+    g() { return { a: null, b: undefined, c: void 4 }; }
-+    h(x = 4, y = null, z = '') { x++; }
-+}
-
-
- //// [declInput3.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declInput4.js.diff b/testdata/baselines/reference/submodule/compiler/declInput4.js.diff
index c25e991072..97a15b3f71 100644
--- a/testdata/baselines/reference/submodule/compiler/declInput4.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declInput4.js.diff
@@ -1,40 +1,13 @@
 --- old.declInput4.js
 +++ new.declInput4.js
-@@= skipped -19, +19 lines =@@
- //// [declInput4.js]
- var M;
- (function (M) {
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        return C;
--    }());
--    var E = /** @class */ (function () {
--        function E() {
--        }
--        return E;
--    }());
-+    class C {
-+    }
-+    class E {
-+    }
+@@= skipped -25, +25 lines =@@
+     }
      M.E = E;
--    var D = /** @class */ (function () {
--        function D() {
--        }
--        D.prototype.m232 = function () { return null; };
--        D.prototype.m242 = function () { return null; };
--        D.prototype.m26 = function (i) { };
--        return D;
--    }());
-+    class D {
+     class D {
 +        m1;
 +        m2;
 +        m23;
 +        m24;
-+        m232() { return null; }
-+        m242() { return null; }
-+        m26(i) { }
-+    }
-     M.D = D;
- })(M || (M = {}));
+         m232() { return null; }
+         m242() { return null; }
+         m26(i) { }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitAliasExportStar.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitAliasExportStar.js.diff
deleted file mode 100644
index e0689bd91a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitAliasExportStar.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.declarationEmitAliasExportStar.js
-+++ new.declarationEmitAliasExportStar.js
-@@= skipped -33, +33 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.thing2 = void 0;
--var thing2 = function (param) { return null; };
-+const thing2 = (param) => null;
- exports.thing2 = thing2;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitAliasFromIndirectFile.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitAliasFromIndirectFile.js.diff
deleted file mode 100644
index b1770d23af..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitAliasFromIndirectFile.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.declarationEmitAliasFromIndirectFile.js
-+++ new.declarationEmitAliasFromIndirectFile.js
-@@= skipped -29, +29 lines =@@
- //// [app.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var fp = { l10ns: {} };
-+const fp = { l10ns: {} };
- exports.default = fp.l10ns;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitAliasInlineing.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitAliasInlineing.js.diff
index a8e73bf368..4e8d8abc1b 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitAliasInlineing.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitAliasInlineing.js.diff
@@ -1,20 +1,6 @@
 --- old.declarationEmitAliasInlineing.js
 +++ new.declarationEmitAliasInlineing.js
-@@= skipped -33, +33 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.fn = void 0;
--var fn = function (v, p, key, p2) { };
-+const fn = (v, p, key, p2) => { };
- exports.fn = fn;
- //// [aExp.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.fnExp = void 0;
--var fnExp = function (v, p, key, p2) { };
-+const fnExp = (v, p, key, p2) => { };
- exports.fnExp = fnExp;
- //// [b.js]
+@@= skipped -45, +45 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.fExp = exports.f = void 0;
@@ -25,7 +11,7 @@
  exports.f = a_1.fn;
  exports.fExp = aExp_1.fnExp;
 
-@@= skipped -23, +23 lines =@@
+@@= skipped -11, +11 lines =@@
      prop: string;
      prop2: string;
  };
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitAnyComputedPropertyInClass.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitAnyComputedPropertyInClass.js.diff
index b0ee6b4527..3d15f16ec7 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitAnyComputedPropertyInClass.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitAnyComputedPropertyInClass.js.diff
@@ -5,18 +5,11 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.C = void 0;
 -var abcdefgh_1 = require("abcdefgh");
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype[abcdefgh_1.default.someKey] = function () { };
 +const abcdefgh_1 = require("abcdefgh");
-+class C {
-+    [abcdefgh_1.default.someKey]() { }
+ class C {
+     [abcdefgh_1.default.someKey]() { }
      ;
--    return C;
--}());
-+}
- exports.C = C;
+@@= skipped -9, +9 lines =@@
 
 
  //// [main.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitArrowFunctionNoRenaming.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitArrowFunctionNoRenaming.js.diff
index 3970a82d67..f93a15d7d2 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitArrowFunctionNoRenaming.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitArrowFunctionNoRenaming.js.diff
@@ -4,14 +4,10 @@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.toBoundedInteger = void 0;
--var toBoundedInteger = function (bounds) {
--    return function (n) {
--        // Implementation doesn't matter here
--        return ({});
--    };
--};
+-const toBoundedInteger = (bounds) => (n) => 
 +const toBoundedInteger = (bounds) => (n) => (
-+// Implementation doesn't matter here
+ // Implementation doesn't matter here
+-({});
 +({}));
  exports.toBoundedInteger = toBoundedInteger;
 
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternWithReservedWord.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternWithReservedWord.js.diff
deleted file mode 100644
index cf293bad19..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatternWithReservedWord.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.declarationEmitBindingPatternWithReservedWord.js
-+++ new.declarationEmitBindingPatternWithReservedWord.js
-@@= skipped -28, +28 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.getLocales = void 0;
--var getLocales = function (_a) {
--    var app = _a.app, name = _a.name, defaultLocalesConfig = _a.default, _b = _a.config, userLocalesConfig = _b === void 0 ? {} : _b;
-+const getLocales = ({ app, name, default: defaultLocalesConfig, config: userLocalesConfig = {}, }) => {
-     return defaultLocalesConfig;
- };
- exports.getLocales = getLocales;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatterns.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatterns.js.diff
deleted file mode 100644
index 0d2fca96bd..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitBindingPatterns.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.declarationEmitBindingPatterns.js
-+++ new.declarationEmitBindingPatterns.js
-@@= skipped -7, +7 lines =@@
- }
-
- //// [declarationEmitBindingPatterns.js]
--var k = function (_a) {
--    var _b = _a.x, z = _b === void 0 ? 'y' : _b;
--};
-+const k = ({ x: z = 'y' }) => { };
- var a;
--function f(_a, _b, _c) {
--    _a = a;
--    _b = a;
--    var _d = _c === void 0 ? a : _c, _e = _d.p, _f = _e === void 0 ? a : _e, _g = _f;
-+function f({} = a, [] = a, { p: {} = a } = a) {
- }
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassInherritsAny.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassInherritsAny.js.diff
deleted file mode 100644
index 375bff0966..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassInherritsAny.js.diff
+++ /dev/null
@@ -1,41 +0,0 @@
---- old.declarationEmitClassInherritsAny.js
-+++ new.declarationEmitClassInherritsAny.js
-@@= skipped -5, +5 lines =@@
-
- //// [declarationEmitClassInherritsAny.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Foo = void 0;
--var anyThing = /** @class */ (function () {
--    function class_1() {
--    }
--    return class_1;
--}());
--var Foo = /** @class */ (function (_super) {
--    __extends(Foo, _super);
--    function Foo() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Foo;
--}(anyThing));
-+const anyThing = class {
-+};
-+class Foo extends anyThing {
-+}
- exports.Foo = Foo;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js.diff
index ec8ae52c31..9e2cee3c0a 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict.js.diff
@@ -1,83 +1,14 @@
 --- old.declarationEmitClassMemberNameConflict.js
 +++ new.declarationEmitClassMemberNameConflict.js
-@@= skipped -40, +40 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.C4 = exports.C3 = exports.C2 = exports.C1 = void 0;
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    C1.prototype.C1 = function () { }; // has to be the same as the class name
--    C1.prototype.bar = function () {
-+class C1 {
-+    C1() { } // has to be the same as the class name
-+    bar() {
-         return function (t) {
-         };
--    };
--    return C1;
--}());
-+    }
-+}
+@@= skipped -49, +49 lines =@@
+ }
  exports.C1 = C1;
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    C2.prototype.bar = function () {
-+class C2 {
+ class C2 {
 +    C2; // has to be the same as the class name
-+    bar() {
-         return function (t) {
-         };
--    };
--    return C2;
--}());
-+    }
-+}
- exports.C2 = C2;
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    Object.defineProperty(C3.prototype, "C3", {
--        get: function () { return 0; } // has to be the same as the class name
--        ,
--        enumerable: false,
--        configurable: true
--    });
--    C3.prototype.bar = function () {
-+class C3 {
-+    get C3() { return 0; } // has to be the same as the class name
-+    bar() {
-         return function (t) {
-         };
--    };
--    return C3;
--}());
-+    }
-+}
- exports.C3 = C3;
--var C4 = /** @class */ (function () {
--    function C4() {
--    }
--    Object.defineProperty(C4.prototype, "C4", {
--        set: function (v) { } // has to be the same as the class name
--        ,
--        enumerable: false,
--        configurable: true
--    });
--    C4.prototype.bar = function () {
-+class C4 {
-+    set C4(v) { } // has to be the same as the class name
-+    bar() {
+     bar() {
          return function (t) {
          };
--    };
--    return C4;
--}());
-+    }
-+}
- exports.C4 = C4;
-
+@@= skipped -26, +27 lines =@@
 
  //// [declarationEmitClassMemberNameConflict.d.ts]
  export declare class C1 {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js.diff
index f6cba80732..f6b9e10626 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMemberNameConflict2.js.diff
@@ -1,20 +1,10 @@
 --- old.declarationEmitClassMemberNameConflict2.js
 +++ new.declarationEmitClassMemberNameConflict2.js
-@@= skipped -22, +22 lines =@@
- }
-
- //// [declarationEmitClassMemberNameConflict2.js]
--var Bar = 'bar';
-+const Bar = 'bar';
- var Hello;
- (function (Hello) {
-     Hello[Hello["World"] = 0] = "World";
-@@= skipped -9, +9 lines =@@
- (function (Hello1) {
+@@= skipped -32, +32 lines =@@
      Hello1[Hello1["World1"] = 0] = "World1";
  })(Hello1 || (Hello1 = {}));
--var Foo = /** @class */ (function () {
--    function Foo() {
+ class Foo {
+-    constructor() {
 -        // Same names + string => OK
 -        this.Bar = Bar;
 -        // Same names + enum => OK
@@ -22,20 +12,16 @@
 -        // Different names + enum => OK
 -        this.Hello2 = Hello1;
 -    }
--    return Foo;
--}());
-+class Foo {
 +    // Same names + string => OK
 +    Bar = Bar;
 +    // Same names + enum => OK
 +    Hello = Hello;
 +    // Different names + enum => OK
 +    Hello2 = Hello1;
-+}
+ }
 
 
- //// [declarationEmitClassMemberNameConflict2.d.ts]
-@@= skipped -22, +19 lines =@@
+@@= skipped -20, +18 lines =@@
      World1 = 0
  }
  declare class Foo {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMixinLocalClassDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMixinLocalClassDeclaration.js.diff
index 173e2f6250..a38ca9abd2 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassMixinLocalClassDeclaration.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassMixinLocalClassDeclaration.js.diff
@@ -1,57 +1,14 @@
 --- old.declarationEmitClassMixinLocalClassDeclaration.js
 +++ new.declarationEmitClassMixinLocalClassDeclaration.js
-@@= skipped -27, +27 lines =@@
-
- //// [declarationEmitClassMixinLocalClassDeclaration.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.XmlElement2 = exports.Base = exports.Mixin = void 0;
- exports.Mixin = null;
--var Base = /** @class */ (function () {
--    function Base() {
--    }
--    return Base;
--}());
-+class Base {
-+}
+@@= skipped -35, +35 lines =@@
  exports.Base = Base;
--var XmlElement2 = /** @class */ (function (_super) {
--    __extends(XmlElement2, _super);
--    function XmlElement2() {
--        return _super !== null && _super.apply(this, arguments) || this;
-+class XmlElement2 extends (0, exports.Mixin)([Base], (base) => {
-+    class XmlElement2 extends base {
+ class XmlElement2 extends (0, exports.Mixin)([Base], (base) => {
+     class XmlElement2 extends base {
+-        constructor() {
+-            super(...arguments);
+-            this.num = 0;
+-        }
 +        num = 0;
      }
      return XmlElement2;
--}((0, exports.Mixin)([Base], function (base) {
--    var XmlElement2 = /** @class */ (function (_super) {
--        __extends(XmlElement2, _super);
--        function XmlElement2() {
--            var _this = _super !== null && _super.apply(this, arguments) || this;
--            _this.num = 0;
--            return _this;
--        }
--        return XmlElement2;
--    }(base));
--    return XmlElement2;
--})));
-+}) {
-+}
- exports.XmlElement2 = XmlElement2;
-
+ }) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassPrivateConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassPrivateConstructor.js.diff
index b3c8e49d4d..032569b442 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassPrivateConstructor.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassPrivateConstructor.js.diff
@@ -1,53 +1,27 @@
 --- old.declarationEmitClassPrivateConstructor.js
 +++ new.declarationEmitClassPrivateConstructor.js
-@@= skipped -23, +23 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ExportedClass4 = exports.ExportedClass3 = exports.ExportedClass2 = exports.ExportedClass1 = void 0;
--var ExportedClass1 = /** @class */ (function () {
--    function ExportedClass1(data) {
--    }
--    return ExportedClass1;
--}());
-+class ExportedClass1 {
-+    constructor(data) { }
-+}
+@@= skipped -28, +28 lines =@@
+ }
  exports.ExportedClass1 = ExportedClass1;
--var ExportedClass2 = /** @class */ (function () {
--    function ExportedClass2(data) {
-+class ExportedClass2 {
+ class ExportedClass2 {
 +    data;
-+    constructor(data) {
+     constructor(data) {
          this.data = data;
      }
--    return ExportedClass2;
--}());
-+}
+ }
  exports.ExportedClass2 = ExportedClass2;
--var ExportedClass3 = /** @class */ (function () {
--    function ExportedClass3(data, n) {
-+class ExportedClass3 {
+ class ExportedClass3 {
 +    data;
 +    n;
-+    constructor(data, n) {
+     constructor(data, n) {
          this.data = data;
          this.n = n;
-     }
--    return ExportedClass3;
--}());
-+}
+@@= skipped -13, +16 lines =@@
+ }
  exports.ExportedClass3 = ExportedClass3;
--var ExportedClass4 = /** @class */ (function () {
--    function ExportedClass4(data, n) {
-+class ExportedClass4 {
+ class ExportedClass4 {
 +    data;
 +    n;
-+    constructor(data, n) {
+     constructor(data, n) {
          this.data = data;
-         this.n = n;
-     }
--    return ExportedClass4;
--}());
-+}
- exports.ExportedClass4 = ExportedClass4;
-
+         this.n = n;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitClassPrivateConstructor2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitClassPrivateConstructor2.js.diff
index 4bb8ddab5b..ee4c17ba8b 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitClassPrivateConstructor2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitClassPrivateConstructor2.js.diff
@@ -1,27 +1,10 @@
 --- old.declarationEmitClassPrivateConstructor2.js
 +++ new.declarationEmitClassPrivateConstructor2.js
-@@= skipped -16, +16 lines =@@
- "use strict";
+@@= skipped -17, +17 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.ExportedClass2 = exports.ExportedClass1 = void 0;
--var ExportedClass1 = /** @class */ (function () {
--    function ExportedClass1(data) {
-+class ExportedClass1 {
+ class ExportedClass1 {
 +    data;
-+    constructor(data) {
+     constructor(data) {
          this.data = data;
-     }
--    return ExportedClass1;
--}());
-+}
- exports.ExportedClass1 = ExportedClass1;
--var ExportedClass2 = /** @class */ (function () {
--    function ExportedClass2(data) {
--    }
--    return ExportedClass2;
--}());
-+class ExportedClass2 {
-+    constructor(data) { }
-+}
- exports.ExportedClass2 = ExportedClass2;
-
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameCausesImportToBePainted.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameCausesImportToBePainted.js.diff
index 2a4cebe4b8..8133ac4d0b 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameCausesImportToBePainted.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameCausesImportToBePainted.js.diff
@@ -1,23 +1,11 @@
 --- old.declarationEmitComputedNameCausesImportToBePainted.js
 +++ new.declarationEmitComputedNameCausesImportToBePainted.js
-@@= skipped -20, +20 lines =@@
- exports.Key = Symbol();
- //// [index.js]
+@@= skipped -22, +22 lines =@@
  "use strict";
--var _a;
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.withContext = exports.context = void 0;
 -var context_1 = require("./context");
--exports.context = (_a = {},
--    _a[context_1.Key] = 'bar',
--    _a);
--var withContext = function (_a) {
--    var _b = context_1.Key, value = _a[_b];
--    return value;
 +const context_1 = require("./context");
-+exports.context = {
-+    [context_1.Key]: 'bar',
- };
-+const withContext = ({ [context_1.Key]: value }) => value;
- exports.withContext = withContext;
-
+ exports.context = {
+     [context_1.Key]: 'bar',
+ };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameConstEnumAlias.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameConstEnumAlias.js.diff
index 5fda078763..74e921c071 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameConstEnumAlias.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameConstEnumAlias.js.diff
@@ -1,19 +1,11 @@
 --- old.declarationEmitComputedNameConstEnumAlias.js
 +++ new.declarationEmitComputedNameConstEnumAlias.js
-@@= skipped -23, +23 lines =@@
- exports.default = EnumExample;
+@@= skipped -24, +24 lines =@@
  //// [index.js]
  "use strict";
--var _a;
  Object.defineProperty(exports, "__esModule", { value: true });
 -var EnumExample_1 = require("./EnumExample");
--exports.default = (_a = {},
--    _a[EnumExample_1.default.TEST] = {},
--    _a);
 +const EnumExample_1 = require("./EnumExample");
-+exports.default = {
-+    [EnumExample_1.default.TEST]: {},
-+};
-
-
- //// [EnumExample.d.ts]
\ No newline at end of file
+ exports.default = {
+     [EnumExample_1.default.TEST]: {},
+ };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameWithQuestionToken.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameWithQuestionToken.js.diff
index 2d08faa4b9..601c50ed08 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameWithQuestionToken.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNameWithQuestionToken.js.diff
@@ -1,27 +1,6 @@
 --- old.declarationEmitComputedNameWithQuestionToken.js
 +++ new.declarationEmitComputedNameWithQuestionToken.js
-@@= skipped -15, +15 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.a = exports.WithData = exports.dataSomething = void 0;
--exports.dataSomething = "data-".concat(something);
--var WithData = /** @class */ (function () {
--    function WithData() {
--    }
--    WithData.prototype[exports.dataSomething] = function () {
-+exports.dataSomething = `data-${something}`;
-+class WithData {
-+    [exports.dataSomething]() {
-         return "something";
--    };
--    return WithData;
--}());
-+    }
-+}
- exports.WithData = WithData;
- exports.a = (new WithData())["ahahahaahah"]();
-
-@@= skipped -16, +13 lines =@@
+@@= skipped -28, +28 lines =@@
  //// [declarationEmitComputedNameWithQuestionToken.d.ts]
  export declare const dataSomething: `data-${string}`;
  export declare class WithData {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNamesInaccessible.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNamesInaccessible.js.diff
deleted file mode 100644
index 582dada825..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitComputedNamesInaccessible.js.diff
+++ /dev/null
@@ -1,41 +0,0 @@
---- old.declarationEmitComputedNamesInaccessible.js
-+++ new.declarationEmitComputedNamesInaccessible.js
-@@= skipped -25, +25 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.f1 = f1;
- function f1() {
--    var localClassFieldName = Math.random() > 0.5 ? "g1" : "g2";
--    var localOtherField = localClassFieldName === "g1" ? "g2" : "g1";
--    var localStaticField = Math.random() > 0.5 ? "s1" : "s2";
--    return /** @class */ (function () {
--        function ParameterizedHolder() {
--        }
--        ParameterizedHolder.prototype[localClassFieldName] = function () {
-+    const localClassFieldName = Math.random() > 0.5 ? "g1" : "g2";
-+    const localOtherField = localClassFieldName === "g1" ? "g2" : "g1";
-+    const localStaticField = Math.random() > 0.5 ? "s1" : "s2";
-+    return class ParameterizedHolder {
-+        [localClassFieldName]() {
-             return "value";
--        };
--        ParameterizedHolder.prototype[localOtherField] = function () {
-+        }
-+        [localOtherField]() {
-             return 42;
--        };
--        ParameterizedHolder[localStaticField] = function () {
-+        }
-+        static [localStaticField]() {
-             return { static: true };
--        };
--        ParameterizedHolder[localStaticField] = function () {
-+        }
-+        static [localStaticField]() {
-             return { static: "sometimes" };
--        };
--        return ParameterizedHolder;
--    }());
-+        }
-+    };
- }
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js.diff
index dfa9c3ff97..75b30bdff7 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitConstantNoWidening.js.diff
@@ -1,21 +1,17 @@
 --- old.declarationEmitConstantNoWidening.js
 +++ new.declarationEmitConstantNoWidening.js
-@@= skipped -10, +10 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -11, +11 lines =@@
  exports.Bar = exports.FOO = void 0;
  exports.FOO = 'FOO';
--var Bar = /** @class */ (function () {
--    function Bar() {
+ class Bar {
+-    constructor() {
 -        this.type = exports.FOO; // Should be widening literal "FOO" - so either `typeof "FOO"` or = "FOO"
 -    }
--    return Bar;
--}());
-+class Bar {
 +    type = exports.FOO; // Should be widening literal "FOO" - so either `typeof "FOO"` or = "FOO"
-+}
+ }
  exports.Bar = Bar;
 
-
+@@= skipped -10, +8 lines =@@
  //// [declarationEmitConstantNoWidening.d.ts]
  export declare const FOO = "FOO";
  export declare class Bar {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDefaultExportWithStaticAssignment.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDefaultExportWithStaticAssignment.js.diff
index f95589f768..ff4abd456f 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDefaultExportWithStaticAssignment.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDefaultExportWithStaticAssignment.js.diff
@@ -1,18 +1,6 @@
 --- old.declarationEmitDefaultExportWithStaticAssignment.js
 +++ new.declarationEmitDefaultExportWithStaticAssignment.js
-@@= skipped -35, +35 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Foo = void 0;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.Foo = Foo;
- //// [index1.js]
+@@= skipped -42, +42 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.default = Example;
@@ -21,7 +9,7 @@
  function Example() { }
  Example.Foo = foo_1.Foo;
  //// [index2.js]
-@@= skipped -18, +15 lines =@@
+@@= skipped -8, +8 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Foo = void 0;
  exports.default = Example;
@@ -30,21 +18,7 @@
  Object.defineProperty(exports, "Foo", { enumerable: true, get: function () { return foo_1.Foo; } });
  function Example() { }
  Example.Foo = foo_1.Foo;
-@@= skipped -9, +9 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Bar = void 0;
- exports.default = Example;
--var Bar = /** @class */ (function () {
--    function Bar() {
--    }
--    return Bar;
--}());
-+class Bar {
-+}
- exports.Bar = Bar;
- function Example() { }
- Example.Bar = Bar;
-@@= skipped -25, +22 lines =@@
+@@= skipped -31, +31 lines =@@
  export declare class Foo {
  }
  //// [index1.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring1.js.diff
deleted file mode 100644
index 99bad8ae5d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring1.js.diff
+++ /dev/null
@@ -1,25 +0,0 @@
---- old.declarationEmitDestructuring1.js
-+++ new.declarationEmitDestructuring1.js
-@@= skipped -7, +7 lines =@@
-
-
- //// [declarationEmitDestructuring1.js]
--function foo(_a) {
--    var a = _a[0], b = _a[1], c = _a[2];
--}
--function far(_a) {
--    var a = _a[0], b = _a[1][0], c = _a[2][0][0];
--}
--function bar(_a) {
--    var a1 = _a.a1, b1 = _a.b1, c1 = _a.c1;
--}
--function baz(_a) {
--    var a2 = _a.a2, _b = _a.b2, b1 = _b.b1, c1 = _b.c1;
--}
-+function foo([a, b, c]) { }
-+function far([a, [b], [[c]]]) { }
-+function bar({ a1, b1, c1 }) { }
-+function baz({ a2, b2: { b1, c1 } }) { }
-
-
- //// [declarationEmitDestructuring1.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring2.js.diff
deleted file mode 100644
index e3b34f579f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring2.js.diff
+++ /dev/null
@@ -1,25 +0,0 @@
---- old.declarationEmitDestructuring2.js
-+++ new.declarationEmitDestructuring2.js
-@@= skipped -6, +6 lines =@@
- function h1([a, [b], [[c]], {x = 10, y = [1, 2, 3], z: {a1, b1}}]){ }
-
- //// [declarationEmitDestructuring2.js]
--function f(_a) {
--    var _b = _a === void 0 ? { x: 10, y: [2, 4, 6, 8] } : _a, _c = _b.x, x = _c === void 0 ? 10 : _c, _d = _b.y, _e = _d === void 0 ? [1, 2, 3, 4] : _d, a = _e[0], b = _e[1], c = _e[2], d = _e[3];
--}
--function g(_a) {
--    var _b = _a === void 0 ? [1, 2, 3, 4] : _a, a = _b[0], b = _b[1], c = _b[2], d = _b[3];
--}
--function h(_a) {
--    var a = _a[0], b = _a[1][0], c = _a[2][0][0], _b = _a[3], _c = _b.x, x = _c === void 0 ? 10 : _c, _d = _b.y, a = _d[0], b = _d[1], c = _d[2], _e = _b.z, a1 = _e.a1, b1 = _e.b1;
--}
--function h1(_a) {
--    var a = _a[0], b = _a[1][0], c = _a[2][0][0], _b = _a[3], _c = _b.x, x = _c === void 0 ? 10 : _c, _d = _b.y, y = _d === void 0 ? [1, 2, 3] : _d, _e = _b.z, a1 = _e.a1, b1 = _e.b1;
--}
-+function f({ x = 10, y: [a, b, c, d] = [1, 2, 3, 4] } = { x: 10, y: [2, 4, 6, 8] }) { }
-+function g([a, b, c, d] = [1, 2, 3, 4]) { }
-+function h([a, [b], [[c]], { x = 10, y: [a, b, c], z: { a1, b1 } }]) { }
-+function h1([a, [b], [[c]], { x = 10, y = [1, 2, 3], z: { a1, b1 } }]) { }
-
-
- //// [declarationEmitDestructuring2.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring3.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring3.js.diff
deleted file mode 100644
index bbdaf5a375..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring3.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.declarationEmitDestructuring3.js
-+++ new.declarationEmitDestructuring3.js
-@@= skipped -6, +6 lines =@@
-
-
- //// [declarationEmitDestructuring3.js]
--function bar(_a) {
--    var x = _a[0], z = _a[1], w = _a.slice(2);
--}
--function foo(_a) {
--    var _b = _a === void 0 ? [1, "string", true] : _a, x = _b[0], y = _b.slice(1);
--}
-+function bar([x, z, ...w]) { }
-+function foo([x, ...y] = [1, "string", true]) { }
-
-
- //// [declarationEmitDestructuring3.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js.diff
index 27fcfe0c98..85c5e3a8c7 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring4.js.diff
@@ -1,25 +1,6 @@
 --- old.declarationEmitDestructuring4.js
 +++ new.declarationEmitDestructuring4.js
-@@= skipped -16, +16 lines =@@
- // For an array binding pattern with empty elements,
- // we will not make any modification and will emit
- // the similar binding pattern users' have written
--function baz(_a) { }
--function baz1(_a) {
--    _a = [1, 2, 3];
--}
--function baz2(_a) {
--    var _b = _a === void 0 ? [[1, 2, 3]] : _a, _c = _b[0];
--}
--function baz3(_a) { }
--function baz4(_a) {
--    _a = { x: 10 };
--}
-+function baz([]) { }
-+function baz1([] = [1, 2, 3]) { }
-+function baz2([[]] = [[1, 2, 3]]) { }
-+function baz3({}) { }
-+function baz4({} = { x: 10 }) { }
+@@= skipped -24, +24 lines =@@
 
 
  //// [declarationEmitDestructuring4.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring5.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring5.js.diff
index e9e2d2b600..2199400a79 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring5.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuring5.js.diff
@@ -1,29 +1,6 @@
 --- old.declarationEmitDestructuring5.js
 +++ new.declarationEmitDestructuring5.js
-@@= skipped -7, +7 lines =@@
- function bar2([,,z, , , ]) { }
-
- //// [declarationEmitDestructuring5.js]
--function baz(_a) {
--    var z = _a[1];
--}
--function foo(_a) {
--    var b = _a[1];
--}
--function bar(_a) {
--    var z = _a[0];
--}
--function bar1(_a) {
--    var _b = _a === void 0 ? [1, 3, 4, 6, 7] : _a, z = _b[0];
--}
--function bar2(_a) {
--    var z = _a[2];
--}
-+function baz([, z, ,]) { }
-+function foo([, b,]) { }
-+function bar([z, , ,]) { }
-+function bar1([z, , ,] = [1, 3, 4, 6, 7]) { }
-+function bar2([, , z, , ,]) { }
+@@= skipped -15, +15 lines =@@
 
 
  //// [declarationEmitDestructuring5.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js.diff
index efa7370625..eac446ea45 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern1.js.diff
@@ -1,22 +1,6 @@
 --- old.declarationEmitDestructuringArrayPattern1.js
 +++ new.declarationEmitDestructuringArrayPattern1.js
-@@= skipped -10, +10 lines =@@
- var [x3, y3, z3] = a;  // emit x3, y3, z3 
-
- //// [declarationEmitDestructuringArrayPattern1.js]
--var _a = [1, "hello"]; // Dont emit anything
--var x = [1, "hello"][0]; // emit x: number
--var _b = [1, "hello"], x1 = _b[0], y1 = _b[1]; // emit x1: number, y1: string
--var _c = [0, 1, 2], z1 = _c[2]; // emit z1: number
-+var [] = [1, "hello"]; // Dont emit anything
-+var [x] = [1, "hello"]; // emit x: number
-+var [x1, y1] = [1, "hello"]; // emit x1: number, y1: string
-+var [, , z1] = [0, 1, 2]; // emit z1: number
- var a = [1, "hello"];
--var x2 = a[0]; // emit x2: number | string
--var x3 = a[0], y3 = a[1], z3 = a[2]; // emit x3, y3, z3 
-+var [x2] = a; // emit x2: number | string
-+var [x3, y3, z3] = a; // emit x3, y3, z3 
+@@= skipped -20, +20 lines =@@
 
 
  //// [declarationEmitDestructuringArrayPattern1.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern2.js.diff
index c5c85de00b..1c0dba350d 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern2.js.diff
@@ -1,21 +1,6 @@
 --- old.declarationEmitDestructuringArrayPattern2.js
 +++ new.declarationEmitDestructuringArrayPattern2.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [declarationEmitDestructuringArrayPattern2.js]
--var _a = [1, ["hello", [true]]], x10 = _a[0], _b = _a[1], y10 = _b[0], z10 = _b[1][0];
--var _c = [1, "hello"], _d = _c[0], x11 = _d === void 0 ? 0 : _d, _e = _c[1], y11 = _e === void 0 ? "" : _e;
--var _f = [], a11 = _f[0], b11 = _f[1], c11 = _f[2];
--var _g = [1, ["hello", { x12: 5, y12: true }]], a2 = _g[0], _h = _g[1], _j = _h === void 0 ? ["abc", { x12: 10, y12: false }] : _h, b2 = _j[0], _k = _j[1], x12 = _k.x12, c2 = _k.y12;
--var _l = [1, "hello"], x13 = _l[0], y13 = _l[1];
--var _m = [[x13, y13], { x: x13, y: y13 }], a3 = _m[0], b3 = _m[1];
-+var [x10, [y10, [z10]]] = [1, ["hello", [true]]];
-+var [x11 = 0, y11 = ""] = [1, "hello"];
-+var [a11, b11, c11] = [];
-+var [a2, [b2, { x12, y12: c2 }] = ["abc", { x12: 10, y12: false }]] = [1, ["hello", { x12: 5, y12: true }]];
-+var [x13, y13] = [1, "hello"];
-+var [a3, b3] = [[x13, y13], { x: x13, y: y13 }];
+@@= skipped -21, +21 lines =@@
 
 
  //// [declarationEmitDestructuringArrayPattern2.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern4.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern4.js.diff
index bc47dddce2..4d1bfba2c1 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern4.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern4.js.diff
@@ -1,25 +1,6 @@
 --- old.declarationEmitDestructuringArrayPattern4.js
 +++ new.declarationEmitDestructuringArrayPattern4.js
-@@= skipped -11, +11 lines =@@
- var [x19, y19, z19, ...a13] = [1, "hello", true];
-
- //// [declarationEmitDestructuringArrayPattern4.js]
--var a5 = [1, 2, 3].slice(0);
--var _a = [1, 2, 3], x14 = _a[0], a6 = _a.slice(1);
--var _b = [1, 2, 3], x15 = _b[0], y15 = _b[1], a7 = _b.slice(2);
--var _c = [1, 2, 3], x16 = _c[0], y16 = _c[1], z16 = _c[2], a8 = _c.slice(3);
--var a9 = [1, "hello", true].slice(0);
--var _d = [1, "hello", true], x17 = _d[0], a10 = _d.slice(1);
--var _e = [1, "hello", true], x18 = _e[0], y18 = _e[1], a12 = _e.slice(2);
--var _f = [1, "hello", true], x19 = _f[0], y19 = _f[1], z19 = _f[2], a13 = _f.slice(3);
-+var [...a5] = [1, 2, 3];
-+var [x14, ...a6] = [1, 2, 3];
-+var [x15, y15, ...a7] = [1, 2, 3];
-+var [x16, y16, z16, ...a8] = [1, 2, 3];
-+var [...a9] = [1, "hello", true];
-+var [x17, ...a10] = [1, "hello", true];
-+var [x18, y18, ...a12] = [1, "hello", true];
-+var [x19, y19, z19, ...a13] = [1, "hello", true];
+@@= skipped -22, +22 lines =@@
 
 
  //// [declarationEmitDestructuringArrayPattern4.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern5.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern5.js.diff
index 5e35588852..54abe0e3a2 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern5.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringArrayPattern5.js.diff
@@ -1,15 +1,6 @@
 --- old.declarationEmitDestructuringArrayPattern5.js
 +++ new.declarationEmitDestructuringArrayPattern5.js
-@@= skipped -5, +5 lines =@@
- var [, , [, b, ]] = [3,5,[0, 1]];
-
- //// [declarationEmitDestructuringArrayPattern5.js]
--var _a = [1, 2, 4], z = _a[2];
--var _b = [3, 4, 5], a = _b[1];
--var _c = [3, 5, [0, 1]], _d = _c[2], b = _d[1];
-+var [, , z] = [1, 2, 4];
-+var [, a, ,] = [3, 4, 5];
-+var [, , [, b,]] = [3, 5, [0, 1]];
+@@= skipped -11, +11 lines =@@
 
 
  //// [declarationEmitDestructuringArrayPattern5.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern.js.diff
index 04a592bc73..037facda57 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern.js.diff
@@ -1,34 +1,7 @@
 --- old.declarationEmitDestructuringObjectLiteralPattern.js
 +++ new.declarationEmitDestructuringObjectLiteralPattern.js
-@@= skipped -23, +23 lines =@@
- }
-
- //// [declarationEmitDestructuringObjectLiteralPattern.js]
--var _a = { x: 5, y: "hello" };
--var x4 = { x4: 5, y4: "hello" }.x4;
--var y5 = { x5: 5, y5: "hello" }.y5;
--var _b = { x6: 5, y6: "hello" }, x6 = _b.x6, y6 = _b.y6;
--var a1 = { x7: 5, y7: "hello" }.x7;
--var b1 = { x8: 5, y8: "hello" }.y8;
--var _c = { x9: 5, y9: "hello" }, a2 = _c.x9, b2 = _c.y9;
--var _d = { a: 1, b: { a: "hello", b: { a: true } } }, x11 = _d.a, _e = _d.b, y11 = _e.a, z11 = _e.b.a;
-+var {} = { x: 5, y: "hello" };
-+var { x4 } = { x4: 5, y4: "hello" };
-+var { y5 } = { x5: 5, y5: "hello" };
-+var { x6, y6 } = { x6: 5, y6: "hello" };
-+var { x7: a1 } = { x7: 5, y7: "hello" };
-+var { y8: b1 } = { x8: 5, y8: "hello" };
-+var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" };
-+var { a: x11, b: { a: y11, b: { a: z11 } } } = { a: 1, b: { a: "hello", b: { a: true } } };
- function f15() {
-     var a4 = "hello";
-     var b4 = 1;
-     var c4 = true;
--    return { a4: a4, b4: b4, c4: c4 };
-+    return { a4, b4, c4 };
- }
--var _f = f15(), a4 = _f.a4, b4 = _f.b4, c4 = _f.c4;
-+var { a4, b4, c4 } = f15();
+@@= skipped -40, +40 lines =@@
+ var { a4, b4, c4 } = f15();
  var m;
  (function (m) {
 -    var _a;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern1.js.diff
index 672af00b20..4e48e9cfaa 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern1.js.diff
@@ -1,23 +1,6 @@
 --- old.declarationEmitDestructuringObjectLiteralPattern1.js
 +++ new.declarationEmitDestructuringObjectLiteralPattern1.js
-@@= skipped -9, +9 lines =@@
- var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" };
-
- //// [declarationEmitDestructuringObjectLiteralPattern1.js]
--var _a = { x: 5, y: "hello" };
--var x4 = { x4: 5, y4: "hello" }.x4;
--var y5 = { x5: 5, y5: "hello" }.y5;
--var _b = { x6: 5, y6: "hello" }, x6 = _b.x6, y6 = _b.y6;
--var a1 = { x7: 5, y7: "hello" }.x7;
--var b1 = { x8: 5, y8: "hello" }.y8;
--var _c = { x9: 5, y9: "hello" }, a2 = _c.x9, b2 = _c.y9;
-+var {} = { x: 5, y: "hello" };
-+var { x4 } = { x4: 5, y4: "hello" };
-+var { y5 } = { x5: 5, y5: "hello" };
-+var { x6, y6 } = { x6: 5, y6: "hello" };
-+var { x7: a1 } = { x7: 5, y7: "hello" };
-+var { y8: b1 } = { x8: 5, y8: "hello" };
-+var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" };
+@@= skipped -19, +19 lines =@@
 
 
  //// [declarationEmitDestructuringObjectLiteralPattern1.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern2.js.diff
index b7a7a450b9..3cbf71bba1 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringObjectLiteralPattern2.js.diff
@@ -1,20 +1,7 @@
 --- old.declarationEmitDestructuringObjectLiteralPattern2.js
 +++ new.declarationEmitDestructuringObjectLiteralPattern2.js
-@@= skipped -15, +15 lines =@@
- }
-
- //// [declarationEmitDestructuringObjectLiteralPattern2.js]
--var _a = { a: 1, b: { a: "hello", b: { a: true } } }, x11 = _a.a, _b = _a.b, y11 = _b.a, z11 = _b.b.a;
-+var { a: x11, b: { a: y11, b: { a: z11 } } } = { a: 1, b: { a: "hello", b: { a: true } } };
- function f15() {
-     var a4 = "hello";
-     var b4 = 1;
-     var c4 = true;
--    return { a4: a4, b4: b4, c4: c4 };
-+    return { a4, b4, c4 };
- }
--var _c = f15(), a4 = _c.a4, b4 = _c.b4, c4 = _c.c4;
-+var { a4, b4, c4 } = f15();
+@@= skipped -25, +25 lines =@@
+ var { a4, b4, c4 } = f15();
  var m;
  (function (m) {
 -    var _a;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringOptionalBindingParametersInOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringOptionalBindingParametersInOverloads.js.diff
deleted file mode 100644
index 61181a5698..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringOptionalBindingParametersInOverloads.js.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- old.declarationEmitDestructuringOptionalBindingParametersInOverloads.js
-+++ new.declarationEmitDestructuringOptionalBindingParametersInOverloads.js
-@@= skipped -10, +10 lines =@@
- }
-
- //// [declarationEmitDestructuringOptionalBindingParametersInOverloads.js]
--function foo() {
--    var rest = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        rest[_i] = arguments[_i];
--    }
-+function foo(...rest) {
- }
--function foo2() {
--    var rest = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        rest[_i] = arguments[_i];
--    }
-+function foo2(...rest) {
- }
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringParameterProperties.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringParameterProperties.js.diff
index 5cb55c42e4..e315a6b433 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringParameterProperties.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringParameterProperties.js.diff
@@ -1,40 +1,6 @@
 --- old.declarationEmitDestructuringParameterProperties.js
 +++ new.declarationEmitDestructuringParameterProperties.js
-@@= skipped -18, +18 lines =@@
- }
-
- //// [declarationEmitDestructuringParameterProperties.js]
--var C1 = /** @class */ (function () {
--    function C1(_a) {
--        var x = _a[0], y = _a[1], z = _a[2];
--    }
--    return C1;
--}());
--var C2 = /** @class */ (function () {
--    function C2(_a) {
--        var x = _a[0], y = _a[1], z = _a[2];
--    }
--    return C2;
--}());
--var C3 = /** @class */ (function () {
--    function C3(_a) {
--        var x = _a.x, y = _a.y, z = _a.z;
--    }
--    return C3;
--}());
-+class C1 {
-+    constructor([x, y, z]) {
-+    }
-+}
-+class C2 {
-+    constructor([x, y, z]) {
-+    }
-+}
-+class C3 {
-+    constructor({ x, y, z }) {
-+    }
-+}
-
+@@= skipped -34, +34 lines =@@
 
  //// [declarationEmitDestructuringParameterProperties.d.ts]
  declare class C1 {
@@ -51,7 +17,7 @@
      constructor([x, y, z]: TupleType1);
  }
  type ObjType1 = {
-@@= skipped -40, +28 lines =@@
+@@= skipped -18, +12 lines =@@
      z: boolean;
  };
  declare class C3 {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringPrivacyError.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringPrivacyError.js.diff
index 825975a040..68f4c2549b 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringPrivacyError.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringPrivacyError.js.diff
@@ -5,14 +5,9 @@
  var m;
  (function (m) {
 -    var _a;
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
+     class c {
+     }
 -    _a = [10, new c(), 30], m.x = _a[0], m.y = _a[1], m.z = _a[2];
-+    class c {
-+    }
 +    [m.x, m.y, m.z] = [10, new c(), 30];
  })(m || (m = {}));
 
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringWithOptionalBindingParameters.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringWithOptionalBindingParameters.js.diff
deleted file mode 100644
index e9f6b11cd5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDestructuringWithOptionalBindingParameters.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.declarationEmitDestructuringWithOptionalBindingParameters.js
-+++ new.declarationEmitDestructuringWithOptionalBindingParameters.js
-@@= skipped -6, +6 lines =@@
- }
-
- //// [declarationEmitDestructuringWithOptionalBindingParameters.js]
--function foo(_a) {
--    var x = _a[0], y = _a[1], z = _a[2];
-+function foo([x, y, z]) {
- }
--function foo1(_a) {
--    var x = _a.x, y = _a.y, z = _a.z;
-+function foo1({ x, y, z }) {
- }
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js.diff
index bae56431c6..2f6a3385f6 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment1.js.diff
@@ -1,44 +1,6 @@
 --- old.declarationEmitDetachedComment1.js
 +++ new.declarationEmitDetachedComment1.js
-@@= skipped -35, +35 lines =@@
- /**
-  * Hello class
-  */
--var Hello = /** @class */ (function () {
--    function Hello() {
--    }
--    return Hello;
--}());
-+class Hello {
-+}
- //// [test2.js]
- /* A comment at the top of the file. */
- /**
-  * Hi class
-  */
--var Hi = /** @class */ (function () {
--    function Hi() {
--    }
--    return Hi;
--}());
-+class Hi {
-+}
- //// [test3.js]
- // A one-line comment at the top of the file.
- /**
-  * Hola class
-  */
--var Hola = /** @class */ (function () {
--    function Hola() {
--    }
--    return Hola;
--}());
-+class Hola {
-+}
-
-
- //// [test1.d.ts]
-@@= skipped -35, +26 lines =@@
+@@= skipped -61, +61 lines =@@
  declare class Hello {
  }
  //// [test2.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment2.js.diff
index 2e80d0fd90..702fedbaa6 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDetachedComment2.js.diff
@@ -5,29 +5,10 @@
 
  //// [test1.js]
 -/*! Copyright 2015 MyCompany Inc. */
--var Hello = (function () {
--    function Hello() {
--    }
--    return Hello;
--}());
-+class Hello {
-+}
+ class Hello {
+ }
  //// [test2.js]
--var Hi = (function () {
--    function Hi() {
--    }
--    return Hi;
--}());
-+class Hi {
-+}
- //// [test3.js]
--var Hola = (function () {
--    function Hola() {
--    }
--    return Hola;
--}());
-+class Hola {
-+}
+@@= skipped -12, +11 lines =@@
 
 
  //// [test1.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js.diff
index ca1f2623b4..d4149d87a3 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitDistributiveConditionalWithInfer.js.diff
@@ -1,12 +1,6 @@
 --- old.declarationEmitDistributiveConditionalWithInfer.js
 +++ new.declarationEmitDistributiveConditionalWithInfer.js
-@@= skipped -11, +11 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.fun = void 0;
- // This function's type is changed on declaration
--var fun = function (subFun) { };
-+const fun = (subFun) => { };
- exports.fun = fun;
+@@= skipped -16, +16 lines =@@
 
 
  //// [declarationEmitDistributiveConditionalWithInfer.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitEnumReadonlyProperty.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitEnumReadonlyProperty.js.diff
index 13e07eab20..1f78ab5775 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitEnumReadonlyProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitEnumReadonlyProperty.js.diff
@@ -1,24 +1,17 @@
 --- old.declarationEmitEnumReadonlyProperty.js
 +++ new.declarationEmitEnumReadonlyProperty.js
-@@= skipped -17, +17 lines =@@
-     E["A"] = "a";
+@@= skipped -18, +18 lines =@@
      E["B"] = "b";
  })(E || (E = {}));
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.type = E.A;
 -    }
--    return C;
--}());
--var x = new C().type;
-+class C {
 +    type = E.A;
-+}
-+let x = new C().type;
-
+ }
+ let x = new C().type;
 
- //// [declarationEmitEnumReadonlyProperty.d.ts]
-@@= skipped -15, +12 lines =@@
+@@= skipped -13, +11 lines =@@
      B = "b"
  }
  declare class C {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitEnumReferenceViaImportEquals.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitEnumReferenceViaImportEquals.js.diff
index 7a854cdeb8..fb4b2e41db 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitEnumReferenceViaImportEquals.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitEnumReferenceViaImportEquals.js.diff
@@ -6,22 +6,16 @@
  exports.Test = void 0;
 -var translation_1 = require("./translation");
 -var TranslationKeyEnum = translation_1.Translation.TranslationKeyEnum;
--var Test = /** @class */ (function () {
--    function Test() {
++const translation_1 = require("./translation");
+ class Test {
+-    constructor() {
 -        this.TranslationKeyEnum = TranslationKeyEnum;
 -    }
--    Test.prototype.print = function () {
-+const translation_1 = require("./translation");
-+class Test {
 +    TranslationKeyEnum = TranslationKeyEnum;
-+    print() {
+     print() {
          console.log(TranslationKeyEnum.Translation1);
--    };
--    return Test;
--}());
-+    }
-+}
- exports.Test = Test;
+     }
+@@= skipped -14, +11 lines =@@
  //// [index.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExactOptionalPropertyTypesNodeNotReused(exactoptionalpropertytypes=false).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExactOptionalPropertyTypesNodeNotReused(exactoptionalpropertytypes=false).js.diff
deleted file mode 100644
index 290e55f34e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExactOptionalPropertyTypesNodeNotReused(exactoptionalpropertytypes=false).js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.declarationEmitExactOptionalPropertyTypesNodeNotReused(exactoptionalpropertytypes=false).js
-+++ new.declarationEmitExactOptionalPropertyTypesNodeNotReused(exactoptionalpropertytypes=false).js
-@@= skipped -25, +25 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.baddts = void 0;
--var foo = function () { return function (x) { return null; }; };
-+const foo = () => (x) => null;
- exports.baddts = foo();
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExactOptionalPropertyTypesNodeNotReused(exactoptionalpropertytypes=true).js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExactOptionalPropertyTypesNodeNotReused(exactoptionalpropertytypes=true).js.diff
deleted file mode 100644
index d4275e2ac4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExactOptionalPropertyTypesNodeNotReused(exactoptionalpropertytypes=true).js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.declarationEmitExactOptionalPropertyTypesNodeNotReused(exactoptionalpropertytypes=true).js
-+++ new.declarationEmitExactOptionalPropertyTypesNodeNotReused(exactoptionalpropertytypes=true).js
-@@= skipped -25, +25 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.baddts = void 0;
--var foo = function () { return function (x) { return null; }; };
-+const foo = () => (x) => null;
- exports.baddts = foo();
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExpandoWithGenericConstraint.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExpandoWithGenericConstraint.js.diff
index c78ad0fcd5..6b591946c6 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExpandoWithGenericConstraint.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitExpandoWithGenericConstraint.js.diff
@@ -1,21 +1,6 @@
 --- old.declarationEmitExpandoWithGenericConstraint.js
 +++ new.declarationEmitExpandoWithGenericConstraint.js
-@@= skipped -19, +19 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Rect = exports.Point = void 0;
--var Point = function (x, y) { return ({ x: x, y: y }); };
-+const Point = (x, y) => ({ x, y });
- exports.Point = Point;
--var Rect = function (a, b) { return ({ a: a, b: b }); };
-+const Rect = (a, b) => ({ a, b });
- exports.Rect = Rect;
--exports.Point.zero = function () { return (0, exports.Point)(0, 0); };
-+exports.Point.zero = () => (0, exports.Point)(0, 0);
-
-
- //// [declarationEmitExpandoWithGenericConstraint.d.ts]
-@@= skipped -18, +18 lines =@@
+@@= skipped -37, +37 lines =@@
  }
  export declare const Point: {
      (x: number, y: number): Point;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExportAliasVisibiilityMarking.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExportAliasVisibiilityMarking.js.diff
index db314eb025..ef7750cdf7 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExportAliasVisibiilityMarking.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitExportAliasVisibiilityMarking.js.diff
@@ -1,16 +1,10 @@
 --- old.declarationEmitExportAliasVisibiilityMarking.js
 +++ new.declarationEmitExportAliasVisibiilityMarking.js
-@@= skipped -19, +19 lines =@@
- //// [Card.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--exports.default = (function (suit, rank) { return ({ suit: suit, rank: rank }); });
-+exports.default = (suit, rank) => ({ suit, rank });
- //// [index.js]
+@@= skipped -24, +24 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.lazyCard = void 0;
--var lazyCard = function () { return Promise.resolve().then(function () { return require('./Card'); }).then(function (a) { return a.default; }); };
+-let lazyCard = () => Promise.resolve().then(function () { return require('./Card'); }).then(a => a.default);
 +let lazyCard = () => Promise.resolve().then(() => require('./Card')).then(a => a.default);
  exports.lazyCard = lazyCard;
 
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExportDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExportDeclaration.js.diff
index fb3b57953b..9446b6ee50 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExportDeclaration.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitExportDeclaration.js.diff
@@ -8,8 +8,4 @@
 +const utils_1 = require("./utils");
  Object.defineProperty(exports, "bar", { enumerable: true, get: function () { return utils_1.bar; } });
  (0, utils_1.foo)();
--var obj;
-+let obj;
-
-
- //// [utils.d.ts]
\ No newline at end of file
+ let obj;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends.js.diff
index 43bc138211..9835c0f5cf 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends.js.diff
@@ -1,45 +1,14 @@
 --- old.declarationEmitExpressionInExtends.js
 +++ new.declarationEmitExpressionInExtends.js
-@@= skipped -15, +15 lines =@@
- q.s;
-
+@@= skipped -17, +17 lines =@@
  //// [declarationEmitExpressionInExtends.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  var x;
--var Q = /** @class */ (function () {
--    function Q() {
--    }
--    return Q;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(x));
-+class Q {
+ class Q {
 +    s;
-+}
-+class B extends x {
-+}
- var q;
- q.s;
-
+ }
+ class B extends x {
+ }
+@@= skipped -9, +10 lines =@@
 
  //// [declarationEmitExpressionInExtends.d.ts]
  declare var x: {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends2.js.diff
index 80aa9c515d..072daee101 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends2.js.diff
@@ -1,45 +1,11 @@
 --- old.declarationEmitExpressionInExtends2.js
 +++ new.declarationEmitExpressionInExtends2.js
-@@= skipped -13, +13 lines =@@
- }
+@@= skipped -14, +14 lines =@@
 
  //// [declarationEmitExpressionInExtends2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    x;
 +    y;
-+}
- function getClass(c) {
-     return C;
  }
--var MyClass = /** @class */ (function (_super) {
--    __extends(MyClass, _super);
--    function MyClass() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return MyClass;
--}(getClass(2)));
-+class MyClass extends getClass(2) {
-+}
-
-
- //// [declarationEmitExpressionInExtends2.d.ts]
\ No newline at end of file
+ function getClass(c) {
+     return C;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends3.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends3.js.diff
index 2a7d9d7099..1163f7d4b5 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends3.js.diff
@@ -1,88 +1,15 @@
 --- old.declarationEmitExpressionInExtends3.js
 +++ new.declarationEmitExpressionInExtends3.js
-@@= skipped -45, +45 lines =@@
-
- //// [declarationEmitExpressionInExtends3.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
+@@= skipped -48, +48 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyClass4 = exports.MyClass3 = exports.MyClass2 = exports.MyClass = exports.ExportedClass = void 0;
--var ExportedClass = /** @class */ (function () {
--    function ExportedClass() {
--    }
--    return ExportedClass;
--}());
-+class ExportedClass {
+ class ExportedClass {
 +    x;
-+}
+ }
  exports.ExportedClass = ExportedClass;
--var LocalClass = /** @class */ (function () {
--    function LocalClass() {
--    }
--    return LocalClass;
--}());
-+class LocalClass {
+ class LocalClass {
 +    x;
 +    y;
-+}
- function getLocalClass(c) {
-     return LocalClass;
  }
- function getExportedClass(c) {
-     return ExportedClass;
- }
--var MyClass = /** @class */ (function (_super) {
--    __extends(MyClass, _super);
--    function MyClass() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return MyClass;
--}(getLocalClass(undefined)));
-+class MyClass extends getLocalClass(undefined) {
-+}
- exports.MyClass = MyClass;
--var MyClass2 = /** @class */ (function (_super) {
--    __extends(MyClass2, _super);
--    function MyClass2() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return MyClass2;
--}(getExportedClass(undefined)));
-+class MyClass2 extends getExportedClass(undefined) {
-+}
- exports.MyClass2 = MyClass2;
--var MyClass3 = /** @class */ (function (_super) {
--    __extends(MyClass3, _super);
--    function MyClass3() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return MyClass3;
--}(getExportedClass(undefined)));
-+class MyClass3 extends getExportedClass(undefined) {
-+}
- exports.MyClass3 = MyClass3;
--var MyClass4 = /** @class */ (function (_super) {
--    __extends(MyClass4, _super);
--    function MyClass4() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return MyClass4;
--}(getExportedClass(undefined)));
-+class MyClass4 extends getExportedClass(undefined) {
-+}
- exports.MyClass4 = MyClass4;
-
+ function getLocalClass(c) {
+     return LocalClass;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends4.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends4.js.diff
deleted file mode 100644
index 8c46a6cd69..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends4.js.diff
+++ /dev/null
@@ -1,61 +0,0 @@
---- old.declarationEmitExpressionInExtends4.js
-+++ new.declarationEmitExpressionInExtends4.js
-@@= skipped -18, +18 lines =@@
- }
-
- //// [declarationEmitExpressionInExtends4.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- function getSomething() {
--    return /** @class */ (function () {
--        function D() {
--        }
--        return D;
--    }());
--}
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(getSomething()));
--var C2 = /** @class */ (function (_super) {
--    __extends(C2, _super);
--    function C2() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C2;
--}(SomeUndefinedFunction()));
--var C3 = /** @class */ (function (_super) {
--    __extends(C3, _super);
--    function C3() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C3;
--}(SomeUndefinedFunction));
-+    return class D {
-+    };
-+}
-+class C extends getSomething() {
-+}
-+class C2 extends SomeUndefinedFunction() {
-+}
-+class C3 extends SomeUndefinedFunction {
-+}
-
-
- //// [declarationEmitExpressionInExtends4.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends5.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends5.js.diff
deleted file mode 100644
index e811a77293..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends5.js.diff
+++ /dev/null
@@ -1,43 +0,0 @@
---- old.declarationEmitExpressionInExtends5.js
-+++ new.declarationEmitExpressionInExtends5.js
-@@= skipped -22, +22 lines =@@
-
-
- //// [declarationEmitExpressionInExtends5.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- var Test;
- (function (Test) {
--    var SomeClass = /** @class */ (function () {
--        function SomeClass() {
--        }
--        return SomeClass;
--    }());
-+    class SomeClass {
-+    }
-     Test.SomeClass = SomeClass;
--    var Derived = /** @class */ (function (_super) {
--        __extends(Derived, _super);
--        function Derived() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return Derived;
--    }(getClass()));
-+    class Derived extends getClass() {
-+    }
-     Test.Derived = Derived;
-     function getClass() {
-         return SomeClass;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends7.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends7.js.diff
deleted file mode 100644
index 226b0181c5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitExpressionInExtends7.js.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- old.declarationEmitExpressionInExtends7.js
-+++ new.declarationEmitExpressionInExtends7.js
-@@= skipped -5, +5 lines =@@
-
- //// [declarationEmitExpressionInExtends7.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
--var default_1 = /** @class */ (function (_super) {
--    __extends(default_1, _super);
--    function default_1() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return default_1;
--}(SomeUndefinedFunction));
-+class default_1 extends SomeUndefinedFunction {
-+}
- exports.default = default_1;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitForDefaultExportClassExtendingExpression01.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitForDefaultExportClassExtendingExpression01.js.diff
index 5e32da7cf6..41b6e90078 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitForDefaultExportClassExtendingExpression01.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitForDefaultExportClassExtendingExpression01.js.diff
@@ -1,48 +1,6 @@
 --- old.declarationEmitForDefaultExportClassExtendingExpression01.js
 +++ new.declarationEmitForDefaultExportClassExtendingExpression01.js
-@@= skipped -23, +23 lines =@@
-
- //// [declarationEmitForDefaultExportClassExtendingExpression01.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.getGreeting = function () {
-+class A {
-+    getGreeting() {
-         return 'hello';
--    };
--    return A;
--}());
--var getGreeterBase = function () { return A; };
--var default_1 = /** @class */ (function (_super) {
--    __extends(default_1, _super);
--    function default_1() {
--        return _super !== null && _super.apply(this, arguments) || this;
-     }
--    return default_1;
--}(getGreeterBase()));
-+}
-+const getGreeterBase = () => A;
-+class default_1 extends getGreeterBase() {
-+}
- exports.default = default_1;
+@@= skipped -36, +36 lines =@@
 
 
  //// [declarationEmitForDefaultExportClassExtendingExpression01.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js.diff
index 04146677ac..8558457051 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitForModuleImportingModuleAugmentationRetainsImport.js.diff
@@ -5,24 +5,11 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.ParentThing = void 0;
 -var child1_1 = require("./child1"); // this import should still exist in some form in the output, since it augments this module
--var ParentThing = /** @class */ (function () {
--    function ParentThing() {
--    }
--    return ParentThing;
--}());
 +const child1_1 = require("./child1"); // this import should still exist in some form in the output, since it augments this module
-+class ParentThing {
-+}
- exports.ParentThing = ParentThing;
- (0, child1_1.child1)(ParentThing.prototype);
- //// [child1.js]
-@@= skipped -13, +10 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.child1 = child1;
- function child1(prototype) {
--    prototype.add = function (a, b) { return a + b; };
-+    prototype.add = (a, b) => a + b;
+ class ParentThing {
  }
+ exports.ParentThing = ParentThing;
+@@= skipped -15, +15 lines =@@
 
 
  //// [parent.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitGenericTypeParamerSerialization.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitGenericTypeParamerSerialization.js.diff
deleted file mode 100644
index 0ef748b9a3..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitGenericTypeParamerSerialization.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.declarationEmitGenericTypeParamerSerialization.js
-+++ new.declarationEmitGenericTypeParamerSerialization.js
-@@= skipped -16, +16 lines =@@
- exports.w = void 0;
- function wrapper(value) {
-     return {
--        m: function () { return value; },
-+        m() { return value; },
-         get g() { return value; },
-     };
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitGenericTypeParamerSerialization2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitGenericTypeParamerSerialization2.js.diff
index 95c04e9076..acebc36bc2 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitGenericTypeParamerSerialization2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitGenericTypeParamerSerialization2.js.diff
@@ -1,15 +1,6 @@
 --- old.declarationEmitGenericTypeParamerSerialization2.js
 +++ new.declarationEmitGenericTypeParamerSerialization2.js
-@@= skipped -41, +41 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.v = exports.x = void 0;
--exports.x = (function () { return null; })();
-+exports.x = (() => null)();
- function makeV() {
-     return null;
- }
-@@= skipped -24, +24 lines =@@
+@@= skipped -65, +65 lines =@@
      fnField: (p: number) => number;
      writeOnlyProperty: number;
      property: number;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitHasTypesRefOnNamespaceUse.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitHasTypesRefOnNamespaceUse.js.diff
deleted file mode 100644
index 885f6c1925..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitHasTypesRefOnNamespaceUse.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.declarationEmitHasTypesRefOnNamespaceUse.js
-+++ new.declarationEmitHasTypesRefOnNamespaceUse.js
-@@= skipped -13, +13 lines =@@
-
-
- //// [index.js]
--var Src = /** @class */ (function () {
--    function Src() {
--    }
--    return Src;
--}());
-+class Src {
-+}
-
-
- //// [index.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitImportInExportAssignmentModule.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitImportInExportAssignmentModule.js.diff
index fb666928eb..68535f85e9 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitImportInExportAssignmentModule.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitImportInExportAssignmentModule.js.diff
@@ -1,19 +1,7 @@
 --- old.declarationEmitImportInExportAssignmentModule.js
 +++ new.declarationEmitImportInExportAssignmentModule.js
-@@= skipped -14, +14 lines =@@
- "use strict";
- var m;
- (function (m) {
--    var c;
-+    let c;
-     (function (c_1) {
--        var c = /** @class */ (function () {
--            function c() {
--            }
--            return c;
--        }());
-+        class c {
-+        }
+@@= skipped -20, +20 lines =@@
+         }
          c_1.c = c;
      })(c = m.c || (m.c = {}));
 +    var x = c;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitIndexTypeArray.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitIndexTypeArray.js.diff
deleted file mode 100644
index 36b8f6cff5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitIndexTypeArray.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.declarationEmitIndexTypeArray.js
-+++ new.declarationEmitIndexTypeArray.js
-@@= skipped -8, +8 lines =@@
-
-
- //// [declarationEmitIndexTypeArray.js]
--function doSomethingWithKeys() {
--    var keys = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        keys[_i] = arguments[_i];
--    }
--}
--var utilityFunctions = {
--    doSomethingWithKeys: doSomethingWithKeys
-+function doSomethingWithKeys(...keys) { }
-+const utilityFunctions = {
-+    doSomethingWithKeys
- };
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias1.js.diff
deleted file mode 100644
index a8389244e5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias1.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.declarationEmitInferredTypeAlias1.js
-+++ new.declarationEmitInferredTypeAlias1.js
-@@= skipped -14, +14 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- {
--    var obj = true;
-+    let obj = true;
- }
- //// [1.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.v = void 0;
--var v = "str" || true;
-+let v = "str" || true;
- exports.v = v;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias2.js.diff
deleted file mode 100644
index 8d3b06c7dc..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias2.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.declarationEmitInferredTypeAlias2.js
-+++ new.declarationEmitInferredTypeAlias2.js
-@@= skipped -17, +17 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- {
--    var obj = true;
-+    let obj = true;
- }
- //// [1.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.v = void 0;
- exports.bar = bar;
--var v = "str" || true;
-+let v = "str" || true;
- exports.v = v;
- function bar() {
-     return v;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias3.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias3.js.diff
deleted file mode 100644
index ad4d11ee07..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias3.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.declarationEmitInferredTypeAlias3.js
-+++ new.declarationEmitInferredTypeAlias3.js
-@@= skipped -14, +14 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- {
--    var obj = true;
-+    let obj = true;
- }
- //// [1.js]
- "use strict";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js.diff
index 9502632b1d..067a2bad3b 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias5.js.diff
@@ -1,21 +1,6 @@
 --- old.declarationEmitInferredTypeAlias5.js
 +++ new.declarationEmitInferredTypeAlias5.js
-@@= skipped -12, +12 lines =@@
- //// [0.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var obj = true;
-+let obj = true;
- //// [1.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.v = void 0;
- //let v2: Z.Data;
--var v = "str" || true;
-+let v = "str" || true;
- exports.v = v;
-
-
+@@= skipped -25, +25 lines =@@
  //// [0.d.ts]
  export type Data = string | boolean;
  //// [1.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias6.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias6.js.diff
deleted file mode 100644
index 377c610e30..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias6.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.declarationEmitInferredTypeAlias6.js
-+++ new.declarationEmitInferredTypeAlias6.js
-@@= skipped -14, +14 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- {
--    var obj = true;
-+    let obj = true;
- }
- //// [1.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.v = void 0;
--var v = "str" || true;
-+let v = "str" || true;
- exports.v = v;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias7.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias7.js.diff
deleted file mode 100644
index 4d854d20be..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredTypeAlias7.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.declarationEmitInferredTypeAlias7.js
-+++ new.declarationEmitInferredTypeAlias7.js
-@@= skipped -10, +10 lines =@@
- //// [0.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var obj = true;
-+let obj = true;
- //// [1.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.v = void 0;
--var v = "str" || true;
-+let v = "str" || true;
- exports.v = v;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js.diff
index cdfaf9f90e..282c829556 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitInferredUndefinedPropFromFunctionInArray.js.diff
@@ -7,9 +7,8 @@
 -// repro from https://github.com/microsoft/TypeScript/issues/53914
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.b = void 0;
--exports.b = [{ foo: 0, m: function () { } }, { bar: 1 }];
 +// repro from https://github.com/microsoft/TypeScript/issues/53914
-+exports.b = [{ foo: 0, m() { } }, { bar: 1 }];
+ exports.b = [{ foo: 0, m() { } }, { bar: 1 }];
 
 
  //// [declarationEmitInferredUndefinedPropFromFunctionInArray.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js.diff
index 70e07293e0..031e16f39a 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitInlinedDistributiveConditional.js.diff
@@ -5,27 +5,20 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.dropPrivateProps2 = exports.dropPrivateProps1 = void 0;
 -var internal_1 = require("./internal");
--var dropPrivateProps1 = function (obj) { return (0, internal_1.excludePrivateKeys1)(obj); };
 +const internal_1 = require("./internal");
-+const dropPrivateProps1 = (obj) => (0, internal_1.excludePrivateKeys1)(obj);
+ const dropPrivateProps1 = (obj) => (0, internal_1.excludePrivateKeys1)(obj);
  exports.dropPrivateProps1 = dropPrivateProps1;
--var dropPrivateProps2 = function (obj) { return (0, internal_1.excludePrivateKeys2)(obj); };
-+const dropPrivateProps2 = (obj) => (0, internal_1.excludePrivateKeys2)(obj);
- exports.dropPrivateProps2 = dropPrivateProps2;
+ const dropPrivateProps2 = (obj) => (0, internal_1.excludePrivateKeys2)(obj);
+@@= skipped -8, +8 lines =@@
  //// [test.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
 -var api_1 = require("./api");
--var a = (0, api_1.dropPrivateProps1)({ foo: 42, _bar: 'secret' }); // type is {foo: number}
 +const api_1 = require("./api");
-+const a = (0, api_1.dropPrivateProps1)({ foo: 42, _bar: 'secret' }); // type is {foo: number}
+ const a = (0, api_1.dropPrivateProps1)({ foo: 42, _bar: 'secret' }); // type is {foo: number}
  //a._bar                                                // error: _bar does not exist           <===== as expected
--var b = (0, api_1.dropPrivateProps2)({ foo: 42, _bar: 'secret' }); // type is {foo: number, _bar: string}
-+const b = (0, api_1.dropPrivateProps2)({ foo: 42, _bar: 'secret' }); // type is {foo: number, _bar: string}
- //b._bar                                                // no error, type of b._bar is string   <===== NOT expected
-
-
-@@= skipped -30, +30 lines =@@
+ const b = (0, api_1.dropPrivateProps2)({ foo: 42, _bar: 'secret' }); // type is {foo: number, _bar: string}
+@@= skipped -22, +22 lines =@@
  export declare const dropPrivateProps2: (obj: Obj) => { [K in keyof Obj extends infer T ? T extends keyof Obj ? T extends `_${string}` ? never : T : never : never]: Obj[K]; };
  //// [test.d.ts]
  export {};
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitInterfaceWithNonEntityNameExpressionHeritage.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitInterfaceWithNonEntityNameExpressionHeritage.js.diff
deleted file mode 100644
index 0785bbfa98..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitInterfaceWithNonEntityNameExpressionHeritage.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.declarationEmitInterfaceWithNonEntityNameExpressionHeritage.js
-+++ new.declarationEmitInterfaceWithNonEntityNameExpressionHeritage.js
-@@= skipped -4, +4 lines =@@
- interface Class extends (typeof A) { }
-
- //// [declarationEmitInterfaceWithNonEntityNameExpressionHeritage.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
-+}
-
-
- //// [declarationEmitInterfaceWithNonEntityNameExpressionHeritage.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitIsolatedDeclarationErrorNotEmittedForNonEmittedFile.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitIsolatedDeclarationErrorNotEmittedForNonEmittedFile.js.diff
index a0725837e8..acd616e574 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitIsolatedDeclarationErrorNotEmittedForNonEmittedFile.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitIsolatedDeclarationErrorNotEmittedForNonEmittedFile.js.diff
@@ -5,9 +5,8 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.publicProcedure = exports.router = exports.middleware = void 0;
 -var server_1 = require("@trpc/server");
--var trpc = server_1.initTRPC.create();
 +const server_1 = require("@trpc/server");
-+const trpc = server_1.initTRPC.create();
+ const trpc = server_1.initTRPC.create();
  exports.middleware = trpc.middleware;
  exports.router = trpc.router;
  exports.publicProcedure = trpc.procedure;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitKeywordDestructuring.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitKeywordDestructuring.js.diff
index 5356166c77..56d5c810ff 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitKeywordDestructuring.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitKeywordDestructuring.js.diff
@@ -16,23 +16,23 @@
 -    return t;
 -};
 -function f1(_a) {
--    var _enum = _a.enum, rest = __rest(_a, ["enum"]);
+-    var { enum: _enum } = _a, rest = __rest(_a, ["enum"]);
 -    return rest;
 -}
 -function f2(_a) {
--    var _function = _a.function, rest = __rest(_a, ["function"]);
+-    var { function: _function } = _a, rest = __rest(_a, ["function"]);
 -    return rest;
 -}
 -function f3(_a) {
--    var _abstract = _a.abstract, rest = __rest(_a, ["abstract"]);
+-    var { abstract: _abstract } = _a, rest = __rest(_a, ["abstract"]);
 -    return rest;
 -}
 -function f4(_a) {
--    var _async = _a.async, rest = __rest(_a, ["async"]);
+-    var { async: _async } = _a, rest = __rest(_a, ["async"]);
 -    return rest;
 -}
 -function f5(_a) {
--    var _await = _a.await, rest = __rest(_a, ["await"]);
+-    var { await: _await } = _a, rest = __rest(_a, ["await"]);
 +function f1({ enum: _enum, ...rest }) {
 +    return rest;
 +}
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js.diff
index 43b0d60c54..dd23dec817 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassDeclarationMixin.js.diff
@@ -1,87 +1,38 @@
 --- old.declarationEmitLocalClassDeclarationMixin.js
 +++ new.declarationEmitLocalClassDeclarationMixin.js
-@@= skipped -33, +33 lines =@@
-
- //// [declarationEmitLocalClassDeclarationMixin.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -37, +37 lines =@@
  exports.FilteredThing = exports.Mixed = exports.Unmixed = void 0;
  function mixin(Base) {
--    var PrivateMixed = /** @class */ (function (_super) {
--        __extends(PrivateMixed, _super);
--        function PrivateMixed() {
--            var _this = _super !== null && _super.apply(this, arguments) || this;
--            _this.bar = 2;
--            return _this;
+     class PrivateMixed extends Base {
+-        constructor() {
+-            super(...arguments);
+-            this.bar = 2;
 -        }
--        return PrivateMixed;
--    }(Base));
-+    class PrivateMixed extends Base {
 +        bar = 2;
-+    }
+     }
      return PrivateMixed;
  }
--var Unmixed = /** @class */ (function () {
--    function Unmixed() {
+ class Unmixed {
+-    constructor() {
 -        this.foo = 1;
 -    }
--    return Unmixed;
--}());
-+class Unmixed {
 +    foo = 1;
-+}
+ }
  exports.Unmixed = Unmixed;
  exports.Mixed = mixin(Unmixed);
  function Filter(ctor) {
--    var FilterMixin = /** @class */ (function (_super) {
--        __extends(FilterMixin, _super);
--        function FilterMixin() {
--            var _this = _super !== null && _super.apply(this, arguments) || this;
+     class FilterMixin extends ctor {
+-        constructor() {
+-            super(...arguments);
 -            // other concrete methods, fields, constructor
--            _this.thing = 12;
--            return _this;
+-            this.thing = 12;
 -        }
--        return FilterMixin;
--    }(ctor));
-+    class FilterMixin extends ctor {
 +        // other concrete methods, fields, constructor
 +        thing = 12;
-+    }
+     }
      return FilterMixin;
  }
--var FilteredThing = /** @class */ (function (_super) {
--    __extends(FilteredThing, _super);
--    function FilteredThing() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    FilteredThing.prototype.match = function (path) {
-+class FilteredThing extends Filter(Unmixed) {
-+    match(path) {
-         return false;
--    };
--    return FilteredThing;
--}(Filter(Unmixed)));
-+    }
-+}
- exports.FilteredThing = FilteredThing;
-
-
-@@= skipped -74, +39 lines =@@
+@@= skipped -43, +35 lines =@@
  } & typeof Unmixed;
  declare const FilteredThing_base: (abstract new (...args: any[]) => {
      match(path: string): boolean;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassHasRequiredDeclare.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassHasRequiredDeclare.js.diff
index 7886ce309c..e5e32cc2f0 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassHasRequiredDeclare.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitLocalClassHasRequiredDeclare.js.diff
@@ -1,32 +1,18 @@
 --- old.declarationEmitLocalClassHasRequiredDeclare.js
 +++ new.declarationEmitLocalClassHasRequiredDeclare.js
-@@= skipped -20, +20 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -22, +22 lines =@@
  exports.Y = exports.A = void 0;
--var X = /** @class */ (function () {
--    function X() {
--    }
--    return X;
--}());
--var A = /** @class */ (function () {
--    function A() {
+ class X {
+ }
+-let A = (() => {
+-    class A {
 -    }
 -    A.X = X;
 -    return A;
--}());
-+class X {
-+}
+-})();
 +class A {
 +    static X = X;
 +}
  exports.A = A;
--var Y = /** @class */ (function () {
--    function Y() {
--    }
--    return Y;
--}());
-+class Y {
-+}
- exports.Y = Y;
-
+ class Y {
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypeDistributivityPreservesConstraints.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypeDistributivityPreservesConstraints.js.diff
index 536b558af0..490de14436 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypeDistributivityPreservesConstraints.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitMappedTypeDistributivityPreservesConstraints.js.diff
@@ -1,11 +1,6 @@
 --- old.declarationEmitMappedTypeDistributivityPreservesConstraints.js
 +++ new.declarationEmitMappedTypeDistributivityPreservesConstraints.js
-@@= skipped -22, +22 lines =@@
- function fn(sliceIndex) {
-     return null;
- }
--exports.default = { fn: fn };
-+exports.default = { fn };
+@@= skipped -26, +26 lines =@@
  //// [reexport.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -14,7 +9,7 @@
  exports.default = { test: types_1.default };
 
 
-@@= skipped -27, +27 lines =@@
+@@= skipped -23, +23 lines =@@
  declare const _default: {
      test: {
          fn:  arg)({ '0': 0 }); // Original prop uses string syntax
-
+@@= skipped -11, +11 lines =@@
 
  //// [declarationEmitMappedTypePropertyFromNumericStringKey.d.ts]
  export declare const f: {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitMixinPrivateProtected.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitMixinPrivateProtected.js.diff
index 2fb070c5df..241fa752fa 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitMixinPrivateProtected.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitMixinPrivateProtected.js.diff
@@ -1,104 +1,8 @@
 --- old.declarationEmitMixinPrivateProtected.js
 +++ new.declarationEmitMixinPrivateProtected.js
-@@= skipped -35, +35 lines =@@
-
- //// [first.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Monitor = void 0;
--var DisposableMixin = /** @class */ (function () {
--    function class_1() {
--    }
--    class_1.prototype._onDispose = function () {
-+const DisposableMixin = class {
-+    _onDispose() {
-         this._assertIsStripped();
--    };
--    class_1.prototype._assertIsStripped = function () {
--    };
--    return class_1;
--}());
-+    }
-+    _assertIsStripped() {
-+    }
-+};
- // No error, but definition is wrong. 
- exports.default = mix(DisposableMixin);
--var Monitor = /** @class */ (function (_super) {
--    __extends(Monitor, _super);
--    function Monitor() {
--        return _super !== null && _super.apply(this, arguments) || this;
-+class Monitor extends mix(DisposableMixin) {
-+    _onDispose() {
+@@= skipped -66, +66 lines =@@
      }
--    Monitor.prototype._onDispose = function () {
--    };
--    return Monitor;
--}(mix(DisposableMixin)));
-+}
- exports.Monitor = Monitor;
- //// [another.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
--var DisposableMixin = /** @class */ (function () {
--    function class_1() {
--    }
--    class_1.prototype._onDispose = function () {
-+const DisposableMixin = class {
-+    _onDispose() {
-         this._assertIsStripped();
--    };
--    class_1.prototype._assertIsStripped = function () {
--    };
--    return class_1;
--}());
--var default_1 = /** @class */ (function (_super) {
--    __extends(default_1, _super);
--    function default_1() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    default_1.prototype._onDispose = function () {
--    };
--    return default_1;
--}(mix(DisposableMixin)));
-+    }
-+    _assertIsStripped() {
-+    }
-+};
-+class default_1 extends mix(DisposableMixin) {
-+    _onDispose() {
-+    }
-+}
+ }
  exports.default = default_1;
 +
 +
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitMultipleComputedNamesSameDomain.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitMultipleComputedNamesSameDomain.js.diff
index 855f5d4ca6..595c7bbd25 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitMultipleComputedNamesSameDomain.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitMultipleComputedNamesSameDomain.js.diff
@@ -7,17 +7,14 @@
 -var _a, _b;
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Test = void 0;
--var Test = /** @class */ (function () {
--    function Test() {
+ class Test {
+-    constructor() {
 -        this[_a] = 10;
 -        this[_b] = 10;
 -    }
--    return Test;
--}());
-+class Test {
 +    [x] = 10;
 +    [y] = 10;
-+}
+ }
  exports.Test = Test;
 -_a = x, _b = y;
 
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js.diff
index 5513fbf571..74a77abef8 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts.js.diff
@@ -1,20 +1,6 @@
 --- old.declarationEmitNameConflicts.js
 +++ new.declarationEmitNameConflicts.js
-@@= skipped -52, +52 lines =@@
- "use strict";
- var f;
- (function (f) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     f.c = c;
- })(f || (f = {}));
- module.exports = f;
-@@= skipped -12, +9 lines =@@
+@@= skipped -61, +61 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.M = void 0;
@@ -23,21 +9,7 @@
  var M;
  (function (M) {
      function f() { }
-     M.f = f;
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        return C;
--    }());
-+    class C {
-+    }
-     M.C = C;
--    var N;
-+    let N;
-     (function (N) {
-         function g() { }
-         N.g = g;
-@@= skipped -23, +20 lines =@@
+@@= skipped -20, +20 lines =@@
      M.d = im;
  })(M || (exports.M = M = {}));
  (function (M) {
@@ -46,20 +18,7 @@
      (function (P) {
          function f() { }
          P.f = f;
--        var C = /** @class */ (function () {
--            function C() {
--            }
--            return C;
--        }());
-+        class C {
-+        }
-         P.C = C;
--        var N;
-+        let N;
-         (function (N) {
-             function g() { }
-             N.g = g;
-@@= skipped -25, +22 lines =@@
+@@= skipped -22, +22 lines =@@
      })(P = M.P || (M.P = {}));
  })(M || (exports.M = M = {}));
  (function (M) {
@@ -68,20 +27,7 @@
      (function (Q) {
          function f() { }
          Q.f = f;
--        var C = /** @class */ (function () {
--            function C() {
--            }
--            return C;
--        }());
-+        class C {
-+        }
-         Q.C = C;
--        var N;
-+        let N;
-         (function (N) {
-             function g() { }
-             N.g = g;
-@@= skipped -52, +49 lines =@@
+@@= skipped -49, +49 lines =@@
          }
      }
      export import im = M.P.f;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js.diff
index 778e381809..86975c88c3 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts2.js.diff
@@ -12,23 +12,7 @@
          (function (base) {
              function f() { }
              base.f = f;
--            var C = /** @class */ (function () {
--                function C() {
--                }
--                return C;
--            }());
-+            class C {
-+            }
-             base.C = C;
--            var M;
-+            let M;
-             (function (M) {
-             })(M = base.M || (base.M = {}));
--            var E;
-+            let E;
-             (function (E) {
-             })(E = base.E || (base.E = {}));
-         })(base = Y.base || (Y.base = {}));
+@@= skipped -19, +19 lines =@@
      })(Y = X.Y || (X.Y = {}));
  })(X || (X = {}));
  (function (X) {
@@ -43,7 +27,7 @@
              (function (Z) {
                  Z.f = X.Y.base.f; // Should be base.f
                  Z.C = X.Y.base.C; // Should be base.C
-@@= skipped -50, +47 lines =@@
+@@= skipped -28, +28 lines =@@
      }
  }
  declare namespace X.Y.base.Z {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js.diff
index 1152c555a9..18425df32e 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNameConflicts3.js.diff
@@ -1,75 +1,15 @@
 --- old.declarationEmitNameConflicts3.js
 +++ new.declarationEmitNameConflicts3.js
-@@= skipped -28, +28 lines =@@
- }
-
- //// [declarationEmitNameConflicts3.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- var M;
- (function (M) {
--    var D;
-+    let D;
-     (function (D) {
-         function f() { }
-         D.f = f;
-     })(D = M.D || (M.D = {}));
--    var C;
-+    let C;
-     (function (C) {
-         function f() { }
-         C.f = f;
-     })(C = M.C || (M.C = {}));
--    var E;
-+    let E;
-     (function (E) {
-         function f() { }
-         E.f = f;
+@@= skipped -47, +47 lines =@@
      })(E = M.E || (M.E = {}));
  })(M || (M = {}));
  (function (M) {
 -    var P;
 +    let P;
      (function (P) {
--        var C = /** @class */ (function () {
--            function C() {
--            }
--            C.f = function () { };
--            return C;
--        }());
-+        class C {
-+            static f() { }
-+        }
-         P.C = C;
--        var E = /** @class */ (function (_super) {
--            __extends(E, _super);
--            function E() {
--                return _super !== null && _super.apply(this, arguments) || this;
--            }
--            return E;
--        }(C));
-+        class E extends C {
-+        }
-         P.E = E;
--        var D;
-+        let D;
-         (function (D) {
-             D[D["f"] = 0] = "f";
-         })(D = P.D || (P.D = {}));
-@@= skipped -85, +62 lines =@@
+         class C {
+             static f() { }
+@@= skipped -43, +43 lines =@@
      enum D {
          f = 0
      }
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNestedGenerics.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNestedGenerics.js.diff
index 578ab6f98d..464bae7869 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitNestedGenerics.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNestedGenerics.js.diff
@@ -1,18 +1,6 @@
 --- old.declarationEmitNestedGenerics.js
 +++ new.declarationEmitNestedGenerics.js
-@@= skipped -12, +12 lines =@@
-
- //// [declarationEmitNestedGenerics.js]
- function f(p) {
--    var g = null;
-+    let g = null;
-     return g;
- }
- function g(x) {
--    var y = null;
-+    let y = null;
-     return y;
- }
+@@= skipped -22, +22 lines =@@
 
 
  //// [declarationEmitNestedGenerics.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitNonExportedBindingPattern.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitNonExportedBindingPattern.js.diff
index 44b6b3238c..4a11b85f54 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitNonExportedBindingPattern.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitNonExportedBindingPattern.js.diff
@@ -1,18 +1,6 @@
 --- old.declarationEmitNonExportedBindingPattern.js
 +++ new.declarationEmitNonExportedBindingPattern.js
-@@= skipped -27, +27 lines =@@
- function getFoo() {
-     return { foo: { test: 42 } };
- }
--var foo = getFoo().foo;
--var renamed = getFoo().foo;
-+const { foo } = getFoo();
-+const { foo: renamed } = getFoo();
- function getNested() {
-     return { a: { b: { c: 'd' } } };
- }
--var c = getNested().a.b.c;
-+const { a: { b: { c } } } = getNested();
+@@= skipped -36, +36 lines =@@
 
 
  //// [test.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitOfTypeofAliasedExport.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitOfTypeofAliasedExport.js.diff
index 42066c7613..dcd3d7f9df 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitOfTypeofAliasedExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitOfTypeofAliasedExport.js.diff
@@ -1,17 +1,6 @@
 --- old.declarationEmitOfTypeofAliasedExport.js
 +++ new.declarationEmitOfTypeofAliasedExport.js
-@@= skipped -12, +12 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.D = void 0;
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
- exports.D = C;
+@@= skipped -18, +18 lines =@@
  //// [b.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitOptionalMethod.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitOptionalMethod.js.diff
index 62adb3cad8..be0420e6f4 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitOptionalMethod.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitOptionalMethod.js.diff
@@ -1,14 +1,6 @@
 --- old.declarationEmitOptionalMethod.js
 +++ new.declarationEmitOptionalMethod.js
-@@= skipped -12, +12 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Foo = void 0;
--var Foo = function (opts) { return ({}); };
-+const Foo = (opts) => ({});
- exports.Foo = Foo;
-
-
+@@= skipped -19, +19 lines =@@
  //// [declarationEmitOptionalMethod.d.ts]
  export declare const Foo: (opts: {
      a?(): void;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitOverloadedPrivateInference.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitOverloadedPrivateInference.js.diff
index e0d10d5821..4f5feec929 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitOverloadedPrivateInference.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitOverloadedPrivateInference.js.diff
@@ -1,27 +1,21 @@
 --- old.declarationEmitOverloadedPrivateInference.js
 +++ new.declarationEmitOverloadedPrivateInference.js
-@@= skipped -32, +32 lines =@@
- function oneArg(input) {
+@@= skipped -33, +33 lines =@@
      return null;
  }
--var Wrapper = /** @class */ (function () {
--    function Wrapper() {
+ class Wrapper {
+-    constructor() {
 -        this.Proxies = {
 -            Failure: this.proxy(noArgs, true),
 -            Success: this.proxy(oneArg),
 -        };
 -    }
--    Wrapper.prototype.proxy = function (fn) {
-+class Wrapper {
-+    proxy(fn) {
+     proxy(fn) {
          return null;
-+    }
+     }
 +    Proxies = {
 +        Failure: this.proxy(noArgs, true),
 +        Success: this.proxy(oneArg),
-     };
--    return Wrapper;
--}());
-+}
++    };
+ }
  exports.Wrapper = Wrapper;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitParameterProperty.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitParameterProperty.js.diff
index 8d2ba5ca59..08fe2bf37a 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitParameterProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitParameterProperty.js.diff
@@ -1,21 +1,14 @@
 --- old.declarationEmitParameterProperty.js
 +++ new.declarationEmitParameterProperty.js
-@@= skipped -10, +10 lines =@@
- "use strict";
+@@= skipped -11, +11 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Foo = void 0;
--var Foo = /** @class */ (function () {
--    function Foo(bar) {
-+class Foo {
+ class Foo {
 +    bar;
-+    constructor(bar) {
+     constructor(bar) {
          this.bar = bar;
      }
--    return Foo;
--}());
-+}
- exports.Foo = Foo;
-
+@@= skipped -9, +10 lines =@@
 
  //// [declarationEmitParameterProperty.d.ts]
  export declare class Foo {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPreserveReferencedImports.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPreserveReferencedImports.js.diff
index d5aeff23e7..83b706aaeb 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitPreserveReferencedImports.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPreserveReferencedImports.js.diff
@@ -1,13 +1,6 @@
 --- old.declarationEmitPreserveReferencedImports.js
 +++ new.declarationEmitPreserveReferencedImports.js
-@@= skipped -20, +20 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.o = void 0;
--var o = function (o) { return function () { return null; }; };
-+const o = (o) => () => null;
- exports.o = o;
- //// [main.js]
+@@= skipped -26, +26 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.f = void 0;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPreservesHasNoDefaultLibDirective.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPreservesHasNoDefaultLibDirective.js.diff
index 752a0d4941..095e9856f5 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitPreservesHasNoDefaultLibDirective.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPreservesHasNoDefaultLibDirective.js.diff
@@ -1,17 +1,11 @@
 --- old.declarationEmitPreservesHasNoDefaultLibDirective.js
 +++ new.declarationEmitPreservesHasNoDefaultLibDirective.js
-@@= skipped -16, +16 lines =@@
-
+@@= skipped -17, +17 lines =@@
  //// [declarationEmitPreservesHasNoDefaultLibDirective.js]
  /// 
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
+ class Foo {
 +    public;
-+}
+ }
 
 
  //// [declarationEmitPreservesHasNoDefaultLibDirective.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateAsync.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateAsync.js.diff
index f927b16875..eee3c30796 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateAsync.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateAsync.js.diff
@@ -12,51 +12,16 @@
 -        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
--};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
 -};
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Foo = void 0;
--var Foo = /** @class */ (function () {
--    function Foo() {
-+class Foo {
+ class Foo {
+-    baz() {
+-        return __awaiter(this, void 0, void 0, function* () {
+-            return;
+-        });
 +    async baz() {
 +        return;
      }
--    Foo.prototype.baz = function () {
--        return __awaiter(this, void 0, void 0, function () {
--            return __generator(this, function (_a) {
--                return [2 /*return*/];
--            });
--        });
--    };
--    return Foo;
--}());
-+}
- exports.Foo = Foo;
-
+ }
+ exports.Foo = Foo;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js.diff
index c88d0dd13d..c54f870a17 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateNameCausesError.js.diff
@@ -1,40 +1,16 @@
 --- old.declarationEmitPrivateNameCausesError.js
 +++ new.declarationEmitPrivateNameCausesError.js
-@@= skipped -11, +11 lines =@@
-
- //// [file.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ignoreExtraVariables = ignoreExtraVariables;
--var IGNORE_EXTRA_VARIABLES = Symbol(); //Notice how this is unexported
-+const IGNORE_EXTRA_VARIABLES = Symbol(); //Notice how this is unexported
+@@= skipped -16, +16 lines =@@
+ const IGNORE_EXTRA_VARIABLES = Symbol(); //Notice how this is unexported
  //This is exported
  function ignoreExtraVariables(ctor) {
 -    var _a, _b;
--    return _b = /** @class */ (function (_super) {
--            __extends(class_1, _super);
--            function class_1() {
--                var _this = _super !== null && _super.apply(this, arguments) || this;
--                _this[_a] = true; //An unexported constant is used
--                return _this;
+-    return _b = class extends ctor {
+-            constructor() {
+-                super(...arguments);
+-                this[_a] = true; //An unexported constant is used
 -            }
--            return class_1;
--        }(ctor)),
+-        },
 -        _a = IGNORE_EXTRA_VARIABLES,
 -        _b;
 +    return class extends ctor {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivatePromiseLikeInterface.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivatePromiseLikeInterface.js.diff
index 473312f056..5b69a547cd 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivatePromiseLikeInterface.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivatePromiseLikeInterface.js.diff
@@ -1,48 +1,38 @@
 --- old.declarationEmitPrivatePromiseLikeInterface.js
 +++ new.declarationEmitPrivatePromiseLikeInterface.js
-@@= skipped -35, +35 lines =@@
- "use strict";
+@@= skipped -36, +36 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.HttpClient = void 0;
--var HttpClient = /** @class */ (function () {
--    function HttpClient() {
--        this.request = function () {
+ class HttpClient {
+-    constructor() {
+-        this.request = () => {
 -            return '';
 -        };
 -    }
--    return HttpClient;
--}());
-+class HttpClient {
 +    request = () => {
 +        return '';
 +    };
-+}
+ }
  exports.HttpClient = HttpClient;
  //// [Api.js]
- "use strict";
+@@= skipped -12, +10 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Api = void 0;
--var Api = /** @class */ (function () {
--    function Api(http) {
--        var _this = this;
-+class Api {
+ class Api {
 +    http;
-+    constructor(http) {
+     constructor(http) {
          this.http = http;
--        this.abc1 = function () { return _this.http.request(); };
--        this.abc2 = function () { return _this.http.request(); };
--        this.abc3 = function () { return _this.http.request(); };
+-        this.abc1 = () => this.http.request();
+-        this.abc2 = () => this.http.request();
+-        this.abc3 = () => this.http.request();
      }
--    return Api;
--}());
 +    abc1 = () => this.http.request();
 +    abc2 = () => this.http.request();
 +    abc3 = () => this.http.request();
-+}
+ }
  exports.Api = Api;
 
-
-@@= skipped -36, +32 lines =@@
+@@= skipped -20, +21 lines =@@
      error: E;
  }
  export declare class HttpClient {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateReadonlyLiterals.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateReadonlyLiterals.js.diff
index de69f46de6..9b324bfd28 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateReadonlyLiterals.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateReadonlyLiterals.js.diff
@@ -4,15 +4,17 @@
 
 
  //// [declarationEmitPrivateReadonlyLiterals.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
--        this.B = "b";
--        this.D = 42;
+-let Foo = (() => {
+-    class Foo {
+-        constructor() {
+-            this.B = "b";
+-            this.D = 42;
+-        }
 -    }
 -    Foo.A = "a";
 -    Foo.C = 42;
 -    return Foo;
--}());
+-})();
 +class Foo {
 +    static A = "a";
 +    B = "b";
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateSymbolCausesVarDeclarationEmit2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateSymbolCausesVarDeclarationEmit2.js.diff
index d6a663cc65..68223f05a7 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateSymbolCausesVarDeclarationEmit2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateSymbolCausesVarDeclarationEmit2.js.diff
@@ -8,54 +8,31 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.C = void 0;
 -var a_1 = require("./a");
--var C = /** @class */ (function () {
--    function C() {
++const a_1 = require("./a");
+ class C {
+-    constructor() {
 -        this[_a] = 1;
 -    }
--    return C;
--}());
-+const a_1 = require("./a");
-+class C {
 +    [a_1.x] = 1;
-+}
+ }
  exports.C = C;
 -_a = a_1.x;
  //// [c.js]
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
 -var _a;
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.D = void 0;
 -var a_1 = require("./a");
 -var b_1 = require("./b");
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        var _this = _super !== null && _super.apply(this, arguments) || this;
--        _this[_a] = 12;
--        return _this;
--    }
--    return D;
--}(b_1.C));
 +const a_1 = require("./a");
 +const b_1 = require("./b");
-+class D extends b_1.C {
+ class D extends b_1.C {
+-    constructor() {
+-        super(...arguments);
+-        this[_a] = 12;
+-    }
 +    [a_1.x] = 12;
-+}
+ }
  exports.D = D;
 -_a = a_1.x;
 
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateSymbolCausesVarDeclarationToBeEmitted.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateSymbolCausesVarDeclarationToBeEmitted.js.diff
index 855a82c752..bd53485158 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateSymbolCausesVarDeclarationToBeEmitted.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPrivateSymbolCausesVarDeclarationToBeEmitted.js.diff
@@ -1,18 +1,10 @@
 --- old.declarationEmitPrivateSymbolCausesVarDeclarationToBeEmitted.js
 +++ new.declarationEmitPrivateSymbolCausesVarDeclarationToBeEmitted.js
-@@= skipped -11, +11 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -13, +13 lines =@@
  exports.User = void 0;
--var _data = Symbol('data');
--var User = /** @class */ (function () {
--    function User() {
--    }
--    return User;
--}());
-+const _data = Symbol('data');
-+class User {
+ const _data = Symbol('data');
+ class User {
 +    [_data];
-+}
+ }
  exports.User = User;
- ;
+ ;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js.diff
index e41343e495..87d8ebc484 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitPropertyNumericStringKey.js.diff
@@ -1,24 +1,6 @@
 --- old.declarationEmitPropertyNumericStringKey.js
 +++ new.declarationEmitPropertyNumericStringKey.js
-@@= skipped -15, +15 lines =@@
-
- //// [declarationEmitPropertyNumericStringKey.js]
- // https://github.com/microsoft/TypeScript/issues/55292
--var _a, _b, _c;
--var STATUS = (_a = {},
--    _a["404"] = "not found",
--    _a);
--var hundredStr = "100";
--var obj = (_b = {}, _b[hundredStr] = "foo", _b);
--var hundredNum = 100;
--var obj2 = (_c = {}, _c[hundredNum] = "bar", _c);
-+const STATUS = {
-+    ["404"]: "not found",
-+};
-+const hundredStr = "100";
-+const obj = { [hundredStr]: "foo" };
-+const hundredNum = 100;
-+const obj2 = { [hundredNum]: "bar" };
+@@= skipped -25, +25 lines =@@
 
 
  //// [declarationEmitPropertyNumericStringKey.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js.diff
index d15ac66b41..a1c798d265 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitProtectedMembers.js.diff
@@ -1,129 +1,38 @@
 --- old.declarationEmitProtectedMembers.js
 +++ new.declarationEmitProtectedMembers.js
-@@= skipped -51, +51 lines =@@
- }
-
+@@= skipped -53, +53 lines =@@
  //// [declarationEmitProtectedMembers.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  // Class with protected members
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    C1.prototype.f = function () {
-+class C1 {
+ class C1 {
 +    x;
-+    f() {
+     f() {
          return this.x;
--    };
--    Object.defineProperty(C1.prototype, "accessor", {
--        get: function () { return 0; },
--        set: function (a) { },
--        enumerable: false,
--        configurable: true
--    });
--    C1.sf = function () {
-+    }
-+    set accessor(a) { }
-+    get accessor() { return 0; }
+     }
+     set accessor(a) { }
+     get accessor() { return 0; }
 +    static sx;
-+    static sf() {
+     static sf() {
          return this.sx;
--    };
--    Object.defineProperty(C1, "staticSetter", {
--        set: function (a) { },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C1, "staticGetter", {
--        get: function () { return 0; },
--        enumerable: false,
--        configurable: true
--    });
--    return C1;
--}());
-+    }
-+    static set staticSetter(a) { }
-+    static get staticGetter() { return 0; }
-+}
- // Derived class overriding protected members
--var C2 = /** @class */ (function (_super) {
--    __extends(C2, _super);
--    function C2() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    C2.prototype.f = function () {
--        return _super.prototype.f.call(this) + this.x;
--    };
--    C2.sf = function () {
--        return _super.sf.call(this) + this.sx;
--    };
--    return C2;
--}(C1));
-+class C2 extends C1 {
-+    f() {
-+        return super.f() + this.x;
-+    }
-+    static sf() {
-+        return super.sf() + this.sx;
-+    }
-+}
+     }
+@@= skipped -22, +24 lines =@@
+ }
  // Derived class making protected members public
--var C3 = /** @class */ (function (_super) {
--    __extends(C3, _super);
--    function C3() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    C3.prototype.f = function () {
--        return _super.prototype.f.call(this);
--    };
--    C3.sf = function () {
--        return _super.sf.call(this);
--    };
--    Object.defineProperty(C3, "staticGetter", {
--        get: function () { return 1; },
--        enumerable: false,
--        configurable: true
--    });
--    return C3;
--}(C2));
-+class C3 extends C2 {
+ class C3 extends C2 {
 +    x;
 +    static sx;
-+    f() {
-+        return super.f();
-+    }
-+    static sf() {
-+        return super.sf();
-+    }
-+    static get staticGetter() { return 1; }
-+}
+     f() {
+         return super.f();
+     }
+@@= skipped -10, +12 lines =@@
+ }
  // Protected properties in constructors
--var C4 = /** @class */ (function () {
--    function C4(a, b) {
-+class C4 {
+ class C4 {
 +    a;
 +    b;
-+    constructor(a, b) {
+     constructor(a, b) {
          this.a = a;
          this.b = b;
-     }
--    return C4;
--}());
-+}
+@@= skipped -8, +10 lines =@@
 
 
  //// [declarationEmitProtectedMembers.d.ts]
@@ -131,7 +40,7 @@
  declare class C1 {
      protected x: number;
      protected f(): number;
-@@= skipped -97, +59 lines =@@
+@@= skipped -10, +11 lines =@@
      protected static set staticSetter(a: number);
      protected static get staticGetter(): number;
  }
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js.diff
index 9ca25b2c50..7751afc7b5 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitReadonlyComputedProperty.js.diff
@@ -1,16 +1,6 @@
 --- old.declarationEmitReadonlyComputedProperty.js
 +++ new.declarationEmitReadonlyComputedProperty.js
-@@= skipped -26, +26 lines =@@
- exports.createInstance = createInstance;
- exports.SYMBOL = Symbol();
- function createInstance() {
--    var _a;
--    return _a = {},
--        _a[exports.SYMBOL] = '',
--        _a;
-+    return {
-+        [exports.SYMBOL]: ''
-+    };
+@@= skipped -32, +32 lines =@@
  }
  //// [index.js]
  "use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitRecursiveConditionalAliasPreserved.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitRecursiveConditionalAliasPreserved.js.diff
index 6eb558128c..8e33ec8d96 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitRecursiveConditionalAliasPreserved.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitRecursiveConditionalAliasPreserved.js.diff
@@ -4,7 +4,7 @@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.power = void 0;
--var power = function (num, powerOf) { return (Math.pow(num, powerOf)); };
+-const power = (num, powerOf) => (Math.pow(num, powerOf));
 +const power = (num, powerOf) => (num ** powerOf);
  exports.power = power;
 
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitRetainedAnnotationRetainsImportInOutput.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitRetainedAnnotationRetainsImportInOutput.js.diff
index ba706c147d..69daf85b04 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitRetainedAnnotationRetainsImportInOutput.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitRetainedAnnotationRetainsImportInOutput.js.diff
@@ -5,8 +5,6 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.run = void 0;
 -var E = require("whatever");
--var run = function (i) { return E.something(i); };
 +const E = require("whatever");
-+const run = (i) => E.something(i);
+ const run = (i) => E.something(i);
  exports.run = run;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitRetainsJsdocyComments.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitRetainsJsdocyComments.js.diff
index e2a02857b7..f34f7272b8 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitRetainsJsdocyComments.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitRetainsJsdocyComments.js.diff
@@ -13,40 +13,9 @@
  /**
   * comment1
   * @param p
-  */
--var foo = function (p) {
-+const foo = (p) => {
-     return {
-         /**
-          * comment2
-          * @param s
-          */
--        bar: function (s) { },
-+        bar: (s) => { },
-         /**
-          * comment3
-          * @param s
-          */
--        bar2: function (s) { },
-+        bar2(s) { },
-     };
- };
- exports.foo = foo;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
-+class Foo {
-     /**
-      * comment4
-      * @param s
-      */
--    Foo.prototype.bar = function (s) {
--    };
--    return Foo;
--}());
-+    bar(s) {
-+    }
-+}
+@@= skipped -29, +33 lines =@@
+     }
+ }
  exports.Foo = Foo;
 -/**
 -* comment5
@@ -60,7 +29,7 @@
 
 
  //// [declarationEmitRetainsJsdocyComments.d.ts]
-@@= skipped -62, +64 lines =@@
+@@= skipped -30, +31 lines =@@
       */
      bar(s: number): void;
  }
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitScopeConsistency.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitScopeConsistency.js.diff
index e2abbc1471..3cf7d94e90 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitScopeConsistency.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitScopeConsistency.js.diff
@@ -1,13 +1,6 @@
 --- old.declarationEmitScopeConsistency.js
 +++ new.declarationEmitScopeConsistency.js
-@@= skipped -13, +13 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.f = void 0;
--var f = function (x) { return x; };
-+const f = (x) => x;
- exports.f = f;
- //// [b.js]
+@@= skipped -19, +19 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.g = void 0;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitScopeConsistency3.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitScopeConsistency3.js.diff
deleted file mode 100644
index f120f50c4c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitScopeConsistency3.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.declarationEmitScopeConsistency3.js
-+++ new.declarationEmitScopeConsistency3.js
-@@= skipped -10, +10 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.g = void 0;
--var g = function (v) {
--    var f = function (v) { return function () { return null; }; };
--    var r = f(null);
-+const g = (v) => {
-+    const f = (v) => () => null;
-+    const r = f(null);
-     return r;
- };
- exports.g = g;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitShadowing.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitShadowing.js.diff
index 603cf44134..ceb4e07236 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitShadowing.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitShadowing.js.diff
@@ -1,26 +1,21 @@
 --- old.declarationEmitShadowing.js
 +++ new.declarationEmitShadowing.js
-@@= skipped -18, +18 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -19, +19 lines =@@
  exports.A = void 0;
  exports.needsRenameForShadowing = needsRenameForShadowing;
--var A = /** @class */ (function () {
--    function A() {
--        this.ShadowedButDoesNotRequireRenaming = function () {
+ class A {
+-    constructor() {
+-        this.ShadowedButDoesNotRequireRenaming = () => {
 -            return null;
 -        };
 -    }
--    return A;
--}());
-+class A {
 +    ShadowedButDoesNotRequireRenaming = () => {
 +        return null;
 +    };
-+}
+ }
  exports.A = A;
  function needsRenameForShadowing() {
-     return function O(t, t2) {
-@@= skipped -19, +16 lines =@@
+@@= skipped -17, +15 lines =@@
  export declare class A {
      readonly ShadowedButDoesNotRequireRenaming: () => T_1;
  }
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js.diff
index d7f549a677..064adb526c 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitShadowingInferNotRenamed.js.diff
@@ -1,14 +1,6 @@
 --- old.declarationEmitShadowingInferNotRenamed.js
 +++ new.declarationEmitShadowingInferNotRenamed.js
-@@= skipped -26, +26 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.createClient = void 0;
--var createClient = function (clientDef) {
-+const createClient = (clientDef) => {
-     return null;
- };
- exports.createClient = createClient;
+@@= skipped -33, +33 lines =@@
 
 
  //// [declarationEmitShadowingInferNotRenamed.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitSimpleComputedNames1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitSimpleComputedNames1.js.diff
index 4a96f44874..ef22d934a3 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitSimpleComputedNames1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitSimpleComputedNames1.js.diff
@@ -1,58 +1,6 @@
 --- old.declarationEmitSimpleComputedNames1.js
 +++ new.declarationEmitSimpleComputedNames1.js
-@@= skipped -34, +34 lines =@@
-
- //// [declarationEmitSimpleComputedNames1.js]
- "use strict";
--var _a;
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.instanceLookup = exports.staticLookup = exports.Holder = exports.conatainer = exports.fieldName = void 0;
- exports.fieldName = Math.random() > 0.5 ? "f1" : "f2";
--exports.conatainer = (_a = {},
--    _a[exports.fieldName] = function () {
-+exports.conatainer = {
-+    [exports.fieldName]() {
-         return "result";
--    },
--    _a);
--var classFieldName = Math.random() > 0.5 ? "g1" : "g2";
--var otherField = classFieldName === "g1" ? "g2" : "g1";
--var staticField = Math.random() > 0.5 ? "s1" : "s2";
--var Holder = /** @class */ (function () {
--    function Holder() {
-     }
--    Holder.prototype[classFieldName] = function () {
-+};
-+const classFieldName = Math.random() > 0.5 ? "g1" : "g2";
-+const otherField = classFieldName === "g1" ? "g2" : "g1";
-+const staticField = Math.random() > 0.5 ? "s1" : "s2";
-+class Holder {
-+    [classFieldName]() {
-         return "value";
--    };
--    Holder.prototype[otherField] = function () {
-+    }
-+    [otherField]() {
-         return 42;
--    };
--    Holder[staticField] = function () {
-+    }
-+    static [staticField]() {
-         return { static: true };
--    };
--    Holder[staticField] = function () {
-+    }
-+    static [staticField]() {
-         return { static: "sometimes" };
--    };
--    return Holder;
--}());
-+    }
-+}
- exports.Holder = Holder;
- /**
-  * Could be `"prototype"`, so all static string indexers include the instance type
-@@= skipped -40, +36 lines =@@
+@@= skipped -70, +70 lines =@@
  //// [declarationEmitSimpleComputedNames1.d.ts]
  export declare const fieldName: string;
  export declare const conatainer: {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitStringEnumUsedInNonlocalSpread.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitStringEnumUsedInNonlocalSpread.js.diff
index c8a482e38d..a7ef624b2c 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitStringEnumUsedInNonlocalSpread.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitStringEnumUsedInNonlocalSpread.js.diff
@@ -5,49 +5,25 @@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
 -exports.A = void 0;
--var A = /** @class */ (function () {
--    function A() {
 +exports.A = exports.TestEnum = void 0;
 +var TestEnum;
 +(function (TestEnum) {
 +    TestEnum["Test1"] = "123123";
 +    TestEnum["Test2"] = "12312312312";
 +})(TestEnum || (exports.TestEnum = TestEnum = {}));
-+class A {
-+    getA() {
-+        return {
+ class A {
+     getA() {
+         return {
+-            ["123123" /* TestEnum.Test1 */]: '123',
+-            ["12312312312" /* TestEnum.Test2 */]: '123',
 +            [TestEnum.Test1]: '123',
 +            [TestEnum.Test2]: '123',
-+        };
+         };
      }
--    A.prototype.getA = function () {
--        var _a;
--        return _a = {},
--            _a["123123" /* TestEnum.Test1 */] = '123',
--            _a["12312312312" /* TestEnum.Test2 */] = '123',
--            _a;
--    };
--    return A;
--}());
-+}
+ }
  exports.A = A;
  //// [index.js]
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
 -var __assign = (this && this.__assign) || function () {
 -    __assign = Object.assign || function(t) {
 -        for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -62,23 +38,14 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.B = void 0;
 -var class_1 = require("./class");
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
 +const class_1 = require("./class");
-+class B extends class_1.A {
-+    getA() {
+ class B extends class_1.A {
+     getA() {
+-        return __assign(__assign({}, super.getA()), { a: '123' });
 +        return {
 +            ...super.getA(),
 +            a: '123',
 +        };
      }
--    B.prototype.getA = function () {
--        return __assign(__assign({}, _super.prototype.getA.call(this)), { a: '123' });
--    };
--    return B;
--}(class_1.A));
-+}
- exports.B = B;
-
+ }
+ exports.B = B;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile.js.diff
index 4f4d273b10..3ade3ca35d 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitTopLevelNodeFromCrossFile.js.diff
@@ -1,12 +1,6 @@
 --- old.declarationEmitTopLevelNodeFromCrossFile.js
 +++ new.declarationEmitTopLevelNodeFromCrossFile.js
-@@= skipped -19, +19 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.fn = void 0;
--exports.fn = { o: function (a) { } };
-+exports.fn = { o: (a) => { } };
- //// [b.js]
+@@= skipped -24, +24 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.x = exports.m = void 0;
@@ -15,7 +9,7 @@
  exports.m = {
      /**
      * leading doc for prop
-@@= skipped -18, +18 lines =@@
+@@= skipped -13, +13 lines =@@
  //// [a.d.ts]
  export type X = string;
  export declare const fn: {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTupleRestSignatureLeadingVariadic.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTupleRestSignatureLeadingVariadic.js.diff
deleted file mode 100644
index 5f3c0ca551..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitTupleRestSignatureLeadingVariadic.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.declarationEmitTupleRestSignatureLeadingVariadic.js
-+++ new.declarationEmitTupleRestSignatureLeadingVariadic.js
-@@= skipped -3, +3 lines =@@
- const f = (...args: [...TFirstArgs, TLastArg]): void => {};
-
- //// [declarationEmitTupleRestSignatureLeadingVariadic.js]
--var f = function () {
--    var args = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        args[_i] = arguments[_i];
--    }
--};
-+const f = (...args) => { };
-
-
- //// [declarationEmitTupleRestSignatureLeadingVariadic.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeAliasWithTypeParameters1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeAliasWithTypeParameters1.js.diff
deleted file mode 100644
index c76a0d2a3b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeAliasWithTypeParameters1.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.declarationEmitTypeAliasWithTypeParameters1.js
-+++ new.declarationEmitTypeAliasWithTypeParameters1.js
-@@= skipped -8, +8 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.y = void 0;
--var y = function (x) { return 1; };
-+const y = (x) => 1;
- exports.y = y;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeAliasWithTypeParameters2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeAliasWithTypeParameters2.js.diff
deleted file mode 100644
index 177c426876..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeAliasWithTypeParameters2.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.declarationEmitTypeAliasWithTypeParameters2.js
-+++ new.declarationEmitTypeAliasWithTypeParameters2.js
-@@= skipped -9, +9 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.y = void 0;
--var y = function (x) { return 1; };
-+const y = (x) => 1;
- exports.y = y;
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeParameterNameInOuterScope.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeParameterNameInOuterScope.js.diff
deleted file mode 100644
index 2501ffa840..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeParameterNameInOuterScope.js.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- old.declarationEmitTypeParameterNameInOuterScope.js
-+++ new.declarationEmitTypeParameterNameInOuterScope.js
-@@= skipped -16, +16 lines =@@
-
-
- //// [declarationEmitTypeParameterNameInOuterScope.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var a = function (x) { return x; };
-+class A {
-+}
-+var a = (x) => x;
- function a2(x) { return x; }
--var a3 = function (x) { return new A(); };
-+var a3 = (x) => new A();
- function a4(x) { return new A(); }
--var b = function (x) { return x; };
-+var b = (x) => x;
- function b2(x) { return x; }
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeParameterNameReusedInOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeParameterNameReusedInOverloads.js.diff
index df3c6a6604..385eef6075 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeParameterNameReusedInOverloads.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeParameterNameReusedInOverloads.js.diff
@@ -1,60 +1,22 @@
 --- old.declarationEmitTypeParameterNameReusedInOverloads.js
 +++ new.declarationEmitTypeParameterNameReusedInOverloads.js
-@@= skipped -18, +18 lines =@@
-
- //// [declarationEmitTypeParameterNameReusedInOverloads.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
+@@= skipped -21, +21 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Derived2 = exports.Derived = exports.Base = void 0;
--var Base = /** @class */ (function () {
--    function Base() {
--    }
--    return Base;
--}());
-+class Base {
+ class Base {
 +    foo;
-+}
+ }
  exports.Base = Base;
--var Derived = /** @class */ (function (_super) {
--    __extends(Derived, _super);
--    function Derived() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Derived;
--}(Base));
-+class Derived extends Base {
+ class Derived extends Base {
 +    bar;
-+}
+ }
  exports.Derived = Derived;
--var Derived2 = /** @class */ (function (_super) {
--    __extends(Derived2, _super);
--    function Derived2() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Derived2;
--}(Derived));
-+class Derived2 extends Derived {
+ class Derived2 extends Derived {
 +    baz;
-+}
+ }
  exports.Derived2 = Derived2;
 
-
-@@= skipped -53, +28 lines =@@
+@@= skipped -22, +25 lines =@@
  }
  export type Foo = {
      new (x: {
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeParameterNameShadowedInternally.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeParameterNameShadowedInternally.js.diff
deleted file mode 100644
index 33050dde48..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeParameterNameShadowedInternally.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.declarationEmitTypeParameterNameShadowedInternally.js
-+++ new.declarationEmitTypeParameterNameShadowedInternally.js
-@@= skipped -10, +10 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.foo = void 0;
--var foo = function (x) {
--    var inner = function (y) { return [x, y]; };
-+const foo = (x) => {
-+    const inner = (y) => [x, y];
-     return inner;
- };
- exports.foo = foo;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofDefaultExport.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofDefaultExport.js.diff
index 9b527ec068..dd076f5639 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofDefaultExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofDefaultExport.js.diff
@@ -1,18 +1,6 @@
 --- old.declarationEmitTypeofDefaultExport.js
 +++ new.declarationEmitTypeofDefaultExport.js
-@@= skipped -10, +10 lines =@@
- //// [a.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
- exports.default = C;
- ;
+@@= skipped -17, +17 lines =@@
  //// [b.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js.diff
index 12158c41d1..fd7f466383 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitTypeofThisInClass.js.diff
@@ -5,15 +5,10 @@
 
  //// [declarationEmitTypeofThisInClass.js]
 -"use strict";
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
+ class Foo {
 +    foo;
 +    bar; //Public property 'bar' of exported class has or is using private name 'this'.(4031)
-+}
+ }
 
 
  //// [declarationEmitTypeofThisInClass.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitWithDefaultAsComputedName.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitWithDefaultAsComputedName.js.diff
index 8a5aabb246..c78674f754 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitWithDefaultAsComputedName.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitWithDefaultAsComputedName.js.diff
@@ -1,20 +1,11 @@
 --- old.declarationEmitWithDefaultAsComputedName.js
 +++ new.declarationEmitWithDefaultAsComputedName.js
-@@= skipped -24, +24 lines =@@
- });
- //// [main.js]
+@@= skipped -26, +26 lines =@@
  "use strict";
--var _a;
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.obj = void 0;
 -var other_1 = require("./other");
--exports.obj = (_a = {},
--    _a[other_1.default.name] = 1,
--    _a);
 +const other_1 = require("./other");
-+exports.obj = {
-+    [other_1.default.name]: 1,
-+};
-
-
- //// [other.d.ts]
\ No newline at end of file
+ exports.obj = {
+     [other_1.default.name]: 1,
+ };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitWithDefaultAsComputedName2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitWithDefaultAsComputedName2.js.diff
index 14c4e5ef0e..150c2f5a62 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitWithDefaultAsComputedName2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationEmitWithDefaultAsComputedName2.js.diff
@@ -1,20 +1,11 @@
 --- old.declarationEmitWithDefaultAsComputedName2.js
 +++ new.declarationEmitWithDefaultAsComputedName2.js
-@@= skipped -24, +24 lines =@@
- });
- //// [main.js]
+@@= skipped -26, +26 lines =@@
  "use strict";
--var _a;
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.obj = void 0;
 -var other2 = require("./other");
--exports.obj = (_a = {},
--    _a[other2.default.name] = 1,
--    _a);
 +const other2 = require("./other");
-+exports.obj = {
-+    [other2.default.name]: 1
-+};
-
-
- //// [other.d.ts]
\ No newline at end of file
+ exports.obj = {
+     [other2.default.name]: 1
+ };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationEmitWithInvalidPackageJsonTypings.js.diff b/testdata/baselines/reference/submodule/compiler/declarationEmitWithInvalidPackageJsonTypings.js.diff
deleted file mode 100644
index 4848c55300..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationEmitWithInvalidPackageJsonTypings.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.declarationEmitWithInvalidPackageJsonTypings.js
-+++ new.declarationEmitWithInvalidPackageJsonTypings.js
-@@= skipped -30, +30 lines =@@
- exports.useCsvParser = void 0;
- exports.useRef = useRef;
- function useRef(current) {
--    return { current: current };
-+    return { current };
- }
--var useCsvParser = function () {
--    var parserRef = useRef(null);
-+const useCsvParser = () => {
-+    const parserRef = useRef(null);
-     return parserRef;
- };
- exports.useCsvParser = useCsvParser;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationFileNoCrashOnExtraExportModifier.js.diff b/testdata/baselines/reference/submodule/compiler/declarationFileNoCrashOnExtraExportModifier.js.diff
index 356ac85d88..55a9cb6e9e 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationFileNoCrashOnExtraExportModifier.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationFileNoCrashOnExtraExportModifier.js.diff
@@ -1,15 +1,9 @@
 --- old.declarationFileNoCrashOnExtraExportModifier.js
 +++ new.declarationFileNoCrashOnExtraExportModifier.js
-@@= skipped -17, +17 lines =@@
- //// [input.js]
+@@= skipped -18, +18 lines =@@
  "use strict";
  exports.Sub = void 0;
--var Sub = /** @class */ (function () {
--    function Sub() {
--    }
--    return Sub;
--}());
-+class Sub {
+ class Sub {
 +    instance;
-+}
+ }
  module.exports = exports;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationFileOverwriteError.js.diff b/testdata/baselines/reference/submodule/compiler/declarationFileOverwriteError.js.diff
index 172bb6b2ce..8695a76199 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationFileOverwriteError.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationFileOverwriteError.js.diff
@@ -1,16 +1,9 @@
 --- old.declarationFileOverwriteError.js
 +++ new.declarationFileOverwriteError.js
-@@= skipped -8, +8 lines =@@
- }
-
+@@= skipped -10, +10 lines =@@
  //// [a.js]
--var d = /** @class */ (function () {
--    function d() {
--    }
--    return d;
--}());
-+class d {
-+}
+ class d {
+ }
 +
 +
 +//// [a.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationFunctionTypeNonlocalShouldNotBeAnError.js.diff b/testdata/baselines/reference/submodule/compiler/declarationFunctionTypeNonlocalShouldNotBeAnError.js.diff
deleted file mode 100644
index e29f660aa8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationFunctionTypeNonlocalShouldNotBeAnError.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.declarationFunctionTypeNonlocalShouldNotBeAnError.js
-+++ new.declarationFunctionTypeNonlocalShouldNotBeAnError.js
-@@= skipped -14, +14 lines =@@
- (function (foo) {
-     function bar() { }
-     foo.obj = {
--        bar: bar
-+        bar
-     };
- })(foo || (foo = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/declarationImportTypeAliasInferredAndEmittable.js.diff b/testdata/baselines/reference/submodule/compiler/declarationImportTypeAliasInferredAndEmittable.js.diff
index dbbe9d9b70..35e05ba873 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationImportTypeAliasInferredAndEmittable.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationImportTypeAliasInferredAndEmittable.js.diff
@@ -1,36 +1,22 @@
 --- old.declarationImportTypeAliasInferredAndEmittable.js
 +++ new.declarationImportTypeAliasInferredAndEmittable.js
-@@= skipped -21, +21 lines =@@
-
+@@= skipped -22, +22 lines =@@
  //// [foo.js]
  "use strict";
--var Conn = /** @class */ (function () {
--    function Conn() {
+ class Conn {
+-    constructor() {
 -        this.item = 3;
 -    }
--    Conn.prototype.method = function () { };
--    return Conn;
--}());
-+class Conn {
 +    constructor() { }
 +    item = 3;
-+    method() { }
-+}
+     method() { }
+ }
  module.exports = Conn;
- //// [usage.js]
- "use strict";
+@@= skipped -11, +10 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Wrap = void 0;
--var Wrap = /** @class */ (function () {
--    function Wrap(c) {
--        if (c === void 0) { c = x; }
-+class Wrap {
+ class Wrap {
 +    connItem;
-+    constructor(c = x) {
+     constructor(c = x) {
          this.connItem = c.item;
-     }
--    return Wrap;
--}());
-+}
- exports.Wrap = Wrap;
-
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.diff b/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.diff
index abce8ac5d9..3bd4d3f673 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationMapsMultifile.js.diff
@@ -1,36 +1,11 @@
 --- old.declarationMapsMultifile.js
 +++ new.declarationMapsMultifile.js
-@@= skipped -22, +22 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Foo = void 0;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    Foo.prototype.doThing = function (x) {
-+class Foo {
-+    doThing(x) {
-         return { b: x.a };
--    };
--    Foo.make = function () {
-+    }
-+    static make() {
-         return new Foo();
--    };
--    return Foo;
--}());
-+    }
-+}
- exports.Foo = Foo;
- //// [index.js]
+@@= skipped -35, +35 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Foo = exports.c = exports.x = void 0;
 -var a_1 = require("./a");
 +const a_1 = require("./a");
  Object.defineProperty(exports, "Foo", { enumerable: true, get: function () { return a_1.Foo; } });
--var c = new a_1.Foo();
-+const c = new a_1.Foo();
- exports.c = c;
- c.doThing({ a: 42 });
- exports.x = c.doThing({ a: 12 });
\ No newline at end of file
+ const c = new a_1.Foo();
+ exports.c = c;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationMapsWithSourceMap.js.map.diff b/testdata/baselines/reference/submodule/compiler/declarationMapsWithSourceMap.js.map.diff
index ed0f6aa641..6830d6ed95 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationMapsWithSourceMap.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationMapsWithSourceMap.js.map.diff
@@ -2,8 +2,8 @@
 +++ new.declarationMapsWithSourceMap.js.map
 @@= skipped -0, +0 lines =@@
 -//// [bundle.js.map]
--{"version":3,"file":"bundle.js","sourceRoot":"","sources":["a.ts","index.ts"],"names":[],"mappings":"AAAA;IAAA;IAOA,CAAC;IANG,qBAAO,GAAP,UAAQ,CAAc;QAClB,OAAO,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC;IACpB,CAAC;IACM,QAAI,GAAX;QACI,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IACL,UAAC;AAAD,CAAC,AAPD,IAOC;ACPD,IAAM,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACpB,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC;AAEnB,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC"}
--//// https://sokra.github.io/source-map-visualization#base64,dmFyIEZvbyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBGb28oKSB7DQogICAgfQ0KICAgIEZvby5wcm90b3R5cGUuZG9UaGluZyA9IGZ1bmN0aW9uICh4KSB7DQogICAgICAgIHJldHVybiB7IGI6IHguYSB9Ow0KICAgIH07DQogICAgRm9vLm1ha2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHJldHVybiBuZXcgRm9vKCk7DQogICAgfTsNCiAgICByZXR1cm4gRm9vOw0KfSgpKTsNCnZhciBjID0gbmV3IEZvbygpOw0KYy5kb1RoaW5nKHsgYTogNDIgfSk7DQp2YXIgeCA9IGMuZG9UaGluZyh7IGE6IDEyIH0pOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVuZGxlLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYS50cyIsImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQUE7SUFPQSxDQUFDO0lBTkcscUJBQU8sR0FBUCxVQUFRLENBQWM7UUFDbEIsT0FBTyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNNLFFBQUksR0FBWDtRQUNJLE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ0wsVUFBQztBQUFELENBQUMsQUFQRCxJQU9DO0FDUEQsSUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNwQixDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7QUFFbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDIn0=,Y2xhc3MgRm9vIHsKICAgIGRvVGhpbmcoeDoge2E6IG51bWJlcn0pIHsKICAgICAgICByZXR1cm4ge2I6IHguYX07CiAgICB9CiAgICBzdGF0aWMgbWFrZSgpIHsKICAgICAgICByZXR1cm4gbmV3IEZvbygpOwogICAgfQp9,Y29uc3QgYyA9IG5ldyBGb28oKTsKYy5kb1RoaW5nKHthOiA0Mn0pOwoKbGV0IHggPSBjLmRvVGhpbmcoe2E6IDEyfSk7Cg==
+-{"version":3,"file":"bundle.js","sourceRoot":"","sources":["a.ts","index.ts"],"names":[],"mappings":"AAAA,MAAM,GAAG;IACL,OAAO,CAAC,CAAc;QAClB,OAAO,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC;IACpB,CAAC;IACD,MAAM,CAAC,IAAI;QACP,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;CACJ;ACPD,MAAM,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACpB,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC;AAEnB,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC"}
+-//// https://sokra.github.io/source-map-visualization#base64,Y2xhc3MgRm9vIHsNCiAgICBkb1RoaW5nKHgpIHsNCiAgICAgICAgcmV0dXJuIHsgYjogeC5hIH07DQogICAgfQ0KICAgIHN0YXRpYyBtYWtlKCkgew0KICAgICAgICByZXR1cm4gbmV3IEZvbygpOw0KICAgIH0NCn0NCmNvbnN0IGMgPSBuZXcgRm9vKCk7DQpjLmRvVGhpbmcoeyBhOiA0MiB9KTsNCmxldCB4ID0gYy5kb1RoaW5nKHsgYTogMTIgfSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1idW5kbGUuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYS50cyIsImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sR0FBRztJQUNMLE9BQU8sQ0FBQyxDQUFjO1FBQ2xCLE9BQU8sRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSTtRQUNQLE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0NBQ0o7QUNQRCxNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQztBQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMifQ==,Y2xhc3MgRm9vIHsKICAgIGRvVGhpbmcoeDoge2E6IG51bWJlcn0pIHsKICAgICAgICByZXR1cm4ge2I6IHguYX07CiAgICB9CiAgICBzdGF0aWMgbWFrZSgpIHsKICAgICAgICByZXR1cm4gbmV3IEZvbygpOwogICAgfQp9,Y29uc3QgYyA9IG5ldyBGb28oKTsKYy5kb1RoaW5nKHthOiA0Mn0pOwoKbGV0IHggPSBjLmRvVGhpbmcoe2E6IDEyfSk7Cg==
 -
 -//// [bundle.d.ts.map]
 -{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["a.ts","index.ts"],"names":[],"mappings":"AAAA,cAAM,GAAG;IACL,OAAO,CAAC,GAAG;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;;;IAGtB,MAAM,CAAC,IAAI;CAGd;ACPD,QAAA,MAAM,CAAC,KAAY,CAAC;AAGpB,QAAA,IAAI,CAAC;;CAAqB,CAAC"}
diff --git a/testdata/baselines/reference/submodule/compiler/declarationMapsWithSourceMap.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/declarationMapsWithSourceMap.sourcemap.txt.diff
index e811162263..bb443646ee 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationMapsWithSourceMap.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationMapsWithSourceMap.sourcemap.txt.diff
@@ -15,205 +15,101 @@
 +emittedFile:a.js
  sourceFile:a.ts
  -------------------------------------------------------------------
-->>>var Foo = /** @class */ (function () {
--1 >
--2 >^^^^^^^^^^^^^^^^^^^^^->
--1 >
-+>>>class Foo {
-+1 >
-+2 >^^^^^^
-+3 >      ^^^
-+4 >         ^^^^^^^^->
-+1 >
-+2 >class 
-+3 >      Foo
- 1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
-----
-->>>    function Foo() {
--1->^^^^
--2 >    ^^->
--1->
--1->Emitted(2, 5) Source(1, 1) + SourceIndex(0)
-----
-->>>    }
--1->^^^^
--2 >    ^
--3 >     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
--1->class Foo {
--  >    doThing(x: {a: number}) {
--  >        return {b: x.a};
--  >    }
--  >    static make() {
--  >        return new Foo();
--  >    }
--  >
--2 >    }
--1->Emitted(3, 5) Source(8, 1) + SourceIndex(0)
--2 >Emitted(3, 6) Source(8, 2) + SourceIndex(0)
-----
-->>>    Foo.prototype.doThing = function (x) {
--1->^^^^
--2 >    ^^^^^^^^^^^^^^^^^^^^^
--3 >                         ^^^
--4 >                            ^^^^^^^^^^
--5 >                                      ^
--1->
-+2 >Emitted(1, 7) Source(1, 7) + SourceIndex(0)
-+3 >Emitted(1, 10) Source(1, 10) + SourceIndex(0)
-+---
-+>>>    doThing(x) {
-+1->^^^^
-+2 >    ^^^^^^^
-+3 >           ^
-+4 >            ^
+ >>>class Foo {
+@@= skipped -24, +24 lines =@@
+ 2 >    ^^^^^^^
+ 3 >           ^
+ 4 >            ^
+-5 >             ^^^^^^^^^^^^^^->
 +5 >             ^^
 +6 >               ^^^^^^^^^^^^->
-+1-> {
-+  >    
+ 1-> {
+   >    
  2 >    doThing
--3 >                         
--4 >                            doThing(
--5 >                                      x: {a: number}
--1->Emitted(4, 5) Source(2, 5) + SourceIndex(0)
--2 >Emitted(4, 26) Source(2, 12) + SourceIndex(0)
--3 >Emitted(4, 29) Source(2, 5) + SourceIndex(0)
--4 >Emitted(4, 39) Source(2, 13) + SourceIndex(0)
--5 >Emitted(4, 40) Source(2, 27) + SourceIndex(0)
-+3 >           (
-+4 >            x: {a: number}
+ 3 >           (
+ 4 >            x: {a: number}
 +5 >             ) 
-+1->Emitted(2, 5) Source(2, 5) + SourceIndex(0)
-+2 >Emitted(2, 12) Source(2, 12) + SourceIndex(0)
-+3 >Emitted(2, 13) Source(2, 13) + SourceIndex(0)
-+4 >Emitted(2, 14) Source(2, 27) + SourceIndex(0)
+ 1->Emitted(2, 5) Source(2, 5) + SourceIndex(0)
+ 2 >Emitted(2, 12) Source(2, 12) + SourceIndex(0)
+ 3 >Emitted(2, 13) Source(2, 13) + SourceIndex(0)
+ 4 >Emitted(2, 14) Source(2, 27) + SourceIndex(0)
 +5 >Emitted(2, 16) Source(2, 29) + SourceIndex(0)
  ---
  >>>        return { b: x.a };
--1 >^^^^^^^^
-+1->^^^^^^^^
- 2 >        ^^^^^^^
- 3 >               ^^
- 4 >                 ^
-@@= skipped -63, +49 lines =@@
+ 1->^^^^^^^^
+@@= skipped -22, +25 lines =@@
  8 >                      ^
  9 >                       ^^
  10>                         ^
--1 >) {
+-1->) {
 +1->{
    >        
  2 >        return 
  3 >               {
-@@= skipped -11, +11 lines =@@
- 8 >                      a
- 9 >                       }
- 10>                         ;
--1 >Emitted(5, 9) Source(3, 9) + SourceIndex(0)
--2 >Emitted(5, 16) Source(3, 16) + SourceIndex(0)
--3 >Emitted(5, 18) Source(3, 17) + SourceIndex(0)
--4 >Emitted(5, 19) Source(3, 18) + SourceIndex(0)
--5 >Emitted(5, 21) Source(3, 20) + SourceIndex(0)
--6 >Emitted(5, 22) Source(3, 21) + SourceIndex(0)
--7 >Emitted(5, 23) Source(3, 22) + SourceIndex(0)
--8 >Emitted(5, 24) Source(3, 23) + SourceIndex(0)
--9 >Emitted(5, 26) Source(3, 24) + SourceIndex(0)
--10>Emitted(5, 27) Source(3, 25) + SourceIndex(0)
-+1->Emitted(3, 9) Source(3, 9) + SourceIndex(0)
-+2 >Emitted(3, 16) Source(3, 16) + SourceIndex(0)
-+3 >Emitted(3, 18) Source(3, 17) + SourceIndex(0)
-+4 >Emitted(3, 19) Source(3, 18) + SourceIndex(0)
-+5 >Emitted(3, 21) Source(3, 20) + SourceIndex(0)
-+6 >Emitted(3, 22) Source(3, 21) + SourceIndex(0)
-+7 >Emitted(3, 23) Source(3, 22) + SourceIndex(0)
-+8 >Emitted(3, 24) Source(3, 23) + SourceIndex(0)
-+9 >Emitted(3, 26) Source(3, 24) + SourceIndex(0)
-+10>Emitted(3, 27) Source(3, 25) + SourceIndex(0)
- ---
-->>>    };
-+>>>    }
- 1 >^^^^
+@@= skipped -27, +27 lines =@@
  2 >    ^
--3 >     ^^^^^^^^^^^^^^^^^^^^^^^^->
-+3 >     ^^^^^^^^^^^^^^^->
+ 3 >     ^^^^^^^^^^^^^^^->
  1 >
 -  >    
 -2 >    }
--1 >Emitted(6, 5) Source(4, 5) + SourceIndex(0)
--2 >Emitted(6, 6) Source(4, 6) + SourceIndex(0)
+-1 >Emitted(4, 5) Source(4, 5) + SourceIndex(0)
 +2 >    
 +  >        }
 +1 >Emitted(4, 5) Source(3, 25) + SourceIndex(0)
-+2 >Emitted(4, 6) Source(4, 6) + SourceIndex(0)
+ 2 >Emitted(4, 6) Source(4, 6) + SourceIndex(0)
  ---
-->>>    Foo.make = function () {
-+>>>    static make() {
- 1->^^^^
--2 >    ^^^^^^^^
--3 >            ^^^
--4 >               ^^^^^^^^^^^->
-+2 >    ^^^^^^
-+3 >          ^
-+4 >           ^^^^
+ >>>    static make() {
+@@= skipped -10, +10 lines =@@
+ 2 >    ^^^^^^
+ 3 >          ^
+ 4 >           ^^^^
+-5 >               ^^^^^^^^^^^->
 +5 >               ^^^
 +6 >                  ^^^^^^^^->
  1->
--  >    static 
--2 >    make
--3 >            
--1->Emitted(7, 5) Source(5, 12) + SourceIndex(0)
--2 >Emitted(7, 13) Source(5, 16) + SourceIndex(0)
--3 >Emitted(7, 16) Source(5, 5) + SourceIndex(0)
-+  >    
-+2 >    static
-+3 >           
-+4 >           make
+   >    
+ 2 >    static
+ 3 >           
+ 4 >           make
 +5 >               () 
-+1->Emitted(5, 5) Source(5, 5) + SourceIndex(0)
-+2 >Emitted(5, 11) Source(5, 11) + SourceIndex(0)
-+3 >Emitted(5, 12) Source(5, 12) + SourceIndex(0)
-+4 >Emitted(5, 16) Source(5, 16) + SourceIndex(0)
+ 1->Emitted(5, 5) Source(5, 5) + SourceIndex(0)
+ 2 >Emitted(5, 11) Source(5, 11) + SourceIndex(0)
+ 3 >Emitted(5, 12) Source(5, 12) + SourceIndex(0)
+ 4 >Emitted(5, 16) Source(5, 16) + SourceIndex(0)
 +5 >Emitted(5, 19) Source(5, 19) + SourceIndex(0)
  ---
  >>>        return new Foo();
  1->^^^^^^^^
-@@= skipped -41, +47 lines =@@
+@@= skipped -18, +21 lines =@@
  4 >                   ^^^
  5 >                      ^^
  6 >                        ^
--1->static make() {
+-1->() {
 +1->{
    >        
  2 >        return 
  3 >               new 
- 4 >                   Foo
- 5 >                      ()
- 6 >                        ;
--1->Emitted(8, 9) Source(6, 9) + SourceIndex(0)
--2 >Emitted(8, 16) Source(6, 16) + SourceIndex(0)
--3 >Emitted(8, 20) Source(6, 20) + SourceIndex(0)
--4 >Emitted(8, 23) Source(6, 23) + SourceIndex(0)
--5 >Emitted(8, 25) Source(6, 25) + SourceIndex(0)
--6 >Emitted(8, 26) Source(6, 26) + SourceIndex(0)
-+1->Emitted(6, 9) Source(6, 9) + SourceIndex(0)
-+2 >Emitted(6, 16) Source(6, 16) + SourceIndex(0)
-+3 >Emitted(6, 20) Source(6, 20) + SourceIndex(0)
-+4 >Emitted(6, 23) Source(6, 23) + SourceIndex(0)
-+5 >Emitted(6, 25) Source(6, 25) + SourceIndex(0)
-+6 >Emitted(6, 26) Source(6, 26) + SourceIndex(0)
- ---
-->>>    };
-+>>>    }
+@@= skipped -18, +18 lines =@@
  1 >^^^^
  2 >    ^
--3 >     ^^^^^^^^^^^->
--1 >
-+1 >
+ 1 >
+-  >    
+-2 >    }
+-1 >Emitted(7, 5) Source(7, 5) + SourceIndex(0)
 +2 >    
 +  >        }
 +1 >Emitted(7, 5) Source(6, 26) + SourceIndex(0)
-+2 >Emitted(7, 6) Source(7, 6) + SourceIndex(0)
-+---
-+>>>}
-+1 >^
+ 2 >Emitted(7, 6) Source(7, 6) + SourceIndex(0)
+ ---
+ >>>}
+ 1 >^
+-2 > ^^^^^^^^^^^^^^^^^^^^->
+-1 >
+-  >}
+-1 >Emitted(8, 2) Source(8, 2) + SourceIndex(0)
+----
+--------------------------------------------------------------------
+-emittedFile:bundle.js
 +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
 +1 >
 +  >}
@@ -248,12 +144,7 @@
 +5 >             ^^
 +6 >               ^^^^->
 +1 > {
-   >    
--2 >    }
--1 >Emitted(9, 5) Source(7, 5) + SourceIndex(0)
--2 >Emitted(9, 6) Source(7, 6) + SourceIndex(0)
-----
-->>>    return Foo;
++  >    
 +2 >    doThing
 +3 >           (
 +4 >            x
@@ -297,40 +188,12 @@
 +1->Emitted(6, 7) Source(4, 6) + SourceIndex(0)
 +---
 +>>>    static make(): Foo;
- 1->^^^^
--2 >    ^^^^^^^^^^
++1->^^^^
 +2 >    ^^^^^^
 +3 >          ^
 +4 >           ^^^^
 +5 >               ^^^^^^^^
- 1->
--  >
--2 >    }
--1->Emitted(10, 5) Source(8, 1) + SourceIndex(0)
--2 >Emitted(10, 15) Source(8, 2) + SourceIndex(0)
-----
-->>>}());
--1 >
--2 >^
--3 > 
--4 > ^^^^
--5 >     ^^^^^^^^^^^^^^->
--1 >
--2 >}
--3 > 
--4 > class Foo {
--  >     doThing(x: {a: number}) {
--  >         return {b: x.a};
--  >     }
--  >     static make() {
--  >         return new Foo();
--  >     }
--  > }
--1 >Emitted(11, 1) Source(8, 1) + SourceIndex(0)
--2 >Emitted(11, 2) Source(8, 2) + SourceIndex(0)
--3 >Emitted(11, 2) Source(1, 1) + SourceIndex(0)
--4 >Emitted(11, 6) Source(8, 2) + SourceIndex(0)
-----
++1->
 +  >    
 +2 >    static
 +3 >           
@@ -357,54 +220,37 @@
 +sourceRoot: 
 +sources: index.ts
 +===================================================================
- -------------------------------------------------------------------
--emittedFile:bundle.js
++-------------------------------------------------------------------
 +emittedFile:index.js
  sourceFile:index.ts
  -------------------------------------------------------------------
-->>>var c = new Foo();
--1->
--2 >^^^^
--3 >    ^
--4 >     ^^^
--5 >        ^^^^
--6 >            ^^^
--7 >               ^^
--8 >                 ^
--9 >                  ^^^^->
+ >>>const c = new Foo();
 -1->
-+>>>const c = new Foo();
 +1 >
-+2 >^^^^^^
-+3 >      ^
-+4 >       ^^^
-+5 >          ^^^^
-+6 >              ^^^
-+7 >                 ^^
-+8 >                   ^
-+9 >                    ^^->
+ 2 >^^^^^^
+ 3 >      ^
+ 4 >       ^^^
+@@= skipped -26, +131 lines =@@
+ 7 >                 ^^
+ 8 >                   ^
+ 9 >                    ^^->
+-1->
 +1 >
  2 >const 
--3 >    c
--4 >      = 
--5 >        new 
--6 >            Foo
--7 >               ()
--8 >                 ;
--1->Emitted(12, 1) Source(1, 1) + SourceIndex(1)
--2 >Emitted(12, 5) Source(1, 7) + SourceIndex(1)
--3 >Emitted(12, 6) Source(1, 8) + SourceIndex(1)
--4 >Emitted(12, 9) Source(1, 11) + SourceIndex(1)
--5 >Emitted(12, 13) Source(1, 15) + SourceIndex(1)
--6 >Emitted(12, 16) Source(1, 18) + SourceIndex(1)
--7 >Emitted(12, 18) Source(1, 20) + SourceIndex(1)
--8 >Emitted(12, 19) Source(1, 21) + SourceIndex(1)
-+3 >      c
-+4 >        = 
-+5 >          new 
-+6 >              Foo
-+7 >                 ()
-+8 >                   ;
+ 3 >      c
+ 4 >        = 
+@@= skipped -8, +8 lines =@@
+ 6 >              Foo
+ 7 >                 ()
+ 8 >                   ;
+-1->Emitted(9, 1) Source(1, 1) + SourceIndex(1)
+-2 >Emitted(9, 7) Source(1, 7) + SourceIndex(1)
+-3 >Emitted(9, 8) Source(1, 8) + SourceIndex(1)
+-4 >Emitted(9, 11) Source(1, 11) + SourceIndex(1)
+-5 >Emitted(9, 15) Source(1, 15) + SourceIndex(1)
+-6 >Emitted(9, 18) Source(1, 18) + SourceIndex(1)
+-7 >Emitted(9, 20) Source(1, 20) + SourceIndex(1)
+-8 >Emitted(9, 21) Source(1, 21) + SourceIndex(1)
 +1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
 +2 >Emitted(1, 7) Source(1, 7) + SourceIndex(0)
 +3 >Emitted(1, 8) Source(1, 8) + SourceIndex(0)
@@ -416,22 +262,22 @@
  ---
  >>>c.doThing({ a: 42 });
  1->
-@@= skipped -113, +193 lines =@@
+@@= skipped -36, +36 lines =@@
  10>                 }
  11>                   )
  12>                    ;
--1->Emitted(13, 1) Source(2, 1) + SourceIndex(1)
--2 >Emitted(13, 2) Source(2, 2) + SourceIndex(1)
--3 >Emitted(13, 3) Source(2, 3) + SourceIndex(1)
--4 >Emitted(13, 10) Source(2, 10) + SourceIndex(1)
--5 >Emitted(13, 11) Source(2, 11) + SourceIndex(1)
--6 >Emitted(13, 13) Source(2, 12) + SourceIndex(1)
--7 >Emitted(13, 14) Source(2, 13) + SourceIndex(1)
--8 >Emitted(13, 16) Source(2, 15) + SourceIndex(1)
--9 >Emitted(13, 18) Source(2, 17) + SourceIndex(1)
--10>Emitted(13, 20) Source(2, 18) + SourceIndex(1)
--11>Emitted(13, 21) Source(2, 19) + SourceIndex(1)
--12>Emitted(13, 22) Source(2, 20) + SourceIndex(1)
+-1->Emitted(10, 1) Source(2, 1) + SourceIndex(1)
+-2 >Emitted(10, 2) Source(2, 2) + SourceIndex(1)
+-3 >Emitted(10, 3) Source(2, 3) + SourceIndex(1)
+-4 >Emitted(10, 10) Source(2, 10) + SourceIndex(1)
+-5 >Emitted(10, 11) Source(2, 11) + SourceIndex(1)
+-6 >Emitted(10, 13) Source(2, 12) + SourceIndex(1)
+-7 >Emitted(10, 14) Source(2, 13) + SourceIndex(1)
+-8 >Emitted(10, 16) Source(2, 15) + SourceIndex(1)
+-9 >Emitted(10, 18) Source(2, 17) + SourceIndex(1)
+-10>Emitted(10, 20) Source(2, 18) + SourceIndex(1)
+-11>Emitted(10, 21) Source(2, 19) + SourceIndex(1)
+-12>Emitted(10, 22) Source(2, 20) + SourceIndex(1)
 +1->Emitted(2, 1) Source(2, 1) + SourceIndex(0)
 +2 >Emitted(2, 2) Source(2, 2) + SourceIndex(0)
 +3 >Emitted(2, 3) Source(2, 3) + SourceIndex(0)
@@ -445,11 +291,8 @@
 +11>Emitted(2, 21) Source(2, 19) + SourceIndex(0)
 +12>Emitted(2, 22) Source(2, 20) + SourceIndex(0)
  ---
-->>>var x = c.doThing({ a: 12 });
-+>>>let x = c.doThing({ a: 12 });
+ >>>let x = c.doThing({ a: 12 });
  1->
- 2 >^^^^
- 3 >    ^
 @@= skipped -29, +29 lines =@@
  13>                         ^^
  14>                           ^
@@ -463,21 +306,21 @@
  13>                         }
  14>                           )
  15>                            ;
--1->Emitted(14, 1) Source(4, 1) + SourceIndex(1)
--2 >Emitted(14, 5) Source(4, 5) + SourceIndex(1)
--3 >Emitted(14, 6) Source(4, 6) + SourceIndex(1)
--4 >Emitted(14, 9) Source(4, 9) + SourceIndex(1)
--5 >Emitted(14, 10) Source(4, 10) + SourceIndex(1)
--6 >Emitted(14, 11) Source(4, 11) + SourceIndex(1)
--7 >Emitted(14, 18) Source(4, 18) + SourceIndex(1)
--8 >Emitted(14, 19) Source(4, 19) + SourceIndex(1)
--9 >Emitted(14, 21) Source(4, 20) + SourceIndex(1)
--10>Emitted(14, 22) Source(4, 21) + SourceIndex(1)
--11>Emitted(14, 24) Source(4, 23) + SourceIndex(1)
--12>Emitted(14, 26) Source(4, 25) + SourceIndex(1)
--13>Emitted(14, 28) Source(4, 26) + SourceIndex(1)
--14>Emitted(14, 29) Source(4, 27) + SourceIndex(1)
--15>Emitted(14, 30) Source(4, 28) + SourceIndex(1)
+-1->Emitted(11, 1) Source(4, 1) + SourceIndex(1)
+-2 >Emitted(11, 5) Source(4, 5) + SourceIndex(1)
+-3 >Emitted(11, 6) Source(4, 6) + SourceIndex(1)
+-4 >Emitted(11, 9) Source(4, 9) + SourceIndex(1)
+-5 >Emitted(11, 10) Source(4, 10) + SourceIndex(1)
+-6 >Emitted(11, 11) Source(4, 11) + SourceIndex(1)
+-7 >Emitted(11, 18) Source(4, 18) + SourceIndex(1)
+-8 >Emitted(11, 19) Source(4, 19) + SourceIndex(1)
+-9 >Emitted(11, 21) Source(4, 20) + SourceIndex(1)
+-10>Emitted(11, 22) Source(4, 21) + SourceIndex(1)
+-11>Emitted(11, 24) Source(4, 23) + SourceIndex(1)
+-12>Emitted(11, 26) Source(4, 25) + SourceIndex(1)
+-13>Emitted(11, 28) Source(4, 26) + SourceIndex(1)
+-14>Emitted(11, 29) Source(4, 27) + SourceIndex(1)
+-15>Emitted(11, 30) Source(4, 28) + SourceIndex(1)
 +1->Emitted(3, 1) Source(4, 1) + SourceIndex(0)
 +2 >Emitted(3, 5) Source(4, 5) + SourceIndex(0)
 +3 >Emitted(3, 6) Source(4, 6) + SourceIndex(0)
diff --git a/testdata/baselines/reference/submodule/compiler/declarationMerging1.js.diff b/testdata/baselines/reference/submodule/compiler/declarationMerging1.js.diff
index 2274be0562..4c0a4ae19d 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationMerging1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationMerging1.js.diff
@@ -1,17 +1,10 @@
 --- old.declarationMerging1.js
 +++ new.declarationMerging1.js
-@@= skipped -11, +11 lines =@@
- }
+@@= skipped -12, +12 lines =@@
 
  //// [file1.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.getF = function () { return this._f; };
--    return A;
--}());
-+class A {
+ class A {
 +    _f;
-+    getF() { return this._f; }
-+}
+     getF() { return this._f; }
+ }
  //// [file2.js]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationMerging2.js.diff b/testdata/baselines/reference/submodule/compiler/declarationMerging2.js.diff
index d43a8451a8..44f378b620 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationMerging2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationMerging2.js.diff
@@ -8,12 +8,9 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.A = void 0;
--    var A = /** @class */ (function () {
--        function A() {
--        }
--        A.prototype.getF = function () { return this._f; };
--        return A;
--    }());
+-    class A {
+-        getF() { return this._f; }
+-    }
 -    exports.A = A;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/declarationNoDanglingGenerics.js.diff b/testdata/baselines/reference/submodule/compiler/declarationNoDanglingGenerics.js.diff
index 87affcb6ae..ab998bb17c 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationNoDanglingGenerics.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationNoDanglingGenerics.js.diff
@@ -1,62 +1,27 @@
 --- old.declarationNoDanglingGenerics.js
 +++ new.declarationNoDanglingGenerics.js
-@@= skipped -35, +35 lines =@@
-
- //// [declarationNoDanglingGenerics.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CKind = exports.BKind = exports.AKind = void 0;
--var kindCache = {};
-+const kindCache = {};
- function register(kind) {
-     if (kindCache[kind]) {
--        throw new Error("Class with kind \"".concat(kind, "\" is already registered."));
-+        throw new Error(`Class with kind "${kind}" is already registered.`);
-     }
+@@= skipped -45, +45 lines =@@
      kindCache[kind] = true;
  }
  function ClassFactory(kind) {
 -    var _a;
      register(kind);
--    return _a = /** @class */ (function () {
--            function class_1() {
+-    return _a = class {
+-            constructor() {
 -                this.kind = kind;
 -            }
--            return class_1;
--        }()),
+-        },
 -        _a.THE_KIND = kind,
 -        _a;
 -}
--var Kinds = /** @class */ (function () {
--    function Kinds() {
+-let Kinds = (() => {
+-    class Kinds {
 -    }
 -    Kinds.A = "A";
 -    Kinds.B = "B";
 -    Kinds.C = "C";
 -    return Kinds;
--}());
--var AKind = /** @class */ (function (_super) {
--    __extends(AKind, _super);
--    function AKind() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return AKind;
--}(ClassFactory(Kinds.A)));
+-})();
 +    return class {
 +        static THE_KIND = kind;
 +        kind = kind;
@@ -67,27 +32,6 @@
 +    static B = "B";
 +    static C = "C";
 +}
-+class AKind extends ClassFactory(Kinds.A) {
-+}
- exports.AKind = AKind;
--var BKind = /** @class */ (function (_super) {
--    __extends(BKind, _super);
--    function BKind() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return BKind;
--}(ClassFactory(Kinds.B)));
-+class BKind extends ClassFactory(Kinds.B) {
-+}
- exports.BKind = BKind;
--var CKind = /** @class */ (function (_super) {
--    __extends(CKind, _super);
--    function CKind() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return CKind;
--}(ClassFactory(Kinds.C)));
-+class CKind extends ClassFactory(Kinds.C) {
-+}
- exports.CKind = CKind;
-
+ class AKind extends ClassFactory(Kinds.A) {
+ }
+ exports.AKind = AKind;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declarationsForFileShadowingGlobalNoError.js.diff b/testdata/baselines/reference/submodule/compiler/declarationsForFileShadowingGlobalNoError.js.diff
index e4b578520e..75daa4a853 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationsForFileShadowingGlobalNoError.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationsForFileShadowingGlobalNoError.js.diff
@@ -1,43 +1,6 @@
 --- old.declarationsForFileShadowingGlobalNoError.js
 +++ new.declarationsForFileShadowingGlobalNoError.js
-@@= skipped -23, +23 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
- //// [index.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.mixin = void 0;
--var mixin = function (Base) {
--    return /** @class */ (function (_super) {
--        __extends(class_1, _super);
--        function class_1() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        class_1.prototype.get = function (domNode) { };
--        return class_1;
--    }(Base));
-+const mixin = (Base) => {
-+    return class extends Base {
-+        get(domNode) { }
-+    };
- };
- exports.mixin = mixin;
-
-@@= skipped -35, +15 lines =@@
+@@= skipped -38, +38 lines =@@
  //// [custom.d.ts]
  export type Node = {};
  //// [index.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/declarationsForIndirectTypeAliasReference.js.diff b/testdata/baselines/reference/submodule/compiler/declarationsForIndirectTypeAliasReference.js.diff
deleted file mode 100644
index eb3b9f84f8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declarationsForIndirectTypeAliasReference.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.declarationsForIndirectTypeAliasReference.js
-+++ new.declarationsForIndirectTypeAliasReference.js
-@@= skipped -39, +39 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.doSome = doSome;
--var MAP = {
--    a: "a"
--};
--var MAP2 = {
--    a: "a"
--};
--function doSome(arg1, arg2, arg3) {
--    if (arg2 === void 0) { arg2 = MAP; }
--    if (arg3 === void 0) { arg3 = MAP2; }
-+const MAP = {
-+    a: "a"
-+};
-+const MAP2 = {
-+    a: "a"
-+};
-+function doSome(arg1, arg2 = MAP, arg3 = MAP2) {
- }
-
diff --git a/testdata/baselines/reference/submodule/compiler/declarationsForInferredTypeFromOtherFile.js.diff b/testdata/baselines/reference/submodule/compiler/declarationsForInferredTypeFromOtherFile.js.diff
index 3a1495b02f..832b323d4f 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationsForInferredTypeFromOtherFile.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationsForInferredTypeFromOtherFile.js.diff
@@ -1,20 +1,6 @@
 --- old.declarationsForInferredTypeFromOtherFile.js
 +++ new.declarationsForInferredTypeFromOtherFile.js
-@@= skipped -16, +16 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Foo = void 0;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.Foo = Foo;
- //// [file2.js]
- "use strict";
-@@= skipped -17, +14 lines =@@
+@@= skipped -30, +30 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.bar = bar;
diff --git a/testdata/baselines/reference/submodule/compiler/declarationsIndirectGeneratedAliasReference.js.diff b/testdata/baselines/reference/submodule/compiler/declarationsIndirectGeneratedAliasReference.js.diff
index c7bd073740..c460ba5131 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationsIndirectGeneratedAliasReference.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationsIndirectGeneratedAliasReference.js.diff
@@ -5,9 +5,8 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyComp = void 0;
 -var ns = require("mod");
--var Ctor = ns.default;
 +const ns = require("mod");
-+const Ctor = ns.default;
+ const Ctor = ns.default;
  exports.MyComp = Ctor.extends({ foo: "bar" });
 
 
diff --git a/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js.diff b/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js.diff
index 064417ffbb..88518482cb 100644
--- a/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.js.diff
@@ -19,50 +19,17 @@
 -};
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.testRecFun = exports.updateIfChanged = void 0;
--var updateIfChanged = function (t) {
--    var reduce = function (u, update) {
--        var set = function (newU) { return Object.is(u, newU) ? t : update(newU); };
--        return Object.assign(function (key) {
--            return reduce(u[key], function (v) {
--                var _a;
--                return update(Object.assign(Array.isArray(u) ? [] : {}, u, (_a = {}, _a[key] = v, _a)));
--            });
--        }, { map: function (updater) { return set(updater(u)); }, set: set });
-+const updateIfChanged = (t) => {
-+    const reduce = (u, update) => {
-+        const set = (newU) => Object.is(u, newU) ? t : update(newU);
-+        return Object.assign((key) => reduce(u[key], (v) => {
-+            return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v }));
-+        }), { map: (updater) => set(updater(u)), set });
-     };
--    return reduce(t, function (t) { return t; });
-+    return reduce(t, (t) => t);
- };
- exports.updateIfChanged = updateIfChanged;
- // example from https://github.com/microsoft/TypeScript/issues/31605
--var testRecFun = function (parent) {
-+const testRecFun = (parent) => {
+ const updateIfChanged = (t) => {
+@@= skipped -29, +16 lines =@@
+ const testRecFun = (parent) => {
      return {
          result: parent,
--        deeper: function (child) {
--            return (0, exports.testRecFun)(__assign(__assign({}, parent), child));
--        }
+-        deeper: (child) => (0, exports.testRecFun)(__assign(__assign({}, parent), child))
 +        deeper: (child) => (0, exports.testRecFun)({ ...parent, ...child })
      };
  };
  exports.testRecFun = testRecFun;
--var p1 = (0, exports.testRecFun)({ one: '1' });
-+let p1 = (0, exports.testRecFun)({ one: '1' });
- void p1.result.one;
--var p2 = p1.deeper({ two: '2' });
-+let p2 = p1.deeper({ two: '2' });
- void p2.result.one;
- void p2.result.two;
--var p3 = p2.deeper({ three: '3' });
-+let p3 = p2.deeper({ three: '3' });
- void p3.result.one;
- void p3.result.two;
- void p3.result.three;
+@@= skipped -16, +16 lines =@@
 
 
  //// [declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.d.ts]
@@ -134,7 +101,7 @@
  }) & {
      map: (updater: (u: Value) => Value) => T;
      set: (newU: Value) => T;
-@@= skipped -89, +74 lines =@@
+@@= skipped -39, +42 lines =@@
      map: (updater: (u: T) => T) => T;
      set: (newU: T) => T;
  };
diff --git a/testdata/baselines/reference/submodule/compiler/declareDottedExtend.js.diff b/testdata/baselines/reference/submodule/compiler/declareDottedExtend.js.diff
index 02f29525af..b21e4794d3 100644
--- a/testdata/baselines/reference/submodule/compiler/declareDottedExtend.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/declareDottedExtend.js.diff
@@ -4,37 +4,7 @@
 
 
  //// [declareDottedExtend.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
 -var ab = A.B;
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return D;
--}(ab.C));
--var E = /** @class */ (function (_super) {
--    __extends(E, _super);
--    function E() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return E;
--}(A.B.C));
-+class D extends ab.C {
-+}
-+class E extends A.B.C {
-+}
\ No newline at end of file
+ class D extends ab.C {
+ }
+ class E extends A.B.C {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/declareIdentifierAsBeginningOfStatementExpression01.js.diff b/testdata/baselines/reference/submodule/compiler/declareIdentifierAsBeginningOfStatementExpression01.js.diff
deleted file mode 100644
index d81401043d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/declareIdentifierAsBeginningOfStatementExpression01.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.declareIdentifierAsBeginningOfStatementExpression01.js
-+++ new.declareIdentifierAsBeginningOfStatementExpression01.js
-@@= skipped -8, +8 lines =@@
- declare instanceof C;
-
- //// [declareIdentifierAsBeginningOfStatementExpression01.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
- var declare;
- declare instanceof C;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js.diff
index 683ce51bd2..984a229851 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataConditionalType.js.diff
@@ -13,24 +13,24 @@
 -var __metadata = (this && this.__metadata) || function (k, v) {
 -    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
 -};
--var BaseEntity = /** @class */ (function () {
--    function BaseEntity() {
+-let BaseEntity = (() => {
+-    class BaseEntity {
 -    }
 -    __decorate([
 -        d(),
 -        __metadata("design:type", Object)
 -    ], BaseEntity.prototype, "attributes", void 0);
 -    return BaseEntity;
--}());
--var C = /** @class */ (function () {
--    function C() {
+-})();
+-let C = (() => {
+-    class C {
 -    }
 -    __decorate([
 -        d(),
 -        __metadata("design:type", Boolean)
 -    ], C.prototype, "x", void 0);
 -    return C;
--}());
+-})();
 +class BaseEntity {
 +    @d()
 +    attributes;
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js.diff
index 96639b23b6..7c093f8747 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js.diff
@@ -4,11 +4,13 @@
 
 
  //// [decoratorMetadataForMethodWithNoReturnTypeAnnotation01.js]
--var MyClass = /** @class */ (function () {
--    function MyClass(test, test2) {
+-let MyClass = (() => {
+-    class MyClass {
+-        constructor(test, test2) {
+-        }
+-        doSomething() {
+-        }
 -    }
--    MyClass.prototype.doSomething = function () {
--    };
 -    __decorate([
 -        decorator,
 -        __metadata("design:type", Function),
@@ -16,7 +18,7 @@
 -        __metadata("design:returntype", void 0)
 -    ], MyClass.prototype, "doSomething", null);
 -    return MyClass;
--}());
+-})();
 +class MyClass {
 +    constructor(test, test2) {
 +    }
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js.diff
index e5ca48120e..a244db4e3a 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariable.js.diff
@@ -15,15 +15,15 @@
 -};
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.C = void 0;
--var C = /** @class */ (function () {
--    function C() {
+-let C = (() => {
+-    class C {
 -    }
 -    __decorate([
 -        Decorate,
 -        __metadata("design:type", Object)
 -    ], C.prototype, "member", void 0);
 -    return C;
--}());
+-})();
 +class C {
 +    @Decorate
 +    member;
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js.diff
index 201b6f6f3f..2b9ff874c4 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableDefault.js.diff
@@ -15,15 +15,15 @@
 -};
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.C = void 0;
--var C = /** @class */ (function () {
--    function C() {
+-let C = (() => {
+-    class C {
 -    }
 -    __decorate([
 -        Decorate,
 -        __metadata("design:type", Object)
 -    ], C.prototype, "member", void 0);
 -    return C;
--}());
+-})();
 +class C {
 +    @Decorate
 +    member;
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js.diff
index 3556cf9fa4..3d6afafc4b 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataGenericTypeVariableInScope.js.diff
@@ -16,22 +16,17 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.C = void 0;
  // Unused, but could collide with the named type argument below.
--var TypeVariable = /** @class */ (function () {
--    function TypeVariable() {
--    }
--    return TypeVariable;
--}());
--var C = /** @class */ (function () {
--    function C() {
+ class TypeVariable {
+ }
+-let C = (() => {
+-    class C {
 -    }
 -    __decorate([
 -        Decorate,
 -        __metadata("design:type", Object)
 -    ], C.prototype, "member", void 0);
 -    return C;
--}());
-+class TypeVariable {
-+}
+-})();
 +class C {
 +    @Decorate
 +    member;
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js.diff
index 93ed971218..cbe209f149 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoLibIsolatedModulesTypes.js.diff
@@ -15,16 +15,16 @@
 -};
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.B = void 0;
--var B = /** @class */ (function () {
--    function B() {
--    }
+-let B = (() => {
 -    var _a;
+-    class B {
+-    }
 -    __decorate([
 -        Decorate,
 -        __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
 -    ], B.prototype, "member", void 0);
 -    return B;
--}());
+-})();
 +class B {
 +    @Decorate
 +    member;
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js.diff
index 6bc17f0957..ef3a9eeac5 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataNoStrictNull.js.diff
@@ -13,9 +13,9 @@
 -var __metadata = (this && this.__metadata) || function (k, v) {
 -    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
 -};
--var dec = function (obj, prop) { return undefined; };
--var Foo = /** @class */ (function () {
--    function Foo() {
+ const dec = (obj, prop) => undefined;
+-let Foo = (() => {
+-    class Foo {
 -    }
 -    __decorate([
 -        dec,
@@ -26,8 +26,7 @@
 -        __metadata("design:type", String)
 -    ], Foo.prototype, "bar", void 0);
 -    return Foo;
--}());
-+const dec = (obj, prop) => undefined;
+-})();
 +class Foo {
 +    @dec
 +    foo;
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js.diff
index 614c387ec4..be80267c83 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataOnInferredType.js.diff
@@ -1,30 +1,21 @@
 --- old.decoratorMetadataOnInferredType.js
 +++ new.decoratorMetadataOnInferredType.js
-@@= skipped -21, +21 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.B = void 0;
--var A = /** @class */ (function () {
--    function A() {
--        console.log('new A');
--    }
--    return A;
--}());
-+class A {
-+    constructor() { console.log('new A'); }
-+}
+@@= skipped -26, +26 lines =@@
+ }
  function decorator(target, propertyKey) {
  }
--var B = /** @class */ (function () {
--    function B() {
--        this.x = new A();
+-let B = (() => {
+-    class B {
+-        constructor() {
+-            this.x = new A();
+-        }
 -    }
 -    __decorate([
 -        decorator,
 -        __metadata("design:type", Object)
 -    ], B.prototype, "x", void 0);
 -    return B;
--}());
+-})();
 +class B {
 +    @decorator
 +    x = new A();
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js.diff
index 1c594abdb4..fdaf69b640 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataRestParameterWithImportedType.js.diff
@@ -1,43 +1,27 @@
 --- old.decoratorMetadataRestParameterWithImportedType.js
 +++ new.decoratorMetadataRestParameterWithImportedType.js
-@@= skipped -42, +42 lines =@@
- "use strict";
+@@= skipped -43, +43 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.SomeClass = void 0;
--var SomeClass = /** @class */ (function () {
--    function SomeClass() {
--    }
--    return SomeClass;
--}());
-+class SomeClass {
+ class SomeClass {
 +    field;
-+}
+ }
  exports.SomeClass = SomeClass;
  //// [aux1.js]
- "use strict";
+@@= skipped -7, +8 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.SomeClass1 = void 0;
--var SomeClass1 = /** @class */ (function () {
--    function SomeClass1() {
--    }
--    return SomeClass1;
--}());
-+class SomeClass1 {
+ class SomeClass1 {
 +    field;
-+}
+ }
  exports.SomeClass1 = SomeClass1;
  //// [aux2.js]
- "use strict";
+@@= skipped -7, +8 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.SomeClass2 = void 0;
--var SomeClass2 = /** @class */ (function () {
--    function SomeClass2() {
--    }
--    return SomeClass2;
--}());
-+class SomeClass2 {
+ class SomeClass2 {
 +    field;
-+}
+ }
  exports.SomeClass2 = SomeClass2;
  //// [main.js]
  "use strict";
@@ -55,29 +39,17 @@
 -var aux_1 = require("./aux");
 -var aux1_1 = require("./aux1");
  function annotation() {
--    return function (target) { };
-+    return (target) => { };
+     return (target) => { };
  }
  function annotation1() {
--    return function (target) { };
-+    return (target) => { };
+     return (target) => { };
  }
--var ClassA = /** @class */ (function () {
--    function ClassA() {
--        var init = [];
--        for (var _i = 0; _i < arguments.length; _i++) {
--            init[_i] = arguments[_i];
+-let ClassA = (() => {
+-    let ClassA = class ClassA {
+-        constructor(...init) {
+-            this.array = init;
 -        }
-+@annotation()
-+class ClassA {
-+    array;
-+    constructor(...init) {
-         this.array = init;
-     }
--    ClassA.prototype.foo = function () {
--        var args = [];
--        for (var _i = 0; _i < arguments.length; _i++) {
--            args[_i] = arguments[_i];
+-        foo(...args) {
 -        }
 -    };
 -    __decorate([
@@ -91,7 +63,13 @@
 -        __metadata("design:paramtypes", [aux_1.SomeClass])
 -    ], ClassA);
 -    return ClassA;
--}());
+-})();
++@annotation()
++class ClassA {
++    array;
++    constructor(...init) {
++        this.array = init;
++    }
 +    @annotation1()
 +    foo(...args) {
 +    }
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js.diff
index 53dff7aa27..9f026d745b 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyExport.js.diff
@@ -1,16 +1,7 @@
 --- old.decoratorMetadataTypeOnlyExport.js
 +++ new.decoratorMetadataTypeOnlyExport.js
-@@= skipped -17, +17 lines =@@
- //// [a.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
+@@= skipped -21, +21 lines =@@
+ }
  //// [b.js]
  "use strict";
 -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
@@ -23,17 +14,17 @@
 -    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
 -};
  Object.defineProperty(exports, "__esModule", { value: true });
--var Decorator = function () { return undefined; };
--var Bar = /** @class */ (function () {
--    function Bar(par) {
--    }
+ const Decorator = () => undefined;
+-let Bar = (() => {
+-    let Bar = class Bar {
+-        constructor(par) { }
+-    };
 -    Bar = __decorate([
 -        Decorator,
 -        __metadata("design:paramtypes", [Function])
 -    ], Bar);
 -    return Bar;
--}());
-+const Decorator = () => undefined;
+-})();
 +@Decorator
 +class Bar {
 +    constructor(par) { }
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js.diff
index df57dec63e..a49628cdf0 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataTypeOnlyImport.js.diff
@@ -14,15 +14,15 @@
 -    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
 -};
  Object.defineProperty(exports, "__esModule", { value: true });
--var Foo = /** @class */ (function () {
--    function Foo() {
+-let Foo = (() => {
+-    class Foo {
 -    }
 -    __decorate([
 -        Decorator,
 -        __metadata("design:type", Object)
 -    ], Foo.prototype, "myList", void 0);
 -    return Foo;
--}());
+-})();
 +class Foo {
 +    @Decorator
 +    myList;
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js.diff
index ac381be5a4..26885372e7 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithConstructorType.js.diff
@@ -1,30 +1,21 @@
 --- old.decoratorMetadataWithConstructorType.js
 +++ new.decoratorMetadataWithConstructorType.js
-@@= skipped -21, +21 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.B = void 0;
--var A = /** @class */ (function () {
--    function A() {
--        console.log('new A');
--    }
--    return A;
--}());
-+class A {
-+    constructor() { console.log('new A'); }
-+}
+@@= skipped -26, +26 lines =@@
+ }
  function decorator(target, propertyKey) {
  }
--var B = /** @class */ (function () {
--    function B() {
--        this.x = new A();
+-let B = (() => {
+-    class B {
+-        constructor() {
+-            this.x = new A();
+-        }
 -    }
 -    __decorate([
 -        decorator,
 -        __metadata("design:type", A)
 -    ], B.prototype, "x", void 0);
 -    return B;
--}());
+-})();
 +class B {
 +    @decorator
 +    x = new A();
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js.diff
index 3494cb054b..d2adab911a 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision.js.diff
@@ -1,21 +1,6 @@
 --- old.decoratorMetadataWithImportDeclarationNameCollision.js
 +++ new.decoratorMetadataWithImportDeclarationNameCollision.js
-@@= skipped -26, +26 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.db = void 0;
--var db = /** @class */ (function () {
--    function db() {
-+class db {
-+    doSomething() {
-     }
--    db.prototype.doSomething = function () {
--    };
--    return db;
--}());
-+}
- exports.db = db;
- //// [service.js]
+@@= skipped -35, +35 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyClass = void 0;
@@ -23,20 +8,25 @@
  function someDecorator(target) {
      return target;
  }
--var MyClass = /** @class */ (function () {
--    function MyClass(db) {
-+@someDecorator
-+class MyClass {
-+    db;
-+    constructor(db) {
-         this.db = db;
-         this.db.doSomething();
-     }
+-let MyClass = (() => {
+-    let MyClass = class MyClass {
+-        constructor(db) {
+-            this.db = db;
+-            this.db.doSomething();
+-        }
+-    };
 -    MyClass = __decorate([
 -        someDecorator,
 -        __metadata("design:paramtypes", [db_1.db])
 -    ], MyClass);
 -    return MyClass;
--}());
+-})();
++@someDecorator
++class MyClass {
++    db;
++    constructor(db) {
++        this.db = db;
++        this.db.doSomething();
++    }
 +}
  exports.MyClass = MyClass;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js.diff
index a89665a65a..fcc4f9fc78 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision2.js.diff
@@ -1,21 +1,6 @@
 --- old.decoratorMetadataWithImportDeclarationNameCollision2.js
 +++ new.decoratorMetadataWithImportDeclarationNameCollision2.js
-@@= skipped -26, +26 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.db = void 0;
--var db = /** @class */ (function () {
--    function db() {
-+class db {
-+    doSomething() {
-     }
--    db.prototype.doSomething = function () {
--    };
--    return db;
--}());
-+}
- exports.db = db;
- //// [service.js]
+@@= skipped -35, +35 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyClass = void 0;
@@ -23,20 +8,25 @@
  function someDecorator(target) {
      return target;
  }
--var MyClass = /** @class */ (function () {
--    function MyClass(db) {
-+@someDecorator
-+class MyClass {
-+    db;
-+    constructor(db) {
-         this.db = db;
-         this.db.doSomething();
-     }
+-let MyClass = (() => {
+-    let MyClass = class MyClass {
+-        constructor(db) {
+-            this.db = db;
+-            this.db.doSomething();
+-        }
+-    };
 -    MyClass = __decorate([
 -        someDecorator,
 -        __metadata("design:paramtypes", [db_1.db])
 -    ], MyClass);
 -    return MyClass;
--}());
+-})();
++@someDecorator
++class MyClass {
++    db;
++    constructor(db) {
++        this.db = db;
++        this.db.doSomething();
++    }
 +}
  exports.MyClass = MyClass;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js.diff
index ab36588ff2..3b7e2467b4 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision3.js.diff
@@ -1,21 +1,6 @@
 --- old.decoratorMetadataWithImportDeclarationNameCollision3.js
 +++ new.decoratorMetadataWithImportDeclarationNameCollision3.js
-@@= skipped -26, +26 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.db = void 0;
--var db = /** @class */ (function () {
--    function db() {
-+class db {
-+    doSomething() {
-     }
--    db.prototype.doSomething = function () {
--    };
--    return db;
--}());
-+}
- exports.db = db;
- //// [service.js]
+@@= skipped -35, +35 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyClass = void 0;
@@ -23,20 +8,25 @@
  function someDecorator(target) {
      return target;
  }
--var MyClass = /** @class */ (function () {
--    function MyClass(db) {
-+@someDecorator
-+class MyClass {
-+    db;
-+    constructor(db) {
-         this.db = db;
-         this.db.doSomething();
-     }
+-let MyClass = (() => {
+-    let MyClass = class MyClass {
+-        constructor(db) {
+-            this.db = db;
+-            this.db.doSomething();
+-        }
+-    };
 -    MyClass = __decorate([
 -        someDecorator,
 -        __metadata("design:paramtypes", [db.db])
 -    ], MyClass);
 -    return MyClass;
--}());
+-})();
++@someDecorator
++class MyClass {
++    db;
++    constructor(db) {
++        this.db = db;
++        this.db.doSomething();
++    }
 +}
  exports.MyClass = MyClass;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js.diff
index 6c9bc65503..1874b1d5e5 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision4.js.diff
@@ -1,21 +1,6 @@
 --- old.decoratorMetadataWithImportDeclarationNameCollision4.js
 +++ new.decoratorMetadataWithImportDeclarationNameCollision4.js
-@@= skipped -26, +26 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.db = void 0;
--var db = /** @class */ (function () {
--    function db() {
-+class db {
-+    doSomething() {
-     }
--    db.prototype.doSomething = function () {
--    };
--    return db;
--}());
-+}
- exports.db = db;
- //// [service.js]
+@@= skipped -35, +35 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyClass = void 0;
@@ -23,21 +8,26 @@
  function someDecorator(target) {
      return target;
  }
--var MyClass = /** @class */ (function () {
--    function MyClass(db) {
-+@someDecorator
-+class MyClass {
-+    db;
-+    constructor(db) {
-         this.db = db;
-         this.db.doSomething();
-     }
+-let MyClass = (() => {
 -    var _a;
+-    let MyClass = class MyClass {
+-        constructor(db) {
+-            this.db = db;
+-            this.db.doSomething();
+-        }
+-    };
 -    MyClass = __decorate([
 -        someDecorator,
 -        __metadata("design:paramtypes", [typeof (_a = typeof db_1.default !== "undefined" && db_1.default.db) === "function" ? _a : Object])
 -    ], MyClass);
 -    return MyClass;
--}());
+-})();
++@someDecorator
++class MyClass {
++    db;
++    constructor(db) {
++        this.db = db;
++        this.db.doSomething();
++    }
 +}
  exports.MyClass = MyClass;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js.diff
index c5252e1a84..54b82621a7 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision5.js.diff
@@ -1,21 +1,6 @@
 --- old.decoratorMetadataWithImportDeclarationNameCollision5.js
 +++ new.decoratorMetadataWithImportDeclarationNameCollision5.js
-@@= skipped -25, +25 lines =@@
- //// [db.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var db = /** @class */ (function () {
--    function db() {
-+class db {
-+    doSomething() {
-     }
--    db.prototype.doSomething = function () {
--    };
--    return db;
--}());
-+}
- exports.default = db;
- //// [service.js]
+@@= skipped -34, +34 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyClass = void 0;
@@ -23,20 +8,25 @@
  function someDecorator(target) {
      return target;
  }
--var MyClass = /** @class */ (function () {
--    function MyClass(db) {
-+@someDecorator
-+class MyClass {
-+    db;
-+    constructor(db) {
-         this.db = db;
-         this.db.doSomething();
-     }
+-let MyClass = (() => {
+-    let MyClass = class MyClass {
+-        constructor(db) {
+-            this.db = db;
+-            this.db.doSomething();
+-        }
+-    };
 -    MyClass = __decorate([
 -        someDecorator,
 -        __metadata("design:paramtypes", [db_1.default])
 -    ], MyClass);
 -    return MyClass;
--}());
+-})();
++@someDecorator
++class MyClass {
++    db;
++    constructor(db) {
++        this.db = db;
++        this.db.doSomething();
++    }
 +}
  exports.MyClass = MyClass;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js.diff
index 240b1bba9f..e4e4bd26fd 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision6.js.diff
@@ -1,21 +1,6 @@
 --- old.decoratorMetadataWithImportDeclarationNameCollision6.js
 +++ new.decoratorMetadataWithImportDeclarationNameCollision6.js
-@@= skipped -25, +25 lines =@@
- //// [db.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var db = /** @class */ (function () {
--    function db() {
-+class db {
-+    doSomething() {
-     }
--    db.prototype.doSomething = function () {
--    };
--    return db;
--}());
-+}
- exports.default = db;
- //// [service.js]
+@@= skipped -34, +34 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyClass = void 0;
@@ -23,20 +8,25 @@
  function someDecorator(target) {
      return target;
  }
--var MyClass = /** @class */ (function () {
--    function MyClass(db) {
-+@someDecorator
-+class MyClass {
-+    db;
-+    constructor(db) {
-         this.db = db;
-         this.db.doSomething();
-     }
+-let MyClass = (() => {
+-    let MyClass = class MyClass {
+-        constructor(db) {
+-            this.db = db;
+-            this.db.doSomething();
+-        }
+-    };
 -    MyClass = __decorate([
 -        someDecorator,
 -        __metadata("design:paramtypes", [db_1.default])
 -    ], MyClass);
 -    return MyClass;
--}());
+-})();
++@someDecorator
++class MyClass {
++    db;
++    constructor(db) {
++        this.db = db;
++        this.db.doSomething();
++    }
 +}
  exports.MyClass = MyClass;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js.diff
index 4d883d32cf..5bf4140db7 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision7.js.diff
@@ -1,21 +1,6 @@
 --- old.decoratorMetadataWithImportDeclarationNameCollision7.js
 +++ new.decoratorMetadataWithImportDeclarationNameCollision7.js
-@@= skipped -25, +25 lines =@@
- //// [db.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var db = /** @class */ (function () {
--    function db() {
-+class db {
-+    doSomething() {
-     }
--    db.prototype.doSomething = function () {
--    };
--    return db;
--}());
-+}
- exports.default = db;
- //// [service.js]
+@@= skipped -34, +34 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyClass = void 0;
@@ -23,21 +8,26 @@
  function someDecorator(target) {
      return target;
  }
--var MyClass = /** @class */ (function () {
--    function MyClass(db) {
-+@someDecorator
-+class MyClass {
-+    db; //error
-+    constructor(db) {
-         this.db = db;
-         this.db.doSomething();
-     }
+-let MyClass = (() => {
 -    var _a;
+-    let MyClass = class MyClass {
+-        constructor(db) {
+-            this.db = db;
+-            this.db.doSomething();
+-        }
+-    };
 -    MyClass = __decorate([
 -        someDecorator,
 -        __metadata("design:paramtypes", [typeof (_a = typeof db_1.default !== "undefined" && db_1.default.db) === "function" ? _a : Object])
 -    ], MyClass);
 -    return MyClass;
--}());
+-})();
++@someDecorator
++class MyClass {
++    db; //error
++    constructor(db) {
++        this.db = db;
++        this.db.doSomething();
++    }
 +}
  exports.MyClass = MyClass;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js.diff
index 102cceb637..44fcb18c71 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorMetadataWithImportDeclarationNameCollision8.js.diff
@@ -1,21 +1,6 @@
 --- old.decoratorMetadataWithImportDeclarationNameCollision8.js
 +++ new.decoratorMetadataWithImportDeclarationNameCollision8.js
-@@= skipped -26, +26 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.db = void 0;
--var db = /** @class */ (function () {
--    function db() {
-+class db {
-+    doSomething() {
-     }
--    db.prototype.doSomething = function () {
--    };
--    return db;
--}());
-+}
- exports.db = db;
- //// [service.js]
+@@= skipped -35, +35 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyClass = void 0;
@@ -23,20 +8,25 @@
  function someDecorator(target) {
      return target;
  }
--var MyClass = /** @class */ (function () {
--    function MyClass(db) {
-+@someDecorator
-+class MyClass {
-+    db;
-+    constructor(db) {
-         this.db = db;
-         this.db.doSomething();
-     }
+-let MyClass = (() => {
+-    let MyClass = class MyClass {
+-        constructor(db) {
+-            this.db = db;
+-            this.db.doSomething();
+-        }
+-    };
 -    MyClass = __decorate([
 -        someDecorator,
 -        __metadata("design:paramtypes", [database.db])
 -    ], MyClass);
 -    return MyClass;
--}());
+-})();
++@someDecorator
++class MyClass {
++    db;
++    constructor(db) {
++        this.db = db;
++        this.db.doSomething();
++    }
 +}
  exports.MyClass = MyClass;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js.diff
index bf1d3ee577..9831574364 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorReferenceOnOtherProperty.js.diff
@@ -1,16 +1,6 @@
 --- old.decoratorReferenceOnOtherProperty.js
 +++ new.decoratorReferenceOnOtherProperty.js
-@@= skipped -26, +26 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Yoha = void 0;
--var Yoha = /** @class */ (function () {
--    function Yoha() {
--    }
--    return Yoha;
--}());
-+class Yoha {
-+}
+@@= skipped -31, +31 lines =@@
  exports.Yoha = Yoha;
  //// [index.js]
  "use strict";
@@ -28,19 +18,11 @@
 -};
  Object.defineProperty(exports, "__esModule", { value: true });
 -var yoha_1 = require("./yoha");
--function foo() {
--    var args = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        args[_i] = arguments[_i];
+ function foo(...args) { }
+-let Bar = (() => {
+-    class Bar {
+-        yoha(yoha, bar) { }
 -    }
-+function foo(...args) { }
-+class Bar {
-+    yoha(yoha, bar) { }
- }
--var Bar = /** @class */ (function () {
--    function Bar() {
--    }
--    Bar.prototype.yoha = function (yoha, bar) { };
 -    __decorate([
 -        __param(0, foo),
 -        __metadata("design:type", Function),
@@ -48,7 +30,10 @@
 -        __metadata("design:returntype", void 0)
 -    ], Bar.prototype, "yoha", null);
 -    return Bar;
--}());
+-})();
++class Bar {
++    yoha(yoha, bar) { }
++}
  //// [index2.js]
  "use strict";
 -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
@@ -65,24 +50,11 @@
 -};
  Object.defineProperty(exports, "__esModule", { value: true });
 -var yoha_1 = require("./yoha");
--function foo() {
--    var args = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        args[_i] = arguments[_i];
+ function foo(...args) { }
+-let Bar = (() => {
+-    class Bar {
+-        yoha(yoha, ...bar) { }
 -    }
-+function foo(...args) { }
-+class Bar {
-+    yoha(yoha, ...bar) { }
- }
--var Bar = /** @class */ (function () {
--    function Bar() {
--    }
--    Bar.prototype.yoha = function (yoha) {
--        var bar = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            bar[_i - 1] = arguments[_i];
--        }
--    };
 -    __decorate([
 -        __param(0, foo),
 -        __metadata("design:type", Function),
@@ -90,4 +62,7 @@
 -        __metadata("design:returntype", void 0)
 -    ], Bar.prototype, "yoha", null);
 -    return Bar;
--}());
\ No newline at end of file
+-})();
++class Bar {
++    yoha(yoha, ...bar) { }
++}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorReferences.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorReferences.js.diff
index 32a28124c0..97bd982473 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorReferences.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorReferences.js.diff
@@ -13,20 +13,20 @@
 -var __param = (this && this.__param) || function (paramIndex, decorator) {
 -    return function (target, key) { decorator(target, key, paramIndex); }
 -};
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.method = function (x, y) { }; // <-- decorator y should be resolved at the class declaration, not the parameter.
+-let C = (() => {
+-    let C = class C {
+-        method(x, y) { } // <-- decorator y should be resolved at the class declaration, not the parameter.
+-    };
 -    __decorate([
 -        y(null) // <-- y should resolve to the function declaration, not the parameter; T should resolve to the type parameter of the class
 -        ,
 -        __param(0, y)
 -    ], C.prototype, "method", null);
 -    C = __decorate([
--        y(1, function () { return C; }) // <-- T should be resolved to the type alias, not the type parameter of the class; C should resolve to the class
+-        y(1, () => C) // <-- T should be resolved to the type alias, not the type parameter of the class; C should resolve to the class
 -    ], C);
 -    return C;
--}());
+-})();
 +@y(1, () => C) // <-- T should be resolved to the type alias, not the type parameter of the class; C should resolve to the class
 +class C {
 +    @y(null) // <-- y should resolve to the function declaration, not the parameter; T should resolve to the type parameter of the class
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js.diff
index f86f309a59..3901d9ac35 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorWithNegativeLiteralTypeNoCrash.js.diff
@@ -13,16 +13,18 @@
 -var __metadata = (this && this.__metadata) || function (k, v) {
 -    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
 -};
--var A = /** @class */ (function () {
--    function A() {
--        this.field1 = -1;
+-let A = (() => {
+-    class A {
+-        constructor() {
+-            this.field1 = -1;
+-        }
 -    }
 -    __decorate([
 -        decorator,
 -        __metadata("design:type", Number)
 -    ], A.prototype, "field1", void 0);
 -    return A;
--}());
+-})();
 +class A {
 +    @decorator
 +    field1 = -1;
diff --git a/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js.diff b/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js.diff
index c8279995b1..e0bece90d5 100644
--- a/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/decoratorWithUnderscoreMethod.js.diff
@@ -4,19 +4,19 @@
          //propKey has three underscores as prefix, but the method has only two underscores
      };
  }
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.__foo = function (bar) {
+-let A = (() => {
+-    class A {
+-        __foo(bar) {
+-            // do something with bar
+-        }
 +class A {
 +    @dec()
 +    __foo(bar) {
-         // do something with bar
--    };
++        // do something with bar
+     }
 -    __decorate([
 -        dec()
 -    ], A.prototype, "__foo", null);
 -    return A;
--}());
-+    }
+-})();
 +}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/deepComparisons.js.diff b/testdata/baselines/reference/submodule/compiler/deepComparisons.js.diff
deleted file mode 100644
index 15459dd209..0000000000
--- a/testdata/baselines/reference/submodule/compiler/deepComparisons.js.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- old.deepComparisons.js
-+++ new.deepComparisons.js
-@@= skipped -41, +41 lines =@@
-
- //// [deepComparisons.js]
- function f1() {
--    var v1 = 0; // Error
--    var v2 = 0; // Error
--    var v3 = 0; // No error
-+    let v1 = 0; // Error
-+    let v2 = 0; // Error
-+    let v3 = 0; // No error
- }
- function f2() {
--    var x = 0; // Error, excessive stack depth
-+    let x = 0; // Error, excessive stack depth
- }
- function f3() {
--    var x = 0; // No error!
-+    let x = 0; // No error!
- }
- function g() {
-     return f();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/deepExcessPropertyCheckingWhenTargetIsIntersection.js.diff b/testdata/baselines/reference/submodule/compiler/deepExcessPropertyCheckingWhenTargetIsIntersection.js.diff
deleted file mode 100644
index 9ba172c503..0000000000
--- a/testdata/baselines/reference/submodule/compiler/deepExcessPropertyCheckingWhenTargetIsIntersection.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.deepExcessPropertyCheckingWhenTargetIsIntersection.js
-+++ new.deepExcessPropertyCheckingWhenTargetIsIntersection.js
-@@= skipped -30, +30 lines =@@
-
-
- //// [deepExcessPropertyCheckingWhenTargetIsIntersection.js]
--var TestComponent = function (props) {
-+const TestComponent = (props) => {
-     return null;
- };
- TestComponent({ icon: { props: { INVALID_PROP_NAME: 'share', ariaLabel: 'test label' } } });
--var TestComponent2 = function (props) {
-+const TestComponent2 = (props) => {
-     return null;
- };
- TestComponent2({ icon: { props: { INVALID_PROP_NAME: 'share', ariaLabel: 'test label' } } });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/deepKeysIndexing.js.diff b/testdata/baselines/reference/submodule/compiler/deepKeysIndexing.js.diff
deleted file mode 100644
index 72f82d0659..0000000000
--- a/testdata/baselines/reference/submodule/compiler/deepKeysIndexing.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.deepKeysIndexing.js
-+++ new.deepKeysIndexing.js
-@@= skipped -58, +58 lines =@@
-
-
- //// [deepKeysIndexing.js]
--var Bar = /** @class */ (function () {
--    function Bar() {
--    }
--    Bar.prototype.broken = function (k1, k2, value) { };
--    Bar.prototype.working = function (k1, k2, value) { };
--    Bar.prototype.workaround = function (k1, k2, value) { };
--    return Bar;
--}());
--var bar = new Bar();
-+class Bar {
-+    broken(k1, k2, value) { }
-+    working(k1, k2, value) { }
-+    workaround(k1, k2, value) { }
-+}
-+const bar = new Bar();
- // all 3 of the below should error on passing `true` for `"1"`
- bar.broken("a", "1", true); // was broken in the past - with 2nd argument incorrectly of type "1" | "2" | "3".
- bar.working("a", "1", true); // ok - true is not allowed
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/deeplyNestedAssignabilityErrorsCombined.js.diff b/testdata/baselines/reference/submodule/compiler/deeplyNestedAssignabilityErrorsCombined.js.diff
index e1d936a5c1..8cb0b7c695 100644
--- a/testdata/baselines/reference/submodule/compiler/deeplyNestedAssignabilityErrorsCombined.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/deeplyNestedAssignabilityErrorsCombined.js.diff
@@ -1,34 +1,19 @@
 --- old.deeplyNestedAssignabilityErrorsCombined.js
 +++ new.deeplyNestedAssignabilityErrorsCombined.js
-@@= skipped -17, +17 lines =@@
- x2 = y2;
-
- //// [deeplyNestedAssignabilityErrorsCombined.js]
--var x = { a: { b: { c: { d: { e: { f: function () { return { g: "hello" }; } } } } } } };
--var y = { a: { b: { c: { d: { e: { f: function () { return { g: 12345 }; } } } } } } };
-+let x = { a: { b: { c: { d: { e: { f() { return { g: "hello" }; } } } } } } };
-+let y = { a: { b: { c: { d: { e: { f() { return { g: 12345 }; } } } } } } };
+@@= skipped -21, +21 lines =@@
+ let y = { a: { b: { c: { d: { e: { f() { return { g: 12345 }; } } } } } } };
  x = y;
--var Ctor1 = /** @class */ (function () {
--    function Ctor1() {
+ class Ctor1 {
+-    constructor() {
 -        this.g = "ok";
 -    }
--    return Ctor1;
--}());
--var Ctor2 = /** @class */ (function () {
--    function Ctor2() {
++    g = "ok";
+ }
+ class Ctor2 {
+-    constructor() {
 -        this.g = 12;
 -    }
--    return Ctor2;
--}());
--var x2 = { a: { b: { c: { d: { e: { f: Ctor1 } } } } } };
--var y2 = { a: { b: { c: { d: { e: { f: Ctor2 } } } } } };
-+class Ctor1 {
-+    g = "ok";
-+}
-+class Ctor2 {
 +    g = 12;
-+}
-+let x2 = { a: { b: { c: { d: { e: { f: Ctor1 } } } } } };
-+let y2 = { a: { b: { c: { d: { e: { f: Ctor2 } } } } } };
- x2 = y2;
\ No newline at end of file
+ }
+ let x2 = { a: { b: { c: { d: { e: { f: Ctor1 } } } } } };
+ let y2 = { a: { b: { c: { d: { e: { f: Ctor2 } } } } } };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/deeplyNestedAssignabilityIssue.js.diff b/testdata/baselines/reference/submodule/compiler/deeplyNestedAssignabilityIssue.js.diff
deleted file mode 100644
index 448ad23a35..0000000000
--- a/testdata/baselines/reference/submodule/compiler/deeplyNestedAssignabilityIssue.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.deeplyNestedAssignabilityIssue.js
-+++ new.deeplyNestedAssignabilityIssue.js
-@@= skipped -32, +32 lines =@@
-
-
- //// [deeplyNestedAssignabilityIssue.js]
--var x = {
-+const x = {
-     something: {
-         another: {
-             more: {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/deeplyNestedCheck.js.diff b/testdata/baselines/reference/submodule/compiler/deeplyNestedCheck.js.diff
index d65ae923e2..28297b816c 100644
--- a/testdata/baselines/reference/submodule/compiler/deeplyNestedCheck.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/deeplyNestedCheck.js.diff
@@ -5,11 +5,9 @@
 
  //// [deeplyNestedCheck.js]
 -// Repro from #14794
--var x = {
-+const x = {
+ const x = {
      b: [
          {
-             c: {
 @@= skipped -13, +12 lines =@@
                                      {
                                          g: {
@@ -20,12 +18,4 @@
 +                                                {},
                                              ],
                                          },
-                                     },
-@@= skipped -16, +14 lines =@@
-     ],
- };
- // Repro from 34619
--var a1 = [[[[[42]]]]];
--var a2 = [[[[[[[[[[42]]]]]]]]]];
-+const a1 = [[[[[42]]]]];
-+const a2 = [[[[[[[[[[42]]]]]]]]]];
\ No newline at end of file
+                                     },
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js.diff b/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js.diff
index c7c9a5237b..cb7a652f43 100644
--- a/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/deeplyNestedConstraints.js.diff
@@ -6,18 +6,10 @@
  //// [deeplyNestedConstraints.js]
 -"use strict";
 -// Repro from #41931
--var BufferPool = /** @class */ (function () {
--    function BufferPool() {
--    }
--    BufferPool.prototype.setArray2 = function (_, array) {
-+class BufferPool {
-+    setArray2(_, array) {
+ class BufferPool {
+     setArray2(_, array) {
          array.length; // Requires exploration of >5 levels of constraints
--    };
--    return BufferPool;
--}());
-+    }
-+}
+@@= skipped -10, +8 lines =@@
 
 
  //// [deeplyNestedConstraints.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/defaultArgsInFunctionExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/defaultArgsInFunctionExpressions.js.diff
deleted file mode 100644
index 6a893a18d1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/defaultArgsInFunctionExpressions.js.diff
+++ /dev/null
@@ -1,52 +0,0 @@
---- old.defaultArgsInFunctionExpressions.js
-+++ new.defaultArgsInFunctionExpressions.js
-@@= skipped -33, +33 lines =@@
- f7().x;
-
- //// [defaultArgsInFunctionExpressions.js]
--var f = function (a) {
--    if (a === void 0) { a = 3; }
--    return a;
--}; // Type should be (a?: number) => number
-+var f = function (a = 3) { return a; }; // Type should be (a?: number) => number
- var n = f(4);
- n = f();
- var s = f('');
- s = f();
- // Type check the default argument with the type annotation
--var f2 = function (a) {
--    if (a === void 0) { a = 3; }
--    return a;
--}; // Should error, but be of type (a: string) => string;
-+var f2 = function (a = 3) { return a; }; // Should error, but be of type (a: string) => string;
- s = f2('');
- s = f2();
- n = f2();
- // Contextually type the default arg with the type annotation
--var f3 = function (a) {
--    if (a === void 0) { a = function (s) { return s; }; }
--};
-+var f3 = function (a = (s) => s) { };
- // Type check using the function's contextual type
--var f4 = function (a) {
--    if (a === void 0) { a = ""; }
--};
-+var f4 = function (a = "") { };
- // Contextually type the default arg using the function's contextual type
--var f5 = function (a) {
--    if (a === void 0) { a = function (s) { return s; }; }
--};
-+var f5 = function (a = s => s) { };
- var U;
- (function (U) {
- })(U || (U = {}));
--var f6 = function (t) {
--    if (t === void 0) { t = T; }
--};
--var f7 = function (t) {
--    if (t === void 0) { t = U; }
--    return t;
--};
-+var f6 = (t = T) => { };
-+var f7 = (t = U) => { return t; };
- f7().x;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/defaultArgsInOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/defaultArgsInOverloads.js.diff
deleted file mode 100644
index 5fd7581985..0000000000
--- a/testdata/baselines/reference/submodule/compiler/defaultArgsInOverloads.js.diff
+++ /dev/null
@@ -1,25 +0,0 @@
---- old.defaultArgsInOverloads.js
-+++ new.defaultArgsInOverloads.js
-@@= skipped -21, +21 lines =@@
- var f: (a = 3) => number;
-
- //// [defaultArgsInOverloads.js]
--function fun(a) {
--    if (a === void 0) { a = null; }
-+function fun(a = null) { }
-+class C {
-+    fun(a = null) { }
-+    static fun(a = null) { }
- }
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.fun = function (a) {
--        if (a === void 0) { a = null; }
--    };
--    C.fun = function (a) {
--        if (a === void 0) { a = null; }
--    };
--    return C;
--}());
- var f;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitDefaultImport.js.diff b/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitDefaultImport.js.diff
index bfe0ea17a8..c452d600c7 100644
--- a/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitDefaultImport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitDefaultImport.js.diff
@@ -1,18 +1,6 @@
 --- old.defaultDeclarationEmitDefaultImport.js
 +++ new.defaultDeclarationEmitDefaultImport.js
-@@= skipped -12, +12 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.getSomething = getSomething;
- function getSomething() { return null; }
--var Something = /** @class */ (function () {
--    function Something() {
--    }
--    return Something;
--}());
-+class Something {
-+}
- exports.default = Something;
- //// [main.js]
+@@= skipped -19, +19 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.instance = void 0;
diff --git a/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitNamedCorrectly.js.diff b/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitNamedCorrectly.js.diff
index d650b600fd..d74f9e7420 100644
--- a/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitNamedCorrectly.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitNamedCorrectly.js.diff
@@ -4,12 +4,12 @@
  function make(x) {
      return null;
  }
--var MyComponent = /** @class */ (function () {
--    function MyComponent() {
+-let MyComponent = (() => {
+-    class MyComponent {
 -    }
 -    MyComponent.create = make(MyComponent);
 -    return MyComponent;
--}());
+-})();
 +class MyComponent {
 +    props;
 +    static create = make(MyComponent);
diff --git a/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitShadowedNamedCorrectly.js.diff b/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitShadowedNamedCorrectly.js.diff
index 25de526660..f5b9a35379 100644
--- a/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitShadowedNamedCorrectly.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/defaultDeclarationEmitShadowedNamedCorrectly.js.diff
@@ -9,23 +9,12 @@
  function make(x) {
      return null;
  }
--var MyComponent = /** @class */ (function () {
--    function MyComponent() {
--    }
--    return MyComponent;
--}());
-+class MyComponent {
+ class MyComponent {
 +    props;
-+}
+ }
  exports.default = MyComponent;
  var Something;
- (function (Something) {
--    var MyComponent = 2; // Shadow declaration, so symbol is only usable via the self-import
-+    let MyComponent = 2; // Shadow declaration, so symbol is only usable via the self-import
-     Something.create = make(me.default);
- })(Something || (exports.Something = Something = {}));
-
-@@= skipped -24, +22 lines =@@
+@@= skipped -21, +22 lines =@@
      t: T;
  }
  export declare function make(x: {
diff --git a/testdata/baselines/reference/submodule/compiler/defaultIndexProps1.js.diff b/testdata/baselines/reference/submodule/compiler/defaultIndexProps1.js.diff
index f38a59105a..c1018cd606 100644
--- a/testdata/baselines/reference/submodule/compiler/defaultIndexProps1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/defaultIndexProps1.js.diff
@@ -1,18 +1,13 @@
 --- old.defaultIndexProps1.js
 +++ new.defaultIndexProps1.js
-@@= skipped -14, +14 lines =@@
-
+@@= skipped -15, +15 lines =@@
 
  //// [defaultIndexProps1.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
+ class Foo {
+-    constructor() {
 -        this.v = "Yo";
 -    }
--    return Foo;
--}());
-+class Foo {
 +    v = "Yo";
-+}
+ }
  var f = new Foo();
- var q = f["v"];
- var o = { v: "Yo2" };
\ No newline at end of file
+ var q = f["v"];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/defaultIndexProps2.js.diff b/testdata/baselines/reference/submodule/compiler/defaultIndexProps2.js.diff
index 2f78f4ad68..d75d3b004b 100644
--- a/testdata/baselines/reference/submodule/compiler/defaultIndexProps2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/defaultIndexProps2.js.diff
@@ -1,18 +1,13 @@
 --- old.defaultIndexProps2.js
 +++ new.defaultIndexProps2.js
-@@= skipped -17, +17 lines =@@
-
+@@= skipped -18, +18 lines =@@
 
  //// [defaultIndexProps2.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
+ class Foo {
+-    constructor() {
 -        this.v = "Yo";
 -    }
--    return Foo;
--}());
-+class Foo {
 +    v = "Yo";
-+}
+ }
  var f = new Foo();
- // WScript.Echo(f[0]);
- var o = { v: "Yo2" };
\ No newline at end of file
+ // WScript.Echo(f[0]);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js.diff b/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js.diff
index cc0cecf302..6f2ceb0597 100644
--- a/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/defaultKeywordWithoutExport1.js.diff
@@ -10,14 +10,14 @@
 -    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
 -    return c > 3 && r && Object.defineProperty(target, key, r), r;
 -};
--var default_1 = /** @class */ (function () {
--    function default_1() {
--    }
+-let default_1 = (() => {
+-    let default_1 = class {
+-    };
 -    default_1 = __decorate([
 -        decorator
 -    ], default_1);
 -    return default_1;
--}());
+-})();
 +@decorator
 +default class {
 +}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/defaultOfAnyInStrictNullChecks.js.diff b/testdata/baselines/reference/submodule/compiler/defaultOfAnyInStrictNullChecks.js.diff
deleted file mode 100644
index 74c9391fc4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/defaultOfAnyInStrictNullChecks.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.defaultOfAnyInStrictNullChecks.js
-+++ new.defaultOfAnyInStrictNullChecks.js
-@@= skipped -17, +17 lines =@@
-     try {
-     }
-     catch (e) {
--        var s = e.message;
-+        let s = e.message;
-     }
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/defaultParameterAddsUndefinedWithStrictNullChecks.js.diff b/testdata/baselines/reference/submodule/compiler/defaultParameterAddsUndefinedWithStrictNullChecks.js.diff
index 0f7cab3913..a35fee7d8b 100644
--- a/testdata/baselines/reference/submodule/compiler/defaultParameterAddsUndefinedWithStrictNullChecks.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/defaultParameterAddsUndefinedWithStrictNullChecks.js.diff
@@ -1,68 +1,6 @@
 --- old.defaultParameterAddsUndefinedWithStrictNullChecks.js
 +++ new.defaultParameterAddsUndefinedWithStrictNullChecks.js
-@@= skipped -61, +61 lines =@@
-
-
- //// [defaultParameterAddsUndefinedWithStrictNullChecks.js]
--function f(addUndefined1, addUndefined2) {
--    if (addUndefined1 === void 0) { addUndefined1 = "J"; }
-+function f(addUndefined1 = "J", addUndefined2) {
-     return addUndefined1.length + (addUndefined2 || 0);
- }
--function g(addUndefined, addDefined) {
--    if (addUndefined === void 0) { addUndefined = "J"; }
-+function g(addUndefined = "J", addDefined) {
-     return addUndefined.length + addDefined;
- }
--var total = f() + f('a', 1) + f('b') + f(undefined, 2);
-+let total = f() + f('a', 1) + f('b') + f(undefined, 2);
- total = g('c', 3) + g(undefined, 4);
--function foo1(x, b) {
--    if (x === void 0) { x = "string"; }
-+function foo1(x = "string", b) {
-     x.length;
- }
--function foo2(x, b) {
--    if (x === void 0) { x = "string"; }
-+function foo2(x = "string", b) {
-     x.length; // ok, should be string
- }
--function foo3(x, b) {
--    if (x === void 0) { x = "string"; }
-+function foo3(x = "string", b) {
-     x.length; // ok, should be string
-     x = undefined;
- }
--function foo4(x, b) {
--    if (x === void 0) { x = undefined; }
-+function foo4(x = undefined, b) {
-     x; // should be string | undefined
-     x = undefined;
- }
--function allowsNull(val) {
--    if (val === void 0) { val = ""; }
-+function allowsNull(val = "") {
-     val = null;
-     val = 'string and null are both ok';
- }
-@@= skipped -39, +32 lines =@@
- foo2(undefined, 1);
- foo3(undefined, 1);
- foo4(undefined, 1);
--function removeUndefinedButNotFalse(x) {
--    if (x === void 0) { x = true; }
-+function removeUndefinedButNotFalse(x = true) {
-     if (x === false) {
-         return x;
-     }
- }
--function removeNothing(y) {
--    if (y === void 0) { y = cond ? true : undefined; }
-+function removeNothing(y = cond ? true : undefined) {
-     if (y !== undefined) {
-         if (y === false) {
-             return y;
-@@= skipped -19, +17 lines =@@
+@@= skipped -110, +110 lines =@@
 
  //// [defaultParameterAddsUndefinedWithStrictNullChecks.d.ts]
  declare function f(addUndefined1?: string, addUndefined2?: number): number;
diff --git a/testdata/baselines/reference/submodule/compiler/defaultParameterTrailingComments.js.diff b/testdata/baselines/reference/submodule/compiler/defaultParameterTrailingComments.js.diff
deleted file mode 100644
index 99bac7772b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/defaultParameterTrailingComments.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.defaultParameterTrailingComments.js
-+++ new.defaultParameterTrailingComments.js
-@@= skipped -7, +7 lines =@@
- function foo(defaultParam = 10 /*emit only once*/) {}
-
- //// [defaultParameterTrailingComments.js]
--var C = /** @class */ (function () {
--    function C(defaultParam /* Emit only once*/) {
--        if (defaultParam === void 0) { defaultParam = false; }
--    }
--    return C;
--}());
--function foo(defaultParam /*emit only once*/) {
--    if (defaultParam === void 0) { defaultParam = 10; }
-+class C {
-+    constructor(defaultParam = false /* Emit only once*/) { }
- }
-+function foo(defaultParam = 10 /*emit only once*/) { }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/defaultValueInConstructorOverload1.js.diff b/testdata/baselines/reference/submodule/compiler/defaultValueInConstructorOverload1.js.diff
deleted file mode 100644
index 19c1b8ceae..0000000000
--- a/testdata/baselines/reference/submodule/compiler/defaultValueInConstructorOverload1.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.defaultValueInConstructorOverload1.js
-+++ new.defaultValueInConstructorOverload1.js
-@@= skipped -7, +7 lines =@@
- }
-
- //// [defaultValueInConstructorOverload1.js]
--var C = /** @class */ (function () {
--    function C(x) {
--        if (x === void 0) { x = ''; }
-+class C {
-+    constructor(x = '') {
-     }
--    return C;
--}());
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/defaultValueInFunctionOverload1.js.diff b/testdata/baselines/reference/submodule/compiler/defaultValueInFunctionOverload1.js.diff
deleted file mode 100644
index 7459931564..0000000000
--- a/testdata/baselines/reference/submodule/compiler/defaultValueInFunctionOverload1.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.defaultValueInFunctionOverload1.js
-+++ new.defaultValueInFunctionOverload1.js
-@@= skipped -4, +4 lines =@@
- function foo(x = '') { }
-
- //// [defaultValueInFunctionOverload1.js]
--function foo(x) {
--    if (x === void 0) { x = ''; }
--}
-+function foo(x = '') { }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/definiteAssignmentOfDestructuredVariable.js.diff b/testdata/baselines/reference/submodule/compiler/definiteAssignmentOfDestructuredVariable.js.diff
index d45b610c23..cc0f7cc5f7 100644
--- a/testdata/baselines/reference/submodule/compiler/definiteAssignmentOfDestructuredVariable.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/definiteAssignmentOfDestructuredVariable.js.diff
@@ -1,22 +1,10 @@
 --- old.definiteAssignmentOfDestructuredVariable.js
 +++ new.definiteAssignmentOfDestructuredVariable.js
-@@= skipped -17, +17 lines =@@
- }
+@@= skipped -18, +18 lines =@@
 
  //// [definiteAssignmentOfDestructuredVariable.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.method = function () {
--        var _a = this.foo, a = _a.a, b = _a.b;
-+class C {
+ class C {
 +    foo;
-+    method() {
-+        let { a, b } = this.foo;
-         !(a && b);
-         a;
--    };
--    return C;
--}());
-+    }
-+}
\ No newline at end of file
+     method() {
+         let { a, b } = this.foo;
+         !(a && b);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/deleteReadonlyInStrictNullChecks.js.diff b/testdata/baselines/reference/submodule/compiler/deleteReadonlyInStrictNullChecks.js.diff
deleted file mode 100644
index d666c47b03..0000000000
--- a/testdata/baselines/reference/submodule/compiler/deleteReadonlyInStrictNullChecks.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.deleteReadonlyInStrictNullChecks.js
-+++ new.deleteReadonlyInStrictNullChecks.js
-@@= skipped -6, +6 lines =@@
-
-
- //// [deleteReadonlyInStrictNullChecks.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- delete Foo.name;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/dependencyViaImportAlias.js.diff b/testdata/baselines/reference/submodule/compiler/dependencyViaImportAlias.js.diff
index aa72ddf243..c13807f4b9 100644
--- a/testdata/baselines/reference/submodule/compiler/dependencyViaImportAlias.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/dependencyViaImportAlias.js.diff
@@ -9,11 +9,8 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.A = void 0;
--    var A = /** @class */ (function () {
--        function A() {
--        }
--        return A;
--    }());
+-    class A {
+-    }
 -    exports.A = A;
 -});
  //// [B.js]
diff --git a/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.js.diff b/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.js.diff
index 3be6e3e24e..6773e3172c 100644
--- a/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.js.diff
@@ -1,67 +1,24 @@
 --- old.derivedClassConstructorWithExplicitReturns01.js
 +++ new.derivedClassConstructorWithExplicitReturns01.js
-@@= skipped -35, +35 lines =@@
- }
+@@= skipped -36, +36 lines =@@
 
  //// [derivedClassConstructorWithExplicitReturns01.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C(value) {
--        this.cProp = 10;
-+class C {
+ class C {
 +    cProp = 10;
-+    foo() { return "this never gets used."; }
-+    constructor(value) {
+     foo() { return "this never gets used."; }
+     constructor(value) {
+-        this.cProp = 10;
          return {
              cProp: value,
--            foo: function () {
-+            foo() {
-                 return "well this looks kinda C-ish.";
-             }
-         };
+             foo() {
+@@= skipped -12, +12 lines =@@
      }
--    C.prototype.foo = function () { return "this never gets used."; };
--    return C;
--}());
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D(a) {
--        if (a === void 0) { a = 100; }
--        var _this = _super.call(this, a) || this;
--        _this.dProp = function () { return _this; };
-+}
-+class D extends C {
+ }
+ class D extends C {
 +    dProp = () => this;
-+    constructor(a = 100) {
-+        super(a);
+     constructor(a = 100) {
+         super(a);
+-        this.dProp = () => this;
          if (Math.random() < 0.5) {
              "You win!";
-             return {
-                 cProp: 1,
--                dProp: function () { return _this; },
--                foo: function () { return "You win!!!!!"; }
-+                dProp: () => this,
-+                foo() { return "You win!!!!!"; }
-             };
-         }
-         else
-             return null;
-     }
--    return D;
--}(C));
-+}
- //# sourceMappingURL=derivedClassConstructorWithExplicitReturns01.js.map
\ No newline at end of file
+             return {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.js.map.diff b/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.js.map.diff
index e1a4788d34..bc876ddc28 100644
--- a/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.js.map.diff
@@ -2,7 +2,7 @@
 +++ new.derivedClassConstructorWithExplicitReturns01.js.map
 @@= skipped -0, +0 lines =@@
  //// [derivedClassConstructorWithExplicitReturns01.js.map]
--{"version":3,"file":"derivedClassConstructorWithExplicitReturns01.js","sourceRoot":"","sources":["derivedClassConstructorWithExplicitReturns01.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;IAKI,WAAY,KAAa;QAJzB,UAAK,GAAG,EAAE,CAAC;QAKP,OAAO;YACH,KAAK,EAAE,KAAK;YACZ,GAAG;gBACC,OAAO,8BAA8B,CAAC;YAC1C,CAAC;SACJ,CAAA;IACL,CAAC;IATD,eAAG,GAAH,cAAQ,OAAO,uBAAuB,CAAC,CAAC,CAAC;IAU7C,QAAC;AAAD,CAAC,AAbD,IAaC;AAED;IAAgB,qBAAC;IAGb,WAAY,CAAO;QAAP,kBAAA,EAAA,OAAO;QACf,YAAA,MAAK,YAAC,CAAC,CAAC,SAAC;QAHb,WAAK,GAAG,cAAM,OAAA,KAAI,EAAJ,CAAI,CAAC;QAKf,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;YACtB,UAAU,CAAA;YACV,OAAO;gBACH,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,cAAM,OAAA,KAAI,EAAJ,CAAI;gBACjB,GAAG,gBAAK,OAAO,cAAc,CAAA,CAAC,CAAC;aAClC,CAAC;QACN,CAAC;;YAEG,OAAO,IAAI,CAAC;IACpB,CAAC;IACL,QAAC;AAAD,CAAC,AAjBD,CAAgB,CAAC,GAiBhB"}
--//// https://sokra.github.io/source-map-visualization#base64,dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTsNCiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgfTsNCiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpDQogICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsNCiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9DQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsNCiAgICB9Ow0KfSkoKTsNCnZhciBDID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkgew0KICAgIGZ1bmN0aW9uIEModmFsdWUpIHsNCiAgICAgICAgdGhpcy5jUHJvcCA9IDEwOw0KICAgICAgICByZXR1cm4gew0KICAgICAgICAgICAgY1Byb3A6IHZhbHVlLA0KICAgICAgICAgICAgZm9vOiBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICJ3ZWxsIHRoaXMgbG9va3Mga2luZGEgQy1pc2guIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCiAgICB9DQogICAgQy5wcm90b3R5cGUuZm9vID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gInRoaXMgbmV2ZXIgZ2V0cyB1c2VkLiI7IH07DQogICAgcmV0dXJuIEM7DQp9KCkpOw0KdmFyIEQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKEQsIF9zdXBlcik7DQogICAgZnVuY3Rpb24gRChhKSB7DQogICAgICAgIGlmIChhID09PSB2b2lkIDApIHsgYSA9IDEwMDsgfQ0KICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBhKSB8fCB0aGlzOw0KICAgICAgICBfdGhpcy5kUHJvcCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzOyB9Ow0KICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA8IDAuNSkgew0KICAgICAgICAgICAgIllvdSB3aW4hIjsNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAgICAgICAgY1Byb3A6IDEsDQogICAgICAgICAgICAgICAgZFByb3A6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzOyB9LA0KICAgICAgICAgICAgICAgIGZvbzogZnVuY3Rpb24gKCkgeyByZXR1cm4gIllvdSB3aW4hISEhISI7IH0NCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICAgICAgcmV0dXJuIG51bGw7DQogICAgfQ0KICAgIHJldHVybiBEOw0KfShDKSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1kZXJpdmVkQ2xhc3NDb25zdHJ1Y3RvcldpdGhFeHBsaWNpdFJldHVybnMwMS5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZlZENsYXNzQ29uc3RydWN0b3JXaXRoRXhwbGljaXRSZXR1cm5zMDEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXJpdmVkQ2xhc3NDb25zdHJ1Y3RvcldpdGhFeHBsaWNpdFJldHVybnMwMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtJQUtJLFdBQVksS0FBYTtRQUp6QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBS1AsT0FBTztZQUNILEtBQUssRUFBRSxLQUFLO1lBQ1osR0FBRztnQkFDQyxPQUFPLDhCQUE4QixDQUFDO1lBQzFDLENBQUM7U0FDSixDQUFBO0lBQ0wsQ0FBQztJQVRELGVBQUcsR0FBSCxjQUFRLE9BQU8sdUJBQXVCLENBQUMsQ0FBQyxDQUFDO0lBVTdDLFFBQUM7QUFBRCxDQUFDLEFBYkQsSUFhQztBQUVEO0lBQWdCLHFCQUFDO0lBR2IsV0FBWSxDQUFPO1FBQVAsa0JBQUEsRUFBQSxPQUFPO1FBQ2YsWUFBQSxNQUFLLFlBQUMsQ0FBQyxDQUFDLFNBQUM7UUFIYixXQUFLLEdBQUcsY0FBTSxPQUFBLEtBQUksRUFBSixDQUFJLENBQUM7UUFLZixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN0QixVQUFVLENBQUE7WUFDVixPQUFPO2dCQUNILEtBQUssRUFBRSxDQUFDO2dCQUNSLEtBQUssRUFBRSxjQUFNLE9BQUEsS0FBSSxFQUFKLENBQUk7Z0JBQ2pCLEdBQUcsZ0JBQUssT0FBTyxjQUFjLENBQUEsQ0FBQyxDQUFDO2FBQ2xDLENBQUM7UUFDTixDQUFDOztZQUVHLE9BQU8sSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFDTCxRQUFDO0FBQUQsQ0FBQyxBQWpCRCxDQUFnQixDQUFDLEdBaUJoQiJ9,Y2xhc3MgQyB7CiAgICBjUHJvcCA9IDEwOwoKICAgIGZvbygpIHsgcmV0dXJuICJ0aGlzIG5ldmVyIGdldHMgdXNlZC4iOyB9CgogICAgY29uc3RydWN0b3IodmFsdWU6IG51bWJlcikgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGNQcm9wOiB2YWx1ZSwKICAgICAgICAgICAgZm9vKCkgewogICAgICAgICAgICAgICAgcmV0dXJuICJ3ZWxsIHRoaXMgbG9va3Mga2luZGEgQy1pc2guIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKY2xhc3MgRCBleHRlbmRzIEMgewogICAgZFByb3AgPSAoKSA9PiB0aGlzOwoKICAgIGNvbnN0cnVjdG9yKGEgPSAxMDApIHsKICAgICAgICBzdXBlcihhKTsKCiAgICAgICAgaWYgKE1hdGgucmFuZG9tKCkgPCAwLjUpIHsKICAgICAgICAgICAgIllvdSB3aW4hIgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgY1Byb3A6IDEsCiAgICAgICAgICAgICAgICBkUHJvcDogKCkgPT4gdGhpcywKICAgICAgICAgICAgICAgIGZvbygpIHsgcmV0dXJuICJZb3Ugd2luISEhISEiIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQ==
+-{"version":3,"file":"derivedClassConstructorWithExplicitReturns01.js","sourceRoot":"","sources":["derivedClassConstructorWithExplicitReturns01.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC;IAGH,GAAG,KAAK,OAAO,uBAAuB,CAAC,CAAC,CAAC;IAEzC,YAAY,KAAa;QAJzB,UAAK,GAAG,EAAE,CAAC;QAKP,OAAO;YACH,KAAK,EAAE,KAAK;YACZ,GAAG;gBACC,OAAO,8BAA8B,CAAC;YAC1C,CAAC;SACJ,CAAA;IACL,CAAC;CACJ;AAED,MAAM,CAAE,SAAQ,CAAC;IAGb,YAAY,CAAC,GAAG,GAAG;QACf,KAAK,CAAC,CAAC,CAAC,CAAC;QAHb,UAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;QAKf,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;YACtB,UAAU,CAAA;YACV,OAAO;gBACH,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;gBACjB,GAAG,KAAK,OAAO,cAAc,CAAA,CAAC,CAAC;aAClC,CAAC;QACN,CAAC;;YAEG,OAAO,IAAI,CAAC;IACpB,CAAC;CACJ"}
+-//// https://sokra.github.io/source-map-visualization#base64,Y2xhc3MgQyB7DQogICAgZm9vKCkgeyByZXR1cm4gInRoaXMgbmV2ZXIgZ2V0cyB1c2VkLiI7IH0NCiAgICBjb25zdHJ1Y3Rvcih2YWx1ZSkgew0KICAgICAgICB0aGlzLmNQcm9wID0gMTA7DQogICAgICAgIHJldHVybiB7DQogICAgICAgICAgICBjUHJvcDogdmFsdWUsDQogICAgICAgICAgICBmb28oKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICJ3ZWxsIHRoaXMgbG9va3Mga2luZGEgQy1pc2guIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCiAgICB9DQp9DQpjbGFzcyBEIGV4dGVuZHMgQyB7DQogICAgY29uc3RydWN0b3IoYSA9IDEwMCkgew0KICAgICAgICBzdXBlcihhKTsNCiAgICAgICAgdGhpcy5kUHJvcCA9ICgpID0+IHRoaXM7DQogICAgICAgIGlmIChNYXRoLnJhbmRvbSgpIDwgMC41KSB7DQogICAgICAgICAgICAiWW91IHdpbiEiOw0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICBjUHJvcDogMSwNCiAgICAgICAgICAgICAgICBkUHJvcDogKCkgPT4gdGhpcywNCiAgICAgICAgICAgICAgICBmb28oKSB7IHJldHVybiAiWW91IHdpbiEhISEhIjsgfQ0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICB9DQp9DQovLyMgc291cmNlTWFwcGluZ1VSTD1kZXJpdmVkQ2xhc3NDb25zdHJ1Y3RvcldpdGhFeHBsaWNpdFJldHVybnMwMS5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZlZENsYXNzQ29uc3RydWN0b3JXaXRoRXhwbGljaXRSZXR1cm5zMDEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXJpdmVkQ2xhc3NDb25zdHJ1Y3RvcldpdGhFeHBsaWNpdFJldHVybnMwMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUM7SUFHSCxHQUFHLEtBQUssT0FBTyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7SUFFekMsWUFBWSxLQUFhO1FBSnpCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFLUCxPQUFPO1lBQ0gsS0FBSyxFQUFFLEtBQUs7WUFDWixHQUFHO2dCQUNDLE9BQU8sOEJBQThCLENBQUM7WUFDMUMsQ0FBQztTQUNKLENBQUE7SUFDTCxDQUFDO0NBQ0o7QUFFRCxNQUFNLENBQUUsU0FBUSxDQUFDO0lBR2IsWUFBWSxDQUFDLEdBQUcsR0FBRztRQUNmLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUhiLFVBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFLZixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN0QixVQUFVLENBQUE7WUFDVixPQUFPO2dCQUNILEtBQUssRUFBRSxDQUFDO2dCQUNSLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO2dCQUNqQixHQUFHLEtBQUssT0FBTyxjQUFjLENBQUEsQ0FBQyxDQUFDO2FBQ2xDLENBQUM7UUFDTixDQUFDOztZQUVHLE9BQU8sSUFBSSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiJ9,Y2xhc3MgQyB7CiAgICBjUHJvcCA9IDEwOwoKICAgIGZvbygpIHsgcmV0dXJuICJ0aGlzIG5ldmVyIGdldHMgdXNlZC4iOyB9CgogICAgY29uc3RydWN0b3IodmFsdWU6IG51bWJlcikgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGNQcm9wOiB2YWx1ZSwKICAgICAgICAgICAgZm9vKCkgewogICAgICAgICAgICAgICAgcmV0dXJuICJ3ZWxsIHRoaXMgbG9va3Mga2luZGEgQy1pc2guIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKY2xhc3MgRCBleHRlbmRzIEMgewogICAgZFByb3AgPSAoKSA9PiB0aGlzOwoKICAgIGNvbnN0cnVjdG9yKGEgPSAxMDApIHsKICAgICAgICBzdXBlcihhKTsKCiAgICAgICAgaWYgKE1hdGgucmFuZG9tKCkgPCAwLjUpIHsKICAgICAgICAgICAgIllvdSB3aW4hIgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgY1Byb3A6IDEsCiAgICAgICAgICAgICAgICBkUHJvcDogKCkgPT4gdGhpcywKICAgICAgICAgICAgICAgIGZvbygpIHsgcmV0dXJuICJZb3Ugd2luISEhISEiIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQ==
 +{"version":3,"file":"derivedClassConstructorWithExplicitReturns01.js","sourceRoot":"","sources":["derivedClassConstructorWithExplicitReturns01.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC;IACH,KAAK,GAAG,EAAE,CAAC;IAEX,GAAG,GAAG,EAAE,OAAO,uBAAuB,CAAC,CAAA,CAAE;IAEzC,YAAY,KAAa,EAAE;QACvB,OAAO;YACH,KAAK,EAAE,KAAK;YACZ,GAAG,GAAG;gBACF,OAAO,8BAA8B,CAAC;YAAA,CACzC;SACJ,CAAA;IAAA,CACJ;CACJ;AAED,MAAM,CAAE,SAAQ,CAAC;IACb,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IAEnB,YAAY,CAAC,GAAG,GAAG,EAAE;QACjB,KAAK,CAAC,CAAC,CAAC,CAAC;QAET,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;YACtB,UAAU,CAAA;YACV,OAAO;gBACH,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;gBACjB,GAAG,GAAG,EAAE,OAAO,cAAc,CAAA,CAAA,CAAE;aAClC,CAAC;QACN,CAAC;;YAEG,OAAO,IAAI,CAAC;IAAA,CACnB;CACJ"}
 +//// https://sokra.github.io/source-map-visualization#base64,Y2xhc3MgQyB7DQogICAgY1Byb3AgPSAxMDsNCiAgICBmb28oKSB7IHJldHVybiAidGhpcyBuZXZlciBnZXRzIHVzZWQuIjsgfQ0KICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7DQogICAgICAgIHJldHVybiB7DQogICAgICAgICAgICBjUHJvcDogdmFsdWUsDQogICAgICAgICAgICBmb28oKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICJ3ZWxsIHRoaXMgbG9va3Mga2luZGEgQy1pc2guIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCiAgICB9DQp9DQpjbGFzcyBEIGV4dGVuZHMgQyB7DQogICAgZFByb3AgPSAoKSA9PiB0aGlzOw0KICAgIGNvbnN0cnVjdG9yKGEgPSAxMDApIHsNCiAgICAgICAgc3VwZXIoYSk7DQogICAgICAgIGlmIChNYXRoLnJhbmRvbSgpIDwgMC41KSB7DQogICAgICAgICAgICAiWW91IHdpbiEiOw0KICAgICAgICAgICAgcmV0dXJuIHsNCiAgICAgICAgICAgICAgICBjUHJvcDogMSwNCiAgICAgICAgICAgICAgICBkUHJvcDogKCkgPT4gdGhpcywNCiAgICAgICAgICAgICAgICBmb28oKSB7IHJldHVybiAiWW91IHdpbiEhISEhIjsgfQ0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgICAgICByZXR1cm4gbnVsbDsNCiAgICB9DQp9DQovLyMgc291cmNlTWFwcGluZ1VSTD1kZXJpdmVkQ2xhc3NDb25zdHJ1Y3RvcldpdGhFeHBsaWNpdFJldHVybnMwMS5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZlZENsYXNzQ29uc3RydWN0b3JXaXRoRXhwbGljaXRSZXR1cm5zMDEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXJpdmVkQ2xhc3NDb25zdHJ1Y3RvcldpdGhFeHBsaWNpdFJldHVybnMwMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUM7SUFDSCxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRVgsR0FBRyxHQUFHLEVBQUUsT0FBTyx1QkFBdUIsQ0FBQyxDQUFBLENBQUU7SUFFekMsWUFBWSxLQUFhLEVBQUU7UUFDdkIsT0FBTztZQUNILEtBQUssRUFBRSxLQUFLO1lBQ1osR0FBRyxHQUFHO2dCQUNGLE9BQU8sOEJBQThCLENBQUM7WUFBQSxDQUN6QztTQUNKLENBQUE7SUFBQSxDQUNKO0NBQ0o7QUFFRCxNQUFNLENBQUUsU0FBUSxDQUFDO0lBQ2IsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUVuQixZQUFZLENBQUMsR0FBRyxHQUFHLEVBQUU7UUFDakIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRVQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDdEIsVUFBVSxDQUFBO1lBQ1YsT0FBTztnQkFDSCxLQUFLLEVBQUUsQ0FBQztnQkFDUixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtnQkFDakIsR0FBRyxHQUFHLEVBQUUsT0FBTyxjQUFjLENBQUEsQ0FBQSxDQUFFO2FBQ2xDLENBQUM7UUFDTixDQUFDOztZQUVHLE9BQU8sSUFBSSxDQUFDO0lBQUEsQ0FDbkI7Q0FDSiJ9,Y2xhc3MgQyB7CiAgICBjUHJvcCA9IDEwOwoKICAgIGZvbygpIHsgcmV0dXJuICJ0aGlzIG5ldmVyIGdldHMgdXNlZC4iOyB9CgogICAgY29uc3RydWN0b3IodmFsdWU6IG51bWJlcikgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGNQcm9wOiB2YWx1ZSwKICAgICAgICAgICAgZm9vKCkgewogICAgICAgICAgICAgICAgcmV0dXJuICJ3ZWxsIHRoaXMgbG9va3Mga2luZGEgQy1pc2guIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKY2xhc3MgRCBleHRlbmRzIEMgewogICAgZFByb3AgPSAoKSA9PiB0aGlzOwoKICAgIGNvbnN0cnVjdG9yKGEgPSAxMDApIHsKICAgICAgICBzdXBlcihhKTsKCiAgICAgICAgaWYgKE1hdGgucmFuZG9tKCkgPCAwLjUpIHsKICAgICAgICAgICAgIllvdSB3aW4hIgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgY1Byb3A6IDEsCiAgICAgICAgICAgICAgICBkUHJvcDogKCkgPT4gdGhpcywKICAgICAgICAgICAgICAgIGZvbygpIHsgcmV0dXJuICJZb3Ugd2luISEhISEiIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQ==
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.sourcemap.txt.diff
index faeed51d04..2ba14a1617 100644
--- a/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/derivedClassConstructorWithExplicitReturns01.sourcemap.txt.diff
@@ -1,63 +1,18 @@
 --- old.derivedClassConstructorWithExplicitReturns01.sourcemap.txt
 +++ new.derivedClassConstructorWithExplicitReturns01.sourcemap.txt
-@@= skipped -7, +7 lines =@@
- emittedFile:derivedClassConstructorWithExplicitReturns01.js
- sourceFile:derivedClassConstructorWithExplicitReturns01.ts
- -------------------------------------------------------------------
-->>>var __extends = (this && this.__extends) || (function () {
-->>>    var extendStatics = function (d, b) {
-->>>        extendStatics = Object.setPrototypeOf ||
-->>>            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-->>>            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
-->>>        return extendStatics(d, b);
-->>>    };
-->>>    return function (d, b) {
-->>>        if (typeof b !== "function" && b !== null)
-->>>            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-->>>        extendStatics(d, b);
-->>>        function __() { this.constructor = d; }
-->>>        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-->>>    };
-->>>})();
-->>>var C = /** @class */ (function () {
--1 >
--2 >^^^^^^^^^^^^^^^^^^^^^^^^->
--1 >
--1 >Emitted(16, 1) Source(1, 1) + SourceIndex(0)
-----
-->>>    function C(value) {
--1->^^^^
--2 >    ^^^^^^^^^^^
--3 >               ^^^^^
--4 >                    ^^^^^->
--1->class C {
--  >    cProp = 10;
--  >
--  >    foo() { return "this never gets used."; }
--  >
--  >    
--2 >    constructor(
--3 >               value: number
--1->Emitted(17, 5) Source(6, 5) + SourceIndex(0)
--2 >Emitted(17, 16) Source(6, 17) + SourceIndex(0)
--3 >Emitted(17, 21) Source(6, 30) + SourceIndex(0)
-----
-->>>        this.cProp = 10;
--1->^^^^^^^^
--2 >        ^^^^^^^^^^
--3 >                  ^^^
-+>>>class C {
-+1 >
-+2 >^^^^^^
-+3 >      ^
+@@= skipped -11, +11 lines =@@
+ 1 >
+ 2 >^^^^^^
+ 3 >      ^
+-4 >       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
 +4 >       ^^^^^^^^^->
-+1 >
-+2 >class 
-+3 >      C
-+1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
-+2 >Emitted(1, 7) Source(1, 7) + SourceIndex(0)
-+3 >Emitted(1, 8) Source(1, 8) + SourceIndex(0)
-+---
+ 1 >
+ 2 >class 
+ 3 >      C
+@@= skipped -8, +8 lines =@@
+ 2 >Emitted(1, 7) Source(1, 7) + SourceIndex(0)
+ 3 >Emitted(1, 8) Source(1, 8) + SourceIndex(0)
+ ---
 +>>>    cProp = 10;
 +1->^^^^
 +2 >    ^^^^^
@@ -77,9 +32,17 @@
 +4 >Emitted(2, 15) Source(2, 15) + SourceIndex(0)
 +5 >Emitted(2, 16) Source(2, 16) + SourceIndex(0)
 +---
-+>>>    foo() { return "this never gets used."; }
-+1->^^^^
-+2 >    ^^^
+ >>>    foo() { return "this never gets used."; }
+ 1->^^^^
+ 2 >    ^^^
+-3 >       ^^^^^
+-4 >            ^^^^^^^
+-5 >                   ^^^^^^^^^^^^^^^^^^^^^^^
+-6 >                                          ^
+-7 >                                           ^
+-8 >                                            ^
+-1-> {
+-  >    cProp = 10;
 +3 >       ^^^
 +4 >          ^^
 +5 >            ^^^^^^^
@@ -88,9 +51,23 @@
 +8 >                                           ^
 +9 >                                            ^
 +1->
-+  >
-+  >    
-+2 >    foo
+   >
+   >    
+ 2 >    foo
+-3 >       () { 
+-4 >            return 
+-5 >                   "this never gets used."
+-6 >                                          ;
+-7 >                                            
+-8 >                                            }
+-1->Emitted(2, 5) Source(4, 5) + SourceIndex(0)
+-2 >Emitted(2, 8) Source(4, 8) + SourceIndex(0)
+-3 >Emitted(2, 13) Source(4, 13) + SourceIndex(0)
+-4 >Emitted(2, 20) Source(4, 20) + SourceIndex(0)
+-5 >Emitted(2, 43) Source(4, 43) + SourceIndex(0)
+-6 >Emitted(2, 44) Source(4, 44) + SourceIndex(0)
+-7 >Emitted(2, 45) Source(4, 45) + SourceIndex(0)
+-8 >Emitted(2, 46) Source(4, 46) + SourceIndex(0)
 +3 >       () 
 +4 >          { 
 +5 >            return 
@@ -107,11 +84,25 @@
 +7 >Emitted(3, 44) Source(4, 44) + SourceIndex(0)
 +8 >Emitted(3, 45) Source(4, 44) + SourceIndex(0)
 +9 >Emitted(3, 46) Source(4, 46) + SourceIndex(0)
-+---
-+>>>    constructor(value) {
-+1 >^^^^
-+2 >    ^^^^^^^^^^^^
-+3 >                ^^^^^
+ ---
+ >>>    constructor(value) {
+ 1 >^^^^
+ 2 >    ^^^^^^^^^^^^
+ 3 >                ^^^^^
+-4 >                     ^^^^->
+-1 >
+-  >
+-  >    
+-2 >    constructor(
+-3 >                value: number
+-1 >Emitted(3, 5) Source(6, 5) + SourceIndex(0)
+-2 >Emitted(3, 17) Source(6, 17) + SourceIndex(0)
+-3 >Emitted(3, 22) Source(6, 30) + SourceIndex(0)
+----
+->>>        this.cProp = 10;
+-1->^^^^^^^^
+-2 >        ^^^^^^^^^^
+-3 >                  ^^^
  4 >                     ^^
 -5 >                       ^
 -1->
@@ -119,11 +110,11 @@
 -3 >                   = 
 -4 >                     10
 -5 >                       ;
--1->Emitted(18, 9) Source(2, 5) + SourceIndex(0)
--2 >Emitted(18, 19) Source(2, 10) + SourceIndex(0)
--3 >Emitted(18, 22) Source(2, 13) + SourceIndex(0)
--4 >Emitted(18, 24) Source(2, 15) + SourceIndex(0)
--5 >Emitted(18, 25) Source(2, 16) + SourceIndex(0)
+-1->Emitted(4, 9) Source(2, 5) + SourceIndex(0)
+-2 >Emitted(4, 19) Source(2, 10) + SourceIndex(0)
+-3 >Emitted(4, 22) Source(2, 13) + SourceIndex(0)
+-4 >Emitted(4, 24) Source(2, 15) + SourceIndex(0)
+-5 >Emitted(4, 25) Source(2, 16) + SourceIndex(0)
 +1 >
 +  >
 +  >    
@@ -147,48 +138,20 @@
 +1 >{
    >        
  2 >        return 
--1 >Emitted(19, 9) Source(7, 9) + SourceIndex(0)
--2 >Emitted(19, 16) Source(7, 16) + SourceIndex(0)
-+1 >Emitted(5, 9) Source(7, 9) + SourceIndex(0)
-+2 >Emitted(5, 16) Source(7, 16) + SourceIndex(0)
- ---
- >>>            cProp: value,
- 1->^^^^^^^^^^^^
- 2 >            ^^^^^
- 3 >                 ^^
- 4 >                   ^^^^^
--5 >                        ^^^^^^^->
- 1->{
-   >            
- 2 >            cProp
- 3 >                 : 
- 4 >                   value
--1->Emitted(20, 13) Source(8, 13) + SourceIndex(0)
--2 >Emitted(20, 18) Source(8, 18) + SourceIndex(0)
--3 >Emitted(20, 20) Source(8, 20) + SourceIndex(0)
--4 >Emitted(20, 25) Source(8, 25) + SourceIndex(0)
-+1->Emitted(6, 13) Source(8, 13) + SourceIndex(0)
-+2 >Emitted(6, 18) Source(8, 18) + SourceIndex(0)
-+3 >Emitted(6, 20) Source(8, 20) + SourceIndex(0)
-+4 >Emitted(6, 25) Source(8, 25) + SourceIndex(0)
- ---
-->>>            foo: function () {
--1->^^^^^^^^^^^^
-+>>>            foo() {
-+1 >^^^^^^^^^^^^
+ 1 >Emitted(5, 9) Source(7, 9) + SourceIndex(0)
+@@= skipped -92, +94 lines =@@
+ >>>            foo() {
+ 1 >^^^^^^^^^^^^
  2 >            ^^^
 -3 >               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
--1->,
 +3 >               ^^^
 +4 >                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
-+1 >,
+ 1 >,
    >            
  2 >            foo
--1->Emitted(21, 13) Source(9, 13) + SourceIndex(0)
--2 >Emitted(21, 16) Source(9, 16) + SourceIndex(0)
 +3 >               () 
-+1 >Emitted(7, 13) Source(9, 13) + SourceIndex(0)
-+2 >Emitted(7, 16) Source(9, 16) + SourceIndex(0)
+ 1 >Emitted(7, 13) Source(9, 13) + SourceIndex(0)
+ 2 >Emitted(7, 16) Source(9, 16) + SourceIndex(0)
 +3 >Emitted(7, 19) Source(9, 19) + SourceIndex(0)
  ---
  >>>                return "well this looks kinda C-ish.";
@@ -201,180 +164,45 @@
    >                
  2 >                return 
  3 >                       "well this looks kinda C-ish."
- 4 >                                                     ;
--1->Emitted(22, 17) Source(10, 17) + SourceIndex(0)
--2 >Emitted(22, 24) Source(10, 24) + SourceIndex(0)
--3 >Emitted(22, 54) Source(10, 54) + SourceIndex(0)
--4 >Emitted(22, 55) Source(10, 55) + SourceIndex(0)
-+1->Emitted(8, 17) Source(10, 17) + SourceIndex(0)
-+2 >Emitted(8, 24) Source(10, 24) + SourceIndex(0)
-+3 >Emitted(8, 54) Source(10, 54) + SourceIndex(0)
-+4 >Emitted(8, 55) Source(10, 55) + SourceIndex(0)
- ---
- >>>            }
+@@= skipped -26, +29 lines =@@
  1 >^^^^^^^^^^^^
  2 >            ^
  1 >
 -  >            
 -2 >            }
--1 >Emitted(23, 13) Source(11, 13) + SourceIndex(0)
--2 >Emitted(23, 14) Source(11, 14) + SourceIndex(0)
+-1 >Emitted(9, 13) Source(11, 13) + SourceIndex(0)
 +2 >            
 +  >                        }
 +1 >Emitted(9, 13) Source(10, 55) + SourceIndex(0)
-+2 >Emitted(9, 14) Source(11, 14) + SourceIndex(0)
+ 2 >Emitted(9, 14) Source(11, 14) + SourceIndex(0)
  ---
  >>>        };
- 1 >^^^^^^^^^
-@@= skipped -125, +146 lines =@@
- 1 >
-   >        }
- 2 >         
--1 >Emitted(24, 10) Source(12, 10) + SourceIndex(0)
--2 >Emitted(24, 11) Source(12, 10) + SourceIndex(0)
-+1 >Emitted(10, 10) Source(12, 10) + SourceIndex(0)
-+2 >Emitted(10, 11) Source(12, 10) + SourceIndex(0)
- ---
- >>>    }
+@@= skipped -18, +18 lines =@@
  1 >^^^^
  2 >    ^
--3 >     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
--1 >
+ 1 >
 -  >    
 -2 >    }
--1 >Emitted(25, 5) Source(13, 5) + SourceIndex(0)
--2 >Emitted(25, 6) Source(13, 6) + SourceIndex(0)
-----
-->>>    C.prototype.foo = function () { return "this never gets used."; };
--1->^^^^
--2 >    ^^^^^^^^^^^^^^^
--3 >                   ^^^
--4 >                      ^^^^^^^^^^^^^^
--5 >                                    ^^^^^^^
--6 >                                           ^^^^^^^^^^^^^^^^^^^^^^^
--7 >                                                                  ^
--8 >                                                                   ^
--9 >                                                                    ^
--1->
--2 >    foo
--3 >                   
--4 >                      foo() { 
--5 >                                    return 
--6 >                                           "this never gets used."
--7 >                                                                  ;
--8 >                                                                    
--9 >                                                                    }
--1->Emitted(26, 5) Source(4, 5) + SourceIndex(0)
--2 >Emitted(26, 20) Source(4, 8) + SourceIndex(0)
--3 >Emitted(26, 23) Source(4, 5) + SourceIndex(0)
--4 >Emitted(26, 37) Source(4, 13) + SourceIndex(0)
--5 >Emitted(26, 44) Source(4, 20) + SourceIndex(0)
--6 >Emitted(26, 67) Source(4, 43) + SourceIndex(0)
--7 >Emitted(26, 68) Source(4, 44) + SourceIndex(0)
--8 >Emitted(26, 69) Source(4, 45) + SourceIndex(0)
--9 >Emitted(26, 70) Source(4, 46) + SourceIndex(0)
-----
-->>>    return C;
--1 >^^^^
--2 >    ^^^^^^^^
--1 >
--  >
--  >    constructor(value: number) {
--  >        return {
--  >            cProp: value,
--  >            foo() {
--  >                return "well this looks kinda C-ish.";
--  >            }
-+1 >
+-1 >Emitted(11, 5) Source(13, 5) + SourceIndex(0)
 +2 >    
-   >        }
--  >    }
--  >
--2 >    }
--1 >Emitted(27, 5) Source(14, 1) + SourceIndex(0)
--2 >Emitted(27, 13) Source(14, 2) + SourceIndex(0)
-----
-->>>}());
--1 >
--2 >^
--3 > 
--4 > ^^^^
--5 >     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
--1 >
--2 >}
--3 > 
--4 > class C {
--  >     cProp = 10;
--  > 
--  >     foo() { return "this never gets used."; }
--  > 
--  >     constructor(value: number) {
--  >         return {
--  >             cProp: value,
--  >             foo() {
--  >                 return "well this looks kinda C-ish.";
--  >             }
--  >         }
--  >     }
--  > }
--1 >Emitted(28, 1) Source(14, 1) + SourceIndex(0)
--2 >Emitted(28, 2) Source(14, 2) + SourceIndex(0)
--3 >Emitted(28, 2) Source(1, 1) + SourceIndex(0)
--4 >Emitted(28, 6) Source(14, 2) + SourceIndex(0)
-----
-->>>var D = /** @class */ (function (_super) {
--1->
--2 >^^^^^^^^^^^^^^^^^^^^^^^^^^->
--1->
--  >
--  >
--1->Emitted(29, 1) Source(16, 1) + SourceIndex(0)
-----
-->>>    __extends(D, _super);
--1->^^^^
--2 >    ^^^^^^^^^^^^^^^^^^^^^
--1->class D extends 
--2 >    C
--1->Emitted(30, 5) Source(16, 17) + SourceIndex(0)
--2 >Emitted(30, 26) Source(16, 18) + SourceIndex(0)
-----
-->>>    function D(a) {
--1 >^^^^
--2 >    ^^^^^^^^^^^
--3 >               ^
--4 >                ^^^^^^^^^^^^^^^^^^^^^^^->
--1 > {
--  >    dProp = () => this;
++  >        }
 +1 >Emitted(11, 5) Source(12, 10) + SourceIndex(0)
-+2 >Emitted(11, 6) Source(13, 6) + SourceIndex(0)
-+---
-+>>>}
-+1 >^
-+2 > ^^^^^^^^^^^^^^^^^^^->
-+1 >
-+  >}
-+1 >Emitted(12, 2) Source(14, 2) + SourceIndex(0)
-+---
-+>>>class D extends C {
-+1->
-+2 >^^^^^^
-+3 >      ^
-+4 >       ^^^^^^^^^
-+5 >                ^
+ 2 >Emitted(11, 6) Source(13, 6) + SourceIndex(0)
+ ---
+ >>>}
+@@= skipped -18, +18 lines =@@
+ 3 >      ^
+ 4 >       ^^^^^^^^^
+ 5 >                ^
+-6 >                 ^^^^^^^^^^->
 +6 >                 ^^^^^^^->
-+1->
-+  >
-+  >
-+2 >class 
-+3 >      D 
-+4 >       extends 
-+5 >                C
-+1->Emitted(13, 1) Source(16, 1) + SourceIndex(0)
-+2 >Emitted(13, 7) Source(16, 7) + SourceIndex(0)
-+3 >Emitted(13, 8) Source(16, 9) + SourceIndex(0)
-+4 >Emitted(13, 17) Source(16, 17) + SourceIndex(0)
-+5 >Emitted(13, 18) Source(16, 18) + SourceIndex(0)
-+---
+ 1->
+   >
+   >
+@@= skipped -14, +14 lines =@@
+ 4 >Emitted(13, 17) Source(16, 17) + SourceIndex(0)
+ 5 >Emitted(13, 18) Source(16, 18) + SourceIndex(0)
+ ---
 +>>>    dProp = () => this;
 +1->^^^^
 +2 >    ^^^^^
@@ -403,50 +231,27 @@
 +7 >Emitted(14, 23) Source(17, 23) + SourceIndex(0)
 +8 >Emitted(14, 24) Source(17, 24) + SourceIndex(0)
 +---
-+>>>    constructor(a = 100) {
-+1->^^^^
-+2 >    ^^^^^^^^^^^^
-+3 >                ^
-+4 >                 ^^^
-+5 >                    ^^^
+ >>>    constructor(a = 100) {
+ 1->^^^^
+ 2 >    ^^^^^^^^^^^^
+ 3 >                ^
+ 4 >                 ^^^
+ 5 >                    ^^^
+-1-> {
+-  >    dProp = () => this;
 +6 >                       ^^
 +1->
    >
    >    
  2 >    constructor(
--3 >               a = 100
--1 >Emitted(31, 5) Source(19, 5) + SourceIndex(0)
--2 >Emitted(31, 16) Source(19, 17) + SourceIndex(0)
--3 >Emitted(31, 17) Source(19, 24) + SourceIndex(0)
-----
-->>>        if (a === void 0) { a = 100; }
--1->^^^^^^^^
--2 >        ^^^^^^^^^^^^^^^^^^
--3 >                          ^^
--4 >                            ^^^^^^^
--5 >                                   ^^^^^^^^^^^^^^^->
--1->
--2 >        
--3 >                          
--4 >                            a = 100
--1->Emitted(32, 9) Source(19, 17) + SourceIndex(0)
--2 >Emitted(32, 27) Source(19, 17) + SourceIndex(0)
--3 >Emitted(32, 29) Source(19, 17) + SourceIndex(0)
--4 >Emitted(32, 36) Source(19, 24) + SourceIndex(0)
-----
-->>>        var _this = _super.call(this, a) || this;
--1->^^^^^^^^
--2 >        ^^^^^^^^^^^^
--3 >                    ^^^^^^
--4 >                          ^^^^^^^^^^^^
--5 >                                      ^
--6 >                                       ^
--7 >                                        ^^^^^^^^^
--8 >                                                 ^^^^->
--1->) {
-+3 >                a
-+4 >                  = 
-+5 >                    100
+ 3 >                a
+ 4 >                  = 
+ 5 >                    100
+-1->Emitted(14, 5) Source(19, 5) + SourceIndex(0)
+-2 >Emitted(14, 17) Source(19, 17) + SourceIndex(0)
+-3 >Emitted(14, 18) Source(19, 18) + SourceIndex(0)
+-4 >Emitted(14, 21) Source(19, 21) + SourceIndex(0)
+-5 >Emitted(14, 24) Source(19, 24) + SourceIndex(0)
 +6 >                       ) 
 +1->Emitted(15, 5) Source(19, 5) + SourceIndex(0)
 +2 >Emitted(15, 17) Source(19, 17) + SourceIndex(0)
@@ -454,64 +259,56 @@
 +4 >Emitted(15, 21) Source(19, 21) + SourceIndex(0)
 +5 >Emitted(15, 24) Source(19, 24) + SourceIndex(0)
 +6 >Emitted(15, 26) Source(19, 26) + SourceIndex(0)
-+---
-+>>>        super(a);
-+1 >^^^^^^^^
-+2 >        ^^^^^
-+3 >             ^
-+4 >              ^
-+5 >               ^
-+6 >                ^
+ ---
+ >>>        super(a);
+ 1 >^^^^^^^^
+@@= skipped -27, +57 lines =@@
+ 4 >              ^
+ 5 >               ^
+ 6 >                ^
+-7 >                 ^^^^^^^^^^^^^^^^->
+-1 >) {
 +7 >                 ^^^^^^^^^^^^^^^^^^->
 +1 >{
    >        
--2 >        
--3 >                    super
--4 >                          (
--5 >                                      a
--6 >                                       )
--7 >                                        ;
--1->Emitted(33, 9) Source(20, 9) + SourceIndex(0)
--2 >Emitted(33, 21) Source(20, 9) + SourceIndex(0)
--3 >Emitted(33, 27) Source(20, 14) + SourceIndex(0)
--4 >Emitted(33, 39) Source(20, 15) + SourceIndex(0)
--5 >Emitted(33, 40) Source(20, 16) + SourceIndex(0)
--6 >Emitted(33, 41) Source(20, 17) + SourceIndex(0)
--7 >Emitted(33, 50) Source(20, 18) + SourceIndex(0)
+ 2 >        super
+ 3 >             (
+ 4 >              a
+ 5 >               )
+ 6 >                ;
+-1 >Emitted(15, 9) Source(20, 9) + SourceIndex(0)
+-2 >Emitted(15, 14) Source(20, 14) + SourceIndex(0)
+-3 >Emitted(15, 15) Source(20, 15) + SourceIndex(0)
+-4 >Emitted(15, 16) Source(20, 16) + SourceIndex(0)
+-5 >Emitted(15, 17) Source(20, 17) + SourceIndex(0)
+-6 >Emitted(15, 18) Source(20, 18) + SourceIndex(0)
 ----
-->>>        _this.dProp = function () { return _this; };
+->>>        this.dProp = () => this;
 -1->^^^^^^^^
--2 >        ^^^^^^^^^^^
--3 >                   ^^^
--4 >                      ^^^^^^^^^^^^^^
--5 >                                    ^^^^^^^
--6 >                                           ^^^^^
--7 >                                                ^^
--8 >                                                  ^
--9 >                                                   ^
+-2 >        ^^^^^^^^^^
+-3 >                  ^^^
+-4 >                     ^^^
+-5 >                        ^^
+-6 >                          ^
+-7 >                           ^^^^
+-8 >                               ^
+-9 >                                ^^^->
 -1->
 -2 >        dProp
--3 >                    = 
--4 >                      () => 
--5 >                                    
--6 >                                           this
--7 >                                                
--8 >                                                  this
--9 >                                                   ;
--1->Emitted(34, 9) Source(17, 5) + SourceIndex(0)
--2 >Emitted(34, 20) Source(17, 10) + SourceIndex(0)
--3 >Emitted(34, 23) Source(17, 13) + SourceIndex(0)
--4 >Emitted(34, 37) Source(17, 19) + SourceIndex(0)
--5 >Emitted(34, 44) Source(17, 19) + SourceIndex(0)
--6 >Emitted(34, 49) Source(17, 23) + SourceIndex(0)
--7 >Emitted(34, 51) Source(17, 19) + SourceIndex(0)
--8 >Emitted(34, 52) Source(17, 23) + SourceIndex(0)
--9 >Emitted(34, 53) Source(17, 24) + SourceIndex(0)
-+2 >        super
-+3 >             (
-+4 >              a
-+5 >               )
-+6 >                ;
+-3 >                   = 
+-4 >                     () 
+-5 >                        =>
+-6 >                           
+-7 >                           this
+-8 >                               ;
+-1->Emitted(16, 9) Source(17, 5) + SourceIndex(0)
+-2 >Emitted(16, 19) Source(17, 10) + SourceIndex(0)
+-3 >Emitted(16, 22) Source(17, 13) + SourceIndex(0)
+-4 >Emitted(16, 25) Source(17, 16) + SourceIndex(0)
+-5 >Emitted(16, 27) Source(17, 18) + SourceIndex(0)
+-6 >Emitted(16, 28) Source(17, 19) + SourceIndex(0)
+-7 >Emitted(16, 32) Source(17, 23) + SourceIndex(0)
+-8 >Emitted(16, 33) Source(17, 24) + SourceIndex(0)
 +1 >Emitted(16, 9) Source(20, 9) + SourceIndex(0)
 +2 >Emitted(16, 14) Source(20, 14) + SourceIndex(0)
 +3 >Emitted(16, 15) Source(20, 15) + SourceIndex(0)
@@ -520,148 +317,27 @@
 +6 >Emitted(16, 18) Source(20, 18) + SourceIndex(0)
  ---
  >>>        if (Math.random() < 0.5) {
--1 >^^^^^^^^
-+1->^^^^^^^^
- 2 >        ^^^^
- 3 >            ^^^^
- 4 >                ^
-@@= skipped -199, +122 lines =@@
- 8 >                            ^^^
- 9 >                               ^^
+ 1->^^^^^^^^
+@@= skipped -55, +28 lines =@@
  10>                                 ^
--1 >
--  >
+ 1->
+   >
 -  >    constructor(a = 100) {
 -  >        super(a);
-+1->
-   >
+-  >
    >        
  2 >        if (
-@@= skipped -15, +12 lines =@@
- 8 >                            0.5
- 9 >                               ) 
- 10>                                 {
--1 >Emitted(35, 9) Source(22, 9) + SourceIndex(0)
--2 >Emitted(35, 13) Source(22, 13) + SourceIndex(0)
--3 >Emitted(35, 17) Source(22, 17) + SourceIndex(0)
--4 >Emitted(35, 18) Source(22, 18) + SourceIndex(0)
--5 >Emitted(35, 24) Source(22, 24) + SourceIndex(0)
--6 >Emitted(35, 26) Source(22, 26) + SourceIndex(0)
--7 >Emitted(35, 29) Source(22, 29) + SourceIndex(0)
--8 >Emitted(35, 32) Source(22, 32) + SourceIndex(0)
--9 >Emitted(35, 34) Source(22, 34) + SourceIndex(0)
--10>Emitted(35, 35) Source(22, 35) + SourceIndex(0)
-+1->Emitted(17, 9) Source(22, 9) + SourceIndex(0)
-+2 >Emitted(17, 13) Source(22, 13) + SourceIndex(0)
-+3 >Emitted(17, 17) Source(22, 17) + SourceIndex(0)
-+4 >Emitted(17, 18) Source(22, 18) + SourceIndex(0)
-+5 >Emitted(17, 24) Source(22, 24) + SourceIndex(0)
-+6 >Emitted(17, 26) Source(22, 26) + SourceIndex(0)
-+7 >Emitted(17, 29) Source(22, 29) + SourceIndex(0)
-+8 >Emitted(17, 32) Source(22, 32) + SourceIndex(0)
-+9 >Emitted(17, 34) Source(22, 34) + SourceIndex(0)
-+10>Emitted(17, 35) Source(22, 35) + SourceIndex(0)
- ---
- >>>            "You win!";
- 1 >^^^^^^^^^^^^
-@@= skipped -19, +19 lines =@@
-   >            
- 2 >            "You win!"
- 3 >                      
--1 >Emitted(36, 13) Source(23, 13) + SourceIndex(0)
--2 >Emitted(36, 23) Source(23, 23) + SourceIndex(0)
--3 >Emitted(36, 24) Source(23, 23) + SourceIndex(0)
-+1 >Emitted(18, 13) Source(23, 13) + SourceIndex(0)
-+2 >Emitted(18, 23) Source(23, 23) + SourceIndex(0)
-+3 >Emitted(18, 24) Source(23, 23) + SourceIndex(0)
- ---
- >>>            return {
- 1 >^^^^^^^^^^^^
-@@= skipped -11, +11 lines =@@
- 1 >
-   >            
- 2 >            return 
--1 >Emitted(37, 13) Source(24, 13) + SourceIndex(0)
--2 >Emitted(37, 20) Source(24, 20) + SourceIndex(0)
-+1 >Emitted(19, 13) Source(24, 13) + SourceIndex(0)
-+2 >Emitted(19, 20) Source(24, 20) + SourceIndex(0)
- ---
- >>>                cProp: 1,
- 1->^^^^^^^^^^^^^^^^
- 2 >                ^^^^^
- 3 >                     ^^
- 4 >                       ^
--5 >                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
-+5 >                        ^^^^^^^^^^^->
- 1->{
-   >                
- 2 >                cProp
- 3 >                     : 
- 4 >                       1
--1->Emitted(38, 17) Source(25, 17) + SourceIndex(0)
--2 >Emitted(38, 22) Source(25, 22) + SourceIndex(0)
--3 >Emitted(38, 24) Source(25, 24) + SourceIndex(0)
--4 >Emitted(38, 25) Source(25, 25) + SourceIndex(0)
-+1->Emitted(20, 17) Source(25, 17) + SourceIndex(0)
-+2 >Emitted(20, 22) Source(25, 22) + SourceIndex(0)
-+3 >Emitted(20, 24) Source(25, 24) + SourceIndex(0)
-+4 >Emitted(20, 25) Source(25, 25) + SourceIndex(0)
- ---
-->>>                dProp: function () { return _this; },
-+>>>                dProp: () => this,
- 1->^^^^^^^^^^^^^^^^
- 2 >                ^^^^^
- 3 >                     ^^
--4 >                       ^^^^^^^^^^^^^^
--5 >                                     ^^^^^^^
--6 >                                            ^^^^^
--7 >                                                 ^^
--8 >                                                   ^
--9 >                                                    ^^^^^^^^->
-+4 >                       ^^^
-+5 >                          ^^
-+6 >                            ^
-+7 >                             ^^^^
-+8 >                                 ^^^^^^^^^^^^^^^^->
- 1->,
-   >                
- 2 >                dProp
- 3 >                     : 
--4 >                       () => 
--5 >                                     
--6 >                                            this
--7 >                                                 
--8 >                                                   this
--1->Emitted(39, 17) Source(26, 17) + SourceIndex(0)
--2 >Emitted(39, 22) Source(26, 22) + SourceIndex(0)
--3 >Emitted(39, 24) Source(26, 24) + SourceIndex(0)
--4 >Emitted(39, 38) Source(26, 30) + SourceIndex(0)
--5 >Emitted(39, 45) Source(26, 30) + SourceIndex(0)
--6 >Emitted(39, 50) Source(26, 34) + SourceIndex(0)
--7 >Emitted(39, 52) Source(26, 30) + SourceIndex(0)
--8 >Emitted(39, 53) Source(26, 34) + SourceIndex(0)
-+4 >                       () 
-+5 >                          =>
-+6 >                             
-+7 >                             this
-+1->Emitted(21, 17) Source(26, 17) + SourceIndex(0)
-+2 >Emitted(21, 22) Source(26, 22) + SourceIndex(0)
-+3 >Emitted(21, 24) Source(26, 24) + SourceIndex(0)
-+4 >Emitted(21, 27) Source(26, 27) + SourceIndex(0)
-+5 >Emitted(21, 29) Source(26, 29) + SourceIndex(0)
-+6 >Emitted(21, 30) Source(26, 30) + SourceIndex(0)
-+7 >Emitted(21, 34) Source(26, 34) + SourceIndex(0)
- ---
-->>>                foo: function () { return "You win!!!!!"; }
-+>>>                foo() { return "You win!!!!!"; }
+ 3 >            Math
+@@= skipped -90, +87 lines =@@
+ >>>                foo() { return "You win!!!!!"; }
  1->^^^^^^^^^^^^^^^^
  2 >                ^^^
--3 >                   ^^^^^^^^^^^^^^^^
--4 >                                   ^^^^^^^
--5 >                                          ^^^^^^^^^^^^^^
--6 >                                                        ^
--7 >                                                         ^
--8 >                                                          ^
+-3 >                   ^^^^^
+-4 >                        ^^^^^^^
+-5 >                               ^^^^^^^^^^^^^^
+-6 >                                             ^
+-7 >                                              ^
+-8 >                                               ^
 +3 >                   ^^^
 +4 >                      ^^
 +5 >                        ^^^^^^^
@@ -673,19 +349,11 @@
    >                
  2 >                foo
 -3 >                   () { 
--4 >                                   return 
--5 >                                          "You win!!!!!"
--6 >                                                        
--7 >                                                          
--8 >                                                          }
--1->Emitted(40, 17) Source(27, 17) + SourceIndex(0)
--2 >Emitted(40, 20) Source(27, 20) + SourceIndex(0)
--3 >Emitted(40, 36) Source(27, 25) + SourceIndex(0)
--4 >Emitted(40, 43) Source(27, 32) + SourceIndex(0)
--5 >Emitted(40, 57) Source(27, 46) + SourceIndex(0)
--6 >Emitted(40, 58) Source(27, 46) + SourceIndex(0)
--7 >Emitted(40, 59) Source(27, 47) + SourceIndex(0)
--8 >Emitted(40, 60) Source(27, 48) + SourceIndex(0)
+-4 >                        return 
+-5 >                               "You win!!!!!"
+-6 >                                             
+-7 >                                               
+-8 >                                               }
 +3 >                   () 
 +4 >                      { 
 +5 >                        return 
@@ -693,8 +361,14 @@
 +7 >                                             
 +8 >                                              
 +9 >                                                }
-+1->Emitted(22, 17) Source(27, 17) + SourceIndex(0)
-+2 >Emitted(22, 20) Source(27, 20) + SourceIndex(0)
+ 1->Emitted(22, 17) Source(27, 17) + SourceIndex(0)
+ 2 >Emitted(22, 20) Source(27, 20) + SourceIndex(0)
+-3 >Emitted(22, 25) Source(27, 25) + SourceIndex(0)
+-4 >Emitted(22, 32) Source(27, 32) + SourceIndex(0)
+-5 >Emitted(22, 46) Source(27, 46) + SourceIndex(0)
+-6 >Emitted(22, 47) Source(27, 46) + SourceIndex(0)
+-7 >Emitted(22, 48) Source(27, 47) + SourceIndex(0)
+-8 >Emitted(22, 49) Source(27, 48) + SourceIndex(0)
 +3 >Emitted(22, 23) Source(27, 23) + SourceIndex(0)
 +4 >Emitted(22, 25) Source(27, 25) + SourceIndex(0)
 +5 >Emitted(22, 32) Source(27, 32) + SourceIndex(0)
@@ -705,108 +379,16 @@
  ---
  >>>            };
  1 >^^^^^^^^^^^^^
-@@= skipped -80, +80 lines =@@
- 1 >
-   >            }
- 2 >             ;
--1 >Emitted(41, 14) Source(28, 14) + SourceIndex(0)
--2 >Emitted(41, 15) Source(28, 15) + SourceIndex(0)
-+1 >Emitted(23, 14) Source(28, 14) + SourceIndex(0)
-+2 >Emitted(23, 15) Source(28, 15) + SourceIndex(0)
- ---
- >>>        }
- 1 >^^^^^^^^
-@@= skipped -10, +10 lines =@@
- 1 >
-   >        
- 2 >        }
--1 >Emitted(42, 9) Source(29, 9) + SourceIndex(0)
--2 >Emitted(42, 10) Source(29, 10) + SourceIndex(0)
-+1 >Emitted(24, 9) Source(29, 9) + SourceIndex(0)
-+2 >Emitted(24, 10) Source(29, 10) + SourceIndex(0)
- ---
- >>>        else
- >>>            return null;
-@@= skipped -15, +15 lines =@@
- 2 >            return 
- 3 >                   null
- 4 >                       ;
--1->Emitted(44, 13) Source(31, 13) + SourceIndex(0)
--2 >Emitted(44, 20) Source(31, 20) + SourceIndex(0)
--3 >Emitted(44, 24) Source(31, 24) + SourceIndex(0)
--4 >Emitted(44, 25) Source(31, 25) + SourceIndex(0)
-+1->Emitted(26, 13) Source(31, 13) + SourceIndex(0)
-+2 >Emitted(26, 20) Source(31, 20) + SourceIndex(0)
-+3 >Emitted(26, 24) Source(31, 24) + SourceIndex(0)
-+4 >Emitted(26, 25) Source(31, 25) + SourceIndex(0)
- ---
- >>>    }
+@@= skipped -64, +67 lines =@@
  1 >^^^^
  2 >    ^
--3 >     ^^^^^^^^^->
--1 >
+ 1 >
 -  >    
 -2 >    }
--1 >Emitted(45, 5) Source(32, 5) + SourceIndex(0)
--2 >Emitted(45, 6) Source(32, 6) + SourceIndex(0)
-----
-->>>    return D;
--1->^^^^
--2 >    ^^^^^^^^
--1->
--  >
--2 >    }
--1->Emitted(46, 5) Source(33, 1) + SourceIndex(0)
--2 >Emitted(46, 13) Source(33, 2) + SourceIndex(0)
-----
-->>>}(C));
--1 >
--2 >^
--3 > 
--4 > ^
--5 >  ^
--6 >   ^^^
--7 >      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
--1 >
--2 >}
--3 > 
--4 > class D extends 
--5 >  C
--6 >    {
--  >       dProp = () => this;
--  >   
--  >       constructor(a = 100) {
--  >           super(a);
--  >   
--  >           if (Math.random() < 0.5) {
--  >               "You win!"
--  >               return {
--  >                   cProp: 1,
--  >                   dProp: () => this,
--  >                   foo() { return "You win!!!!!" }
--  >               };
--  >           }
--  >           else
--  >               return null;
--  >       }
--  >   }
--1 >Emitted(47, 1) Source(33, 1) + SourceIndex(0)
--2 >Emitted(47, 2) Source(33, 2) + SourceIndex(0)
--3 >Emitted(47, 2) Source(16, 1) + SourceIndex(0)
--4 >Emitted(47, 3) Source(16, 17) + SourceIndex(0)
--5 >Emitted(47, 4) Source(16, 18) + SourceIndex(0)
--6 >Emitted(47, 7) Source(33, 2) + SourceIndex(0)
-+1 >
+-1 >Emitted(27, 5) Source(32, 5) + SourceIndex(0)
 +2 >    
 +  >        }
 +1 >Emitted(27, 5) Source(31, 25) + SourceIndex(0)
-+2 >Emitted(27, 6) Source(32, 6) + SourceIndex(0)
-+---
-+>>>}
-+1 >^
-+2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
-+1 >
-+  >}
-+1 >Emitted(28, 2) Source(33, 2) + SourceIndex(0)
+ 2 >Emitted(27, 6) Source(32, 6) + SourceIndex(0)
  ---
- >>>//# sourceMappingURL=derivedClassConstructorWithExplicitReturns01.js.map
\ No newline at end of file
+ >>>}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/derivedClassOverridesPrivateFunction1.js.diff b/testdata/baselines/reference/submodule/compiler/derivedClassOverridesPrivateFunction1.js.diff
deleted file mode 100644
index e6d2d2dc31..0000000000
--- a/testdata/baselines/reference/submodule/compiler/derivedClassOverridesPrivateFunction1.js.diff
+++ /dev/null
@@ -1,51 +0,0 @@
---- old.derivedClassOverridesPrivateFunction1.js
-+++ new.derivedClassOverridesPrivateFunction1.js
-@@= skipped -17, +17 lines =@@
- new DerivedClass();
-
- //// [derivedClassOverridesPrivateFunction1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var BaseClass = /** @class */ (function () {
--    function BaseClass() {
-+class BaseClass {
-+    constructor() {
-         this._init();
-     }
--    BaseClass.prototype._init = function () {
--    };
--    return BaseClass;
--}());
--var DerivedClass = /** @class */ (function (_super) {
--    __extends(DerivedClass, _super);
--    function DerivedClass() {
--        return _super.call(this) || this;
--    }
--    DerivedClass.prototype._init = function () {
--    };
--    return DerivedClass;
--}(BaseClass));
-+    _init() {
-+    }
-+}
-+class DerivedClass extends BaseClass {
-+    constructor() {
-+        super();
-+    }
-+    _init() {
-+    }
-+}
- new DerivedClass();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/derivedClasses.js.diff b/testdata/baselines/reference/submodule/compiler/derivedClasses.js.diff
deleted file mode 100644
index 2036ce9eb2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/derivedClasses.js.diff
+++ /dev/null
@@ -1,69 +0,0 @@
---- old.derivedClasses.js
-+++ new.derivedClasses.js
-@@= skipped -32, +32 lines =@@
-
-
- //// [derivedClasses.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Red = /** @class */ (function (_super) {
--    __extends(Red, _super);
--    function Red() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Red.prototype.shade = function () {
--        var _this = this;
--        var getHue = function () { return _this.hue(); };
-+class Red extends Color {
-+    shade() {
-+        var getHue = () => { return this.hue(); };
-         return getHue() + " red";
--    };
--    return Red;
--}(Color));
--var Color = /** @class */ (function () {
--    function Color() {
--    }
--    Color.prototype.shade = function () { return "some shade"; };
--    Color.prototype.hue = function () { return "some hue"; };
--    return Color;
--}());
--var Blue = /** @class */ (function (_super) {
--    __extends(Blue, _super);
--    function Blue() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Blue.prototype.shade = function () {
--        var _this = this;
--        var getHue = function () { return _this.hue(); };
-+    }
-+}
-+class Color {
-+    shade() { return "some shade"; }
-+    hue() { return "some hue"; }
-+}
-+class Blue extends Color {
-+    shade() {
-+        var getHue = () => { return this.hue(); };
-         return getHue() + " blue";
--    };
--    return Blue;
--}(Color));
-+    }
-+}
- var r = new Red();
- var b = new Blue();
- r.shade();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/derivedTypeCallingBaseImplWithOptionalParams.js.diff b/testdata/baselines/reference/submodule/compiler/derivedTypeCallingBaseImplWithOptionalParams.js.diff
deleted file mode 100644
index 6316d67835..0000000000
--- a/testdata/baselines/reference/submodule/compiler/derivedTypeCallingBaseImplWithOptionalParams.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.derivedTypeCallingBaseImplWithOptionalParams.js
-+++ new.derivedTypeCallingBaseImplWithOptionalParams.js
-@@= skipped -15, +15 lines =@@
- y.myMethod(); // error
-
- //// [derivedTypeCallingBaseImplWithOptionalParams.js]
--var MyClass = /** @class */ (function () {
--    function MyClass() {
-+class MyClass {
-+    myMethod(myList) {
-     }
--    MyClass.prototype.myMethod = function (myList) {
--    };
--    return MyClass;
--}());
-+}
- var x = new MyClass();
- x.myMethod(); // should be valid, but MyClass has no implementation to handle it.
- var y = new MyClass();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructionAssignmentError.js.diff b/testdata/baselines/reference/submodule/compiler/destructionAssignmentError.js.diff
deleted file mode 100644
index 4deb417dd7..0000000000
--- a/testdata/baselines/reference/submodule/compiler/destructionAssignmentError.js.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- old.destructionAssignmentError.js
-+++ new.destructionAssignmentError.js
-@@= skipped -14, +14 lines =@@
- = fn();
-
- //// [destructionAssignmentError.js]
--var _a, _b;
--var a;
--var b;
--(_a = fn(), a = _a.a, b = _a.b);
-+let a;
-+let b;
-+({ a, b } = fn());
- {
-     a, b;
- }
- fn();
--(_b = fn(), a = _b.a, b = _b.b);
-+({ a, b } =
-+    fn());
- {
-     a, b;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=false,useunknownincatchvariables=false).js.diff b/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=false,useunknownincatchvariables=false).js.diff
deleted file mode 100644
index 8001bed262..0000000000
--- a/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=false,useunknownincatchvariables=false).js.diff
+++ /dev/null
@@ -1,191 +0,0 @@
---- old.destructureCatchClause(strict=false,useunknownincatchvariables=false).js
-+++ new.destructureCatchClause(strict=false,useunknownincatchvariables=false).js
-@@= skipped -40, +40 lines =@@
- //// [destructureCatchClause.js]
- // These are okay with useUnknownInCatchVariables=false, but not okay with useUnknownInCatchVariables=true.
- try { }
--catch (_a) {
--    var x = _a.x;
--    x;
--}
--try { }
--catch (_b) {
--    var x = _b[0];
--    x;
--}
--try { }
--catch (_c) {
--    var x = _c.a.x;
--    x;
--}
--try { }
--catch (_d) {
--    var x = _d.a[0];
--    x;
--}
--try { }
--catch (_e) {
--    var x = _e[0].x;
--    x;
--}
--try { }
--catch (_f) {
--    var x = _f[0][0];
--    x;
--}
--try { }
--catch (_g) {
--    var x = _g.a.b.c.x;
--    x;
--}
--try { }
--catch (_h) {
--    var x = _h.x;
--    x;
--}
--try { }
--catch (_j) {
--    var x = _j[0];
--    x;
--}
--try { }
--catch (_k) {
--    var x = _k.a.x;
--    x;
--}
--try { }
--catch (_l) {
--    var x = _l.a[0];
--    x;
--}
--try { }
--catch (_m) {
--    var x = _m[0].x;
--    x;
--}
--try { }
--catch (_o) {
--    var x = _o[0][0];
--    x;
--}
--try { }
--catch (_p) {
--    var x = _p.a.b.c.x;
--    x;
--}
--try { }
--catch (_q) {
--    var x = _q.x;
--    x;
--}
--try { }
--catch (_r) {
--    var x = _r[0];
--    x;
--}
--try { }
--catch (_s) {
--    var x = _s.a.x;
--    x;
--}
--try { }
--catch (_t) {
--    var x = _t.a[0];
--    x;
--}
--try { }
--catch (_u) {
--    var x = _u[0].x;
--    x;
--}
--try { }
--catch (_v) {
--    var x = _v[0][0];
--    x;
--}
--try { }
--catch (_w) {
--    var x = _w.a.b.c.x;
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-+    x;
-+}
-+try { }
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-+    x;
-+}
-+try { }
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-     x;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=false,useunknownincatchvariables=true).js.diff b/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=false,useunknownincatchvariables=true).js.diff
deleted file mode 100644
index 2330d390af..0000000000
--- a/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=false,useunknownincatchvariables=true).js.diff
+++ /dev/null
@@ -1,191 +0,0 @@
---- old.destructureCatchClause(strict=false,useunknownincatchvariables=true).js
-+++ new.destructureCatchClause(strict=false,useunknownincatchvariables=true).js
-@@= skipped -40, +40 lines =@@
- //// [destructureCatchClause.js]
- // These are okay with useUnknownInCatchVariables=false, but not okay with useUnknownInCatchVariables=true.
- try { }
--catch (_a) {
--    var x = _a.x;
--    x;
--}
--try { }
--catch (_b) {
--    var x = _b[0];
--    x;
--}
--try { }
--catch (_c) {
--    var x = _c.a.x;
--    x;
--}
--try { }
--catch (_d) {
--    var x = _d.a[0];
--    x;
--}
--try { }
--catch (_e) {
--    var x = _e[0].x;
--    x;
--}
--try { }
--catch (_f) {
--    var x = _f[0][0];
--    x;
--}
--try { }
--catch (_g) {
--    var x = _g.a.b.c.x;
--    x;
--}
--try { }
--catch (_h) {
--    var x = _h.x;
--    x;
--}
--try { }
--catch (_j) {
--    var x = _j[0];
--    x;
--}
--try { }
--catch (_k) {
--    var x = _k.a.x;
--    x;
--}
--try { }
--catch (_l) {
--    var x = _l.a[0];
--    x;
--}
--try { }
--catch (_m) {
--    var x = _m[0].x;
--    x;
--}
--try { }
--catch (_o) {
--    var x = _o[0][0];
--    x;
--}
--try { }
--catch (_p) {
--    var x = _p.a.b.c.x;
--    x;
--}
--try { }
--catch (_q) {
--    var x = _q.x;
--    x;
--}
--try { }
--catch (_r) {
--    var x = _r[0];
--    x;
--}
--try { }
--catch (_s) {
--    var x = _s.a.x;
--    x;
--}
--try { }
--catch (_t) {
--    var x = _t.a[0];
--    x;
--}
--try { }
--catch (_u) {
--    var x = _u[0].x;
--    x;
--}
--try { }
--catch (_v) {
--    var x = _v[0][0];
--    x;
--}
--try { }
--catch (_w) {
--    var x = _w.a.b.c.x;
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-+    x;
-+}
-+try { }
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-+    x;
-+}
-+try { }
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-     x;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=true,useunknownincatchvariables=false).js.diff b/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=true,useunknownincatchvariables=false).js.diff
index 94b016478e..ea30523a36 100644
--- a/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=true,useunknownincatchvariables=false).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=true,useunknownincatchvariables=false).js.diff
@@ -7,188 +7,4 @@
 -"use strict";
  // These are okay with useUnknownInCatchVariables=false, but not okay with useUnknownInCatchVariables=true.
  try { }
--catch (_a) {
--    var x = _a.x;
--    x;
--}
--try { }
--catch (_b) {
--    var x = _b[0];
--    x;
--}
--try { }
--catch (_c) {
--    var x = _c.a.x;
--    x;
--}
--try { }
--catch (_d) {
--    var x = _d.a[0];
--    x;
--}
--try { }
--catch (_e) {
--    var x = _e[0].x;
--    x;
--}
--try { }
--catch (_f) {
--    var x = _f[0][0];
--    x;
--}
--try { }
--catch (_g) {
--    var x = _g.a.b.c.x;
--    x;
--}
--try { }
--catch (_h) {
--    var x = _h.x;
--    x;
--}
--try { }
--catch (_j) {
--    var x = _j[0];
--    x;
--}
--try { }
--catch (_k) {
--    var x = _k.a.x;
--    x;
--}
--try { }
--catch (_l) {
--    var x = _l.a[0];
--    x;
--}
--try { }
--catch (_m) {
--    var x = _m[0].x;
--    x;
--}
--try { }
--catch (_o) {
--    var x = _o[0][0];
--    x;
--}
--try { }
--catch (_p) {
--    var x = _p.a.b.c.x;
--    x;
--}
--try { }
--catch (_q) {
--    var x = _q.x;
--    x;
--}
--try { }
--catch (_r) {
--    var x = _r[0];
--    x;
--}
--try { }
--catch (_s) {
--    var x = _s.a.x;
--    x;
--}
--try { }
--catch (_t) {
--    var x = _t.a[0];
--    x;
--}
--try { }
--catch (_u) {
--    var x = _u[0].x;
--    x;
--}
--try { }
--catch (_v) {
--    var x = _v[0][0];
--    x;
--}
--try { }
--catch (_w) {
--    var x = _w.a.b.c.x;
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-+    x;
-+}
-+try { }
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-+    x;
-+}
-+try { }
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-     x;
- }
\ No newline at end of file
+ catch ({ x }) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=true,useunknownincatchvariables=true).js.diff b/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=true,useunknownincatchvariables=true).js.diff
index b1d9a4b674..de3f1c287d 100644
--- a/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=true,useunknownincatchvariables=true).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructureCatchClause(strict=true,useunknownincatchvariables=true).js.diff
@@ -7,188 +7,4 @@
 -"use strict";
  // These are okay with useUnknownInCatchVariables=false, but not okay with useUnknownInCatchVariables=true.
  try { }
--catch (_a) {
--    var x = _a.x;
--    x;
--}
--try { }
--catch (_b) {
--    var x = _b[0];
--    x;
--}
--try { }
--catch (_c) {
--    var x = _c.a.x;
--    x;
--}
--try { }
--catch (_d) {
--    var x = _d.a[0];
--    x;
--}
--try { }
--catch (_e) {
--    var x = _e[0].x;
--    x;
--}
--try { }
--catch (_f) {
--    var x = _f[0][0];
--    x;
--}
--try { }
--catch (_g) {
--    var x = _g.a.b.c.x;
--    x;
--}
--try { }
--catch (_h) {
--    var x = _h.x;
--    x;
--}
--try { }
--catch (_j) {
--    var x = _j[0];
--    x;
--}
--try { }
--catch (_k) {
--    var x = _k.a.x;
--    x;
--}
--try { }
--catch (_l) {
--    var x = _l.a[0];
--    x;
--}
--try { }
--catch (_m) {
--    var x = _m[0].x;
--    x;
--}
--try { }
--catch (_o) {
--    var x = _o[0][0];
--    x;
--}
--try { }
--catch (_p) {
--    var x = _p.a.b.c.x;
--    x;
--}
--try { }
--catch (_q) {
--    var x = _q.x;
--    x;
--}
--try { }
--catch (_r) {
--    var x = _r[0];
--    x;
--}
--try { }
--catch (_s) {
--    var x = _s.a.x;
--    x;
--}
--try { }
--catch (_t) {
--    var x = _t.a[0];
--    x;
--}
--try { }
--catch (_u) {
--    var x = _u[0].x;
--    x;
--}
--try { }
--catch (_v) {
--    var x = _v[0][0];
--    x;
--}
--try { }
--catch (_w) {
--    var x = _w.a.b.c.x;
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-+    x;
-+}
-+try { }
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-+    x;
-+}
-+try { }
-+catch ({ x }) {
-+    x;
-+}
-+try { }
-+catch ([x]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { x } }) {
-+    x;
-+}
-+try { }
-+catch ({ a: [x] }) {
-+    x;
-+}
-+try { }
-+catch ([{ x }]) {
-+    x;
-+}
-+try { }
-+catch ([[x]]) {
-+    x;
-+}
-+try { }
-+catch ({ a: { b: { c: { x } } } }) {
-     x;
- }
\ No newline at end of file
+ catch ({ x }) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructureComputedProperty.js.diff b/testdata/baselines/reference/submodule/compiler/destructureComputedProperty.js.diff
index 62bd544048..9467bcaf61 100644
--- a/testdata/baselines/reference/submodule/compiler/destructureComputedProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructureComputedProperty.js.diff
@@ -1,28 +1,10 @@
 --- old.destructureComputedProperty.js
 +++ new.destructureComputedProperty.js
-@@= skipped -13, +13 lines =@@
-
-
- //// [destructureComputedProperty.js]
--var nameN = "n";
--var _a = ab, _b = nameN, n = _a[_b];
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var nameP = "p";
--var p0 = new C()["p"];
--var p1 = new C()["p"];
--var _c = new C(), _d = nameP, p2 = _c[_d];
--var p3 = new C().p;
-+const nameN = "n";
-+const { [nameN]: n } = ab;
-+class C {
+@@= skipped -16, +16 lines =@@
+ const nameN = "n";
+ const { [nameN]: n } = ab;
+ class C {
 +    p;
-+}
-+const nameP = "p";
-+const { "p": p0 } = new C();
-+const { ["p"]: p1 } = new C();
-+const { [nameP]: p2 } = new C();
-+const { p: p3 } = new C();
\ No newline at end of file
+ }
+ const nameP = "p";
+ const { "p": p0 } = new C();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructureOfVariableSameAsShorthand.js.diff b/testdata/baselines/reference/submodule/compiler/destructureOfVariableSameAsShorthand.js.diff
index 4174c270ea..1ca788a757 100644
--- a/testdata/baselines/reference/submodule/compiler/destructureOfVariableSameAsShorthand.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructureOfVariableSameAsShorthand.js.diff
@@ -13,73 +13,30 @@
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
 -};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
--};
 -function main() {
--    return __awaiter(this, void 0, void 0, function () {
--        var response, body, data, shouldBeNever;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    // These work examples as expected
--                    get().then(function (response) {
--                        // body is never
--                        var body = response.data;
--                    });
--                    get().then(function (_a) {
--                        var data = _a.data;
--                        // data is never
--                    });
--                    return [4 /*yield*/, get()
--                        // body is never
--                    ];
--                case 1:
--                    response = _a.sent();
--                    body = response.data;
--                    return [4 /*yield*/, get()];
--                case 2:
--                    data = (_a.sent()).data;
--                    return [4 /*yield*/, get()];
--                case 3:
--                    shouldBeNever = (_a.sent()).data;
--                    return [2 /*return*/];
--            }
+-    return __awaiter(this, void 0, void 0, function* () {
+-        // These work examples as expected
+-        get().then((response) => {
+-            // body is never
+-            const body = response.data;
 -        });
--    });
+-        get().then(({ data }) => {
+-            // data is never
+-        });
+-        const response = yield get();
 +async function main() {
 +    // These work examples as expected
 +    get().then((response) => {
-+        // body is never
-+        const body = response.data;
+         // body is never
+         const body = response.data;
 +    });
 +    get().then(({ data }) => {
-+        // data is never
-+    });
+         // data is never
+-        const { data } = yield get();
+-        // The following did not work as expected.
+-        // shouldBeNever should be never, but was any
+-        const { data: shouldBeNever } = yield get();
+     });
 +    const response = await get();
 +    // body is never
 +    const body = response.data;
diff --git a/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js.diff b/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js.diff
index 94a964d92b..73d7deee62 100644
--- a/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructureOptionalParameter.js.diff
@@ -1,16 +1,6 @@
 --- old.destructureOptionalParameter.js
 +++ new.destructureOptionalParameter.js
-@@= skipped -25, +25 lines =@@
-
-
- //// [destructureOptionalParameter.js]
--function f2(_a) {
--    var _b = _a === void 0 ? { a: 0, b: 0 } : _a, a = _b.a, b = _b.b;
-+function f2({ a, b } = { a: 0, b: 0 }) {
-     a;
-     b;
- }
-@@= skipped -16, +15 lines =@@
+@@= skipped -40, +40 lines =@@
      a: number;
      b: number;
  }): void;
diff --git a/testdata/baselines/reference/submodule/compiler/destructuredDeclarationEmit.js.diff b/testdata/baselines/reference/submodule/compiler/destructuredDeclarationEmit.js.diff
index fd3d406a8c..87fd6fcdb8 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuredDeclarationEmit.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuredDeclarationEmit.js.diff
@@ -1,16 +1,6 @@
 --- old.destructuredDeclarationEmit.js
 +++ new.destructuredDeclarationEmit.js
-@@= skipped -25, +25 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.arr = exports.foo = void 0;
--var foo = { bar: 'hello', bat: 'world', bam: { bork: { bar: 'a', baz: 'b' } } };
-+const foo = { bar: 'hello', bat: 'world', bam: { bork: { bar: 'a', baz: 'b' } } };
- exports.foo = foo;
--var arr = [0, 1, 2, ['a', 'b', 'c', [{ def: 'def' }, { sec: 'sec' }]]];
-+const arr = [0, 1, 2, ['a', 'b', 'c', [{ def: 'def' }, { sec: 'sec' }]]];
- exports.arr = arr;
- //// [index.js]
+@@= skipped -33, +33 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.foo2 = exports.sec = exports.bee = exports.one = exports.ibaz = exports.baz = exports.arr = exports.foo = void 0;
@@ -18,27 +8,22 @@
 +const foo_1 = require("./foo");
  Object.defineProperty(exports, "foo", { enumerable: true, get: function () { return foo_1.foo; } });
  Object.defineProperty(exports, "arr", { enumerable: true, get: function () { return foo_1.arr; } });
--var baz = foo_1.foo.bar, bat = foo_1.foo.bat, _a = foo_1.foo.bam.bork, ibar = _a.bar, ibaz = _a.baz;
+ const { bar: baz, bat, bam: { bork: { bar: ibar, baz: ibaz } } } = foo_1.foo;
 -exports.baz = baz;
 -exports.ibaz = ibaz;
--var one = foo_1.arr[1], _b = foo_1.arr[3], bee = _b[1], _c = _b[3], sec = _c[1].sec;
+ const [, one, , [, bee, , [, { sec }]]] = foo_1.arr;
 -exports.one = one;
 -exports.bee = bee;
 -exports.sec = sec;
--var getFoo = function () { return ({
-+const { bar: baz, bat, bam: { bork: { bar: ibar, baz: ibaz } } } = foo_1.foo;
-+const [, one, , [, bee, , [, { sec }]]] = foo_1.arr;
-+const getFoo = () => ({
+ const getFoo = () => ({
      foo: 'foo'
--}); };
--var foo2 = getFoo().foo;
+ });
+ const { foo: foo2 } = getFoo();
 -exports.foo2 = foo2;
-+});
-+const { foo: foo2 } = getFoo();
 
 
  //// [foo.d.ts]
-@@= skipped -45, +39 lines =@@
+@@= skipped -37, +31 lines =@@
  //// [index.d.ts]
  import { foo, arr } from './foo';
  export { foo, arr };
diff --git a/testdata/baselines/reference/submodule/compiler/destructuredMaappedTypeIsNotImplicitlyAny.js.diff b/testdata/baselines/reference/submodule/compiler/destructuredMaappedTypeIsNotImplicitlyAny.js.diff
deleted file mode 100644
index 2fc51a6f1f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/destructuredMaappedTypeIsNotImplicitlyAny.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.destructuredMaappedTypeIsNotImplicitlyAny.js
-+++ new.destructuredMaappedTypeIsNotImplicitlyAny.js
-@@= skipped -10, +10 lines =@@
-
- //// [destructuredMaappedTypeIsNotImplicitlyAny.js]
- function foo(key, obj) {
--    var _a = obj, _b = key, bar = _a[_b]; // Element implicitly has an 'any' type because type '{ [_ in T]: number; }' has no index signature.
-+    const { [key]: bar } = obj; // Element implicitly has an 'any' type because type '{ [_ in T]: number; }' has no index signature.
-     bar; // bar : any
-     // Note: this does work:
--    var lorem = obj[key];
-+    const lorem = obj[key];
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringAssignmentWithDefault.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringAssignmentWithDefault.js.diff
deleted file mode 100644
index 0dc6fc77d7..0000000000
--- a/testdata/baselines/reference/submodule/compiler/destructuringAssignmentWithDefault.js.diff
+++ /dev/null
@@ -1,54 +0,0 @@
---- old.destructuringAssignmentWithDefault.js
-+++ new.destructuringAssignmentWithDefault.js
-@@= skipped -34, +34 lines =@@
-
-
- //// [destructuringAssignmentWithDefault.js]
--var _a;
--var a = {};
--var x = 0;
--(_a = a.x, x = _a === void 0 ? 1 : _a);
-+const a = {};
-+let x = 0;
-+({ x = 1 } = a);
- // Repro from #26235
- function f1(options) {
--    var _a;
--    var _b = options || {}, color = _b.color, width = _b.width;
--    (_a = options || {}, color = _a.color, width = _a.width);
--    var x1 = (options || {}).color;
--    var x2 = (options || {})["color"];
-+    let { color, width } = options || {};
-+    ({ color, width } = options || {});
-+    let x1 = (options || {}).color;
-+    let x2 = (options || {})["color"];
- }
- function f2(options) {
--    var _a;
--    var _b = options || [], str = _b[0], num = _b[1];
--    _a = options || [], str = _a[0], num = _a[1];
--    var x1 = (options || {})[0];
-+    let [str, num] = options || [];
-+    [str, num] = options || [];
-+    let x1 = (options || {})[0];
- }
- function f3(options) {
--    var _a;
--    var _b = options || {}, color = _b.color, width = _b.width;
--    (_a = options || {}, color = _a.color, width = _a.width);
--    var x1 = (options || {}).color;
--    var x2 = (options || {})["color"];
-+    let { color, width } = options || {};
-+    ({ color, width } = options || {});
-+    let x1 = (options || {}).color;
-+    let x2 = (options || {})["color"];
- }
- function f4(options) {
--    var _a;
--    var _b = options || [], str = _b[0], num = _b[1];
--    _a = options || [], str = _a[0], num = _a[1];
--    var x1 = (options || {})[0];
-+    let [str, num] = options || [];
-+    [str, num] = options || [];
-+    let x1 = (options || {})[0];
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringAssignmentWithDefault2.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringAssignmentWithDefault2.js.diff
deleted file mode 100644
index 57a400d385..0000000000
--- a/testdata/baselines/reference/submodule/compiler/destructuringAssignmentWithDefault2.js.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- old.destructuringAssignmentWithDefault2.js
-+++ new.destructuringAssignmentWithDefault2.js
-@@= skipped -27, +27 lines =@@
- ({ done: done = false, value } = r.next());
-
- //// [destructuringAssignmentWithDefault2.js]
--var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
--var a = {};
--var x;
-+const a = {};
-+let x;
- // Should not error out
--(_a = a.x, x = _a === void 0 ? 0 : _a);
--(_b = a.x, x = _b === void 0 ? 0 : _b);
--(_c = a.y, x = _c === void 0 ? 0 : _c);
-+({ x = 0 } = a);
-+({ x: x = 0 } = a);
-+({ y: x = 0 } = a);
- // Should be error
--(_d = a.x, x = _d === void 0 ? undefined : _d);
--(_e = a.x, x = _e === void 0 ? undefined : _e);
--(_f = a.y, x = _f === void 0 ? undefined : _f);
--var z1 = a.x;
--var _l = a.x, z2 = _l === void 0 ? 0 : _l;
--var _m = a.x, z3 = _m === void 0 ? undefined : _m;
--var done;
--var value;
--(_g = r.next(), _h = _g.done, done = _h === void 0 ? false : _h, value = _g.value);
--(_j = r.next(), _k = _j.done, done = _k === void 0 ? false : _k, value = _j.value);
-+({ x = undefined } = a);
-+({ x: x = undefined } = a);
-+({ y: x = undefined } = a);
-+const { x: z1 } = a;
-+const { x: z2 = 0 } = a;
-+const { x: z3 = undefined } = a;
-+let done;
-+let value;
-+({ done = false, value } = r.next());
-+({ done: done = false, value } = r.next());
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringAssignmentWithStrictNullChecks.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringAssignmentWithStrictNullChecks.js.diff
index 23ada9f4e7..f43838f776 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuringAssignmentWithStrictNullChecks.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuringAssignmentWithStrictNullChecks.js.diff
@@ -15,7 +15,6 @@
 -        }
 -    return t;
 -};
--var bar;
+ let bar;
 -(bar = __rest({}, []));
-+let bar;
 +({ ...bar } = {});
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringAssignment_private.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringAssignment_private.js.diff
index 18efe965f9..b721d74be4 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuringAssignment_private.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuringAssignment_private.js.diff
@@ -1,32 +1,15 @@
 --- old.destructuringAssignment_private.js
 +++ new.destructuringAssignment_private.js
-@@= skipped -16, +16 lines =@@
-
+@@= skipped -17, +17 lines =@@
 
  //// [destructuringAssignment_private.js]
--var _a, _b, _c, _d;
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.x = 0;
 -        this.o = [{ a: 1 }];
 -    }
--    return C;
--}());
--var x;
--(x = [{ a: new C() }][0].a.x);
--(x = new C().o[0].a);
--var nameX = "x";
--(_a = [{ a: new C() }], _b = nameX, x = _a[0].a[_b]);
--var nameO = "o";
--(_c = new C(), _d = nameO, x = _c[_d][0].a);
-+class C {
 +    x = 0;
 +    o = [{ a: 1 }];
-+}
-+let x;
-+([{ a: { x } }] = [{ a: new C() }]);
-+({ o: [{ a: x }] } = new C());
-+const nameX = "x";
-+([{ a: { [nameX]: x } }] = [{ a: new C() }]);
-+const nameO = "o";
-+({ [nameO]: [{ a: x }] } = new C());
\ No newline at end of file
+ }
+ let x;
+ ([{ a: { x } }] = [{ a: new C() }]);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringControlFlowNoCrash.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringControlFlowNoCrash.js.diff
index 1160dbfef9..83f94da264 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuringControlFlowNoCrash.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuringControlFlowNoCrash.js.diff
@@ -13,44 +13,12 @@
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
 -};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
--};
--var _this = this;
  // legal JS, if nonsensical, which also triggers the issue
--var date = function (inspectedElement) { return 0; }.date;
-+const { date, } = (inspectedElement) => 0;
+ const { date, } = (inspectedElement) => 0;
  date.toISOString();
- // Working flow code
--var date2 = function (inspectedElement) { return ; }.date2, props;
-+const { date2, } = (inspectedElement) => , props;
+@@= skipped -16, +7 lines =@@
+ const { date2, } = (inspectedElement) => , props;
  date2.toISOString();
  // It could also be an async function
--var constructor = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
--    return [2 /*return*/];
--}); }); }.constructor;
+-const { constructor } = () => __awaiter(this, void 0, void 0, function* () { });
 +const { constructor } = async () => { };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringFromUnionSpread.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringFromUnionSpread.js.diff
index 4cce0a0205..fb55f32960 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuringFromUnionSpread.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuringFromUnionSpread.js.diff
@@ -15,5 +15,5 @@
 -    };
 -    return __assign.apply(this, arguments);
 -};
--var a = __assign({}, x).a; // error
+-const { a } = __assign({}, x); // error
 +const { a } = { ...x }; // error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringInitializerContextualTypeFromContext.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringInitializerContextualTypeFromContext.js.diff
index b3fa23fc24..d7d9dcd940 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuringInitializerContextualTypeFromContext.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuringInitializerContextualTypeFromContext.js.diff
@@ -27,18 +27,14 @@
 -        }
 -    return t;
 -};
--var Parent = function (_a) {
--    var children = _a.children, _b = _a.name, name = _b === void 0 ? "Artemis" : _b, props = __rest(_a, ["children", "name"]);
--    return Child(__assign({ name: name }, props));
+-const Parent = (_a) => {
+-    var { children, name = "Artemis" } = _a, props = __rest(_a, ["children", "name"]);
+-    return Child(__assign({ name }, props));
 -};
--var Child = function (_a) {
--    var children = _a.children, _b = _a.name, name = _b === void 0 ? "Artemis" : _b, props = __rest(_a, ["children", "name"]);
--    return "name: ".concat(name, " props: ").concat(JSON.stringify(props));
+-const Child = (_a) => {
+-    var { children, name = "Artemis" } = _a, props = __rest(_a, ["children", "name"]);
+-    return `name: ${name} props: ${JSON.stringify(props)}`;
 -};
--f(function (_a) {
--    var _1 = _a[0], _b = _a[1], _2 = _b === void 0 ? undefined : _b;
--    return undefined;
--});
 +const Parent = ({ children, name = "Artemis", ...props }) => Child({ name, ...props });
 +const Child = ({ children, name = "Artemis", ...props }) => `name: ${name} props: ${JSON.stringify(props)}`;
-+f(([_1, _2 = undefined]) => undefined);
\ No newline at end of file
+ f(([_1, _2 = undefined]) => undefined);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringPropertyAssignmentNameIsNotAssignmentTarget.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringPropertyAssignmentNameIsNotAssignmentTarget.js.diff
deleted file mode 100644
index 7edbe3fd2b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/destructuringPropertyAssignmentNameIsNotAssignmentTarget.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.destructuringPropertyAssignmentNameIsNotAssignmentTarget.js
-+++ new.destructuringPropertyAssignmentNameIsNotAssignmentTarget.js
-@@= skipped -12, +12 lines =@@
- //// [destructuringPropertyAssignmentNameIsNotAssignmentTarget.js]
- // test for #10668
- function qux(bar) {
--    var foo;
--    (foo = bar.value);
--    var x = function () { return bar; };
-+    let foo;
-+    ({ value: foo } = bar);
-+    let x = () => bar;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringTempOccursAfterPrologue.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringTempOccursAfterPrologue.js.diff
index 08d901fd91..8bbf3085eb 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuringTempOccursAfterPrologue.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuringTempOccursAfterPrologue.js.diff
@@ -4,9 +4,7 @@
  function test(p) {
      'use strict';
      'use strong';
--    var _a;
--    p = (_a = p, p = _a.prop, _a);
 +    'use strict';
 +    'use strong';
-+    p = { prop: p } = p;
+     p = { prop: p } = p;
  }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringTuple.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringTuple.js.diff
index 5373cbbfdd..e471f14ee5 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuringTuple.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuringTuple.js.diff
@@ -5,12 +5,6 @@
 
  //// [destructuringTuple.js]
 -"use strict";
--var a = tuple[0], b = tuple[1], c = tuple[2], rest = tuple.slice(3);
--receiver = tuple.slice(0);
-+const [a, b, c, ...rest] = tuple;
-+[...receiver] = tuple;
- // Repros from #32140
--var oops1 = [1, 2, 3].reduce(function (accu, el) { return accu.concat(el); }, [])[0];
--var oops2 = [1, 2, 3].reduce(function (acc, e) { return acc.concat(e); }, [])[0];
-+const [oops1] = [1, 2, 3].reduce((accu, el) => accu.concat(el), []);
-+const [oops2] = [1, 2, 3].reduce((acc, e) => acc.concat(e), []);
\ No newline at end of file
+ const [a, b, c, ...rest] = tuple;
+ [...receiver] = tuple;
+ // Repros from #32140
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringTypeGuardFlow.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringTypeGuardFlow.js.diff
deleted file mode 100644
index 784d808df5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/destructuringTypeGuardFlow.js.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- old.destructuringTypeGuardFlow.js
-+++ new.destructuringTypeGuardFlow.js
-@@= skipped -38, +38 lines =@@
-
-
- //// [destructuringTypeGuardFlow.js]
--var aFoo = { bar: 3, baz: "b", nested: { a: 1, b: "y" } };
-+const aFoo = { bar: 3, baz: "b", nested: { a: 1, b: "y" } };
- if (aFoo.bar && aFoo.nested.b) {
--    var bar = aFoo.bar, baz = aFoo.baz, _a = aFoo.nested, a = _a.a, text = _a.b;
--    var right = aFoo.bar;
--    var wrong = bar;
--    var another = baz;
--    var aAgain = a;
--    var bAgain = text;
-+    const { bar, baz, nested: { a, b: text } } = aFoo;
-+    const right = aFoo.bar;
-+    const wrong = bar;
-+    const another = baz;
-+    const aAgain = a;
-+    const bAgain = text;
- }
--var bBar = { elem1: 7, elem2: aFoo };
-+const bBar = { elem1: 7, elem2: aFoo };
- if (bBar.elem2 && bBar.elem2.bar && bBar.elem2.nested.b) {
--    var _b = bBar.elem2, bar = _b.bar, baz = _b.baz, _c = _b.nested, a = _c.a, text = _c.b;
--    var right = bBar.elem2.bar;
--    var wrong = bar;
--    var another = baz;
--    var aAgain = a;
--    var bAgain = text;
-+    const { bar, baz, nested: { a, b: text } } = bBar.elem2;
-+    const right = bBar.elem2.bar;
-+    const wrong = bar;
-+    const another = baz;
-+    const aAgain = a;
-+    const bAgain = text;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringWithConstraint.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringWithConstraint.js.diff
index 47ac701e00..7fc47b688a 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuringWithConstraint.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuringWithConstraint.js.diff
@@ -7,7 +7,5 @@
 -"use strict";
 -// Repro from #22823
  function foo(props) {
--    var _a = props.foo, foo = _a === void 0 ? false : _a;
-+    let { foo = false } = props;
-     if (foo === true) { }
- }
\ No newline at end of file
+     let { foo = false } = props;
+     if (foo === true) { }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringWithGenericParameter.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringWithGenericParameter.js.diff
index 4256640f25..84d4d75568 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuringWithGenericParameter.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuringWithGenericParameter.js.diff
@@ -1,23 +1,10 @@
 --- old.destructuringWithGenericParameter.js
 +++ new.destructuringWithGenericParameter.js
-@@= skipped -16, +16 lines =@@
-
+@@= skipped -17, +17 lines =@@
 
  //// [destructuringWithGenericParameter.js]
--var GenericClass = /** @class */ (function () {
--    function GenericClass() {
--    }
--    return GenericClass;
--}());
-+class GenericClass {
+ class GenericClass {
 +    payload;
-+}
- var genericObject = new GenericClass();
- function genericFunction(object, callback) {
-     callback(object.payload);
  }
--genericFunction(genericObject, function (_a) {
--    var greeting = _a.greeting;
-+genericFunction(genericObject, ({ greeting }) => {
-     var s = greeting.toLocaleLowerCase(); // Greeting should be of type string
- });
\ No newline at end of file
+ var genericObject = new GenericClass();
+ function genericFunction(object, callback) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringWithNewExpression.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringWithNewExpression.js.diff
index 27a251e0ab..8b975b45bd 100644
--- a/testdata/baselines/reference/submodule/compiler/destructuringWithNewExpression.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/destructuringWithNewExpression.js.diff
@@ -1,17 +1,12 @@
 --- old.destructuringWithNewExpression.js
 +++ new.destructuringWithNewExpression.js
-@@= skipped -7, +7 lines =@@
- var { x } = new C;
+@@= skipped -8, +8 lines =@@
 
  //// [destructuringWithNewExpression.js]
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.x = 0;
 -    }
--    return C;
--}());
--var x = (new C).x;
-+class C {
 +    x = 0;
-+}
-+var { x } = new C;
\ No newline at end of file
+ }
+ var { x } = new C;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/destructuringWithNumberLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/destructuringWithNumberLiteral.js.diff
deleted file mode 100644
index cf781ad3ac..0000000000
--- a/testdata/baselines/reference/submodule/compiler/destructuringWithNumberLiteral.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.destructuringWithNumberLiteral.js
-+++ new.destructuringWithNumberLiteral.js
-@@= skipped -3, +3 lines =@@
- var { toExponential } = 0;
-
- //// [destructuringWithNumberLiteral.js]
--var toExponential = 0..toExponential;
-+var { toExponential } = 0;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfConstructor1.js.diff b/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfConstructor1.js.diff
index 867ebef0ba..4af9fd93f9 100644
--- a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfConstructor1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfConstructor1.js.diff
@@ -1,22 +1,11 @@
 --- old.detachedCommentAtStartOfConstructor1.js
 +++ new.detachedCommentAtStartOfConstructor1.js
-@@= skipped -12, +12 lines =@@
- }
+@@= skipped -13, +13 lines =@@
 
  //// [detachedCommentAtStartOfConstructor1.js]
--var TestFile = /** @class */ (function () {
--    function TestFile(message) {
--        var _this = this;
-+class TestFile {
+ class TestFile {
 +    message;
 +    name;
-+    constructor(message) {
+     constructor(message) {
          /// Test summary
-         /// 
--        var getMessage = function () { return message + _this.name; };
-+        var getMessage = () => message + this.name;
-         this.message = getMessage();
-     }
--    return TestFile;
--}());
-+}
\ No newline at end of file
+         /// 
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfConstructor2.js.diff b/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfConstructor2.js.diff
index 669545b7d6..3e2b3d8870 100644
--- a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfConstructor2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfConstructor2.js.diff
@@ -1,22 +1,11 @@
 --- old.detachedCommentAtStartOfConstructor2.js
 +++ new.detachedCommentAtStartOfConstructor2.js
-@@= skipped -13, +13 lines =@@
- }
+@@= skipped -14, +14 lines =@@
 
  //// [detachedCommentAtStartOfConstructor2.js]
--var TestFile = /** @class */ (function () {
--    function TestFile(message) {
-+class TestFile {
+ class TestFile {
 +    message;
 +    name;
-+    constructor(message) {
+     constructor(message) {
          /// Test summary
-         /// 
--        var _this = this;
--        var getMessage = function () { return message + _this.name; };
-+        var getMessage = () => message + this.name;
-         this.message = getMessage();
-     }
--    return TestFile;
--}());
-+}
\ No newline at end of file
+         /// 
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfFunctionBody1.js.diff b/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfFunctionBody1.js.diff
deleted file mode 100644
index 3c7fe4455e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfFunctionBody1.js.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- old.detachedCommentAtStartOfFunctionBody1.js
-+++ new.detachedCommentAtStartOfFunctionBody1.js
-@@= skipped -10, +10 lines =@@
- }
-
- //// [detachedCommentAtStartOfFunctionBody1.js]
--var TestFile = /** @class */ (function () {
--    function TestFile() {
--    }
--    TestFile.prototype.foo = function (message) {
--        var _this = this;
-+class TestFile {
-+    foo(message) {
-         /// Test summary
-         /// 
-         /// 
--        return function () { return message + _this.name; };
--    };
--    return TestFile;
--}());
-+        return () => message + this.name;
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfFunctionBody2.js.diff b/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfFunctionBody2.js.diff
deleted file mode 100644
index 0e6dc485f8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfFunctionBody2.js.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- old.detachedCommentAtStartOfFunctionBody2.js
-+++ new.detachedCommentAtStartOfFunctionBody2.js
-@@= skipped -11, +11 lines =@@
- }
-
- //// [detachedCommentAtStartOfFunctionBody2.js]
--var TestFile = /** @class */ (function () {
--    function TestFile() {
--    }
--    TestFile.prototype.foo = function (message) {
-+class TestFile {
-+    foo(message) {
-         /// Test summary
-         /// 
-         /// 
--        var _this = this;
--        return function () { return message + _this.name; };
--    };
--    return TestFile;
--}());
-+        return () => message + this.name;
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfLambdaFunction1.js.diff b/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfLambdaFunction1.js.diff
index 98ed56983d..6113372102 100644
--- a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfLambdaFunction1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfLambdaFunction1.js.diff
@@ -1,33 +1,10 @@
 --- old.detachedCommentAtStartOfLambdaFunction1.js
 +++ new.detachedCommentAtStartOfLambdaFunction1.js
-@@= skipped -12, +12 lines =@@
- }
+@@= skipped -13, +13 lines =@@
 
  //// [detachedCommentAtStartOfLambdaFunction1.js]
--var TestFile = /** @class */ (function () {
--    function TestFile() {
-+class TestFile {
+ class TestFile {
 +    name;
-+    foo(message) {
-+        return (...x) => 
-+        /// Test summary
-+        /// 
-+        /// 
-+        message + this.name;
-     }
--    TestFile.prototype.foo = function (message) {
--        var _this = this;
--        return function () {
--            var x = [];
--            for (var _i = 0; _i < arguments.length; _i++) {
--                x[_i] = arguments[_i];
--            }
--            /// Test summary
--            /// 
--            /// 
--            return message + _this.name;
--        };
--    };
--    return TestFile;
--}());
-+}
\ No newline at end of file
+     foo(message) {
+         return (...x) => 
+         /// Test summary
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfLambdaFunction2.js.diff b/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfLambdaFunction2.js.diff
index c547136c59..391c0ab3b3 100644
--- a/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfLambdaFunction2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/detachedCommentAtStartOfLambdaFunction2.js.diff
@@ -1,33 +1,10 @@
 --- old.detachedCommentAtStartOfLambdaFunction2.js
 +++ new.detachedCommentAtStartOfLambdaFunction2.js
-@@= skipped -13, +13 lines =@@
- }
+@@= skipped -14, +14 lines =@@
 
  //// [detachedCommentAtStartOfLambdaFunction2.js]
--var TestFile = /** @class */ (function () {
--    function TestFile() {
-+class TestFile {
+ class TestFile {
 +    name;
-+    foo(message) {
-+        return (...x) => 
-+        /// Test summary
-+        /// 
-+        /// 
-+        message + this.name;
-     }
--    TestFile.prototype.foo = function (message) {
--        var _this = this;
--        return function () {
--            /// Test summary
--            /// 
--            /// 
--            var x = [];
--            for (var _i = 0; _i < arguments.length; _i++) {
--                x[_i] = arguments[_i];
--            }
--            return message + _this.name;
--        };
--    };
--    return TestFile;
--}());
-+}
\ No newline at end of file
+     foo(message) {
+         return (...x) => 
+         /// Test summary
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.js.diff b/testdata/baselines/reference/submodule/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.js.diff
index 9974b03eaa..6d18232c12 100644
--- a/testdata/baselines/reference/submodule/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/didYouMeanElaborationsForExpressionsWhichCouldBeCalled.js.diff
@@ -1,17 +1,10 @@
 --- old.didYouMeanElaborationsForExpressionsWhichCouldBeCalled.js
 +++ new.didYouMeanElaborationsForExpressionsWhichCouldBeCalled.js
-@@= skipped -30, +30 lines =@@
-
+@@= skipped -31, +31 lines =@@
 
  //// [didYouMeanElaborationsForExpressionsWhichCouldBeCalled.js]
--var Bar = /** @class */ (function () {
--    function Bar() {
--    }
--    return Bar;
--}());
-+class Bar {
+ class Bar {
 +    x;
-+}
+ }
  foo({
-     x: Bar,
-     y: Date
\ No newline at end of file
+     x: Bar,
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/didYouMeanStringLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/didYouMeanStringLiteral.js.diff
deleted file mode 100644
index d1fa7f0399..0000000000
--- a/testdata/baselines/reference/submodule/compiler/didYouMeanStringLiteral.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.didYouMeanStringLiteral.js
-+++ new.didYouMeanStringLiteral.js
-@@= skipped -10, +10 lines =@@
-
-
- //// [didYouMeanStringLiteral.js]
--var t1 = "strong";
--var t2 = "strong";
--var t3 = "strong";
-+const t1 = "strong";
-+const t2 = "strong";
-+const t3 = "strong";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/didYouMeanSuggestionErrors.js.diff b/testdata/baselines/reference/submodule/compiler/didYouMeanSuggestionErrors.js.diff
deleted file mode 100644
index 9c6130a1eb..0000000000
--- a/testdata/baselines/reference/submodule/compiler/didYouMeanSuggestionErrors.js.diff
+++ /dev/null
@@ -1,48 +0,0 @@
---- old.didYouMeanSuggestionErrors.js
-+++ new.didYouMeanSuggestionErrors.js
-@@= skipped -30, +30 lines =@@
- });
-
- //// [didYouMeanSuggestionErrors.js]
--describe("my test suite", function () {
--    it("should run", function () {
--        var a = $(".thing");
-+describe("my test suite", () => {
-+    it("should run", () => {
-+        const a = $(".thing");
-     });
- });
--suite("another suite", function () {
--    test("everything else", function () {
-+suite("another suite", () => {
-+    test("everything else", () => {
-         console.log(process.env);
-         document.createElement("div");
--        var x = require("fs");
--        var y = Buffer.from([]);
--        var z = module.exports;
--        var a = new Map();
--        var b = new Set();
--        var c = new WeakMap();
--        var d = new WeakSet();
--        var e = Symbol();
--        var f = Promise.resolve(0);
--        var i = null;
--        var j = null;
--        var k = null;
--        var l = null;
-+        const x = require("fs");
-+        const y = Buffer.from([]);
-+        const z = module.exports;
-+        const a = new Map();
-+        const b = new Set();
-+        const c = new WeakMap();
-+        const d = new WeakSet();
-+        const e = Symbol();
-+        const f = Promise.resolve(0);
-+        const i = null;
-+        const j = null;
-+        const k = null;
-+        const l = null;
-     });
- });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/differentTypesWithSameName.js.diff b/testdata/baselines/reference/submodule/compiler/differentTypesWithSameName.js.diff
index 385f20e505..349eb2a58d 100644
--- a/testdata/baselines/reference/submodule/compiler/differentTypesWithSameName.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/differentTypesWithSameName.js.diff
@@ -1,29 +1,18 @@
 --- old.differentTypesWithSameName.js
 +++ new.differentTypesWithSameName.js
-@@= skipped -20, +20 lines =@@
- //// [differentTypesWithSameName.js]
+@@= skipped -21, +21 lines =@@
  var m;
  (function (m) {
--    var variable = /** @class */ (function () {
--        function variable() {
--        }
--        return variable;
--    }());
-+    class variable {
+     class variable {
 +        s;
-+    }
+     }
      m.variable = variable;
      function doSomething(v) {
-     }
+@@= skipped -7, +8 lines =@@
      m.doSomething = doSomething;
  })(m || (m = {}));
--var variable = /** @class */ (function () {
--    function variable() {
--    }
--    return variable;
--}());
-+class variable {
+ class variable {
 +    t;
-+}
+ }
  var v = new variable();
  m.doSomething(v);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/discriminableUnionWithIntersectedMembers.js.diff b/testdata/baselines/reference/submodule/compiler/discriminableUnionWithIntersectedMembers.js.diff
deleted file mode 100644
index 1339019012..0000000000
--- a/testdata/baselines/reference/submodule/compiler/discriminableUnionWithIntersectedMembers.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.discriminableUnionWithIntersectedMembers.js
-+++ new.discriminableUnionWithIntersectedMembers.js
-@@= skipped -17, +17 lines =@@
-
- //// [discriminableUnionWithIntersectedMembers.js]
- // error
--var x = 4;
-+const x = 4;
- // no  error
--var y = 4;
-+const y = 4;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/discriminantElementAccessCheck.js.diff b/testdata/baselines/reference/submodule/compiler/discriminantElementAccessCheck.js.diff
deleted file mode 100644
index 87b73e9480..0000000000
--- a/testdata/baselines/reference/submodule/compiler/discriminantElementAccessCheck.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.discriminantElementAccessCheck.js
-+++ new.discriminantElementAccessCheck.js
-@@= skipped -76, +76 lines =@@
-     }
- }
- function IfWithTemplate(val) {
--    if (val["kind"] === 'B') {
-+    if (val[`kind`] === 'B') {
-         return val.b;
-     }
-     else {
-@@= skipped -8, +8 lines =@@
-     }
- }
- function SwitchWithTemplate(val) {
--    switch (val["kind"]) {
-+    switch (val[`kind`]) {
-         case 'A':
-             return val.a;
-         case 'B':
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/discriminantNarrowingCouldBeCircular.js.diff b/testdata/baselines/reference/submodule/compiler/discriminantNarrowingCouldBeCircular.js.diff
index c7d4756a18..5e23b6a0f0 100644
--- a/testdata/baselines/reference/submodule/compiler/discriminantNarrowingCouldBeCircular.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/discriminantNarrowingCouldBeCircular.js.diff
@@ -5,37 +5,6 @@
 
  //// [discriminantNarrowingCouldBeCircular.js]
 -"use strict";
--var o = {};
-+const o = {};
+ const o = {};
  if (o) {
--    for (var key in o) {
--        var value = o[key];
-+    for (const key in o) {
-+        const value = o[key];
-         if (is(value)) {
-         }
-     }
- }
- function getImplicitAriaRole(element) {
--    var ancestor = element;
-+    let ancestor = element;
-     while (ancestor) {
--        var parent = parentElementOrShadowHost(ancestor);
--        var parents = kPresentationInheritanceParents[ancestor.a];
-+        const parent = parentElementOrShadowHost(ancestor);
-+        const parents = kPresentationInheritanceParents[ancestor.a];
-         if (!parents || !parent || !parents.includes(parent.a))
-             break;
-         ancestor = parent;
-     }
- }
- if (isPlainObject2(myObj2)) {
--    for (var _i = 0, _a = ["a", "b", "c"]; _i < _a.length; _i++) {
--        var key = _a[_i];
--        var deeper = myObj2[key];
--        var deeperKeys = isPlainObject2(deeper) ? Object.keys(deeper) : [];
-+    for (const key of ["a", "b", "c"]) {
-+        const deeper = myObj2[key];
-+        const deeperKeys = isPlainObject2(deeper) ? Object.keys(deeper) : [];
-     }
- }
\ No newline at end of file
+     for (const key in o) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/discriminantPropertyCheck.js.diff b/testdata/baselines/reference/submodule/compiler/discriminantPropertyCheck.js.diff
index 4937d33703..65f7739ba4 100644
--- a/testdata/baselines/reference/submodule/compiler/discriminantPropertyCheck.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/discriminantPropertyCheck.js.diff
@@ -1,17 +1,6 @@
 --- old.discriminantPropertyCheck.js
 +++ new.discriminantPropertyCheck.js
-@@= skipped -303, +303 lines =@@
-     }
- }
- // Repro from #29106
--var f = function (_a, _b) { };
--var u = {};
-+const f = (_a, _b) => { };
-+const u = {};
- u.a && u.b && f(u.a, u.b);
- u.b && u.a && f(u.a, u.b);
- function foo(obj) {
-@@= skipped -15, +15 lines =@@
+@@= skipped -318, +318 lines =@@
  function onlyPlus(arg) {
      return arg;
  }
@@ -30,29 +19,4 @@
 +            case BarEnum.bar2:
                  break;
              default:
-                 never(value.type);
-@@= skipped -14, +19 lines =@@
- }
- function WorksProperly(data) {
-     if (data.Name === "TypeA") {
--        var value1 = data.Value1;
-+        const value1 = data.Value1;
-     }
- }
- function DoesNotWork(data) {
-     if (isType(data)) {
-         if (data.Name === "TypeA") {
--            var value1 = data.Value1;
-+            const value1 = data.Value1;
-         }
-     }
- }
--var doTestingStuff = function (mapOfTests, ids) {
--    ids.forEach(function (id) {
--        var test;
-+const doTestingStuff = (mapOfTests, ids) => {
-+    ids.forEach(id => {
-+        let test;
-         test = mapOfTests[id];
-         if (test.type === 'testA') {
-             console.log(test.bananas);
\ No newline at end of file
+                 never(value.type);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/discriminantPropertyInference.js.diff b/testdata/baselines/reference/submodule/compiler/discriminantPropertyInference.js.diff
index 8ff5c56e96..002fbe8bab 100644
--- a/testdata/baselines/reference/submodule/compiler/discriminantPropertyInference.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/discriminantPropertyInference.js.diff
@@ -7,24 +7,4 @@
 -// Repro from #41759
  // simple inference
  f({
-     disc: true,
--    cb: function (s) { return parseInt(s); }
-+    cb: s => parseInt(s)
- });
- // simple inference
- f({
-     disc: false,
--    cb: function (n) { return n.toFixed(); }
-+    cb: n => n.toFixed()
- });
- // simple inference when strict-null-checks are enabled
- f({
-     disc: undefined,
--    cb: function (n) { return n.toFixed(); }
-+    cb: n => n.toFixed()
- });
- // requires checking type information since discriminator is missing from object
- f({
--    cb: function (n) { return n.toFixed(); }
-+    cb: n => n.toFixed()
- });
\ No newline at end of file
+     disc: true,
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/discriminantsAndPrimitives.js.diff b/testdata/baselines/reference/submodule/compiler/discriminantsAndPrimitives.js.diff
index ab39a9bd84..135d74b07c 100644
--- a/testdata/baselines/reference/submodule/compiler/discriminantsAndPrimitives.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/discriminantsAndPrimitives.js.diff
@@ -12,14 +12,12 @@
          }
      }
  }
--var n;
 +// Repro from #31319
 +var EnumTypeNode;
 +(function (EnumTypeNode) {
 +    EnumTypeNode["Pattern"] = "Pattern";
 +    EnumTypeNode["Disjunction"] = "Disjunction";
 +})(EnumTypeNode || (EnumTypeNode = {}));
-+let n;
+ let n;
  if (n.type === "Disjunction") {
-     n.alternatives.slice();
- }
\ No newline at end of file
+     n.alternatives.slice();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/discriminateObjectTypesOnly.js.diff b/testdata/baselines/reference/submodule/compiler/discriminateObjectTypesOnly.js.diff
index 995fad7c9f..804f8be116 100644
--- a/testdata/baselines/reference/submodule/compiler/discriminateObjectTypesOnly.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/discriminateObjectTypesOnly.js.diff
@@ -5,11 +5,6 @@
 
  //// [discriminateObjectTypesOnly.js]
 -"use strict";
--var k = { toFixed: null }; // OK, satisfies object
--var q = { toFixed: null };
--var h = { toString: null }; // OK, satisfies object
--var l = { toString: undefined }; // error, toFixed isn't null
-+const k = { toFixed: null }; // OK, satisfies object
-+const q = { toFixed: null };
-+const h = { toString: null }; // OK, satisfies object
-+const l = { toString: undefined }; // error, toFixed isn't null
\ No newline at end of file
+ const k = { toFixed: null }; // OK, satisfies object
+ const q = { toFixed: null };
+ const h = { toString: null }; // OK, satisfies object
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/discriminateWithMissingProperty.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/discriminateWithMissingProperty.errors.txt.diff
deleted file mode 100644
index 892a53eaaf..0000000000
--- a/testdata/baselines/reference/submodule/compiler/discriminateWithMissingProperty.errors.txt.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- old.discriminateWithMissingProperty.errors.txt
-+++ new.discriminateWithMissingProperty.errors.txt
-@@= skipped -0, +0 lines =@@
--discriminateWithMissingProperty.ts(12,5): error TS2345: Argument of type '{ mode: "numeric"; data: Uint8Array; }' is not assignable to parameter of type 'Arg'.
--  Types of property 'data' are incompatible.
--    Type 'Uint8Array' is not assignable to type 'number'.
--
--
--==== discriminateWithMissingProperty.ts (1 errors) ====
--    type Arg = {
--        mode: "numeric",
--        data: number,
--    } | {
--        mode: "alphabetic",
--        data: string,
--    } | {
--        data: string | Uint8Array;
--    }
--    
--    declare function foo(arg: Arg): void;
--    foo({ mode: "numeric", data: new Uint8Array([30]) }); // Should error
--        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--!!! error TS2345: Argument of type '{ mode: "numeric"; data: Uint8Array; }' is not assignable to parameter of type 'Arg'.
--!!! error TS2345:   Types of property 'data' are incompatible.
--!!! error TS2345:     Type 'Uint8Array' is not assignable to type 'number'.
-+
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/discriminatedUnionErrorMessage.js.diff b/testdata/baselines/reference/submodule/compiler/discriminatedUnionErrorMessage.js.diff
deleted file mode 100644
index d6221a4903..0000000000
--- a/testdata/baselines/reference/submodule/compiler/discriminatedUnionErrorMessage.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.discriminatedUnionErrorMessage.js
-+++ new.discriminatedUnionErrorMessage.js
-@@= skipped -15, +15 lines =@@
-
-
- //// [discriminatedUnionErrorMessage.js]
--var shape = {
-+let shape = {
-     kind: "sq",
-     x: 12,
-     y: 13,
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js.diff b/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js.diff
index 7b57bcfc2f..b5406fe21d 100644
--- a/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/discriminatedUnionJsxElement.js.diff
@@ -8,7 +8,7 @@
 -// Repro from #46021
  function Menu(data) {
 -    var _a;
--    var listItemVariant = (_a = data.menuItemsVariant) !== null && _a !== void 0 ? _a : ListItemVariant.OneLine;
+-    const listItemVariant = (_a = data.menuItemsVariant) !== null && _a !== void 0 ? _a : ListItemVariant.OneLine;
 +    const listItemVariant = data.menuItemsVariant ?? ListItemVariant.OneLine;
      return ;
  }
diff --git a/testdata/baselines/reference/submodule/compiler/discriminatedUnionWithIndexSignature.js.diff b/testdata/baselines/reference/submodule/compiler/discriminatedUnionWithIndexSignature.js.diff
deleted file mode 100644
index 4194a486c4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/discriminatedUnionWithIndexSignature.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.discriminatedUnionWithIndexSignature.js
-+++ new.discriminatedUnionWithIndexSignature.js
-@@= skipped -31, +31 lines =@@
- //// [discriminatedUnionWithIndexSignature.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var withoutAsConst = {
-+const withoutAsConst = {
-     1: {
-         type: 'text' /*as const*/,
-     },
- };
--var withAsConst = {
-+const withAsConst = {
-     1: {
-         type: 'text',
-     },
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/divergentAccessors1.js.diff b/testdata/baselines/reference/submodule/compiler/divergentAccessors1.js.diff
index 2ef225c097..e1199d33f8 100644
--- a/testdata/baselines/reference/submodule/compiler/divergentAccessors1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/divergentAccessors1.js.diff
@@ -7,16 +7,4 @@
 -"use strict";
  // Accessors in interfaces/types
  {
--    var ihgs = null;
-+    const ihgs = null;
-     ihgs.foo = "32";
--    var r_ihgs_foo = ihgs.foo;
-+    let r_ihgs_foo = ihgs.foo;
- }
- {
--    var t_hgs = null;
-+    const t_hgs = null;
-     t_hgs.foo = "32";
--    var r_t_hgs_foo = t_hgs.foo;
-+    let r_t_hgs_foo = t_hgs.foo;
- }
\ No newline at end of file
+     const ihgs = null;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes3.js.diff b/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes3.js.diff
index f8df396d0b..8596113a9d 100644
--- a/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes3.js.diff
@@ -1,80 +1,10 @@
 --- old.divergentAccessorsTypes3.js
 +++ new.divergentAccessorsTypes3.js
-@@= skipped -45, +45 lines =@@
-
-
- //// [divergentAccessorsTypes3.js]
--var One = /** @class */ (function () {
--    function One() {
--    }
--    Object.defineProperty(One.prototype, "prop1", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(One.prototype, "prop2", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(One.prototype, "prop4", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    return One;
--}());
--var Two = /** @class */ (function () {
--    function Two() {
--    }
--    Object.defineProperty(Two.prototype, "prop1", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(Two.prototype, "prop2", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(Two.prototype, "prop3", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(Two.prototype, "prop4", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    return Two;
--}());
-+class One {
-+    get prop1() { return ""; }
-+    set prop1(s) { }
-+    get prop2() { return ""; }
-+    set prop2(s) { }
+@@= skipped -50, +50 lines =@@
+     set prop1(s) { }
+     get prop2() { return ""; }
+     set prop2(s) { }
 +    prop3;
-+    get prop4() { return ""; }
-+    set prop4(s) { }
-+}
-+class Two {
-+    get prop1() { return ""; }
-+    set prop1(s) { }
-+    get prop2() { return ""; }
-+    set prop2(s) { }
-+    get prop3() { return ""; }
-+    set prop3(s) { }
-+    get prop4() { return ""; }
-+    set prop4(s) { }
-+}
- u1.prop1 = 42;
- u1.prop1 = "hello";
- u1.prop2 = 42;
\ No newline at end of file
+     get prop4() { return ""; }
+     set prop4(s) { }
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes4.js.diff b/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes4.js.diff
index a7c2f538ac..25b896293c 100644
--- a/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes4.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes4.js.diff
@@ -1,48 +1,10 @@
 --- old.divergentAccessorsTypes4.js
 +++ new.divergentAccessorsTypes4.js
-@@= skipped -32, +32 lines =@@
-
-
- //// [divergentAccessorsTypes4.js]
--var One = /** @class */ (function () {
--    function One() {
--    }
--    Object.defineProperty(One.prototype, "prop1", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    return One;
--}());
--var Two = /** @class */ (function () {
--    function Two() {
--    }
--    Object.defineProperty(Two.prototype, "prop1", {
--        get: function () { return "hello"; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(Two.prototype, "prop2", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    return Two;
--}());
-+class One {
-+    get prop1() { return ""; }
-+    set prop1(s) { }
+@@= skipped -35, +35 lines =@@
+ class One {
+     get prop1() { return ""; }
+     set prop1(s) { }
 +    prop2;
-+}
-+class Two {
-+    get prop1() { return "hello"; }
-+    set prop1(s) { }
-+    get prop2() { return ""; }
-+    set prop2(s) { }
-+}
- // "hello"
- i.prop1;
- // number | "hello"
\ No newline at end of file
+ }
+ class Two {
+     get prop1() { return "hello"; }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes5.js.diff b/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes5.js.diff
index c9ae963286..1f7546aca2 100644
--- a/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes5.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes5.js.diff
@@ -1,71 +1,10 @@
 --- old.divergentAccessorsTypes5.js
 +++ new.divergentAccessorsTypes5.js
-@@= skipped -41, +41 lines =@@
- //// [divergentAccessorsTypes5.js]
- // Not really different from divergentAccessorsTypes4.ts,
- // but goes through the deferred type code
--var One = /** @class */ (function () {
--    function One() {
--    }
--    Object.defineProperty(One.prototype, "prop1", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    return One;
--}());
--var Two = /** @class */ (function () {
--    function Two() {
--    }
--    Object.defineProperty(Two.prototype, "prop1", {
--        get: function () { return "hello"; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(Two.prototype, "prop2", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    return Two;
--}());
--var Three = /** @class */ (function () {
--    function Three() {
--    }
--    Object.defineProperty(Three.prototype, "prop1", {
--        get: function () { return "hello"; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(Three.prototype, "prop2", {
--        get: function () { return ""; },
--        set: function (s) { },
--        enumerable: false,
--        configurable: true
--    });
--    return Three;
--}());
-+class One {
-+    get prop1() { return ""; }
-+    set prop1(s) { }
+@@= skipped -44, +44 lines =@@
+ class One {
+     get prop1() { return ""; }
+     set prop1(s) { }
 +    prop2;
-+}
-+class Two {
-+    get prop1() { return "hello"; }
-+    set prop1(s) { }
-+    get prop2() { return ""; }
-+    set prop2(s) { }
-+}
-+class Three {
-+    get prop1() { return "hello"; }
-+    set prop1(s) { }
-+    get prop2() { return ""; }
-+    set prop2(s) { }
-+}
- // "hello"
- i.prop1 = 42; // error
- i.prop1 = "hello";
\ No newline at end of file
+ }
+ class Two {
+     get prop1() { return "hello"; }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes6.js.diff b/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes6.js.diff
deleted file mode 100644
index aff6c232a9..0000000000
--- a/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes6.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.divergentAccessorsTypes6.js
-+++ new.divergentAccessorsTypes6.js
-@@= skipped -42, +42 lines =@@
- element.style = "color: red";
- element.style.animationTimingFunction;
- element.style = element.style; // error
--var o1 = {
-+const o1 = {
-     get x() { return 0; },
-     set x(value) { }
- };
- // A setter annotation still implies the getter return type.
--var o2 = {
-+const o2 = {
-     get p1() { return 0; }, // error - no annotation means type is implied from the setter annotation
-     set p1(value) { },
-     get p2() { return 0; }, // ok - explicit annotation
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes7.js.diff b/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes7.js.diff
deleted file mode 100644
index a6c8bbd0b5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/divergentAccessorsTypes7.js.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- old.divergentAccessorsTypes7.js
-+++ new.divergentAccessorsTypes7.js
-@@= skipped -27, +27 lines =@@
-
-
- //// [divergentAccessorsTypes7.js]
--var Test = /** @class */ (function () {
--    function Test() {
-+class Test {
-+    constructor() { }
-+    set value(value) { }
-+    get value() {
-+        return null;
-     }
--    Object.defineProperty(Test.prototype, "value", {
--        get: function () {
--            return null;
--        },
--        set: function (value) { },
--        enumerable: false,
--        configurable: true
--    });
--    return Test;
--}());
--var a = new Test();
--a.value = function (item) { return item.property; };
--a['value'] = function (item) { return item.property; };
-+}
-+const a = new Test();
-+a.value = (item) => item.property;
-+a['value'] = (item) => item.property;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doNotElaborateAssignabilityToTypeParameters.js.diff b/testdata/baselines/reference/submodule/compiler/doNotElaborateAssignabilityToTypeParameters.js.diff
index 861dd3ba84..873606815b 100644
--- a/testdata/baselines/reference/submodule/compiler/doNotElaborateAssignabilityToTypeParameters.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/doNotElaborateAssignabilityToTypeParameters.js.diff
@@ -13,44 +13,10 @@
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
 -};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
--};
 -function foo(x) {
--    return __awaiter(this, void 0, void 0, function () {
--        var yaddable;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, getXOrYadda(x)];
--                case 1:
--                    yaddable = _a.sent();
--                    return [2 /*return*/, yaddable];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        let yaddable = yield getXOrYadda(x);
+-        return yaddable;
 -    });
 +async function foo(x) {
 +    let yaddable = await getXOrYadda(x);
diff --git a/testdata/baselines/reference/submodule/compiler/doNotEmitDetachedCommentsAtStartOfConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/doNotEmitDetachedCommentsAtStartOfConstructor.js.diff
deleted file mode 100644
index e8970a4bc2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doNotEmitDetachedCommentsAtStartOfConstructor.js.diff
+++ /dev/null
@@ -1,50 +0,0 @@
---- old.doNotEmitDetachedCommentsAtStartOfConstructor.js
-+++ new.doNotEmitDetachedCommentsAtStartOfConstructor.js
-@@= skipped -39, +39 lines =@@
- }
-
- //// [doNotEmitDetachedCommentsAtStartOfConstructor.js]
--var A = (function () {
--    function A() {
--        var x = 10;
--    }
--    return A;
--}());
--var B = (function () {
--    function B() {
--        var y = 10;
--    }
--    return B;
--}());
--var C = (function () {
--    function C() {
--        var x = 10;
--    }
--    return C;
--}());
--var D = (function () {
--    function D() {
--        var y = 10;
--    }
--    return D;
--}());
-+class A {
-+    constructor() {
-+        var x = 10;
-+    }
-+}
-+class B {
-+    constructor() {
-+        var y = 10;
-+    }
-+}
-+class C {
-+    constructor() {
-+        var x = 10;
-+    }
-+}
-+class D {
-+    constructor() {
-+        var y = 10;
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doNotEmitDetachedCommentsAtStartOfLambdaFunction.js.diff b/testdata/baselines/reference/submodule/compiler/doNotEmitDetachedCommentsAtStartOfLambdaFunction.js.diff
deleted file mode 100644
index 684749350a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doNotEmitDetachedCommentsAtStartOfLambdaFunction.js.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- old.doNotEmitDetachedCommentsAtStartOfLambdaFunction.js
-+++ new.doNotEmitDetachedCommentsAtStartOfLambdaFunction.js
-@@= skipped -32, +32 lines =@@
-
-
- //// [doNotEmitDetachedCommentsAtStartOfLambdaFunction.js]
--(function () {
--    return 0;
--});
--(function () {
--    return 0;
--});
--(function () {
--    return 0;
--});
--(function () {
--    return 0;
--});
-+() => {
-+    return 0;
-+};
-+() => {
-+    return 0;
-+};
-+() => {
-+    return 0;
-+};
-+() => {
-+    return 0;
-+};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doNotEmitPinnedCommentOnNotEmittedNode.js.diff b/testdata/baselines/reference/submodule/compiler/doNotEmitPinnedCommentOnNotEmittedNode.js.diff
deleted file mode 100644
index ea55c59da7..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doNotEmitPinnedCommentOnNotEmittedNode.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.doNotEmitPinnedCommentOnNotEmittedNode.js
-+++ new.doNotEmitPinnedCommentOnNotEmittedNode.js
-@@= skipped -12, +12 lines =@@
- declare var OData: any;
-
- //// [doNotEmitPinnedCommentOnNotEmittedNode.js]
--var C = (function () {
--    function C() {
--    }
--    C.prototype.foo = function (x, y) { };
--    return C;
--}());
-+class C {
-+    foo(x, y) { }
-+}
- var x = 10;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doNotEmitPinnedCommentOnNotEmittedNodets.js.diff b/testdata/baselines/reference/submodule/compiler/doNotEmitPinnedCommentOnNotEmittedNodets.js.diff
deleted file mode 100644
index f14aced62b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doNotEmitPinnedCommentOnNotEmittedNodets.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.doNotEmitPinnedCommentOnNotEmittedNodets.js
-+++ new.doNotEmitPinnedCommentOnNotEmittedNodets.js
-@@= skipped -10, +10 lines =@@
- declare var OData: any;
-
- //// [doNotEmitPinnedCommentOnNotEmittedNodets.js]
--var C = (function () {
--    function C() {
--    }
--    C.prototype.foo = function (x, y) { };
--    return C;
--}());
-+class C {
-+    foo(x, y) { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doNotInferUnrelatedTypes.js.diff b/testdata/baselines/reference/submodule/compiler/doNotInferUnrelatedTypes.js.diff
deleted file mode 100644
index be04c3f14b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doNotInferUnrelatedTypes.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.doNotInferUnrelatedTypes.js
-+++ new.doNotInferUnrelatedTypes.js
-@@= skipped -9, +9 lines =@@
-
-
- //// [doNotInferUnrelatedTypes.js]
--var foo = dearray(alt);
-+let foo = dearray(alt);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doWhileUnreachableCode.js.diff b/testdata/baselines/reference/submodule/compiler/doWhileUnreachableCode.js.diff
deleted file mode 100644
index 4862ed0de8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doWhileUnreachableCode.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.doWhileUnreachableCode.js
-+++ new.doWhileUnreachableCode.js
-@@= skipped -15, +15 lines =@@
-
- //// [doWhileUnreachableCode.js]
- function test() {
--    var foo = 0;
-+    let foo = 0;
-     testLoop: do {
-         foo++;
-         continue testLoop;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doYouNeedToChangeYourTargetLibraryES2015.js.diff b/testdata/baselines/reference/submodule/compiler/doYouNeedToChangeYourTargetLibraryES2015.js.diff
deleted file mode 100644
index 75f192e078..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doYouNeedToChangeYourTargetLibraryES2015.js.diff
+++ /dev/null
@@ -1,191 +0,0 @@
---- old.doYouNeedToChangeYourTargetLibraryES2015.js
-+++ new.doYouNeedToChangeYourTargetLibraryES2015.js
-@@= skipped -94, +94 lines =@@
-
-
- //// [doYouNeedToChangeYourTargetLibraryES2015.js]
--var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
--    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
--    return cooked;
--};
- // es2015
--var noOp = function () { };
--var testReflectApply = Reflect.apply(noOp, this, []);
--var testReflectConstruct = Reflect.construct(noOp, []);
--var testReflectDefineProperty = Reflect.defineProperty({}, "", {});
--var testReflectDeleteProperty = Reflect.deleteProperty({}, "");
--var testReflectGet = Reflect.get({}, "");
--var testReflectGetOwnPropertyDescriptor = Reflect.getOwnPropertyDescriptor({}, "");
--var testReflectGetPrototypeOf = Reflect.getPrototypeOf({});
--var testReflectIsExtensible = Reflect.isExtensible({});
--var testReflectOwnKeys = Reflect.ownKeys({});
--var testReflectPreventExtensions = Reflect.preventExtensions({});
--var testReflectSet = Reflect.set({}, "", 0);
--var testReflectSetPrototypeOf = Reflect.setPrototypeOf({}, {});
--var testArrayFind = [""].find(function (val, idx, obj) {
--    return true;
--});
--var testArrayFindIndex = [""].findIndex(function (val, idx, obj) {
--    return true;
--});
--var testArrayFill = [""].fill("fill");
--var testArrayCopyWithin = [""].copyWithin(0, 0);
--var testArrayEntries = [""].entries();
--var testArrayKeys = [""].keys();
--var testArrayValues = [""].values();
--var testArrayConstructorFrom = Array.from([]);
--var testArrayConstructorOf = Array.of([]);
--var testObjectConstructorAssign = Object.assign({}, {});
--var testObjectConstructorGetOwnPropertySymbols = Object.getOwnPropertySymbols({});
--var testObjectConstructorKeys = Object.keys({});
--var testObjectConstructorIs = Object.is({}, {});
--var testObjectConstructorSetPrototypeOf = Object.setPrototypeOf({}, {});
--var testNumberConstructorIsFinite = Number.isFinite(0);
--var testNumberConstructorIsInteger = Number.isInteger(0);
--var testNumberConstructorIsNan = Number.isNaN(0);
--var testNumberConstructorIsSafeInteger = Number.isSafeInteger(0);
--var testNumberConstructorParseFloat = Number.parseFloat("0");
--var testNumberConstructorParseInt = Number.parseInt("0");
--var testMathClz32 = Math.clz32(0);
--var testMathImul = Math.imul(0, 0);
--var testMathSign = Math.sign(0);
--var testMathLog10 = Math.log10(0);
--var testMathLog2 = Math.log2(0);
--var testMathLog1p = Math.log1p(0);
--var testMathExpm1 = Math.expm1(0);
--var testMathCosh = Math.cosh(0);
--var testMathSinh = Math.sinh(0);
--var testMathTanh = Math.tanh(0);
--var testMathAcosh = Math.acosh(0);
--var testMathAsinh = Math.asinh(0);
--var testMathAtanh = Math.atanh(0);
--var testMathHypot = Math.hypot(0, 0);
--var testMathTrunc = Math.trunc(0);
--var testMathFround = Math.fround(0);
--var testMathCbrt = Math.cbrt(0);
--var testMap = null;
--var testSet = null;
--var testPromiseAll = Promise.all([]);
--var testPromiseRace = Promise.race([]);
--var testPromiseResolve = Promise.resolve();
--var testPromiseReject = Promise.reject();
--var testSymbolFor = Symbol.for('a');
--var testSymbolKeyFor = Symbol.keyFor(testSymbolFor);
--var testWeakMap = null;
--var testWeakSet = null;
--var testIterator = null;
--var testAsyncIterator = null;
--var testStringCodePointAt = "".codePointAt(0);
--var testStringIncludes = "".includes("");
--var testStringEndsWith = "".endsWith("");
--var testStringNormalize = "".normalize();
--var testStringRepeat = "".repeat(0);
--var testStringStartsWith = "".startsWith("");
--var testStringAnchor = "".anchor("");
--var testStringBig = "".big();
--var testStringBlink = "".blink();
--var testStringBold = "".bold();
--var testStringFixed = "".fixed();
--var testStringFontColor = "".fontcolor("blue");
--var testStringFontSize = "".fontsize(0);
--var testStringItalics = "".italics();
--var testStringLink = "".link("");
--var testStringSmall = "".small();
--var testStringStrike = "".strike();
--var testStringSub = "".sub();
--var testStringSup = "".sup();
--var testStringConstructorFromCodePoint = String.fromCodePoint();
--var testStringConstructorRaw = String.raw(__makeTemplateObject([""], [""]));
--var testRegExpFlags = /abc/g.flags;
--var testRegExpSticky = /abc/g.sticky;
--var testRegExpUnicode = /abc/g.unicode;
-+const noOp = () => { };
-+const testReflectApply = Reflect.apply(noOp, this, []);
-+const testReflectConstruct = Reflect.construct(noOp, []);
-+const testReflectDefineProperty = Reflect.defineProperty({}, "", {});
-+const testReflectDeleteProperty = Reflect.deleteProperty({}, "");
-+const testReflectGet = Reflect.get({}, "");
-+const testReflectGetOwnPropertyDescriptor = Reflect.getOwnPropertyDescriptor({}, "");
-+const testReflectGetPrototypeOf = Reflect.getPrototypeOf({});
-+const testReflectIsExtensible = Reflect.isExtensible({});
-+const testReflectOwnKeys = Reflect.ownKeys({});
-+const testReflectPreventExtensions = Reflect.preventExtensions({});
-+const testReflectSet = Reflect.set({}, "", 0);
-+const testReflectSetPrototypeOf = Reflect.setPrototypeOf({}, {});
-+const testArrayFind = [""].find((val, idx, obj) => {
-+    return true;
-+});
-+const testArrayFindIndex = [""].findIndex((val, idx, obj) => {
-+    return true;
-+});
-+const testArrayFill = [""].fill("fill");
-+const testArrayCopyWithin = [""].copyWithin(0, 0);
-+const testArrayEntries = [""].entries();
-+const testArrayKeys = [""].keys();
-+const testArrayValues = [""].values();
-+const testArrayConstructorFrom = Array.from([]);
-+const testArrayConstructorOf = Array.of([]);
-+const testObjectConstructorAssign = Object.assign({}, {});
-+const testObjectConstructorGetOwnPropertySymbols = Object.getOwnPropertySymbols({});
-+const testObjectConstructorKeys = Object.keys({});
-+const testObjectConstructorIs = Object.is({}, {});
-+const testObjectConstructorSetPrototypeOf = Object.setPrototypeOf({}, {});
-+const testNumberConstructorIsFinite = Number.isFinite(0);
-+const testNumberConstructorIsInteger = Number.isInteger(0);
-+const testNumberConstructorIsNan = Number.isNaN(0);
-+const testNumberConstructorIsSafeInteger = Number.isSafeInteger(0);
-+const testNumberConstructorParseFloat = Number.parseFloat("0");
-+const testNumberConstructorParseInt = Number.parseInt("0");
-+const testMathClz32 = Math.clz32(0);
-+const testMathImul = Math.imul(0, 0);
-+const testMathSign = Math.sign(0);
-+const testMathLog10 = Math.log10(0);
-+const testMathLog2 = Math.log2(0);
-+const testMathLog1p = Math.log1p(0);
-+const testMathExpm1 = Math.expm1(0);
-+const testMathCosh = Math.cosh(0);
-+const testMathSinh = Math.sinh(0);
-+const testMathTanh = Math.tanh(0);
-+const testMathAcosh = Math.acosh(0);
-+const testMathAsinh = Math.asinh(0);
-+const testMathAtanh = Math.atanh(0);
-+const testMathHypot = Math.hypot(0, 0);
-+const testMathTrunc = Math.trunc(0);
-+const testMathFround = Math.fround(0);
-+const testMathCbrt = Math.cbrt(0);
-+const testMap = null;
-+const testSet = null;
-+const testPromiseAll = Promise.all([]);
-+const testPromiseRace = Promise.race([]);
-+const testPromiseResolve = Promise.resolve();
-+const testPromiseReject = Promise.reject();
-+const testSymbolFor = Symbol.for('a');
-+const testSymbolKeyFor = Symbol.keyFor(testSymbolFor);
-+const testWeakMap = null;
-+const testWeakSet = null;
-+const testIterator = null;
-+const testAsyncIterator = null;
-+const testStringCodePointAt = "".codePointAt(0);
-+const testStringIncludes = "".includes("");
-+const testStringEndsWith = "".endsWith("");
-+const testStringNormalize = "".normalize();
-+const testStringRepeat = "".repeat(0);
-+const testStringStartsWith = "".startsWith("");
-+const testStringAnchor = "".anchor("");
-+const testStringBig = "".big();
-+const testStringBlink = "".blink();
-+const testStringBold = "".bold();
-+const testStringFixed = "".fixed();
-+const testStringFontColor = "".fontcolor("blue");
-+const testStringFontSize = "".fontsize(0);
-+const testStringItalics = "".italics();
-+const testStringLink = "".link("");
-+const testStringSmall = "".small();
-+const testStringStrike = "".strike();
-+const testStringSub = "".sub();
-+const testStringSup = "".sup();
-+const testStringConstructorFromCodePoint = String.fromCodePoint();
-+const testStringConstructorRaw = String.raw ``;
-+const testRegExpFlags = /abc/g.flags;
-+const testRegExpSticky = /abc/g.sticky;
-+const testRegExpUnicode = /abc/g.unicode;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.js.diff b/testdata/baselines/reference/submodule/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.js.diff
deleted file mode 100644
index 054fac2dcd..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.js.diff
+++ /dev/null
@@ -1,78 +0,0 @@
---- old.doYouNeedToChangeYourTargetLibraryES2016Plus.js
-+++ new.doYouNeedToChangeYourTargetLibraryES2016Plus.js
-@@= skipped -50, +50 lines =@@
-
- //// [doYouNeedToChangeYourTargetLibraryES2016Plus.js]
- // es2016
--var testIncludes = ["hello"].includes("world");
-+const testIncludes = ["hello"].includes("world");
- // es2017
--var testStringPadStart = "".padStart(2);
--var testStringPadEnd = "".padEnd(2);
--var testObjectConstructorValues = Object.values({});
--var testObjectConstructorEntries = Object.entries({});
--var testObjectConstructorGetOwnPropertyDescriptors = Object.getOwnPropertyDescriptors({});
--var testIntlFormatToParts = new Intl.DateTimeFormat("en-US").formatToParts();
--var testAtomics = Atomics.add(new Uint8Array(0), 0, 0);
--var testSharedArrayBuffer = new SharedArrayBuffer(5);
-+const testStringPadStart = "".padStart(2);
-+const testStringPadEnd = "".padEnd(2);
-+const testObjectConstructorValues = Object.values({});
-+const testObjectConstructorEntries = Object.entries({});
-+const testObjectConstructorGetOwnPropertyDescriptors = Object.getOwnPropertyDescriptors({});
-+const testIntlFormatToParts = new Intl.DateTimeFormat("en-US").formatToParts();
-+const testAtomics = Atomics.add(new Uint8Array(0), 0, 0);
-+const testSharedArrayBuffer = new SharedArrayBuffer(5);
- // es2018
--var testPromiseFinally = new Promise(function () { }).finally();
--var testRegExpMatchArrayGroups = "2019-04-30".match(/(?[0-9]{4})-(?[0-9]{2})-(?[0-9]{2})/g).groups;
--var testRegExpExecArrayGroups = /(?[0-9]{4})-(?[0-9]{2})-(?[0-9]{2})/g.exec("2019-04-30").groups;
--var testRegExpDotAll = /foo/g.dotAll;
--var testIntlPluralRules = new Intl.PluralRules("ar-EG").select(0);
--var testAsyncGenerator = null;
--var testAsyncGeneratorFunction = null;
--var testAsyncIterable = null;
--var testAsyncIterableIterator = null;
--var testNumberFormatFormatToParts = new Intl.NumberFormat("en-US").formatToParts();
-+const testPromiseFinally = new Promise(() => { }).finally();
-+const testRegExpMatchArrayGroups = "2019-04-30".match(/(?[0-9]{4})-(?[0-9]{2})-(?[0-9]{2})/g).groups;
-+const testRegExpExecArrayGroups = /(?[0-9]{4})-(?[0-9]{2})-(?[0-9]{2})/g.exec("2019-04-30").groups;
-+const testRegExpDotAll = /foo/g.dotAll;
-+const testIntlPluralRules = new Intl.PluralRules("ar-EG").select(0);
-+const testAsyncGenerator = null;
-+const testAsyncGeneratorFunction = null;
-+const testAsyncIterable = null;
-+const testAsyncIterableIterator = null;
-+const testNumberFormatFormatToParts = new Intl.NumberFormat("en-US").formatToParts();
- // es2019
--var testArrayFlat = [].flat();
--var testArrayFlatMap = [].flatMap();
--var testObjectConstructorFromEntries = Object.fromEntries({});
--var testStringTrimStart = "".trimStart();
--var testStringTrimEnd = "".trimEnd();
--var testStringTrimLeft = "".trimLeft();
--var testStringTrimRight = "".trimRight();
--var testSymbolDescription = Symbol("foo").description;
-+const testArrayFlat = [].flat();
-+const testArrayFlatMap = [].flatMap();
-+const testObjectConstructorFromEntries = Object.fromEntries({});
-+const testStringTrimStart = "".trimStart();
-+const testStringTrimEnd = "".trimEnd();
-+const testStringTrimLeft = "".trimLeft();
-+const testStringTrimRight = "".trimRight();
-+const testSymbolDescription = Symbol("foo").description;
- // es2020
--var testPromiseAllSettled = Promise.allSettled([]);
--var testStringMatchAll = "".matchAll();
--var testRegExpMatchAll = /matchAll/g[Symbol.matchAll]("matchAll");
--var testBigInt = BigInt(123);
-+const testPromiseAllSettled = Promise.allSettled([]);
-+const testStringMatchAll = "".matchAll();
-+const testRegExpMatchAll = /matchAll/g[Symbol.matchAll]("matchAll");
-+const testBigInt = BigInt(123);
- // es2021
--var testPromiseAny = Promise.any([]);
--var testStringReplaceAll = "".replaceAll();
-+const testPromiseAny = Promise.any([]);
-+const testStringReplaceAll = "".replaceAll();
- // esnext
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doesNotNarrowUnionOfConstructorsWithInstanceof.js.diff b/testdata/baselines/reference/submodule/compiler/doesNotNarrowUnionOfConstructorsWithInstanceof.js.diff
index fef8ce5eb8..047c4a6f39 100644
--- a/testdata/baselines/reference/submodule/compiler/doesNotNarrowUnionOfConstructorsWithInstanceof.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/doesNotNarrowUnionOfConstructorsWithInstanceof.js.diff
@@ -1,39 +1,16 @@
 --- old.doesNotNarrowUnionOfConstructorsWithInstanceof.js
 +++ new.doesNotNarrowUnionOfConstructorsWithInstanceof.js
-@@= skipped -29, +29 lines =@@
-
+@@= skipped -30, +30 lines =@@
 
  //// [doesNotNarrowUnionOfConstructorsWithInstanceof.js]
--var A = /** @class */ (function () {
--    function A() {
-+class A {
+ class A {
 +    length;
-+    constructor() {
+     constructor() {
          this.length = 1;
      }
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
-+}
-+class B {
+ }
+ class B {
 +    length;
-+    constructor() {
+     constructor() {
          this.length = 2;
-     }
--    return B;
--}());
-+}
- function getTypedArray(flag) {
-     return flag ? new A() : new B();
- }
- function getTypedArrayConstructor(flag) {
-     return flag ? A : B;
- }
--var a = getTypedArray(true); // A | B
--var b = getTypedArrayConstructor(false); // A constructor | B constructor
-+const a = getTypedArray(true); // A | B
-+const b = getTypedArrayConstructor(false); // A constructor | B constructor
- if (!(a instanceof b)) {
-     console.log(a.length); // Used to be property 'length' does not exist on type 'never'.
- }
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/dottedModuleName.js.diff b/testdata/baselines/reference/submodule/compiler/dottedModuleName.js.diff
index 41246a7dc8..c9b4e92b0a 100644
--- a/testdata/baselines/reference/submodule/compiler/dottedModuleName.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/dottedModuleName.js.diff
@@ -1,23 +1,17 @@
 --- old.dottedModuleName.js
 +++ new.dottedModuleName.js
-@@= skipped -23, +23 lines =@@
- //// [dottedModuleName.js]
- var M;
+@@= skipped -25, +25 lines =@@
  (function (M) {
--    var N;
-+    let N;
+     let N;
      (function (N) {
 +        function f(x) { }
 +        N.f = f;
          2 * x;
--        var X;
-+        let X;
+         let X;
          (function (X) {
--            var Y;
-+            let Y;
+@@= skipped -7, +9 lines =@@
              (function (Y) {
--                var Z;
-+                let Z;
+                 let Z;
                  (function (Z) {
 -                    Z.v2 = f(Z.v);
 +                    Z.v2 = f(v);
@@ -30,14 +24,11 @@
 -    var N;
 +    let N;
      (function (N) {
--        var X;
-+        let X;
+         let X;
          (function (X) {
--            var Y;
-+            let Y;
+@@= skipped -15, +15 lines =@@
              (function (Y) {
--                var Z;
-+                let Z;
+                 let Z;
                  (function (Z) {
 -                    Z.v = N.f(10);
 +                    Z.v = f(10);
diff --git a/testdata/baselines/reference/submodule/compiler/dottedModuleName2.js.diff b/testdata/baselines/reference/submodule/compiler/dottedModuleName2.js.diff
index d12ac2afee..9017b7875f 100644
--- a/testdata/baselines/reference/submodule/compiler/dottedModuleName2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/dottedModuleName2.js.diff
@@ -9,14 +9,6 @@
      (function (B) {
          B.x = 1;
      })(B = A.B || (A.B = {}));
- })(A || (A = {}));
- var AA;
- (function (AA) {
--    var B;
-+    let B;
-     (function (B) {
-         B.x = 1;
-     })(B = AA.B || (AA.B = {}));
 @@= skipped -15, +15 lines =@@
  var tmpOK = AA.B.x;
  var tmpError = A.B.x;
diff --git a/testdata/baselines/reference/submodule/compiler/dottedSymbolResolution1.js.diff b/testdata/baselines/reference/submodule/compiler/dottedSymbolResolution1.js.diff
deleted file mode 100644
index b873837fed..0000000000
--- a/testdata/baselines/reference/submodule/compiler/dottedSymbolResolution1.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.dottedSymbolResolution1.js
-+++ new.dottedSymbolResolution1.js
-@@= skipped -27, +27 lines =@@
- }
-
- //// [dottedSymbolResolution1.js]
--var Base = /** @class */ (function () {
--    function Base() {
--    }
--    Base.prototype.foo = function () { };
--    return Base;
--}());
-+class Base {
-+    foo() { }
-+}
- function each(collection, callback) {
-     return null;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doubleMixinConditionalTypeBaseClassWorks.js.diff b/testdata/baselines/reference/submodule/compiler/doubleMixinConditionalTypeBaseClassWorks.js.diff
index a98c64c8ca..0b6bb5e3de 100644
--- a/testdata/baselines/reference/submodule/compiler/doubleMixinConditionalTypeBaseClassWorks.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/doubleMixinConditionalTypeBaseClassWorks.js.diff
@@ -1,49 +1,10 @@
 --- old.doubleMixinConditionalTypeBaseClassWorks.js
 +++ new.doubleMixinConditionalTypeBaseClassWorks.js
-@@= skipped -10, +10 lines =@@
- class C extends Mixin2(Mixin1(Object)) {}
+@@= skipped -11, +11 lines =@@
 
  //// [doubleMixinConditionalTypeBaseClassWorks.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Mixin1 = function (Base) { return /** @class */ (function (_super) {
--    __extends(class_1, _super);
--    function class_1() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return class_1;
--}(Base)); };
--var Mixin2 = function (Base) { return /** @class */ (function (_super) {
--    __extends(class_2, _super);
--    function class_2() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return class_2;
--}(Base)); };
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(Mixin2(Mixin1(Object))));
-+const Mixin1 = (Base) => class extends Base {
+ const Mixin1 = (Base) => class extends Base {
 +    _fooPrivate;
-+};
-+const Mixin2 = (Base) => class extends Base {
-+};
-+class C extends Mixin2(Mixin1(Object)) {
-+}
\ No newline at end of file
+ };
+ const Mixin2 = (Base) => class extends Base {
+ };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doubleUnderscoreLabels.js.diff b/testdata/baselines/reference/submodule/compiler/doubleUnderscoreLabels.js.diff
deleted file mode 100644
index cf390ee92d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doubleUnderscoreLabels.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.doubleUnderscoreLabels.js
-+++ new.doubleUnderscoreLabels.js
-@@= skipped -17, +17 lines =@@
- //// [doubleUnderscoreLabels.js]
- function doThing() {
-     __call: while (true) {
--        aLabel: for (var i = 0; i < 10; i++) {
-+        aLabel: for (let i = 0; i < 10; i++) {
-             if (i === 3) {
-                 break __call;
-             }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doubleUnderscoreMappedTypes.js.diff b/testdata/baselines/reference/submodule/compiler/doubleUnderscoreMappedTypes.js.diff
deleted file mode 100644
index 69513cb43e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doubleUnderscoreMappedTypes.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.doubleUnderscoreMappedTypes.js
-+++ new.doubleUnderscoreMappedTypes.js
-@@= skipped -27, +27 lines =@@
-
- //// [doubleUnderscoreMappedTypes.js]
- // As expected, I can make an object satisfying this interface
--var ok = {
-+const ok = {
-     property1: "",
-     __property2: ""
- };
--var k = "__property2"; // ok
-+const k = "__property2"; // ok
- // And should work with partial
--var partial = {
-+const partial = {
-     property1: "",
-     __property2: ""
- };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/doubleUnderscoreReactNamespace.js.diff b/testdata/baselines/reference/submodule/compiler/doubleUnderscoreReactNamespace.js.diff
deleted file mode 100644
index ba6e31f118..0000000000
--- a/testdata/baselines/reference/submodule/compiler/doubleUnderscoreReactNamespace.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.doubleUnderscoreReactNamespace.js
-+++ new.doubleUnderscoreReactNamespace.js
-@@= skipped -14, +14 lines =@@
- //// [index.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var thing = __make(__foot, null);
-+const thing = __make(__foot, null);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst1.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst1.js.diff
deleted file mode 100644
index b99f6024be..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst1.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.downlevelLetConst1.js
-+++ new.downlevelLetConst1.js
-@@= skipped -3, +3 lines =@@
- const
-
- //// [downlevelLetConst1.js]
--var ;
-+const ;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst10.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst10.js.diff
deleted file mode 100644
index b5629e5613..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst10.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.downlevelLetConst10.js
-+++ new.downlevelLetConst10.js
-@@= skipped -3, +3 lines =@@
- let a: number = 1
-
- //// [downlevelLetConst10.js]
--var a = 1;
-+let a = 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst12.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst12.js.diff
deleted file mode 100644
index 0937e022fa..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst12.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.downlevelLetConst12.js
-+++ new.downlevelLetConst12.js
-@@= skipped -14, +14 lines =@@
- //// [downlevelLetConst12.js]
- 'use strict';
- // top level let\const should not be renamed
--var foo;
--var bar = 1;
--var baz = [][0];
--var baz2 = { a: 1 }.a;
--var baz3 = [][0];
--var baz4 = { a: 1 }.a;
-+let foo;
-+const bar = 1;
-+let [baz] = [];
-+let { a: baz2 } = { a: 1 };
-+const [baz3] = [];
-+const { a: baz4 } = { a: 1 };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst14.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst14.js.diff
deleted file mode 100644
index 5d615bd2d6..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst14.js.diff
+++ /dev/null
@@ -1,73 +0,0 @@
---- old.downlevelLetConst14.js
-+++ new.downlevelLetConst14.js
-@@= skipped -60, +60 lines =@@
- var x = 10;
- var z0, z1, z2, z3;
- {
--    var x_1 = 20;
--    use(x_1);
--    var z0_1 = [1][0];
--    use(z0_1);
--    var z1_1 = [1][0];
--    use(z1_1);
--    var z2_1 = { a: 1 }.a;
--    use(z2_1);
--    var z3_1 = { a: 1 }.a;
--    use(z3_1);
-+    let x = 20;
-+    use(x);
-+    let [z0] = [1];
-+    use(z0);
-+    let [z1] = [1];
-+    use(z1);
-+    let { a: z2 } = { a: 1 };
-+    use(z2);
-+    let { a: z3 } = { a: 1 };
-+    use(z3);
- }
- use(x);
- use(z0);
-@@= skipped -19, +19 lines =@@
- var z6;
- var y = true;
- {
--    var y_1 = "";
--    var z6_1 = [true][0];
-+    let y = "";
-+    let [z6] = [true];
-     {
--        var y_2 = 1;
--        var z6_2 = { a: 1 }.a;
--        use(y_2);
--        use(z6_2);
-+        let y = 1;
-+        let { a: z6 } = { a: 1 };
-+        use(y);
-+        use(z6);
-     }
--    use(y_1);
--    use(z6_1);
-+    use(y);
-+    use(z6);
- }
- use(y);
- use(z6);
- var z = false;
- var z5 = 1;
- {
--    var z_1 = "";
--    var z5_1 = [5][0];
-+    let z = "";
-+    let [z5] = [5];
-     {
--        var _z = 1;
--        var _z5 = { a: 1 }.a;
-+        let _z = 1;
-+        let { a: _z5 } = { a: 1 };
-         // try to step on generated name
-         use(_z);
-     }
--    use(z_1);
-+    use(z);
- }
- use(y);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst15.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst15.js.diff
deleted file mode 100644
index a636028f32..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst15.js.diff
+++ /dev/null
@@ -1,73 +0,0 @@
---- old.downlevelLetConst15.js
-+++ new.downlevelLetConst15.js
-@@= skipped -60, +60 lines =@@
- var x = 10;
- var z0, z1, z2, z3;
- {
--    var x_1 = 20;
--    use(x_1);
--    var z0_1 = [1][0];
--    use(z0_1);
--    var z1_1 = [{ a: 1 }][0].a;
--    use(z1_1);
--    var z2_1 = { a: 1 }.a;
--    use(z2_1);
--    var z3_1 = { a: { b: 1 } }.a.b;
--    use(z3_1);
-+    const x = 20;
-+    use(x);
-+    const [z0] = [1];
-+    use(z0);
-+    const [{ a: z1 }] = [{ a: 1 }];
-+    use(z1);
-+    const { a: z2 } = { a: 1 };
-+    use(z2);
-+    const { a: { b: z3 } } = { a: { b: 1 } };
-+    use(z3);
- }
- use(x);
- use(z0);
-@@= skipped -19, +19 lines =@@
- var z6;
- var y = true;
- {
--    var y_1 = "";
--    var z6_1 = [true][0];
-+    const y = "";
-+    const [z6] = [true];
-     {
--        var y_2 = 1;
--        var z6_2 = { a: 1 }.a;
--        use(y_2);
--        use(z6_2);
-+        const y = 1;
-+        const { a: z6 } = { a: 1 };
-+        use(y);
-+        use(z6);
-     }
--    use(y_1);
--    use(z6_1);
-+    use(y);
-+    use(z6);
- }
- use(y);
- use(z6);
- var z = false;
- var z5 = 1;
- {
--    var z_1 = "";
--    var z5_1 = [5][0];
-+    const z = "";
-+    const [z5] = [5];
-     {
--        var _z = 1;
--        var _z5 = { a: 1 }.a;
-+        const _z = 1;
-+        const { a: _z5 } = { a: 1 };
-         // try to step on generated name
-         use(_z);
-     }
--    use(z_1);
-+    use(z);
- }
- use(y);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst16.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst16.js.diff
deleted file mode 100644
index d8e8eb19a5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst16.js.diff
+++ /dev/null
@@ -1,323 +0,0 @@
---- old.downlevelLetConst16.js
-+++ new.downlevelLetConst16.js
-@@= skipped -237, +237 lines =@@
- use(y);
- use(z);
- function foo1() {
--    var x = 1;
-+    let x = 1;
-     use(x);
--    var y = [1][0];
-+    let [y] = [1];
-     use(y);
--    var z = { a: 1 }.a;
-+    let { a: z } = { a: 1 };
-     use(z);
- }
- function foo2() {
-     {
--        var x_1 = 1;
--        use(x_1);
--        var y_1 = [1][0];
--        use(y_1);
--        var z_1 = { a: 1 }.a;
--        use(z_1);
-+        let x = 1;
-+        use(x);
-+        let [y] = [1];
-+        use(y);
-+        let { a: z } = { a: 1 };
-+        use(z);
-     }
-     use(x);
- }
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.m1 = function () {
--        var x = 1;
--        use(x);
--        var y = [1][0];
--        use(y);
--        var z = { a: 1 }.a;
--        use(z);
--    };
--    A.prototype.m2 = function () {
--        {
--            var x_2 = 1;
--            use(x_2);
--            var y_2 = [1][0];
--            use(y_2);
--            var z_2 = { a: 1 }.a;
--            use(z_2);
--        }
--        use(x);
--    };
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--    }
--    B.prototype.m1 = function () {
--        var x = 1;
--        use(x);
--        var y = [1][0];
--        use(y);
--        var z = { a: 1 }.a;
--        use(z);
--    };
--    B.prototype.m2 = function () {
--        {
--            var x_3 = 1;
--            use(x_3);
--            var y_3 = [1][0];
--            use(y_3);
--            var z_3 = { a: 1 }.a;
--            use(z_3);
--        }
--        use(x);
--    };
--    return B;
--}());
-+class A {
-+    m1() {
-+        let x = 1;
-+        use(x);
-+        let [y] = [1];
-+        use(y);
-+        let { a: z } = { a: 1 };
-+        use(z);
-+    }
-+    m2() {
-+        {
-+            let x = 1;
-+            use(x);
-+            let [y] = [1];
-+            use(y);
-+            let { a: z } = { a: 1 };
-+            use(z);
-+        }
-+        use(x);
-+    }
-+}
-+class B {
-+    m1() {
-+        const x = 1;
-+        use(x);
-+        const [y] = [1];
-+        use(y);
-+        const { a: z } = { a: 1 };
-+        use(z);
-+    }
-+    m2() {
-+        {
-+            const x = 1;
-+            use(x);
-+            const [y] = [1];
-+            use(y);
-+            const { a: z } = { a: 1 };
-+            use(z);
-+        }
-+        use(x);
-+    }
-+}
- function bar1() {
--    var x = 1;
-+    const x = 1;
-     use(x);
--    var y = [1][0];
-+    const [y] = [1];
-     use(y);
--    var z = { a: 1 }.a;
-+    const { a: z } = { a: 1 };
-     use(z);
- }
- function bar2() {
-     {
--        var x_4 = 1;
--        use(x_4);
--        var y_4 = [1][0];
--        use(y_4);
--        var z_4 = { a: 1 }.a;
--        use(z_4);
-+        const x = 1;
-+        use(x);
-+        const [y] = [1];
-+        use(y);
-+        const { a: z } = { a: 1 };
-+        use(z);
-     }
-     use(x);
- }
- var M1;
- (function (M1) {
--    var x = 1;
-+    let x = 1;
-     use(x);
--    var y = [1][0];
-+    let [y] = [1];
-     use(y);
--    var z = { a: 1 }.a;
-+    let { a: z } = { a: 1 };
-     use(z);
- })(M1 || (M1 = {}));
- var M2;
- (function (M2) {
-     {
--        var x_5 = 1;
--        use(x_5);
--        var y_5 = [1][0];
--        use(y_5);
--        var z_5 = { a: 1 }.a;
--        use(z_5);
-+        let x = 1;
-+        use(x);
-+        let [y] = [1];
-+        use(y);
-+        let { a: z } = { a: 1 };
-+        use(z);
-     }
-     use(x);
- })(M2 || (M2 = {}));
- var M3;
- (function (M3) {
--    var x = 1;
-+    const x = 1;
-     use(x);
--    var y = [1][0];
-+    const [y] = [1];
-     use(y);
--    var z = { a: 1 }.a;
-+    const { a: z } = { a: 1 };
-     use(z);
- })(M3 || (M3 = {}));
- var M4;
- (function (M4) {
-     {
--        var x_6 = 1;
--        use(x_6);
--        var y_6 = [1][0];
--        use(y_6);
--        var z_6 = { a: 1 }.a;
--        use(z_6);
-+        const x = 1;
-+        use(x);
-+        const [y] = [1];
-+        use(y);
-+        const { a: z } = { a: 1 };
-+        use(z);
-     }
-     use(x);
-     use(y);
-     use(z);
- })(M4 || (M4 = {}));
- function foo3() {
--    for (var x_7;;) {
--        use(x_7);
--    }
--    for (var y_7 = [][0];;) {
--        use(y_7);
--    }
--    for (var z_7 = { a: 1 }.a;;) {
--        use(z_7);
-+    for (let x;;) {
-+        use(x);
-+    }
-+    for (let [y] = [];;) {
-+        use(y);
-+    }
-+    for (let { a: z } = { a: 1 };;) {
-+        use(z);
-     }
-     use(x);
- }
- function foo4() {
--    for (var x_8 = 1;;) {
--        use(x_8);
--    }
--    for (var y_8 = [][0];;) {
--        use(y_8);
--    }
--    for (var z_8 = { a: 1 }.a;;) {
--        use(z_8);
-+    for (const x = 1;;) {
-+        use(x);
-+    }
-+    for (const [y] = [];;) {
-+        use(y);
-+    }
-+    for (const { a: z } = { a: 1 };;) {
-+        use(z);
-     }
-     use(x);
- }
- function foo5() {
--    for (var x_9 in []) {
--        use(x_9);
-+    for (let x in []) {
-+        use(x);
-     }
-     use(x);
- }
- function foo6() {
--    for (var x_10 in []) {
--        use(x_10);
-+    for (const x in []) {
-+        use(x);
-     }
-     use(x);
- }
- function foo7() {
--    for (var _i = 0, _a = []; _i < _a.length; _i++) {
--        var x_11 = _a[_i];
--        use(x_11);
-+    for (let x of []) {
-+        use(x);
-     }
-     use(x);
- }
- function foo8() {
--    for (var _i = 0, _a = []; _i < _a.length; _i++) {
--        var x_12 = _a[_i][0];
--        use(x_12);
-+    for (let [x] of []) {
-+        use(x);
-     }
-     use(x);
- }
- function foo9() {
--    for (var _i = 0, _a = []; _i < _a.length; _i++) {
--        var x_13 = _a[_i].a;
--        use(x_13);
-+    for (let { a: x } of []) {
-+        use(x);
-     }
-     use(x);
- }
- function foo10() {
--    for (var _i = 0, _a = []; _i < _a.length; _i++) {
--        var x_14 = _a[_i];
--        use(x_14);
-+    for (const x of []) {
-+        use(x);
-     }
-     use(x);
- }
- function foo11() {
--    for (var _i = 0, _a = []; _i < _a.length; _i++) {
--        var x_15 = _a[_i][0];
--        use(x_15);
-+    for (const [x] of []) {
-+        use(x);
-     }
-     use(x);
- }
- function foo12() {
--    for (var _i = 0, _a = []; _i < _a.length; _i++) {
--        var x_16 = _a[_i].a;
--        use(x_16);
-+    for (const { a: x } of []) {
-+        use(x);
-     }
-     use(x);
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst17.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst17.js.diff
deleted file mode 100644
index 21d4cde7fa..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst17.js.diff
+++ /dev/null
@@ -1,104 +0,0 @@
---- old.downlevelLetConst17.js
-+++ new.downlevelLetConst17.js
-@@= skipped -71, +71 lines =@@
- //// [downlevelLetConst17.js]
- 'use strict';
- var x;
--for (var x_1 = 10;;) {
--    use(x_1);
-+for (let x = 10;;) {
-+    use(x);
- }
- use(x);
--for (var x_2 = 10;;) {
--    use(x_2);
--}
--for (;;) {
--    var x_3 = 10;
--    use(x_3);
--    x_3 = 1;
--}
--for (;;) {
--    var x_4 = 10;
--    use(x_4);
--}
--for (var x_5;;) {
--    use(x_5);
--    x_5 = 1;
--}
--for (;;) {
--    var x_6 = void 0;
--    use(x_6);
--    x_6 = 1;
--}
--while (true) {
--    var x_7 = void 0;
--    use(x_7);
--}
--while (true) {
--    var x_8 = true;
--    use(x_8);
--}
--do {
--    var x_9 = void 0;
--    use(x_9);
--} while (true);
--do {
--    var x_10 = void 0;
--    use(x_10);
--} while (true);
--for (var x_11 in []) {
--    use(x_11);
--}
--for (var x_12 in []) {
--    use(x_12);
--}
--for (var _i = 0, _a = []; _i < _a.length; _i++) {
--    var x_13 = _a[_i];
--    use(x_13);
-+for (const x = 10;;) {
-+    use(x);
-+}
-+for (;;) {
-+    let x = 10;
-+    use(x);
-+    x = 1;
-+}
-+for (;;) {
-+    const x = 10;
-+    use(x);
-+}
-+for (let x;;) {
-+    use(x);
-+    x = 1;
-+}
-+for (;;) {
-+    let x;
-+    use(x);
-+    x = 1;
-+}
-+while (true) {
-+    let x;
-+    use(x);
-+}
-+while (true) {
-+    const x = true;
-+    use(x);
-+}
-+do {
-+    let x;
-+    use(x);
-+} while (true);
-+do {
-+    let x;
-+    use(x);
-+} while (true);
-+for (let x in []) {
-+    use(x);
-+}
-+for (const x in []) {
-+    use(x);
-+}
-+for (const x of []) {
-+    use(x);
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst18.errors.txt b/testdata/baselines/reference/submodule/compiler/downlevelLetConst18.errors.txt
deleted file mode 100644
index 1b818a010b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst18.errors.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-downlevelLetConst18.ts(4,14): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
-downlevelLetConst18.ts(8,14): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
-
-
-==== downlevelLetConst18.ts (2 errors) ====
-    'use strict'
-    
-    for (let x; ;) {
-        function foo() { x };
-                 ~~~
-!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
-    }
-    
-    for (let x; ;) {
-        function foo1() { x };
-                 ~~~~
-!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
-    }
-    
-    for (let x; ;) {
-        (() => { x })();
-    }
-    
-    for (const x = 1; ;) {
-        (() => { x })();
-    }
-    
-    for (let x; ;) {
-        ({ foo() { x }})
-    }
-    
-    for (let x; ;) {
-        ({ get foo() { return x } })
-    }
-    
-    for (let x; ;) {
-        ({ set foo(v) { x } })
-    }
-    
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst18.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst18.errors.txt.diff
new file mode 100644
index 0000000000..53cd185a95
--- /dev/null
+++ b/testdata/baselines/reference/submodule/compiler/downlevelLetConst18.errors.txt.diff
@@ -0,0 +1,43 @@
+--- old.downlevelLetConst18.errors.txt
++++ new.downlevelLetConst18.errors.txt
+@@= skipped -0, +0 lines =@@
+-downlevelLetConst18.ts(4,14): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
+-downlevelLetConst18.ts(8,14): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
+-
+-
+-==== downlevelLetConst18.ts (2 errors) ====
+-    'use strict'
+-    
+-    for (let x; ;) {
+-        function foo() { x };
+-                 ~~~
+-!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
+-    }
+-    
+-    for (let x; ;) {
+-        function foo1() { x };
+-                 ~~~~
+-!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
+-    }
+-    
+-    for (let x; ;) {
+-        (() => { x })();
+-    }
+-    
+-    for (const x = 1; ;) {
+-        (() => { x })();
+-    }
+-    
+-    for (let x; ;) {
+-        ({ foo() { x }})
+-    }
+-    
+-    for (let x; ;) {
+-        ({ get foo() { return x } })
+-    }
+-    
+-    for (let x; ;) {
+-        ({ set foo(v) { x } })
+-    }
+-    
++
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst18.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst18.js.diff
deleted file mode 100644
index 1d8dca1fe1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst18.js.diff
+++ /dev/null
@@ -1,64 +0,0 @@
---- old.downlevelLetConst18.js
-+++ new.downlevelLetConst18.js
-@@= skipped -33, +33 lines =@@
-
- //// [downlevelLetConst18.js]
- 'use strict';
--var _loop_1 = function (x) {
-+for (let x;;) {
-     function foo() { x; }
-     ;
--};
--for (var x = void 0;;) {
--    _loop_1(x);
- }
--var _loop_2 = function (x) {
-+for (let x;;) {
-     function foo1() { x; }
-     ;
--};
--for (var x = void 0;;) {
--    _loop_2(x);
--}
--var _loop_3 = function (x) {
--    (function () { x; })();
--};
--for (var x = void 0;;) {
--    _loop_3(x);
--}
--var _loop_4 = function (x) {
--    (function () { x; })();
--};
--for (var x = 1;;) {
--    _loop_4(x);
--}
--var _loop_5 = function (x) {
--    ({ foo: function () { x; } });
--};
--for (var x = void 0;;) {
--    _loop_5(x);
--}
--var _loop_6 = function (x) {
-+}
-+for (let x;;) {
-+    (() => { x; })();
-+}
-+for (const x = 1;;) {
-+    (() => { x; })();
-+}
-+for (let x;;) {
-+    ({ foo() { x; } });
-+}
-+for (let x;;) {
-     ({ get foo() { return x; } });
--};
--for (var x = void 0;;) {
--    _loop_6(x);
- }
--var _loop_7 = function (x) {
-+for (let x;;) {
-     ({ set foo(v) { x; } });
--};
--for (var x = void 0;;) {
--    _loop_7(x);
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst19.errors.txt b/testdata/baselines/reference/submodule/compiler/downlevelLetConst19.errors.txt
deleted file mode 100644
index 216ba2d6de..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst19.errors.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-downlevelLetConst19.ts(9,14): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
-
-
-==== downlevelLetConst19.ts (1 errors) ====
-    'use strict'
-    declare function use(a: any);
-    var x;
-    function a() {
-      {
-        let x;
-        use(x);
-    
-        function b() {
-                 ~
-!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
-            {
-                let x;
-                use(x);
-            }
-            use(x);
-        }
-      }
-      use(x)
-    }
-    use(x)
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst19.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst19.errors.txt.diff
new file mode 100644
index 0000000000..fb3eb9ab2a
--- /dev/null
+++ b/testdata/baselines/reference/submodule/compiler/downlevelLetConst19.errors.txt.diff
@@ -0,0 +1,29 @@
+--- old.downlevelLetConst19.errors.txt
++++ new.downlevelLetConst19.errors.txt
+@@= skipped -0, +0 lines =@@
+-downlevelLetConst19.ts(9,14): error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
+-
+-
+-==== downlevelLetConst19.ts (1 errors) ====
+-    'use strict'
+-    declare function use(a: any);
+-    var x;
+-    function a() {
+-      {
+-        let x;
+-        use(x);
+-    
+-        function b() {
+-                 ~
+-!!! error TS1250: Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.
+-            {
+-                let x;
+-                use(x);
+-            }
+-            use(x);
+-        }
+-      }
+-      use(x)
+-    }
+-    use(x)
++
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst19.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst19.js.diff
deleted file mode 100644
index 2770f4d1a6..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst19.js.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- old.downlevelLetConst19.js
-+++ new.downlevelLetConst19.js
-@@= skipped -25, +25 lines =@@
- var x;
- function a() {
-     {
--        var x_1;
--        use(x_1);
-+        let x;
-+        use(x);
-         function b() {
-             {
--                var x_2;
--                use(x_2);
-+                let x;
-+                use(x);
-             }
--            use(x_1);
-+            use(x);
-         }
-     }
-     use(x);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst2.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst2.js.diff
deleted file mode 100644
index 27cff34b62..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst2.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.downlevelLetConst2.js
-+++ new.downlevelLetConst2.js
-@@= skipped -3, +3 lines =@@
- const a
-
- //// [downlevelLetConst2.js]
--var a;
-+const a;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst3.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst3.js.diff
deleted file mode 100644
index 4100c9ace1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst3.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.downlevelLetConst3.js
-+++ new.downlevelLetConst3.js
-@@= skipped -3, +3 lines =@@
- const a = 1
-
- //// [downlevelLetConst3.js]
--var a = 1;
-+const a = 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst4.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst4.js.diff
deleted file mode 100644
index 0179ed6dcf..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst4.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.downlevelLetConst4.js
-+++ new.downlevelLetConst4.js
-@@= skipped -3, +3 lines =@@
- const a: number
-
- //// [downlevelLetConst4.js]
--var a;
-+const a;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst5.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst5.js.diff
deleted file mode 100644
index 13d5864bf6..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst5.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.downlevelLetConst5.js
-+++ new.downlevelLetConst5.js
-@@= skipped -3, +3 lines =@@
- const a: number = 1
-
- //// [downlevelLetConst5.js]
--var a = 1;
-+const a = 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst7.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst7.js.diff
deleted file mode 100644
index ca3aadb1af..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst7.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.downlevelLetConst7.js
-+++ new.downlevelLetConst7.js
-@@= skipped -3, +3 lines =@@
- let a
-
- //// [downlevelLetConst7.js]
--var a;
-+let a;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst8.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst8.js.diff
deleted file mode 100644
index 6fe979dcd4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst8.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.downlevelLetConst8.js
-+++ new.downlevelLetConst8.js
-@@= skipped -3, +3 lines =@@
- let a = 1
-
- //// [downlevelLetConst8.js]
--var a = 1;
-+let a = 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/downlevelLetConst9.js.diff b/testdata/baselines/reference/submodule/compiler/downlevelLetConst9.js.diff
deleted file mode 100644
index 537c61d63a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/downlevelLetConst9.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.downlevelLetConst9.js
-+++ new.downlevelLetConst9.js
-@@= skipped -3, +3 lines =@@
- let a: number
-
- //// [downlevelLetConst9.js]
--var a;
-+let a;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateAnonymousInners1.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateAnonymousInners1.js.diff
deleted file mode 100644
index 29846826d9..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateAnonymousInners1.js.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- old.duplicateAnonymousInners1.js
-+++ new.duplicateAnonymousInners1.js
-@@= skipped -29, +29 lines =@@
- //// [duplicateAnonymousInners1.js]
- var Foo;
- (function (Foo) {
--    var Helper = /** @class */ (function () {
--        function Helper() {
--        }
--        return Helper;
--    }());
--    var Inner = /** @class */ (function () {
--        function Inner() {
--        }
--        return Inner;
--    }());
-+    class Helper {
-+    }
-+    class Inner {
-+    }
-     // Inner should show up in intellisense
-     Foo.Outer = 0;
- })(Foo || (Foo = {}));
- (function (Foo) {
-     // Should not be an error
--    var Helper = /** @class */ (function () {
--        function Helper() {
--        }
--        return Helper;
--    }());
-+    class Helper {
-+    }
-     // Inner should not show up in intellisense
-     // Outer should show up in intellisense
- })(Foo || (Foo = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateAnonymousModuleClasses.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateAnonymousModuleClasses.js.diff
deleted file mode 100644
index b73aa50950..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateAnonymousModuleClasses.js.diff
+++ /dev/null
@@ -1,68 +0,0 @@
---- old.duplicateAnonymousModuleClasses.js
-+++ new.duplicateAnonymousModuleClasses.js
-@@= skipped -60, +60 lines =@@
- //// [duplicateAnonymousModuleClasses.js]
- var F;
- (function (F) {
--    var Helper = /** @class */ (function () {
--        function Helper() {
--        }
--        return Helper;
--    }());
-+    class Helper {
-+    }
- })(F || (F = {}));
- (function (F) {
-     // Should not be an error
--    var Helper = /** @class */ (function () {
--        function Helper() {
--        }
--        return Helper;
--    }());
-+    class Helper {
-+    }
- })(F || (F = {}));
- var Foo;
- (function (Foo) {
--    var Helper = /** @class */ (function () {
--        function Helper() {
--        }
--        return Helper;
--    }());
-+    class Helper {
-+    }
- })(Foo || (Foo = {}));
- (function (Foo) {
-     // Should not be an error
--    var Helper = /** @class */ (function () {
--        function Helper() {
--        }
--        return Helper;
--    }());
-+    class Helper {
-+    }
- })(Foo || (Foo = {}));
- var Gar;
- (function (Gar) {
--    var Foo;
-+    let Foo;
-     (function (Foo) {
--        var Helper = /** @class */ (function () {
--            function Helper() {
--            }
--            return Helper;
--        }());
-+        class Helper {
-+        }
-     })(Foo || (Foo = {}));
-     (function (Foo) {
-         // Should not be an error
--        var Helper = /** @class */ (function () {
--            function Helper() {
--            }
--            return Helper;
--        }());
-+        class Helper {
-+        }
-     })(Foo || (Foo = {}));
- })(Gar || (Gar = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateClassElements.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateClassElements.js.diff
index 254bd56691..d11ea59e0d 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateClassElements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateClassElements.js.diff
@@ -1,68 +1,13 @@
 --- old.duplicateClassElements.js
 +++ new.duplicateClassElements.js
-@@= skipped -46, +46 lines =@@
- }
+@@= skipped -47, +47 lines =@@
 
  //// [duplicateClassElements.js]
--var a = /** @class */ (function () {
--    function a() {
+ class a {
+-    b() {
+-    }
+-    b() {
 -    }
--    a.prototype.b = function () {
--    };
--    a.prototype.b = function () {
--    };
--    Object.defineProperty(a.prototype, "x", {
--        get: function () {
--            return 10;
--        },
--        set: function (_x) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(a.prototype, "y", {
--        get: function () {
--            return "Hello";
--        },
--        set: function (_y) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    a.prototype.z = function () {
--    };
--    Object.defineProperty(a.prototype, "z", {
--        get: function () {
--            return "Hello";
--        },
--        set: function (_y) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(a.prototype, "x2", {
--        get: function () {
--            return 10;
--        },
--        set: function (_x) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(a.prototype, "z2", {
--        get: function () {
--            return "Hello";
--        },
--        set: function (_y) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    a.prototype.z2 = function () {
--    };
--    return a;
--}());
-+class a {
 +    a;
 +    a;
 +    b() {
@@ -70,34 +15,14 @@
 +    b() {
 +    }
 +    x;
-+    get x() {
-+        return 10;
-+    }
-+    set x(_x) {
-+    }
-+    get y() {
-+        return "Hello";
-+    }
-+    set y(_y) {
-+    }
-+    z() {
-+    }
-+    get z() {
-+        return "Hello";
-+    }
-+    set z(_y) {
-+    }
-+    get x2() {
-+        return 10;
-+    }
-+    set x2(_x) {
-+    }
+     get x() {
+         return 10;
+     }
+@@= skipped -26, +29 lines =@@
+     }
+     set x2(_x) {
+     }
 +    x2;
-+    get z2() {
-+        return "Hello";
-+    }
-+    set z2(_y) {
-+    }
-+    z2() {
-+    }
-+}
\ No newline at end of file
+     get z2() {
+         return "Hello";
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateConstructorOverloadSignature.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateConstructorOverloadSignature.js.diff
deleted file mode 100644
index ea2cd9a531..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateConstructorOverloadSignature.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.duplicateConstructorOverloadSignature.js
-+++ new.duplicateConstructorOverloadSignature.js
-@@= skipped -7, +7 lines =@@
- }
-
- //// [duplicateConstructorOverloadSignature.js]
--var C = /** @class */ (function () {
--    function C(x) {
--    }
--    return C;
--}());
-+class C {
-+    constructor(x) { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateConstructorOverloadSignature2.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateConstructorOverloadSignature2.js.diff
deleted file mode 100644
index 36e689df44..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateConstructorOverloadSignature2.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.duplicateConstructorOverloadSignature2.js
-+++ new.duplicateConstructorOverloadSignature2.js
-@@= skipped -7, +7 lines =@@
- }
-
- //// [duplicateConstructorOverloadSignature2.js]
--var C = /** @class */ (function () {
--    function C(x) {
--    }
--    return C;
--}());
-+class C {
-+    constructor(x) { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateErrorAssignability.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateErrorAssignability.js.diff
index b8982ef528..7cc8df4aa7 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateErrorAssignability.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateErrorAssignability.js.diff
@@ -5,8 +5,6 @@
 
  //// [duplicateErrorAssignability.js]
 -"use strict";
--var x = a = b;
--var obj = { 3: "three" };
-+const x = a = b;
-+let obj = { 3: "three" };
+ const x = a = b;
+ let obj = { 3: "three" };
  obj[x];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateErrorClassExpression.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateErrorClassExpression.js.diff
index 08f8cb86f7..d6f782811e 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateErrorClassExpression.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateErrorClassExpression.js.diff
@@ -5,39 +5,11 @@
 
  //// [duplicateErrorClassExpression.js]
 -"use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Base = /** @class */ (function () {
--    function Base() {
--    }
--    return Base;
--}());
--var x = /** @class */ (function (_super) {
--    __extends(Derived, _super);
--    function Derived() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Derived;
--}(Base));
--var obj = { 3: "three" };
-+class Base {
+ class Base {
 +    foo;
-+}
-+const x = class Derived extends Base {
+ }
+ const x = class Derived extends Base {
 +    foo;
-+};
-+let obj = { 3: "three" };
+ };
+ let obj = { 3: "three" };
  obj[x];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierBindingElementInParameterDeclaration1.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierBindingElementInParameterDeclaration1.js.diff
deleted file mode 100644
index c5e065b5cc..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierBindingElementInParameterDeclaration1.js.diff
+++ /dev/null
@@ -1,46 +0,0 @@
---- old.duplicateIdentifierBindingElementInParameterDeclaration1.js
-+++ new.duplicateIdentifierBindingElementInParameterDeclaration1.js
-@@= skipped -10, +10 lines =@@
- function f7(a, func = (a) => { return 1 }) { }  // not error
-
- //// [duplicateIdentifierBindingElementInParameterDeclaration1.js]
--function f0(a, _a, _b) {
--    var a = _a[0], b = _a[1][0];
--    var b = _b.b;
--}
--function f1(_a) {
--    var a = _a[0], a = _a[1];
--}
--function f2(_a, _b) {
--    var b = _a.b;
--    var b = _b.b;
--}
--function f3(_a) {
--    var c = _a[0], c = _a[1][0], c = _a[2][0][0];
--}
--function f4(_a) {
--    var d = _a.d, d = _a.d.d;
--}
--function f5(_a, _b, _c) {
--    var e = _a.e, e = _a.e.e;
--    var e = _b.e;
--    var d = _c[0], e = _c[1], e = _c[2][0][0];
--    var e = [];
--    for (var _i = 3; _i < arguments.length; _i++) {
--        e[_i - 3] = arguments[_i];
--    }
--}
--function f6(_a) {
--    var f = _a[0], f = _a.slice(1);
--}
--function f7(a, func) {
--    if (func === void 0) { func = function (a) { return 1; }; }
--} // not error
-+function f0(a, [a, [b]], { b }) { }
-+function f1([a, a]) { }
-+function f2({ b }, { b }) { }
-+function f3([c, [c], [[c]]]) { }
-+function f4({ d, d: { d } }) { }
-+function f5({ e, e: { e } }, { e }, [d, e, [[e]]], ...e) { }
-+function f6([f, ...f]) { }
-+function f7(a, func = (a) => { return 1; }) { } // not error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierBindingElementInParameterDeclaration2.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierBindingElementInParameterDeclaration2.js.diff
deleted file mode 100644
index de28159ef8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierBindingElementInParameterDeclaration2.js.diff
+++ /dev/null
@@ -1,46 +0,0 @@
---- old.duplicateIdentifierBindingElementInParameterDeclaration2.js
-+++ new.duplicateIdentifierBindingElementInParameterDeclaration2.js
-@@= skipped -12, +12 lines =@@
-
- //// [duplicateIdentifierBindingElementInParameterDeclaration2.js]
- "use strict";
--function f0(a, _a, _b) {
--    var a = _a[0], b = _a[1][0];
--    var b = _b.b;
--}
--function f1(_a) {
--    var a = _a[0], a = _a[1];
--}
--function f2(_a, _b) {
--    var b = _a.b;
--    var b = _b.b;
--}
--function f3(_a) {
--    var c = _a[0], c = _a[1][0], c = _a[2][0][0];
--}
--function f4(_a) {
--    var d = _a.d, d = _a.d.d;
--}
--function f5(_a, _b, _c) {
--    var e = _a.e, e = _a.e.e;
--    var e = _b.e;
--    var d = _c[0], e = _c[1], e = _c[2][0][0];
--    var e = [];
--    for (var _i = 3; _i < arguments.length; _i++) {
--        e[_i - 3] = arguments[_i];
--    }
--}
--function f6(_a) {
--    var f = _a[0], f = _a.slice(1);
--}
--function f7(a, func) {
--    if (func === void 0) { func = function (a) { return 1; }; }
--} // not error
-+function f0(a, [a, [b]], { b }) { }
-+function f1([a, a]) { }
-+function f2({ b }, { b }) { }
-+function f3([c, [c], [[c]]]) { }
-+function f4({ d, d: { d } }) { }
-+function f5({ e, e: { e } }, { e }, [d, e, [[e]]], ...e) { }
-+function f6([f, ...f]) { }
-+function f7(a, func = (a) => { return 1; }) { } // not error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierComputedName.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierComputedName.js.diff
index 123dad42d9..2f0a335446 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierComputedName.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierComputedName.js.diff
@@ -1,15 +1,9 @@
 --- old.duplicateIdentifierComputedName.js
 +++ new.duplicateIdentifierComputedName.js
-@@= skipped -7, +7 lines =@@
-
+@@= skipped -8, +8 lines =@@
 
  //// [duplicateIdentifierComputedName.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    ["a"];
 +    ["a"];
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierDifferentModifiers.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierDifferentModifiers.js.diff
index 6b3ee83a03..e088da8fa9 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierDifferentModifiers.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierDifferentModifiers.js.diff
@@ -1,23 +1,12 @@
 --- old.duplicateIdentifierDifferentModifiers.js
 +++ new.duplicateIdentifierDifferentModifiers.js
-@@= skipped -25, +25 lines =@@
-
+@@= skipped -26, +26 lines =@@
  //// [duplicateIdentifierDifferentModifiers.js]
  // OK
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
+ class A {
 +    y;
-+}
+ }
  // Not OK
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    y;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierDifferentSpelling.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierDifferentSpelling.js.diff
index ff0edb22c1..f23b078423 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierDifferentSpelling.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierDifferentSpelling.js.diff
@@ -1,19 +1,14 @@
 --- old.duplicateIdentifierDifferentSpelling.js
 +++ new.duplicateIdentifierDifferentSpelling.js
-@@= skipped -9, +9 lines =@@
-
+@@= skipped -10, +10 lines =@@
 
  //// [duplicateIdentifierDifferentSpelling.js]
--var A = /** @class */ (function () {
--    function A() {
--        this[3] = '';
+ class A {
+-    constructor() {
+-        this[0b11] = '';
 -        this[3] = '';
 -    }
--    return A;
--}());
--var X = { 3: '', 3: '' };
-+class A {
 +    0b11 = '';
 +    3 = '';
-+}
-+var X = { 0b11: '', 3: '' };
\ No newline at end of file
+ }
+ var X = { 0b11: '', 3: '' };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierEnum.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierEnum.js.diff
index 79048410c2..8e639a2a85 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierEnum.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierEnum.js.diff
@@ -1,17 +1,11 @@
 --- old.duplicateIdentifierEnum.js
 +++ new.duplicateIdentifierEnum.js
-@@= skipped -41, +41 lines =@@
- (function (A) {
+@@= skipped -42, +42 lines =@@
      A[A["bar"] = 0] = "bar";
  })(A || (A = {}));
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
+ class A {
 +    foo;
-+}
+ }
 +var B;
 +(function (B) {
 +    B[B["bar"] = 0] = "bar";
@@ -22,18 +16,11 @@
  function C() {
      return 0;
  }
-@@= skipped -12, +17 lines =@@
- (function (D) {
+@@= skipped -9, +17 lines =@@
      D[D["bar"] = 0] = "bar";
  })(D || (D = {}));
--var E = /** @class */ (function () {
--    function E() {
--    }
--    return E;
--}());
-+class E {
+ class E {
 +    foo;
-+}
+ }
  // also make sure the error appears when trying to merge an enum in a separate file.
- //// [duplicateIdentifierEnum_B.js]
- function D() {
\ No newline at end of file
+ //// [duplicateIdentifierEnum_B.js]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierRelatedSpans1.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierRelatedSpans1.js.diff
deleted file mode 100644
index 9fe72f22dd..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierRelatedSpans1.js.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- old.duplicateIdentifierRelatedSpans1.js
-+++ new.duplicateIdentifierRelatedSpans1.js
-@@= skipped -11, +11 lines =@@
-
-
- //// [file1.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
--var Bar = 3;
-+class Foo {
-+}
-+const Bar = 3;
- //// [file2.js]
--var Bar = /** @class */ (function () {
--    function Bar() {
--    }
--    return Bar;
--}());
-+class Bar {
-+}
- //// [file3.js]
--var Bar = 42;
-+let Bar = 42;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierRelatedSpans2.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifierRelatedSpans2.js.diff
deleted file mode 100644
index e25acc10e8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifierRelatedSpans2.js.diff
+++ /dev/null
@@ -1,133 +0,0 @@
---- old.duplicateIdentifierRelatedSpans2.js
-+++ new.duplicateIdentifierRelatedSpans2.js
-@@= skipped -22, +22 lines =@@
-
-
- //// [file1.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--    }
--    return B;
--}());
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var D = /** @class */ (function () {
--    function D() {
--    }
--    return D;
--}());
--var E = /** @class */ (function () {
--    function E() {
--    }
--    return E;
--}());
--var F = /** @class */ (function () {
--    function F() {
--    }
--    return F;
--}());
--var G = /** @class */ (function () {
--    function G() {
--    }
--    return G;
--}());
--var H = /** @class */ (function () {
--    function H() {
--    }
--    return H;
--}());
--var I = /** @class */ (function () {
--    function I() {
--    }
--    return I;
--}());
-+class A {
-+}
-+class B {
-+}
-+class C {
-+}
-+class D {
-+}
-+class E {
-+}
-+class F {
-+}
-+class G {
-+}
-+class H {
-+}
-+class I {
-+}
- //// [file2.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--    }
--    return B;
--}());
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var D = /** @class */ (function () {
--    function D() {
--    }
--    return D;
--}());
--var E = /** @class */ (function () {
--    function E() {
--    }
--    return E;
--}());
--var F = /** @class */ (function () {
--    function F() {
--    }
--    return F;
--}());
--var G = /** @class */ (function () {
--    function G() {
--    }
--    return G;
--}());
--var H = /** @class */ (function () {
--    function H() {
--    }
--    return H;
--}());
--var I = /** @class */ (function () {
--    function I() {
--    }
--    return I;
--}());
-+class A {
-+}
-+class B {
-+}
-+class C {
-+}
-+class D {
-+}
-+class E {
-+}
-+class F {
-+}
-+class G {
-+}
-+class H {
-+}
-+class I {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossContainerBoundaries.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossContainerBoundaries.js.diff
index 247375367c..68d2fb5b2a 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossContainerBoundaries.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossContainerBoundaries.js.diff
@@ -1,77 +1,14 @@
 --- old.duplicateIdentifiersAcrossContainerBoundaries.js
 +++ new.duplicateIdentifiersAcrossContainerBoundaries.js
-@@= skipped -56, +56 lines =@@
- //// [duplicateIdentifiersAcrossContainerBoundaries.js]
- var M;
- (function (M) {
--    var I = /** @class */ (function () {
--        function I() {
--        }
--        return I;
--    }());
-+    class I {
-+    }
-     M.I = I;
- })(M || (M = {}));
- (function (M) {
-@@= skipped -12, +9 lines =@@
-     M.f = f;
- })(M || (M = {}));
- (function (M) {
--    var f = /** @class */ (function () {
--        function f() {
--        }
--        return f;
--    }()); // error
-+    class f {
-+    } // error
-     M.f = f;
- })(M || (M = {}));
- (function (M) {
-     function g() { }
- })(M || (M = {}));
- (function (M) {
--    var g = /** @class */ (function () {
--        function g() {
--        }
--        return g;
--    }()); // no error
-+    class g {
-+    } // no error
-     M.g = g;
- })(M || (M = {}));
- (function (M) {
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        return C;
--    }());
-+    class C {
-+    }
-     M.C = C;
- })(M || (M = {}));
- (function (M) {
-@@= skipped -33, +24 lines =@@
+@@= skipped -89, +89 lines =@@
      M.v = 3;
  })(M || (M = {}));
  (function (M) {
 -    M.v = 3; // error for redeclaring var in a different parent
 +    v = 3; // error for redeclaring var in a different parent
  })(M || (M = {}));
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
+ class Foo {
 +    static x;
-+}
+ }
  (function (Foo) {
- })(Foo || (Foo = {}));
- var N;
- (function (N) {
--    var F;
-+    let F;
-     (function (F) {
-         var t;
-     })(F = N.F || (N.F = {}));
\ No newline at end of file
+ })(Foo || (Foo = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js.diff
index 5fb2914033..9ea9518870 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateIdentifiersAcrossFileBoundaries.js.diff
@@ -1,61 +1,14 @@
 --- old.duplicateIdentifiersAcrossFileBoundaries.js
 +++ new.duplicateIdentifiersAcrossFileBoundaries.js
-@@= skipped -33, +33 lines =@@
-
-
- //// [file1.js]
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    return C1;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    return C2;
--}());
-+class C1 {
-+}
-+class C2 {
-+}
+@@= skipped -40, +40 lines =@@
  function f() { }
  var v = 3;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
+ class Foo {
 +    static x;
-+}
+ }
  var N;
  (function (N) {
--    var F;
-+    let F;
-     (function (F) {
-         var t;
-     })(F = N.F || (N.F = {}));
- })(N || (N = {}));
- //// [file2.js]
--var I = /** @class */ (function () {
--    function I() {
--    }
--    return I;
--}()); // error -- cannot merge interface with non-ambient class
-+class I {
-+} // error -- cannot merge interface with non-ambient class
- function C2() { } // error -- cannot merge function with non-ambient class
--var f = /** @class */ (function () {
--    function f() {
--    }
--    return f;
--}()); // error -- cannot merge function with non-ambient class
-+class f {
-+} // error -- cannot merge function with non-ambient class
- var v = 3;
- var Foo;
- (function (Foo) {
-@@= skipped -60, +46 lines =@@
+@@= skipped -38, +39 lines =@@
  }
  //// [file2.d.ts]
  declare class I {
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateLocalVariable1.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateLocalVariable1.js.diff
index 1e262aabc2..62371627fa 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateLocalVariable1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateLocalVariable1.js.diff
@@ -9,51 +9,21 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.tests = exports.TestRunner = exports.TestCase = void 0;
  var TestFileDir = ".\\TempTestFiles";
--var TestCase = /** @class */ (function () {
--    function TestCase(name, test, errorMessageRegEx) {
-+class TestCase {
+ class TestCase {
 +    name;
 +    test;
 +    errorMessageRegEx;
-+    constructor(name, test, errorMessageRegEx) {
+     constructor(name, test, errorMessageRegEx) {
          this.name = name;
          this.test = test;
-         this.errorMessageRegEx = errorMessageRegEx;
-     }
--    return TestCase;
--}());
-+}
+@@= skipped -14, +15 lines =@@
+ }
  exports.TestCase = TestCase;
--var TestRunner = /** @class */ (function () {
--    function TestRunner() {
+ class TestRunner {
+-    constructor() {
 -        this.tests = [];
 -    }
--    TestRunner.arrayCompare = function (arg1, arg2) {
-+class TestRunner {
 +    tests = [];
-+    static arrayCompare(arg1, arg2) {
+     static arrayCompare(arg1, arg2) {
          return (arg1.every(function (val, index) { return val === arg2[index]; }));
--    };
--    TestRunner.prototype.addTest = function (test) {
-+    }
-+    addTest(test) {
-         this.tests.push(test);
--    };
--    TestRunner.prototype.run = function () {
-+    }
-+    run() {
-         var success = true;
-         for (var test in this.tests) {
-             var exception = false;
-@@= skipped -60, +58 lines =@@
-         }
-         else {
-         }
--    };
--    return TestRunner;
--}());
-+    }
-+}
- exports.TestRunner = TestRunner;
- exports.tests = (function () {
-     var testRunner = new TestRunner();
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateLocalVariable2.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateLocalVariable2.js.diff
index 9e406b5390..2641296ced 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateLocalVariable2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateLocalVariable2.js.diff
@@ -8,25 +8,21 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.tests = exports.TestRunner = exports.TestCase = void 0;
--    var TestCase = /** @class */ (function () {
--        function TestCase(name, test, errorMessageRegEx) {
+-    class TestCase {
+-        constructor(name, test, errorMessageRegEx) {
 -            this.name = name;
 -            this.test = test;
 -            this.errorMessageRegEx = errorMessageRegEx;
 -        }
--        return TestCase;
--    }());
+-    }
 -    exports.TestCase = TestCase;
--    var TestRunner = /** @class */ (function () {
--        function TestRunner() {
--        }
--        TestRunner.arrayCompare = function (arg1, arg2) {
+-    class TestRunner {
+-        static arrayCompare(arg1, arg2) {
 -            return false;
--        };
--        TestRunner.prototype.addTest = function (test) {
--        };
--        return TestRunner;
--    }());
+-        }
+-        addTest(test) {
+-        }
+-    }
 -    exports.TestRunner = TestRunner;
 -    exports.tests = (function () {
 -        var testRunner = new TestRunner();
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateObjectLiteralProperty_computedName1.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateObjectLiteralProperty_computedName1.js.diff
deleted file mode 100644
index b580d81e82..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateObjectLiteralProperty_computedName1.js.diff
+++ /dev/null
@@ -1,77 +0,0 @@
---- old.duplicateObjectLiteralProperty_computedName1.js
-+++ new.duplicateObjectLiteralProperty_computedName1.js
-@@= skipped -37, +37 lines =@@
-
-
- //// [duplicateObjectLiteralProperty_computedName1.js]
--var _a, _b, _c, _d, _e, _f, _g;
--var t1 = (_a = {
--        1: 1
--    },
--    _a[1] = 0 // duplicate
--,
--    _a);
--var t2 = (_b = {
--        1: 1
--    },
--    _b[+1] = 0 // duplicate
--,
--    _b);
--var t3 = (_c = {
--        "1": 1
--    },
--    _c[+1] = 0 // duplicate
--,
--    _c);
--var t4 = (_d = {
--        "+1": 1
--    },
--    _d[+1] = 0 // two different keys, "+1", "1"
--,
--    _d);
--var t5 = (_e = {
--        "+1": 1
--    },
--    _e["+1"] = 0 // duplicate
--,
--    _e);
--var t6 = (_f = {
--        "-1": 1
--    },
--    _f[-1] = 0 // duplicate
--,
--    _f);
--var t7 = (_g = {
--        "-1": 1
--    },
--    _g["-1"] = 0 // duplicate
--,
--    _g);
-+const t1 = {
-+    1: 1,
-+    [1]: 0 // duplicate
-+};
-+const t2 = {
-+    1: 1,
-+    [+1]: 0 // duplicate
-+};
-+const t3 = {
-+    "1": 1,
-+    [+1]: 0 // duplicate
-+};
-+const t4 = {
-+    "+1": 1,
-+    [+1]: 0 // two different keys, "+1", "1"
-+};
-+const t5 = {
-+    "+1": 1,
-+    ["+1"]: 0 // duplicate
-+};
-+const t6 = {
-+    "-1": 1,
-+    [-1]: 0 // duplicate
-+};
-+const t7 = {
-+    "-1": 1,
-+    ["-1"]: 0 // duplicate
-+};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateObjectLiteralProperty_computedName2.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateObjectLiteralProperty_computedName2.js.diff
deleted file mode 100644
index df9af7c213..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateObjectLiteralProperty_computedName2.js.diff
+++ /dev/null
@@ -1,50 +0,0 @@
---- old.duplicateObjectLiteralProperty_computedName2.js
-+++ new.duplicateObjectLiteralProperty_computedName2.js
-@@= skipped -27, +27 lines =@@
-
-
- //// [duplicateObjectLiteralProperty_computedName2.js]
--var _a, _b, _c, _d;
--var n = 1;
--var s = "s";
-+const n = 1;
-+const s = "s";
- var E1;
- (function (E1) {
-     E1["A"] = "ENUM_KEY";
-@@= skipped -11, +10 lines =@@
- (function (E2) {
-     E2[E2["B"] = 0] = "B";
- })(E2 || (E2 = {}));
--var t1 = (_a = {},
--    _a[n] = 1,
--    _a[n] = 1,
--    _a);
--var t2 = (_b = {},
--    _b[s] = 1,
--    _b[s] = 1,
--    _b);
--var t3 = (_c = {},
--    _c[E1.A] = 1,
--    _c[E1.A] = 1,
--    _c);
--var t4 = (_d = {},
--    _d[E2.B] = 1,
--    _d[E2.B] = 1,
--    _d);
-+const t1 = {
-+    [n]: 1,
-+    [n]: 1, // duplicate
-+};
-+const t2 = {
-+    [s]: 1,
-+    [s]: 1, // duplicate
-+};
-+const t3 = {
-+    [E1.A]: 1,
-+    [E1.A]: 1, // duplicate
-+};
-+const t4 = {
-+    [E2.B]: 1,
-+    [E2.B]: 1, // duplicate
-+};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateObjectLiteralProperty_computedName3.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateObjectLiteralProperty_computedName3.js.diff
index 26ad6aa1de..23e0b62965 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateObjectLiteralProperty_computedName3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateObjectLiteralProperty_computedName3.js.diff
@@ -1,42 +1,11 @@
 --- old.duplicateObjectLiteralProperty_computedName3.js
 +++ new.duplicateObjectLiteralProperty_computedName3.js
-@@= skipped -45, +45 lines =@@
- })(E2 || (exports.E2 = E2 = {}));
+@@= skipped -46, +46 lines =@@
  //// [b.js]
  "use strict";
--var _a, _b, _c, _d;
  Object.defineProperty(exports, "__esModule", { value: true });
 -var keys = require("./a");
--var t1 = (_a = {},
--    _a[keys.n] = 1,
--    _a[keys.n] = 1,
--    _a);
--var t2 = (_b = {},
--    _b[keys.s] = 1,
--    _b[keys.s] = 1,
--    _b);
--var t3 = (_c = {},
--    _c[keys.E1.A] = 1,
--    _c[keys.E1.A] = 1,
--    _c);
--var t4 = (_d = {},
--    _d[keys.E2.B] = 1,
--    _d[keys.E2.B] = 1,
--    _d);
 +const keys = require("./a");
-+const t1 = {
-+    [keys.n]: 1,
-+    [keys.n]: 1, // duplicate
-+};
-+const t2 = {
-+    [keys.s]: 1,
-+    [keys.s]: 1, // duplicate
-+};
-+const t3 = {
-+    [keys.E1.A]: 1,
-+    [keys.E1.A]: 1, // duplicate
-+};
-+const t4 = {
-+    [keys.E2.B]: 1,
-+    [keys.E2.B]: 1, // duplicate
-+};
\ No newline at end of file
+ const t1 = {
+     [keys.n]: 1,
+     [keys.n]: 1, // duplicate
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateOverloadInTypeAugmentation1.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateOverloadInTypeAugmentation1.js.diff
deleted file mode 100644
index 2dd5159477..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateOverloadInTypeAugmentation1.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.duplicateOverloadInTypeAugmentation1.js
-+++ new.duplicateOverloadInTypeAugmentation1.js
-@@= skipped -11, +11 lines =@@
-
- //// [duplicateOverloadInTypeAugmentation1.js]
- var a;
--var r5 = a.reduce(function (x, y) { return x + y; });
-+var r5 = a.reduce((x, y) => x + y);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicatePackage_referenceTypes.js.diff b/testdata/baselines/reference/submodule/compiler/duplicatePackage_referenceTypes.js.diff
index b035f304a5..8741077cda 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicatePackage_referenceTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicatePackage_referenceTypes.js.diff
@@ -5,6 +5,5 @@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
 -var a = require("a");
--var foo = a.foo;
 +const a = require("a");
-+let foo = a.foo;
\ No newline at end of file
+ let foo = a.foo;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicatePackage_subModule.js.diff b/testdata/baselines/reference/submodule/compiler/duplicatePackage_subModule.js.diff
index 86ff5ba370..f1568fbcc2 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicatePackage_subModule.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicatePackage_subModule.js.diff
@@ -5,6 +5,5 @@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
 -var a = require("a");
--var o = a.o;
 +const a = require("a");
-+const o = a.o;
\ No newline at end of file
+ const o = a.o;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateSymbolsExportMatching.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateSymbolsExportMatching.js.diff
index 9f12f0be4c..c7fe10c2c9 100644
--- a/testdata/baselines/reference/submodule/compiler/duplicateSymbolsExportMatching.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/duplicateSymbolsExportMatching.js.diff
@@ -10,7 +10,7 @@
 -    // Should report error only once for instantiated module
 -    var M;
 -    (function (M) {
--        var inst;
+-        let inst;
 -        (function (inst) {
 -            var t;
 -        })(inst || (inst = {}));
@@ -25,7 +25,7 @@
 -        var w;
 -    })(M2 || (M2 = {}));
 -    (function (M) {
--        var F;
+-        let F;
 -        (function (F) {
 -            var t;
 -        })(F || (F = {}));
@@ -33,11 +33,8 @@
 -        M.F = F;
 -    })(M || (M = {}));
 -    (function (M) {
--        var C = /** @class */ (function () {
--            function C() {
--            }
--            return C;
--        }());
+-        class C {
+-        }
 -        (function (C) {
 -            var t;
 -        })(C = M.C || (M.C = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateTypeParameters2.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateTypeParameters2.js.diff
deleted file mode 100644
index 6b8964cf40..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateTypeParameters2.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.duplicateTypeParameters2.js
-+++ new.duplicateTypeParameters2.js
-@@= skipped -6, +6 lines =@@
- interface I {}
-
- //// [duplicateTypeParameters2.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.foo = function () { };
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--    }
--    B.prototype.bar = function () { };
--    return B;
--}());
-+class A {
-+    foo() { }
-+}
-+class B {
-+    bar() { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/duplicateVariablesByScope.js.diff b/testdata/baselines/reference/submodule/compiler/duplicateVariablesByScope.js.diff
deleted file mode 100644
index f819c62525..0000000000
--- a/testdata/baselines/reference/submodule/compiler/duplicateVariablesByScope.js.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- old.duplicateVariablesByScope.js
-+++ new.duplicateVariablesByScope.js
-@@= skipped -51, +51 lines =@@
-         var result = 2;
-     }
- }
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function () {
-+class C {
-+    foo() {
-         try {
-             var x = 1;
-         }
-         catch (e) {
-             var x = 2;
-         }
--    };
--    return C;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/dynamicImportTrailingComma.js.diff b/testdata/baselines/reference/submodule/compiler/dynamicImportTrailingComma.js.diff
index 1f135ce2ee..147468858b 100644
--- a/testdata/baselines/reference/submodule/compiler/dynamicImportTrailingComma.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/dynamicImportTrailingComma.js.diff
@@ -1,10 +1,8 @@
 --- old.dynamicImportTrailingComma.js
 +++ new.dynamicImportTrailingComma.js
-@@= skipped -4, +4 lines =@@
- import(path,);
+@@= skipped -5, +5 lines =@@
 
  //// [dynamicImportTrailingComma.js]
--var path = './foo';
+ const path = './foo';
 -Promise.resolve("".concat(path)).then(function (s) { return require(s); });
-+const path = './foo';
 +Promise.resolve(`${path}`).then(s => require(s));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/dynamicImportWithNestedThis_es5.js.diff b/testdata/baselines/reference/submodule/compiler/dynamicImportWithNestedThis_es5.js.diff
index 82387ae9bd..0c09c4528b 100644
--- a/testdata/baselines/reference/submodule/compiler/dynamicImportWithNestedThis_es5.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/dynamicImportWithNestedThis_es5.js.diff
@@ -16,17 +16,16 @@
 -    "use strict";
 -    var __syncRequire = typeof module === "object" && typeof module.exports === "object";
 -    // https://github.com/Microsoft/TypeScript/issues/17564
--    var C = /** @class */ (function () {
--        function C() {
+-    class C {
+-        constructor() {
 -            this._path = './other';
 -        }
--        C.prototype.dynamic = function () {
+-        dynamic() {
 -            var _a;
 -            return _a = this._path, __syncRequire ? Promise.resolve().then(function () { return require(_a); }) : new Promise(function (resolve_1, reject_1) { require([_a], resolve_1, reject_1); });
--        };
--        return C;
--    }());
--    var c = new C();
+-        }
+-    }
+-    const c = new C();
 -    c.dynamic();
 -});
 +// https://github.com/Microsoft/TypeScript/issues/17564
diff --git a/testdata/baselines/reference/submodule/compiler/elaboratedErrors.js.diff b/testdata/baselines/reference/submodule/compiler/elaboratedErrors.js.diff
index 3da69b9844..931564e81d 100644
--- a/testdata/baselines/reference/submodule/compiler/elaboratedErrors.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/elaboratedErrors.js.diff
@@ -1,17 +1,10 @@
 --- old.elaboratedErrors.js
 +++ new.elaboratedErrors.js
-@@= skipped -30, +30 lines =@@
- //// [elaboratedErrors.js]
+@@= skipped -31, +31 lines =@@
  function fn(s) { }
  // This should issue a large error, not a small one
--var WorkerFS = /** @class */ (function () {
--    function WorkerFS() {
--    }
--    return WorkerFS;
--}());
-+class WorkerFS {
+ class WorkerFS {
 +    read;
-+}
+ }
  var x;
- var y;
- // Only one of these errors should be large
\ No newline at end of file
+ var y;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/elidedEmbeddedStatementsReplacedWithSemicolon.js.diff b/testdata/baselines/reference/submodule/compiler/elidedEmbeddedStatementsReplacedWithSemicolon.js.diff
index 0c2a6e16c6..4e43578412 100644
--- a/testdata/baselines/reference/submodule/compiler/elidedEmbeddedStatementsReplacedWithSemicolon.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/elidedEmbeddedStatementsReplacedWithSemicolon.js.diff
@@ -15,10 +15,9 @@
 -    ;
 -for (; 0;)
 -    ;
--for (var _ in [])
+-for (let _ in [])
 -    ;
--for (var _i = 0, _a = []; _i < _a.length; _i++) {
--    var _ = _a[_i];
+-for (let _ of [])
 -    ;
 +if (1) {
 +    var A;
@@ -54,7 +53,7 @@
 +    var G;
 +    (function (G) {
 +    })(G || (G = {}));
- }
++}
  // @ts-ignore suppress `with` statement error
 -with (window)
 -    ;
diff --git a/testdata/baselines/reference/submodule/compiler/emitAccessExpressionOfCastedObjectLiteralExpressionInArrowFunctionES5.js.diff b/testdata/baselines/reference/submodule/compiler/emitAccessExpressionOfCastedObjectLiteralExpressionInArrowFunctionES5.js.diff
deleted file mode 100644
index 399abf4a3d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emitAccessExpressionOfCastedObjectLiteralExpressionInArrowFunctionES5.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.emitAccessExpressionOfCastedObjectLiteralExpressionInArrowFunctionES5.js
-+++ new.emitAccessExpressionOfCastedObjectLiteralExpressionInArrowFunctionES5.js
-@@= skipped -4, +4 lines =@@
- (x) => ({ "1": "one", "2": "two" } as { [key: string]: string }).x;
-
- //// [emitAccessExpressionOfCastedObjectLiteralExpressionInArrowFunctionES5.js]
--(function (x) { return ({ "1": "one", "2": "two" }[x]); });
--(function (x) { return ({ "1": "one", "2": "two" }.x); });
-+(x) => ({ "1": "one", "2": "two" }[x]);
-+(x) => ({ "1": "one", "2": "two" }.x);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emitCapturingThisInTupleDestructuring1.js.diff b/testdata/baselines/reference/submodule/compiler/emitCapturingThisInTupleDestructuring1.js.diff
deleted file mode 100644
index 9d7019deec..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emitCapturingThisInTupleDestructuring1.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.emitCapturingThisInTupleDestructuring1.js
-+++ new.emitCapturingThisInTupleDestructuring1.js
-@@= skipped -6, +6 lines =@@
- });
-
- //// [emitCapturingThisInTupleDestructuring1.js]
--var _this = this;
--wrapper(function (array) {
--    _this.test = array[0], _this.test1 = array[1], _this.test2 = array[2]; // even though there is a compiler error, we should still emit lexical capture for "this"
-+wrapper((array) => {
-+    [this.test, this.test1, this.test2] = array; // even though there is a compiler error, we should still emit lexical capture for "this"
- });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emitCapturingThisInTupleDestructuring2.js.diff b/testdata/baselines/reference/submodule/compiler/emitCapturingThisInTupleDestructuring2.js.diff
index 6bafde7075..018323c60c 100644
--- a/testdata/baselines/reference/submodule/compiler/emitCapturingThisInTupleDestructuring2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitCapturingThisInTupleDestructuring2.js.diff
@@ -1,22 +1,12 @@
 --- old.emitCapturingThisInTupleDestructuring2.js
 +++ new.emitCapturingThisInTupleDestructuring2.js
-@@= skipped -13, +13 lines =@@
-
+@@= skipped -14, +14 lines =@@
  //// [emitCapturingThisInTupleDestructuring2.js]
  var array1 = [1, 2];
--var B = /** @class */ (function () {
--    function B() {
-+class B {
+ class B {
 +    test;
 +    test1;
 +    test2;
-+    method() {
-+        () => [this.test, this.test1, this.test2] = array1; // even though there is a compiler error, we should still emit lexical capture for "this" 
-     }
--    B.prototype.method = function () {
--        var _this = this;
--        (function () { return _this.test = array1[0], _this.test1 = array1[1], _this.test2 = array1[2], array1; }); // even though there is a compiler error, we should still emit lexical capture for "this" 
--    };
--    return B;
--}());
-+}
\ No newline at end of file
+     method() {
+         () => [this.test, this.test1, this.test2] = array1; // even though there is a compiler error, we should still emit lexical capture for "this" 
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js.diff b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js.diff
index 1e74295534..78974550d3 100644
--- a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile.js.diff
@@ -1,94 +1,23 @@
 --- old.emitClassExpressionInDeclarationFile.js
 +++ new.emitClassExpressionInDeclarationFile.js
-@@= skipped -33, +33 lines =@@
-
- //// [emitClassExpressionInDeclarationFile.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Test = exports.FooItem = exports.circularReference = exports.simpleExample = void 0;
- exports.WithTags = WithTags;
--exports.simpleExample = /** @class */ (function () {
--    function simpleExample() {
--    }
--    simpleExample.getTags = function () { };
--    simpleExample.prototype.tags = function () { };
--    return simpleExample;
--}());
--exports.circularReference = /** @class */ (function () {
--    function C() {
--    }
--    C.getTags = function (c) { return c; };
--    C.prototype.tags = function (c) { return c; };
--    return C;
--}());
-+var simpleExample = class {
-+    static getTags() { }
-+    tags() { }
-+};
-+exports.simpleExample = simpleExample;
+@@= skipped -41, +41 lines =@@
+     tags() { }
+ };
+ exports.simpleExample = simpleExample;
+-var circularReference = class C {
 +exports.circularReference = class C {
-+    static getTags(c) { return c; }
-+    tags(c) { return c; }
-+};
+     static getTags(c) { return c; }
+     tags(c) { return c; }
+ };
+-exports.circularReference = circularReference;
  // repro from #15066
--var FooItem = /** @class */ (function () {
--    function FooItem() {
--    }
--    FooItem.prototype.foo = function () { };
--    return FooItem;
--}());
-+class FooItem {
-+    foo() { }
+ class FooItem {
+     foo() { }
 +    name;
-+}
+ }
  exports.FooItem = FooItem;
  function WithTags(Base) {
--    return /** @class */ (function (_super) {
--        __extends(class_1, _super);
--        function class_1() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        class_1.getTags = function () { };
--        class_1.prototype.tags = function () { };
--        return class_1;
--    }(Base));
--}
--var Test = /** @class */ (function (_super) {
--    __extends(Test, _super);
--    function Test() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Test;
--}(WithTags(FooItem)));
-+    return class extends Base {
-+        static getTags() { }
-+        tags() { }
-+    };
-+}
-+class Test extends WithTags(FooItem) {
-+}
- exports.Test = Test;
--var test = new Test();
-+const test = new Test();
- Test.getTags();
- test.tags();
-
-@@= skipped -73, +41 lines =@@
+@@= skipped -33, +33 lines =@@
  };
  export declare var circularReference: {
      new (): {
diff --git a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js.diff b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js.diff
index 4d4f7316b8..c00eee9d55 100644
--- a/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitClassExpressionInDeclarationFile2.js.diff
@@ -4,21 +4,6 @@
 
  //// [emitClassExpressionInDeclarationFile2.js]
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
 -var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
 -    if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
 -    return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
@@ -27,25 +12,16 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Test = exports.FooItem = exports.noPrivates = void 0;
  exports.WithTags = WithTags;
--exports.noPrivates = (_a = /** @class */ (function () {
--        function class_1() {
+-exports.noPrivates = (_a = class {
+-        constructor() {
 -            this.p = 12;
 -        }
--        class_1.getTags = function () { };
--        class_1.prototype.tags = function () { };
--        return class_1;
--    }()),
+-        static getTags() { }
+-        tags() { }
+-    },
 -    __setFunctionName(_a, "noPrivates"),
 -    _a.ps = -1,
 -    _a);
--// altered repro from #15066 to add private property
--var FooItem = /** @class */ (function () {
--    function FooItem() {
--        this.property = "capitalism";
--    }
--    FooItem.prototype.foo = function () { };
--    return FooItem;
--}());
 +var noPrivates = class {
 +    static getTags() { }
 +    tags() { }
@@ -55,41 +31,19 @@
 +// altered repro from #15066 to add private property
 +;
 +exports.noPrivates = noPrivates;
-+// altered repro from #15066 to add private property
-+class FooItem {
-+    foo() { }
+ // altered repro from #15066 to add private property
+ class FooItem {
+-    constructor() {
+-        this.property = "capitalism";
+-    }
+     foo() { }
 +    name;
 +    property = "capitalism";
-+}
+ }
  exports.FooItem = FooItem;
  function WithTags(Base) {
--    return /** @class */ (function (_super) {
--        __extends(class_2, _super);
--        function class_2() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        class_2.getTags = function () { };
--        class_2.prototype.tags = function () { };
--        return class_2;
--    }(Base));
--}
--var Test = /** @class */ (function (_super) {
--    __extends(Test, _super);
--    function Test() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Test;
--}(WithTags(FooItem)));
-+    return class extends Base {
-+        static getTags() { }
-+        tags() { }
-+    };
-+}
-+class Test extends WithTags(FooItem) {
-+}
- exports.Test = Test;
--var test = new Test();
-+const test = new Test();
+@@= skipped -38, +31 lines =@@
+ const test = new Test();
  Test.getTags();
  test.tags();
 +
diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js.diff b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js.diff
index 10cf4bbeb0..2fc9e41e26 100644
--- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=commonjs).js.diff
@@ -1,16 +1,6 @@
 --- old.emitDecoratorMetadata_isolatedModules(module=commonjs).js
 +++ new.emitDecoratorMetadata_isolatedModules(module=commonjs).js
-@@= skipped -47, +47 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.C3 = void 0;
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    return C3;
--}());
-+class C3 {
-+}
+@@= skipped -52, +52 lines =@@
  exports.C3 = C3;
  //// [index.js]
  "use strict";
@@ -26,12 +16,12 @@
  Object.defineProperty(exports, "__esModule", { value: true });
 -var t1 = require("./type1");
 -var class3_1 = require("./class3");
--var HelloWorld = /** @class */ (function () {
--    function HelloWorld() {
+-let HelloWorld = (() => {
+-    class HelloWorld {
+-        handleEvent1(event) { } // Error
+-        handleEvent2(event) { } // Ok
+-        handleEvent3(event) { return undefined; } // Ok, Error
 -    }
--    HelloWorld.prototype.handleEvent1 = function (event) { }; // Error
--    HelloWorld.prototype.handleEvent2 = function (event) { }; // Ok
--    HelloWorld.prototype.handleEvent3 = function (event) { return undefined; }; // Ok, Error
 -    __decorate([
 -        EventListener('1'),
 -        __metadata("design:type", Function),
@@ -63,7 +53,7 @@
 -        __metadata("design:returntype", Object)
 -    ], HelloWorld.prototype, "handleEvent3", null);
 -    return HelloWorld;
--}());
+-})();
 +class HelloWorld {
 +    @EventListener('1')
 +    handleEvent1(event) { } // Error
diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js.diff b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js.diff
index 48a99aaed1..d6e0b1b851 100644
--- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_isolatedModules(module=esnext).js.diff
@@ -1,17 +1,8 @@
 --- old.emitDecoratorMetadata_isolatedModules(module=esnext).js
 +++ new.emitDecoratorMetadata_isolatedModules(module=esnext).js
-@@= skipped -42, +42 lines =@@
- //// [type2.js]
- export {};
- //// [class3.js]
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    return C3;
--}());
--export { C3 };
-+export class C3 {
-+}
+@@= skipped -45, +45 lines =@@
+ export class C3 {
+ }
  //// [index.js]
 -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
 -    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -24,12 +15,12 @@
 -};
 -import * as t1 from "./type1";
 -import { C3 } from "./class3";
--var HelloWorld = /** @class */ (function () {
--    function HelloWorld() {
+-let HelloWorld = (() => {
+-    class HelloWorld {
+-        handleEvent1(event) { } // Error
+-        handleEvent2(event) { } // Ok
+-        handleEvent3(event) { return undefined; } // Ok, Error
 -    }
--    HelloWorld.prototype.handleEvent1 = function (event) { }; // Error
--    HelloWorld.prototype.handleEvent2 = function (event) { }; // Ok
--    HelloWorld.prototype.handleEvent3 = function (event) { return undefined; }; // Ok, Error
 -    __decorate([
 -        EventListener('1'),
 -        __metadata("design:type", Function),
@@ -61,7 +52,7 @@
 -        __metadata("design:returntype", Object)
 -    ], HelloWorld.prototype, "handleEvent3", null);
 -    return HelloWorld;
--}());
+-})();
 +class HelloWorld {
 +    @EventListener('1')
 +    handleEvent1(event) { } // Error
diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js.diff b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js.diff
index 85053f553c..0da589efcf 100644
--- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_object.js.diff
@@ -13,10 +13,11 @@
 -var __metadata = (this && this.__metadata) || function (k, v) {
 -    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
 -};
--var A = /** @class */ (function () {
--    function A(hi) {
--    }
--    A.prototype.method = function (there) { };
+-let A = (() => {
+-    let A = class A {
+-        constructor(hi) { }
+-        method(there) { }
+-    };
 -    __decorate([
 -        MyMethodDecorator,
 -        __metadata("design:type", Function),
@@ -28,7 +29,7 @@
 -        __metadata("design:paramtypes", [Object])
 -    ], A);
 -    return A;
--}());
+-})();
 +@MyClassDecorator
 +class A {
 +    constructor(hi) { }
diff --git a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js.diff b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js.diff
index bcb5161e1d..279f00977e 100644
--- a/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitDecoratorMetadata_restArgs.js.diff
@@ -13,18 +13,10 @@
 -var __metadata = (this && this.__metadata) || function (k, v) {
 -    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
 -};
--var A = /** @class */ (function () {
--    function A() {
--        var args = [];
--        for (var _i = 0; _i < arguments.length; _i++) {
--            args[_i] = arguments[_i];
--        }
--    }
--    A.prototype.method = function () {
--        var args = [];
--        for (var _i = 0; _i < arguments.length; _i++) {
--            args[_i] = arguments[_i];
--        }
+-let A = (() => {
+-    let A = class A {
+-        constructor(...args) { }
+-        method(...args) { }
 -    };
 -    __decorate([
 -        MyMethodDecorator,
@@ -37,19 +29,11 @@
 -        __metadata("design:paramtypes", [Object])
 -    ], A);
 -    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--        var args = [];
--        for (var _i = 0; _i < arguments.length; _i++) {
--            args[_i] = arguments[_i];
--        }
--    }
--    B.prototype.method = function () {
--        var args = [];
--        for (var _i = 0; _i < arguments.length; _i++) {
--            args[_i] = arguments[_i];
--        }
+-})();
+-let B = (() => {
+-    let B = class B {
+-        constructor(...args) { }
+-        method(...args) { }
 -    };
 -    __decorate([
 -        MyMethodDecorator,
@@ -62,7 +46,7 @@
 -        __metadata("design:paramtypes", [Number])
 -    ], B);
 -    return B;
--}());
+-})();
 +@MyClassDecorator
 +class A {
 +    constructor(...args) { }
diff --git a/testdata/baselines/reference/submodule/compiler/emitMemberAccessExpression.js.diff b/testdata/baselines/reference/submodule/compiler/emitMemberAccessExpression.js.diff
index 262d81f77a..128f7dff18 100644
--- a/testdata/baselines/reference/submodule/compiler/emitMemberAccessExpression.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitMemberAccessExpression.js.diff
@@ -10,22 +10,9 @@
 -        var Model;
 +        let Model;
          (function (Model) {
--            var _Person = /** @class */ (function () {
--                function _Person() {
--                }
--                _Person.prototype.populate = function (raw) {
-+            class _Person {
-+                populate(raw) {
-                     var res = Model.KnockoutExtentions;
--                };
--                return _Person;
--            }());
-+                }
-+            }
-             Model._Person = _Person;
-         })(Model = PeopleAtWork.Model || (PeopleAtWork.Model = {}));
-     })(PeopleAtWork = Microsoft.PeopleAtWork || (Microsoft.PeopleAtWork = {}));
-@@= skipped -24, +21 lines =@@
+             class _Person {
+                 populate(raw) {
+@@= skipped -21, +21 lines =@@
  /// 
  var Microsoft;
  (function (Microsoft) {
@@ -35,13 +22,5 @@
 -        var Model;
 +        let Model;
          (function (Model) {
--            var KnockoutExtentions = /** @class */ (function () {
--                function KnockoutExtentions() {
--                }
--                return KnockoutExtentions;
--            }());
-+            class KnockoutExtentions {
-+            }
-             Model.KnockoutExtentions = KnockoutExtentions;
-         })(Model = PeopleAtWork.Model || (PeopleAtWork.Model = {}));
-     })(PeopleAtWork = Microsoft.PeopleAtWork || (Microsoft.PeopleAtWork = {}));
\ No newline at end of file
+             class KnockoutExtentions {
+             }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js.diff b/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js.diff
index 12528a8d61..af82e570f5 100644
--- a/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitMethodCalledNew.js.diff
@@ -5,25 +5,13 @@
  //// [emitMethodCalledNew.js]
  "use strict";
 -// https://github.com/microsoft/TypeScript/issues/55075
--var _a;
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.c = exports.b = exports.a = void 0;
 +// https://github.com/microsoft/TypeScript/issues/55075
  exports.a = {
--    new: function (x) { return x + 1; }
-+    new(x) { return x + 1; }
+     new(x) { return x + 1; }
  };
- exports.b = {
--    "new": function (x) { return x + 1; }
--};
--exports.c = (_a = {},
--    _a["new"] = function (x) { return x + 1; },
--    _a);
-+    "new"(x) { return x + 1; }
-+};
-+exports.c = {
-+    ["new"](x) { return x + 1; }
-+};
+@@= skipped -15, +15 lines =@@
 
 
  //// [emitMethodCalledNew.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/emitOneLineVariableDeclarationRemoveCommentsFalse.js.diff b/testdata/baselines/reference/submodule/compiler/emitOneLineVariableDeclarationRemoveCommentsFalse.js.diff
index 37f2bb0f39..227efecf76 100644
--- a/testdata/baselines/reference/submodule/compiler/emitOneLineVariableDeclarationRemoveCommentsFalse.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitOneLineVariableDeclarationRemoveCommentsFalse.js.diff
@@ -1,20 +1,16 @@
 --- old.emitOneLineVariableDeclarationRemoveCommentsFalse.js
 +++ new.emitOneLineVariableDeclarationRemoveCommentsFalse.js
-@@= skipped -10, +10 lines =@@
-
+@@= skipped -11, +11 lines =@@
 
  //// [emitOneLineVariableDeclarationRemoveCommentsFalse.js]
--var a = /*[[${something}]]*/ {};
--var b = /*[[${something}]]*/ {};
--var c = /*[[${something}]]*/ { hoge: true };
--var d /*[[${something}]]*/ = {};
--var e /*[[${something}]]*/ = {};
--var f = /* comment1 */ d(e);
--var g = /* comment2 */ d(e);
-+let a = /*[[${something}]]*/ {};
+ let a = /*[[${something}]]*/ {};
+-let b = /*[[${something}]]*/ {};
+-let c = /*[[${something}]]*/ { hoge: true };
+-let d /*[[${something}]]*/ = {};
 +let b = {};
 +let c = { hoge: true };
 +let d = {};
-+let e /*[[${something}]]*/ = {};
-+let f = /* comment1 */ d(e);
+ let e /*[[${something}]]*/ = {};
+ let f = /* comment1 */ d(e);
+-let g = /* comment2 */ d(e);
 +let g = d(e);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emitSkipsThisWithRestParameter.js.diff b/testdata/baselines/reference/submodule/compiler/emitSkipsThisWithRestParameter.js.diff
deleted file mode 100644
index a62c73dc51..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emitSkipsThisWithRestParameter.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.emitSkipsThisWithRestParameter.js
-+++ new.emitSkipsThisWithRestParameter.js
-@@= skipped -9, +9 lines =@@
-
- //// [emitSkipsThisWithRestParameter.js]
- function rebase(fn) {
--    return function () {
--        var args = [];
--        for (var _i = 0; _i < arguments.length; _i++) {
--            args[_i] = arguments[_i];
--        }
-+    return function (...args) {
-         return fn.apply(this, [this].concat(args));
-     };
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitParameterPropertyDeclaration1.js.diff b/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitParameterPropertyDeclaration1.js.diff
index 085fd32052..6f1e0e132d 100644
--- a/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitParameterPropertyDeclaration1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitParameterPropertyDeclaration1.js.diff
@@ -1,52 +1,19 @@
 --- old.emitSuperCallBeforeEmitParameterPropertyDeclaration1.js
 +++ new.emitSuperCallBeforeEmitParameterPropertyDeclaration1.js
-@@= skipped -15, +15 lines =@@
-
+@@= skipped -16, +16 lines =@@
 
  //// [emitSuperCallBeforeEmitParameterPropertyDeclaration1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
+ class A {
+-    constructor() {
 -        this.blub = 6;
 -    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B(x) {
--        "use strict";
--        'someStringForEgngInject';
--        var _this = _super.call(this) || this;
--        _this.x = x;
--        return _this;
--    }
--    return B;
--}(A));
-+class A {
 +    blub = 6;
-+}
-+class B extends A {
+ }
+ class B extends A {
 +    x;
-+    constructor(x) {
-+        "use strict";
-+        'someStringForEgngInject';
+     constructor(x) {
 +        "use strict";
 +        'someStringForEgngInject';
-+        super();
-+        this.x = x;
-+    }
-+}
\ No newline at end of file
+         "use strict";
+         'someStringForEgngInject';
+         super();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitPropertyDeclaration1.js.diff b/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitPropertyDeclaration1.js.diff
index c55c687deb..24edb87295 100644
--- a/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitPropertyDeclaration1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitPropertyDeclaration1.js.diff
@@ -1,51 +1,22 @@
 --- old.emitSuperCallBeforeEmitPropertyDeclaration1.js
 +++ new.emitSuperCallBeforeEmitPropertyDeclaration1.js
-@@= skipped -17, +17 lines =@@
- }
+@@= skipped -18, +18 lines =@@
 
  //// [emitSuperCallBeforeEmitPropertyDeclaration1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
+ class A {
+-    constructor() {
 -        this.blub = 6;
 -    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        "use strict";
--        'someStringForEgngInject';
--        var _this = _super.call(this) || this;
--        _this.blub = 12;
--        return _this;
--    }
--    return B;
--}(A));
-+class A {
 +    blub = 6;
-+}
-+class B extends A {
+ }
+ class B extends A {
 +    blub = 12;
-+    constructor() {
-+        "use strict";
-+        'someStringForEgngInject';
+     constructor() {
 +        "use strict";
 +        'someStringForEgngInject';
-+        super();
-+    }
-+}
\ No newline at end of file
+         "use strict";
+         'someStringForEgngInject';
+         super();
+-        this.blub = 12;
+     }
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitPropertyDeclarationAndParameterPropertyDeclaration1.js.diff b/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitPropertyDeclarationAndParameterPropertyDeclaration1.js.diff
index 7d24bd7b28..ab9d334c74 100644
--- a/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitPropertyDeclarationAndParameterPropertyDeclaration1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emitSuperCallBeforeEmitPropertyDeclarationAndParameterPropertyDeclaration1.js.diff
@@ -1,54 +1,24 @@
 --- old.emitSuperCallBeforeEmitPropertyDeclarationAndParameterPropertyDeclaration1.js
 +++ new.emitSuperCallBeforeEmitPropertyDeclarationAndParameterPropertyDeclaration1.js
-@@= skipped -15, +15 lines =@@
- }
+@@= skipped -16, +16 lines =@@
 
  //// [emitSuperCallBeforeEmitPropertyDeclarationAndParameterPropertyDeclaration1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
+ class A {
+-    constructor() {
 -        this.blub = 6;
 -    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B(x) {
--        "use strict";
--        'someStringForEgngInject';
--        var _this = _super.call(this) || this;
--        _this.x = x;
--        _this.blah = 2;
--        return _this;
--    }
--    return B;
--}(A));
-+class A {
 +    blub = 6;
-+}
-+class B extends A {
+ }
+ class B extends A {
 +    x;
 +    blah = 2;
-+    constructor(x) {
-+        "use strict";
-+        'someStringForEgngInject';
+     constructor(x) {
+         "use strict";
+         'someStringForEgngInject';
 +        "use strict";
 +        'someStringForEgngInject';
-+        super();
-+        this.x = x;
-+    }
-+}
\ No newline at end of file
+         super();
+         this.x = x;
+-        this.blah = 2;
+     }
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emitThisInObjectLiteralGetter.js.diff b/testdata/baselines/reference/submodule/compiler/emitThisInObjectLiteralGetter.js.diff
deleted file mode 100644
index 874299703c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emitThisInObjectLiteralGetter.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.emitThisInObjectLiteralGetter.js
-+++ new.emitThisInObjectLiteralGetter.js
-@@= skipped -8, +8 lines =@@
-
-
- //// [emitThisInObjectLiteralGetter.js]
--var example = {
-+const example = {
-     get foo() {
--        var _this = this;
--        return function (item) { return _this.bar(item); };
-+        return item => this.bar(item);
-     }
- };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emitThisInSuperMethodCall.js.diff b/testdata/baselines/reference/submodule/compiler/emitThisInSuperMethodCall.js.diff
deleted file mode 100644
index 84eaeafc9c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emitThisInSuperMethodCall.js.diff
+++ /dev/null
@@ -1,78 +0,0 @@
---- old.emitThisInSuperMethodCall.js
-+++ new.emitThisInSuperMethodCall.js
-@@= skipped -29, +29 lines =@@
-
-
- //// [emitThisInSuperMethodCall.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var User = /** @class */ (function () {
--    function User() {
--    }
--    User.prototype.sayHello = function () {
--    };
--    return User;
--}());
--var RegisteredUser = /** @class */ (function (_super) {
--    __extends(RegisteredUser, _super);
--    function RegisteredUser() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    RegisteredUser.prototype.f = function () {
--        (function () {
-+class User {
-+    sayHello() {
-+    }
-+}
-+class RegisteredUser extends User {
-+    f() {
-+        () => {
-             function inner() {
--                _super.sayHello.call(this);
-+                super.sayHello();
-             }
--        });
--    };
--    RegisteredUser.prototype.g = function () {
--        function inner() {
--            var _this = this;
--            (function () {
--                _super.sayHello.call(_this);
--            });
--        }
--    };
--    RegisteredUser.prototype.h = function () {
--        function inner() {
--            _super.sayHello.call(this);
--        }
--    };
--    return RegisteredUser;
--}(User));
-+        };
-+    }
-+    g() {
-+        function inner() {
-+            () => {
-+                super.sayHello();
-+            };
-+        }
-+    }
-+    h() {
-+        function inner() {
-+            super.sayHello();
-+        }
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyAnonymousObjectNarrowing(strictnullchecks=false).js.diff b/testdata/baselines/reference/submodule/compiler/emptyAnonymousObjectNarrowing(strictnullchecks=false).js.diff
deleted file mode 100644
index 156e714989..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emptyAnonymousObjectNarrowing(strictnullchecks=false).js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.emptyAnonymousObjectNarrowing(strictnullchecks=false).js
-+++ new.emptyAnonymousObjectNarrowing(strictnullchecks=false).js
-@@= skipped -129, +129 lines =@@
-     nonNull;
- }
- // Repro from #50567
--var foo = function (value) {
-+const foo = (value) => {
-     if (!value) {
-         return 'foo';
-     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyAnonymousObjectNarrowing(strictnullchecks=true).js.diff b/testdata/baselines/reference/submodule/compiler/emptyAnonymousObjectNarrowing(strictnullchecks=true).js.diff
deleted file mode 100644
index 2efdeb82b1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emptyAnonymousObjectNarrowing(strictnullchecks=true).js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.emptyAnonymousObjectNarrowing(strictnullchecks=true).js
-+++ new.emptyAnonymousObjectNarrowing(strictnullchecks=true).js
-@@= skipped -129, +129 lines =@@
-     nonNull;
- }
- // Repro from #50567
--var foo = function (value) {
-+const foo = (value) => {
-     if (!value) {
-         return 'foo';
-     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyArrayDestructuringExpressionVisitedByTransformer.js.diff b/testdata/baselines/reference/submodule/compiler/emptyArrayDestructuringExpressionVisitedByTransformer.js.diff
deleted file mode 100644
index 757fc7b911..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emptyArrayDestructuringExpressionVisitedByTransformer.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.emptyArrayDestructuringExpressionVisitedByTransformer.js
-+++ new.emptyArrayDestructuringExpressionVisitedByTransformer.js
-@@= skipped -4, +4 lines =@@
- var b = [1].map(_ => _);
-
- //// [emptyArrayDestructuringExpressionVisitedByTransformer.js]
--var a = [1].map(function (_) { return _; });
--var b = [1].map(function (_) { return _; });
-+var a = [] = [1].map(_ => _);
-+var b = [1].map(_ => _);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyDeclarationEmitIsModule.js.diff b/testdata/baselines/reference/submodule/compiler/emptyDeclarationEmitIsModule.js.diff
deleted file mode 100644
index c89b363db0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emptyDeclarationEmitIsModule.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.emptyDeclarationEmitIsModule.js
-+++ new.emptyDeclarationEmitIsModule.js
-@@= skipped -14, +14 lines =@@
- //// [module.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
-
-
- //// [index.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyGenericParamList.js.diff b/testdata/baselines/reference/submodule/compiler/emptyGenericParamList.js.diff
deleted file mode 100644
index 64cb4f2fb7..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emptyGenericParamList.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.emptyGenericParamList.js
-+++ new.emptyGenericParamList.js
-@@= skipped -4, +4 lines =@@
- var x: I<>;
-
- //// [emptyGenericParamList.js]
--var I = /** @class */ (function () {
--    function I() {
--    }
--    return I;
--}());
-+class I {
-+}
- var x;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyModuleName.js.diff b/testdata/baselines/reference/submodule/compiler/emptyModuleName.js.diff
index 7e8886933b..a390512c39 100644
--- a/testdata/baselines/reference/submodule/compiler/emptyModuleName.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/emptyModuleName.js.diff
@@ -1,33 +1,10 @@
 --- old.emptyModuleName.js
 +++ new.emptyModuleName.js
-@@= skipped -6, +6 lines =@@
-
+@@= skipped -7, +7 lines =@@
  //// [emptyModuleName.js]
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
 -var A = require("");
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
 +const A = require("");
-+class B extends A {
-+}
\ No newline at end of file
+ class B extends A {
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.js.diff b/testdata/baselines/reference/submodule/compiler/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.js.diff
deleted file mode 100644
index 59d0bde0ed..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.emptyObjectNotSubtypeOfIndexSignatureContainingObject1.js
-+++ new.emptyObjectNotSubtypeOfIndexSignatureContainingObject1.js
-@@= skipped -53, +53 lines =@@
-     return null;
- }
- function fooToBar(foos) {
--    var result = foos == null ? {} : mapValues(foos, function (f) { return f.foo; });
-+    const result = foos == null ? {} : mapValues(foos, f => f.foo);
-     // This line _should_ fail, because `result` is not the right type.
-     return result;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.js.diff b/testdata/baselines/reference/submodule/compiler/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.js.diff
deleted file mode 100644
index 1fb563c11d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.emptyObjectNotSubtypeOfIndexSignatureContainingObject2.js
-+++ new.emptyObjectNotSubtypeOfIndexSignatureContainingObject2.js
-@@= skipped -54, +54 lines =@@
-     return null;
- }
- function fooToBar(foos) {
--    var wat = mapValues(foos, function (f) { return f.foo; });
--    var result = foos == null ? {} : mapValues(foos, function (f) { return f.foo; });
-+    const wat = mapValues(foos, f => f.foo);
-+    const result = foos == null ? {} : mapValues(foos, f => f.foo);
-     // This line _should_ fail, because `result` is not the right type.
-     return result;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyThenWarning.js.diff b/testdata/baselines/reference/submodule/compiler/emptyThenWarning.js.diff
deleted file mode 100644
index 8a1853eb37..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emptyThenWarning.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.emptyThenWarning.js
-+++ new.emptyThenWarning.js
-@@= skipped -10, +10 lines =@@
- //// [emptyThenWarning.js]
- if (1)
-     ;
--var x = 0;
-+let x = 0;
- if (true === true)
-     ;
- {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyThenWithoutWarning.js.diff b/testdata/baselines/reference/submodule/compiler/emptyThenWithoutWarning.js.diff
deleted file mode 100644
index 3aa3ec0f47..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emptyThenWithoutWarning.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.emptyThenWithoutWarning.js
-+++ new.emptyThenWithoutWarning.js
-@@= skipped -9, +9 lines =@@
- }
-
- //// [emptyThenWithoutWarning.js]
--var a = 4;
-+let a = 4;
- if (a === 1 || a === 2 || a === 3) {
- }
- else {
--    var message = "Ooops";
-+    let message = "Ooops";
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/emptyTypeArgumentListWithNew.js.diff b/testdata/baselines/reference/submodule/compiler/emptyTypeArgumentListWithNew.js.diff
deleted file mode 100644
index de1ab6f10d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/emptyTypeArgumentListWithNew.js.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- old.emptyTypeArgumentListWithNew.js
-+++ new.emptyTypeArgumentListWithNew.js
-@@= skipped -8, +8 lines =@@
- new noParams<>();
-
- //// [emptyTypeArgumentListWithNew.js]
--var foo = /** @class */ (function () {
--    function foo() {
--    }
--    return foo;
--}());
-+class foo {
-+}
- new foo();
- // https://github.com/microsoft/TypeScript/issues/33041
--var noParams = /** @class */ (function () {
--    function noParams() {
--    }
--    return noParams;
--}());
-+class noParams {
-+}
- new noParams();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.symbols b/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.symbols
index 245a4ff4c8..146e0f03bc 100644
--- a/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.symbols
+++ b/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.symbols
@@ -4,6 +4,7 @@
 const _item = require("./namespacer");
 >_item : Symbol(_item, Decl(index.js, 0, 5))
 >require : Symbol(require)
+>"./namespacer" : Symbol("namespacer", Decl(namespacer.js, 0, 0))
 
 module.exports = 12;
 >module.exports : Symbol(export=, Decl(index.js, 0, 38))
@@ -16,3 +17,43 @@ Object.defineProperty(module, "exports", { value: "oh no" });
 >defineProperty : Symbol(defineProperty, Decl(lib.es5.d.ts, --, --))
 >value : Symbol(value, Decl(index.js, 2, 42))
 
+=== namespacey.js ===
+const A = {}
+>A : Symbol(A, Decl(namespacey.js, 0, 5))
+
+A.bar = class Q {}
+>A.bar : Symbol(bar, Decl(namespacey.js, 0, 12))
+>A : Symbol(A, Decl(namespacey.js, 0, 5))
+>bar : Symbol(bar, Decl(namespacey.js, 0, 12))
+>Q : Symbol(Q, Decl(namespacey.js, 1, 7))
+
+module.exports = A;
+>module.exports : Symbol(A, Decl(namespacey.js, 0, 5))
+>module : Symbol(module.exports)
+>exports : Symbol(A, Decl(namespacey.js, 0, 5))
+>A : Symbol(A, Decl(namespacey.js, 0, 5))
+
+=== namespacer.js ===
+const B = {}
+>B : Symbol(B, Decl(namespacer.js, 0, 5))
+
+B.NS = require("./namespacey");
+>B.NS : Symbol(NS, Decl(namespacer.js, 0, 12))
+>B : Symbol(B, Decl(namespacer.js, 0, 5))
+>NS : Symbol(NS, Decl(namespacer.js, 0, 12))
+>require : Symbol(require)
+
+Object.defineProperty(B, "NS", { value: "why though", writable: true });
+>Object.defineProperty : Symbol(defineProperty, Decl(lib.es5.d.ts, --, --))
+>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
+>defineProperty : Symbol(defineProperty, Decl(lib.es5.d.ts, --, --))
+>B : Symbol(B, Decl(namespacer.js, 0, 5))
+>value : Symbol(value, Decl(namespacer.js, 2, 32))
+>writable : Symbol(writable, Decl(namespacer.js, 2, 53))
+
+module.exports = B;
+>module.exports : Symbol(B, Decl(namespacer.js, 0, 5))
+>module : Symbol(module.exports)
+>exports : Symbol(B, Decl(namespacer.js, 0, 5))
+>B : Symbol(B, Decl(namespacer.js, 0, 5))
+
diff --git a/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.symbols.diff b/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.symbols.diff
index d57516ef97..325d923238 100644
--- a/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.symbols.diff
+++ b/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.symbols.diff
@@ -1,10 +1,7 @@
 --- old.ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.symbols
 +++ new.ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.symbols
-@@= skipped -3, +3 lines =@@
- const _item = require("./namespacer");
- >_item : Symbol(_item, Decl(index.js, 0, 5))
- >require : Symbol(require)
-->"./namespacer" : Symbol("namespacer", Decl(namespacer.js, 0, 0))
+@@= skipped -6, +6 lines =@@
+ >"./namespacer" : Symbol("namespacer", Decl(namespacer.js, 0, 0))
 
  module.exports = 12;
 ->module.exports : Symbol(module.exports, Decl(index.js, 0, 0))
@@ -22,45 +19,64 @@
 ->"exports" : Symbol(module.exports, Decl(index.js, 1, 20))
 +>defineProperty : Symbol(defineProperty, Decl(lib.es5.d.ts, --, --))
  >value : Symbol(value, Decl(index.js, 2, 42))
--
--=== namespacey.js ===
--const A = {}
+
+ === namespacey.js ===
+ const A = {}
 ->A : Symbol(A, Decl(namespacey.js, 0, 5), Decl(namespacey.js, 0, 12))
--
--A.bar = class Q {}
++>A : Symbol(A, Decl(namespacey.js, 0, 5))
+
+ A.bar = class Q {}
 ->A.bar : Symbol(A.bar, Decl(namespacey.js, 0, 12))
 ->A : Symbol(A, Decl(namespacey.js, 0, 5), Decl(namespacey.js, 0, 12))
 ->bar : Symbol(A.bar, Decl(namespacey.js, 0, 12))
-->Q : Symbol(Q, Decl(namespacey.js, 1, 7))
--
--module.exports = A;
++>A.bar : Symbol(bar, Decl(namespacey.js, 0, 12))
++>A : Symbol(A, Decl(namespacey.js, 0, 5))
++>bar : Symbol(bar, Decl(namespacey.js, 0, 12))
+ >Q : Symbol(Q, Decl(namespacey.js, 1, 7))
+
+ module.exports = A;
 ->module.exports : Symbol(module.exports, Decl(namespacey.js, 0, 0))
 ->module : Symbol(export=, Decl(namespacey.js, 1, 18))
 ->exports : Symbol(export=, Decl(namespacey.js, 1, 18))
 ->A : Symbol(A, Decl(namespacey.js, 0, 5), Decl(namespacey.js, 0, 12))
--
--=== namespacer.js ===
--const B = {}
++>module.exports : Symbol(A, Decl(namespacey.js, 0, 5))
++>module : Symbol(module.exports)
++>exports : Symbol(A, Decl(namespacey.js, 0, 5))
++>A : Symbol(A, Decl(namespacey.js, 0, 5))
+
+ === namespacer.js ===
+ const B = {}
 ->B : Symbol(B, Decl(namespacer.js, 0, 5), Decl(namespacer.js, 0, 12), Decl(namespacer.js, 2, 22))
--
--B.NS = require("./namespacey");
++>B : Symbol(B, Decl(namespacer.js, 0, 5))
+
+ B.NS = require("./namespacey");
 ->B.NS : Symbol(B.NS, Decl(namespacer.js, 0, 12), Decl(namespacer.js, 1, 31))
 ->B : Symbol(B, Decl(namespacer.js, 0, 5), Decl(namespacer.js, 0, 12), Decl(namespacer.js, 2, 22))
 ->NS : Symbol(B.NS, Decl(namespacer.js, 0, 12), Decl(namespacer.js, 1, 31))
-->require : Symbol(require)
++>B.NS : Symbol(NS, Decl(namespacer.js, 0, 12))
++>B : Symbol(B, Decl(namespacer.js, 0, 5))
++>NS : Symbol(NS, Decl(namespacer.js, 0, 12))
+ >require : Symbol(require)
 ->"./namespacey" : Symbol("namespacey", Decl(namespacey.js, 0, 0))
--
--Object.defineProperty(B, "NS", { value: "why though", writable: true });
+
+ Object.defineProperty(B, "NS", { value: "why though", writable: true });
 ->Object.defineProperty : Symbol(ObjectConstructor.defineProperty, Decl(lib.es5.d.ts, --, --))
-->Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
++>Object.defineProperty : Symbol(defineProperty, Decl(lib.es5.d.ts, --, --))
+ >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
 ->defineProperty : Symbol(ObjectConstructor.defineProperty, Decl(lib.es5.d.ts, --, --))
 ->B : Symbol(B, Decl(namespacer.js, 0, 5), Decl(namespacer.js, 0, 12), Decl(namespacer.js, 2, 22))
 ->"NS" : Symbol(B.NS, Decl(namespacer.js, 0, 12), Decl(namespacer.js, 1, 31))
-->value : Symbol(value, Decl(namespacer.js, 2, 32))
-->writable : Symbol(writable, Decl(namespacer.js, 2, 53))
--
--module.exports = B;
++>defineProperty : Symbol(defineProperty, Decl(lib.es5.d.ts, --, --))
++>B : Symbol(B, Decl(namespacer.js, 0, 5))
+ >value : Symbol(value, Decl(namespacer.js, 2, 32))
+ >writable : Symbol(writable, Decl(namespacer.js, 2, 53))
+
+ module.exports = B;
 ->module.exports : Symbol(module.exports, Decl(namespacer.js, 0, 0))
 ->module : Symbol(export=, Decl(namespacer.js, 2, 72))
 ->exports : Symbol(export=, Decl(namespacer.js, 2, 72))
 ->B : Symbol(B, Decl(namespacer.js, 0, 5), Decl(namespacer.js, 0, 12), Decl(namespacer.js, 2, 22))
++>module.exports : Symbol(B, Decl(namespacer.js, 0, 5))
++>module : Symbol(module.exports)
++>exports : Symbol(B, Decl(namespacer.js, 0, 5))
++>B : Symbol(B, Decl(namespacer.js, 0, 5))
diff --git a/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types b/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types
index c6be5e731c..4f72e4fd3c 100644
--- a/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types
+++ b/testdata/baselines/reference/submodule/compiler/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types
@@ -2,8 +2,8 @@
 
 === index.js ===
 const _item = require("./namespacer");
->_item : any
->require("./namespacer") : any
+>_item : { NS: { bar: typeof Q; }; }
+>require("./namespacer") : { NS: { bar: typeof Q; }; }
 >require : any
 >"./namespacer" : "./namespacer"
 
@@ -25,3 +25,57 @@ Object.defineProperty(module, "exports", { value: "oh no" });
 >value : string
 >"oh no" : "oh no"
 
+=== namespacey.js ===
+const A = {}
+>A : { bar: typeof Q; }
+>{} : { bar: typeof Q; }
+
+A.bar = class Q {}
+>A.bar = class Q {} : typeof Q
+>A.bar : typeof Q
+>A : { bar: typeof Q; }
+>bar : typeof Q
+>class Q {} : typeof Q
+>Q : typeof Q
+
+module.exports = A;
+>module.exports = A : { bar: typeof Q; }
+>module.exports : { bar: typeof Q; }
+>module : { readonly A: { bar: typeof Q; }; }
+>exports : { bar: typeof Q; }
+>A : { bar: typeof Q; }
+
+=== namespacer.js ===
+const B = {}
+>B : { NS: { bar: typeof Q; }; }
+>{} : { NS: { bar: typeof Q; }; }
+
+B.NS = require("./namespacey");
+>B.NS = require("./namespacey") : { bar: typeof Q; }
+>B.NS : { bar: typeof Q; }
+>B : { NS: { bar: typeof Q; }; }
+>NS : { bar: typeof Q; }
+>require("./namespacey") : { bar: typeof Q; }
+>require : any
+>"./namespacey" : "./namespacey"
+
+Object.defineProperty(B, "NS", { value: "why though", writable: true });
+>Object.defineProperty(B, "NS", { value: "why though", writable: true }) : { NS: { bar: typeof Q; }; }
+>Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T
+>Object : ObjectConstructor
+>defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T
+>B : { NS: { bar: typeof Q; }; }
+>"NS" : "NS"
+>{ value: "why though", writable: true } : { value: string; writable: true; }
+>value : string
+>"why though" : "why though"
+>writable : true
+>true : true
+
+module.exports = B;
+>module.exports = B : { NS: { bar: typeof Q; }; }
+>module.exports : { NS: { bar: typeof Q; }; }
+>module : { readonly B: { NS: { bar: typeof Q; }; }; }
+>exports : { NS: { bar: typeof Q; }; }
+>B : { NS: { bar: typeof Q; }; }
+
diff --git a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat.js.diff b/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat.js.diff
deleted file mode 100644
index 27b9902731..0000000000
--- a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.enumAssignmentCompat.js
-+++ new.enumAssignmentCompat.js
-@@= skipped -42, +42 lines =@@
- //// [enumAssignmentCompat.js]
- var W;
- (function (W) {
--    var D = /** @class */ (function () {
--        function D() {
--        }
--        return D;
--    }());
-+    class D {
-+    }
-     W.D = D;
- })(W || (W = {}));
- (function (W) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat2.js.diff b/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat2.js.diff
deleted file mode 100644
index 6ba94b7dca..0000000000
--- a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat2.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.enumAssignmentCompat2.js
-+++ new.enumAssignmentCompat2.js
-@@= skipped -46, +46 lines =@@
-     W[W["c"] = 2] = "c";
- })(W || (W = {}));
- (function (W) {
--    var D = /** @class */ (function () {
--        function D() {
--        }
--        return D;
--    }());
-+    class D {
-+    }
-     W.D = D;
- })(W || (W = {}));
- var x = W;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat3.js.diff b/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat3.js.diff
deleted file mode 100644
index 64bfc63e69..0000000000
--- a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat3.js.diff
+++ /dev/null
@@ -1,72 +0,0 @@
---- old.enumAssignmentCompat3.js
-+++ new.enumAssignmentCompat3.js
-@@= skipped -93, +93 lines =@@
- //// [enumAssignmentCompat3.js]
- var First;
- (function (First) {
--    var E;
-+    let E;
-     (function (E) {
-         E[E["a"] = 0] = "a";
-         E[E["b"] = 1] = "b";
-@@= skipped -9, +9 lines =@@
- })(First || (First = {}));
- var Abc;
- (function (Abc) {
--    var E;
-+    let E;
-     (function (E) {
-         E[E["a"] = 0] = "a";
-         E[E["b"] = 1] = "b";
-         E[E["c"] = 2] = "c";
-     })(E = Abc.E || (Abc.E = {}));
--    var Nope;
-+    let Nope;
-     (function (Nope) {
-         Nope[Nope["a"] = 0] = "a";
-         Nope[Nope["b"] = 1] = "b";
-@@= skipped -15, +15 lines =@@
- })(Abc || (Abc = {}));
- var Abcd;
- (function (Abcd) {
--    var E;
-+    let E;
-     (function (E) {
-         E[E["a"] = 0] = "a";
-         E[E["b"] = 1] = "b";
-@@= skipped -10, +10 lines =@@
- })(Abcd || (Abcd = {}));
- var Ab;
- (function (Ab) {
--    var E;
-+    let E;
-     (function (E) {
-         E[E["a"] = 0] = "a";
-         E[E["b"] = 1] = "b";
-@@= skipped -8, +8 lines =@@
- })(Ab || (Ab = {}));
- var Cd;
- (function (Cd) {
--    var E;
-+    let E;
-     (function (E) {
-         E[E["c"] = 0] = "c";
-         E[E["d"] = 1] = "d";
-@@= skipped -11, +11 lines =@@
- })(Decl || (Decl = {}));
- var Merged;
- (function (Merged) {
--    var E;
-+    let E;
-     (function (E) {
-         E[E["a"] = 0] = "a";
-         E[E["b"] = 1] = "b";
-@@= skipped -12, +12 lines =@@
- })(Merged || (Merged = {}));
- var Merged2;
- (function (Merged2) {
--    var E;
-+    let E;
-     (function (E) {
-         E[E["a"] = 0] = "a";
-         E[E["b"] = 1] = "b";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat4.js.diff b/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat4.js.diff
deleted file mode 100644
index ba826d238d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat4.js.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- old.enumAssignmentCompat4.js
-+++ new.enumAssignmentCompat4.js
-@@= skipped -27, +27 lines =@@
- //// [enumAssignmentCompat4.js]
- var M;
- (function (M) {
--    var MyEnum;
-+    let MyEnum;
-     (function (MyEnum) {
-         MyEnum[MyEnum["BAR"] = 0] = "BAR";
-     })(MyEnum = M.MyEnum || (M.MyEnum = {}));
-@@= skipped -10, +10 lines =@@
- })(M || (M = {}));
- var N;
- (function (N) {
--    var MyEnum;
-+    let MyEnum;
-     (function (MyEnum) {
-         MyEnum[MyEnum["FOO"] = 0] = "FOO";
-     })(MyEnum = N.MyEnum || (N.MyEnum = {}));
-@@= skipped -9, +9 lines =@@
-         foo: MyEnum.FOO
-     };
- })(N || (N = {}));
--var broken = [
-+let broken = [
-     N.object1,
-     M.object2
- ];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat5.js.diff b/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat5.js.diff
deleted file mode 100644
index a2c2d9d01d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat5.js.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- old.enumAssignmentCompat5.js
-+++ new.enumAssignmentCompat5.js
-@@= skipped -38, +38 lines =@@
-     Computed[Computed["B"] = 4] = "B";
-     Computed[Computed["C"] = 8] = "C";
- })(Computed || (Computed = {}));
--var n;
--var e = n; // ok because it's too inconvenient otherwise
-+let n;
-+let e = n; // ok because it's too inconvenient otherwise
- e = 0; // ok, in range
- e = 4; // ok, out of range, but allowed computed enums don't have all members
--var a = 0; // ok, A === 0
-+let a = 0; // ok, A === 0
- a = 2; // error, 2 !== 0
- a = n; // ok
--var c = n; // ok
-+let c = n; // ok
- c = n; // ok
- c = 4; // ok
--var ca = 1; // error, Computed.A isn't a literal type because Computed has no enum literals
-+let ca = 1; // error, Computed.A isn't a literal type because Computed has no enum literals
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat6.js.diff b/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat6.js.diff
deleted file mode 100644
index 9bf328c4e0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat6.js.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- old.enumAssignmentCompat6.js
-+++ new.enumAssignmentCompat6.js
-@@= skipped -80, +80 lines =@@
- //// [a.js]
- var numerics;
- (function (numerics) {
--    var DiagnosticCategory;
-+    let DiagnosticCategory;
-     (function (DiagnosticCategory) {
-         DiagnosticCategory[DiagnosticCategory["Warning"] = 0] = "Warning";
-         DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error";
-         DiagnosticCategory[DiagnosticCategory["Suggestion"] = 2] = "Suggestion";
-         DiagnosticCategory[DiagnosticCategory["Message"] = 3] = "Message";
-     })(DiagnosticCategory = numerics.DiagnosticCategory || (numerics.DiagnosticCategory = {}));
--    var DiagnosticCategory2;
-+    let DiagnosticCategory2;
-     (function (DiagnosticCategory2) {
-         DiagnosticCategory2[DiagnosticCategory2["Warning"] = 0] = "Warning";
-         DiagnosticCategory2[DiagnosticCategory2["Error"] = 1] = "Error";
-@@= skipped -17, +17 lines =@@
- })(numerics || (numerics = {}));
- var strings;
- (function (strings) {
--    var DiagnosticCategory;
-+    let DiagnosticCategory;
-     (function (DiagnosticCategory) {
-         DiagnosticCategory["Warning"] = "Warning";
-         DiagnosticCategory["Error"] = "Error";
-@@= skipped -35, +35 lines =@@
-     DiagnosticCategory[DiagnosticCategory["Suggestion"] = 2] = "Suggestion";
-     DiagnosticCategory[DiagnosticCategory["Message"] = 3] = "Message";
- })(DiagnosticCategory || (exports.DiagnosticCategory = DiagnosticCategory = {}));
--(function () {
--    var DiagnosticCategory;
-+(() => {
-+    let DiagnosticCategory;
-     (function (DiagnosticCategory) {
-         DiagnosticCategory["Warning"] = "Warning";
-         DiagnosticCategory["Error"] = "Error";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat7.js.diff b/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat7.js.diff
index 2379a21137..469f25365b 100644
--- a/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat7.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/enumAssignmentCompat7.js.diff
@@ -5,61 +5,6 @@
 
  //// [enumAssignmentCompat7.js]
 -"use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  var first;
  (function (first) {
--    var E;
-+    let E;
-     (function (E) {
-         E[E["A"] = 1] = "A";
-     })(E = first.E || (first.E = {}));
- })(first || (first = {}));
- var second;
- (function (second) {
--    var E;
-+    let E;
-     (function (E) {
-         E[E["A"] = 2] = "A";
-     })(E = second.E || (second.E = {}));
- })(second || (second = {}));
--var Base = /** @class */ (function () {
--    function Base() {
--    }
--    Base.prototype.method = function (param) {
--    };
--    return Base;
--}());
--var Derived = /** @class */ (function (_super) {
--    __extends(Derived, _super);
--    function Derived() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Derived.prototype.method = function (param) {
--    };
--    return Derived;
--}(Base));
-+class Base {
-+    method(param) {
-+    }
-+}
-+class Derived extends Base {
-+    method(param) {
-+    }
-+}
- function overloadingFunction() {
-     return second.E.B;
- }
\ No newline at end of file
+     let E;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumBasics3.js.diff b/testdata/baselines/reference/submodule/compiler/enumBasics3.js.diff
index cd9f78d88a..26b73e2291 100644
--- a/testdata/baselines/reference/submodule/compiler/enumBasics3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/enumBasics3.js.diff
@@ -1,14 +1,7 @@
 --- old.enumBasics3.js
 +++ new.enumBasics3.js
-@@= skipped -22, +22 lines =@@
- //// [enumBasics3.js]
- var M;
- (function (M) {
--    var N;
-+    let N;
-     (function (N) {
--        var E1;
-+        let E1;
+@@= skipped -27, +27 lines =@@
+         let E1;
          (function (E1) {
              E1[E1["a"] = 1] = "a";
 -            E1[E1["b"] = E1.a.a] = "b";
@@ -17,12 +10,9 @@
          })(E1 = N.E1 || (N.E1 = {}));
      })(N = M.N || (M.N = {}));
  })(M || (M = {}));
- (function (M) {
--    var N;
-+    let N;
+@@= skipped -9, +10 lines =@@
      (function (N) {
--        var E2;
-+        let E2;
+         let E2;
          (function (E2) {
 -            E2[E2["b"] = 1] = "b";
 -            E2[E2["c"] = M.N.E1.a.a] = "c";
diff --git a/testdata/baselines/reference/submodule/compiler/enumGenericTypeClash.js.diff b/testdata/baselines/reference/submodule/compiler/enumGenericTypeClash.js.diff
deleted file mode 100644
index c01f7e7b11..0000000000
--- a/testdata/baselines/reference/submodule/compiler/enumGenericTypeClash.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.enumGenericTypeClash.js
-+++ new.enumGenericTypeClash.js
-@@= skipped -5, +5 lines =@@
-
-
- //// [enumGenericTypeClash.js]
--var X = /** @class */ (function () {
--    function X() {
--    }
--    return X;
--}());
-+class X {
-+}
- (function (X) {
-     X[X["MyVal"] = 0] = "MyVal";
- })(X || (X = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumIndexer.js.diff b/testdata/baselines/reference/submodule/compiler/enumIndexer.js.diff
deleted file mode 100644
index dc7df46161..0000000000
--- a/testdata/baselines/reference/submodule/compiler/enumIndexer.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.enumIndexer.js
-+++ new.enumIndexer.js
-@@= skipped -16, +16 lines =@@
- })(MyEnumType || (MyEnumType = {}));
- var _arr = [{ key: 'foo' }, { key: 'bar' }];
- var enumValue = MyEnumType.foo;
--var x = _arr.map(function (o) { return MyEnumType[o.key] === enumValue; }); // these are not same type
-+var x = _arr.map(o => MyEnumType[o.key] === enumValue); // these are not same type
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumLiteralAssignableToEnumInsideUnion.js.diff b/testdata/baselines/reference/submodule/compiler/enumLiteralAssignableToEnumInsideUnion.js.diff
deleted file mode 100644
index 5585e1758a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/enumLiteralAssignableToEnumInsideUnion.js.diff
+++ /dev/null
@@ -1,52 +0,0 @@
---- old.enumLiteralAssignableToEnumInsideUnion.js
-+++ new.enumLiteralAssignableToEnumInsideUnion.js
-@@= skipped -33, +33 lines =@@
- //// [enumLiteralAssignableToEnumInsideUnion.js]
- var X;
- (function (X) {
--    var Foo;
-+    let Foo;
-     (function (Foo) {
-         Foo[Foo["A"] = 0] = "A";
-         Foo[Foo["B"] = 1] = "B";
-@@= skipped -8, +8 lines =@@
- })(X || (X = {}));
- var Y;
- (function (Y) {
--    var Foo;
-+    let Foo;
-     (function (Foo) {
-         Foo[Foo["A"] = 0] = "A";
-         Foo[Foo["B"] = 1] = "B";
-@@= skipped -8, +8 lines =@@
- })(Y || (Y = {}));
- var Z;
- (function (Z) {
--    var Foo;
-+    let Foo;
-     (function (Foo) {
-         Foo[Foo["A"] = 2] = "A";
-         Foo[Foo["B"] = 4] = "B";
-@@= skipped -8, +8 lines =@@
- })(Z || (Z = {}));
- var Ka;
- (function (Ka) {
--    var Foo;
-+    let Foo;
-     (function (Foo) {
-         Foo[Foo["A"] = 1024] = "A";
-         Foo[Foo["B"] = 2048] = "B";
-     })(Foo = Ka.Foo || (Ka.Foo = {}));
- })(Ka || (Ka = {}));
--var e0 = Y.Foo.A; // ok
--var e1 = Z.Foo.A; // not legal, Z is computed
--var e2 = Z.Foo.A; // still not legal
--var e3 = Z.Foo.A; // not legal
--var e4 = Z.Foo.A; // not legal either because Z.Foo is computed and Z.Foo.A is not necessarily assignable to X.Foo.A
--var e5 = Z.Foo.A; // ok
-+const e0 = Y.Foo.A; // ok
-+const e1 = Z.Foo.A; // not legal, Z is computed
-+const e2 = Z.Foo.A; // still not legal
-+const e3 = Z.Foo.A; // not legal
-+const e4 = Z.Foo.A; // not legal either because Z.Foo is computed and Z.Foo.A is not necessarily assignable to X.Foo.A
-+const e5 = Z.Foo.A; // ok
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumLiteralUnionNotWidened.js.diff b/testdata/baselines/reference/submodule/compiler/enumLiteralUnionNotWidened.js.diff
index a75dcc73f6..c7c28e969f 100644
--- a/testdata/baselines/reference/submodule/compiler/enumLiteralUnionNotWidened.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/enumLiteralUnionNotWidened.js.diff
@@ -1,18 +1,13 @@
 --- old.enumLiteralUnionNotWidened.js
 +++ new.enumLiteralUnionNotWidened.js
-@@= skipped -35, +35 lines =@@
-     B["bar"] = "bar";
+@@= skipped -36, +36 lines =@@
  })(B || (B = {}));
  ;
--var List = /** @class */ (function () {
--    function List() {
+ class List {
+-    constructor() {
 -        this.items = [];
 -    }
--    return List;
--}());
-+class List {
 +    items = [];
-+}
+ }
  function asList(arg) { return new List(); }
- // TypeScript incorrectly infers the return type of "asList(x)" to be "List"
- // The correct type is "List"
\ No newline at end of file
+ // TypeScript incorrectly infers the return type of "asList(x)" to be "List"
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/enumUsedBeforeDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/enumUsedBeforeDeclaration.js.diff
index c759da4e02..2b03458efc 100644
--- a/testdata/baselines/reference/submodule/compiler/enumUsedBeforeDeclaration.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/enumUsedBeforeDeclaration.js.diff
@@ -1,12 +1,10 @@
 --- old.enumUsedBeforeDeclaration.js
 +++ new.enumUsedBeforeDeclaration.js
-@@= skipped -8, +8 lines =@@
-
+@@= skipped -9, +9 lines =@@
 
  //// [enumUsedBeforeDeclaration.js]
--var v = Color.Green;
--var v2 = 1 /* ConstColor.Green */;
-+const v = Color.Green;
+ const v = Color.Green;
+-const v2 = 1 /* ConstColor.Green */;
 +const v2 = ConstColor.Green;
  var Color;
  (function (Color) {
diff --git a/testdata/baselines/reference/submodule/compiler/erasableSyntaxOnly.js.diff b/testdata/baselines/reference/submodule/compiler/erasableSyntaxOnly.js.diff
index 6c9bfc021d..c8d44f8dbf 100644
--- a/testdata/baselines/reference/submodule/compiler/erasableSyntaxOnly.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/erasableSyntaxOnly.js.diff
@@ -1,69 +1,14 @@
 --- old.erasableSyntaxOnly.js
 +++ new.erasableSyntaxOnly.js
-@@= skipped -111, +111 lines =@@
-
+@@= skipped -112, +112 lines =@@
 
  //// [index.js]
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
--};
--var MyClassErr = /** @class */ (function () {
-+class MyClassErr {
+ class MyClassErr {
 +    foo;
      // No parameter properties
--    function MyClassErr(foo) {
-+    constructor(foo) {
+     constructor(foo) {
          this.foo = foo;
-     }
--    return MyClassErr;
--}());
-+}
- var IllegalBecauseInstantiated;
- (function (IllegalBecauseInstantiated) {
-     IllegalBecauseInstantiated.m = 1;
- })(IllegalBecauseInstantiated || (IllegalBecauseInstantiated = {}));
- var AlsoIllegalBecauseInstantiated;
- (function (AlsoIllegalBecauseInstantiated) {
--    var PrivateClass = /** @class */ (function () {
--        function PrivateClass() {
--        }
--        return PrivateClass;
--    }());
-+    class PrivateClass {
-+    }
- })(AlsoIllegalBecauseInstantiated || (AlsoIllegalBecauseInstantiated = {}));
- var IllegalBecauseNestedInstantiated;
- (function (IllegalBecauseNestedInstantiated) {
--    var Nested;
-+    let Nested;
-     (function (Nested) {
-         Nested.m = 1;
-     })(Nested || (Nested = {}));
-@@= skipped -57, +27 lines =@@
+@@= skipped -25, +26 lines =@@
  (function (NotLegalEnum) {
      NotLegalEnum[NotLegalEnum["B"] = 1] = "B";
  })(NotLegalEnum || (NotLegalEnum = {}));
@@ -73,45 +18,30 @@
 +    NotLegalConstEnum[NotLegalConstEnum["C"] = 2] = "C";
 +})(NotLegalConstEnum || (NotLegalConstEnum = {}));
  // No errors after this point
--var MyClassOk = /** @class */ (function () {
-+class MyClassOk {
+ class MyClassOk {
      // Not a parameter property, ok
--    function MyClassOk(foo) {
--    }
--    return MyClassOk;
--}());
-+    constructor(foo) { }
-+}
+     constructor(foo) { }
+ }
  // Not erasable
--(function () { return ({}); })();
--(function () { return ({}); })();
--(function () { return ({}); })();
+-(() => ({}))();
+-(() => ({}))();
+-(() => ({}))();
 +(() => (({})))();
 +(() => (({})))();
 +(() => (({})))();
  // Erasable
--(function () { return ({}); })();
--(function () { return ({}); })();
+ (() => ({}))();
+-(() => ({}))();
 -({});
-+(() => ({}))();
 +(() => (({})))();
 +(({}));
  // return and yield ASI
--function gen() {
--    return __generator(this, function (_a) {
--        switch (_a.label) {
--            case 0: return [4 /*yield*/, 1];
--            case 1:
--                _a.sent();
--                return [2 /*return*/, 1];
--        }
--    });
-+function* gen() {
-+    yield 1;
-+    return 1;
+ function* gen() {
+     yield 1;
+     return 1;
  }
  // at the start of an ExpressionStatement if followed by an object literal; though I'm not sure why one would use it there
--({ foo: function () { } }.foo());
+-({ foo() { } }.foo());
 +(({ foo() { } }.foo()));
  // at the start of an ExpressionStatement if followed by function keyword
 -(function () { })();
@@ -120,11 +50,8 @@
 +((function () { }));
  // at the start of an ExpressionStatement if followed by an anonymous class expression
  // note that this exact syntax currently emits invalid JS (no parenthesis added like for function above)
--/** @class */ (function () {
--    function class_1() {
--    }
--    return class_1;
--}());
+-class {
+-};
 +((class {
 +}));
  //// [commonjs.cjs]
@@ -133,6 +60,4 @@
 +const foo = require("./other.cjs");
  module.exports = foo;
  //// [esm.mjs]
--var foo = 1234;
-+const foo = 1234;
- export default foo;
\ No newline at end of file
+ const foo = 1234;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/erasableSyntaxOnly2.js.diff b/testdata/baselines/reference/submodule/compiler/erasableSyntaxOnly2.js.diff
deleted file mode 100644
index e85dd39532..0000000000
--- a/testdata/baselines/reference/submodule/compiler/erasableSyntaxOnly2.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.erasableSyntaxOnly2.js
-+++ new.erasableSyntaxOnly2.js
-@@= skipped -5, +5 lines =@@
- let c =  undefined;
\ No newline at end of file
+ // Repro for #25498
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorForUsingPropertyOfTypeAsType01.js.diff b/testdata/baselines/reference/submodule/compiler/errorForUsingPropertyOfTypeAsType01.js.diff
index 98051063e9..a2653054c6 100644
--- a/testdata/baselines/reference/submodule/compiler/errorForUsingPropertyOfTypeAsType01.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/errorForUsingPropertyOfTypeAsType01.js.diff
@@ -1,21 +1,14 @@
 --- old.errorForUsingPropertyOfTypeAsType01.js
 +++ new.errorForUsingPropertyOfTypeAsType01.js
-@@= skipped -53, +53 lines =@@
- })(Test1 || (Test1 = {}));
+@@= skipped -54, +54 lines =@@
  var Test2;
  (function (Test2) {
--    var Foo = /** @class */ (function () {
--        function Foo() {
--        }
--        return Foo;
--    }());
-+    class Foo {
+     class Foo {
 +        bar;
-+    }
+     }
      Test2.Foo = Foo;
      var x = "";
-     var y = "";
-@@= skipped -24, +22 lines =@@
+@@= skipped -20, +21 lines =@@
      var x = "";
      var y = "";
  })(Test5 || (Test5 = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/errorForUsingPropertyOfTypeAsType02.js.diff b/testdata/baselines/reference/submodule/compiler/errorForUsingPropertyOfTypeAsType02.js.diff
deleted file mode 100644
index ae52cf1f5b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorForUsingPropertyOfTypeAsType02.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.errorForUsingPropertyOfTypeAsType02.js
-+++ new.errorForUsingPropertyOfTypeAsType02.js
-@@= skipped -10, +10 lines =@@
- var Test1;
- (function (Test1) {
-     function foo(x) {
--        var a = x.abc;
-+        let a = x.abc;
-     }
- })(Test1 || (Test1 = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorForUsingPropertyOfTypeAsType03.js.diff b/testdata/baselines/reference/submodule/compiler/errorForUsingPropertyOfTypeAsType03.js.diff
deleted file mode 100644
index 3f8e7c5e6d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorForUsingPropertyOfTypeAsType03.js.diff
+++ /dev/null
@@ -1,36 +0,0 @@
---- old.errorForUsingPropertyOfTypeAsType03.js
-+++ new.errorForUsingPropertyOfTypeAsType03.js
-@@= skipped -30, +30 lines =@@
- //// [errorForUsingPropertyOfTypeAsType03.js]
- var Test1;
- (function (Test1) {
--    var Color;
-+    let Color;
-     (function (Color) {
-         Color[Color["Red"] = 0] = "Red";
-         Color[Color["Green"] = 1] = "Green";
-         Color[Color["Blue"] = 2] = "Blue";
-     })(Color || (Color = {}));
--    var a1;
--    var a2;
--    var a3;
-+    let a1;
-+    let a2;
-+    let a3;
-     //let b1: (typeof Color).Red.toString;
-     //let b2: (typeof Color).Red["toString"];
--    var b3;
--    var c1;
--    var c2;
--    var c3;
--    var d1;
--    var d2;
--    var d3;
-+    let b3;
-+    let c1;
-+    let c2;
-+    let c3;
-+    let d1;
-+    let d2;
-+    let d3;
- })(Test1 || (Test1 = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorForwardReferenceForwadingConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/errorForwardReferenceForwadingConstructor.js.diff
index b9a73bde6a..a3645dea75 100644
--- a/testdata/baselines/reference/submodule/compiler/errorForwardReferenceForwadingConstructor.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/errorForwardReferenceForwadingConstructor.js.diff
@@ -1,44 +1,10 @@
 --- old.errorForwardReferenceForwadingConstructor.js
 +++ new.errorForwardReferenceForwadingConstructor.js
-@@= skipped -13, +13 lines =@@
-
- //// [errorForwardReferenceForwadingConstructor.js]
- // Error forward referencing derived class with forwarding constructor
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- function f() {
-     var d1 = new derived();
+@@= skipped -18, +18 lines =@@
      var d2 = new derived(4);
  }
--var base = /** @class */ (function () {
--    function base(n) {
-+class base {
+ class base {
 +    n;
-+    constructor(n) {
+     constructor(n) {
          this.n = n;
-     }
--    return base;
--}());
--var derived = /** @class */ (function (_super) {
--    __extends(derived, _super);
--    function derived() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return derived;
--}(base));
-+}
-+class derived extends base {
-+}
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorInfoForRelatedIndexTypesNoConstraintElaboration.js.diff b/testdata/baselines/reference/submodule/compiler/errorInfoForRelatedIndexTypesNoConstraintElaboration.js.diff
deleted file mode 100644
index 8ee7988079..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorInfoForRelatedIndexTypesNoConstraintElaboration.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.errorInfoForRelatedIndexTypesNoConstraintElaboration.js
-+++ new.errorInfoForRelatedIndexTypesNoConstraintElaboration.js
-@@= skipped -11, +11 lines =@@
-
- //// [errorInfoForRelatedIndexTypesNoConstraintElaboration.js]
- /// 
--var I = /** @class */ (function () {
--    function I() {
-+class I {
-+    M() {
-+        let c1 = {};
-+        const c2 = c1;
-     }
--    I.prototype.M = function () {
--        var c1 = {};
--        var c2 = c1;
--    };
--    return I;
--}());
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes01.js.diff b/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes01.js.diff
deleted file mode 100644
index 10f440cd92..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes01.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.errorMessagesIntersectionTypes01.js
-+++ new.errorMessagesIntersectionTypes01.js
-@@= skipped -18, +18 lines =@@
- });
-
- //// [errorMessagesIntersectionTypes01.js]
--var fooBar = mixBar({
-+let fooBar = mixBar({
-     fooProp: "frizzlebizzle"
- });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes02.js.diff b/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes02.js.diff
deleted file mode 100644
index 9111f015e9..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes02.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.errorMessagesIntersectionTypes02.js
-+++ new.errorMessagesIntersectionTypes02.js
-@@= skipped -18, +18 lines =@@
- });
-
- //// [errorMessagesIntersectionTypes02.js]
--var fooBar = mixBar({
-+let fooBar = mixBar({
-     fooProp: "frizzlebizzle"
- });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes03.js.diff b/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes03.js.diff
deleted file mode 100644
index e8b1af2e24..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes03.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.errorMessagesIntersectionTypes03.js
-+++ new.errorMessagesIntersectionTypes03.js
-@@= skipped -27, +27 lines =@@
-
- //// [errorMessagesIntersectionTypes03.js]
- function f() {
--    var t;
--    var u;
--    var v;
--    var a_and_b;
--    var t_and_b;
-+    let t;
-+    let u;
-+    let v;
-+    let a_and_b;
-+    let t_and_b;
-     t = a_and_b;
-     u = a_and_b;
-     v = a_and_b;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes04.js.diff b/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes04.js.diff
deleted file mode 100644
index 03866bfcb8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorMessagesIntersectionTypes04.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.errorMessagesIntersectionTypes04.js
-+++ new.errorMessagesIntersectionTypes04.js
-@@= skipped -25, +25 lines =@@
-
- //// [errorMessagesIntersectionTypes04.js]
- function f() {
--    var num;
--    var bool;
--    var str;
--    var a_and_b;
--    var num_and_bool;
-+    let num;
-+    let bool;
-+    let str;
-+    let a_and_b;
-+    let num_and_bool;
-     num = a_and_b;
-     bool = a_and_b;
-     str = a_and_b;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorOnEnumReferenceInCondition.js.diff b/testdata/baselines/reference/submodule/compiler/errorOnEnumReferenceInCondition.js.diff
index 1030cc7343..24c4ab5208 100644
--- a/testdata/baselines/reference/submodule/compiler/errorOnEnumReferenceInCondition.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/errorOnEnumReferenceInCondition.js.diff
@@ -7,24 +7,4 @@
 -"use strict";
  var Nums;
  (function (Nums) {
-     Nums[Nums["Zero"] = 0] = "Zero";
-     Nums[Nums["One"] = 1] = "One";
- })(Nums || (Nums = {}));
--var a = Nums.Zero ? "a" : "b";
--var b = Nums.One ? "a" : "b";
-+const a = Nums.Zero ? "a" : "b";
-+const b = Nums.One ? "a" : "b";
- if (Nums.Zero) {
-     Nums;
- }
-@@= skipped -25, +24 lines =@@
-     Strs["Empty"] = "";
-     Strs["A"] = "A";
- })(Strs || (Strs = {}));
--var c = Strs.Empty ? "a" : "b";
--var d = Strs.A ? "a" : "b";
-+const c = Strs.Empty ? "a" : "b";
-+const d = Strs.A ? "a" : "b";
- if (Strs.Empty) {
-     Strs;
- }
\ No newline at end of file
+     Nums[Nums["Zero"] = 0] = "Zero";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorOnInitializerInObjectTypeLiteralProperty.js.diff b/testdata/baselines/reference/submodule/compiler/errorOnInitializerInObjectTypeLiteralProperty.js.diff
deleted file mode 100644
index 5b2090f3a9..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorOnInitializerInObjectTypeLiteralProperty.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.errorOnInitializerInObjectTypeLiteralProperty.js
-+++ new.errorOnInitializerInObjectTypeLiteralProperty.js
-@@= skipped -11, +11 lines =@@
-
- //// [errorOnInitializerInObjectTypeLiteralProperty.js]
- var Foo;
--var Bar;
-+let Bar;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorOnUnionVsObjectShouldDeeplyDisambiguate.js.diff b/testdata/baselines/reference/submodule/compiler/errorOnUnionVsObjectShouldDeeplyDisambiguate.js.diff
deleted file mode 100644
index 9f28062743..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorOnUnionVsObjectShouldDeeplyDisambiguate.js.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- old.errorOnUnionVsObjectShouldDeeplyDisambiguate.js
-+++ new.errorOnUnionVsObjectShouldDeeplyDisambiguate.js
-@@= skipped -33, +33 lines =@@
- //// [errorOnUnionVsObjectShouldDeeplyDisambiguate.js]
- function foo() {
-     return {
--        a: function () { return [123]; },
--        b: function () { return "hello"; },
--        c: function () { return "hello"; },
--        d: function () { return "hello"; },
--        e: function () { return "hello"; },
--        f: function () { return "hello"; },
--        g: function () { return "hello"; },
--        h: function () { return "hello"; },
--        i: function () { return "hello"; },
--        j: function () { return "hello"; },
--        k: function () { return 123; }
-+        a() { return [123]; },
-+        b: () => "hello",
-+        c: () => "hello",
-+        d: () => "hello",
-+        e: () => "hello",
-+        f: () => "hello",
-+        g: () => "hello",
-+        h: () => "hello",
-+        i: () => "hello",
-+        j: () => "hello",
-+        k: () => 123
-     };
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorOnUnionVsObjectShouldDeeplyDisambiguate2.js.diff b/testdata/baselines/reference/submodule/compiler/errorOnUnionVsObjectShouldDeeplyDisambiguate2.js.diff
deleted file mode 100644
index 33193f47ea..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorOnUnionVsObjectShouldDeeplyDisambiguate2.js.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- old.errorOnUnionVsObjectShouldDeeplyDisambiguate2.js
-+++ new.errorOnUnionVsObjectShouldDeeplyDisambiguate2.js
-@@= skipped -33, +33 lines =@@
- //// [errorOnUnionVsObjectShouldDeeplyDisambiguate2.js]
- function foo() {
-     return {
--        a: function () { return [123]; },
--        b: function () { return "hello"; },
--        c: function () { return "hello"; },
--        d: function () { return "hello"; },
--        e: function () { return "hello"; },
--        f: function () { return "hello"; },
--        g: function () { return "hello"; },
--        h: function () { return "hello"; },
--        i: function () { return "hello"; },
--        j: function () { return "hello"; },
--        k: function () { return 123; }
-+        a() { return [123]; },
-+        b: () => "hello",
-+        c: () => "hello",
-+        d: () => "hello",
-+        e: () => "hello",
-+        f: () => "hello",
-+        g: () => "hello",
-+        h: () => "hello",
-+        i: () => "hello",
-+        j: () => "hello",
-+        k: () => 123
-     };
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorRecoveryInClassDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/errorRecoveryInClassDeclaration.js.diff
deleted file mode 100644
index b72418173b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorRecoveryInClassDeclaration.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.errorRecoveryInClassDeclaration.js
-+++ new.errorRecoveryInClassDeclaration.js
-@@= skipped -9, +9 lines =@@
- }
-
- //// [errorRecoveryInClassDeclaration.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.bar = function () {
-+class C {
-+    bar() {
-         var v = foo(public, blaz(), {});
--    };
--    return C;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorRecoveryWithDotFollowedByNamespaceKeyword.js.diff b/testdata/baselines/reference/submodule/compiler/errorRecoveryWithDotFollowedByNamespaceKeyword.js.diff
deleted file mode 100644
index 3d9f2ae933..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorRecoveryWithDotFollowedByNamespaceKeyword.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.errorRecoveryWithDotFollowedByNamespaceKeyword.js
-+++ new.errorRecoveryWithDotFollowedByNamespaceKeyword.js
-@@= skipped -17, +17 lines =@@
-         if (true) {
-             B.
-             ;
--            var B = void 0;
-+            let B;
-             (function (B) {
-                 function baz() { }
-                 B.baz = baz;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorSpanForUnclosedJsxTag.js.diff b/testdata/baselines/reference/submodule/compiler/errorSpanForUnclosedJsxTag.js.diff
index 02b9c7a095..4f700e95a9 100644
--- a/testdata/baselines/reference/submodule/compiler/errorSpanForUnclosedJsxTag.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/errorSpanForUnclosedJsxTag.js.diff
@@ -1,17 +1,10 @@
 --- old.errorSpanForUnclosedJsxTag.js
 +++ new.errorSpanForUnclosedJsxTag.js
-@@= skipped -13, +13 lines =@@
- let y = <   Baz >Hello
-
- //// [errorSpanForUnclosedJsxTag.js]
--var Foo = {
--    Bar: function () { }
-+let Foo = {
-+    Bar() { }
+@@= skipped -17, +17 lines =@@
+     Bar() { }
  };
--var Baz = function () { };
--var x = React.createElement(Foo.Bar, null,
+ let Baz = () => { };
+-let x = React.createElement(Foo.Bar, null,
 -    "Hello let y = ",
 -    React.createElement(Baz, null, "Hello"));
-+let Baz = () => { };
 +let x = React.createElement(Foo.Bar, null, "Hell let y = ", React.createElement(Baz, null, "Hello"));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorSupression1.js.diff b/testdata/baselines/reference/submodule/compiler/errorSupression1.js.diff
deleted file mode 100644
index 4b899660a0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorSupression1.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.errorSupression1.js
-+++ new.errorSupression1.js
-@@= skipped -9, +9 lines =@@
-   // So we don't want an error on 'concat'.
-
- //// [errorSupression1.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    Foo.bar = function () { return "x"; };
--    return Foo;
--}());
-+class Foo {
-+    static bar() { return "x"; }
-+}
- var baz = Foo.b;
- // Foo.b won't bind. 
- baz.concat("y");
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorWithSameNameType.js.diff b/testdata/baselines/reference/submodule/compiler/errorWithSameNameType.js.diff
deleted file mode 100644
index 14e4ccabdb..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorWithSameNameType.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.errorWithSameNameType.js
-+++ new.errorWithSameNameType.js
-@@= skipped -32, +32 lines =@@
- //// [c.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var a;
--var b;
-+let a;
-+let b;
- if (a === b) {
- }
- a = b;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorsForCallAndAssignmentAreSimilar.js.diff b/testdata/baselines/reference/submodule/compiler/errorsForCallAndAssignmentAreSimilar.js.diff
deleted file mode 100644
index f133d93c17..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorsForCallAndAssignmentAreSimilar.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.errorsForCallAndAssignmentAreSimilar.js
-+++ new.errorsForCallAndAssignmentAreSimilar.js
-@@= skipped -27, +27 lines =@@
-         { kind: "bluray", },
-         { kind: "hdpvd", }
-     ]);
--    var ds = [
-+    const ds = [
-         { kind: "bluray", },
-         { kind: "hdpvd", }
-     ];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorsInGenericTypeReference.js.diff b/testdata/baselines/reference/submodule/compiler/errorsInGenericTypeReference.js.diff
index 2a3146ecc8..b153727bcd 100644
--- a/testdata/baselines/reference/submodule/compiler/errorsInGenericTypeReference.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/errorsInGenericTypeReference.js.diff
@@ -1,110 +1,10 @@
 --- old.errorsInGenericTypeReference.js
 +++ new.errorsInGenericTypeReference.js
-@@= skipped -73, +73 lines =@@
-
-
- //// [errorsInGenericTypeReference.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- // in call type arguments
--var testClass1 = /** @class */ (function () {
--    function testClass1() {
--    }
--    testClass1.prototype.method = function () { };
--    return testClass1;
--}());
-+class testClass1 {
-+    method() { }
-+}
- var tc1 = new testClass1();
- tc1.method(); // error: could not find symbol V
- // in constructor type arguments
--var testClass2 = /** @class */ (function () {
--    function testClass2() {
--    }
--    return testClass2;
--}());
-+class testClass2 {
-+}
- var tc2 = new testClass2(); // error: could not find symbol V
- // in method return type annotation
--var testClass3 = /** @class */ (function () {
--    function testClass3() {
--    }
--    testClass3.prototype.testMethod1 = function () { return null; }; // error: could not find symbol V
--    testClass3.testMethod2 = function () { return null; }; // error: could not find symbol V
--    Object.defineProperty(testClass3.prototype, "a", {
--        set: function (value) { } // error: could not find symbol V
--        ,
--        enumerable: false,
--        configurable: true
--    });
--    return testClass3;
--}());
-+class testClass3 {
-+    testMethod1() { return null; } // error: could not find symbol V
-+    static testMethod2() { return null; } // error: could not find symbol V
-+    set a(value) { } // error: could not find symbol V
+@@= skipped -90, +90 lines =@@
+     testMethod1() { return null; } // error: could not find symbol V
+     static testMethod2() { return null; } // error: could not find symbol V
+     set a(value) { } // error: could not find symbol V
 +    property; // error: could not find symbol V
-+}
+ }
  // in function return type annotation
- function testFunction1() { return null; } // error: could not find symbol V
- // in paramter types
-@@= skipped -57, +26 lines =@@
- // in var type annotation
- var f; // error: could not find symbol V
- // in constraints
--var testClass4 = /** @class */ (function () {
--    function testClass4() {
--    }
--    return testClass4;
--}()); // error: could not find symbol V
--var testClass6 = /** @class */ (function () {
--    function testClass6() {
--    }
--    testClass6.prototype.method = function () { }; // error: could not find symbol V
--    return testClass6;
--}());
-+class testClass4 {
-+} // error: could not find symbol V
-+class testClass6 {
-+    method() { } // error: could not find symbol V
-+}
- // in extends clause
--var testClass7 = /** @class */ (function (_super) {
--    __extends(testClass7, _super);
--    function testClass7() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return testClass7;
--}(Foo)); // error: could not find symbol V
-+class testClass7 extends Foo {
-+} // error: could not find symbol V
- // in implements clause
--var testClass8 = /** @class */ (function () {
--    function testClass8() {
--    }
--    return testClass8;
--}()); // error: could not find symbol V
-+class testClass8 {
-+} // error: could not find symbol V
\ No newline at end of file
+ function testFunction1() { return null; } // error: could not find symbol V
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorsOnUnionsOfOverlappingObjects01.js.diff b/testdata/baselines/reference/submodule/compiler/errorsOnUnionsOfOverlappingObjects01.js.diff
deleted file mode 100644
index 276736ecd7..0000000000
--- a/testdata/baselines/reference/submodule/compiler/errorsOnUnionsOfOverlappingObjects01.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.errorsOnUnionsOfOverlappingObjects01.js
-+++ new.errorsOnUnionsOfOverlappingObjects01.js
-@@= skipped -62, +62 lines =@@
- h({ a: '', b: '' });
- addToZoo({ dog: "Barky McBarkface" });
- addToZoo({ man: "Manny", bear: "Coffee" });
--var manBeer = { man: "Manny", beer: "Coffee" };
-+const manBeer = { man: "Manny", beer: "Coffee" };
- addToZoo({ man: "Manny", beer: "Coffee" });
- addToZoo(manBeer);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/errorsWithInvokablesInUnions01.js.diff b/testdata/baselines/reference/submodule/compiler/errorsWithInvokablesInUnions01.js.diff
index 31bfa1da49..77978f9417 100644
--- a/testdata/baselines/reference/submodule/compiler/errorsWithInvokablesInUnions01.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/errorsWithInvokablesInUnions01.js.diff
@@ -1,18 +1,9 @@
 --- old.errorsWithInvokablesInUnions01.js
 +++ new.errorsWithInvokablesInUnions01.js
-@@= skipped -24, +24 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ctor = exports.blah = void 0;
--var blah = function (x) { };
-+let blah = (x) => { };
+@@= skipped -27, +27 lines =@@
+ let blah = (x) => { };
  exports.blah = blah;
--exports.ctor = /** @class */ (function () {
--    function class_1() {
--    }
--    return class_1;
--}());
-+let ctor = class {
+ let ctor = class {
 +    someUnaccountedProp;
-+};
-+exports.ctor = ctor;
\ No newline at end of file
+ };
+ exports.ctor = ctor;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-amd.js.diff b/testdata/baselines/reference/submodule/compiler/es5-amd.js.diff
deleted file mode 100644
index 466b2ab7dc..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5-amd.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.es5-amd.js
-+++ new.es5-amd.js
-@@= skipped -14, +14 lines =@@
- }
-
- //// [es5-amd.js]
--var A = /** @class */ (function () {
--    function A() {
-+class A {
-+    constructor() {
-     }
--    A.prototype.B = function () {
-+    B() {
-         return 42;
--    };
--    return A;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunction.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunction.js.diff
index b5f50f6885..31c37a0295 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunction.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunction.js.diff
@@ -13,51 +13,14 @@
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
 -};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
--};
 -function empty() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
 -    });
 +async function empty() {
  }
 -function singleAwait() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield x;
 -    });
 +async function singleAwait() {
 +    await x;
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionArrayLiterals.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionArrayLiterals.js.diff
index 6c505306fa..aa28444d1f 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionArrayLiterals.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionArrayLiterals.js.diff
@@ -5,118 +5,43 @@
 
  //// [es5-asyncFunctionArrayLiterals.js]
 -function arrayLiteral0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, y];
--                case 1:
--                    x = [_a.sent(), z];
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = [yield y, z];
 -    });
 -}
 -function arrayLiteral1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = [y];
--                    return [4 /*yield*/, z];
--                case 1:
--                    x = _a.concat([_b.sent()]);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = [y, yield z];
 -    });
 -}
 -function arrayLiteral2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = [[]];
--                    return [4 /*yield*/, y];
--                case 1:
--                    x = __spreadArray.apply(void 0, [__spreadArray.apply(void 0, _a.concat([(_b.sent()), true])), [z], false]);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = [...(yield y), z];
 -    });
 -}
 -function arrayLiteral3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = [__spreadArray([], y, true)];
--                    return [4 /*yield*/, z];
--                case 1:
--                    x = __spreadArray.apply(void 0, _a.concat([[_b.sent()], false]));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = [...y, yield z];
 -    });
 -}
 -function arrayLiteral4() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, y];
--                case 1:
--                    x = __spreadArray.apply(void 0, [[_a.sent()], z, true]);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = [yield y, ...z];
 -    });
 -}
 -function arrayLiteral5() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = [[y]];
--                    return [4 /*yield*/, z];
--                case 1:
--                    x = __spreadArray.apply(void 0, _a.concat([(_b.sent()), true]));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = [y, ...(yield z)];
 -    });
 -}
 -function arrayLiteral6() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = [y];
--                    return [4 /*yield*/, z];
--                case 1:
--                    x = _a.concat([_b.sent(), a]);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = [y, yield z, a];
 -    });
 -}
 -function arrayLiteral7() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0: return [4 /*yield*/, y];
--                case 1:
--                    _a = [_b.sent(), z];
--                    return [4 /*yield*/, a];
--                case 2:
--                    x = _a.concat([_b.sent()]);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = [yield y, z, yield a];
 -    });
 +async function arrayLiteral0() {
 +    x = [await y, z];
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionBinaryExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionBinaryExpressions.js.diff
index 784b572668..74ceae216d 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionBinaryExpressions.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionBinaryExpressions.js.diff
@@ -5,438 +5,154 @@
 
  //// [es5-asyncFunctionBinaryExpressions.js]
 -function binaryPlus0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    (_a.sent()) + y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x) + y;
 -    });
 -}
 -function binaryPlus1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a + (_b.sent());
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x + (yield y);
 -    });
 -}
 -function binaryLogicalAnd0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    (_a.sent()) && y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x) && y;
 -    });
 -}
 -function binaryLogicalAnd1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    if (!_a) return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a = (_b.sent());
--                    _b.label = 2;
--                case 2:
--                    _a;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x && (yield y);
 -    });
 -}
 -function binaryAssignment0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, y];
--                case 1:
--                    x = _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = yield y;
 -    });
 -}
 -function binaryAssignment1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.a = _b.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x.a = yield y;
 -    });
 -}
 -function binaryAssignment2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x.a;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.b = _b.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x.a.b = yield y;
 -    });
 -}
 -function binaryAssignment3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _a = x;
--                    _b = z;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a[_b] = _c.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x[z] = yield y;
 -    });
 -}
 -function binaryAssignment4() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x[z];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.b = _b.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x[z].b = yield y;
 -    });
 -}
 -function binaryAssignment5() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _a = x.a;
--                    _b = z;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a[_b] = _c.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x.a[z] = yield y;
 -    });
 -}
 -function binaryAssignment6() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    (_a.sent()).a = y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x).a = y;
 -    });
 -}
 -function binaryAssignment7() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x.a];
--                case 1:
--                    (_a.sent()).b = y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x.a).b = y;
 -    });
 -}
 -function binaryAssignment8() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    (_a.sent())[z] = y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x)[z] = y;
 -    });
 -}
 -function binaryAssignment9() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, z];
--                case 1:
--                    _a[_b.sent()] = y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x[yield z] = y;
 -    });
 -}
 -function binaryAssignment10() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, z];
--                case 1:
--                    _a[_b.sent()].b = y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x[yield z].b = y;
 -    });
 -}
 -function binaryAssignment11() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x[z]];
--                case 1:
--                    (_a.sent()).b = y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x[z]).b = y;
 -    });
 -}
 -function binaryAssignment12() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x.a;
--                    return [4 /*yield*/, z];
--                case 1:
--                    _a[_b.sent()] = y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x.a[yield z] = y;
 -    });
 -}
 -function binaryAssignment13() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x.a];
--                case 1:
--                    (_a.sent())[z] = y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x.a)[z] = y;
 -    });
 -}
 -function binaryCompoundAssignment0() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, y];
--                case 1:
--                    x = _a + _b.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x += yield y;
 -    });
 -}
 -function binaryCompoundAssignment1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _a = x;
--                    _b = _a.a;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.a = _b + _c.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x.a += yield y;
 -    });
 -}
 -function binaryCompoundAssignment2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _a = x;
--                    _b = a;
--                    _c = _a[_b];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a[_b] = _c + _d.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x[a] += yield y;
 -    });
 -}
 -function binaryCompoundAssignment3() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    (_a.sent()).a += y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x).a += y;
 -    });
 -}
 -function binaryCompoundAssignment4() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    (_a.sent())[a] += y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x)[a] += y;
 -    });
 -}
 -function binaryCompoundAssignment5() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, a];
--                case 1:
--                    _a[_b.sent()] += y;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x[yield a] += y;
 -    });
 -}
 -function binaryCompoundAssignment6() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a = (_c.sent());
--                    _b = _a.a;
--                    return [4 /*yield*/, y];
--                case 2:
--                    _a.a = _b + _c.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x).a += yield y;
 -    });
 -}
 -function binaryCompoundAssignment7() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a = (_d.sent());
--                    _b = a;
--                    _c = _a[_b];
--                    return [4 /*yield*/, y];
--                case 2:
--                    _a[_b] = _c + _d.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x)[a] += yield y;
 -    });
 -}
 -function binaryCompoundAssignment8() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, a];
--                case 1:
--                    _b = _d.sent();
--                    _c = _a[_b];
--                    return [4 /*yield*/, y];
--                case 2:
--                    _a[_b] = _c + _d.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x[yield a] += yield y;
 -    });
 -}
 -function binaryExponentiation() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _d, _e;
--        return __generator(this, function (_f) {
--            switch (_f.label) {
--                case 0:
--                    _b = (_a = Math).pow;
--                    return [4 /*yield*/, x];
--                case 1:
--                    _b.apply(_a, [(_f.sent()), y]);
--                    _d = (_c = Math).pow;
--                    _e = [x];
--                    return [4 /*yield*/, y];
--                case 2:
--                    _d.apply(_c, _e.concat([_f.sent()]));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        Math.pow((yield x), y);
+-        Math.pow(x, yield y);
 -    });
 -}
 -function binaryComma0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1: return [2 /*return*/, ((_a.sent()), y)];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        return (yield x), y;
 -    });
 -}
 -function binaryComma1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    x;
--                    return [4 /*yield*/, y];
--                case 1: return [2 /*return*/, _a.sent()];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        return x, yield y;
 -    });
 +async function binaryPlus0() {
 +    (await x) + y;
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionCallExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionCallExpressions.js.diff
index d538421cd5..97db82a59c 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionCallExpressions.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionCallExpressions.js.diff
@@ -5,298 +5,108 @@
 
  //// [es5-asyncFunctionCallExpressions.js]
 -function callExpression0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x(y, z)];
--                case 1:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield x(y, z);
 -    });
 -}
 -function callExpression1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    (_a.sent())(y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x)(y, z);
 -    });
 -}
 -function callExpression2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.apply(void 0, [_b.sent(), z]);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x(yield y, z);
 -    });
 -}
 -function callExpression3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _a = x;
--                    _b = [y];
--                    return [4 /*yield*/, z];
--                case 1:
--                    _a.apply(void 0, _b.concat([_c.sent()]));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x(y, yield z);
 -    });
 -}
 -function callExpression4() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x.apply(void 0, __spreadArray(__spreadArray([], y, false), [z], false))];
--                case 1:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield x(...y, z);
 -    });
 -}
 -function callExpression5() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    (_a.sent()).apply(void 0, __spreadArray(__spreadArray([], y, false), [z], false));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x)(...y, z);
 -    });
 -}
 -function callExpression6() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _d;
--        return __generator(this, function (_e) {
--            switch (_e.label) {
--                case 0:
--                    _b = (_a = x).apply;
--                    _c = [void 0];
--                    _d = [[]];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _b.apply(_a, _c.concat([__spreadArray.apply(void 0, [__spreadArray.apply(void 0, _d.concat([(_e.sent()), false])), [z], false])]));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x(...(yield y), z);
 -    });
 -}
 -function callExpression7() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _d;
--        return __generator(this, function (_e) {
--            switch (_e.label) {
--                case 0:
--                    _b = (_a = x).apply;
--                    _c = [void 0];
--                    _d = [__spreadArray([], y, false)];
--                    return [4 /*yield*/, z];
--                case 1:
--                    _b.apply(_a, _c.concat([__spreadArray.apply(void 0, _d.concat([[_e.sent()], false]))]));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x(...y, yield z);
 -    });
 -}
 -function callExpression8() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _b = (_a = x).apply;
--                    _c = [void 0];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _b.apply(_a, _c.concat([__spreadArray.apply(void 0, [[_d.sent()], z, false])]));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x(yield y, ...z);
 -    });
 -}
 -function callExpression9() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _d;
--        return __generator(this, function (_e) {
--            switch (_e.label) {
--                case 0:
--                    _b = (_a = x).apply;
--                    _c = [void 0];
--                    _d = [[y]];
--                    return [4 /*yield*/, z];
--                case 1:
--                    _b.apply(_a, _c.concat([__spreadArray.apply(void 0, _d.concat([(_e.sent()), false]))]));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x(y, ...(yield z));
 -    });
 -}
 -function callExpression10() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x.a(y, z)];
--                case 1:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield x.a(y, z);
 -    });
 -}
 -function callExpression11() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x.a];
--                case 1:
--                    (_a.sent())(y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x.a)(y, z);
 -    });
 -}
 -function callExpression12() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    (_a.sent()).a(y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x).a(y, z);
 -    });
 -}
 -function callExpression13() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _b = (_a = x).a;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _b.apply(_a, [_c.sent(), z]);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x.a(yield y, z);
 -    });
 -}
 -function callExpression14() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _b = (_a = x).a;
--                    _c = [y];
--                    return [4 /*yield*/, z];
--                case 1:
--                    _b.apply(_a, _c.concat([_d.sent()]));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x.a(y, yield z);
 -    });
 -}
 -function callExpression15() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x[a](y, z)];
--                case 1:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield x[a](y, z);
 -    });
 -}
 -function callExpression16() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x[a]];
--                case 1:
--                    (_a.sent())(y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x[a])(y, z);
 -    });
 -}
 -function callExpression17() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    (_a.sent())[a](y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        (yield x)[a](y, z);
 -    });
 -}
 -function callExpression18() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, a];
--                case 1:
--                    _a[_b.sent()](y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x[yield a](y, z);
 -    });
 -}
 -function callExpression19() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _b = (_a = x)[a];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _b.apply(_a, [_c.sent(), z]);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x[a](yield y, z);
 -    });
 -}
 -function callExpression20() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _b = (_a = x)[a];
--                    _c = [y];
--                    return [4 /*yield*/, z];
--                case 1:
--                    _b.apply(_a, _c.concat([_d.sent()]));
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x[a](y, yield z);
 -    });
 +async function callExpression0() {
 +    await x(y, z);
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionConditionals.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionConditionals.js.diff
index f745b7a920..a3dbebba11 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionConditionals.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionConditionals.js.diff
@@ -5,56 +5,18 @@
 
  //// [es5-asyncFunctionConditionals.js]
 -function conditional0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    a = (_a.sent()) ? y : z;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        a = (yield x) ? y : z;
 -    });
 -}
 -function conditional1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a = _b.sent();
--                    return [3 /*break*/, 3];
--                case 2:
--                    _a = z;
--                    _b.label = 3;
--                case 3:
--                    a = _a;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        a = x ? yield y : z;
 -    });
 -}
 -function conditional2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 1];
--                    _a = y;
--                    return [3 /*break*/, 3];
--                case 1: return [4 /*yield*/, z];
--                case 2:
--                    _a = _b.sent();
--                    _b.label = 3;
--                case 3:
--                    a = _a;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        a = x ? y : yield z;
 -    });
 +async function conditional0() {
 +    a = (await x) ? y : z;
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionDoStatements.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionDoStatements.js.diff
index d8327db001..862a803d3b 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionDoStatements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionDoStatements.js.diff
@@ -5,281 +5,148 @@
 
  //// [es5-asyncFunctionDoStatements.js]
 -function doStatement0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            do {
--                x;
--            } while (y);
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            x;
+-        } while (y);
 -    });
 -}
 -function doStatement1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    _a.label = 2;
--                case 2:
--                    if (y) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            yield x;
+-        } while (y);
 -    });
 -}
 -function doStatement2() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    x;
--                    _a.label = 1;
--                case 1: return [4 /*yield*/, y];
--                case 2:
--                    if (_a.sent()) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            x;
+-        } while (yield y);
 -    });
 -}
 -function doStatement3() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            do {
--                continue;
--            } while (y);
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            continue;
+-        } while (y);
 -    });
 -}
 -function doStatement4() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 2];
--                case 2:
--                    if (y) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            yield x;
+-            continue;
+-        } while (y);
 -    });
 -}
 -function doStatement5() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (1)
--                        return [3 /*break*/, 2];
--                    return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    _a.label = 2;
--                case 2:
--                    if (y) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            if (1)
+-                continue;
+-            yield x;
+-        } while (y);
 -    });
 -}
 -function doStatement6() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [3 /*break*/, 1];
--                case 1: return [4 /*yield*/, y];
--                case 2:
--                    if (_a.sent()) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            continue;
+-        } while (yield y);
 -    });
 -}
 -function doStatement7() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            A: do {
--                continue A;
--            } while (y);
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        A: do {
+-            continue A;
+-        } while (y);
 -    });
 -}
 -function doStatement8() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 2];
--                case 2:
--                    if (y) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        B: do {
+-            yield x;
+-            continue B;
+-        } while (y);
 -    });
 -}
 -function doStatement9() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (1)
--                        return [3 /*break*/, 2];
--                    return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    _a.label = 2;
--                case 2:
--                    if (y) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        C: do {
+-            if (1)
+-                continue C;
+-            yield x;
+-        } while (y);
 -    });
 -}
 -function doStatement10() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [3 /*break*/, 1];
--                case 1: return [4 /*yield*/, y];
--                case 2:
--                    if (_a.sent()) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        D: do {
+-            continue D;
+-        } while (yield y);
 -    });
 -}
 -function doStatement11() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            do {
--                break;
--            } while (y);
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            break;
+-        } while (y);
 -    });
 -}
 -function doStatement12() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 3];
--                case 2:
--                    if (y) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            yield x;
+-            break;
+-        } while (y);
 -    });
 -}
 -function doStatement13() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (1)
--                        return [3 /*break*/, 3];
--                    return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    _a.label = 2;
--                case 2:
--                    if (y) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            if (1)
+-                break;
+-            yield x;
+-        } while (y);
 -    });
 -}
 -function doStatement14() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [3 /*break*/, 3];
--                case 1: return [4 /*yield*/, y];
--                case 2:
--                    if (_a.sent()) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        do {
+-            break;
+-        } while (yield y);
 -    });
 -}
 -function doStatement15() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            E: do {
--                break E;
--            } while (y);
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        E: do {
+-            break E;
+-        } while (y);
 -    });
 -}
 -function doStatement16() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 3];
--                case 2:
--                    if (y) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        F: do {
+-            yield x;
+-            break F;
+-        } while (y);
 -    });
 -}
 -function doStatement17() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (1)
--                        return [3 /*break*/, 3];
--                    return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    _a.label = 2;
--                case 2:
--                    if (y) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        G: do {
+-            if (1)
+-                break G;
+-            yield x;
+-        } while (y);
 -    });
 -}
 -function doStatement18() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [3 /*break*/, 3];
--                case 1: return [4 /*yield*/, y];
--                case 2:
--                    if (_a.sent()) return [3 /*break*/, 0];
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        H: do {
+-            break H;
+-        } while (yield y);
 -    });
 +async function doStatement0() {
 +    do {
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionElementAccess.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionElementAccess.js.diff
index 9fe66c293f..a7c437d31e 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionElementAccess.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionElementAccess.js.diff
@@ -5,42 +5,18 @@
 
  //// [es5-asyncFunctionElementAccess.js]
 -function elementAccess0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x[y]];
--                case 1:
--                    z = _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        z = yield x[y];
 -    });
 -}
 -function elementAccess1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    z = (_a.sent())[y];
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        z = (yield x)[y];
 -    });
 -}
 -function elementAccess2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, y];
--                case 1:
--                    z = _a[_b.sent()];
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        z = x[yield y];
 -    });
 +async function elementAccess0() {
 +    z = await x[y];
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForInStatements.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForInStatements.js.diff
index c733861463..0405971e02 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForInStatements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForInStatements.js.diff
@@ -5,224 +5,66 @@
 
  //// [es5-asyncFunctionForInStatements.js]
 -function forInStatement0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            for (x in y) {
--                z;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x in y) {
+-            z;
+-        }
 -    });
 -}
 -function forInStatement1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _i;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0: return [4 /*yield*/, y];
--                case 1:
--                    _a = _d.sent();
--                    _b = [];
--                    for (_c in _a)
--                        _b.push(_c);
--                    _i = 0;
--                    _d.label = 2;
--                case 2:
--                    if (!(_i < _b.length)) return [3 /*break*/, 4];
--                    _c = _b[_i];
--                    if (!(_c in _a)) return [3 /*break*/, 3];
--                    x = _c;
--                    z;
--                    _d.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x in yield y) {
+-            z;
+-        }
 -    });
 -}
 -function forInStatement2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _i;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _a = y;
--                    _b = [];
--                    for (_c in _a)
--                        _b.push(_c);
--                    _i = 0;
--                    _d.label = 1;
--                case 1:
--                    if (!(_i < _b.length)) return [3 /*break*/, 4];
--                    _c = _b[_i];
--                    if (!(_c in _a)) return [3 /*break*/, 3];
--                    x = _c;
--                    return [4 /*yield*/, z];
--                case 2:
--                    _d.sent();
--                    _d.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x in y) {
+-            yield z;
+-        }
 -    });
 -}
 -function forInStatement3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _i;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _a = y;
--                    _b = [];
--                    for (_c in _a)
--                        _b.push(_c);
--                    _i = 0;
--                    _d.label = 1;
--                case 1:
--                    if (!(_i < _b.length)) return [3 /*break*/, 4];
--                    _c = _b[_i];
--                    if (!(_c in _a)) return [3 /*break*/, 3];
--                    return [4 /*yield*/, x];
--                case 2:
--                    (_d.sent()).a = _c;
--                    z;
--                    _d.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ((yield x).a in y) {
+-            z;
+-        }
 -    });
 -}
 -function forInStatement4() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _i;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0: return [4 /*yield*/, y];
--                case 1:
--                    _a = _d.sent();
--                    _b = [];
--                    for (_c in _a)
--                        _b.push(_c);
--                    _i = 0;
--                    _d.label = 2;
--                case 2:
--                    if (!(_i < _b.length)) return [3 /*break*/, 4];
--                    _c = _b[_i];
--                    if (!(_c in _a)) return [3 /*break*/, 3];
--                    x.a = _c;
--                    z;
--                    _d.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x.a in yield y) {
+-            z;
+-        }
 -    });
 -}
 -function forInStatement5() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _i;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _a = y;
--                    _b = [];
--                    for (_c in _a)
--                        _b.push(_c);
--                    _i = 0;
--                    _d.label = 1;
--                case 1:
--                    if (!(_i < _b.length)) return [3 /*break*/, 4];
--                    _c = _b[_i];
--                    if (!(_c in _a)) return [3 /*break*/, 3];
--                    x.a = _c;
--                    return [4 /*yield*/, z];
--                case 2:
--                    _d.sent();
--                    _d.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x.a in y) {
+-            yield z;
+-        }
 -    });
 -}
 -function forInStatement6() {
--    return __awaiter(this, void 0, void 0, function () {
--        var a;
--        return __generator(this, function (_a) {
--            for (a in y) {
--                z;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (var a in y) {
+-            z;
+-        }
 -    });
 -}
 -function forInStatement7() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _i, b;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0: return [4 /*yield*/, y];
--                case 1:
--                    _a = _d.sent();
--                    _b = [];
--                    for (_c in _a)
--                        _b.push(_c);
--                    _i = 0;
--                    _d.label = 2;
--                case 2:
--                    if (!(_i < _b.length)) return [3 /*break*/, 4];
--                    _c = _b[_i];
--                    if (!(_c in _a)) return [3 /*break*/, 3];
--                    b = _c;
--                    z;
--                    _d.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (var b in yield y) {
+-            z;
+-        }
 -    });
 -}
 -function forInStatement8() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _i, c;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _a = y;
--                    _b = [];
--                    for (_c in _a)
--                        _b.push(_c);
--                    _i = 0;
--                    _d.label = 1;
--                case 1:
--                    if (!(_i < _b.length)) return [3 /*break*/, 4];
--                    _c = _b[_i];
--                    if (!(_c in _a)) return [3 /*break*/, 3];
--                    c = _c;
--                    return [4 /*yield*/, z];
--                case 2:
--                    _d.sent();
--                    _d.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (var c in y) {
+-            yield z;
+-        }
 -    });
 +async function forInStatement0() {
 +    for (x in y) {
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForOfStatements.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForOfStatements.js.diff
index 24568c024b..015466f8ec 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForOfStatements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForOfStatements.js.diff
@@ -5,447 +5,136 @@
 
  //// [es5-asyncFunctionForOfStatements.js]
 -function forOfStatement0() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_1;
--        return __generator(this, function (_a) {
--            for (_i = 0, y_1 = y; _i < y_1.length; _i++) {
--                x = y_1[_i];
--                z;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x of y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _i = 0;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a = _b.sent();
--                    _b.label = 2;
--                case 2:
--                    if (!(_i < _a.length)) return [3 /*break*/, 4];
--                    x = _a[_i];
--                    z;
--                    _b.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x of yield y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_2;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _i = 0, y_2 = y;
--                    _a.label = 1;
--                case 1:
--                    if (!(_i < y_2.length)) return [3 /*break*/, 4];
--                    x = y_2[_i];
--                    return [4 /*yield*/, z];
--                case 2:
--                    _a.sent();
--                    _a.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x of y) {
+-            yield z;
+-        }
 -    });
 -}
 -function forOfStatement3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_3;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _i = 0, y_3 = y;
--                    _a.label = 1;
--                case 1:
--                    if (!(_i < y_3.length)) return [3 /*break*/, 4];
--                    return [4 /*yield*/, x];
--                case 2:
--                    (_a.sent()).a = y_3[_i];
--                    z;
--                    _a.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ((yield x).a of y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement4() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _i = 0;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a = _b.sent();
--                    _b.label = 2;
--                case 2:
--                    if (!(_i < _a.length)) return [3 /*break*/, 4];
--                    x.a = _a[_i];
--                    z;
--                    _b.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x.a of yield y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement5() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_4;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _i = 0, y_4 = y;
--                    _a.label = 1;
--                case 1:
--                    if (!(_i < y_4.length)) return [3 /*break*/, 4];
--                    x.a = y_4[_i];
--                    return [4 /*yield*/, z];
--                case 2:
--                    _a.sent();
--                    _a.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x.a of y) {
+-            yield z;
+-        }
 -    });
 -}
 -function forOfStatement6() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_5, b;
--        return __generator(this, function (_a) {
--            for (_i = 0, y_5 = y; _i < y_5.length; _i++) {
--                b = y_5[_i];
--                z;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (var b of y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement7() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, _a, c;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _i = 0;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a = _b.sent();
--                    _b.label = 2;
--                case 2:
--                    if (!(_i < _a.length)) return [3 /*break*/, 4];
--                    c = _a[_i];
--                    z;
--                    _b.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (var c of yield y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement8() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_6, d;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _i = 0, y_6 = y;
--                    _a.label = 1;
--                case 1:
--                    if (!(_i < y_6.length)) return [3 /*break*/, 4];
--                    d = y_6[_i];
--                    return [4 /*yield*/, z];
--                case 2:
--                    _a.sent();
--                    _a.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (var d of y) {
+-            yield z;
+-        }
 -    });
 -}
 -function forOfStatement9() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _i = 0;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a = _b.sent();
--                    _b.label = 2;
--                case 2:
--                    if (!(_i < _a.length)) return [3 /*break*/, 4];
--                    x = _a[_i][0];
--                    z;
--                    _b.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ([x] of yield y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement10() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_7;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _i = 0, y_7 = y;
--                    _a.label = 1;
--                case 1:
--                    if (!(_i < y_7.length)) return [3 /*break*/, 4];
--                    x = y_7[_i][0];
--                    return [4 /*yield*/, z];
--                case 2:
--                    _a.sent();
--                    _a.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ([x] of y) {
+-            yield z;
+-        }
 -    });
 -}
 -function forOfStatement11() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_8, _a;
--        var _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _i = 0, y_8 = y;
--                    _c.label = 1;
--                case 1:
--                    if (!(_i < y_8.length)) return [3 /*break*/, 6];
--                    _b = y_8[_i][0];
--                    if (!(_b === void 0)) return [3 /*break*/, 3];
--                    return [4 /*yield*/, a];
--                case 2:
--                    _a = _c.sent();
--                    return [3 /*break*/, 4];
--                case 3:
--                    _a = _b;
--                    _c.label = 4;
--                case 4:
--                    x = _a;
--                    z;
--                    _c.label = 5;
--                case 5:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 6: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ([x = yield a] of y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement12() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, _a;
--        var _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _i = 0;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a = _c.sent();
--                    _c.label = 2;
--                case 2:
--                    if (!(_i < _a.length)) return [3 /*break*/, 4];
--                    _b = _a[_i][0], x = _b === void 0 ? a : _b;
--                    z;
--                    _c.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ([x = a] of yield y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement13() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_9;
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _i = 0, y_9 = y;
--                    _b.label = 1;
--                case 1:
--                    if (!(_i < y_9.length)) return [3 /*break*/, 4];
--                    _a = y_9[_i][0], x = _a === void 0 ? a : _a;
--                    return [4 /*yield*/, z];
--                case 2:
--                    _b.sent();
--                    _b.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ([x = a] of y) {
+-            yield z;
+-        }
 -    });
 -}
 -function forOfStatement14() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _i = 0;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a = _b.sent();
--                    _b.label = 2;
--                case 2:
--                    if (!(_i < _a.length)) return [3 /*break*/, 4];
--                    x = _a[_i].x;
--                    z;
--                    _b.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ({ x } of yield y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement15() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_10;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _i = 0, y_10 = y;
--                    _a.label = 1;
--                case 1:
--                    if (!(_i < y_10.length)) return [3 /*break*/, 4];
--                    x = y_10[_i].x;
--                    return [4 /*yield*/, z];
--                case 2:
--                    _a.sent();
--                    _a.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ({ x } of y) {
+-            yield z;
+-        }
 -    });
 -}
 -function forOfStatement16() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_11, _a;
--        var _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _i = 0, y_11 = y;
--                    _c.label = 1;
--                case 1:
--                    if (!(_i < y_11.length)) return [3 /*break*/, 6];
--                    _b = y_11[_i].x;
--                    if (!(_b === void 0)) return [3 /*break*/, 3];
--                    return [4 /*yield*/, a];
--                case 2:
--                    _a = _c.sent();
--                    return [3 /*break*/, 4];
--                case 3:
--                    _a = _b;
--                    _c.label = 4;
--                case 4:
--                    x = _a;
--                    z;
--                    _c.label = 5;
--                case 5:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 6: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ({ x = yield a } of y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement17() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, _a;
--        var _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _i = 0;
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a = _c.sent();
--                    _c.label = 2;
--                case 2:
--                    if (!(_i < _a.length)) return [3 /*break*/, 4];
--                    _b = _a[_i].x, x = _b === void 0 ? a : _b;
--                    z;
--                    _c.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ({ x = a } of yield y) {
+-            z;
+-        }
 -    });
 -}
 -function forOfStatement18() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _i, y_12;
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _i = 0, y_12 = y;
--                    _b.label = 1;
--                case 1:
--                    if (!(_i < y_12.length)) return [3 /*break*/, 4];
--                    _a = y_12[_i].x, x = _a === void 0 ? a : _a;
--                    return [4 /*yield*/, z];
--                case 2:
--                    _b.sent();
--                    _b.label = 3;
--                case 3:
--                    _i++;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for ({ x = a } of y) {
+-            yield z;
+-        }
 -    });
 +async function forOfStatement0() {
 +    for (x of y) {
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForStatements.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForStatements.js.diff
index 35620c1c36..7a1c879c60 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForStatements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionForStatements.js.diff
@@ -5,116 +5,52 @@
 
  //// [es5-asyncFunctionForStatements.js]
 -function forStatement0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            for (x; y; z) {
--                a;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x; y; z) {
+-            a;
+-        }
 -    });
 -}
 -function forStatement1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    _a.label = 2;
--                case 2:
--                    if (!y) return [3 /*break*/, 4];
--                    a;
--                    _a.label = 3;
--                case 3:
--                    z;
--                    return [3 /*break*/, 2];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (yield x; y; z) {
+-            a;
+-        }
 -    });
 -}
 -function forStatement2() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    x;
--                    _a.label = 1;
--                case 1: return [4 /*yield*/, y];
--                case 2:
--                    if (!_a.sent()) return [3 /*break*/, 4];
--                    a;
--                    _a.label = 3;
--                case 3:
--                    z;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x; yield y; z) {
+-            a;
+-        }
 -    });
 -}
 -function forStatement3() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    x;
--                    _a.label = 1;
--                case 1:
--                    if (!y) return [3 /*break*/, 4];
--                    a;
--                    _a.label = 2;
--                case 2: return [4 /*yield*/, z];
--                case 3:
--                    _a.sent();
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x; y; yield z) {
+-            a;
+-        }
 -    });
 -}
 -function forStatement4() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    x;
--                    _a.label = 1;
--                case 1:
--                    if (!y) return [3 /*break*/, 4];
--                    return [4 /*yield*/, a];
--                case 2:
--                    _a.sent();
--                    _a.label = 3;
--                case 3:
--                    z;
--                    return [3 /*break*/, 1];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (x; y; z) {
+-            yield a;
+-        }
 -    });
 -}
 -function forStatement5() {
--    return __awaiter(this, void 0, void 0, function () {
--        var b;
--        return __generator(this, function (_a) {
--            for (; y; z) {
--                a;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (var b; y; z) {
+-            a;
+-        }
 -    });
 -}
 -function forStatement6() {
--    return __awaiter(this, void 0, void 0, function () {
--        var c;
--        return __generator(this, function (_a) {
--            for (c = x; y; z) {
--                a;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        for (var c = x; y; z) {
+-            a;
+-        }
 -    });
 +async function forStatement0() {
 +    for (x; y; z) {
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionHoisting.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionHoisting.js.diff
index 3ba433279e..5d0e6bf9a1 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionHoisting.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionHoisting.js.diff
@@ -5,25 +5,20 @@
 
  //// [es5-asyncFunctionHoisting.js]
 -function hoisting() {
--    return __awaiter(this, void 0, void 0, function () {
+-    return __awaiter(this, void 0, void 0, function* () {
+-        var a0, a1 = 1;
 -        function z() {
 -            var b0, b1 = 1;
 -        }
--        var a0, a1, c0, c1, a, b, _i, y_1, c;
--        return __generator(this, function (_a) {
--            a1 = 1;
--            if (true) {
--                c1 = 1;
--            }
--            for (a = 0; y;) {
--            }
--            for (b in y) {
--            }
--            for (_i = 0, y_1 = y; _i < y_1.length; _i++) {
--                c = y_1[_i];
--            }
--            return [2 /*return*/];
--        });
+-        if (true) {
+-            var c0, c1 = 1;
+-        }
+-        for (var a = 0; y;) {
+-        }
+-        for (var b in y) {
+-        }
+-        for (var c of y) {
+-        }
 -    });
 +async function hoisting() {
 +    var a0, a1 = 1;
@@ -41,31 +36,21 @@
 +    }
  }
 -function hoistingWithAwait() {
--    return __awaiter(this, void 0, void 0, function () {
+-    return __awaiter(this, void 0, void 0, function* () {
+-        var a0, a1 = 1;
 -        function z() {
 -            var b0, b1 = 1;
 -        }
--        var a0, a1, c0, c1, a, b, _i, y_2, c;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    a1 = 1;
--                    return [4 /*yield*/, 0];
--                case 1:
--                    _a.sent();
--                    if (true) {
--                        c1 = 1;
--                    }
--                    for (a = 0; y;) {
--                    }
--                    for (b in y) {
--                    }
--                    for (_i = 0, y_2 = y; _i < y_2.length; _i++) {
--                        c = y_2[_i];
--                    }
--                    return [2 /*return*/];
--            }
--        });
+-        yield 0;
+-        if (true) {
+-            var c0, c1 = 1;
+-        }
+-        for (var a = 0; y;) {
+-        }
+-        for (var b in y) {
+-        }
+-        for (var c of y) {
+-        }
 -    });
 +async function hoistingWithAwait() {
 +    var a0, a1 = 1;
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionIfStatements.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionIfStatements.js.diff
index 5dcf2ef4dc..072b2d63e7 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionIfStatements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionIfStatements.js.diff
@@ -5,55 +5,33 @@
 
  //// [es5-asyncFunctionIfStatements.js]
 -function ifStatement1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    if (_a.sent()) {
--                        y;
--                    }
--                    else {
--                        z;
--                    }
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        if (yield x) {
+-            y;
+-        }
+-        else {
+-            z;
+-        }
 -    });
 -}
 -function ifStatement2() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 3];
--                case 2:
--                    z;
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        if (x) {
+-            yield y;
+-        }
+-        else {
+-            z;
+-        }
 -    });
 -}
 -function ifStatement3() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 1];
--                    y;
--                    return [3 /*break*/, 3];
--                case 1: return [4 /*yield*/, z];
--                case 2:
--                    _a.sent();
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        if (x) {
+-            y;
+-        }
+-        else {
+-            yield z;
+-        }
 -    });
 +async function ifStatement1() {
 +    if (await x) {
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionLongObjectLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionLongObjectLiteral.js.diff
index c59c59948e..943f331ce5 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionLongObjectLiteral.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionLongObjectLiteral.js.diff
@@ -13,97 +13,29 @@
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
 -};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
--};
--var _this = this;
--var fooShort = function () { return __awaiter(_this, void 0, void 0, function () {
--    var _a;
--    return __generator(this, function (_b) {
--        switch (_b.label) {
--            case 0:
--                _a = {};
--                return [4 /*yield*/, Promise.resolve(0)];
--            case 1:
--                _a.a = _b.sent();
--                return [4 /*yield*/, Promise.resolve(1)];
--            case 2:
--                _a.b = _b.sent();
--                return [4 /*yield*/, Promise.resolve(2)];
--            case 3:
--                _a.c = _b.sent();
--                return [4 /*yield*/, Promise.resolve(3)];
--            case 4:
--                _a.d = _b.sent();
--                return [4 /*yield*/, Promise.resolve(4)];
--            case 5: return [2 /*return*/, (_a.e = _b.sent(),
--                    _a)];
--        }
--    });
--}); };
--var fooLong = function () { return __awaiter(_this, void 0, void 0, function () {
--    var _a;
--    return __generator(this, function (_b) {
--        switch (_b.label) {
--            case 0:
--                _a = {};
--                return [4 /*yield*/, Promise.resolve(0)];
--            case 1:
--                _a.a = _b.sent();
--                return [4 /*yield*/, Promise.resolve(1)];
--            case 2:
--                _a.b = _b.sent();
--                return [4 /*yield*/, Promise.resolve(2)];
--            case 3:
--                _a.c = _b.sent();
--                return [4 /*yield*/, Promise.resolve(3)];
--            case 4:
--                _a.d = _b.sent();
--                return [4 /*yield*/, Promise.resolve(4)];
--            case 5:
--                _a.e = _b.sent();
--                return [4 /*yield*/, Promise.resolve(5)];
--            case 6:
--                _a.f = _b.sent();
--                return [4 /*yield*/, Promise.resolve(6)];
--            case 7:
--                _a.g = _b.sent();
--                return [4 /*yield*/, Promise.resolve(7)];
--            case 8:
--                _a.h = _b.sent();
--                return [4 /*yield*/, Promise.resolve(8)];
--            case 9:
--                _a.i = _b.sent();
--                return [4 /*yield*/, Promise.resolve(9)];
--            case 10: return [2 /*return*/, (_a.j = _b.sent(),
--                    _a)];
--        }
--    });
--}); };
+-const fooShort = () => __awaiter(this, void 0, void 0, function* () {
+-    return {
+-        a: yield Promise.resolve(0),
+-        b: yield Promise.resolve(1),
+-        c: yield Promise.resolve(2),
+-        d: yield Promise.resolve(3),
+-        e: yield Promise.resolve(4),
+-    };
+-});
+-const fooLong = () => __awaiter(this, void 0, void 0, function* () {
+-    return {
+-        a: yield Promise.resolve(0),
+-        b: yield Promise.resolve(1),
+-        c: yield Promise.resolve(2),
+-        d: yield Promise.resolve(3),
+-        e: yield Promise.resolve(4),
+-        f: yield Promise.resolve(5),
+-        g: yield Promise.resolve(6),
+-        h: yield Promise.resolve(7),
+-        i: yield Promise.resolve(8),
+-        j: yield Promise.resolve(9),
+-    };
+-});
 +const fooShort = async () => {
 +    return {
 +        a: await Promise.resolve(0),
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionNestedLoops.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionNestedLoops.js.diff
index 89205ca1e2..8287d8381b 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionNestedLoops.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionNestedLoops.js.diff
@@ -5,24 +5,16 @@
 
  //// [es5-asyncFunctionNestedLoops.js]
 -function nestedLoops() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    while (z) {
--                        return [3 /*break*/, 0];
--                    }
--                    while (a) {
--                        continue;
--                    }
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
+-    return __awaiter(this, void 0, void 0, function* () {
+-        A: while (x) {
+-            yield y;
+-            while (z) {
+-                continue A;
 -            }
--        });
+-            while (a) {
+-                continue;
+-            }
+-        }
 -    });
 +async function nestedLoops() {
 +    A: while (x) {
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionNewExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionNewExpressions.js.diff
index a6f2192e85..77c35996d8 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionNewExpressions.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionNewExpressions.js.diff
@@ -5,300 +5,108 @@
 
  //// [es5-asyncFunctionNewExpressions.js]
 -function newExpression0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, new x(y, z)];
--                case 1:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield new x(y, z);
 -    });
 -}
 -function newExpression1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    new (_a.sent())(y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new (yield x)(y, z);
 -    });
 -}
 -function newExpression2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x.bind;
--                    return [4 /*yield*/, y];
--                case 1:
--                    new (_a.apply(x, [void 0, _b.sent(), z]))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x(yield y, z);
 -    });
 -}
 -function newExpression3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _a = x.bind;
--                    _b = [void 0, y];
--                    return [4 /*yield*/, z];
--                case 1:
--                    new (_a.apply(x, _b.concat([_c.sent()])))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x(y, yield z);
 -    });
 -}
 -function newExpression4() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, new (x.bind.apply(x, __spreadArray(__spreadArray([void 0], y, false), [z], false)))()];
--                case 1:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield new x(...y, z);
 -    });
 -}
 -function newExpression5() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    new ((_a = (_b.sent())).bind.apply(_a, __spreadArray(__spreadArray([void 0], y, false), [z], false)))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new (yield x)(...y, z);
 -    });
 -}
 -function newExpression6() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _d;
--        return __generator(this, function (_e) {
--            switch (_e.label) {
--                case 0:
--                    _b = (_a = x.bind).apply;
--                    _c = [x];
--                    _d = [[void 0]];
--                    return [4 /*yield*/, y];
--                case 1:
--                    new (_b.apply(_a, _c.concat([__spreadArray.apply(void 0, [__spreadArray.apply(void 0, _d.concat([(_e.sent()), false])), [z], false])])))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x(...(yield y), z);
 -    });
 -}
 -function newExpression7() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _d;
--        return __generator(this, function (_e) {
--            switch (_e.label) {
--                case 0:
--                    _b = (_a = x.bind).apply;
--                    _c = [x];
--                    _d = [__spreadArray([void 0], y, false)];
--                    return [4 /*yield*/, z];
--                case 1:
--                    new (_b.apply(_a, _c.concat([__spreadArray.apply(void 0, _d.concat([[_e.sent()], false]))])))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x(...y, yield z);
 -    });
 -}
 -function newExpression8() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _d;
--        return __generator(this, function (_e) {
--            switch (_e.label) {
--                case 0:
--                    _b = (_a = x.bind).apply;
--                    _c = [x];
--                    _d = [void 0];
--                    return [4 /*yield*/, y];
--                case 1:
--                    new (_b.apply(_a, _c.concat([__spreadArray.apply(void 0, [_d.concat([_e.sent()]), z, false])])))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x(yield y, ...z);
 -    });
 -}
 -function newExpression9() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c, _d;
--        return __generator(this, function (_e) {
--            switch (_e.label) {
--                case 0:
--                    _b = (_a = x.bind).apply;
--                    _c = [x];
--                    _d = [[void 0, y]];
--                    return [4 /*yield*/, z];
--                case 1:
--                    new (_b.apply(_a, _c.concat([__spreadArray.apply(void 0, _d.concat([(_e.sent()), false]))])))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x(y, ...(yield z));
 -    });
 -}
 -function newExpression10() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, new x.a(y, z)];
--                case 1:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield new x.a(y, z);
 -    });
 -}
 -function newExpression11() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x.a];
--                case 1:
--                    new (_a.sent())(y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new (yield x.a)(y, z);
 -    });
 -}
 -function newExpression12() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    new (_a.sent()).a(y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new (yield x).a(y, z);
 -    });
 -}
 -function newExpression13() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _b = (_a = x.a).bind;
--                    return [4 /*yield*/, y];
--                case 1:
--                    new (_b.apply(_a, [void 0, _c.sent(), z]))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x.a(yield y, z);
 -    });
 -}
 -function newExpression14() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _b = (_a = x.a).bind;
--                    _c = [void 0, y];
--                    return [4 /*yield*/, z];
--                case 1:
--                    new (_b.apply(_a, _c.concat([_d.sent()])))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x.a(y, yield z);
 -    });
 -}
 -function newExpression15() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, new x[a](y, z)];
--                case 1:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield new x[a](y, z);
 -    });
 -}
 -function newExpression16() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x[a]];
--                case 1:
--                    new (_a.sent())(y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new (yield x[a])(y, z);
 -    });
 -}
 -function newExpression17() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    new (_a.sent())[a](y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new (yield x)[a](y, z);
 -    });
 -}
 -function newExpression18() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, a];
--                case 1:
--                    new _a[_b.sent()](y, z);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x[yield a](y, z);
 -    });
 -}
 -function newExpression19() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _b = (_a = x[a]).bind;
--                    return [4 /*yield*/, y];
--                case 1:
--                    new (_b.apply(_a, [void 0, _c.sent(), z]))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x[a](yield y, z);
 -    });
 -}
 -function newExpression20() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b, _c;
--        return __generator(this, function (_d) {
--            switch (_d.label) {
--                case 0:
--                    _b = (_a = x[a]).bind;
--                    _c = [void 0, y];
--                    return [4 /*yield*/, z];
--                case 1:
--                    new (_b.apply(_a, _c.concat([_d.sent()])))();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        new x[a](y, yield z);
 -    });
 +async function newExpression0() {
 +    await new x(y, z);
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionObjectLiterals.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionObjectLiterals.js.diff
index 8196c74d6d..7d223b3af6 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionObjectLiterals.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionObjectLiterals.js.diff
@@ -5,129 +5,59 @@
 
  //// [es5-asyncFunctionObjectLiterals.js]
 -function objectLiteral0() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = {};
--                    return [4 /*yield*/, y];
--                case 1:
--                    x = (_a.a = _b.sent(),
--                        _a.b = z,
--                        _a);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = {
+-            a: yield y,
+-            b: z
+-        };
 -    });
 -}
 -function objectLiteral1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = {
--                        a: y
--                    };
--                    return [4 /*yield*/, z];
--                case 1:
--                    x = (_a.b = _b.sent(),
--                        _a);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = {
+-            a: y,
+-            b: yield z
+-        };
 -    });
 -}
 -function objectLiteral2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = {};
--                    return [4 /*yield*/, a];
--                case 1:
--                    x = (_a[_b.sent()] = y,
--                        _a.b = z,
--                        _a);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = {
+-            [yield a]: y,
+-            b: z
+-        };
 -    });
 -}
 -function objectLiteral3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        var _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _b = {};
--                    _a = a;
--                    return [4 /*yield*/, y];
--                case 1:
--                    x = (_b[_a] = _c.sent(),
--                        _b.b = z,
--                        _b);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = {
+-            [a]: yield y,
+-            b: z
+-        };
 -    });
 -}
 -function objectLiteral4() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = {};
--                    return [4 /*yield*/, y];
--                case 1:
--                    x = (_a.a = _b.sent(),
--                        _a[b] = z,
--                        _a);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = {
+-            a: yield y,
+-            [b]: z
+-        };
 -    });
 -}
 -function objectLiteral5() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = {
--                        a: y
--                    };
--                    return [4 /*yield*/, b];
--                case 1:
--                    x = (_a[_b.sent()] = z,
--                        _a);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = {
+-            a: y,
+-            [yield b]: z
+-        };
 -    });
 -}
 -function objectLiteral6() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        var _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _b = {
--                        a: y
--                    };
--                    _a = b;
--                    return [4 /*yield*/, z];
--                case 1:
--                    x = (_b[_a] = _c.sent(),
--                        _b);
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        x = {
+-            a: y,
+-            [b]: yield z
+-        };
 -    });
 +async function objectLiteral0() {
 +    x = {
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionPropertyAccess.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionPropertyAccess.js.diff
index db7f5b0aa1..6774a38c6f 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionPropertyAccess.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionPropertyAccess.js.diff
@@ -5,39 +5,18 @@
 
  //// [es5-asyncFunctionPropertyAccess.js]
 -function propertyAccess0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x.a];
--                case 1:
--                    y = _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        y = yield x.a;
 -    });
 -}
 -function propertyAccess1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    y = (_a.sent()).a;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        y = (yield x).a;
 -    });
 -}
 -function callExpression0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x(y, z)];
--                case 1:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield x(y, z);
 -    });
 +async function propertyAccess0() {
 +    y = await x.a;
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionReturnStatements.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionReturnStatements.js.diff
index d97b8b6317..910f12ce51 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionReturnStatements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionReturnStatements.js.diff
@@ -5,62 +5,40 @@
 
  //// [es5-asyncFunctionReturnStatements.js]
 -function returnStatement0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        return;
 -    });
 -}
 -function returnStatement1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            return [2 /*return*/, x];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        return x;
 -    });
 -}
 -function returnStatement2() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1: return [2 /*return*/, _a.sent()];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        return yield x;
 -    });
 -}
 -function returnStatement3() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            {
--                return [2 /*return*/];
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        {
+-            return;
+-        }
 -    });
 -}
 -function returnStatement4() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    {
--                        return [2 /*return*/];
--                    }
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        yield x;
+-        {
+-            return;
+-        }
 -    });
 -}
 -function returnStatement5() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1: return [2 /*return*/, _a.sent()];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        {
+-            return yield x;
+-        }
 -    });
 +async function returnStatement0() {
 +    return;
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionSwitchStatements.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionSwitchStatements.js.diff
index b84c044571..afac4f7e0a 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionSwitchStatements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionSwitchStatements.js.diff
@@ -5,222 +5,118 @@
 
  //// [es5-asyncFunctionSwitchStatements.js]
 -function switchStatement0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (x) {
--                case y:
--                    a;
--                    break;
--                default:
--                    b;
--                    break;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        switch (x) {
+-            case y:
+-                a;
+-                break;
+-            default:
+-                b;
+-                break;
+-        }
 -    });
 -}
 -function switchStatement1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    switch (_a.sent()) {
--                        case y:
--                            a;
--                            break;
--                        default:
--                            b;
--                            break;
--                    }
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        switch (yield x) {
+-            case y:
+-                a;
+-                break;
+-            default:
+-                b;
+-                break;
+-        }
 -    });
 -}
 -function switchStatement2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, y];
--                case 1:
--                    switch (_a) {
--                        case _b.sent(): return [3 /*break*/, 2];
--                    }
--                    return [3 /*break*/, 3];
--                case 2:
--                    a;
--                    return [3 /*break*/, 4];
--                case 3:
--                    b;
--                    return [3 /*break*/, 4];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        switch (x) {
+-            case yield y:
+-                a;
+-                break;
+-            default:
+-                b;
+-                break;
+-        }
 -    });
 -}
 -function switchStatement3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    switch (_a) {
--                        case y: return [3 /*break*/, 1];
--                    }
--                    return [3 /*break*/, 3];
--                case 1: return [4 /*yield*/, a];
--                case 2:
--                    _b.sent();
--                    return [3 /*break*/, 4];
--                case 3:
--                    b;
--                    return [3 /*break*/, 4];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        switch (x) {
+-            case y:
+-                yield a;
+-                break;
+-            default:
+-                b;
+-                break;
+-        }
 -    });
 -}
 -function switchStatement4() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    switch (_a) {
--                        case y: return [3 /*break*/, 1];
--                    }
--                    return [3 /*break*/, 2];
--                case 1:
--                    a;
--                    return [3 /*break*/, 4];
--                case 2: return [4 /*yield*/, b];
--                case 3:
--                    _b.sent();
--                    return [3 /*break*/, 4];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        switch (x) {
+-            case y:
+-                a;
+-                break;
+-            default:
+-                yield b;
+-                break;
+-        }
 -    });
 -}
 -function switchStatement5() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    switch (_a) {
--                        case y: return [3 /*break*/, 2];
--                    }
--                    return [4 /*yield*/, z];
--                case 1:
--                    switch (_a) {
--                        case _b.sent(): return [3 /*break*/, 3];
--                    }
--                    return [3 /*break*/, 4];
--                case 2:
--                    a;
--                    return [3 /*break*/, 4];
--                case 3:
--                    b;
--                    return [3 /*break*/, 4];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        switch (x) {
+-            case y:
+-                a;
+-                break;
+-            case yield z:
+-                b;
+-                break;
+-        }
 -    });
 -}
 -function switchStatement6() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    return [4 /*yield*/, y];
--                case 1:
--                    switch (_a) {
--                        case _b.sent(): return [3 /*break*/, 3];
--                        case z: return [3 /*break*/, 4];
--                    }
--                    return [3 /*break*/, 2];
--                case 2:
--                    c;
--                    return [3 /*break*/, 5];
--                case 3:
--                    a;
--                    return [3 /*break*/, 5];
--                case 4:
--                    b;
--                    return [3 /*break*/, 5];
--                case 5: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        switch (x) {
+-            default:
+-                c;
+-                break;
+-            case yield y:
+-                a;
+-                break;
+-            case z:
+-                b;
+-                break;
+-        }
 -    });
 -}
 -function switchStatement7() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    switch (_a) {
--                        case y: return [3 /*break*/, 3];
--                    }
--                    return [4 /*yield*/, z];
--                case 1:
--                    switch (_a) {
--                        case _b.sent(): return [3 /*break*/, 4];
--                    }
--                    return [3 /*break*/, 2];
--                case 2:
--                    c;
--                    return [3 /*break*/, 5];
--                case 3:
--                    a;
--                    return [3 /*break*/, 5];
--                case 4:
--                    b;
--                    return [3 /*break*/, 5];
--                case 5: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        switch (x) {
+-            default:
+-                c;
+-                break;
+-            case y:
+-                a;
+-                break;
+-            case yield z:
+-                b;
+-                break;
+-        }
 -    });
 -}
 -function switchStatement8() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    switch (_a) {
--                        case y: return [3 /*break*/, 3];
--                    }
--                    return [4 /*yield*/, z];
--                case 1:
--                    switch (_a) {
--                        case _b.sent(): return [3 /*break*/, 4];
--                    }
--                    return [3 /*break*/, 2];
--                case 2:
--                    c;
--                    _b.label = 3;
--                case 3:
--                    a;
--                    return [3 /*break*/, 5];
--                case 4:
--                    b;
--                    return [3 /*break*/, 5];
--                case 5: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        switch (x) {
+-            default: c;
+-            case y:
+-                a;
+-                break;
+-            case yield z:
+-                b;
+-                break;
+-        }
 -    });
 +async function switchStatement0() {
 +    switch (x) {
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionTryStatements.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionTryStatements.js.diff
index 1e8a86eba7..916972e992 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionTryStatements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionTryStatements.js.diff
@@ -5,212 +5,136 @@
 
  //// [es5-asyncFunctionTryStatements.js]
 -function tryCatch0() {
--    return __awaiter(this, void 0, void 0, function () {
+-    return __awaiter(this, void 0, void 0, function* () {
 -        var x, y;
--        return __generator(this, function (_a) {
--            try {
--                x;
--            }
--            catch (e) {
--                y;
--            }
--            return [2 /*return*/];
--        });
+-        try {
+-            x;
+-        }
+-        catch (e) {
+-            y;
+-        }
 -    });
 -}
 -function tryCatch1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var x, y, e_1;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _a.trys.push([0, 2, , 3]);
--                    return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 3];
--                case 2:
--                    e_1 = _a.sent();
--                    y;
--                    return [3 /*break*/, 3];
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        var x, y;
+-        try {
+-            yield x;
+-        }
+-        catch (e) {
+-            y;
+-        }
 -    });
 -}
 -function tryCatch2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var x, y, e_2;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _a.trys.push([0, 1, , 3]);
--                    x;
--                    return [3 /*break*/, 3];
--                case 1:
--                    e_2 = _a.sent();
--                    return [4 /*yield*/, y];
--                case 2:
--                    _a.sent();
--                    return [3 /*break*/, 3];
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        var x, y;
+-        try {
+-            x;
+-        }
+-        catch (e) {
+-            yield y;
+-        }
 -    });
 -}
 -function tryCatch3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var x, y, e_3;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _a.trys.push([0, 2, , 3]);
--                    return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 3];
--                case 2:
--                    e_3 = _a.sent();
--                    return [2 /*return*/, function () { return e_3; }];
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        var x, y;
+-        try {
+-            yield x;
+-        }
+-        catch (e) {
+-            return () => e;
+-        }
 -    });
 -}
 -function tryFinally0() {
--    return __awaiter(this, void 0, void 0, function () {
+-    return __awaiter(this, void 0, void 0, function* () {
 -        var x, y;
--        return __generator(this, function (_a) {
--            try {
--                x;
--            }
--            finally {
--                y;
--            }
--            return [2 /*return*/];
--        });
+-        try {
+-            x;
+-        }
+-        finally {
+-            y;
+-        }
 -    });
 -}
 -function tryFinally1() {
--    return __awaiter(this, void 0, void 0, function () {
+-    return __awaiter(this, void 0, void 0, function* () {
 -        var x, y;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _a.trys.push([0, , 2, 3]);
--                    return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 3];
--                case 2:
--                    y;
--                    return [7 /*endfinally*/];
--                case 3: return [2 /*return*/];
--            }
--        });
+-        try {
+-            yield x;
+-        }
+-        finally {
+-            y;
+-        }
 -    });
 -}
 -function tryFinally2() {
--    return __awaiter(this, void 0, void 0, function () {
+-    return __awaiter(this, void 0, void 0, function* () {
 -        var x, y;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _a.trys.push([0, , 1, 3]);
--                    x;
--                    return [3 /*break*/, 3];
--                case 1: return [4 /*yield*/, y];
--                case 2:
--                    _a.sent();
--                    return [7 /*endfinally*/];
--                case 3: return [2 /*return*/];
--            }
--        });
+-        try {
+-            x;
+-        }
+-        finally {
+-            yield y;
+-        }
 -    });
 -}
 -function tryCatchFinally0() {
--    return __awaiter(this, void 0, void 0, function () {
+-    return __awaiter(this, void 0, void 0, function* () {
 -        var x, y, z;
--        return __generator(this, function (_a) {
--            try {
--                x;
--            }
--            catch (e) {
--                y;
--            }
--            finally {
--                z;
--            }
--            return [2 /*return*/];
--        });
+-        try {
+-            x;
+-        }
+-        catch (e) {
+-            y;
+-        }
+-        finally {
+-            z;
+-        }
 -    });
 -}
 -function tryCatchFinally1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var x, y, z, e_4;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _a.trys.push([0, 2, 3, 4]);
--                    return [4 /*yield*/, x];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 4];
--                case 2:
--                    e_4 = _a.sent();
--                    y;
--                    return [3 /*break*/, 4];
--                case 3:
--                    z;
--                    return [7 /*endfinally*/];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        var x, y, z;
+-        try {
+-            yield x;
+-        }
+-        catch (e) {
+-            y;
+-        }
+-        finally {
+-            z;
+-        }
 -    });
 -}
 -function tryCatchFinally2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var x, y, z, e_5;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _a.trys.push([0, 1, 3, 4]);
--                    x;
--                    return [3 /*break*/, 4];
--                case 1:
--                    e_5 = _a.sent();
--                    return [4 /*yield*/, y];
--                case 2:
--                    _a.sent();
--                    return [3 /*break*/, 4];
--                case 3:
--                    z;
--                    return [7 /*endfinally*/];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        var x, y, z;
+-        try {
+-            x;
+-        }
+-        catch (e) {
+-            yield y;
+-        }
+-        finally {
+-            z;
+-        }
 -    });
 -}
 -function tryCatchFinally3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var x, y, z, e_6;
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    _a.trys.push([0, 1, 2, 4]);
--                    x;
--                    return [3 /*break*/, 4];
--                case 1:
--                    e_6 = _a.sent();
--                    y;
--                    return [3 /*break*/, 4];
--                case 2: return [4 /*yield*/, z];
--                case 3:
--                    _a.sent();
--                    return [7 /*endfinally*/];
--                case 4: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        var x, y, z;
+-        try {
+-            x;
+-        }
+-        catch (e) {
+-            y;
+-        }
+-        finally {
+-            yield z;
+-        }
 -    });
 +async function tryCatch0() {
 +    var x, y;
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionWhileStatements.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionWhileStatements.js.diff
index dcb3fbe3df..151e0d3327 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionWhileStatements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionWhileStatements.js.diff
@@ -5,262 +5,148 @@
 
  //// [es5-asyncFunctionWhileStatements.js]
 -function whileStatement0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            while (x) {
--                y;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (x) {
+-            y;
+-        }
 -    });
 -}
 -function whileStatement1() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    if (!_a.sent()) return [3 /*break*/, 2];
--                    y;
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (yield x) {
+-            y;
+-        }
 -    });
 -}
 -function whileStatement2() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (x) {
+-            yield y;
+-        }
 -    });
 -}
 -function whileStatement3() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            while (x) {
--                continue;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (x) {
+-            continue;
+-        }
 -    });
 -}
 -function whileStatement4() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    if (!_a.sent()) return [3 /*break*/, 2];
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (yield x) {
+-            continue;
+-        }
 -    });
 -}
 -function whileStatement5() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (x) {
+-            yield y;
+-            continue;
+-        }
 -    });
 -}
 -function whileStatement6() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    if (1)
--                        return [3 /*break*/, 0];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (x) {
+-            if (1)
+-                continue;
+-            yield y;
+-        }
 -    });
 -}
 -function whileStatement7() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            A: while (x) {
--                continue A;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        A: while (x) {
+-            continue A;
+-        }
 -    });
 -}
 -function whileStatement8() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    if (!_a.sent()) return [3 /*break*/, 2];
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        B: while (yield x) {
+-            continue B;
+-        }
 -    });
 -}
 -function whileStatement9() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        C: while (x) {
+-            yield y;
+-            continue C;
+-        }
 -    });
 -}
 -function whileStatement10() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    if (1)
--                        return [3 /*break*/, 0];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        D: while (x) {
+-            if (1)
+-                continue D;
+-            yield y;
+-        }
 -    });
 -}
 -function whileStatement11() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            while (x) {
--                break;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (x) {
+-            break;
+-        }
 -    });
 -}
 -function whileStatement12() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    if (!_a.sent()) return [3 /*break*/, 2];
--                    return [3 /*break*/, 2];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (yield x) {
+-            break;
+-        }
 -    });
 -}
 -function whileStatement13() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 2];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (x) {
+-            yield y;
+-            break;
+-        }
 -    });
 -}
 -function whileStatement14() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    if (1)
--                        return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        while (x) {
+-            if (1)
+-                break;
+-            yield y;
+-        }
 -    });
 -}
 -function whileStatement15() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            E: while (x) {
--                break E;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        E: while (x) {
+-            break E;
+-        }
 -    });
 -}
 -function whileStatement16() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    if (!_a.sent()) return [3 /*break*/, 2];
--                    return [3 /*break*/, 2];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        F: while (yield x) {
+-            break F;
+-        }
 -    });
 -}
 -function whileStatement17() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 2];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        G: while (x) {
+-            yield y;
+-            break G;
+-        }
 -    });
 -}
 -function whileStatement18() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!x) return [3 /*break*/, 2];
--                    if (1)
--                        return [3 /*break*/, 2];
--                    return [4 /*yield*/, y];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 0];
--                case 2: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        H: while (x) {
+-            if (1)
+-                break H;
+-            yield y;
+-        }
 -    });
 +async function whileStatement0() {
 +    while (x) {
diff --git a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionWithStatements.js.diff b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionWithStatements.js.diff
index b5361f1888..977d69144e 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionWithStatements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-asyncFunctionWithStatements.js.diff
@@ -5,88 +5,22 @@
 
  //// [es5-asyncFunctionWithStatements.js]
 -function withStatement0() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            with (x) {
--                y;
--            }
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        with (x) {
+-            y;
+-        }
 -    });
 -}
 -function withStatement1() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0: return [4 /*yield*/, x];
--                case 1:
--                    _a = _b.sent();
--                    _b.label = 2;
--                case 2:
--                    with (_a) {
--                        y;
--                    }
--                    _b.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        with (yield x) {
+-            y;
+-        }
 -    });
 -}
 -function withStatement2() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a;
--        return __generator(this, function (_b) {
--            switch (_b.label) {
--                case 0:
--                    _a = x;
--                    _b.label = 1;
--                case 1: with (_a) {
--                    a;
--                    return [4 /*yield*/, y];
--                }
--                case 2:
--                    with (_a) {
--                        _b.sent();
--                        b;
--                    }
--                    _b.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
--    });
--}
--function withStatement3() {
--    return __awaiter(this, void 0, void 0, function () {
--        var _a, _b;
--        return __generator(this, function (_c) {
--            switch (_c.label) {
--                case 0:
--                    _a = x;
--                    _c.label = 1;
--                case 1:
--                    with (_a) {
--                        _b = z;
--                    }
--                    _c.label = 2;
--                case 2: with (_a) {
--                    with (_b) {
--                        a;
--                        return [4 /*yield*/, y];
--                    }
--                }
--                case 3:
--                    with (_a) {
--                        with (_b) {
--                            _c.sent();
--                            b;
--                        }
--                    }
--                    _c.label = 4;
--                case 4: return [2 /*return*/];
--            }
--        });
--    });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        with (x) {
 +async function withStatement0() {
 +    with (x) {
 +        y;
@@ -107,9 +41,22 @@
 +async function withStatement3() {
 +    with (x) {
 +        with (z) {
-+            a;
+             a;
+-            yield y;
 +            await y;
-+            b;
-+        }
+             b;
+         }
+-    });
+-}
+-function withStatement3() {
+-    return __awaiter(this, void 0, void 0, function* () {
+-        with (x) {
+-            with (z) {
+-                a;
+-                yield y;
+-                b;
+-            }
+-        }
+-    });
 +    }
  }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-commonjs.js.diff b/testdata/baselines/reference/submodule/compiler/es5-commonjs.js.diff
deleted file mode 100644
index a46290e5b0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5-commonjs.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.es5-commonjs.js
-+++ new.es5-commonjs.js
-@@= skipped -17, +17 lines =@@
- //// [es5-commonjs.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var A = /** @class */ (function () {
--    function A() {
-+class A {
-+    constructor() {
-     }
--    A.prototype.B = function () {
-+    B() {
-         return 42;
--    };
--    return A;
--}());
-+    }
-+}
- exports.default = A;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-commonjs4.js.diff b/testdata/baselines/reference/submodule/compiler/es5-commonjs4.js.diff
deleted file mode 100644
index 774e767080..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5-commonjs4.js.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- old.es5-commonjs4.js
-+++ new.es5-commonjs4.js
-@@= skipped -19, +19 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.__esModule = void 0;
--var A = /** @class */ (function () {
--    function A() {
-+class A {
-+    constructor() {
-     }
--    A.prototype.B = function () {
-+    B() {
-         return 42;
--    };
--    return A;
--}());
-+    }
-+}
- exports.default = A;
- exports.__esModule = 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-declaration-amd.js.diff b/testdata/baselines/reference/submodule/compiler/es5-declaration-amd.js.diff
deleted file mode 100644
index d0777120e0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5-declaration-amd.js.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- old.es5-declaration-amd.js
-+++ new.es5-declaration-amd.js
-@@= skipped -14, +14 lines =@@
- }
-
- //// [es5-declaration-amd.js]
--var A = /** @class */ (function () {
--    function A() {
-+class A {
-+    constructor() {
-     }
--    A.prototype.B = function () {
-+    B() {
-         return 42;
--    };
--    return A;
--}());
-+    }
-+}
-
-
- //// [es5-declaration-amd.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-importHelpersAsyncFunctions.js.diff b/testdata/baselines/reference/submodule/compiler/es5-importHelpersAsyncFunctions.js.diff
index 7613ee5758..ec23565193 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-importHelpersAsyncFunctions.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-importHelpersAsyncFunctions.js.diff
@@ -6,10 +6,7 @@
  exports.foo = foo;
 -var tslib_1 = require("tslib");
 -function foo() {
--    return tslib_1.__awaiter(this, void 0, void 0, function () {
--        return tslib_1.__generator(this, function (_a) {
--            return [2 /*return*/];
--        });
+-    return tslib_1.__awaiter(this, void 0, void 0, function* () {
 -    });
 +async function foo() {
  }
@@ -23,38 +20,8 @@
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
 -};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
--};
 -function foo() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            return [2 /*return*/];
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
 -    });
 +async function foo() {
  }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.js.diff b/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.js.diff
deleted file mode 100644
index 62f18df1cb..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.es5-souremap-amd.js
-+++ new.es5-souremap-amd.js
-@@= skipped -14, +14 lines =@@
- }
-
- //// [es5-souremap-amd.js]
--var A = /** @class */ (function () {
--    function A() {
-+class A {
-+    constructor() {
-     }
--    A.prototype.B = function () {
-+    B() {
-         return 42;
--    };
--    return A;
--}());
-+    }
-+}
- //# sourceMappingURL=es5-souremap-amd.js.map
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.js.map.diff b/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.js.map.diff
index 4cc29c9c87..0b9eda66da 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.js.map.diff
@@ -2,7 +2,7 @@
 +++ new.es5-souremap-amd.js.map
 @@= skipped -0, +0 lines =@@
  //// [es5-souremap-amd.js.map]
--{"version":3,"file":"es5-souremap-amd.js","sourceRoot":"","sources":["es5-souremap-amd.ts"],"names":[],"mappings":"AAAA;IAEI;IAGA,CAAC;IAEM,aAAC,GAAR;QAEI,OAAO,EAAE,CAAC;IACd,CAAC;IACL,QAAC;AAAD,CAAC,AAXD,IAWC"}
--//// https://sokra.github.io/source-map-visualization#base64,dmFyIEEgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gQSgpIHsNCiAgICB9DQogICAgQS5wcm90b3R5cGUuQiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgcmV0dXJuIDQyOw0KICAgIH07DQogICAgcmV0dXJuIEE7DQp9KCkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXM1LXNvdXJlbWFwLWFtZC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXM1LXNvdXJlbWFwLWFtZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVzNS1zb3VyZW1hcC1hbWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFFSTtJQUdBLENBQUM7SUFFTSxhQUFDLEdBQVI7UUFFSSxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDTCxRQUFDO0FBQUQsQ0FBQyxBQVhELElBV0MifQ==,Y2xhc3MgQQp7CiAgICBjb25zdHJ1Y3RvciAoKQogICAgewoKICAgIH0KCiAgICBwdWJsaWMgQigpCiAgICB7CiAgICAgICAgcmV0dXJuIDQyOwogICAgfQp9
+-{"version":3,"file":"es5-souremap-amd.js","sourceRoot":"","sources":["es5-souremap-amd.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC;IAEH;IAGA,CAAC;IAEM,CAAC;QAEJ,OAAO,EAAE,CAAC;IACd,CAAC;CACJ"}
+-//// https://sokra.github.io/source-map-visualization#base64,Y2xhc3MgQSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgfQ0KICAgIEIoKSB7DQogICAgICAgIHJldHVybiA0MjsNCiAgICB9DQp9DQovLyMgc291cmNlTWFwcGluZ1VSTD1lczUtc291cmVtYXAtYW1kLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXM1LXNvdXJlbWFwLWFtZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVzNS1zb3VyZW1hcC1hbWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDO0lBRUg7SUFHQSxDQUFDO0lBRU0sQ0FBQztRQUVKLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNKIn0=,Y2xhc3MgQQp7CiAgICBjb25zdHJ1Y3RvciAoKQogICAgewoKICAgIH0KCiAgICBwdWJsaWMgQigpCiAgICB7CiAgICAgICAgcmV0dXJuIDQyOwogICAgfQp9
 +{"version":3,"file":"es5-souremap-amd.js","sourceRoot":"","sources":["es5-souremap-amd.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC;IAEH,cACA;IAAC,CAEA;IAEM,CAAC,GACR;QACI,OAAO,EAAE,CAAC;IAAA,CACb;CACJ"}
 +//// https://sokra.github.io/source-map-visualization#base64,Y2xhc3MgQSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgfQ0KICAgIEIoKSB7DQogICAgICAgIHJldHVybiA0MjsNCiAgICB9DQp9DQovLyMgc291cmNlTWFwcGluZ1VSTD1lczUtc291cmVtYXAtYW1kLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXM1LXNvdXJlbWFwLWFtZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVzNS1zb3VyZW1hcC1hbWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDO0lBRUgsY0FDQTtJQUFDLENBRUE7SUFFTSxDQUFDLEdBQ1I7UUFDSSxPQUFPLEVBQUUsQ0FBQztJQUFBLENBQ2I7Q0FDSiJ9,Y2xhc3MgQQp7CiAgICBjb25zdHJ1Y3RvciAoKQogICAgewoKICAgIH0KCiAgICBwdWJsaWMgQigpCiAgICB7CiAgICAgICAgcmV0dXJuIDQyOwogICAgfQp9
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.sourcemap.txt.diff
index 26451a2456..bb33701c3e 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-souremap-amd.sourcemap.txt.diff
@@ -1,32 +1,12 @@
 --- old.es5-souremap-amd.sourcemap.txt
 +++ new.es5-souremap-amd.sourcemap.txt
-@@= skipped -7, +7 lines =@@
- emittedFile:es5-souremap-amd.js
- sourceFile:es5-souremap-amd.ts
- -------------------------------------------------------------------
-->>>var A = /** @class */ (function () {
--1 >
--2 >^^^^^^^^^^^^^^^^^^^->
--1 >
-+>>>class A {
-+1 >
-+2 >^^^^^^
-+3 >      ^
-+4 >       ^^^^^^^^^^^^^->
-+1 >
-+2 >class 
-+3 >      A
- 1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
-+2 >Emitted(1, 7) Source(1, 7) + SourceIndex(0)
-+3 >Emitted(1, 8) Source(1, 8) + SourceIndex(0)
+@@= skipped -21, +21 lines =@@
  ---
-->>>    function A() {
-+>>>    constructor() {
+ >>>    constructor() {
  1->^^^^
 -2 >    ^^->
--1->class A
 +2 >    ^^^^^^^^^^^^^^
-+1->
+ 1->
    >{
    >    
 +2 >    constructor ()
@@ -38,11 +18,10 @@
 -1->^^^^
 +1 >^^^^
  2 >    ^
--3 >     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
+ 3 >     ^^^^^->
 -1->constructor ()
 -  >    {
 -  >
-+3 >     ^^^^^->
 +1 >{
 +2 >    
    >    
@@ -52,51 +31,36 @@
 +1 >Emitted(3, 5) Source(4, 6) + SourceIndex(0)
  2 >Emitted(3, 6) Source(6, 6) + SourceIndex(0)
  ---
-->>>    A.prototype.B = function () {
-+>>>    B() {
+ >>>    B() {
  1->^^^^
--2 >    ^^^^^^^^^^^^^
--3 >                 ^^^
-+2 >    ^
+ 2 >    ^
+-3 >     ^^^^^^^^^^^^^^->
 +3 >     ^^^
 +4 >        ^^^^^^^^^^^->
  1->
    >
    >    public 
  2 >    B
--3 >                 
 +3 >     ()
 +  >         
  1->Emitted(4, 5) Source(8, 12) + SourceIndex(0)
--2 >Emitted(4, 18) Source(8, 13) + SourceIndex(0)
--3 >Emitted(4, 21) Source(8, 5) + SourceIndex(0)
-+2 >Emitted(4, 6) Source(8, 13) + SourceIndex(0)
+ 2 >Emitted(4, 6) Source(8, 13) + SourceIndex(0)
 +3 >Emitted(4, 9) Source(9, 5) + SourceIndex(0)
  ---
  >>>        return 42;
--1 >^^^^^^^^
-+1->^^^^^^^^
+ 1->^^^^^^^^
  2 >        ^^^^^^^
  3 >               ^^
  4 >                 ^
--1 >public B()
+-1->()
 -  >    {
 +1->{
    >        
  2 >        return 
  3 >               42
- 4 >                 ;
--1 >Emitted(5, 9) Source(10, 9) + SourceIndex(0)
-+1->Emitted(5, 9) Source(10, 9) + SourceIndex(0)
- 2 >Emitted(5, 16) Source(10, 16) + SourceIndex(0)
- 3 >Emitted(5, 18) Source(10, 18) + SourceIndex(0)
- 4 >Emitted(5, 19) Source(10, 19) + SourceIndex(0)
- ---
-->>>    };
-+>>>    }
+@@= skipped -49, +54 lines =@@
  1 >^^^^
  2 >    ^
--3 >     ^^^^^^^^^->
  1 >
 -  >    
 -2 >    }
@@ -106,45 +70,4 @@
 +1 >Emitted(6, 5) Source(10, 19) + SourceIndex(0)
  2 >Emitted(6, 6) Source(11, 6) + SourceIndex(0)
  ---
-->>>    return A;
--1->^^^^
--2 >    ^^^^^^^^
--1->
--  >
--2 >    }
--1->Emitted(7, 5) Source(12, 1) + SourceIndex(0)
--2 >Emitted(7, 13) Source(12, 2) + SourceIndex(0)
-----
-->>>}());
--1 >
--2 >^
--3 > 
--4 > ^^^^
--5 >     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
--1 >
--2 >}
--3 > 
--4 > class A
--  > {
--  >     constructor ()
--  >     {
--  > 
--  >     }
--  > 
--  >     public B()
--  >     {
--  >         return 42;
--  >     }
--  > }
--1 >Emitted(8, 1) Source(12, 1) + SourceIndex(0)
--2 >Emitted(8, 2) Source(12, 2) + SourceIndex(0)
--3 >Emitted(8, 2) Source(1, 1) + SourceIndex(0)
--4 >Emitted(8, 6) Source(12, 2) + SourceIndex(0)
-+>>>}
-+1 >^
-+2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
-+1 >
-+  >}
-+1 >Emitted(7, 2) Source(12, 2) + SourceIndex(0)
- ---
- >>>//# sourceMappingURL=es5-souremap-amd.js.map
\ No newline at end of file
+ >>>}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-system.js.diff b/testdata/baselines/reference/submodule/compiler/es5-system.js.diff
index a3eeb2fe06..ddcbf4190f 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-system.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-system.js.diff
@@ -11,14 +11,13 @@
 -    return {
 -        setters: [],
 -        execute: function () {
--            A = /** @class */ (function () {
--                function A() {
+-            A = class A {
+-                constructor() {
 -                }
--                A.prototype.B = function () {
+-                B() {
 -                    return 42;
--                };
--                return A;
--            }());
+-                }
+-            };
 -            exports_1("default", A);
 -        }
 -    };
diff --git a/testdata/baselines/reference/submodule/compiler/es5-umd.js.diff b/testdata/baselines/reference/submodule/compiler/es5-umd.js.diff
deleted file mode 100644
index 1acffe2171..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5-umd.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.es5-umd.js
-+++ new.es5-umd.js
-@@= skipped -15, +15 lines =@@
-
-
- //// [es5-umd.js]
--var A = /** @class */ (function () {
--    function A() {
-+class A {
-+    constructor() {
-     }
--    A.prototype.B = function () {
-+    B() {
-         return 42;
--    };
--    return A;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5-umd2.js.diff b/testdata/baselines/reference/submodule/compiler/es5-umd2.js.diff
index e159277b1b..d80aad27db 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-umd2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-umd2.js.diff
@@ -16,14 +16,13 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.A = void 0;
--    var A = /** @class */ (function () {
--        function A() {
+-    class A {
+-        constructor() {
 -        }
--        A.prototype.B = function () {
+-        B() {
 -            return 42;
--        };
--        return A;
--    }());
+-        }
+-    }
 -    exports.A = A;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/es5-umd3.js.diff b/testdata/baselines/reference/submodule/compiler/es5-umd3.js.diff
index 57798c42e0..53cdc9af91 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-umd3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-umd3.js.diff
@@ -15,14 +15,13 @@
 -})(function (require, exports) {
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
--    var A = /** @class */ (function () {
--        function A() {
+-    class A {
+-        constructor() {
 -        }
--        A.prototype.B = function () {
+-        B() {
 -            return 42;
--        };
--        return A;
--    }());
+-        }
+-    }
 -    exports.default = A;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/es5-umd4.js.diff b/testdata/baselines/reference/submodule/compiler/es5-umd4.js.diff
index 80d374d9bd..d8b6f0d52f 100644
--- a/testdata/baselines/reference/submodule/compiler/es5-umd4.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5-umd4.js.diff
@@ -14,14 +14,13 @@
 -    }
 -})(function (require, exports) {
 -    "use strict";
--    var A = /** @class */ (function () {
--        function A() {
+-    class A {
+-        constructor() {
 -        }
--        A.prototype.B = function () {
+-        B() {
 -            return 42;
--        };
--        return A;
--    }());
+-        }
+-    }
 -    return A;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/es5-yieldFunctionObjectLiterals.js.diff b/testdata/baselines/reference/submodule/compiler/es5-yieldFunctionObjectLiterals.js.diff
deleted file mode 100644
index 3849276a03..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5-yieldFunctionObjectLiterals.js.diff
+++ /dev/null
@@ -1,189 +0,0 @@
---- old.es5-yieldFunctionObjectLiterals.js
-+++ new.es5-yieldFunctionObjectLiterals.js
-@@= skipped -66, +66 lines =@@
- //// [es5-yieldFunctionObjectLiterals.js]
- // mainly to verify indentation of emitted code
- function g() { return "g"; }
--function objectLiteral1() {
--    var x, _a;
--    return __generator(this, function (_b) {
--        switch (_b.label) {
--            case 0:
--                _a = {
--                    a: 1
--                };
--                return [4 /*yield*/, 2];
--            case 1:
--                x = (_a.b = _b.sent(),
--                    _a.c = 3,
--                    _a);
--                return [2 /*return*/];
--        }
--    });
--}
--function objectLiteral2() {
--    var x, _a;
--    var _b;
--    return __generator(this, function (_c) {
--        switch (_c.label) {
--            case 0:
--                _b = {
--                        a: 1
--                    };
--                _a = g();
--                return [4 /*yield*/, 2];
--            case 1:
--                x = (_b[_a] = _c.sent(),
--                    _b.c = 3,
--                    _b);
--                return [2 /*return*/];
--        }
--    });
--}
--function objectLiteral3() {
--    var x, _a;
--    var _b;
--    return __generator(this, function (_c) {
--        switch (_c.label) {
--            case 0:
--                _a = {
--                    a: 1
--                };
--                return [4 /*yield*/, 2];
--            case 1:
--                x = (_b = (_a.b = _c.sent(),
--                    _a),
--                    _b[g()] = 3,
--                    _b.c = 4,
--                    _b);
--                return [2 /*return*/];
--        }
--    });
--}
--function objectLiteral4() {
--    var x;
--    var _a;
--    return __generator(this, function (_b) {
--        switch (_b.label) {
--            case 0:
--                _a = {
--                        a: 1
--                    },
--                    _a[g()] = 2;
--                return [4 /*yield*/, 3];
--            case 1:
--                x = (_a.b = _b.sent(),
--                    _a.c = 4,
--                    _a);
--                return [2 /*return*/];
--        }
--    });
--}
--function objectLiteral5() {
--    var x, _a;
--    var _b;
--    return __generator(this, function (_c) {
--        switch (_c.label) {
--            case 0:
--                _b = {
--                        a: 1
--                    };
--                _a = g();
--                return [4 /*yield*/, 2];
--            case 1:
--                x = (_b[_a] = _c.sent(),
--                    _b.c = 4,
--                    _b);
--                return [2 /*return*/];
--        }
--    });
--}
--function objectLiteral6() {
--    var x;
--    var _a;
--    return __generator(this, function (_b) {
--        switch (_b.label) {
--            case 0:
--                _a = {
--                        a: 1
--                    };
--                return [4 /*yield*/];
--            case 1:
--                x = (_a[_b.sent()] = 2,
--                    _a.c = 4,
--                    _a);
--                return [2 /*return*/];
--        }
--    });
--}
--function objectLiteral7() {
--    var x, _a;
--    var _b;
--    return __generator(this, function (_c) {
--        switch (_c.label) {
--            case 0:
--                _b = {
--                        a: 1
--                    };
--                return [4 /*yield*/];
--            case 1:
--                _a = _c.sent();
--                return [4 /*yield*/, 2];
--            case 2:
--                x = (_b[_a] = _c.sent(),
--                    _b.c = 4,
--                    _b);
--                return [2 /*return*/];
--        }
--    });
-+function* objectLiteral1() {
-+    const x = {
-+        a: 1,
-+        b: yield 2,
-+        c: 3,
-+    };
-+}
-+function* objectLiteral2() {
-+    const x = {
-+        a: 1,
-+        [g()]: yield 2,
-+        c: 3,
-+    };
-+}
-+function* objectLiteral3() {
-+    const x = {
-+        a: 1,
-+        b: yield 2,
-+        [g()]: 3,
-+        c: 4,
-+    };
-+}
-+function* objectLiteral4() {
-+    const x = {
-+        a: 1,
-+        [g()]: 2,
-+        b: yield 3,
-+        c: 4,
-+    };
-+}
-+function* objectLiteral5() {
-+    const x = {
-+        a: 1,
-+        [g()]: yield 2,
-+        c: 4,
-+    };
-+}
-+function* objectLiteral6() {
-+    const x = {
-+        a: 1,
-+        [yield]: 2,
-+        c: 4,
-+    };
-+}
-+function* objectLiteral7() {
-+    const x = {
-+        a: 1,
-+        [yield]: yield 2,
-+        c: 4,
-+    };
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5ExportDefaultClassDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/es5ExportDefaultClassDeclaration.js.diff
deleted file mode 100644
index e80c68a62b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5ExportDefaultClassDeclaration.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.es5ExportDefaultClassDeclaration.js
-+++ new.es5ExportDefaultClassDeclaration.js
-@@= skipped -8, +8 lines =@@
- //// [es5ExportDefaultClassDeclaration.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.method = function () { };
--    return C;
--}());
-+class C {
-+    method() { }
-+}
- exports.default = C;
-
diff --git a/testdata/baselines/reference/submodule/compiler/es5ExportDefaultClassDeclaration2.js.diff b/testdata/baselines/reference/submodule/compiler/es5ExportDefaultClassDeclaration2.js.diff
deleted file mode 100644
index 2ea91998a1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5ExportDefaultClassDeclaration2.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.es5ExportDefaultClassDeclaration2.js
-+++ new.es5ExportDefaultClassDeclaration2.js
-@@= skipped -8, +8 lines =@@
- //// [es5ExportDefaultClassDeclaration2.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var default_1 = /** @class */ (function () {
--    function default_1() {
--    }
--    default_1.prototype.method = function () { };
--    return default_1;
--}());
-+class default_1 {
-+    method() { }
-+}
- exports.default = default_1;
-
diff --git a/testdata/baselines/reference/submodule/compiler/es5ExportDefaultClassDeclaration3.js.diff b/testdata/baselines/reference/submodule/compiler/es5ExportDefaultClassDeclaration3.js.diff
deleted file mode 100644
index ac2d84d00a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5ExportDefaultClassDeclaration3.js.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- old.es5ExportDefaultClassDeclaration3.js
-+++ new.es5ExportDefaultClassDeclaration3.js
-@@= skipped -18, +18 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var before = new C();
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.method = function () {
-+class C {
-+    method() {
-         return new C();
--    };
--    return C;
--}());
-+    }
-+}
- exports.default = C;
- var after = new C();
- var t = C;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5ExportEqualsDts.js.diff b/testdata/baselines/reference/submodule/compiler/es5ExportEqualsDts.js.diff
index 49a3b67713..9b20b16a39 100644
--- a/testdata/baselines/reference/submodule/compiler/es5ExportEqualsDts.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5ExportEqualsDts.js.diff
@@ -1,24 +1,6 @@
 --- old.es5ExportEqualsDts.js
 +++ new.es5ExportEqualsDts.js
-@@= skipped -15, +15 lines =@@
-
- //// [es5ExportEqualsDts.js]
- "use strict";
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.foo = function () {
-+class A {
-+    foo() {
-         var aVal;
-         return aVal;
--    };
--    return A;
--}());
-+    }
-+}
- module.exports = A;
-
+@@= skipped -26, +26 lines =@@
 
  //// [es5ExportEqualsDts.d.ts]
  declare class A {
diff --git a/testdata/baselines/reference/submodule/compiler/es5ModuleInternalNamedImports.js.diff b/testdata/baselines/reference/submodule/compiler/es5ModuleInternalNamedImports.js.diff
index ae9127c1df..96b44c8dea 100644
--- a/testdata/baselines/reference/submodule/compiler/es5ModuleInternalNamedImports.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5ModuleInternalNamedImports.js.diff
@@ -13,14 +13,11 @@
 -        // variable
 -        M.M_V = 0;
 -        //calss
--        var M_C = /** @class */ (function () {
--            function M_C() {
--            }
--            return M_C;
--        }());
+-        class M_C {
+-        }
 -        M.M_C = M_C;
 -        // instantiated module
--        var M_M;
+-        let M_M;
 -        (function (M_M) {
 -            var x;
 -        })(M_M = M.M_M || (M.M_M = {}));
@@ -28,7 +25,7 @@
 -        function M_F() { }
 -        M.M_F = M_F;
 -        // enum
--        var M_E;
+-        let M_E;
 -        (function (M_E) {
 -        })(M_E = M.M_E || (M.M_E = {}));
 -        // alias
diff --git a/testdata/baselines/reference/submodule/compiler/es5ModuleWithModuleGenAmd.js.diff b/testdata/baselines/reference/submodule/compiler/es5ModuleWithModuleGenAmd.js.diff
index 4ae47ae1a7..5d1cfa581f 100644
--- a/testdata/baselines/reference/submodule/compiler/es5ModuleWithModuleGenAmd.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es5ModuleWithModuleGenAmd.js.diff
@@ -8,14 +8,13 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.A = void 0;
--    var A = /** @class */ (function () {
--        function A() {
+-    class A {
+-        constructor() {
 -        }
--        A.prototype.B = function () {
+-        B() {
 -            return 42;
--        };
--        return A;
--    }());
+-        }
+-    }
 -    exports.A = A;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/es5ModuleWithModuleGenCommonjs.js.diff b/testdata/baselines/reference/submodule/compiler/es5ModuleWithModuleGenCommonjs.js.diff
deleted file mode 100644
index 51caec2ee0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5ModuleWithModuleGenCommonjs.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.es5ModuleWithModuleGenCommonjs.js
-+++ new.es5ModuleWithModuleGenCommonjs.js
-@@= skipped -16, +16 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.A = void 0;
--var A = /** @class */ (function () {
--    function A() {
-+class A {
-+    constructor() {
-     }
--    A.prototype.B = function () {
-+    B() {
-         return 42;
--    };
--    return A;
--}());
-+    }
-+}
- exports.A = A;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5ModuleWithoutModuleGenTarget.js.diff b/testdata/baselines/reference/submodule/compiler/es5ModuleWithoutModuleGenTarget.js.diff
deleted file mode 100644
index 8a8c694615..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5ModuleWithoutModuleGenTarget.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.es5ModuleWithoutModuleGenTarget.js
-+++ new.es5ModuleWithoutModuleGenTarget.js
-@@= skipped -16, +16 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.A = void 0;
--var A = /** @class */ (function () {
--    function A() {
-+class A {
-+    constructor() {
-     }
--    A.prototype.B = function () {
-+    B() {
-         return 42;
--    };
--    return A;
--}());
-+    }
-+}
- exports.A = A;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5SetterparameterDestructuringNotElided.js.diff b/testdata/baselines/reference/submodule/compiler/es5SetterparameterDestructuringNotElided.js.diff
deleted file mode 100644
index 3cfe422854..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5SetterparameterDestructuringNotElided.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.es5SetterparameterDestructuringNotElided.js
-+++ new.es5SetterparameterDestructuringNotElided.js
-@@= skipped -8, +8 lines =@@
- };
-
- //// [es5SetterparameterDestructuringNotElided.js]
--var foo = {
--    set foo(_a) {
--        var start = _a[0], end = _a[1];
-+const foo = {
-+    set foo([start, end]) {
-         void start;
-         void end;
-     },
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es5andes6module.js.diff b/testdata/baselines/reference/submodule/compiler/es5andes6module.js.diff
deleted file mode 100644
index 6d9ed36c6a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es5andes6module.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.es5andes6module.js
-+++ new.es5andes6module.js
-@@= skipped -15, +15 lines =@@
-
-
- //// [es5andes6module.js]
--var A = /** @class */ (function () {
--    function A() {
-+export default class A {
-+    constructor() {
-     }
--    A.prototype.B = function () {
-+    B() {
-         return 42;
--    };
--    return A;
--}());
--export default A;
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6ClassSuperCodegenBug.js.diff b/testdata/baselines/reference/submodule/compiler/es6ClassSuperCodegenBug.js.diff
deleted file mode 100644
index 07e32be2e4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es6ClassSuperCodegenBug.js.diff
+++ /dev/null
@@ -1,48 +0,0 @@
---- old.es6ClassSuperCodegenBug.js
-+++ new.es6ClassSuperCodegenBug.js
-@@= skipped -15, +15 lines =@@
-
-
- //// [es6ClassSuperCodegenBug.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A(str1, str2) {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        var _this = this;
-+class A {
-+    constructor(str1, str2) { }
-+}
-+class B extends A {
-+    constructor() {
-         if (true) {
--            _this = _super.call(this, 'a1', 'b1') || this;
-+            super('a1', 'b1');
-         }
-         else {
--            _this = _super.call(this, 'a2', 'b2') || this;
-+            super('a2', 'b2');
-         }
--        return _this;
-     }
--    return B;
--}(A));
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6ClassTest.js.diff b/testdata/baselines/reference/submodule/compiler/es6ClassTest.js.diff
index bd1548f017..ed56937c71 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ClassTest.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ClassTest.js.diff
@@ -1,51 +1,29 @@
 --- old.es6ClassTest.js
 +++ new.es6ClassTest.js
-@@= skipped -86, +86 lines =@@
-
+@@= skipped -87, +87 lines =@@
 
  //// [es6ClassTest.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Bar = /** @class */ (function () {
--    function Bar(n) {
--    }
--    Bar.prototype.prop1 = function (x) {
-+class Bar {
+ class Bar {
 +    goo;
-+    prop1(x) {
+     prop1(x) {
          return x;
--    };
--    return Bar;
--}());
-+    }
-+    constructor(n) { }
-+}
+     }
+     constructor(n) { }
+ }
  // new-style class
--var Foo = /** @class */ (function (_super) {
--    __extends(Foo, _super);
--    function Foo(x, y, z) {
--        if (z === void 0) { z = 0; }
--        var _this = _super.call(this, x) || this;
--        _this.y = y;
--        _this.z = z;
--        _this.gar = 0;
--        _this.zoo = "zoo";
--        _this.x = x;
--        _this.gar = 5;
--        return _this;
+-let Foo = (() => {
+-    class Foo extends Bar {
+-        bar() { return 0; }
+-        boo(x) { return x; }
+-        constructor(x, y, z = 0) {
+-            super(x);
+-            this.y = y;
+-            this.z = z;
+-            this.gar = 0;
+-            this.zoo = "zoo";
+-            this.x = x;
+-            this.gar = 5;
+-        }
 +class Foo extends Bar {
 +    y;
 +    z;
@@ -63,11 +41,9 @@
 +        this.x = x;
 +        this.gar = 5;
      }
--    Foo.prototype.bar = function () { return 0; };
--    Foo.prototype.boo = function (x) { return x; };
 -    Foo.statVal = 0;
 -    return Foo;
--}(Bar));
+-})();
 +}
  var f = new Foo();
  //class GetSetMonster {
diff --git a/testdata/baselines/reference/submodule/compiler/es6ClassTest2.js.diff b/testdata/baselines/reference/submodule/compiler/es6ClassTest2.js.diff
index 735fceec54..0615839804 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ClassTest2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ClassTest2.js.diff
@@ -1,266 +1,105 @@
 --- old.es6ClassTest2.js
 +++ new.es6ClassTest2.js
-@@= skipped -160, +160 lines =@@
-
+@@= skipped -161, +161 lines =@@
 
  //// [es6ClassTest2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var BasicMonster = /** @class */ (function () {
--    function BasicMonster(name, health) {
-+class BasicMonster {
+ class BasicMonster {
 +    name;
 +    health;
-+    constructor(name, health) {
+     constructor(name, health) {
          this.name = name;
          this.health = health;
 -        this.isAlive = true;
      }
--    BasicMonster.prototype.attack = function (target) {
-+    attack(target) {
+     attack(target) {
          // WScript.Echo("Attacks " + target);
--    };
--    return BasicMonster;
--}());
-+    }
+     }
 +    isAlive = true;
-+}
+ }
  var m1 = new BasicMonster("1", 100);
  var m2 = new BasicMonster("2", 100);
- m1.attack(m2);
+@@= skipped -15, +17 lines =@@
  m1.health = 0;
  console.log(m5.isAlive.toString());
--var GetSetMonster = /** @class */ (function () {
--    function GetSetMonster(name, _health) {
-+class GetSetMonster {
+ class GetSetMonster {
 +    name;
 +    _health;
-+    constructor(name, _health) {
+     constructor(name, _health) {
          this.name = name;
          this._health = _health;
-     }
--    GetSetMonster.prototype.attack = function (target) {
-+    attack(target) {
-         // WScript.Echo("Attacks " + target);
--    };
--    Object.defineProperty(GetSetMonster.prototype, "isAlive", {
--        // The contextual keyword "get" followed by an identifier and
--        // a curly body defines a getter in the same way that "get"
--        // defines one in an object literal.
--        get: function () {
--            return this._health > 0;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(GetSetMonster.prototype, "health", {
--        // Likewise, "set" can be used to define setters.
--        set: function (value) {
--            if (value < 0) {
--                throw new Error('Health must be non-negative.');
--            }
--            this._health = value;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return GetSetMonster;
--}());
-+    }
-+    // The contextual keyword "get" followed by an identifier and
-+    // a curly body defines a getter in the same way that "get"
-+    // defines one in an object literal.
-+    get isAlive() {
-+        return this._health > 0;
-+    }
-+    // Likewise, "set" can be used to define setters.
-+    set health(value) {
-+        if (value < 0) {
-+            throw new Error('Health must be non-negative.');
-+        }
-+        this._health = value;
-+    }
-+}
- var m3 = new BasicMonster("1", 100);
- var m4 = new BasicMonster("2", 100);
- m3.attack(m4);
+@@= skipped -27, +29 lines =@@
  m3.health = 0;
  var x = m5.isAlive.toString();
--var OverloadedMonster = /** @class */ (function () {
--    function OverloadedMonster(name, health) {
-+class OverloadedMonster {
+ class OverloadedMonster {
 +    name;
 +    health;
-+    constructor(name, health) {
+     constructor(name, health) {
          this.name = name;
          this.health = health;
 -        this.isAlive = true;
      }
--    OverloadedMonster.prototype.attack = function (target) {
-+    attack(target) {
+     attack(target) {
          //WScript.Echo("Attacks " + target);
--    };
--    return OverloadedMonster;
--}());
-+    }
+     }
 +    isAlive = true;
-+}
+ }
  var m5 = new OverloadedMonster("1");
  var m6 = new OverloadedMonster("2");
- m5.attack(m6);
- m5.health = 0;
- var y = m5.isAlive.toString();
--var SplatMonster = /** @class */ (function () {
--    function SplatMonster() {
--        var args = [];
--        for (var _i = 0; _i < arguments.length; _i++) {
--            args[_i] = arguments[_i];
--        }
--    }
--    SplatMonster.prototype.roar = function (name) {
--        var args = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            args[_i - 1] = arguments[_i];
--        }
--    };
--    return SplatMonster;
--}());
-+class SplatMonster {
-+    constructor(...args) { }
-+    roar(name, ...args) { }
-+}
+@@= skipped -20, +22 lines =@@
+ }
  function foo() { return true; }
--var PrototypeMonster = /** @class */ (function () {
--    function PrototypeMonster() {
+ class PrototypeMonster {
+-    constructor() {
 -        this.age = 1;
 -        this.b = foo();
 -    }
--    return PrototypeMonster;
--}());
--var SuperParent = /** @class */ (function () {
--    function SuperParent(a) {
--    }
--    SuperParent.prototype.b = function (b) {
--    };
--    SuperParent.prototype.c = function () {
--    };
--    return SuperParent;
--}());
--var SuperChild = /** @class */ (function (_super) {
--    __extends(SuperChild, _super);
--    function SuperChild() {
--        return _super.call(this, 1) || this;
--    }
--    SuperChild.prototype.b = function () {
--        _super.prototype.b.call(this, 'str');
--    };
--    SuperChild.prototype.c = function () {
--        _super.prototype.c.call(this);
--    };
--    return SuperChild;
--}(SuperParent));
--var Statics = /** @class */ (function () {
--    function Statics() {
--    }
--    Statics.baz = function () {
-+class PrototypeMonster {
 +    age = 1;
 +    name;
 +    b = foo();
-+}
-+class SuperParent {
-+    constructor(a) {
-+    }
-+    b(b) {
-+    }
-+    c() {
-+    }
-+}
-+class SuperChild extends SuperParent {
-+    constructor() {
-+        super(1);
-+    }
-+    b() {
-+        super.b('str');
-+    }
-+    c() {
-+        super.c();
-+    }
-+}
+ }
+ class SuperParent {
+     constructor(a) {
+@@= skipped -24, +23 lines =@@
+         super.c();
+     }
+ }
+-let Statics = (() => {
+-    class Statics {
+-        static baz() {
+-            return "";
+-        }
 +class Statics {
 +    static foo = 1;
 +    static bar;
 +    static baz() {
-         return "";
--    };
++        return "";
+     }
 -    Statics.foo = 1;
 -    return Statics;
--}());
-+    }
+-})();
 +}
  var stat = new Statics();
--var ImplementsInterface = /** @class */ (function () {
--    function ImplementsInterface() {
-+class ImplementsInterface {
+ class ImplementsInterface {
 +    x;
 +    z;
-+    constructor() {
+     constructor() {
          this.x = 1;
          this.z = "foo";
-     }
--    return ImplementsInterface;
--}());
--var Visibility = /** @class */ (function () {
--    function Visibility() {
-+}
-+class Visibility {
-+    foo() { }
-+    bar() { }
+@@= skipped -19, +19 lines =@@
+ class Visibility {
+     foo() { }
+     bar() { }
 +    x;
 +    y;
 +    z;
-+    constructor() {
+     constructor() {
          this.x = 1;
          this.y = 2;
      }
--    Visibility.prototype.foo = function () { };
--    Visibility.prototype.bar = function () { };
--    return Visibility;
--}());
--var BaseClassWithConstructor = /** @class */ (function () {
--    function BaseClassWithConstructor(x, s) {
-+}
-+class BaseClassWithConstructor {
+ }
+ class BaseClassWithConstructor {
 +    x;
 +    s;
-+    constructor(x, s) {
+     constructor(x, s) {
          this.x = x;
-         this.s = s;
-     }
--    return BaseClassWithConstructor;
--}());
-+}
- // used to test codegen
--var ChildClassWithoutConstructor = /** @class */ (function (_super) {
--    __extends(ChildClassWithoutConstructor, _super);
--    function ChildClassWithoutConstructor() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return ChildClassWithoutConstructor;
--}(BaseClassWithConstructor));
-+class ChildClassWithoutConstructor extends BaseClassWithConstructor {
-+}
- var ccwc = new ChildClassWithoutConstructor(1, "s");
\ No newline at end of file
+         this.s = s;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6ClassTest3.js.diff b/testdata/baselines/reference/submodule/compiler/es6ClassTest3.js.diff
index fc12acdaf5..0fc3bdeb3a 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ClassTest3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ClassTest3.js.diff
@@ -1,28 +1,12 @@
 --- old.es6ClassTest3.js
 +++ new.es6ClassTest3.js
-@@= skipped -18, +18 lines =@@
- //// [es6ClassTest3.js]
- var M;
- (function (M) {
--    var Visibility = /** @class */ (function () {
--        function Visibility() {
-+    class Visibility {
-+        foo() { }
-+        ;
-+        bar() { }
-+        ;
+@@= skipped -23, +23 lines =@@
+         ;
+         bar() { }
+         ;
 +        x;
 +        y;
 +        z;
-+        constructor() {
+         constructor() {
              this.x = 1;
-             this.y = 2;
-         }
--        Visibility.prototype.foo = function () { };
--        ;
--        Visibility.prototype.bar = function () { };
--        ;
--        return Visibility;
--    }());
-+    }
- })(M || (M = {}));
\ No newline at end of file
+             this.y = 2;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6ClassTest5.js.diff b/testdata/baselines/reference/submodule/compiler/es6ClassTest5.js.diff
index c319f57292..2170e4d0f4 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ClassTest5.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ClassTest5.js.diff
@@ -1,28 +1,21 @@
 --- old.es6ClassTest5.js
 +++ new.es6ClassTest5.js
-@@= skipped -14, +14 lines =@@
-
+@@= skipped -15, +15 lines =@@
 
  //// [es6ClassTest5.js]
--var C1T5 = /** @class */ (function () {
--    function C1T5() {
--        this.foo = function (i) {
+ class C1T5 {
+-    constructor() {
+-        this.foo = (i) => {
 -            return i;
 -        };
 -    }
--    return C1T5;
--}());
--var bigClass = /** @class */ (function () {
--    function bigClass() {
--        this.break = 1;
--    }
--    return bigClass;
--}());
-+class C1T5 {
 +    foo = (i) => {
 +        return i;
 +    };
-+}
-+class bigClass {
+ }
+ class bigClass {
+-    constructor() {
+-        this.break = 1;
+-    }
 +    break = 1;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6ClassTest7.js.diff b/testdata/baselines/reference/submodule/compiler/es6ClassTest7.js.diff
deleted file mode 100644
index 392a289446..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es6ClassTest7.js.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- old.es6ClassTest7.js
-+++ new.es6ClassTest7.js
-@@= skipped -10, +10 lines =@@
-
-
- //// [es6ClassTest7.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Bar = /** @class */ (function (_super) {
--    __extends(Bar, _super);
--    function Bar() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Bar;
--}(M.Foo));
-+class Bar extends M.Foo {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6ClassTest8.js.diff b/testdata/baselines/reference/submodule/compiler/es6ClassTest8.js.diff
index 36429f1f47..908c4a020a 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ClassTest8.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ClassTest8.js.diff
@@ -1,59 +1,23 @@
 --- old.es6ClassTest8.js
 +++ new.es6ClassTest8.js
-@@= skipped -43, +43 lines =@@
-
- //// [es6ClassTest8.js]
- function f1(x) { return x; }
--var C = /** @class */ (function () {
--    function C() {
-+class C {
-+    constructor() {
-         var bar = (function () {
-             return bar; // 'bar' should be resolvable
-         });
-         var b = f1(f1(bar));
+@@= skipped -52, +52 lines =@@
      }
--    return C;
--}());
--var Vector = /** @class */ (function () {
--    function Vector(x, y, z) {
-+}
-+class Vector {
+ }
+ class Vector {
 +    x;
 +    y;
 +    z;
-+    static norm(v) { return null; }
-+    static minus(v1, v2) { return null; }
-+    static times(v1, v2) { return null; }
-+    static cross(v1, v2) { return null; }
-+    constructor(x, y, z) {
-         this.x = x;
-         this.y = y;
-         this.z = z;
-     }
--    Vector.norm = function (v) { return null; };
--    Vector.minus = function (v1, v2) { return null; };
--    Vector.times = function (v1, v2) { return null; };
--    Vector.cross = function (v1, v2) { return null; };
--    Vector.dot = function (v1, v2) { return null; };
--    return Vector;
--}());
--var Camera = /** @class */ (function () {
--    function Camera(pos, lookAt) {
-+    static dot(v1, v2) { return null; }
-+}
-+class Camera {
+     static norm(v) { return null; }
+     static minus(v1, v2) { return null; }
+     static times(v1, v2) { return null; }
+@@= skipped -12, +15 lines =@@
+     static dot(v1, v2) { return null; }
+ }
+ class Camera {
 +    pos;
 +    forward;
 +    right;
 +    up;
-+    constructor(pos, lookAt) {
+     constructor(pos, lookAt) {
          this.pos = pos;
-         var down = new Vector(0.0, -1.0, 0.0);
-         this.forward = Vector.norm(Vector.minus(lookAt, this.pos));
-         this.right = Vector.times(down, Vector.norm(Vector.cross(this.forward, down)));
-         this.up = Vector.times(down, Vector.norm(Vector.cross(this.forward, this.right)));
-     }
--    return Camera;
--}());
-+}
\ No newline at end of file
+         var down = new Vector(0.0, -1.0, 0.0);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6DeclOrdering.js.diff b/testdata/baselines/reference/submodule/compiler/es6DeclOrdering.js.diff
deleted file mode 100644
index f5c88e3ad2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es6DeclOrdering.js.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- old.es6DeclOrdering.js
-+++ new.es6DeclOrdering.js
-@@= skipped -18, +18 lines =@@
-
-
- //// [es6DeclOrdering.js]
--var Bar = /** @class */ (function () {
--    function Bar(store) {
--        this._store = store; // this is an error for some reason? Unresolved symbol store
--    }
-+class Bar {
-     //public bar() { }
--    Bar.prototype.foo = function () {
-+    foo() {
-         return this._store.length;
--    };
--    return Bar;
--}());
-+    }
-+    constructor(store) {
-+        this._store = store; // this is an error for some reason? Unresolved symbol store
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6ExportAllInEs5.js.diff b/testdata/baselines/reference/submodule/compiler/es6ExportAllInEs5.js.diff
deleted file mode 100644
index 964b336dc7..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es6ExportAllInEs5.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.es6ExportAllInEs5.js
-+++ new.es6ExportAllInEs5.js
-@@= skipped -18, +18 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.x = exports.m = exports.c = void 0;
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
-+}
- exports.c = c;
- var m;
- (function (m) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6ExportClauseInEs5.js.diff b/testdata/baselines/reference/submodule/compiler/es6ExportClauseInEs5.js.diff
deleted file mode 100644
index 7b9c098db9..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es6ExportClauseInEs5.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.es6ExportClauseInEs5.js
-+++ new.es6ExportClauseInEs5.js
-@@= skipped -20, +20 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.x = exports.instantiatedModule = exports.c2 = exports.c = void 0;
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
-+}
- exports.c = c;
- exports.c2 = c;
- var m;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6ExportClauseWithoutModuleSpecifierInEs5.js.diff b/testdata/baselines/reference/submodule/compiler/es6ExportClauseWithoutModuleSpecifierInEs5.js.diff
index fbde80fa62..aef2c82334 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ExportClauseWithoutModuleSpecifierInEs5.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ExportClauseWithoutModuleSpecifierInEs5.js.diff
@@ -1,20 +1,6 @@
 --- old.es6ExportClauseWithoutModuleSpecifierInEs5.js
 +++ new.es6ExportClauseWithoutModuleSpecifierInEs5.js
-@@= skipped -22, +22 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.x = exports.m = exports.c = void 0;
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
-+}
- exports.c = c;
- var m;
- (function (m) {
-@@= skipped -15, +12 lines =@@
+@@= skipped -34, +34 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.x = exports.instantiatedModule = exports.c2 = exports.c = void 0;
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingDts.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingDts.js.diff
index 9e060fc53c..e0d627696b 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingDts.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingDts.js.diff
@@ -1,18 +1,6 @@
 --- old.es6ImportDefaultBindingDts.js
 +++ new.es6ImportDefaultBindingDts.js
-@@= skipped -12, +12 lines =@@
- //// [server.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
-+}
- exports.default = c;
- //// [client.js]
+@@= skipped -19, +19 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.x = void 0;
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamedImportDts.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamedImportDts.js.diff
index de7f22dc98..b5b4c6dc24 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamedImportDts.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamedImportDts.js.diff
@@ -1,58 +1,6 @@
 --- old.es6ImportDefaultBindingFollowedWithNamedImportDts.js
 +++ new.es6ImportDefaultBindingFollowedWithNamedImportDts.js
-@@= skipped -26, +26 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.x11 = exports.a12 = exports.a11 = exports.m = exports.x = exports.a = void 0;
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
-+class a {
-+}
- exports.a = a;
--var x = /** @class */ (function () {
--    function x() {
--    }
--    return x;
--}());
-+class x {
-+}
- exports.x = x;
--var m = /** @class */ (function () {
--    function m() {
--    }
--    return m;
--}());
-+class m {
-+}
- exports.m = m;
--var a11 = /** @class */ (function () {
--    function a11() {
--    }
--    return a11;
--}());
-+class a11 {
-+}
- exports.a11 = a11;
--var a12 = /** @class */ (function () {
--    function a12() {
--    }
--    return a12;
--}());
-+class a12 {
-+}
- exports.a12 = a12;
--var x11 = /** @class */ (function () {
--    function x11() {
--    }
--    return x11;
--}());
-+class x11 {
-+}
- exports.x11 = x11;
- //// [client.js]
+@@= skipped -48, +48 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.x6 = exports.x3 = exports.x5 = exports.x4 = exports.x2 = exports.x1 = void 0;
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamedImportDts1.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamedImportDts1.js.diff
index 061743b304..0b3d243a82 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamedImportDts1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamedImportDts1.js.diff
@@ -1,18 +1,6 @@
 --- old.es6ImportDefaultBindingFollowedWithNamedImportDts1.js
 +++ new.es6ImportDefaultBindingFollowedWithNamedImportDts1.js
-@@= skipped -20, +20 lines =@@
- //// [server.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
-+class a {
-+}
- exports.default = a;
- //// [client.js]
+@@= skipped -27, +27 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.x6 = exports.x5 = exports.x4 = exports.x3 = exports.x2 = exports.x1 = void 0;
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts.js.diff
index d578c9247c..879976f3f2 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts.js.diff
@@ -1,18 +1,6 @@
 --- old.es6ImportDefaultBindingFollowedWithNamespaceBindingDts.js
 +++ new.es6ImportDefaultBindingFollowedWithNamespaceBindingDts.js
-@@= skipped -10, +10 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.a = void 0;
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
-+class a {
-+}
- exports.a = a;
- //// [client.js]
+@@= skipped -17, +17 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.x = void 0;
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.js.diff
index 5869115aff..f96726c95f 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.js.diff
@@ -7,11 +7,8 @@
 -define(["require", "exports"], function (require, exports) {
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
--    var a = /** @class */ (function () {
--        function a() {
--        }
--        return a;
--    }());
+-    class a {
+-    }
 -    exports.default = a;
 -});
 +"use strict";
@@ -34,7 +31,7 @@
 
 
  //// [server.d.ts]
-@@= skipped -24, +18 lines =@@
+@@= skipped -21, +18 lines =@@
  }
  export default a;
  //// [client.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportEqualsExportModuleCommonJsError.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportEqualsExportModuleCommonJsError.js.diff
index 8c0bc5b8e8..7b1f4e4343 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ImportEqualsExportModuleCommonJsError.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ImportEqualsExportModuleCommonJsError.js.diff
@@ -1,17 +1,6 @@
 --- old.es6ImportEqualsExportModuleCommonJsError.js
 +++ new.es6ImportEqualsExportModuleCommonJsError.js
-@@= skipped -12, +12 lines =@@
-
- //// [a.js]
- "use strict";
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
-+class a {
-+}
- module.exports = a;
+@@= skipped -18, +18 lines =@@
  //// [main.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportEqualsExportModuleEs2015Error.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportEqualsExportModuleEs2015Error.js.diff
deleted file mode 100644
index a3af84610e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/es6ImportEqualsExportModuleEs2015Error.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.es6ImportEqualsExportModuleEs2015Error.js
-+++ new.es6ImportEqualsExportModuleEs2015Error.js
-@@= skipped -11, +11 lines =@@
-
-
- //// [a.js]
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
-+class a {
-+}
- export {};
- //// [main.js]
- import * as a from "./a";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportNameSpaceImportDts.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportNameSpaceImportDts.js.diff
index 1d198806e2..fcb53273d5 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ImportNameSpaceImportDts.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ImportNameSpaceImportDts.js.diff
@@ -1,19 +1,6 @@
 --- old.es6ImportNameSpaceImportDts.js
 +++ new.es6ImportNameSpaceImportDts.js
-@@= skipped -11, +11 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.c = void 0;
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
-+}
- exports.c = c;
- ;
- //// [client.js]
+@@= skipped -19, +19 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.x = void 0;
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js.diff
index f66dd27ff5..eb2109c006 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportDts.js.diff
@@ -1,122 +1,6 @@
 --- old.es6ImportNamedImportDts.js
 +++ new.es6ImportNamedImportDts.js
-@@= skipped -48, +48 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.aaaa1 = exports.aaaa = exports.z2 = exports.z1 = exports.x111 = exports.a111 = exports.x1 = exports.a1 = exports.m = exports.x11 = exports.x = exports.a12 = exports.a11 = exports.a = void 0;
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
-+class a {
-+}
- exports.a = a;
--var a11 = /** @class */ (function () {
--    function a11() {
--    }
--    return a11;
--}());
-+class a11 {
-+}
- exports.a11 = a11;
--var a12 = /** @class */ (function () {
--    function a12() {
--    }
--    return a12;
--}());
-+class a12 {
-+}
- exports.a12 = a12;
--var x = /** @class */ (function () {
--    function x() {
--    }
--    return x;
--}());
-+class x {
-+}
- exports.x = x;
--var x11 = /** @class */ (function () {
--    function x11() {
--    }
--    return x11;
--}());
-+class x11 {
-+}
- exports.x11 = x11;
--var m = /** @class */ (function () {
--    function m() {
--    }
--    return m;
--}());
-+class m {
-+}
- exports.m = m;
--var a1 = /** @class */ (function () {
--    function a1() {
--    }
--    return a1;
--}());
-+class a1 {
-+}
- exports.a1 = a1;
--var x1 = /** @class */ (function () {
--    function x1() {
--    }
--    return x1;
--}());
-+class x1 {
-+}
- exports.x1 = x1;
--var a111 = /** @class */ (function () {
--    function a111() {
--    }
--    return a111;
--}());
-+class a111 {
-+}
- exports.a111 = a111;
--var x111 = /** @class */ (function () {
--    function x111() {
--    }
--    return x111;
--}());
-+class x111 {
-+}
- exports.x111 = x111;
--var z1 = /** @class */ (function () {
--    function z1() {
--    }
--    return z1;
--}());
-+class z1 {
-+}
- exports.z1 = z1;
--var z2 = /** @class */ (function () {
--    function z2() {
--    }
--    return z2;
--}());
-+class z2 {
-+}
- exports.z2 = z2;
--var aaaa = /** @class */ (function () {
--    function aaaa() {
--    }
--    return aaaa;
--}());
-+class aaaa {
-+}
- exports.aaaa = aaaa;
--var aaaa1 = /** @class */ (function () {
--    function aaaa1() {
--    }
--    return aaaa1;
--}());
-+class aaaa1 {
-+}
- exports.aaaa1 = aaaa1;
- //// [client.js]
+@@= skipped -94, +94 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.z2 = exports.z111 = exports.xxxx9 = exports.xxxx8 = exports.xxxx7 = exports.xxxx6 = exports.xxxx5 = exports.xxxx4 = exports.xxxx3 = exports.xxxx2 = exports.xxxx1 = exports.xxxx = void 0;
@@ -152,7 +36,7 @@
  exports.z2 = new server_9.z2(); // z2 shouldn't give redeclare error
 
 
-@@= skipped -161, +119 lines =@@
+@@= skipped -73, +73 lines =@@
  import { z1 } from "./server";
  export declare var z111: z1;
  import { z2 as z3 } from "./server";
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportInIndirectExportAssignment.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportInIndirectExportAssignment.js.diff
index bc3ff79a65..35e6767d87 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportInIndirectExportAssignment.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportInIndirectExportAssignment.js.diff
@@ -1,17 +1,6 @@
 --- old.es6ImportNamedImportInIndirectExportAssignment.js
 +++ new.es6ImportNamedImportInIndirectExportAssignment.js
-@@= skipped -16, +16 lines =@@
- exports.a = void 0;
- var a;
- (function (a) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     a.c = c;
+@@= skipped -22, +22 lines =@@
  })(a || (exports.a = a = {}));
  //// [es6ImportNamedImportInIndirectExportAssignment_1.js]
  "use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js.diff b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js.diff
index 8d78488ffc..a87342a45c 100644
--- a/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6ImportNamedImportWithTypesAndValues.js.diff
@@ -1,28 +1,21 @@
 --- old.es6ImportNamedImportWithTypesAndValues.js
 +++ new.es6ImportNamedImportWithTypesAndValues.js
-@@= skipped -22, +22 lines =@@
- "use strict";
+@@= skipped -23, +23 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.C2 = exports.C = void 0;
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.prop = "hello";
 -    }
--    return C;
--}());
-+class C {
 +    prop = "hello";
-+}
+ }
  exports.C = C;
--var C2 = /** @class */ (function () {
--    function C2() {
+ class C2 {
+-    constructor() {
 -        this.prop2 = "world";
 -    }
--    return C2;
--}());
-+class C2 {
 +    prop2 = "world";
-+}
+ }
  exports.C2 = C2;
  //// [client.js]
  "use strict";
@@ -33,7 +26,7 @@
  exports.cVal = new server_1.C();
 
 
-@@= skipped -36, +30 lines =@@
+@@= skipped -33, +29 lines =@@
      prop2: string;
  }
  //// [client.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/es6MemberScoping.js.diff b/testdata/baselines/reference/submodule/compiler/es6MemberScoping.js.diff
index 4d8981f0a2..0eb2216020 100644
--- a/testdata/baselines/reference/submodule/compiler/es6MemberScoping.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/es6MemberScoping.js.diff
@@ -1,29 +1,17 @@
 --- old.es6MemberScoping.js
 +++ new.es6MemberScoping.js
-@@= skipped -17, +17 lines =@@
-
+@@= skipped -18, +18 lines =@@
 
  //// [es6MemberScoping.js]
--var Foo = /** @class */ (function () {
--    function Foo(store) {
+ class Foo {
+-    constructor(store) {
 -        this._store = store; // should be an error.
 -    }
--    Foo.prototype.foo = function () {
-+class Foo {
 +    constructor(store) { }
-+    foo() {
+     foo() {
          return this._store.length;
--    };
--    return Foo;
--}());
--var Foo2 = /** @class */ (function () {
--    function Foo2() {
      }
--    Foo2.Foo2 = function () { return 0; }; // should not be an error
--    return Foo2;
--}());
 +    _store = store; // should be an error.
-+}
-+class Foo2 {
-+    static Foo2() { return 0; } // should not be an error
-+}
\ No newline at end of file
+ }
+ class Foo2 {
+     static Foo2() { return 0; } // should not be an error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/esModuleInteropDefaultMemberMustBeSyntacticallyDefaultExport.js.diff b/testdata/baselines/reference/submodule/compiler/esModuleInteropDefaultMemberMustBeSyntacticallyDefaultExport.js.diff
index 5f53d4890b..265e37fbe9 100644
--- a/testdata/baselines/reference/submodule/compiler/esModuleInteropDefaultMemberMustBeSyntacticallyDefaultExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/esModuleInteropDefaultMemberMustBeSyntacticallyDefaultExport.js.diff
@@ -5,8 +5,6 @@
  };
  Object.defineProperty(exports, "__esModule", { value: true });
 -var point_1 = __importDefault(require("./point"));
--var C = point_1.default;
--var p = new C(1, 2);
 +const point_1 = __importDefault(require("./point"));
-+const C = point_1.default;
-+const p = new C(1, 2);
\ No newline at end of file
+ const C = point_1.default;
+ const p = new C(1, 2);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/esModuleInteropImportCall.js.diff b/testdata/baselines/reference/submodule/compiler/esModuleInteropImportCall.js.diff
index d3aee0c45b..558a6649b8 100644
--- a/testdata/baselines/reference/submodule/compiler/esModuleInteropImportCall.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/esModuleInteropImportCall.js.diff
@@ -4,7 +4,7 @@
          return result;
      };
  })();
--Promise.resolve().then(function () { return __importStar(require("./foo")); }).then(function (f) {
+-Promise.resolve().then(function () { return __importStar(require("./foo")); }).then(f => {
 +Promise.resolve().then(() => __importStar(require("./foo"))).then(f => {
      f.default;
  });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/esModuleInteropNamedDefaultImports.js.diff b/testdata/baselines/reference/submodule/compiler/esModuleInteropNamedDefaultImports.js.diff
index e33de7b671..93eefcf4dc 100644
--- a/testdata/baselines/reference/submodule/compiler/esModuleInteropNamedDefaultImports.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/esModuleInteropNamedDefaultImports.js.diff
@@ -1,28 +1,6 @@
 --- old.esModuleInteropNamedDefaultImports.js
 +++ new.esModuleInteropNamedDefaultImports.js
-@@= skipped -15, +15 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Bar = void 0;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.default = Foo;
--var Bar = /** @class */ (function () {
--    function Bar() {
--    }
--    return Bar;
--}());
-+class Bar {
-+}
- exports.Bar = Bar;
- //// [idx.js]
- "use strict";
-@@= skipped -51, +45 lines =@@
+@@= skipped -60, +60 lines =@@
      return (mod && mod.__esModule) ? mod : { "default": mod };
  };
  Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/esModuleInteropTslibHelpers.js.diff b/testdata/baselines/reference/submodule/compiler/esModuleInteropTslibHelpers.js.diff
index 1afa9b2594..29b8bcd865 100644
--- a/testdata/baselines/reference/submodule/compiler/esModuleInteropTslibHelpers.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/esModuleInteropTslibHelpers.js.diff
@@ -9,15 +9,9 @@
 +const tslib_1 = require("tslib");
 +const path_1 = tslib_1.__importDefault(require("path"));
  path_1.default.resolve("", "../");
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.Foo = Foo;
- //// [file2.js]
+ class Foo {
+ }
+@@= skipped -10, +10 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Foo2 = void 0;
@@ -26,15 +20,9 @@
 +const tslib_1 = require("tslib");
 +const path = tslib_1.__importStar(require("path"));
  path.resolve("", "../");
--var Foo2 = /** @class */ (function () {
--    function Foo2() {
--    }
--    return Foo2;
--}());
-+class Foo2 {
-+}
- exports.Foo2 = Foo2;
- //// [file3.js]
+ class Foo2 {
+ }
+@@= skipped -10, +10 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Foo3 = void 0;
@@ -43,15 +31,9 @@
 +const tslib_1 = require("tslib");
 +const path_1 = tslib_1.__importDefault(require("path"));
  (0, path_1.default)("", "../");
--var Foo3 = /** @class */ (function () {
--    function Foo3() {
--    }
--    return Foo3;
--}());
-+class Foo3 {
-+}
- exports.Foo3 = Foo3;
- //// [file4.js]
+ class Foo3 {
+ }
+@@= skipped -10, +10 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Bar = void 0;
diff --git a/testdata/baselines/reference/submodule/compiler/escapedIdentifiers.js.diff b/testdata/baselines/reference/submodule/compiler/escapedIdentifiers.js.diff
index be27264843..da1124568a 100644
--- a/testdata/baselines/reference/submodule/compiler/escapedIdentifiers.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/escapedIdentifiers.js.diff
@@ -14,53 +14,23 @@
  moduleType2.baz2 = 3;
  moduleType\u0032.baz2 = 3;
  // classes
--var classType1 = /** @class */ (function () {
--    function classType1() {
--    }
--    return classType1;
--}());
--var classType\u0032 = /** @class */ (function () {
--    function classType\u0032() {
--    }
--    return classType\u0032;
--}());
-+class classType1 {
+ class classType1 {
 +    foo1;
-+}
-+class classType\u0032 {
+ }
+ class classType\u0032 {
 +    foo2;
-+}
+ }
  var classType1Object1 = new classType1();
  classType1Object1.foo1 = 2;
- var classType1Object2 = new classType\u0031();
-@@= skipped -35, +31 lines =@@
- var interfaceType2Object2 = { bar2: 0 };
- interfaceType2Object2.bar2 = 2;
- // arguments
--var testClass = /** @class */ (function () {
--    function testClass() {
--    }
--    testClass.prototype.func = function (arg1, arg\u0032, arg\u0033, arg4) {
-+class testClass {
-+    func(arg1, arg\u0032, arg\u0033, arg4) {
-         arg\u0031 = 1;
-         arg2 = 'string';
-         arg\u0033 = true;
-         arg4 = 2;
--    };
--    return testClass;
--}());
-+    }
-+}
+@@= skipped -39, +41 lines =@@
+ }
  // constructors
--var constructorTestClass = /** @class */ (function () {
--    function constructorTestClass(arg1, arg\u0032, arg\u0033, arg4) {
-+class constructorTestClass {
+ class constructorTestClass {
 +    arg1;
 +    arg2;
 +    arg3;
 +    arg4;
-+    constructor(arg1, arg\u0032, arg\u0033, arg4) {
+     constructor(arg1, arg\u0032, arg\u0033, arg4) {
          this.arg1 = arg1;
 -        this.arg\u0032 = arg\u0032;
 -        this.arg\u0033 = arg\u0033;
@@ -68,9 +38,4 @@
 +        this.arg3 = arg3;
          this.arg4 = arg4;
      }
--    return constructorTestClass;
--}());
-+}
- var constructorTestObject = new constructorTestClass(1, 'string', true, 2);
- constructorTestObject.arg\u0031 = 1;
- constructorTestObject.arg2 = 'string';
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/evolvingArrayTypeInAssert.js.diff b/testdata/baselines/reference/submodule/compiler/evolvingArrayTypeInAssert.js.diff
deleted file mode 100644
index f40b4542ab..0000000000
--- a/testdata/baselines/reference/submodule/compiler/evolvingArrayTypeInAssert.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.evolvingArrayTypeInAssert.js
-+++ new.evolvingArrayTypeInAssert.js
-@@= skipped -16, +16 lines =@@
- exports.unsafeCast = unsafeCast;
- function unsafeCast(_value) { }
- function yadda() {
--    var out = [];
-+    let out = [];
-     out.push(100);
-     unsafeCast(out);
-     return out;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithIndexSignature.js.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithIndexSignature.js.diff
index b917fed920..5156612962 100644
--- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithIndexSignature.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckIntersectionWithIndexSignature.js.diff
@@ -6,12 +6,5 @@
  //// [excessPropertyCheckIntersectionWithIndexSignature.js]
 -"use strict";
  // Repro from #51875
--var x;
-+let x;
- x = { y: { a: 0 } }; // Error
- x = { y: { a: 0, b: 0 } };
- x = { y: { a: 0, b: 0, c: 0 } }; // Error
--var yy = {
-+const yy = {
-     foo: { a: '', b: '' },
- };
\ No newline at end of file
+ let x;
+ x = { y: { a: 0 } }; // Error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithEmptyObject.js.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithEmptyObject.js.diff
deleted file mode 100644
index df4e08bed8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithEmptyObject.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.excessPropertyCheckWithEmptyObject.js
-+++ new.excessPropertyCheckWithEmptyObject.js
-@@= skipped -21, +21 lines =@@
- // Excess property error expected here
- Object.defineProperty(window, "prop", { value: "v1.0.0", readonly: false });
- // Excess property error expected here
--var a = { y: 10 };
-+let a = { y: 10 };
- // Excess property error expected here
--var x = { y: "hello" };
-+let x = { y: "hello" };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.js.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.js.diff
index 0aa44b5b47..9f32319ccc 100644
--- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithMultipleDiscriminants.js.diff
@@ -6,62 +6,5 @@
  "use strict";
 -// Repro from #32657
  Object.defineProperty(exports, "__esModule", { value: true });
--var foo = {
-+const foo = {
-     type: "number",
-     value: 10,
-     multipleOf: 5, // excess property
-     format: "what?"
- };
- // This has excess error because variant three is the only applicable case.
--var a = {
-+const a = {
-     p1: 'left',
-     p2: false,
-     p3: 42,
-     p4: "hello"
- };
- // This has excess error because variant two is not applicable.
--var b = {
-+const b = {
-     p1: 'left',
-     p2: true,
-     p3: 42,
-     p4: "hello"
- };
- // This has excess error because variant two is the only applicable case
--var c = {
-+const c = {
-     p1: 'right',
-     p2: false,
-     p3: 42,
-     p4: "hello"
- };
- // Should reject { b } because reduced to Common | (Common & A)
--var c1 = {
-+const c1 = {
-     type: "A",
-     n: 1,
-     a: 1,
-     b: 1 // excess property
- };
- // Should still reject { b } because reduced to Common | A, even though these are now disjoint
--var c2 = {
-+const c2 = {
-     type: "A",
-     n: 1,
-     a: 1,
-     b: 1 // excess property
- };
- // both should error due to excess properties
--var attributes = {
-+const attributes = {
-     type: 'string',
-     autoIncrement: true,
-     required: true,
- };
--var attributes2 = {
-+const attributes2 = {
-     type: 'string',
-     autoIncrement: true,
-     required: true,
\ No newline at end of file
+ const foo = {
+     type: "number",
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithNestedArrayIntersection.js.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithNestedArrayIntersection.js.diff
deleted file mode 100644
index 833c129663..0000000000
--- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithNestedArrayIntersection.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.excessPropertyCheckWithNestedArrayIntersection.js
-+++ new.excessPropertyCheckWithNestedArrayIntersection.js
-@@= skipped -25, +25 lines =@@
-
-
- //// [excessPropertyCheckWithNestedArrayIntersection.js]
--var repro = {
-+const repro = {
-     dataType: {
-         fields: [{
-                 key: 'bla', // should be OK: Not excess
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithUnions.js.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithUnions.js.diff
index 821ec6cb82..b1647100b5 100644
--- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithUnions.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckWithUnions.js.diff
@@ -16,73 +16,15 @@
 -    };
 -    return __assign.apply(this, arguments);
 -};
--var wrong = { tag: "T", a1: "extra" };
-+let wrong = { tag: "T", a1: "extra" };
+ let wrong = { tag: "T", a1: "extra" };
  wrong = { tag: "A", d20: 12 };
  wrong = { tag: "D" };
--var amb;
-+let amb;
- // no error for ambiguous tag, even when it could satisfy both constituents at once
- amb = { tag: "A", x: "hi" };
- amb = { tag: "A", y: 12 };
-@@= skipped -26, +14 lines =@@
- // assignability errors still work
- amb = { tag: "A" };
- amb = { tag: "A", z: true };
--var over;
-+let over;
+@@= skipped -30, +18 lines =@@
  // these two are still errors despite their doubled up discriminants
  over = { a: 1, b: 1, first: "ok", second: "error" };
  over = { a: 1, b: 1, first: "ok", third: "error" };
--var t2 = __assign({}, t1);
+-let t2 = __assign({}, t1);
 +let t2 = { ...t1 };
  t0 = t2;
--var abab = {
-+const abab = {
-     kind: "A",
-     n: {
-         a: "a",
-         b: "b", // excess -- kind: "A"
-     }
- };
--var abac = {
-+const abac = {
-     kind: "A",
-     n: {
-         a: "a",
-         c: "c", // ok -- kind: "A", an: { a: string } | { c: string }
-     }
- };
--var obj = {
-+const obj = {
-     tag: 'button',
-     type: 'submit',
-     // should have error here
-     href: 'foo',
- };
- ;
--var dataSpecification = {
-+const dataSpecification = {
-     foo: "asdfsadffsd"
- };
- // Repro from #34611
--var obj1 = { a: 'abc' }; // Error
--var obj2 = { a: 5, c: 'abc' }; // Error
-+const obj1 = { a: 'abc' }; // Error
-+const obj2 = { a: 5, c: 'abc' }; // Error
- function F1(_arg) { }
- F1({
-     props: {
--        prop1: prop1,
--        prop2: prop2,
-+        prop1,
-+        prop2,
-     },
- });
- function F2(_props) { }
- F2({
--    prop1: prop1,
--    prop2: prop2,
-+    prop1,
-+    prop2,
- });
\ No newline at end of file
+ const abab = {
+     kind: "A",
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckingIntersectionWithConditional.js.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyCheckingIntersectionWithConditional.js.diff
deleted file mode 100644
index b7aec45b0e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/excessPropertyCheckingIntersectionWithConditional.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.excessPropertyCheckingIntersectionWithConditional.js
-+++ new.excessPropertyCheckingIntersectionWithConditional.js
-@@= skipped -6, +6 lines =@@
- }
-
- //// [excessPropertyCheckingIntersectionWithConditional.js]
--var createDefaultExample = function (x) {
-+const createDefaultExample = (x) => {
-     return { a: 1, x: x }; // okay in TS 4.7.4, error in TS 4.8.2
- };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyChecksWithNestedIntersections.js.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyChecksWithNestedIntersections.js.diff
index b6ad1f40fd..f87d79cdcf 100644
--- a/testdata/baselines/reference/submodule/compiler/excessPropertyChecksWithNestedIntersections.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/excessPropertyChecksWithNestedIntersections.js.diff
@@ -7,26 +7,4 @@
 -// https://github.com/Microsoft/TypeScript/issues/13813
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.myInstance = exports.photo = exports.obj = void 0;
--var a = { a: { x: 'hello' } }; // ok
--var b = { a: { x: 2 } }; // error - types of property x are incompatible
--var c = { a: { x: 'hello', y: 2 } }; // error - y does not exist in type A
--var d = { a: { x: 'hello' }, c: 5 }; // ok
--var e = { a: { x: 2 }, c: 5 }; // error - types of property x are incompatible
--var f = { a: { x: 'hello', y: 2 }, c: 5 }; // error - y does not exist in type A
-+let a = { a: { x: 'hello' } }; // ok
-+let b = { a: { x: 2 } }; // error - types of property x are incompatible
-+let c = { a: { x: 'hello', y: 2 } }; // error - y does not exist in type A
-+let d = { a: { x: 'hello' }, c: 5 }; // ok
-+let e = { a: { x: 2 }, c: 5 }; // error - types of property x are incompatible
-+let f = { a: { x: 'hello', y: 2 }, c: 5 }; // error - y does not exist in type A
- exports.photo = {
-     id: 1,
-     url: '',
-@@= skipped -23, +22 lines =@@
-         xyz: 2 // This should also be an error
-     }
- };
--var test;
-+let test;
- test = { foo: true, bar: true, boo: true };
- test = { foo: true, bar: { foo: true, bar: true, boo: true } };
\ No newline at end of file
+ let a = { a: { x: 'hello' } }; // ok
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/excessPropertyErrorForFunctionTypes.js.diff b/testdata/baselines/reference/submodule/compiler/excessPropertyErrorForFunctionTypes.js.diff
deleted file mode 100644
index 3d93269015..0000000000
--- a/testdata/baselines/reference/submodule/compiler/excessPropertyErrorForFunctionTypes.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.excessPropertyErrorForFunctionTypes.js
-+++ new.excessPropertyErrorForFunctionTypes.js
-@@= skipped -6, +6 lines =@@
- let doesntWork: DoesntWork = { a: 1, c: 2, d: 3 }
-
- //// [excessPropertyErrorForFunctionTypes.js]
--var doesntWork = { a: 1, c: 2, d: 3 };
-+let doesntWork = { a: 1, c: 2, d: 3 };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/excessiveStackDepthFlatArray.js.diff b/testdata/baselines/reference/submodule/compiler/excessiveStackDepthFlatArray.js.diff
index 54f26d014b..0fd96a87b2 100644
--- a/testdata/baselines/reference/submodule/compiler/excessiveStackDepthFlatArray.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/excessiveStackDepthFlatArray.js.diff
@@ -1,30 +1,13 @@
 --- old.excessiveStackDepthFlatArray.js
 +++ new.excessiveStackDepthFlatArray.js
-@@= skipped -42, +42 lines =@@
-
-
- //// [index.js]
--var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
--    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
--        if (ar || !(i in from)) {
--            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
--            ar[i] = from[i];
--        }
--    }
--    return to.concat(ar || Array.prototype.slice.call(from));
--};
- configureStore({
--    middleware: __spreadArray([], defaultMiddleware, true), // Should not error
-+    middleware: [...defaultMiddleware], // Should not error
+@@= skipped -47, +47 lines =@@
  });
--var Component = function () {
--    var categories = ['Fruit', 'Vegetables'];
+ const Component = () => {
+     const categories = ['Fruit', 'Vegetables'];
 -    return (React.createElement("ul", null,
 -        React.createElement("li", null, "All"),
--        categories.map(function (category) { return (React.createElement("li", { key: category }, category) // Error about 'key' only
--        ); })));
-+const Component = () => {
-+    const categories = ['Fruit', 'Vegetables'];
+-        categories.map((category) => (React.createElement("li", { key: category }, category) // Error about 'key' only
+-        ))));
 +    return (React.createElement("ul", null, React.createElement("li", null, "All"), categories.map((category) => (React.createElement("li", { key: category }, category) // Error about 'key' only
 +    ))));
  };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/excessivelyLargeTupleSpread.js.diff b/testdata/baselines/reference/submodule/compiler/excessivelyLargeTupleSpread.js.diff
index d65b215c96..92979b3175 100644
--- a/testdata/baselines/reference/submodule/compiler/excessivelyLargeTupleSpread.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/excessivelyLargeTupleSpread.js.diff
@@ -5,42 +5,6 @@
 
  //// [excessivelyLargeTupleSpread.js]
 -// #41771
--var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
--    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
--        if (ar || !(i in from)) {
--            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
--            ar[i] = from[i];
--        }
--    }
--    return to.concat(ar || Array.prototype.slice.call(from));
--};
--var a0 = [0];
--var a1 = __spreadArray(__spreadArray([], a0, true), a0, true);
--var a2 = __spreadArray(__spreadArray([], a1, true), a1, true);
--var a3 = __spreadArray(__spreadArray([], a2, true), a2, true);
--var a4 = __spreadArray(__spreadArray([], a3, true), a3, true);
--var a5 = __spreadArray(__spreadArray([], a4, true), a4, true);
--var a6 = __spreadArray(__spreadArray([], a5, true), a5, true);
--var a7 = __spreadArray(__spreadArray([], a6, true), a6, true);
--var a8 = __spreadArray(__spreadArray([], a7, true), a7, true);
--var a9 = __spreadArray(__spreadArray([], a8, true), a8, true);
--var a10 = __spreadArray(__spreadArray([], a9, true), a9, true);
--var a11 = __spreadArray(__spreadArray([], a10, true), a10, true);
--var a12 = __spreadArray(__spreadArray([], a11, true), a11, true);
--var a13 = __spreadArray(__spreadArray([], a12, true), a12, true);
--var a14 = __spreadArray(__spreadArray([], a13, true), a13, true); // 2^14 > 10,000
-+const a0 = [0];
-+const a1 = [...a0, ...a0];
-+const a2 = [...a1, ...a1];
-+const a3 = [...a2, ...a2];
-+const a4 = [...a3, ...a3];
-+const a5 = [...a4, ...a4];
-+const a6 = [...a5, ...a5];
-+const a7 = [...a6, ...a6];
-+const a8 = [...a7, ...a7];
-+const a9 = [...a8, ...a8];
-+const a10 = [...a9, ...a9];
-+const a11 = [...a10, ...a10];
-+const a12 = [...a11, ...a11];
-+const a13 = [...a12, ...a12];
-+const a14 = [...a13, ...a13]; // 2^14 > 10,000
\ No newline at end of file
+ const a0 = [0];
+ const a1 = [...a0, ...a0];
+ const a2 = [...a1, ...a1];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchCheckCircularity.js.diff b/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchCheckCircularity.js.diff
index c79a67ed9d..993390a5ce 100644
--- a/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchCheckCircularity.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchCheckCircularity.js.diff
@@ -7,20 +7,5 @@
 -"use strict";
 -// Repro from #47539
  function f() {
--    var foo = "aaa";
-+    let foo = "aaa";
-     while (true) {
-         switch (foo) {
-             case "aaa":
-@@= skipped -17, +15 lines =@@
-     }
- }
- function functionC() {
--    var unionVal = "A";
-+    let unionVal = "A";
-     while (true) {
--        var key = void 0;
-+        let key;
-         switch (unionVal) {
-             case "A": {
-                 key = "AA";
\ No newline at end of file
+     let foo = "aaa";
+     while (true) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchImplicitReturn.js.diff b/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchImplicitReturn.js.diff
deleted file mode 100644
index 669ee48621..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchImplicitReturn.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.exhaustiveSwitchImplicitReturn.js
-+++ new.exhaustiveSwitchImplicitReturn.js
-@@= skipped -68, +68 lines =@@
-         case "a":
-             return 1;
-     }
--    var unusedVariable;
-+    let unusedVariable;
- }
- function foo3(bar) {
-     switch (bar) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchWithWideningLiteralTypes.js.diff b/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchWithWideningLiteralTypes.js.diff
index baf68632a2..ba21c22624 100644
--- a/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchWithWideningLiteralTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exhaustiveSwitchWithWideningLiteralTypes.js.diff
@@ -1,27 +1,19 @@
 --- old.exhaustiveSwitchWithWideningLiteralTypes.js
 +++ new.exhaustiveSwitchWithWideningLiteralTypes.js
-@@= skipped -19, +19 lines =@@
-
+@@= skipped -20, +20 lines =@@
  //// [exhaustiveSwitchWithWideningLiteralTypes.js]
  // Repro from #12529
--var A = /** @class */ (function () {
--    function A() {
+ class A {
+-    constructor() {
 -        this.kind = "A"; // (property) A.kind: "A"
 -    }
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
++    kind = "A"; // (property) A.kind: "A"
+ }
+ class B {
+-    constructor() {
 -        this.kind = "B"; // (property) B.kind: "B"
 -    }
--    return B;
--}());
-+class A {
-+    kind = "A"; // (property) A.kind: "A"
-+}
-+class B {
 +    kind = "B"; // (property) B.kind: "B"
-+}
+ }
  function f(value) {
-     switch (value.kind) {
-         case "A": return 0;
\ No newline at end of file
+     switch (value.kind) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js.diff
index a374fc2343..e1e3783a15 100644
--- a/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionBlockShadowing.js.diff
@@ -11,25 +11,8 @@
 +// https://github.com/microsoft/TypeScript/issues/56538
  function X() { }
  if (Math.random()) {
--    var X_1 = {};
--    X_1.test = 1;
-+    const X = {};
-+    X.test = 1;
- }
- function Y() { }
- Y.test = "foo";
--var aliasTopY = Y;
-+const aliasTopY = Y;
- if (Math.random()) {
--    var Y_1 = function Y() { };
--    Y_1.test = 42;
--    var topYcheck = aliasTopY;
--    var blockYcheck = Y_1;
-+    const Y = function Y() { };
-+    Y.test = 42;
-+    const topYcheck = aliasTopY;
-+    const blockYcheck = Y;
- }
+     const X = {};
+@@= skipped -21, +21 lines =@@
 
 
  //// [expandoFunctionBlockShadowing.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionContextualTypes.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionContextualTypes.js.diff
deleted file mode 100644
index b2ce98bed7..0000000000
--- a/testdata/baselines/reference/submodule/compiler/expandoFunctionContextualTypes.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.expandoFunctionContextualTypes.js
-+++ new.expandoFunctionContextualTypes.js
-@@= skipped -17, +17 lines =@@
-
-
- //// [expandoFunctionContextualTypes.js]
--var MyComponent = function () { return null; };
-+const MyComponent = () => null;
- MyComponent.defaultProps = {
-     color: "red"
- };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionContextualTypesJSDocInTs.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionContextualTypesJSDocInTs.js.diff
deleted file mode 100644
index 4107a41671..0000000000
--- a/testdata/baselines/reference/submodule/compiler/expandoFunctionContextualTypesJSDocInTs.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.expandoFunctionContextualTypesJSDocInTs.js
-+++ new.expandoFunctionContextualTypesJSDocInTs.js
-@@= skipped -14, +14 lines =@@
- function Foo() { }
- // This comment should have no effect; this is a TS file.
- /** @type {never} */
--Foo.bar = function () { };
-+Foo.bar = () => { };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionContextualTypesNoValue.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionContextualTypesNoValue.js.diff
index dd7bbc54d0..4720f816ff 100644
--- a/testdata/baselines/reference/submodule/compiler/expandoFunctionContextualTypesNoValue.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionContextualTypesNoValue.js.diff
@@ -7,5 +7,4 @@
 -var blah_1 = require("blah");
 +const blah_1 = require("blah");
  function Foo() { }
--blah_1.default.bar = function () { };
-+blah_1.default.bar = () => { };
\ No newline at end of file
+ blah_1.default.bar = () => { };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionExpressionsWithDynamicNames.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionExpressionsWithDynamicNames.js.diff
index 638de336f1..91ce438ddd 100644
--- a/testdata/baselines/reference/submodule/compiler/expandoFunctionExpressionsWithDynamicNames.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionExpressionsWithDynamicNames.js.diff
@@ -7,14 +7,7 @@
 -// https://github.com/microsoft/TypeScript/issues/54809
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.expr2 = exports.expr = void 0;
--var s = "X";
--var expr = function () { };
 +// https://github.com/microsoft/TypeScript/issues/54809
-+const s = "X";
-+const expr = () => { };
- exports.expr = expr;
- exports.expr[s] = 0;
--var expr2 = function () { };
-+const expr2 = function () { };
- exports.expr2 = expr2;
- exports.expr2[s] = 0;
+ const s = "X";
+ const expr = () => { };
+ exports.expr = expr;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionNestedAssigments.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionNestedAssigments.js.diff
index 238a7c6455..458d8901f4 100644
--- a/testdata/baselines/reference/submodule/compiler/expandoFunctionNestedAssigments.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/expandoFunctionNestedAssigments.js.diff
@@ -1,35 +1,6 @@
 --- old.expandoFunctionNestedAssigments.js
 +++ new.expandoFunctionNestedAssigments.js
-@@= skipped -55, +55 lines =@@
- //// [expandoFunctionNestedAssigments.js]
- function Foo() {
- }
--var d = (Foo.inVariableInit = 1);
--function bar(p) {
--    if (p === void 0) { p = (Foo.inNestedFunction = 1); }
-+let d = (Foo.inVariableInit = 1);
-+function bar(p = (Foo.inNestedFunction = 1)) {
- }
- (Foo.bla = { foo: 1 }).foo = (Foo.baz = 1) + (Foo.bar = 0);
- if (Foo.fromIf = 1) {
-@@= skipped -26, +25 lines =@@
-         Foo.fromForBodyNested = 1;
-     }
- }
--for (var _i = 0, _a = (Foo.forOf = []); _i < _a.length; _i++) {
--    var f = _a[_i];
-+for (let f of (Foo.forOf = [])) {
-     Foo.fromForOfBody = 1;
-     {
-         Foo.fromForOfBodyNested = 1;
-     }
- }
--for (var f in (Foo.forIn = [])) {
-+for (let f in (Foo.forIn = [])) {
-     Foo.fromForInBody = 1;
-     {
-         Foo.fromForInBodyNested = 1;
-@@= skipped -17, +16 lines =@@
+@@= skipped -96, +96 lines =@@
 
  //// [expandoFunctionNestedAssigments.d.ts]
  declare function Foo(): void;
diff --git a/testdata/baselines/reference/submodule/compiler/expandoFunctionNestedAssigmentsDeclared.js.diff b/testdata/baselines/reference/submodule/compiler/expandoFunctionNestedAssigmentsDeclared.js.diff
deleted file mode 100644
index 827283c726..0000000000
--- a/testdata/baselines/reference/submodule/compiler/expandoFunctionNestedAssigmentsDeclared.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.expandoFunctionNestedAssigmentsDeclared.js
-+++ new.expandoFunctionNestedAssigmentsDeclared.js
-@@= skipped -97, +97 lines =@@
-         Foo.fromForBodyNested = 1;
-     }
- }
--for (var _i = 0, _a = (Foo.forOf = []); _i < _a.length; _i++) {
--    var f = _a[_i];
-+for (let f of (Foo.forOf = [])) {
-     Foo.fromForOfBody = 1;
-     {
-         Foo.fromForOfBodyNested = 1;
-     }
- }
--for (var f in (Foo.forIn = [])) {
-+for (let f in (Foo.forIn = [])) {
-     Foo.fromForInBody = 1;
-     {
-         Foo.fromForInBodyNested = 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js.diff b/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js.diff
index e96f02854d..131d8587e6 100644
--- a/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/experimentalDecoratorMetadataUnresolvedTypeObjectInEmit.js.diff
@@ -16,11 +16,11 @@
 -var __param = (this && this.__param) || function (paramIndex, decorator) {
 -    return function (target, key) { decorator(target, key, paramIndex); }
 -};
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    Foo.prototype.f = function (user) { };
+-let Foo = (() => {
 -    var _a, _b, _c, _d;
+-    class Foo {
+-        f(user) { }
+-    }
 -    __decorate([
 -        __param(0, decorate),
 -        __metadata("design:type", Function),
@@ -28,7 +28,7 @@
 -        __metadata("design:returntype", void 0)
 -    ], Foo.prototype, "f", null);
 -    return Foo;
--}());
+-})();
 +class Foo {
 +    f(user) { }
 +}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/explicitAnyAfterSpreadNoImplicitAnyError.js.diff b/testdata/baselines/reference/submodule/compiler/explicitAnyAfterSpreadNoImplicitAnyError.js.diff
index 531165eb60..22552dd439 100644
--- a/testdata/baselines/reference/submodule/compiler/explicitAnyAfterSpreadNoImplicitAnyError.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/explicitAnyAfterSpreadNoImplicitAnyError.js.diff
@@ -16,6 +16,5 @@
 -    return __assign.apply(this, arguments);
 -};
 -(__assign({ a: [] }, null));
--var x;
 +({ a: [], ...null });
-+let x;
\ No newline at end of file
+ let x;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportAlreadySeen.js.diff b/testdata/baselines/reference/submodule/compiler/exportAlreadySeen.js.diff
deleted file mode 100644
index ed1f27270d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportAlreadySeen.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.exportAlreadySeen.js
-+++ new.exportAlreadySeen.js
-@@= skipped -26, +26 lines =@@
-     M.x = 1;
-     function f() { }
-     M.f = f;
--    var N;
-+    let N;
-     (function (N) {
--        var C = /** @class */ (function () {
--            function C() {
--            }
--            return C;
--        }());
-+        class C {
-+        }
-         N.C = C;
-     })(N = M.N || (M.N = {}));
- })(M || (M = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportArrayBindingPattern.js.diff b/testdata/baselines/reference/submodule/compiler/exportArrayBindingPattern.js.diff
index a1ce014c5d..4ab85963d1 100644
--- a/testdata/baselines/reference/submodule/compiler/exportArrayBindingPattern.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportArrayBindingPattern.js.diff
@@ -1,10 +1,8 @@
 --- old.exportArrayBindingPattern.js
 +++ new.exportArrayBindingPattern.js
-@@= skipped -9, +9 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -10, +10 lines =@@
  exports.b = exports.a = void 0;
  // issue: https://github.com/Microsoft/TypeScript/issues/10778
--var _a = [1, 2, 3], a = _a[0], b = _a[2];
+ const [a, , b] = [1, 2, 3];
 -exports.a = a;
--exports.b = b;
-+const [a, , b] = [1, 2, 3];
\ No newline at end of file
+-exports.b = b;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportAssignClassAndModule.js.diff b/testdata/baselines/reference/submodule/compiler/exportAssignClassAndModule.js.diff
index 3b27e5cc49..beedbe07ed 100644
--- a/testdata/baselines/reference/submodule/compiler/exportAssignClassAndModule.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportAssignClassAndModule.js.diff
@@ -1,17 +1,10 @@
 --- old.exportAssignClassAndModule.js
 +++ new.exportAssignClassAndModule.js
-@@= skipped -19, +19 lines =@@
-
+@@= skipped -20, +20 lines =@@
  //// [exportAssignClassAndModule_0.js]
  "use strict";
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
+ class Foo {
 +    x;
-+}
+ }
  module.exports = Foo;
- //// [exportAssignClassAndModule_1.js]
- "use strict";
\ No newline at end of file
+ //// [exportAssignClassAndModule_1.js]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportAssignmentClass.js.diff b/testdata/baselines/reference/submodule/compiler/exportAssignmentClass.js.diff
index 4a1e466540..1a787fda49 100644
--- a/testdata/baselines/reference/submodule/compiler/exportAssignmentClass.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportAssignmentClass.js.diff
@@ -7,12 +7,11 @@
 -//// [exportAssignmentClass_A.js]
 -define(["require", "exports"], function (require, exports) {
 -    "use strict";
--    var C = /** @class */ (function () {
--        function C() {
+-    class C {
+-        constructor() {
 -            this.p = 0;
 -        }
--        return C;
--    }());
+-    }
 -    return C;
 -});
  //// [exportAssignmentClass_B.js]
diff --git a/testdata/baselines/reference/submodule/compiler/exportAssignmentOfGenericType1.js.diff b/testdata/baselines/reference/submodule/compiler/exportAssignmentOfGenericType1.js.diff
index 0d753c541c..ce07b3d30b 100644
--- a/testdata/baselines/reference/submodule/compiler/exportAssignmentOfGenericType1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportAssignmentOfGenericType1.js.diff
@@ -6,11 +6,8 @@
  //// [exportAssignmentOfGenericType1_0.js]
 -define(["require", "exports"], function (require, exports) {
 -    "use strict";
--    var T = /** @class */ (function () {
--        function T() {
--        }
--        return T;
--    }());
+-    class T {
+-    }
 -    return T;
 -});
 +"use strict";
@@ -19,31 +16,11 @@
 +}
 +module.exports = T;
  //// [exportAssignmentOfGenericType1_1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
 -define(["require", "exports", "exportAssignmentOfGenericType1_0"], function (require, exports, q) {
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
--    var M = /** @class */ (function (_super) {
--        __extends(M, _super);
--        function M() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return M;
--    }(q));
+-    class M extends q {
+-    }
 -    var m;
 -    var r = m.foo;
 -});
diff --git a/testdata/baselines/reference/submodule/compiler/exportAssignmentWithExports.js.diff b/testdata/baselines/reference/submodule/compiler/exportAssignmentWithExports.js.diff
deleted file mode 100644
index b65a80a4b3..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportAssignmentWithExports.js.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- old.exportAssignmentWithExports.js
-+++ new.exportAssignmentWithExports.js
-@@= skipped -7, +7 lines =@@
- //// [exportAssignmentWithExports.js]
- "use strict";
- exports.C = void 0;
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var D = /** @class */ (function () {
--    function D() {
--    }
--    return D;
--}());
-+class C {
-+}
-+class D {
-+}
- module.exports = D;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportClassExtendingIntersection.js.diff b/testdata/baselines/reference/submodule/compiler/exportClassExtendingIntersection.js.diff
index 1cc444edda..3ae7308b38 100644
--- a/testdata/baselines/reference/submodule/compiler/exportClassExtendingIntersection.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportClassExtendingIntersection.js.diff
@@ -1,95 +1,38 @@
 --- old.exportClassExtendingIntersection.js
 +++ new.exportClassExtendingIntersection.js
-@@= skipped -38, +38 lines =@@
- "use strict";
+@@= skipped -39, +39 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyBaseClass = void 0;
--var MyBaseClass = /** @class */ (function () {
--    function MyBaseClass(value) {
--    }
--    return MyBaseClass;
--}());
-+class MyBaseClass {
+ class MyBaseClass {
 +    baseProperty;
-+    constructor(value) { }
-+}
+     constructor(value) { }
+ }
  exports.MyBaseClass = MyBaseClass;
- //// [MixinClass.js]
- "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -9, +10 lines =@@
  exports.MyMixin = MyMixin;
  function MyMixin(base) {
--    return /** @class */ (function (_super) {
--        __extends(class_1, _super);
--        function class_1() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return class_1;
--    }(base));
-+    return class extends base {
+     return class extends base {
 +        mixinProperty;
-+    };
+     };
  }
  //// [FinalClass.js]
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MyExtendedClass = void 0;
 -var BaseClass_1 = require("./BaseClass");
 -var MixinClass_1 = require("./MixinClass");
--var MyExtendedClass = /** @class */ (function (_super) {
--    __extends(MyExtendedClass, _super);
--    function MyExtendedClass() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return MyExtendedClass;
--}((0, MixinClass_1.MyMixin)(BaseClass_1.MyBaseClass)));
 +const BaseClass_1 = require("./BaseClass");
 +const MixinClass_1 = require("./MixinClass");
-+class MyExtendedClass extends (0, MixinClass_1.MyMixin)(BaseClass_1.MyBaseClass) {
+ class MyExtendedClass extends (0, MixinClass_1.MyMixin)(BaseClass_1.MyBaseClass) {
 +    extendedClassProperty;
-+}
+ }
  exports.MyExtendedClass = MyExtendedClass;
  //// [Main.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
 -var FinalClass_1 = require("./FinalClass");
 -var MixinClass_1 = require("./MixinClass");
--var myExtendedClass = new FinalClass_1.MyExtendedClass('string');
--var AnotherMixedClass = (0, MixinClass_1.MyMixin)(FinalClass_1.MyExtendedClass);
 +const FinalClass_1 = require("./FinalClass");
 +const MixinClass_1 = require("./MixinClass");
-+const myExtendedClass = new FinalClass_1.MyExtendedClass('string');
-+const AnotherMixedClass = (0, MixinClass_1.MyMixin)(FinalClass_1.MyExtendedClass);
-
-
- //// [BaseClass.d.ts]
\ No newline at end of file
+ const myExtendedClass = new FinalClass_1.MyExtendedClass('string');
+ const AnotherMixedClass = (0, MixinClass_1.MyMixin)(FinalClass_1.MyExtendedClass);
diff --git a/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js.diff b/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js.diff
index 7bd047fac6..532003c1eb 100644
--- a/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportDeclarationInInternalModule.js.diff
@@ -1,64 +1,14 @@
 --- old.exportDeclarationInInternalModule.js
 +++ new.exportDeclarationInInternalModule.js
-@@= skipped -19, +19 lines =@@
-
-
- //// [exportDeclarationInInternalModule.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Bbb = /** @class */ (function () {
--    function Bbb() {
--    }
--    return Bbb;
--}());
--var Aaa = /** @class */ (function (_super) {
--    __extends(Aaa, _super);
--    function Aaa() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Aaa;
--}(Bbb));
-+class Bbb {
-+}
-+class Aaa extends Bbb {
-+}
- (function (Aaa) {
--    var SomeType = /** @class */ (function () {
--        function SomeType() {
--        }
--        return SomeType;
--    }());
-+    class SomeType {
-+    }
-     Aaa.SomeType = SomeType;
- })(Aaa || (Aaa = {}));
- (function (Bbb) {
--    var SomeType = /** @class */ (function () {
--        function SomeType() {
--        }
--        return SomeType;
--    }());
-+    class SomeType {
-+    }
+@@= skipped -32, +32 lines =@@
+     class SomeType {
+     }
      Bbb.SomeType = SomeType;
 +    export * from Aaa; // this line causes the nullref
  })(Bbb || (Bbb = {}));
  var a;
 
-@@= skipped -58, +30 lines =@@
+@@= skipped -16, +17 lines =@@
  declare namespace Bbb {
      export class SomeType {
      }
diff --git a/testdata/baselines/reference/submodule/compiler/exportDeclarationsInAmbientNamespaces.js.diff b/testdata/baselines/reference/submodule/compiler/exportDeclarationsInAmbientNamespaces.js.diff
deleted file mode 100644
index 9575ac25f3..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportDeclarationsInAmbientNamespaces.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.exportDeclarationsInAmbientNamespaces.js
-+++ new.exportDeclarationsInAmbientNamespaces.js
-@@= skipped -10, +10 lines =@@
-
-
- //// [exportDeclarationsInAmbientNamespaces.js]
--Q.try(function () { });
-+Q.try(() => { });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultAbstractClass.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultAbstractClass.js.diff
index d240134caf..b297e0f6f6 100644
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultAbstractClass.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportDefaultAbstractClass.js.diff
@@ -1,71 +1,19 @@
 --- old.exportDefaultAbstractClass.js
 +++ new.exportDefaultAbstractClass.js
-@@= skipped -13, +13 lines =@@
-
- //// [a.js]
+@@= skipped -15, +15 lines =@@
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
+ class A {
 +    a;
-+}
+ }
  exports.default = A;
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class B extends A {
-+}
- new B().a.toExponential();
+ class B extends A {
+@@= skipped -8, +9 lines =@@
  //// [b.js]
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
 -var a_1 = require("./a");
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(a_1.default));
 +const a_1 = require("./a");
-+class C extends a_1.default {
-+}
+ class C extends a_1.default {
+ }
  new C().a.toExponential();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultClassAndValue.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultClassAndValue.js.diff
deleted file mode 100644
index ffcdbfbb9b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultClassAndValue.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.exportDefaultClassAndValue.js
-+++ new.exportDefaultClassAndValue.js
-@@= skipped -8, +8 lines =@@
- //// [exportDefaultClassAndValue.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var foo = 1;
-+const foo = 1;
- exports.default = foo;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.default = Foo;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultClassInNamespace.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultClassInNamespace.js.diff
index 56fce75156..d19bd1bec2 100644
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultClassInNamespace.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportDefaultClassInNamespace.js.diff
@@ -4,23 +4,15 @@
  //// [exportDefaultClassInNamespace.js]
  var ns_class;
  (function (ns_class) {
--    var default_1 = /** @class */ (function () {
--        function default_1() {
--        }
--        return default_1;
--    }());
--    ns_class.default_1 = default_1;
+-    class default_1 {
 +    class {
-+    }
+     }
+-    ns_class.default_1 = default_1;
  })(ns_class || (ns_class = {}));
  var ns_abstract_class;
  (function (ns_abstract_class) {
--    var default_2 = /** @class */ (function () {
--        function default_2() {
--        }
--        return default_2;
--    }());
--    ns_abstract_class.default_2 = default_2;
+-    class default_2 {
 +    class {
-+    }
+     }
+-    ns_abstract_class.default_2 = default_2;
  })(ns_abstract_class || (ns_abstract_class = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultFunctionInNamespace.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultFunctionInNamespace.js.diff
index e5c84d4391..67251ef572 100644
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultFunctionInNamespace.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportDefaultFunctionInNamespace.js.diff
@@ -12,33 +12,6 @@
 -        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
--};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
 -};
  var ns_function;
  (function (ns_function) {
@@ -49,9 +22,7 @@
  var ns_async_function;
  (function (ns_async_function) {
 -    default function () {
--        return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
--            return [2 /*return*/];
--        }); });
+-        return __awaiter(this, void 0, void 0, function* () { });
 -    }
 -    ns_async_function.default_2 = default_2;
 +    async function () { }
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultInterfaceClassAndValue.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultInterfaceClassAndValue.js.diff
deleted file mode 100644
index 3dfc37ceca..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultInterfaceClassAndValue.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.exportDefaultInterfaceClassAndValue.js
-+++ new.exportDefaultInterfaceClassAndValue.js
-@@= skipped -9, +9 lines =@@
- //// [exportDefaultInterfaceClassAndValue.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var foo = 1;
-+const foo = 1;
- exports.default = foo;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.default = Foo;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultParenthesize.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultParenthesize.js.diff
deleted file mode 100644
index 8ff800fffd..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultParenthesize.js.diff
+++ /dev/null
@@ -1,68 +0,0 @@
---- old.exportDefaultParenthesize.js
-+++ new.exportDefaultParenthesize.js
-@@= skipped -36, +36 lines =@@
-
-
- //// [commalist.js]
--var _a;
--export default (_a = {},
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a['foo' + ''] = 42,
--    _a);
-+export default {
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+    ['foo' + '']: 42,
-+};
- //// [comma.js]
--var _a;
--export default (_a = {},
--    _a['foo'] = 42,
--    _a);
-+export default {
-+    ['foo']: 42
-+};
- //// [functionexpression.js]
--export default (function () { return 42; });
-+export default () => 42;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultProperty.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultProperty.js.diff
index c47559b93f..94bf307b34 100644
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportDefaultProperty.js.diff
@@ -1,37 +1,19 @@
 --- old.exportDefaultProperty.js
 +++ new.exportDefaultProperty.js
-@@= skipped -43, +43 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
- var A;
- (function (A) {
--    var B = /** @class */ (function () {
--        function B(b) {
--        }
--        return B;
--    }());
-+    class B {
-+        constructor(b) { }
-+    }
-     A.B = B;
-     (function (B) {
-         B.b = 0;
-@@= skipped -19, +17 lines =@@
+@@= skipped -60, +60 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  /// 
 -var foobar_1 = require("foobar");
 -var X = foobar_1.default.X;
 -var foobarx_1 = require("foobarx");
--var x = X;
--var x2 = foobarx_1.default;
--var a_1 = require("./a");
--var b = new a_1.default(a_1.default.b);
--var b_1 = require("./b");
 +const foobar_1 = require("foobar");
 +const foobarx_1 = require("foobarx");
-+const x = X;
-+const x2 = foobarx_1.default;
+ const x = X;
+ const x2 = foobarx_1.default;
+-var a_1 = require("./a");
 +const a_1 = require("./a");
-+const b = new a_1.default(a_1.default.b);
+ const b = new a_1.default(a_1.default.b);
+-var b_1 = require("./b");
 +const b_1 = require("./b");
  b_1.default + 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultProperty2.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultProperty2.js.diff
index d9be98bdbf..5fa7c36278 100644
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultProperty2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportDefaultProperty2.js.diff
@@ -1,22 +1,15 @@
 --- old.exportDefaultProperty2.js
 +++ new.exportDefaultProperty2.js
-@@= skipped -17, +17 lines =@@
- //// [a.js]
+@@= skipped -18, +18 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    static B;
-+}
+ }
  exports.default = C.B;
  //// [b.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
 -var a_1 = require("./a");
--var x = { c: a_1.default };
 +const a_1 = require("./a");
-+const x = { c: a_1.default };
\ No newline at end of file
+ const x = { c: a_1.default };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultQualifiedNameNoError.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultQualifiedNameNoError.js.diff
index 74d8fb8eab..f804de7c97 100644
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultQualifiedNameNoError.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportDefaultQualifiedNameNoError.js.diff
@@ -4,12 +4,12 @@
  //// [code.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
--var C = /** @class */ (function () {
--    function C() {
+-let C = (() => {
+-    class C {
 -    }
 -    C.x = 0;
 -    return C;
--}());
+-})();
 +class C {
 +    static x = 0;
 +}
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultTypeAndClass.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultTypeAndClass.js.diff
deleted file mode 100644
index 2a92bd9ae6..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultTypeAndClass.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.exportDefaultTypeAndClass.js
-+++ new.exportDefaultTypeAndClass.js
-@@= skipped -8, +8 lines =@@
- //// [exportDefaultTypeAndClass.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.default = Foo;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportDefaultTypeClassAndValue.js.diff b/testdata/baselines/reference/submodule/compiler/exportDefaultTypeClassAndValue.js.diff
deleted file mode 100644
index 92cf2a530e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportDefaultTypeClassAndValue.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.exportDefaultTypeClassAndValue.js
-+++ new.exportDefaultTypeClassAndValue.js
-@@= skipped -10, +10 lines =@@
- //// [exportDefaultTypeClassAndValue.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var foo = 1;
-+const foo = 1;
- exports.default = foo;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.default = Foo;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=amd,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=amd,target=es5).js.diff
index 7658278340..c30d046ef8 100644
--- a/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=amd,target=es5).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=amd,target=es5).js.diff
@@ -8,7 +8,7 @@
 -    "use strict";
 -    var _a;
 -    Object.defineProperty(exports, "__esModule", { value: true });
--    exports._b = _a = [];
+-    _a = [];
 -});
 +"use strict";
 +Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=commonjs,target=es5).js.diff
index 94c42b85a4..7cd9ae9902 100644
--- a/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=commonjs,target=es5).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=commonjs,target=es5).js.diff
@@ -6,5 +6,5 @@
  "use strict";
 -var _a;
  Object.defineProperty(exports, "__esModule", { value: true });
--exports._b = _a = [];
+-_a = [];
 +[] = [];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=es2015,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=es2015,target=es5).js.diff
deleted file mode 100644
index 7b5fce3922..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=es2015,target=es5).js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.exportEmptyArrayBindingPattern(module=es2015,target=es5).js
-+++ new.exportEmptyArrayBindingPattern(module=es2015,target=es5).js
-@@= skipped -3, +3 lines =@@
- export const [] = [];
-
- //// [exportEmptyArrayBindingPattern.js]
--var _a;
--export var _b = _a = [];
-+export const [] = [];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=esnext,target=es5).js.diff
deleted file mode 100644
index 3d38555a8f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=esnext,target=es5).js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.exportEmptyArrayBindingPattern(module=esnext,target=es5).js
-+++ new.exportEmptyArrayBindingPattern(module=esnext,target=es5).js
-@@= skipped -3, +3 lines =@@
- export const [] = [];
-
- //// [exportEmptyArrayBindingPattern.js]
--var _a;
--export var _b = _a = [];
-+export const [] = [];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=system,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=system,target=es5).js.diff
index b31283529b..9adaf5d08f 100644
--- a/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=system,target=es5).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportEmptyArrayBindingPattern(module=system,target=es5).js.diff
@@ -6,12 +6,12 @@
  //// [exportEmptyArrayBindingPattern.js]
 -System.register([], function (exports_1, context_1) {
 -    "use strict";
--    var _a, _b;
+-    var _a;
 -    var __moduleName = context_1 && context_1.id;
 -    return {
 -        setters: [],
 -        execute: function () {
--            exports_1("_b", _b = _a = []);
+-            _a = [];
 -        }
 -    };
 -});
diff --git a/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=amd,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=amd,target=es5).js.diff
index 51f96fd991..0966a5e766 100644
--- a/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=amd,target=es5).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=amd,target=es5).js.diff
@@ -8,7 +8,7 @@
 -    "use strict";
 -    var _a;
 -    Object.defineProperty(exports, "__esModule", { value: true });
--    exports._b = _a = {};
+-    _a = {};
 -});
 +"use strict";
 +Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=commonjs,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=commonjs,target=es5).js.diff
index daca748a76..c2493909c9 100644
--- a/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=commonjs,target=es5).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=commonjs,target=es5).js.diff
@@ -6,5 +6,5 @@
  "use strict";
 -var _a;
  Object.defineProperty(exports, "__esModule", { value: true });
--exports._b = _a = {};
+-_a = {};
 +({} = {});
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=es2015,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=es2015,target=es5).js.diff
deleted file mode 100644
index b96d248765..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=es2015,target=es5).js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.exportEmptyObjectBindingPattern(module=es2015,target=es5).js
-+++ new.exportEmptyObjectBindingPattern(module=es2015,target=es5).js
-@@= skipped -3, +3 lines =@@
- export const {} = {};
-
- //// [exportEmptyObjectBindingPattern.js]
--var _a;
--export var _b = _a = {};
-+export const {} = {};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=esnext,target=es5).js.diff
deleted file mode 100644
index 2d2de9ee0e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=esnext,target=es5).js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.exportEmptyObjectBindingPattern(module=esnext,target=es5).js
-+++ new.exportEmptyObjectBindingPattern(module=esnext,target=es5).js
-@@= skipped -3, +3 lines =@@
- export const {} = {};
-
- //// [exportEmptyObjectBindingPattern.js]
--var _a;
--export var _b = _a = {};
-+export const {} = {};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=system,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=system,target=es5).js.diff
index 5b64ebec54..93985f1655 100644
--- a/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=system,target=es5).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportEmptyObjectBindingPattern(module=system,target=es5).js.diff
@@ -6,12 +6,12 @@
  //// [exportEmptyObjectBindingPattern.js]
 -System.register([], function (exports_1, context_1) {
 -    "use strict";
--    var _a, _b;
+-    var _a;
 -    var __moduleName = context_1 && context_1.id;
 -    return {
 -        setters: [],
 -        execute: function () {
--            exports_1("_b", _b = _a = {});
+-            _a = {};
 -        }
 -    };
 -});
diff --git a/testdata/baselines/reference/submodule/compiler/exportEqualsAmd.js.diff b/testdata/baselines/reference/submodule/compiler/exportEqualsAmd.js.diff
index 1954ae48e5..a35e55efc0 100644
--- a/testdata/baselines/reference/submodule/compiler/exportEqualsAmd.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportEqualsAmd.js.diff
@@ -6,8 +6,7 @@
  //// [exportEqualsAmd.js]
 -define(["require", "exports"], function (require, exports) {
 -    "use strict";
--    var _a;
--    return (_a = {}, _a["hi"] = "there", _a);
+-    return { ["hi"]: "there" };
 -});
 +"use strict";
 +module.exports = { ["hi"]: "there" };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEqualsCommonJs.js.diff b/testdata/baselines/reference/submodule/compiler/exportEqualsCommonJs.js.diff
deleted file mode 100644
index 1a1b490f26..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportEqualsCommonJs.js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.exportEqualsCommonJs.js
-+++ new.exportEqualsCommonJs.js
-@@= skipped -4, +4 lines =@@
-
- //// [exportEqualsCommonJs.js]
- "use strict";
--var _a;
--module.exports = (_a = {}, _a["hi"] = "there", _a);
-+module.exports = { ["hi"]: "there" };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEqualsProperty.js.diff b/testdata/baselines/reference/submodule/compiler/exportEqualsProperty.js.diff
index 534c5ac6d0..8e802fff75 100644
--- a/testdata/baselines/reference/submodule/compiler/exportEqualsProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportEqualsProperty.js.diff
@@ -1,36 +1,18 @@
 --- old.exportEqualsProperty.js
 +++ new.exportEqualsProperty.js
-@@= skipped -41, +41 lines =@@
- "use strict";
- var A;
- (function (A) {
--    var B = /** @class */ (function () {
--        function B(b) {
--        }
--        return B;
--    }());
-+    class B {
-+        constructor(b) { }
-+    }
-     A.B = B;
-     (function (B) {
-         B.b = 0;
-@@= skipped -18, +16 lines =@@
+@@= skipped -57, +57 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  /// 
 -var foobar_1 = require("foobar");
 -var X2 = require("foobarx");
--var x = foobar_1.X;
--var x2 = X2;
--var B = require("./a");
--var b = new B(B.b);
--var fooLength = require("./b");
 +const foobar_1 = require("foobar");
 +const X2 = require("foobarx");
-+const x = foobar_1.X;
-+const x2 = X2;
+ const x = foobar_1.X;
+ const x2 = X2;
+-var B = require("./a");
 +const B = require("./a");
-+const b = new B(B.b);
+ const b = new B(B.b);
+-var fooLength = require("./b");
 +const fooLength = require("./b");
  fooLength + 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEqualsProperty2.js.diff b/testdata/baselines/reference/submodule/compiler/exportEqualsProperty2.js.diff
index 959601fbbc..8c18c82539 100644
--- a/testdata/baselines/reference/submodule/compiler/exportEqualsProperty2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportEqualsProperty2.js.diff
@@ -1,22 +1,15 @@
 --- old.exportEqualsProperty2.js
 +++ new.exportEqualsProperty2.js
-@@= skipped -16, +16 lines =@@
-
+@@= skipped -17, +17 lines =@@
  //// [a.js]
  "use strict";
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    static B;
-+}
+ }
  module.exports = C.B;
  //// [b.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
 -var B = require("./a");
--var x = { c: B };
 +const B = require("./a");
-+const x = { c: B };
\ No newline at end of file
+ const x = { c: B };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportEqualsUmd.js.diff b/testdata/baselines/reference/submodule/compiler/exportEqualsUmd.js.diff
index 96b3295f05..2cd5e665c2 100644
--- a/testdata/baselines/reference/submodule/compiler/exportEqualsUmd.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportEqualsUmd.js.diff
@@ -14,8 +14,7 @@
 -    }
 -})(function (require, exports) {
 -    "use strict";
--    var _a;
--    return (_a = {}, _a["hi"] = "there", _a);
+-    return { ["hi"]: "there" };
 -});
 +"use strict";
 +module.exports = { ["hi"]: "there" };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportImport.js.diff b/testdata/baselines/reference/submodule/compiler/exportImport.js.diff
index 3578035a48..5faaa66b68 100644
--- a/testdata/baselines/reference/submodule/compiler/exportImport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportImport.js.diff
@@ -6,12 +6,11 @@
  //// [w1.js]
 -define(["require", "exports"], function (require, exports) {
 -    "use strict";
--    var Widget1 = /** @class */ (function () {
--        function Widget1() {
+-    class Widget1 {
+-        constructor() {
 -            this.name = 'one';
 -        }
--        return Widget1;
--    }());
+-    }
 -    return Widget1;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/exportImportAndClodule.js.diff b/testdata/baselines/reference/submodule/compiler/exportImportAndClodule.js.diff
index 279ad63d72..7e1ebb6309 100644
--- a/testdata/baselines/reference/submodule/compiler/exportImportAndClodule.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportImportAndClodule.js.diff
@@ -1,19 +1,10 @@
 --- old.exportImportAndClodule.js
 +++ new.exportImportAndClodule.js
-@@= skipped -23, +23 lines =@@
- //// [exportImportAndClodule.js]
+@@= skipped -24, +24 lines =@@
  var K;
  (function (K) {
--    var L = /** @class */ (function () {
--        function L(name) {
-+    class L {
+     class L {
 +        name;
-+        constructor(name) {
+         constructor(name) {
              this.name = name;
-         }
--        return L;
--    }());
-+    }
-     K.L = L;
-     (function (L) {
-         L.y = 12;
\ No newline at end of file
+         }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportImportCanSubstituteConstEnumForValue.js.diff b/testdata/baselines/reference/submodule/compiler/exportImportCanSubstituteConstEnumForValue.js.diff
index e617d4c331..dfa5fdacb1 100644
--- a/testdata/baselines/reference/submodule/compiler/exportImportCanSubstituteConstEnumForValue.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportImportCanSubstituteConstEnumForValue.js.diff
@@ -39,27 +39,20 @@
 -    var ViewModels;
 +    let ViewModels;
      (function (ViewModels) {
--        var SomeUsagesOfTheseConsts = /** @class */ (function () {
--            function SomeUsagesOfTheseConsts() {
 +        ViewModels.ReExportedEnum = Dialogs.DialogResult;
 +        /**
 +         * Not exported to show difference. No javascript is emmitted (as expected)
 +         */
 +        var DialogButtons = Dialogs.MessageBoxButtons;
 +        ViewModels.Callback = Dialogs.DialogResultCallback;
-+        class SomeUsagesOfTheseConsts {
-+            constructor() {
+         class SomeUsagesOfTheseConsts {
+             constructor() {
                  // these do get replaced by the const value
--                var value1 = 1 /* ReExportedEnum.Cancel */;
+-                const value1 = 1 /* ReExportedEnum.Cancel */;
 +                const value1 = ViewModels.ReExportedEnum.Cancel;
                  console.log(value1);
--                var value2 = 2 /* DialogButtons.OKCancel */;
+-                const value2 = 2 /* DialogButtons.OKCancel */;
 +                const value2 = DialogButtons.OKCancel;
                  console.log(value2);
              }
--            return SomeUsagesOfTheseConsts;
--        }());
-+        }
-         ViewModels.SomeUsagesOfTheseConsts = SomeUsagesOfTheseConsts;
-     })(ViewModels = MsPortalFx.ViewModels || (MsPortalFx.ViewModels = {}));
- })(MsPortalFx || (MsPortalFx = {}));
\ No newline at end of file
+         }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.js.diff b/testdata/baselines/reference/submodule/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.js.diff
deleted file mode 100644
index 922c153a45..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.exportInterfaceClassAndValueWithDuplicatesInImportList.js
-+++ new.exportInterfaceClassAndValueWithDuplicatesInImportList.js
-@@= skipped -11, +11 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Foo = exports.foo = void 0;
--var foo = 1;
-+const foo = 1;
- exports.foo = foo;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.Foo = Foo;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportObjectRest(module=es2015,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportObjectRest(module=es2015,target=es5).js.diff
index 67ae884b7c..d76b066c0f 100644
--- a/testdata/baselines/reference/submodule/compiler/exportObjectRest(module=es2015,target=es5).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportObjectRest(module=es2015,target=es5).js.diff
@@ -5,5 +5,5 @@
 
  //// [exportObjectRest.js]
 -var _a;
--export var x = (_a = { x: 'x', y: 'y' }, _a).x, rest = __rest(_a, ["x"]);
+-export const { x } = (_a = { x: 'x', y: 'y' }, _a), rest = __rest(_a, ["x"]);
 +export const { x, ...rest } = { x: 'x', y: 'y' };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportObjectRest(module=esnext,target=es5).js.diff b/testdata/baselines/reference/submodule/compiler/exportObjectRest(module=esnext,target=es5).js.diff
index 0a6f185bb4..fdeae6fac4 100644
--- a/testdata/baselines/reference/submodule/compiler/exportObjectRest(module=esnext,target=es5).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportObjectRest(module=esnext,target=es5).js.diff
@@ -5,5 +5,5 @@
 
  //// [exportObjectRest.js]
 -var _a;
--export var x = (_a = { x: 'x', y: 'y' }, _a).x, rest = __rest(_a, ["x"]);
+-export const { x } = (_a = { x: 'x', y: 'y' }, _a), rest = __rest(_a, ["x"]);
 +export const { x, ...rest } = { x: 'x', y: 'y' };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportPrivateType.js.diff b/testdata/baselines/reference/submodule/compiler/exportPrivateType.js.diff
index a29f11f599..610eb8a589 100644
--- a/testdata/baselines/reference/submodule/compiler/exportPrivateType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportPrivateType.js.diff
@@ -1,26 +1,11 @@
 --- old.exportPrivateType.js
 +++ new.exportPrivateType.js
-@@= skipped -34, +34 lines =@@
- //// [exportPrivateType.js]
+@@= skipped -35, +35 lines =@@
  var foo;
  (function (foo) {
--    var C1 = /** @class */ (function () {
--        function C1() {
--        }
--        return C1;
--    }());
--    var C2 = /** @class */ (function () {
--        function C2() {
--        }
--        C2.prototype.test = function () { return true; };
--        return C2;
--    }());
-+    class C1 {
+     class C1 {
 +        x;
 +        y;
-+    }
-+    class C2 {
-+        test() { return true; }
-+    }
- })(foo || (foo = {}));
- var y = foo.g; // Exported variable 'y' has or is using private type 'foo.C2'.
\ No newline at end of file
+     }
+     class C2 {
+         test() { return true; }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js.diff b/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js.diff
index 3613cda1ed..432060c372 100644
--- a/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportStarFromEmptyModule.js.diff
@@ -1,32 +1,19 @@
 --- old.exportStarFromEmptyModule.js
 +++ new.exportStarFromEmptyModule.js
-@@= skipped -25, +25 lines =@@
- "use strict";
+@@= skipped -26, +26 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.A = void 0;
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
+ class A {
 +    static r;
-+}
+ }
  exports.A = A;
  //// [exportStarFromEmptyModule_module2.js]
- // empty
-@@= skipped -28, +26 lines =@@
- exports.A = void 0;
+@@= skipped -25, +26 lines =@@
  __exportStar(require("./exportStarFromEmptyModule_module2"), exports);
  __exportStar(require("./exportStarFromEmptyModule_module1"), exports);
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
+ class A {
 +    static q;
-+}
+ }
  exports.A = A;
  //// [exportStarFromEmptyModule_module4.js]
  "use strict";
@@ -36,7 +23,7 @@
  var s;
  X.A.q;
  X.A.r; // Error
-@@= skipped -20, +18 lines =@@
+@@= skipped -16, +17 lines =@@
      static r: any;
  }
  //// [exportStarFromEmptyModule_module2.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/exportStarNotElided.js.diff b/testdata/baselines/reference/submodule/compiler/exportStarNotElided.js.diff
index f7893c825f..713223991b 100644
--- a/testdata/baselines/reference/submodule/compiler/exportStarNotElided.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportStarNotElided.js.diff
@@ -1,15 +1,6 @@
 --- old.exportStarNotElided.js
 +++ new.exportStarNotElided.js
-@@= skipped -16, +16 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.register = register;
--var r = [];
-+const r = [];
- function register(data) {
-     r.push(data);
- }
-@@= skipped -28, +28 lines =@@
+@@= skipped -44, +44 lines =@@
  //// [data1.js]
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/exportToString.js.diff b/testdata/baselines/reference/submodule/compiler/exportToString.js.diff
deleted file mode 100644
index 1083e4f81a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportToString.js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.exportToString.js
-+++ new.exportToString.js
-@@= skipped -8, +8 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.toString = void 0;
--var toString = 0;
-+const toString = 0;
- exports.toString = toString;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportVisibility.js.diff b/testdata/baselines/reference/submodule/compiler/exportVisibility.js.diff
deleted file mode 100644
index 1674709bf1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/exportVisibility.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.exportVisibility.js
-+++ new.exportVisibility.js
-@@= skipped -15, +15 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.foo = exports.Foo = void 0;
- exports.test = test;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- exports.Foo = Foo;
- exports.foo = new Foo();
- function test(foo) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/exportedBlockScopedDeclarations.js.diff b/testdata/baselines/reference/submodule/compiler/exportedBlockScopedDeclarations.js.diff
index e7980f668c..936f163296 100644
--- a/testdata/baselines/reference/submodule/compiler/exportedBlockScopedDeclarations.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportedBlockScopedDeclarations.js.diff
@@ -8,19 +8,19 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.bar1 = exports.bar = void 0;
--    var foo = foo; // compile error
+-    const foo = foo; // compile error
 -    exports.bar = exports.bar; // should be compile error
 -    function f() {
--        var bar = bar; // compile error
+-        const bar = bar; // compile error
 -    }
 -    var NS;
 -    (function (NS) {
 -        NS.bar = NS.bar; // should be compile error
 -    })(NS || (NS = {}));
--    var foo1 = foo1; // compile error
+-    let foo1 = foo1; // compile error
 -    exports.bar1 = exports.bar1; // should be compile error
 -    function f1() {
--        var bar1 = bar1; // compile error
+-        let bar1 = bar1; // compile error
 -    }
 -    var NS1;
 -    (function (NS1) {
diff --git a/testdata/baselines/reference/submodule/compiler/exportingContainingVisibleType.js.diff b/testdata/baselines/reference/submodule/compiler/exportingContainingVisibleType.js.diff
index 79b24854b2..cec4e1b09b 100644
--- a/testdata/baselines/reference/submodule/compiler/exportingContainingVisibleType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/exportingContainingVisibleType.js.diff
@@ -8,21 +8,11 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.x = void 0;
--    var Foo = /** @class */ (function () {
--        function Foo() {
+-    class Foo {
+-        get foo() {
+-            var i;
+-            return i; // Should be fine (previous bug report visibility error).
 -        }
--        Object.defineProperty(Foo.prototype, "foo", {
--            get: function () {
--                var i;
--                return i; // Should be fine (previous bug report visibility error).
--            },
--            enumerable: false,
--            configurable: true
--        });
--        return Foo;
--    }());
--    exports.x = 5;
--});
 +"use strict";
 +Object.defineProperty(exports, "__esModule", { value: true });
 +exports.x = void 0;
@@ -30,6 +20,8 @@
 +    get foo() {
 +        var i;
 +        return i; // Should be fine (previous bug report visibility error).
-+    }
+     }
+-    exports.x = 5;
+-});
 +}
 +exports.x = 5;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/expressionTypeNodeShouldError.js.diff b/testdata/baselines/reference/submodule/compiler/expressionTypeNodeShouldError.js.diff
deleted file mode 100644
index 82144a6764..0000000000
--- a/testdata/baselines/reference/submodule/compiler/expressionTypeNodeShouldError.js.diff
+++ /dev/null
@@ -1,59 +0,0 @@
---- old.expressionTypeNodeShouldError.js
-+++ new.expressionTypeNodeShouldError.js
-@@= skipped -47, +47 lines =@@
-
-
- //// [string.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function () {
--        var x;
-+class C {
-+    foo() {
-+        const x;
-         typeof (this.foo);
--    };
--    return C;
--}());
--var nodes = document.getElementsByTagName("li");
-+    }
-+}
-+const nodes = document.getElementsByTagName("li");
- typeof (nodes.item(0));
- //// [number.js]
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    C2.prototype.foo = function () {
--        var x;
-+class C2 {
-+    foo() {
-+        const x;
-         typeof (this.foo);
--    };
--    return C2;
--}());
--var nodes2 = document.getElementsByTagName("li");
-+    }
-+}
-+const nodes2 = document.getElementsByTagName("li");
- typeof (nodes.item(0));
- //// [boolean.js]
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    C3.prototype.foo = function () {
--        var x;
-+class C3 {
-+    foo() {
-+        const x;
-         typeof (this.foo);
--    };
--    return C3;
--}());
--var nodes3 = document.getElementsByTagName("li");
-+    }
-+}
-+const nodes3 = document.getElementsByTagName("li");
- typeof (nodes.item(0));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/expressionWithJSDocTypeArguments.js.diff b/testdata/baselines/reference/submodule/compiler/expressionWithJSDocTypeArguments.js.diff
index fc4c23d132..269ca2f526 100644
--- a/testdata/baselines/reference/submodule/compiler/expressionWithJSDocTypeArguments.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/expressionWithJSDocTypeArguments.js.diff
@@ -7,25 +7,21 @@
 -"use strict";
  // Repro from #51802
  function foo(x) { return x; }
--var Bar = /** @class */ (function () {
--    function Bar(x) {
-+class Bar {
+ class Bar {
 +    x;
-+    constructor(x) {
+     constructor(x) {
          this.x = x;
      }
--    return Bar;
--}());
-+}
+ }
  // Errors expected on all of the following
--var WhatFoo = foo;
--var HuhFoo = foo;
--var NopeFoo = foo;
--var ComeOnFoo = foo;
--var WhatBar = Bar;
--var HuhBar = Bar;
--var NopeBar = Bar;
--var ComeOnBar = Bar;
+-const WhatFoo = foo;
+-const HuhFoo = foo;
+-const NopeFoo = foo;
+-const ComeOnFoo = foo;
+-const WhatBar = Bar;
+-const HuhBar = Bar;
+-const NopeBar = Bar;
+-const ComeOnBar = Bar;
 +const WhatFoo = foo;
 +const HuhFoo = foo;
 +const NopeFoo = foo;
diff --git a/testdata/baselines/reference/submodule/compiler/expressionsForbiddenInParameterInitializers.js.diff b/testdata/baselines/reference/submodule/compiler/expressionsForbiddenInParameterInitializers.js.diff
index 14f8a041c6..2367d8dab0 100644
--- a/testdata/baselines/reference/submodule/compiler/expressionsForbiddenInParameterInitializers.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/expressionsForbiddenInParameterInitializers.js.diff
@@ -12,78 +12,14 @@
 -        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
--};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
 -};
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.foo = foo;
  exports.foo2 = foo2;
 -function foo(_a) {
--    return __awaiter(this, arguments, void 0, function (_b) {
--        var _c, foo, _d;
--        return __generator(this, function (_e) {
--            switch (_e.label) {
--                case 0:
--                    _c = _b.foo;
--                    if (!(_c === void 0)) return [3 /*break*/, 2];
--                    return [4 /*yield*/, Promise.resolve().then(function () { return require("./bar"); })];
--                case 1:
--                    _d = _e.sent();
--                    return [3 /*break*/, 3];
--                case 2:
--                    _d = _c;
--                    _e.label = 3;
--                case 3:
--                    foo = _d;
--                    return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, arguments, void 0, function* ({ foo = yield Promise.resolve().then(function () { return require("./bar"); }) }) {
 -    });
 +async function foo({ foo = await Promise.resolve().then(() => require("./bar")) }) {
  }
--function foo2(_a) {
--    var _b, foo, _c;
--    return __generator(this, function (_d) {
--        switch (_d.label) {
--            case 0:
--                _b = _a.foo;
--                if (!(_b === void 0)) return [3 /*break*/, 2];
--                return [4 /*yield*/, "a"];
--            case 1:
--                _c = _d.sent();
--                return [3 /*break*/, 3];
--            case 2:
--                _c = _b;
--                _d.label = 3;
--            case 3:
--                foo = _c;
--                return [2 /*return*/];
--        }
--    });
-+function* foo2({ foo = yield "a" }) {
+ function* foo2({ foo = yield "a" }) {
  }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extBaseClass1.js.diff b/testdata/baselines/reference/submodule/compiler/extBaseClass1.js.diff
index fe137b0f97..58736232a0 100644
--- a/testdata/baselines/reference/submodule/compiler/extBaseClass1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/extBaseClass1.js.diff
@@ -1,69 +1,22 @@
 --- old.extBaseClass1.js
 +++ new.extBaseClass1.js
-@@= skipped -21, +21 lines =@@
-
-
- //// [extBaseClass1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
+@@= skipped -24, +24 lines =@@
  var M;
  (function (M) {
--    var B = /** @class */ (function () {
--        function B() {
+     class B {
+-        constructor() {
 -            this.x = 10;
 -        }
--        return B;
--    }());
-+    class B {
 +        x = 10;
-+    }
+     }
      M.B = B;
--    var C = /** @class */ (function (_super) {
--        __extends(C, _super);
--        function C() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return C;
--    }(B));
-+    class C extends B {
-+    }
+     class C extends B {
+@@= skipped -10, +8 lines =@@
      M.C = C;
  })(M || (M = {}));
  (function (M) {
--    var C2 = /** @class */ (function (_super) {
--        __extends(C2, _super);
--        function C2() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return C2;
--    }(M.B));
+-    class C2 extends M.B {
 +    class C2 extends B {
-+    }
+     }
      M.C2 = C2;
- })(M || (M = {}));
- var N;
- (function (N) {
--    var C3 = /** @class */ (function (_super) {
--        __extends(C3, _super);
--        function C3() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return C3;
--    }(M.B));
-+    class C3 extends M.B {
-+    }
-     N.C3 = C3;
- })(N || (N = {}));
\ No newline at end of file
+ })(M || (M = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extBaseClass2.js.diff b/testdata/baselines/reference/submodule/compiler/extBaseClass2.js.diff
deleted file mode 100644
index 3c9560d8f3..0000000000
--- a/testdata/baselines/reference/submodule/compiler/extBaseClass2.js.diff
+++ /dev/null
@@ -1,47 +0,0 @@
---- old.extBaseClass2.js
-+++ new.extBaseClass2.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [extBaseClass2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- var N;
- (function (N) {
--    var C4 = /** @class */ (function (_super) {
--        __extends(C4, _super);
--        function C4() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return C4;
--    }(M.B));
-+    class C4 extends M.B {
-+    }
-     N.C4 = C4;
- })(N || (N = {}));
- var M;
- (function (M) {
--    var C5 = /** @class */ (function (_super) {
--        __extends(C5, _super);
--        function C5() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return C5;
--    }(B));
-+    class C5 extends B {
-+    }
-     M.C5 = C5;
- })(M || (M = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendAndImplementTheSameBaseType.js.diff b/testdata/baselines/reference/submodule/compiler/extendAndImplementTheSameBaseType.js.diff
index 3ec02d2e68..727d0136ee 100644
--- a/testdata/baselines/reference/submodule/compiler/extendAndImplementTheSameBaseType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/extendAndImplementTheSameBaseType.js.diff
@@ -1,45 +1,10 @@
 --- old.extendAndImplementTheSameBaseType.js
 +++ new.extendAndImplementTheSameBaseType.js
-@@= skipped -15, +15 lines =@@
- d.foo;
+@@= skipped -16, +16 lines =@@
 
  //// [extendAndImplementTheSameBaseType.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.bar = function () { };
--    return C;
--}());
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    D.prototype.baz = function () { };
--    return D;
--}(C));
-+class C {
+ class C {
 +    foo;
-+    bar() { }
-+}
-+class D extends C {
-+    baz() { }
-+}
- var c;
- var d = new D();
- d.bar();
\ No newline at end of file
+     bar() { }
+ }
+ class D extends C {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendAndImplementTheSameBaseType2.js.diff b/testdata/baselines/reference/submodule/compiler/extendAndImplementTheSameBaseType2.js.diff
index b0353c9cfc..21a9efaaec 100644
--- a/testdata/baselines/reference/submodule/compiler/extendAndImplementTheSameBaseType2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/extendAndImplementTheSameBaseType2.js.diff
@@ -1,47 +1,10 @@
 --- old.extendAndImplementTheSameBaseType2.js
 +++ new.extendAndImplementTheSameBaseType2.js
-@@= skipped -18, +18 lines =@@
- var r4: number = d.bar();
+@@= skipped -19, +19 lines =@@
 
  //// [extendAndImplementTheSameBaseType2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.bar = function () {
-+class C {
+ class C {
 +    foo;
-+    bar() {
+     bar() {
          return null;
--    };
--    return C;
--}());
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        return _super !== null && _super.apply(this, arguments) || this;
-     }
--    D.prototype.baz = function () { };
--    return D;
--}(C));
-+}
-+class D extends C {
-+    baz() { }
-+}
- var d = new D();
- var r = d.foo;
- var r2 = d.foo;
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendBaseClassBeforeItsDeclared.js.diff b/testdata/baselines/reference/submodule/compiler/extendBaseClassBeforeItsDeclared.js.diff
index 4e4d43e091..e96422730d 100644
--- a/testdata/baselines/reference/submodule/compiler/extendBaseClassBeforeItsDeclared.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/extendBaseClassBeforeItsDeclared.js.diff
@@ -1,40 +1,10 @@
 --- old.extendBaseClassBeforeItsDeclared.js
 +++ new.extendBaseClassBeforeItsDeclared.js
-@@= skipped -5, +5 lines =@@
- class base { constructor (public n: number) { } }
-
- //// [extendBaseClassBeforeItsDeclared.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var derived = /** @class */ (function (_super) {
--    __extends(derived, _super);
--    function derived() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return derived;
--}(base));
--var base = /** @class */ (function () {
--    function base(n) {
-+class derived extends base {
-+}
-+class base {
+@@= skipped -8, +8 lines =@@
+ class derived extends base {
+ }
+ class base {
 +    n;
-+    constructor(n) {
+     constructor(n) {
          this.n = n;
-     }
--    return base;
--}());
-+}
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendConstructSignatureInInterface.js.diff b/testdata/baselines/reference/submodule/compiler/extendConstructSignatureInInterface.js.diff
deleted file mode 100644
index 9923a9aebc..0000000000
--- a/testdata/baselines/reference/submodule/compiler/extendConstructSignatureInInterface.js.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- old.extendConstructSignatureInInterface.js
-+++ new.extendConstructSignatureInInterface.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [extendConstructSignatureInInterface.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- var CStatic;
--var E = /** @class */ (function (_super) {
--    __extends(E, _super);
--    function E() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return E;
--}(CStatic));
-+class E extends CStatic {
-+}
- var e = new E(1);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendFromAny.js.diff b/testdata/baselines/reference/submodule/compiler/extendFromAny.js.diff
index dbc3bed1cb..7668d6323a 100644
--- a/testdata/baselines/reference/submodule/compiler/extendFromAny.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/extendFromAny.js.diff
@@ -4,37 +4,20 @@
 
 
  //// [extendFromAny.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        var _this = _super !== null && _super.apply(this, arguments) || this;
--        _this.known = 1;
--        return _this;
+-let C = (() => {
+-    class C extends Base {
+-        constructor() {
+-            super(...arguments);
+-            this.known = 1;
+-        }
 -    }
 -    C.sknown = 2;
 -    return C;
--}(Base));
--var c = new C();
+-})();
 +class C extends Base {
 +    known = 1;
 +    static sknown = 2;
 +}
-+let c = new C();
+ let c = new C();
  c.known.length; // error, 'known' has no 'length' property
- C.sknown.length; // error, 'sknown' has no 'length' property
- c.unknown.length; // ok, unknown: any
\ No newline at end of file
+ C.sknown.length; // error, 'sknown' has no 'length' property
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendNonClassSymbol1.js.diff b/testdata/baselines/reference/submodule/compiler/extendNonClassSymbol1.js.diff
deleted file mode 100644
index 52e885c94e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/extendNonClassSymbol1.js.diff
+++ /dev/null
@@ -1,40 +0,0 @@
---- old.extendNonClassSymbol1.js
-+++ new.extendNonClassSymbol1.js
-@@= skipped -5, +5 lines =@@
- class C extends x { } // error, could not find symbol xs
-
- //// [extendNonClassSymbol1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.foo = function () { };
--    return A;
--}());
-+class A {
-+    foo() { }
-+}
- var x = A;
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(x)); // error, could not find symbol xs
-+class C extends x {
-+} // error, could not find symbol xs
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendNonClassSymbol2.js.diff b/testdata/baselines/reference/submodule/compiler/extendNonClassSymbol2.js.diff
deleted file mode 100644
index d47f59cebb..0000000000
--- a/testdata/baselines/reference/submodule/compiler/extendNonClassSymbol2.js.diff
+++ /dev/null
@@ -1,34 +0,0 @@
---- old.extendNonClassSymbol2.js
-+++ new.extendNonClassSymbol2.js
-@@= skipped -7, +7 lines =@@
- class C extends Foo {} // error, could not find symbol Foo
-
- //// [extendNonClassSymbol2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- function Foo() {
-     this.x = 1;
- }
- var x = new Foo(); // legal, considered a constructor function
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(Foo)); // error, could not find symbol Foo
-+class C extends Foo {
-+} // error, could not find symbol Foo
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendPrivateConstructorClass.js.diff b/testdata/baselines/reference/submodule/compiler/extendPrivateConstructorClass.js.diff
deleted file mode 100644
index b2907d05b8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/extendPrivateConstructorClass.js.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- old.extendPrivateConstructorClass.js
-+++ new.extendPrivateConstructorClass.js
-@@= skipped -11, +11 lines =@@
-
-
- //// [extendPrivateConstructorClass.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(abc.XYZ));
-+class C extends abc.XYZ {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendingClassFromAliasAndUsageInIndexer.js.diff b/testdata/baselines/reference/submodule/compiler/extendingClassFromAliasAndUsageInIndexer.js.diff
index 400cdb1837..a59c81ff2f 100644
--- a/testdata/baselines/reference/submodule/compiler/extendingClassFromAliasAndUsageInIndexer.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/extendingClassFromAliasAndUsageInIndexer.js.diff
@@ -1,79 +1,29 @@
 --- old.extendingClassFromAliasAndUsageInIndexer.js
 +++ new.extendingClassFromAliasAndUsageInIndexer.js
-@@= skipped -35, +35 lines =@@
- "use strict";
+@@= skipped -36, +36 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Model = void 0;
--var Model = /** @class */ (function () {
--    function Model() {
--    }
--    return Model;
--}());
-+class Model {
+ class Model {
 +    someData;
-+}
+ }
  exports.Model = Model;
  //// [extendingClassFromAliasAndUsageInIndexer_moduleA.js]
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.VisualizationModel = void 0;
 -var Backbone = require("./extendingClassFromAliasAndUsageInIndexer_backbone");
--var VisualizationModel = /** @class */ (function (_super) {
--    __extends(VisualizationModel, _super);
--    function VisualizationModel() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return VisualizationModel;
--}(Backbone.Model));
 +const Backbone = require("./extendingClassFromAliasAndUsageInIndexer_backbone");
-+class VisualizationModel extends Backbone.Model {
-+}
+ class VisualizationModel extends Backbone.Model {
+ }
  exports.VisualizationModel = VisualizationModel;
- //// [extendingClassFromAliasAndUsageInIndexer_moduleB.js]
+@@= skipped -14, +15 lines =@@
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.VisualizationModel = void 0;
 -var Backbone = require("./extendingClassFromAliasAndUsageInIndexer_backbone");
--var VisualizationModel = /** @class */ (function (_super) {
--    __extends(VisualizationModel, _super);
--    function VisualizationModel() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return VisualizationModel;
--}(Backbone.Model));
 +const Backbone = require("./extendingClassFromAliasAndUsageInIndexer_backbone");
-+class VisualizationModel extends Backbone.Model {
-+}
+ class VisualizationModel extends Backbone.Model {
+ }
  exports.VisualizationModel = VisualizationModel;
  //// [extendingClassFromAliasAndUsageInIndexer_main.js]
  "use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/extendsClauseAlreadySeen.js.diff b/testdata/baselines/reference/submodule/compiler/extendsClauseAlreadySeen.js.diff
deleted file mode 100644
index ab7b4bcb85..0000000000
--- a/testdata/baselines/reference/submodule/compiler/extendsClauseAlreadySeen.js.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- old.extendsClauseAlreadySeen.js
-+++ new.extendsClauseAlreadySeen.js
-@@= skipped -8, +8 lines =@@
- }
-
- //// [extendsClauseAlreadySeen.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    D.prototype.baz = function () { };
--    return D;
--}(C));
-+class C {
-+}
-+class D extends C extends C {
-+    baz() { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendsClauseAlreadySeen2.js.diff b/testdata/baselines/reference/submodule/compiler/extendsClauseAlreadySeen2.js.diff
deleted file mode 100644
index 0d3d2a2c38..0000000000
--- a/testdata/baselines/reference/submodule/compiler/extendsClauseAlreadySeen2.js.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- old.extendsClauseAlreadySeen2.js
-+++ new.extendsClauseAlreadySeen2.js
-@@= skipped -8, +8 lines =@@
- }
-
- //// [extendsClauseAlreadySeen2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    D.prototype.baz = function () { };
--    return D;
--}(C));
-+class C {
-+}
-+class D extends C extends C {
-+    baz() { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/extendsUntypedModule.js.diff b/testdata/baselines/reference/submodule/compiler/extendsUntypedModule.js.diff
index 0eb86c075c..d056bffce9 100644
--- a/testdata/baselines/reference/submodule/compiler/extendsUntypedModule.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/extendsUntypedModule.js.diff
@@ -1,35 +1,11 @@
 --- old.extendsUntypedModule.js
 +++ new.extendsUntypedModule.js
-@@= skipped -13, +13 lines =@@
-
- //// [a.js]
+@@= skipped -15, +15 lines =@@
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.A = void 0;
 -var foo_1 = require("foo");
--var A = /** @class */ (function (_super) {
--    __extends(A, _super);
--    function A() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return A;
--}(foo_1.default));
 +const foo_1 = require("foo");
-+class A extends foo_1.default {
-+}
+ class A extends foo_1.default {
+ }
  exports.A = A;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/externModule.js.diff b/testdata/baselines/reference/submodule/compiler/externModule.js.diff
deleted file mode 100644
index aad019b3e5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/externModule.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.externModule.js
-+++ new.externModule.js
-@@= skipped -44, +44 lines =@@
- declare;
- module;
- {
--    var XDate = /** @class */ (function () {
--        function XDate() {
--        }
--        return XDate;
--    }());
--    export { XDate };
-+    export class XDate {
-+    }
- }
- var d = new XDate();
- d.getDay();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/externalModuleAssignToVar.js.diff b/testdata/baselines/reference/submodule/compiler/externalModuleAssignToVar.js.diff
index cac46db007..ebfeee4a4b 100644
--- a/testdata/baselines/reference/submodule/compiler/externalModuleAssignToVar.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/externalModuleAssignToVar.js.diff
@@ -8,31 +8,22 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.C = void 0;
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        return C;
--    }());
+-    class C {
+-    }
 -    exports.C = C;
 -});
 -//// [externalModuleAssignToVar_core_require2.js]
 -define(["require", "exports"], function (require, exports) {
 -    "use strict";
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        return C;
--    }());
+-    class C {
+-    }
 -    return C;
 -});
 -//// [externalModuleAssignToVar_ext.js]
 -define(["require", "exports"], function (require, exports) {
 -    "use strict";
--    var D = /** @class */ (function () {
--        function D() {
--        }
--        return D;
--    }());
+-    class D {
+-    }
 -    return D;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/externalModuleExportingGenericClass.js.diff b/testdata/baselines/reference/submodule/compiler/externalModuleExportingGenericClass.js.diff
index f9f2c92f98..33c84a2710 100644
--- a/testdata/baselines/reference/submodule/compiler/externalModuleExportingGenericClass.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/externalModuleExportingGenericClass.js.diff
@@ -1,17 +1,11 @@
 --- old.externalModuleExportingGenericClass.js
 +++ new.externalModuleExportingGenericClass.js
-@@= skipped -15, +15 lines =@@
-
+@@= skipped -16, +16 lines =@@
  //// [externalModuleExportingGenericClass_file0.js]
  "use strict";
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    foo;
-+}
+ }
  module.exports = C;
  //// [externalModuleExportingGenericClass_file1.js]
  "use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/externalModuleImmutableBindings.js.diff b/testdata/baselines/reference/submodule/compiler/externalModuleImmutableBindings.js.diff
index c630e05e71..e2cc255977 100644
--- a/testdata/baselines/reference/submodule/compiler/externalModuleImmutableBindings.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/externalModuleImmutableBindings.js.diff
@@ -8,47 +8,4 @@
 +const stuff = require("./f1");
  var n = 'baz';
  stuff.x = 0;
- stuff['x'] = 1;
-@@= skipped -19, +19 lines =@@
- (stuff['blah'])++;
- (stuff[n])++;
- for (stuff.x in []) { }
--for (var _i = 0, _a = []; _i < _a.length; _i++) {
--    stuff.x = _a[_i];
--}
-+for (stuff.x of []) { }
- for (stuff['x'] in []) { }
--for (var _b = 0, _c = []; _b < _c.length; _b++) {
--    stuff['x'] = _c[_b];
--}
-+for (stuff['x'] of []) { }
- for (stuff.blah in []) { }
--for (var _d = 0, _e = []; _d < _e.length; _d++) {
--    stuff.blah = _e[_d];
--}
-+for (stuff.blah of []) { }
- for (stuff[n] in []) { }
--for (var _f = 0, _g = []; _f < _g.length; _f++) {
--    stuff[n] = _g[_f];
--}
-+for (stuff[n] of []) { }
- for ((stuff.x) in []) { }
--for (var _h = 0, _j = []; _h < _j.length; _h++) {
--    (stuff.x) = _j[_h];
--}
-+for ((stuff.x) of []) { }
- for ((stuff['x']) in []) { }
--for (var _k = 0, _l = []; _k < _l.length; _k++) {
--    (stuff['x']) = _l[_k];
--}
-+for ((stuff['x']) of []) { }
- for ((stuff.blah) in []) { }
--for (var _m = 0, _o = []; _m < _o.length; _m++) {
--    (stuff.blah) = _o[_m];
--}
-+for ((stuff.blah) of []) { }
- for ((stuff[n]) in []) { }
--for (var _p = 0, _q = []; _p < _q.length; _p++) {
--    (stuff[n]) = _q[_p];
--}
-+for ((stuff[n]) of []) { }
\ No newline at end of file
+ stuff['x'] = 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/externalModuleQualification.js.diff b/testdata/baselines/reference/submodule/compiler/externalModuleQualification.js.diff
index fdb7a1cdc5..b070e19d13 100644
--- a/testdata/baselines/reference/submodule/compiler/externalModuleQualification.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/externalModuleQualification.js.diff
@@ -1,27 +1,10 @@
 --- old.externalModuleQualification.js
 +++ new.externalModuleQualification.js
-@@= skipped -17, +17 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -18, +18 lines =@@
  exports.DiffEditor = exports.ID = void 0;
  exports.ID = "test";
--var DiffEditor = /** @class */ (function () {
--    function DiffEditor(id) {
--        if (id === void 0) { id = exports.ID; }
-+class DiffEditor {
+ class DiffEditor {
 +    previousDiffAction;
-+    constructor(id = exports.ID) {
+     constructor(id = exports.ID) {
      }
--    return DiffEditor;
--}());
-+}
- exports.DiffEditor = DiffEditor;
--var NavigateAction = /** @class */ (function () {
--    function NavigateAction() {
-+class NavigateAction {
-+    f(editor) {
-     }
--    NavigateAction.prototype.f = function (editor) {
--    };
--    return NavigateAction;
--}());
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fallbackToBindingPatternForTypeInference.js.diff b/testdata/baselines/reference/submodule/compiler/fallbackToBindingPatternForTypeInference.js.diff
deleted file mode 100644
index 38390a36a1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/fallbackToBindingPatternForTypeInference.js.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- old.fallbackToBindingPatternForTypeInference.js
-+++ new.fallbackToBindingPatternForTypeInference.js
-@@= skipped -9, +9 lines =@@
-
-
- //// [fallbackToBindingPatternForTypeInference.js]
--trans(function (_a) {
--    var a = _a.a;
--    return a;
--});
--trans(function (_a) {
--    var b = _a[0], c = _a[1];
--    return 'foo';
--});
--trans(function (_a) {
--    var _b = _a.d, e = _b[0], f = _b[1];
--    return 'foo';
--});
--trans(function (_a) {
--    var g = _a[0].g, h = _a[1].h;
--    return 'foo';
--});
--trans(function (_a) {
--    var a = _a.a, _b = _a.b, b = _b === void 0 ? 10 : _b;
--    return a;
--});
-+trans(({ a }) => a);
-+trans(([b, c]) => 'foo');
-+trans(({ d: [e, f] }) => 'foo');
-+trans(([{ g }, { h }]) => 'foo');
-+trans(({ a, b = 10 }) => a);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fatArrowSelf.js.diff b/testdata/baselines/reference/submodule/compiler/fatArrowSelf.js.diff
index cc3c7426f2..f25d6019ef 100644
--- a/testdata/baselines/reference/submodule/compiler/fatArrowSelf.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/fatArrowSelf.js.diff
@@ -1,45 +1,10 @@
 --- old.fatArrowSelf.js
 +++ new.fatArrowSelf.js
-@@= skipped -28, +28 lines =@@
- //// [fatArrowSelf.js]
- var Events;
- (function (Events) {
--    var EventEmitter = /** @class */ (function () {
--        function EventEmitter() {
-+    class EventEmitter {
-+        addListener(type, listener) {
-         }
--        EventEmitter.prototype.addListener = function (type, listener) {
--        };
--        return EventEmitter;
--    }());
-+    }
-     Events.EventEmitter = EventEmitter;
- })(Events || (Events = {}));
+@@= skipped -37, +37 lines =@@
  var Consumer;
  (function (Consumer) {
--    var EventEmitterConsummer = /** @class */ (function () {
--        function EventEmitterConsummer(emitter) {
-+    class EventEmitterConsummer {
+     class EventEmitterConsummer {
 +        emitter;
-+        constructor(emitter) {
+         constructor(emitter) {
              this.emitter = emitter;
-         }
--        EventEmitterConsummer.prototype.register = function () {
--            var _this = this;
--            this.emitter.addListener('change', function (e) {
--                _this.changed();
-+        register() {
-+            this.emitter.addListener('change', (e) => {
-+                this.changed();
-             });
--        };
--        EventEmitterConsummer.prototype.changed = function () {
--        };
--        return EventEmitterConsummer;
--    }());
-+        }
-+        changed() {
-+        }
-+    }
- })(Consumer || (Consumer = {}));
\ No newline at end of file
+         }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fatarrowfunctions.js.diff b/testdata/baselines/reference/submodule/compiler/fatarrowfunctions.js.diff
deleted file mode 100644
index a94409e7c2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/fatarrowfunctions.js.diff
+++ /dev/null
@@ -1,51 +0,0 @@
---- old.fatarrowfunctions.js
-+++ new.fatarrowfunctions.js
-@@= skipped -49, +49 lines =@@
- function foo(x) {
-     return x();
- }
--foo(function (x, y, z) { return x + y + z; });
--foo(function (x, y, z) { return x + y + z; });
--foo(function (x, y, z) { return x + y + z; });
--foo(function (x, y, z) { return x + y + z; });
--foo(function (x, y, z) { return x + y + z; });
--foo(function () { return 0; });
--foo(function (x, y, z) { return x + y + z; });
--foo(function (x, y, z) { return x + y + z; });
--foo(function (x, y, z) { return x + y + z; });
--foo(function (x, y, z) { return x + y + z; });
--foo(function (x, y, z) { return x + y + z; });
--foo(function () { return 0; });
--foo((function (x) { return x; }));
--foo(function (x) { return x * x; });
--var y = function (x) { return x * x; };
--var z = function (x) { return x * x; };
--var w = function () { return 3; };
-+foo((x, y, z) => { return x + y + z; });
-+foo((x, y, z) => { return x + y + z; });
-+foo((x, y, z) => { return x + y + z; });
-+foo((x, y, z) => { return x + y + z; });
-+foo((x, y, z) => { return x + y + z; });
-+foo(() => { return 0; });
-+foo((x, y, z) => x + y + z);
-+foo((x, y, z) => x + y + z);
-+foo((x, y, z) => { return x + y + z; });
-+foo((x, y, z) => { return x + y + z; });
-+foo((x, y, z) => { return x + y + z; });
-+foo(() => { return 0; });
-+foo(((x) => x));
-+foo(x => x * x);
-+var y = x => x * x;
-+var z = (x) => x * x;
-+var w = () => 3;
- function ternaryTest(isWhile) {
-     var f = isWhile ? function (n) { return n > 0; } : function (n) { return n === 0; };
- }
- var messenger = {
-     message: "Hello World",
-     start: function () {
--        var _this = this;
--        setTimeout(function () { _this.message.toString(); }, 3000);
-+        setTimeout(() => { this.message.toString(); }, 3000);
-     }
- };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsErrors.js.diff b/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsErrors.js.diff
index c8c9a84c68..fe743429e8 100644
--- a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsErrors.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsErrors.js.diff
@@ -1,41 +1,11 @@
 --- old.fatarrowfunctionsErrors.js
 +++ new.fatarrowfunctionsErrors.js
-@@= skipped -14, +14 lines =@@
- var x4= (...a: any[]) { };
+@@= skipped -15, +15 lines =@@
 
  //// [fatarrowfunctionsErrors.js]
--foo(function () {
--    var Far = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        Far[_i] = arguments[_i];
--    }
--    return 0;
--});
+ foo((...Far) => { return 0; });
 -foo((1), { return: 0 });
--foo(function (x) { return x; });
--foo(function (x) {
--    if (x === void 0) { x = 0; }
--    return x;
--});
-+foo((...Far) => { return 0; });
 +foo((1), { return: 0, });
-+foo((x) => { return x; });
-+foo((x = 0) => { return x; });
- var y = x, number;
- x * x;
--false ? (function () { return null; }) : null;
-+false ? (() => null) : null;
- // missing fatarrow
--var x1 = function () { };
--var x2 = function (a) { };
--var x3 = function (a) { };
--var x4 = function () {
--    var a = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        a[_i] = arguments[_i];
--    }
--};
-+var x1 = () => { };
-+var x2 = (a) => { };
-+var x3 = (a) => { };
-+var x4 = (...a) => { };
\ No newline at end of file
+ foo((x) => { return x; });
+ foo((x = 0) => { return x; });
+ var y = x, number;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsInFunctionParameterDefaults.js.diff b/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsInFunctionParameterDefaults.js.diff
deleted file mode 100644
index 01a7bf87e3..0000000000
--- a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsInFunctionParameterDefaults.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.fatarrowfunctionsInFunctionParameterDefaults.js
-+++ new.fatarrowfunctionsInFunctionParameterDefaults.js
-@@= skipped -11, +11 lines =@@
-
-
- //// [fatarrowfunctionsInFunctionParameterDefaults.js]
--function fn(x, y) {
--    var _this = this;
--    if (x === void 0) { x = function () { return _this; }; }
--    if (y === void 0) { y = x(); }
-+function fn(x = () => this, y = x()) {
-     // should be 4
-     return y;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgs.js.diff b/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgs.js.diff
deleted file mode 100644
index 6879aba653..0000000000
--- a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgs.js.diff
+++ /dev/null
@@ -1,330 +0,0 @@
---- old.fatarrowfunctionsOptionalArgs.js
-+++ new.fatarrowfunctionsOptionalArgs.js
-@@= skipped -135, +135 lines =@@
- //// [fatarrowfunctionsOptionalArgs.js]
- // valid
- // no params
--(function () { return 1; });
--// one param, no type
--(function (arg) { return 2; });
--// one param, no type
--(function (arg) { return 2; });
-+() => 1;
-+// one param, no type
-+(arg) => 2;
-+// one param, no type
-+arg => 2;
- // one param, no type with default value
--(function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 3;
--});
-+(arg = 1) => 3;
- // one param, no type, optional
--(function (arg) { return 4; });
-+(arg) => 4;
- // typed param
--(function (arg) { return 5; });
-+(arg) => 5;
- // typed param with default value
--(function (arg) {
--    if (arg === void 0) { arg = 0; }
--    return 6;
--});
-+(arg = 0) => 6;
- // optional param
--(function (arg) { return 7; });
-+(arg) => 7;
- // var arg param
--(function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 8;
--});
-+(...arg) => 8;
- // multiple arguments
--(function (arg1, arg2) { return 12; });
--(function (arg1, arg2) {
--    if (arg1 === void 0) { arg1 = 1; }
--    if (arg2 === void 0) { arg2 = 3; }
--    return 13;
--});
--(function (arg1, arg2) { return 14; });
--(function (arg1, arg2) { return 15; });
--(function (arg1, arg2) {
--    if (arg1 === void 0) { arg1 = 0; }
--    if (arg2 === void 0) { arg2 = 1; }
--    return 16;
--});
--(function (arg1, arg2) { return 17; });
--(function (arg1) {
--    var arg2 = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        arg2[_i - 1] = arguments[_i];
--    }
--    return 18;
--});
--(function (arg1, arg2) { return 19; });
-+(arg1, arg2) => 12;
-+(arg1 = 1, arg2 = 3) => 13;
-+(arg1, arg2) => 14;
-+(arg1, arg2) => 15;
-+(arg1 = 0, arg2 = 1) => 16;
-+(arg1, arg2) => 17;
-+(arg1, ...arg2) => 18;
-+(arg1, arg2) => 19;
- // in paren
--(function () { return 21; });
--(function (arg) { return 22; });
--(function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 23;
--});
--(function (arg) { return 24; });
--(function (arg) { return 25; });
--(function (arg) {
--    if (arg === void 0) { arg = 0; }
--    return 26;
--});
--(function (arg) { return 27; });
--(function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 28;
--});
-+(() => 21);
-+((arg) => 22);
-+((arg = 1) => 23);
-+((arg) => 24);
-+((arg) => 25);
-+((arg = 0) => 26);
-+((arg) => 27);
-+((...arg) => 28);
- // in multiple paren
--((((function (arg) { return 32; }))));
-+(((((arg) => { return 32; }))));
- // in ternary exression
--false ? function () { return 41; } : null;
--false ? function (arg) { return 42; } : null;
--false ? function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 43;
--} : null;
--false ? function (arg) { return 44; } : null;
--false ? function (arg) { return 45; } : null;
--false ? function (arg) { return 46; } : null;
--false ? function (arg) {
--    if (arg === void 0) { arg = 0; }
--    return 47;
--} : null;
--false ? function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 48;
--} : null;
-+false ? () => 41 : null;
-+false ? (arg) => 42 : null;
-+false ? (arg = 1) => 43 : null;
-+false ? (arg) => 44 : null;
-+false ? (arg) => 45 : null;
-+false ? (arg) => 46 : null;
-+false ? (arg = 0) => 47 : null;
-+false ? (...arg) => 48 : null;
- // in ternary exression within paren
--false ? (function () { return 51; }) : null;
--false ? (function (arg) { return 52; }) : null;
--false ? (function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 53;
--}) : null;
--false ? (function (arg) { return 54; }) : null;
--false ? (function (arg) { return 55; }) : null;
--false ? (function (arg) { return 56; }) : null;
--false ? (function (arg) {
--    if (arg === void 0) { arg = 0; }
--    return 57;
--}) : null;
--false ? (function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 58;
--}) : null;
-+false ? (() => 51) : null;
-+false ? ((arg) => 52) : null;
-+false ? ((arg = 1) => 53) : null;
-+false ? ((arg) => 54) : null;
-+false ? ((arg) => 55) : null;
-+false ? ((arg) => 56) : null;
-+false ? ((arg = 0) => 57) : null;
-+false ? ((...arg) => 58) : null;
- // ternary exression's else clause
--false ? null : function () { return 61; };
--false ? null : function (arg) { return 62; };
--false ? null : function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 63;
--};
--false ? null : function (arg) { return 64; };
--false ? null : function (arg) { return 65; };
--false ? null : function (arg) { return 66; };
--false ? null : function (arg) {
--    if (arg === void 0) { arg = 0; }
--    return 67;
--};
--false ? null : function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 68;
--};
-+false ? null : () => 61;
-+false ? null : (arg) => 62;
-+false ? null : (arg = 1) => 63;
-+false ? null : (arg) => 64;
-+false ? null : (arg) => 65;
-+false ? null : (arg) => 66;
-+false ? null : (arg = 0) => 67;
-+false ? null : (...arg) => 68;
- // nested ternary expressions
--(function (a) { return a; }) ? function (b) { return b; } : function (c) { return c; };
-+((a) => { return a; }) ? (b) => { return b; } : (c) => { return c; };
- //multiple levels
--(function (a) { return a; });
--(function (b) { return function (c) { return 81; }; });
--(function (c) { return function (d) { return 82; }; });
-+(a) => { return a; };
-+(b) => (c) => 81;
-+(c) => (d) => 82;
- // In Expressions
--(function (arg) { return 90; }) instanceof Function;
--(function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 91;
--}) instanceof Function;
--(function (arg) { return 92; }) instanceof Function;
--(function (arg) { return 93; }) instanceof Function;
--(function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 94;
--}) instanceof Function;
--(function (arg) { return 95; }) instanceof Function;
--(function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 96;
--}) instanceof Function;
--'' + (function (arg) { return 100; });
--(function (arg) { return 0; }) + '' + (function (arg) { return 101; });
--(function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 0;
--}) + '' + (function (arg) {
--    if (arg === void 0) { arg = 2; }
--    return 102;
--});
--(function (arg) { return 0; }) + '' + (function (arg) { return 103; });
--(function (arg) { return 0; }) + '' + (function (arg) { return 104; });
--(function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 0;
--}) + '' + (function (arg) {
--    if (arg === void 0) { arg = 2; }
--    return 105;
--});
--(function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 0;
--}) + '' + (function (arg) {
--    if (arg === void 0) { arg = 2; }
--    return 106;
--});
--(function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 0;
--}) + '' + (function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 107;
--});
--(function (arg1, arg2) { return 0; }) + '' + (function (arg1, arg2) { return 108; });
--(function (arg1) {
--    var arg2 = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        arg2[_i - 1] = arguments[_i];
--    }
--    return 0;
--}) + '' + (function (arg1) {
--    var arg2 = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        arg2[_i - 1] = arguments[_i];
--    }
--    return 108;
--});
-+((arg) => 90) instanceof Function;
-+((arg = 1) => 91) instanceof Function;
-+((arg) => 92) instanceof Function;
-+((arg) => 93) instanceof Function;
-+((arg = 1) => 94) instanceof Function;
-+((arg) => 95) instanceof Function;
-+((...arg) => 96) instanceof Function;
-+'' + ((arg) => 100);
-+((arg) => 0) + '' + ((arg) => 101);
-+((arg = 1) => 0) + '' + ((arg = 2) => 102);
-+((arg) => 0) + '' + ((arg) => 103);
-+((arg) => 0) + '' + ((arg) => 104);
-+((arg = 1) => 0) + '' + ((arg = 2) => 105);
-+((arg = 1) => 0) + '' + ((arg = 2) => 106);
-+((...arg) => 0) + '' + ((...arg) => 107);
-+((arg1, arg2) => 0) + '' + ((arg1, arg2) => 108);
-+((arg1, ...arg2) => 0) + '' + ((arg1, ...arg2) => 108);
- // Function Parameters
--function foo() {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--}
--foo(function (a) { return 110; }, (function (a) { return 111; }), function (a) {
-+function foo(...arg) { }
-+foo((a) => 110, ((a) => 111), (a) => {
-     return 112;
--}, function (a) { return 113; }, function (a, b) { return 114; }, function (a) { return 115; }, function (a) {
--    if (a === void 0) { a = 0; }
--    return 116;
--}, function (a) {
--    if (a === void 0) { a = 0; }
--    return 117;
--}, function (a) {
--    if (a === void 0) { a = 0; }
--    return 118;
--}, function () {
--    var a = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        a[_i] = arguments[_i];
--    }
--    return 119;
--}, function (a, b) {
--    if (b === void 0) { b = 0; }
--    var c = [];
--    for (var _i = 2; _i < arguments.length; _i++) {
--        c[_i - 2] = arguments[_i];
--    }
--    return 120;
--}, function (a) { return function (b) { return function (c) { return 121; }; }; }, false ? function (a) { return 0; } : function (b) { return 122; });
-+}, (a) => 113, (a, b) => 114, (a) => 115, (a = 0) => 116, (a = 0) => 117, (a = 0) => 118, (...a) => 119, (a, b = 0, ...c) => 120, (a) => (b) => (c) => 121, false ? (a) => 0 : (b) => 122);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgsErrors1.js.diff b/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgsErrors1.js.diff
deleted file mode 100644
index a8e9e3184b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgsErrors1.js.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- old.fatarrowfunctionsOptionalArgsErrors1.js
-+++ new.fatarrowfunctionsOptionalArgsErrors1.js
-@@= skipped -9, +9 lines =@@
- (arg1 = 1, arg2) => 1; 
-
- //// [fatarrowfunctionsOptionalArgsErrors1.js]
--(function (arg1, arg2) { return 101; });
--(function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 102;
--});
--(function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 103;
--});
--(function () {
--    var arg = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        arg[_i] = arguments[_i];
--    }
--    return 104;
--});
-+(arg1, arg2) => 101;
-+(...arg) => 102;
-+(...arg) => 103;
-+(...arg = []) => 104;
- // Uninitialized parameter makes the initialized one required
--(function (arg1, arg2) {
--    if (arg1 === void 0) { arg1 = 1; }
--    return 1;
--});
-+(arg1 = 1, arg2) => 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgsErrors3.js.diff b/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgsErrors3.js.diff
deleted file mode 100644
index 511951b551..0000000000
--- a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgsErrors3.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.fatarrowfunctionsOptionalArgsErrors3.js
-+++ new.fatarrowfunctionsOptionalArgsErrors3.js
-@@= skipped -4, +4 lines =@@
-
-
- //// [fatarrowfunctionsOptionalArgsErrors3.js]
--(function () {
--    var  = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        [_i] = arguments[_i];
--    }
--    return 105;
--});
-+(...) => 105;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgsErrors4.js.diff b/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgsErrors4.js.diff
deleted file mode 100644
index 6570cdd454..0000000000
--- a/testdata/baselines/reference/submodule/compiler/fatarrowfunctionsOptionalArgsErrors4.js.diff
+++ /dev/null
@@ -1,56 +0,0 @@
---- old.fatarrowfunctionsOptionalArgsErrors4.js
-+++ new.fatarrowfunctionsOptionalArgsErrors4.js
-@@= skipped -24, +24 lines =@@
-     );
-
- //// [fatarrowfunctionsOptionalArgsErrors4.js]
--false ? function (arg) {
--    if (arg === void 0) { arg = 0; }
--    return 47;
--} : null;
--false ? (function (arg) {
--    if (arg === void 0) { arg = 0; }
--    return 57;
--}) : null;
--false ? null : function (arg) {
--    if (arg === void 0) { arg = 0; }
--    return 67;
--};
--(function (arg) {
--    if (arg === void 0) { arg = 1; }
--    return 0;
--}) + '' + (function (arg) {
--    if (arg === void 0) { arg = 2; }
--    return 106;
--});
--foo(function (a) { return 110; }, (function (a) { return 111; }), function (a) {
-+false ? (arg = 0) => 47 : null;
-+false ? ((arg = 0) => 57) : null;
-+false ? null : (arg = 0) => 67;
-+((arg = 1) => 0) + '' + ((arg = 2) => 106);
-+foo((a) => 110, ((a) => 111), (a) => {
-     return 112;
--}, function (a) { return 113; }, function (a, b) { return 114; }, function (a) { return 115; }, function (a) {
--    if (a === void 0) { a = 0; }
--    return 116;
--}, function (a) {
--    if (a === void 0) { a = 0; }
--    return 117;
--}, function (a) {
--    if (a === void 0) { a = 0; }
--    return 118;
--}, function () {
--    var a = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        a[_i] = arguments[_i];
--    }
--    return 119;
--}, function (a, b) {
--    if (b === void 0) { b = 0; }
--    var c = [];
--    for (var _i = 2; _i < arguments.length; _i++) {
--        c[_i - 2] = arguments[_i];
--    }
--    return 120;
--}, function (a) { return function (b) { return function (c) { return 121; }; }; }, false ? function (a) { return 0; } : function (b) { return 122; });
-+}, (a) => 113, (a, b) => 114, (a) => 115, (a = 0) => 116, (a = 0) => 117, (a = 0) => 118, (...a) => 119, (a, b = 0, ...c) => 120, (a) => (b) => (c) => 121, false ? (a) => 0 : (b) => 122);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fieldAndGetterWithSameName.js.diff b/testdata/baselines/reference/submodule/compiler/fieldAndGetterWithSameName.js.diff
index 4d4cb459ee..820e653b3d 100644
--- a/testdata/baselines/reference/submodule/compiler/fieldAndGetterWithSameName.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/fieldAndGetterWithSameName.js.diff
@@ -8,16 +8,9 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.C = void 0;
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        Object.defineProperty(C.prototype, "x", {
--            get: function () { return 1; },
--            enumerable: false,
--            configurable: true
--        });
--        return C;
--    }());
+-    class C {
+-        get x() { return 1; }
+-    }
 -    exports.C = C;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/fillInMissingTypeArgsOnConstructCalls.js.diff b/testdata/baselines/reference/submodule/compiler/fillInMissingTypeArgsOnConstructCalls.js.diff
index de82a1e7fc..7bdca63aff 100644
--- a/testdata/baselines/reference/submodule/compiler/fillInMissingTypeArgsOnConstructCalls.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/fillInMissingTypeArgsOnConstructCalls.js.diff
@@ -1,15 +1,9 @@
 --- old.fillInMissingTypeArgsOnConstructCalls.js
 +++ new.fillInMissingTypeArgsOnConstructCalls.js
-@@= skipped -7, +7 lines =@@
-
+@@= skipped -8, +8 lines =@@
 
  //// [fillInMissingTypeArgsOnConstructCalls.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
+ class A {
 +    list;
-+}
+ }
  var a = new A();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/firstMatchRegExpMatchArray.js.diff b/testdata/baselines/reference/submodule/compiler/firstMatchRegExpMatchArray.js.diff
index 748efb9145..7263dbe607 100644
--- a/testdata/baselines/reference/submodule/compiler/firstMatchRegExpMatchArray.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/firstMatchRegExpMatchArray.js.diff
@@ -5,11 +5,6 @@
 
  //// [firstMatchRegExpMatchArray.js]
 -"use strict";
--var match = ''.match(/ /);
-+const match = ''.match(/ /);
+ const match = ''.match(/ /);
  if (match !== null) {
--    var foo = match[0];
--    var bar = match[1];
-+    const foo = match[0];
-+    const bar = match[1];
- }
\ No newline at end of file
+     const foo = match[0];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fixingTypeParametersRepeatedly1.js.diff b/testdata/baselines/reference/submodule/compiler/fixingTypeParametersRepeatedly1.js.diff
deleted file mode 100644
index d281327d81..0000000000
--- a/testdata/baselines/reference/submodule/compiler/fixingTypeParametersRepeatedly1.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.fixingTypeParametersRepeatedly1.js
-+++ new.fixingTypeParametersRepeatedly1.js
-@@= skipped -9, +9 lines =@@
- g("", x => null, x => x.toLowerCase());
-
- //// [fixingTypeParametersRepeatedly1.js]
--f("", function (x) { return null; }, function (x) { return x.toLowerCase(); });
--g("", function (x) { return null; }, function (x) { return x.toLowerCase(); });
-+f("", x => null, x => x.toLowerCase());
-+g("", x => null, x => x.toLowerCase());
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fixingTypeParametersRepeatedly2.js.diff b/testdata/baselines/reference/submodule/compiler/fixingTypeParametersRepeatedly2.js.diff
deleted file mode 100644
index 78951ce81c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/fixingTypeParametersRepeatedly2.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.fixingTypeParametersRepeatedly2.js
-+++ new.fixingTypeParametersRepeatedly2.js
-@@= skipped -20, +20 lines =@@
-
- //// [fixingTypeParametersRepeatedly2.js]
- var derived;
--var result = foo(derived, function (d) { return d.toBase(); });
--var result = bar(derived, function (d) { return d.toBase(); });
-+var result = foo(derived, d => d.toBase());
-+var result = bar(derived, d => d.toBase());
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fixingTypeParametersRepeatedly3.js.diff b/testdata/baselines/reference/submodule/compiler/fixingTypeParametersRepeatedly3.js.diff
deleted file mode 100644
index 419815bfa8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/fixingTypeParametersRepeatedly3.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.fixingTypeParametersRepeatedly3.js
-+++ new.fixingTypeParametersRepeatedly3.js
-@@= skipped -20, +20 lines =@@
-
- //// [fixingTypeParametersRepeatedly3.js]
- var derived;
--var result = foo(derived, function (d) { return d.toBase(); });
--var result2 = bar(derived, function (d) { return d.toBase(); });
-+var result = foo(derived, d => d.toBase());
-+var result2 = bar(derived, d => d.toBase());
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/flowControlTypeGuardThenSwitch.js.diff b/testdata/baselines/reference/submodule/compiler/flowControlTypeGuardThenSwitch.js.diff
deleted file mode 100644
index ba60ec6257..0000000000
--- a/testdata/baselines/reference/submodule/compiler/flowControlTypeGuardThenSwitch.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.flowControlTypeGuardThenSwitch.js
-+++ new.flowControlTypeGuardThenSwitch.js
-@@= skipped -46, +46 lines =@@
- function isBoth(x) {
-     return true;
- }
--var foo = undefined;
-+let foo = undefined;
- if (isBoth(foo)) {
-     switch (foo.kind) {
-         case Kind.A:
--            var myA = foo; // Should not be an error
-+            const myA = foo; // Should not be an error
-             break;
-         case Kind.B:
--            var myB = foo;
-+            const myB = foo;
-             break;
-     }
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/flowInFinally1.js.diff b/testdata/baselines/reference/submodule/compiler/flowInFinally1.js.diff
deleted file mode 100644
index 2150e5c144..0000000000
--- a/testdata/baselines/reference/submodule/compiler/flowInFinally1.js.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- old.flowInFinally1.js
-+++ new.flowInFinally1.js
-@@= skipped -16, +16 lines =@@
- }
-
- //// [flowInFinally1.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.method = function () { };
--    return A;
--}());
--var a = null;
-+class A {
-+    constructor() { }
-+    method() { }
-+}
-+let a = null;
- try {
-     a = new A();
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/forInStrictNullChecksNoError.js.diff b/testdata/baselines/reference/submodule/compiler/forInStrictNullChecksNoError.js.diff
deleted file mode 100644
index 476a7bfe2e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/forInStrictNullChecksNoError.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.forInStrictNullChecksNoError.js
-+++ new.forInStrictNullChecksNoError.js
-@@= skipped -9, +9 lines =@@
-
- //// [forInStrictNullChecksNoError.js]
- function f(x) {
--    for (var key in x) { // 1
-+    for (const key in x) { // 1
-         console.log(x[key]); // 2
-     }
-     x["no"]; // should still error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/forLoopEndingMultilineComments.js.diff b/testdata/baselines/reference/submodule/compiler/forLoopEndingMultilineComments.js.diff
deleted file mode 100644
index 98bb0ad5db..0000000000
--- a/testdata/baselines/reference/submodule/compiler/forLoopEndingMultilineComments.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.forLoopEndingMultilineComments.js
-+++ new.forLoopEndingMultilineComments.js
-@@= skipped -26, +26 lines =@@
- function consoleTestResultHandler(testResult) {
-     // needed to get colors to show up when passing through Grunt
-     void a;
--    for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {
--        var q = a_1[_i];
-+    for (const q of a) {
-         void a;
-         /* eslint-disable no-console */
-         if (a) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/forLoopWithDestructuringDoesNotElideFollowingStatement.js.diff b/testdata/baselines/reference/submodule/compiler/forLoopWithDestructuringDoesNotElideFollowingStatement.js.diff
index c46175ddb1..ea2e506ff8 100644
--- a/testdata/baselines/reference/submodule/compiler/forLoopWithDestructuringDoesNotElideFollowingStatement.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/forLoopWithDestructuringDoesNotElideFollowingStatement.js.diff
@@ -15,11 +15,9 @@
 -        }
 -    return t;
 -};
--var array = [{ a: 0, b: 1 }];
--for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
--    var _a = array_1[_i];
--    var a = _a.a, rest = __rest(_a, ["a"]);
-+let array = [{ a: 0, b: 1 }];
+ let array = [{ a: 0, b: 1 }];
+-for (let _a of array) {
+-    let { a } = _a, rest = __rest(_a, ["a"]);
 +for (let { a, ...rest } of array)
      void a;
 -}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/forOfStringConstituents.js.diff b/testdata/baselines/reference/submodule/compiler/forOfStringConstituents.js.diff
deleted file mode 100644
index 6709266433..0000000000
--- a/testdata/baselines/reference/submodule/compiler/forOfStringConstituents.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.forOfStringConstituents.js
-+++ new.forOfStringConstituents.js
-@@= skipped -10, +10 lines =@@
- for (y of x.y);
-
- //// [forOfStringConstituents.js]
--for (var _i = 0, _a = x.y; _i < _a.length; _i++) {
--    y = _a[_i];
-+for (y of x.y)
-     ;
--}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/forOfTransformsExpression.js.diff b/testdata/baselines/reference/submodule/compiler/forOfTransformsExpression.js.diff
deleted file mode 100644
index 34e1d4c13c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/forOfTransformsExpression.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.forOfTransformsExpression.js
-+++ new.forOfTransformsExpression.js
-@@= skipped -8, +8 lines =@@
-
- //// [forOfTransformsExpression.js]
- // https://github.com/Microsoft/TypeScript/issues/11024
--var items = [{ name: "A" }, { name: "C" }, { name: "B" }];
--for (var _i = 0, _a = items.sort(function (a, b) { return a.name.localeCompare(b.name); }); _i < _a.length; _i++) {
--    var item = _a[_i];
-+let items = [{ name: "A" }, { name: "C" }, { name: "B" }];
-+for (var item of items.sort((a, b) => a.name.localeCompare(b.name))) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/forwardRefInClassProperties.js.diff b/testdata/baselines/reference/submodule/compiler/forwardRefInClassProperties.js.diff
index 23c4c0ed3f..512ed20ca3 100644
--- a/testdata/baselines/reference/submodule/compiler/forwardRefInClassProperties.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/forwardRefInClassProperties.js.diff
@@ -4,10 +4,16 @@
 
 
  //// [forwardRefInClassProperties.js]
--var Test = /** @class */ (function () {
--    function Test() {
--        this._b = this._a; // undefined, no error/warning
--        this._a = 3;
+-let Test = (() => {
+-    class Test {
+-        constructor() {
+-            this._b = this._a; // undefined, no error/warning
+-            this._a = 3;
+-        }
+-        method() {
+-            let a = b; // Property 'b' is used before its initialization.
+-            let b = 3;
+-        }
 +class Test {
 +    _b = this._a; // undefined, no error/warning
 +    _a = 3;
@@ -17,12 +23,8 @@
 +        let a = b; // Property 'b' is used before its initialization.
 +        let b = 3;
      }
--    Test.prototype.method = function () {
--        var a = b; // Property 'b' is used before its initialization.
--        var b = 3;
--    };
 -    Test._B = Test._A; // undefined, no error/warning
 -    Test._A = 3;
 -    return Test;
--}());
+-})();
 +}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/forwardRefInTypeDeclaration(strict=false).js.diff b/testdata/baselines/reference/submodule/compiler/forwardRefInTypeDeclaration(strict=false).js.diff
index 38c190bdcc..e8ff4b3490 100644
--- a/testdata/baselines/reference/submodule/compiler/forwardRefInTypeDeclaration(strict=false).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/forwardRefInTypeDeclaration(strict=false).js.diff
@@ -1,27 +1,16 @@
 --- old.forwardRefInTypeDeclaration(strict=false).js
 +++ new.forwardRefInTypeDeclaration(strict=false).js
-@@= skipped -29, +29 lines =@@
-
-
- //// [forwardRefInTypeDeclaration.js]
--var s1 = "x";
--var s2 = "x";
--var s3 = "x";
--var s4 = "x";
--var s5 = "x";
--var Cls2 = /** @class */ (function () {
--    function Cls2() {
+@@= skipped -34, +34 lines =@@
+ const s3 = "x";
+ const s4 = "x";
+ const s5 = "x";
+-let Cls2 = (() => {
+-    class Cls2 {
 -    }
 -    Cls2.b = "b";
 -    return Cls2;
--}());
--var obj2 = { d: 'd' };
-+const s1 = "x";
-+const s2 = "x";
-+const s3 = "x";
-+const s4 = "x";
-+const s5 = "x";
+-})();
 +class Cls2 {
 +    static b = "b";
 +}
-+const obj2 = { d: 'd' };
\ No newline at end of file
+ const obj2 = { d: 'd' };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/forwardRefInTypeDeclaration(strict=true).js.diff b/testdata/baselines/reference/submodule/compiler/forwardRefInTypeDeclaration(strict=true).js.diff
index a511695491..76eeeaccd4 100644
--- a/testdata/baselines/reference/submodule/compiler/forwardRefInTypeDeclaration(strict=true).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/forwardRefInTypeDeclaration(strict=true).js.diff
@@ -5,24 +5,18 @@
 
  //// [forwardRefInTypeDeclaration.js]
 -"use strict";
--var s1 = "x";
--var s2 = "x";
--var s3 = "x";
--var s4 = "x";
--var s5 = "x";
--var Cls2 = /** @class */ (function () {
--    function Cls2() {
+ const s1 = "x";
+ const s2 = "x";
+ const s3 = "x";
+ const s4 = "x";
+ const s5 = "x";
+-let Cls2 = (() => {
+-    class Cls2 {
 -    }
 -    Cls2.b = "b";
 -    return Cls2;
--}());
--var obj2 = { d: 'd' };
-+const s1 = "x";
-+const s2 = "x";
-+const s3 = "x";
-+const s4 = "x";
-+const s5 = "x";
+-})();
 +class Cls2 {
 +    static b = "b";
 +}
-+const obj2 = { d: 'd' };
\ No newline at end of file
+ const obj2 = { d: 'd' };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/freshLiteralInference.js.diff b/testdata/baselines/reference/submodule/compiler/freshLiteralInference.js.diff
deleted file mode 100644
index a72550fb4d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/freshLiteralInference.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.freshLiteralInference.js
-+++ new.freshLiteralInference.js
-@@= skipped -17, +17 lines =@@
-
-
- //// [freshLiteralInference.js]
--var value = f1("1"); // regular "1"
--var x1 = value; // regular "1"
--var obj2 = f2({ value: "1" }); // { value: regular "1" }
--var x2 = obj2.value; // regular "1"
--var obj3 = f3({ value: "1" }); // before: { value: fresh "1" }
--var x3 = obj3.value; // before: string, after: "1"
-+const value = f1("1"); // regular "1"
-+let x1 = value; // regular "1"
-+const obj2 = f2({ value: "1" }); // { value: regular "1" }
-+let x2 = obj2.value; // regular "1"
-+const obj3 = f3({ value: "1" }); // before: { value: fresh "1" }
-+let x3 = obj3.value; // before: string, after: "1"
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/freshLiteralTypesInIntersections.js.diff b/testdata/baselines/reference/submodule/compiler/freshLiteralTypesInIntersections.js.diff
index 9e1cd72c3e..1a4ac6adf4 100644
--- a/testdata/baselines/reference/submodule/compiler/freshLiteralTypesInIntersections.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/freshLiteralTypesInIntersections.js.diff
@@ -6,6 +6,5 @@
  //// [freshLiteralTypesInIntersections.js]
 -"use strict";
 -// Repro from #19657
--var q = func("x", ["x"]);
-+const q = func("x", ["x"]);
+ const q = func("x", ["x"]);
  q("x");
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/funClodule.js.diff b/testdata/baselines/reference/submodule/compiler/funClodule.js.diff
deleted file mode 100644
index 48555cda77..0000000000
--- a/testdata/baselines/reference/submodule/compiler/funClodule.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.funClodule.js
-+++ new.funClodule.js
-@@= skipped -26, +26 lines =@@
-     function x() { }
-     foo3.x = x;
- })(foo3 || (foo3 = {}));
--var foo3 = /** @class */ (function () {
--    function foo3() {
--    }
--    return foo3;
--}()); // Should error
-+class foo3 {
-+} // Should error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/funcdecl.js.diff b/testdata/baselines/reference/submodule/compiler/funcdecl.js.diff
deleted file mode 100644
index be5f6ee6b5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/funcdecl.js.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- old.funcdecl.js
-+++ new.funcdecl.js
-@@= skipped -95, +95 lines =@@
- function withOptionalParams(a) {
- }
- var withOptionalParamsVar = withOptionalParams;
--function withInitializedParams(a, b0, b, c) {
--    if (b === void 0) { b = 30; }
--    if (c === void 0) { c = "string value"; }
-+function withInitializedParams(a, b0, b = 30, c = "string value") {
- }
- var withInitializedParamsVar = withInitializedParams;
--function withOptionalInitializedParams(a, c) {
--    if (c === void 0) { c = "hello string"; }
-+function withOptionalInitializedParams(a, c = "hello string") {
- }
- var withOptionalInitializedParamsVar = withOptionalInitializedParams;
--function withRestParams(a) {
--    var myRestParameter = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        myRestParameter[_i - 1] = arguments[_i];
--    }
-+function withRestParams(a, ...myRestParameter) {
-     return myRestParameter;
- }
- var withRestParamsVar = withRestParams;
-@@= skipped -28, +21 lines =@@
-     }
-     m2.foo = foo;
- })(m2 || (m2 = {}));
--m2.foo(function () {
-+m2.foo(() => {
-     var b = 30;
-     return b;
- });
--var f2 = function () {
-+var f2 = () => {
-     return "string";
- };
diff --git a/testdata/baselines/reference/submodule/compiler/functionAndPropertyNameConflict.js.diff b/testdata/baselines/reference/submodule/compiler/functionAndPropertyNameConflict.js.diff
deleted file mode 100644
index fc4e5ea39f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionAndPropertyNameConflict.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.functionAndPropertyNameConflict.js
-+++ new.functionAndPropertyNameConflict.js
-@@= skipped -8, +8 lines =@@
- }
-
- //// [functionAndPropertyNameConflict.js]
--var C65 = /** @class */ (function () {
--    function C65() {
-+class C65 {
-+    aaaaa() { }
-+    get aaaaa() {
-+        return 1;
-     }
--    C65.prototype.aaaaa = function () { };
--    Object.defineProperty(C65.prototype, "aaaaa", {
--        get: function () {
--            return 1;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return C65;
--}());
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionArgShadowing.js.diff b/testdata/baselines/reference/submodule/compiler/functionArgShadowing.js.diff
index 5f53c31a68..f4991e5f84 100644
--- a/testdata/baselines/reference/submodule/compiler/functionArgShadowing.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/functionArgShadowing.js.diff
@@ -1,40 +1,10 @@
 --- old.functionArgShadowing.js
 +++ new.functionArgShadowing.js
-@@= skipped -16, +16 lines =@@
- }
-
- //// [functionArgShadowing.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.foo = function () { };
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--    }
--    B.prototype.bar = function () { };
--    return B;
--}());
-+class A {
-+    foo() { }
-+}
-+class B {
-+    bar() { }
-+}
- function foo(x) {
-     var x = new B();
+@@= skipped -27, +27 lines =@@
      x.bar(); // the property bar does not exist on a value of type A
  }
--var C = /** @class */ (function () {
--    function C(p) {
-+class C {
+ class C {
 +    p;
-+    constructor(p) {
+     constructor(p) {
          this.p = p;
-         var p;
-         var n = p;
-     }
--    return C;
--}());
-+}
\ No newline at end of file
+         var p;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionAssignabilityWithArrayLike01(strict=false).js.diff b/testdata/baselines/reference/submodule/compiler/functionAssignabilityWithArrayLike01(strict=false).js.diff
deleted file mode 100644
index 86d004d1e1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionAssignabilityWithArrayLike01(strict=false).js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.functionAssignabilityWithArrayLike01(strict=false).js
-+++ new.functionAssignabilityWithArrayLike01(strict=false).js
-@@= skipped -5, +5 lines =@@
-
- //// [functionAssignabilityWithArrayLike01.js]
- function func() { }
--var array = func;
-+const array = func;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionAssignabilityWithArrayLike01(strict=true).js.diff b/testdata/baselines/reference/submodule/compiler/functionAssignabilityWithArrayLike01(strict=true).js.diff
index 893773fc73..54d593f8ce 100644
--- a/testdata/baselines/reference/submodule/compiler/functionAssignabilityWithArrayLike01(strict=true).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/functionAssignabilityWithArrayLike01(strict=true).js.diff
@@ -6,5 +6,4 @@
  //// [functionAssignabilityWithArrayLike01.js]
 -"use strict";
  function func() { }
--var array = func;
-+const array = func;
\ No newline at end of file
+ const array = func;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionAssignment.js.diff b/testdata/baselines/reference/submodule/compiler/functionAssignment.js.diff
deleted file mode 100644
index 16f490bb01..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionAssignment.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.functionAssignment.js
-+++ new.functionAssignment.js
-@@= skipped -47, +47 lines =@@
-     var x = barbaz.get(function () { });
- });
- function f2(n) { }
--f2(function () {
-+f2(() => {
-     var n = '';
-     n = 4;
- });
- function f3(a) { }
- f3({ a: 0, b: 0 });
- function callb(a) { }
--callb(function (a) { a.length; });
-+callb((a) => { a.length; });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionCall10.js.diff b/testdata/baselines/reference/submodule/compiler/functionCall10.js.diff
deleted file mode 100644
index c3e70643c4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionCall10.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.functionCall10.js
-+++ new.functionCall10.js
-@@= skipped -8, +8 lines =@@
-
-
- //// [functionCall10.js]
--function foo() {
--    var a = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        a[_i] = arguments[_i];
--    }
--}
-+function foo(...a) { }
- ;
- foo(0, 1);
- foo('foo');
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionCall13.js.diff b/testdata/baselines/reference/submodule/compiler/functionCall13.js.diff
deleted file mode 100644
index d18c67fe3c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionCall13.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.functionCall13.js
-+++ new.functionCall13.js
-@@= skipped -9, +9 lines =@@
-
-
- //// [functionCall13.js]
--function foo(a) {
--    var b = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        b[_i - 1] = arguments[_i];
--    }
--}
-+function foo(a, ...b) { }
- foo('foo', 1);
- foo('foo');
- foo();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionCall14.js.diff b/testdata/baselines/reference/submodule/compiler/functionCall14.js.diff
deleted file mode 100644
index 48610b1c94..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionCall14.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.functionCall14.js
-+++ new.functionCall14.js
-@@= skipped -9, +9 lines =@@
-
-
- //// [functionCall14.js]
--function foo(a) {
--    var b = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        b[_i - 1] = arguments[_i];
--    }
--}
-+function foo(a, ...b) { }
- foo('foo', 1);
- foo('foo');
- foo();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionCall15.js.diff b/testdata/baselines/reference/submodule/compiler/functionCall15.js.diff
deleted file mode 100644
index dc3f1d999e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionCall15.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.functionCall15.js
-+++ new.functionCall15.js
-@@= skipped -3, +3 lines =@@
- function foo(a?:string, b?:number, ...b:number[]){}
-
- //// [functionCall15.js]
--function foo(a, b) {
--    var b = [];
--    for (var _i = 2; _i < arguments.length; _i++) {
--        b[_i - 2] = arguments[_i];
--    }
--}
-+function foo(a, b, ...b) { }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionCall16.js.diff b/testdata/baselines/reference/submodule/compiler/functionCall16.js.diff
deleted file mode 100644
index f3e66dee18..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionCall16.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.functionCall16.js
-+++ new.functionCall16.js
-@@= skipped -10, +10 lines =@@
-
-
- //// [functionCall16.js]
--function foo(a, b) {
--    var c = [];
--    for (var _i = 2; _i < arguments.length; _i++) {
--        c[_i - 2] = arguments[_i];
--    }
--}
-+function foo(a, b, ...c) { }
- foo('foo', 1);
- foo('foo');
- foo('foo', 'bar');
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionCall17.js.diff b/testdata/baselines/reference/submodule/compiler/functionCall17.js.diff
deleted file mode 100644
index 86aeb321ee..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionCall17.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.functionCall17.js
-+++ new.functionCall17.js
-@@= skipped -10, +10 lines =@@
-
-
- //// [functionCall17.js]
--function foo(a, b, c) {
--    var d = [];
--    for (var _i = 3; _i < arguments.length; _i++) {
--        d[_i - 3] = arguments[_i];
--    }
--}
-+function foo(a, b, c, ...d) { }
- foo('foo', 1);
- foo('foo');
- foo();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionCall5.js.diff b/testdata/baselines/reference/submodule/compiler/functionCall5.js.diff
index 75e6f9e6ca..3d399b9eec 100644
--- a/testdata/baselines/reference/submodule/compiler/functionCall5.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/functionCall5.js.diff
@@ -1,17 +1,10 @@
 --- old.functionCall5.js
 +++ new.functionCall5.js
-@@= skipped -7, +7 lines =@@
- //// [functionCall5.js]
+@@= skipped -8, +8 lines =@@
  var m1;
  (function (m1) {
--    var c1 = /** @class */ (function () {
--        function c1() {
--        }
--        return c1;
--    }());
-+    class c1 {
+     class c1 {
 +        a;
-+    }
+     }
      m1.c1 = c1;
- })(m1 || (m1 = {}));
- function foo() { return new m1.c1(); }
\ No newline at end of file
+ })(m1 || (m1 = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionCall7.js.diff b/testdata/baselines/reference/submodule/compiler/functionCall7.js.diff
index af40e57716..0a2d359937 100644
--- a/testdata/baselines/reference/submodule/compiler/functionCall7.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/functionCall7.js.diff
@@ -1,17 +1,10 @@
 --- old.functionCall7.js
 +++ new.functionCall7.js
-@@= skipped -12, +12 lines =@@
- //// [functionCall7.js]
+@@= skipped -13, +13 lines =@@
  var m1;
  (function (m1) {
--    var c1 = /** @class */ (function () {
--        function c1() {
--        }
--        return c1;
--    }());
-+    class c1 {
+     class c1 {
 +        a;
-+    }
+     }
      m1.c1 = c1;
- })(m1 || (m1 = {}));
- function foo(a) { a.a = 1; }
\ No newline at end of file
+ })(m1 || (m1 = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionExpressionAndLambdaMatchesFunction.js.diff b/testdata/baselines/reference/submodule/compiler/functionExpressionAndLambdaMatchesFunction.js.diff
deleted file mode 100644
index d1caa97a67..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionExpressionAndLambdaMatchesFunction.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.functionExpressionAndLambdaMatchesFunction.js
-+++ new.functionExpressionAndLambdaMatchesFunction.js
-@@= skipped -11, +11 lines =@@
-
-
- //// [functionExpressionAndLambdaMatchesFunction.js]
--var CDoc = /** @class */ (function () {
--    function CDoc() {
-+class CDoc {
-+    constructor() {
-         function doSomething(a) {
-         }
--        doSomething(function () { return undefined; });
-+        doSomething(() => undefined);
-         doSomething(function () { });
-     }
--    return CDoc;
--}());
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionExpressionInWithBlock.js.diff b/testdata/baselines/reference/submodule/compiler/functionExpressionInWithBlock.js.diff
deleted file mode 100644
index 8248074f76..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionExpressionInWithBlock.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.functionExpressionInWithBlock.js
-+++ new.functionExpressionInWithBlock.js
-@@= skipped -12, +12 lines =@@
- function x() {
-     with ({}) {
-         function f() {
--            var _this = this;
--            (function () { return _this; });
-+            () => this;
-         }
-     }
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionLikeInParameterInitializer.js.diff b/testdata/baselines/reference/submodule/compiler/functionLikeInParameterInitializer.js.diff
index eba99d77ae..077530f91b 100644
--- a/testdata/baselines/reference/submodule/compiler/functionLikeInParameterInitializer.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/functionLikeInParameterInitializer.js.diff
@@ -1,46 +1,13 @@
 --- old.functionLikeInParameterInitializer.js
 +++ new.functionLikeInParameterInitializer.js
-@@= skipped -28, +28 lines =@@
- exports.baz2 = baz2;
- exports.baz3 = baz3;
+@@= skipped -41, +41 lines =@@
+ }
  // error
--function bar(func) {
--    if (func === void 0) { func = function () { return foo; }; }
--    var foo = "in";
--}
--// error
--function baz1(func) {
--    if (func === void 0) { func = { f: function () { return foo; } }; }
--    var foo = "in";
--}
--// error
--function baz2(func) {
--    if (func === void 0) { func = function () { return foo; }; }
--    var foo = "in";
--}
--// error
--function baz3(func) {
--    if (func === void 0) { func = /** @class */ (function () {
--        function class_1() {
--            this.x = foo;
--        }
--        return class_1;
--    }()); }
--    var foo = "in";
-+function bar(func = () => foo) {
-+    let foo = "in";
-+}
-+// error
-+function baz1(func = { f() { return foo; } }) {
-+    let foo = "in";
-+}
-+// error
-+function baz2(func = function () { return foo; }) {
-+    let foo = "in";
-+}
-+// error
-+function baz3(func = class {
+ function baz3(func = class {
+-    constructor() {
+-        this.x = foo;
+-    }
 +    x = foo;
-+}) {
-+    let foo = "in";
+ }) {
+     let foo = "in";
  }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionOverloadAmbiguity1.js.diff b/testdata/baselines/reference/submodule/compiler/functionOverloadAmbiguity1.js.diff
deleted file mode 100644
index 944715628e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionOverloadAmbiguity1.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.functionOverloadAmbiguity1.js
-+++ new.functionOverloadAmbiguity1.js
-@@= skipped -13, +13 lines =@@
-
- //// [functionOverloadAmbiguity1.js]
- function callb(a) { }
--callb(function (a) { a.length; }); // error, chose first overload
-+callb((a) => { a.length; }); // error, chose first overload
- function callb2(a) { }
--callb2(function (a) { a.length; }); // ok, chose first overload
-+callb2((a) => { a.length; }); // ok, chose first overload
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionOverloads43.js.diff b/testdata/baselines/reference/submodule/compiler/functionOverloads43.js.diff
deleted file mode 100644
index 9876974c8d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionOverloads43.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.functionOverloads43.js
-+++ new.functionOverloads43.js
-@@= skipped -14, +14 lines =@@
- var y = foo([{a: 100}]);
-
- //// [functionOverloads43.js]
--function foo(_a) {
--    var x = _a[0];
-+function foo([x]) {
-     if (x) {
-         return x.a;
-     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionOverloads44.js.diff b/testdata/baselines/reference/submodule/compiler/functionOverloads44.js.diff
deleted file mode 100644
index 3cf886abc4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionOverloads44.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.functionOverloads44.js
-+++ new.functionOverloads44.js
-@@= skipped -24, +24 lines =@@
- var y2 = foo2([{a: 100}]);
-
- //// [functionOverloads44.js]
--function foo1(_a) {
--    var x = _a[0];
-+function foo1([x]) {
-     return undefined;
- }
--function foo2(_a) {
--    var x = _a[0];
-+function foo2([x]) {
-     return undefined;
- }
- var x1 = foo1([{ a: "str" }]);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionOverloads45.js.diff b/testdata/baselines/reference/submodule/compiler/functionOverloads45.js.diff
deleted file mode 100644
index 32199333a8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionOverloads45.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.functionOverloads45.js
-+++ new.functionOverloads45.js
-@@= skipped -24, +24 lines =@@
- var y2 = foo2([{a: 100}]);
-
- //// [functionOverloads45.js]
--function foo1(_a) {
--    var x = _a[0];
-+function foo1([x]) {
-     return undefined;
- }
--function foo2(_a) {
--    var x = _a[0];
-+function foo2([x]) {
-     return undefined;
- }
- var x1 = foo1([{ a: "str" }]);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionOverloads5.js.diff b/testdata/baselines/reference/submodule/compiler/functionOverloads5.js.diff
deleted file mode 100644
index a3938959fa..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionOverloads5.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.functionOverloads5.js
-+++ new.functionOverloads5.js
-@@= skipped -7, +7 lines =@@
-
-
- //// [functionOverloads5.js]
--var baz = /** @class */ (function () {
--    function baz() {
--    }
--    baz.prototype.foo = function (bar) { };
--    return baz;
--}());
-+class baz {
-+    foo(bar) { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionOverloads6.js.diff b/testdata/baselines/reference/submodule/compiler/functionOverloads6.js.diff
deleted file mode 100644
index ed3d430a0c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionOverloads6.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.functionOverloads6.js
-+++ new.functionOverloads6.js
-@@= skipped -8, +8 lines =@@
-
-
- //// [functionOverloads6.js]
--var foo = /** @class */ (function () {
--    function foo() {
--    }
--    foo.fnOverload = function (foo) { };
--    return foo;
--}());
-+class foo {
-+    static fnOverload(foo) { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionOverloads7.js.diff b/testdata/baselines/reference/submodule/compiler/functionOverloads7.js.diff
deleted file mode 100644
index 284556ebb4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionOverloads7.js.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- old.functionOverloads7.js
-+++ new.functionOverloads7.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [functionOverloads7.js]
--var foo = /** @class */ (function () {
--    function foo() {
--    }
--    foo.prototype.bar = function (foo) { return "foo"; };
--    foo.prototype.n = function () {
-+class foo {
-+    bar(foo) { return "foo"; }
-+    n() {
-         var foo = this.bar();
-         foo = this.bar("test");
--    };
--    return foo;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionOverloadsOutOfOrder.js.diff b/testdata/baselines/reference/submodule/compiler/functionOverloadsOutOfOrder.js.diff
deleted file mode 100644
index 29bd53252f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionOverloadsOutOfOrder.js.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- old.functionOverloadsOutOfOrder.js
-+++ new.functionOverloadsOutOfOrder.js
-@@= skipped -17, +17 lines =@@
- }
-
- //// [functionOverloadsOutOfOrder.js]
--var d = /** @class */ (function () {
--    function d() {
--    }
--    d.prototype.foo = function (ns) {
--        return ns.toString();
--    };
--    return d;
--}());
--var e = /** @class */ (function () {
--    function e() {
--    }
--    e.prototype.foo = function (ns) {
--        return ns.toString();
--    };
--    return e;
--}());
-+class d {
-+    foo(ns) {
-+        return ns.toString();
-+    }
-+}
-+class e {
-+    foo(ns) {
-+        return ns.toString();
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionOverloadsRecursiveGenericReturnType.js.diff b/testdata/baselines/reference/submodule/compiler/functionOverloadsRecursiveGenericReturnType.js.diff
index bd8ae046f7..29fd0c4e1b 100644
--- a/testdata/baselines/reference/submodule/compiler/functionOverloadsRecursiveGenericReturnType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/functionOverloadsRecursiveGenericReturnType.js.diff
@@ -1,30 +1,13 @@
 --- old.functionOverloadsRecursiveGenericReturnType.js
 +++ new.functionOverloadsRecursiveGenericReturnType.js
-@@= skipped -16, +16 lines =@@
-
+@@= skipped -17, +17 lines =@@
 
  //// [functionOverloadsRecursiveGenericReturnType.js]
--var B = /** @class */ (function () {
--    function B() {
--    }
--    return B;
--}());
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--function Choice() {
--    var v_args = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        v_args[_i] = arguments[_i];
--    }
-+class B {
+ class B {
 +    id;
-+}
-+class A {
+ }
+ class A {
 +    GetEnumerator;
-+}
-+function Choice(...v_args) {
-     return new A();
- }
\ No newline at end of file
+ }
+ function Choice(...v_args) {
+     return new A();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionParameterArityMismatch.js.diff b/testdata/baselines/reference/submodule/compiler/functionParameterArityMismatch.js.diff
deleted file mode 100644
index e64199c76a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionParameterArityMismatch.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.functionParameterArityMismatch.js
-+++ new.functionParameterArityMismatch.js
-@@= skipped -18, +18 lines =@@
-
-
- //// [functionParameterArityMismatch.js]
--var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
--    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
--        if (ar || !(i in from)) {
--            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
--            ar[i] = from[i];
--        }
--    }
--    return to.concat(ar || Array.prototype.slice.call(from));
--};
- f1();
- f1(1, 2);
- f1(1, 2, 3, 4);
-@@= skipped -16, +7 lines =@@
- f2(1, 2, 3);
- f2(1, 2, 3, 4, 5);
- f2(1, 2, 3, 4, 5, 6, 7);
--f2.apply(void 0, __spreadArray([1, 2, 3, 4, 5], [6, 7], false));
-+f2(1, 2, 3, 4, 5, ...[6, 7]);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionSubtypingOfVarArgs.js.diff b/testdata/baselines/reference/submodule/compiler/functionSubtypingOfVarArgs.js.diff
index 5a77ec0d46..0f191798b5 100644
--- a/testdata/baselines/reference/submodule/compiler/functionSubtypingOfVarArgs.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/functionSubtypingOfVarArgs.js.diff
@@ -1,50 +1,13 @@
 --- old.functionSubtypingOfVarArgs.js
 +++ new.functionSubtypingOfVarArgs.js
-@@= skipped -16, +16 lines =@@
-
+@@= skipped -17, +17 lines =@@
 
  //// [functionSubtypingOfVarArgs.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var EventBase = /** @class */ (function () {
--    function EventBase() {
+ class EventBase {
+-    constructor() {
 -        this._listeners = [];
 -    }
--    EventBase.prototype.add = function (listener) {
-+class EventBase {
 +    _listeners = [];
-+    add(listener) {
+     add(listener) {
          this._listeners.push(listener);
--    };
--    return EventBase;
--}());
--var StringEvent = /** @class */ (function (_super) {
--    __extends(StringEvent, _super);
--    function StringEvent() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    StringEvent.prototype.add = function (listener) {
--        _super.prototype.add.call(this, listener);
--    };
--    return StringEvent;
--}(EventBase));
-+    }
-+}
-+class StringEvent extends EventBase {
-+    add(listener) {
-+        super.add(listener);
-+    }
-+}
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionSubtypingOfVarArgs2.js.diff b/testdata/baselines/reference/submodule/compiler/functionSubtypingOfVarArgs2.js.diff
index 7a312bec1c..a65bccd207 100644
--- a/testdata/baselines/reference/submodule/compiler/functionSubtypingOfVarArgs2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/functionSubtypingOfVarArgs2.js.diff
@@ -1,50 +1,13 @@
 --- old.functionSubtypingOfVarArgs2.js
 +++ new.functionSubtypingOfVarArgs2.js
-@@= skipped -16, +16 lines =@@
-
+@@= skipped -17, +17 lines =@@
 
  //// [functionSubtypingOfVarArgs2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var EventBase = /** @class */ (function () {
--    function EventBase() {
+ class EventBase {
+-    constructor() {
 -        this._listeners = [];
 -    }
--    EventBase.prototype.add = function (listener) {
-+class EventBase {
 +    _listeners = [];
-+    add(listener) {
+     add(listener) {
          this._listeners.push(listener);
--    };
--    return EventBase;
--}());
--var StringEvent = /** @class */ (function (_super) {
--    __extends(StringEvent, _super);
--    function StringEvent() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    StringEvent.prototype.add = function (listener) {
--        _super.prototype.add.call(this, listener);
--    };
--    return StringEvent;
--}(EventBase));
-+    }
-+}
-+class StringEvent extends EventBase {
-+    add(listener) {
-+        super.add(listener);
-+    }
-+}
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionTypeArgumentAssignmentCompat.js.diff b/testdata/baselines/reference/submodule/compiler/functionTypeArgumentAssignmentCompat.js.diff
deleted file mode 100644
index e92188c54b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionTypeArgumentAssignmentCompat.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.functionTypeArgumentAssignmentCompat.js
-+++ new.functionTypeArgumentAssignmentCompat.js
-@@= skipped -16, +16 lines =@@
-
- //// [functionTypeArgumentAssignmentCompat.js]
- var f;
--var g = function () { return []; };
-+var g = () => [];
- f = g;
- var s = f("str").toUpperCase();
- console.log(s);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithAnyReturnTypeAndNoReturnExpression.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithAnyReturnTypeAndNoReturnExpression.js.diff
deleted file mode 100644
index f5b4b90514..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithAnyReturnTypeAndNoReturnExpression.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.functionWithAnyReturnTypeAndNoReturnExpression.js
-+++ new.functionWithAnyReturnTypeAndNoReturnExpression.js
-@@= skipped -8, +8 lines =@@
- //// [functionWithAnyReturnTypeAndNoReturnExpression.js]
- // All should be allowed
- function f() { }
--var f2 = function () { };
--var f3 = function () { };
-+var f2 = () => { };
-+var f3 = () => { };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements1.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements1.js.diff
deleted file mode 100644
index 3a49a35fff..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements1.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements1.js
-+++ new.functionWithDefaultParameterWithNoStatements1.js
-@@= skipped -3, +3 lines =@@
- function foo(x = 0) { }
-
- //// [functionWithDefaultParameterWithNoStatements1.js]
--function foo(x) {
--    if (x === void 0) { x = 0; }
--}
-+function foo(x = 0) { }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements10.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements10.js.diff
deleted file mode 100644
index b3b91a7c4c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements10.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements10.js
-+++ new.functionWithDefaultParameterWithNoStatements10.js
-@@= skipped -6, +6 lines =@@
- }
-
- //// [functionWithDefaultParameterWithNoStatements10.js]
--function foo(a) {
--    if (a === void 0) { a = [0]; }
--}
--function bar(a) {
--    if (a === void 0) { a = [0]; }
-+function foo(a = [0]) { }
-+function bar(a = [0]) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements11.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements11.js.diff
deleted file mode 100644
index 823c9960bd..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements11.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements11.js
-+++ new.functionWithDefaultParameterWithNoStatements11.js
-@@= skipped -9, +9 lines =@@
-
- //// [functionWithDefaultParameterWithNoStatements11.js]
- var v;
--function foo(a) {
--    if (a === void 0) { a = v[0]; }
--}
--function bar(a) {
--    if (a === void 0) { a = v[0]; }
-+function foo(a = v[0]) { }
-+function bar(a = v[0]) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements12.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements12.js.diff
deleted file mode 100644
index 44d34efe68..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements12.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements12.js
-+++ new.functionWithDefaultParameterWithNoStatements12.js
-@@= skipped -9, +9 lines =@@
-
- //// [functionWithDefaultParameterWithNoStatements12.js]
- var v;
--function foo(a) {
--    if (a === void 0) { a = (v); }
--}
--function bar(a) {
--    if (a === void 0) { a = (v); }
-+function foo(a = (v)) { }
-+function bar(a = (v)) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements13.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements13.js.diff
deleted file mode 100644
index a56ebcd877..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements13.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements13.js
-+++ new.functionWithDefaultParameterWithNoStatements13.js
-@@= skipped -9, +9 lines =@@
-
- //// [functionWithDefaultParameterWithNoStatements13.js]
- var v;
--function foo(a) {
--    if (a === void 0) { a = [1 + 1]; }
--}
--function bar(a) {
--    if (a === void 0) { a = [1 + 1]; }
-+function foo(a = [1 + 1]) { }
-+function bar(a = [1 + 1]) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements14.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements14.js.diff
deleted file mode 100644
index 019f4b4a26..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements14.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements14.js
-+++ new.functionWithDefaultParameterWithNoStatements14.js
-@@= skipped -9, +9 lines =@@
-
- //// [functionWithDefaultParameterWithNoStatements14.js]
- var v;
--function foo(a) {
--    if (a === void 0) { a = v[1 + 1]; }
--}
--function bar(a) {
--    if (a === void 0) { a = v[1 + 1]; }
-+function foo(a = v[1 + 1]) { }
-+function bar(a = v[1 + 1]) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements15.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements15.js.diff
deleted file mode 100644
index 28fd2d6284..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements15.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements15.js
-+++ new.functionWithDefaultParameterWithNoStatements15.js
-@@= skipped -9, +9 lines =@@
-
- //// [functionWithDefaultParameterWithNoStatements15.js]
- var v;
--function foo(a) {
--    if (a === void 0) { a = (1 + 1); }
--}
--function bar(a) {
--    if (a === void 0) { a = (1 + 1); }
-+function foo(a = (1 + 1)) { }
-+function bar(a = (1 + 1)) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements16.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements16.js.diff
deleted file mode 100644
index 0a79f83ab3..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements16.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements16.js
-+++ new.functionWithDefaultParameterWithNoStatements16.js
-@@= skipped -9, +9 lines =@@
-
- //// [functionWithDefaultParameterWithNoStatements16.js]
- var v;
--function foo(a) {
--    if (a === void 0) { a = bar(); }
--}
--function bar(a) {
--    if (a === void 0) { a = foo(); }
-+function foo(a = bar()) { }
-+function bar(a = foo()) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements2.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements2.js.diff
deleted file mode 100644
index 7ce282a14d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements2.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements2.js
-+++ new.functionWithDefaultParameterWithNoStatements2.js
-@@= skipped -4, +4 lines =@@
- }
-
- //// [functionWithDefaultParameterWithNoStatements2.js]
--function foo(x) {
--    if (x === void 0) { x = 0; }
-+function foo(x = 0) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements3.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements3.js.diff
deleted file mode 100644
index 42f2f0f57b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements3.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements3.js
-+++ new.functionWithDefaultParameterWithNoStatements3.js
-@@= skipped -6, +6 lines =@@
- }
-
- //// [functionWithDefaultParameterWithNoStatements3.js]
--function foo(a) {
--    if (a === void 0) { a = ""; }
--}
--function bar(a) {
--    if (a === void 0) { a = ""; }
-+function foo(a = "") { }
-+function bar(a = "") {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements4.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements4.js.diff
deleted file mode 100644
index 5022cdff4c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements4.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements4.js
-+++ new.functionWithDefaultParameterWithNoStatements4.js
-@@= skipped -6, +6 lines =@@
- }
-
- //// [functionWithDefaultParameterWithNoStatements4.js]
--function foo(a) {
--    if (a === void 0) { a = ""; }
--}
--function bar(a) {
--    if (a === void 0) { a = ""; }
-+function foo(a = ``) { }
-+function bar(a = ``) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements5.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements5.js.diff
deleted file mode 100644
index 8078a38064..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements5.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements5.js
-+++ new.functionWithDefaultParameterWithNoStatements5.js
-@@= skipped -6, +6 lines =@@
- }
-
- //// [functionWithDefaultParameterWithNoStatements5.js]
--function foo(a) {
--    if (a === void 0) { a = 0; }
--}
--function bar(a) {
--    if (a === void 0) { a = 0; }
-+function foo(a = 0) { }
-+function bar(a = 0) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements6.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements6.js.diff
deleted file mode 100644
index 538e20aa37..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements6.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements6.js
-+++ new.functionWithDefaultParameterWithNoStatements6.js
-@@= skipped -6, +6 lines =@@
- }
-
- //// [functionWithDefaultParameterWithNoStatements6.js]
--function foo(a) {
--    if (a === void 0) { a = true; }
--}
--function bar(a) {
--    if (a === void 0) { a = true; }
-+function foo(a = true) { }
-+function bar(a = true) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements7.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements7.js.diff
deleted file mode 100644
index 658df30a02..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements7.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements7.js
-+++ new.functionWithDefaultParameterWithNoStatements7.js
-@@= skipped -6, +6 lines =@@
- }
-
- //// [functionWithDefaultParameterWithNoStatements7.js]
--function foo(a) {
--    if (a === void 0) { a = false; }
--}
--function bar(a) {
--    if (a === void 0) { a = false; }
-+function foo(a = false) { }
-+function bar(a = false) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements8.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements8.js.diff
deleted file mode 100644
index 6e259d26ce..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements8.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements8.js
-+++ new.functionWithDefaultParameterWithNoStatements8.js
-@@= skipped -6, +6 lines =@@
- }
-
- //// [functionWithDefaultParameterWithNoStatements8.js]
--function foo(a) {
--    if (a === void 0) { a = undefined; }
--}
--function bar(a) {
--    if (a === void 0) { a = undefined; }
-+function foo(a = undefined) { }
-+function bar(a = undefined) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements9.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements9.js.diff
deleted file mode 100644
index f6ca6a9c7b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionWithDefaultParameterWithNoStatements9.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.functionWithDefaultParameterWithNoStatements9.js
-+++ new.functionWithDefaultParameterWithNoStatements9.js
-@@= skipped -6, +6 lines =@@
- }
-
- //// [functionWithDefaultParameterWithNoStatements9.js]
--function foo(a) {
--    if (a === void 0) { a = console.log; }
--}
--function bar(a) {
--    if (a === void 0) { a = console.log; }
-+function foo(a = console.log) { }
-+function bar(a = console.log) {
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionWithSameNameAsField.js.diff b/testdata/baselines/reference/submodule/compiler/functionWithSameNameAsField.js.diff
index ca01e78092..4ca88776a6 100644
--- a/testdata/baselines/reference/submodule/compiler/functionWithSameNameAsField.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/functionWithSameNameAsField.js.diff
@@ -1,20 +1,10 @@
 --- old.functionWithSameNameAsField.js
 +++ new.functionWithSameNameAsField.js
-@@= skipped -10, +10 lines =@@
-
+@@= skipped -11, +11 lines =@@
 
  //// [functionWithSameNameAsField.js]
--var TestProgressBar = /** @class */ (function () {
--    function TestProgressBar() {
--    }
--    TestProgressBar.prototype.total = function (total) {
-+class TestProgressBar {
+ class TestProgressBar {
 +    total;
-+    total(total) {
+     total(total) {
          this.total = total;
-         return this;
--    };
--    return TestProgressBar;
--}());
-+    }
-+}
\ No newline at end of file
+         return this;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionsInClassExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/functionsInClassExpressions.js.diff
index 1ce987002b..24b344deb4 100644
--- a/testdata/baselines/reference/submodule/compiler/functionsInClassExpressions.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/functionsInClassExpressions.js.diff
@@ -1,26 +1,18 @@
 --- old.functionsInClassExpressions.js
 +++ new.functionsInClassExpressions.js
-@@= skipped -12, +12 lines =@@
- }
-
+@@= skipped -14, +14 lines =@@
  //// [functionsInClassExpressions.js]
--var Foo = /** @class */ (function () {
--    function class_1() {
--        var _this = this;
+ let Foo = class {
+     constructor() {
 -        this.bar = 0;
--        this.inc = function () {
--            _this.bar++;
+-        this.inc = () => {
+-            this.bar++;
 -        };
-+let Foo = class {
-+    constructor() {
          this.bar++;
      }
--    class_1.prototype.m = function () { return this.bar; };
--    return class_1;
--}());
 +    bar = 0;
 +    inc = () => {
 +        this.bar++;
 +    };
-+    m() { return this.bar; }
-+};
\ No newline at end of file
+     m() { return this.bar; }
+ };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/functionsMissingReturnStatementsAndExpressions.js.diff b/testdata/baselines/reference/submodule/compiler/functionsMissingReturnStatementsAndExpressions.js.diff
deleted file mode 100644
index 1afd22bdc5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/functionsMissingReturnStatementsAndExpressions.js.diff
+++ /dev/null
@@ -1,93 +0,0 @@
---- old.functionsMissingReturnStatementsAndExpressions.js
-+++ new.functionsMissingReturnStatementsAndExpressions.js
-@@= skipped -243, +243 lines =@@
- function f23() {
-     // Error; because `undefined | number` becomes `number` without strictNullChecks.
- }
--var f30 = function () {
-+const f30 = () => {
-     // Ok, contextual type for implicit return is `undefined`
- };
--var f31 = function () {
-+const f31 = () => {
-     // Ok, contextual type for expression-less return is `undefined`
-     return;
- };
--var f32 = function () {
-+const f32 = () => {
-     // Error, contextual type for implicit return isn't just `undefined`
- };
--var f33 = function () {
-+const f33 = () => {
-     // Error, contextual type for expression-less return isn't just `undefined`
-     return;
- };
--var C = /** @class */ (function () {
--    function C() {
--    }
--    Object.defineProperty(C.prototype, "m1", {
--        get: function () {
--            // Errors; get accessors must return a value.
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C.prototype, "m2", {
--        get: function () {
--            // Permissible; returns undefined.
--            return;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C.prototype, "m3", {
--        get: function () {
--            return "Okay, because this is a return expression.";
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C.prototype, "m4", {
--        get: function () {
--            // Fine since this consists of a single throw statement.
--            throw null;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C.prototype, "m5", {
--        get: function () {
--            // Not fine, since we can *only* consist of a single throw statement
--            // if no return statements are present but we are a get accessor.
--            throw null;
--            throw undefined.
--            ;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return C;
--}());
-+class C {
-+    get m1() {
-+        // Errors; get accessors must return a value.
-+    }
-+    get m2() {
-+        // Permissible; returns undefined.
-+        return;
-+    }
-+    get m3() {
-+        return "Okay, because this is a return expression.";
-+    }
-+    get m4() {
-+        // Fine since this consists of a single throw statement.
-+        throw null;
-+    }
-+    get m5() {
-+        // Not fine, since we can *only* consist of a single throw statement
-+        // if no return statements are present but we are a get accessor.
-+        throw null;
-+        throw undefined.
-+        ;
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/fuzzy.js.diff b/testdata/baselines/reference/submodule/compiler/fuzzy.js.diff
index e97aed6418..fb2dc48915 100644
--- a/testdata/baselines/reference/submodule/compiler/fuzzy.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/fuzzy.js.diff
@@ -1,33 +1,10 @@
 --- old.fuzzy.js
 +++ new.fuzzy.js
-@@= skipped -34, +34 lines =@@
- //// [fuzzy.js]
+@@= skipped -35, +35 lines =@@
  var M;
  (function (M) {
--    var C = /** @class */ (function () {
--        function C(x) {
-+    class C {
+     class C {
 +        x;
-+        constructor(x) {
+         constructor(x) {
              this.x = x;
-         }
--        C.prototype.works = function () {
-+        works() {
-             return ({ anything: 1 });
--        };
--        C.prototype.doesntWork = function () {
-+        }
-+        doesntWork() {
-             return { anything: 1, oneI: this };
--        };
--        C.prototype.worksToo = function () {
-+        }
-+        worksToo() {
-             return ({ oneI: this });
--        };
--        return C;
--    }());
-+        }
-+    }
-     M.C = C;
- })(M || (M = {}));
\ No newline at end of file
+         }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/generativeRecursionWithTypeOf.js.diff b/testdata/baselines/reference/submodule/compiler/generativeRecursionWithTypeOf.js.diff
index fe4a8713c2..13a003ed26 100644
--- a/testdata/baselines/reference/submodule/compiler/generativeRecursionWithTypeOf.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/generativeRecursionWithTypeOf.js.diff
@@ -1,19 +1,10 @@
 --- old.generativeRecursionWithTypeOf.js
 +++ new.generativeRecursionWithTypeOf.js
-@@= skipped -12, +12 lines =@@
- }
-
+@@= skipped -14, +14 lines =@@
  //// [generativeRecursionWithTypeOf.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.foo = function (x) { };
--    return C;
--}());
-+class C {
-+    static foo(x) { }
+ class C {
+     static foo(x) { }
 +    type;
-+}
+ }
  var M;
- (function (M) {
-     function f(x) {
\ No newline at end of file
+ (function (M) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/generatorTransformFinalLabel.js.diff b/testdata/baselines/reference/submodule/compiler/generatorTransformFinalLabel.js.diff
index 288db306b8..738795692e 100644
--- a/testdata/baselines/reference/submodule/compiler/generatorTransformFinalLabel.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/generatorTransformFinalLabel.js.diff
@@ -5,19 +5,13 @@
 
  //// [generatorTransformFinalLabel.js]
 -function test(skip) {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!!skip) return [3 /*break*/, 2];
--                    return [4 /*yield*/, 1];
--                case 1:
--                    _a.sent();
--                    return [3 /*break*/, 3];
--                case 2: throw Error('test');
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        if (!skip) {
+-            yield 1;
+-        }
+-        else {
+-            throw Error('test');
+-        }
 -    });
 +async function test(skip) {
 +    if (!skip) {
diff --git a/testdata/baselines/reference/submodule/compiler/genericArray1.js.diff b/testdata/baselines/reference/submodule/compiler/genericArray1.js.diff
index 5704fc65ee..e90d5f35fc 100644
--- a/testdata/baselines/reference/submodule/compiler/genericArray1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericArray1.js.diff
@@ -1,11 +1,6 @@
 --- old.genericArray1.js
 +++ new.genericArray1.js
-@@= skipped -27, +27 lines =@@
-     length: number;
- }
- */
--var lengths = ["a", "b", "c"].map(function (x) { return x.length; });
-+var lengths = ["a", "b", "c"].map(x => x.length);
+@@= skipped -31, +31 lines =@@
 
 
  //// [genericArray1.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/genericArrayWithoutTypeAnnotation.js.diff b/testdata/baselines/reference/submodule/compiler/genericArrayWithoutTypeAnnotation.js.diff
deleted file mode 100644
index 054ab5e3c0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericArrayWithoutTypeAnnotation.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.genericArrayWithoutTypeAnnotation.js
-+++ new.genericArrayWithoutTypeAnnotation.js
-@@= skipped -9, +9 lines =@@
-
-
- //// [genericArrayWithoutTypeAnnotation.js]
--var Bar = /** @class */ (function () {
--    function Bar() {
-+class Bar {
-+    getBar(foo) {
-     }
--    Bar.prototype.getBar = function (foo) {
--    };
--    return Bar;
--}());
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericAssignmentCompatWithInterfaces1.js.diff b/testdata/baselines/reference/submodule/compiler/genericAssignmentCompatWithInterfaces1.js.diff
deleted file mode 100644
index 2a618a71d8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericAssignmentCompatWithInterfaces1.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.genericAssignmentCompatWithInterfaces1.js
-+++ new.genericAssignmentCompatWithInterfaces1.js
-@@= skipped -21, +21 lines =@@
-
-
- //// [genericAssignmentCompatWithInterfaces1.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.compareTo = function (other) { return 1; };
--    return A;
--}());
-+class A {
-+    compareTo(other) { return 1; }
-+}
- var z = { x: new A() };
- var a1 = { x: new A() };
- var a2 = function () {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericBaseClassLiteralProperty.js.diff b/testdata/baselines/reference/submodule/compiler/genericBaseClassLiteralProperty.js.diff
index c8321af2f9..629184eaa4 100644
--- a/testdata/baselines/reference/submodule/compiler/genericBaseClassLiteralProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericBaseClassLiteralProperty.js.diff
@@ -1,45 +1,11 @@
 --- old.genericBaseClassLiteralProperty.js
 +++ new.genericBaseClassLiteralProperty.js
-@@= skipped -14, +14 lines =@@
- }
+@@= skipped -15, +15 lines =@@
 
  //// [genericBaseClassLiteralProperty.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var BaseClass = /** @class */ (function () {
--    function BaseClass() {
--    }
--    return BaseClass;
--}());
--var SubClass = /** @class */ (function (_super) {
--    __extends(SubClass, _super);
--    function SubClass() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    SubClass.prototype.Error = function () {
-+class BaseClass {
+ class BaseClass {
 +    _getValue1;
 +    _getValue2;
-+}
-+class SubClass extends BaseClass {
-+    Error() {
-         var x = this._getValue1();
-         var y = this._getValue2();
--    };
--    return SubClass;
--}(BaseClass));
-+    }
-+}
\ No newline at end of file
+ }
+ class SubClass extends BaseClass {
+     Error() {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericBaseClassLiteralProperty2.js.diff b/testdata/baselines/reference/submodule/compiler/genericBaseClassLiteralProperty2.js.diff
index 41889e557c..d25e49f121 100644
--- a/testdata/baselines/reference/submodule/compiler/genericBaseClassLiteralProperty2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericBaseClassLiteralProperty2.js.diff
@@ -1,52 +1,10 @@
 --- old.genericBaseClassLiteralProperty2.js
 +++ new.genericBaseClassLiteralProperty2.js
-@@= skipped -17, +17 lines =@@
-
-
- //// [genericBaseClassLiteralProperty2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var CollectionItem2 = /** @class */ (function () {
--    function CollectionItem2() {
--    }
--    return CollectionItem2;
--}());
--var BaseCollection2 = /** @class */ (function () {
--    function BaseCollection2() {
-+class CollectionItem2 {
-+}
-+class BaseCollection2 {
+@@= skipped -20, +20 lines =@@
+ class CollectionItem2 {
+ }
+ class BaseCollection2 {
 +    _itemsByKey;
-+    constructor() {
+     constructor() {
          this._itemsByKey = {};
-     }
--    return BaseCollection2;
--}());
--var DataView2 = /** @class */ (function (_super) {
--    __extends(DataView2, _super);
--    function DataView2() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    DataView2.prototype.fillItems = function (item) {
-+}
-+class DataView2 extends BaseCollection2 {
-+    fillItems(item) {
-         this._itemsByKey['dummy'] = item;
--    };
--    return DataView2;
--}(BaseCollection2));
-+    }
-+}
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericCallWithFixedArguments.js.diff b/testdata/baselines/reference/submodule/compiler/genericCallWithFixedArguments.js.diff
deleted file mode 100644
index 40b816e036..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericCallWithFixedArguments.js.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- old.genericCallWithFixedArguments.js
-+++ new.genericCallWithFixedArguments.js
-@@= skipped -9, +9 lines =@@
-
-
- //// [genericCallWithFixedArguments.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.foo = function () { };
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--    }
--    B.prototype.bar = function () { };
--    return B;
--}());
-+class A {
-+    foo() { }
-+}
-+class B {
-+    bar() { }
-+}
- function g(x) { }
- g(7); // the parameter list is fixed, so this should not error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericCallWithinOwnBodyCastTypeParameterIdentity.js.diff b/testdata/baselines/reference/submodule/compiler/genericCallWithinOwnBodyCastTypeParameterIdentity.js.diff
index cad463d514..fce0cfae13 100644
--- a/testdata/baselines/reference/submodule/compiler/genericCallWithinOwnBodyCastTypeParameterIdentity.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericCallWithinOwnBodyCastTypeParameterIdentity.js.diff
@@ -5,35 +5,6 @@
 
  //// [genericCallWithinOwnBodyCastTypeParameterIdentity.js]
 -"use strict";
--var toThenable = function (fn) {
--    return function (input) {
--        var result = fn(input);
--        return {
--            then: function (onFulfilled) {
--                return toThenable(onFulfilled)(result);
--            }
--        };
-+const toThenable = (fn) => (input) => {
-+    const result = fn(input);
-+    return {
-+        then(onFulfilled) {
-+            return toThenable(onFulfilled)(result);
-+        }
-     };
- };
--var toThenableInferred = function (fn) {
--    return function (input) {
--        var result = fn(input);
--        return {
--            then: function (onFulfilled) {
--                return toThenableInferred(onFulfilled)(result);
--            }
--        };
-+const toThenableInferred = (fn) => (input) => {
-+    const result = fn(input);
-+    return {
-+        then(onFulfilled) {
-+            return toThenableInferred(onFulfilled)(result);
-+        }
-     };
- };
\ No newline at end of file
+ const toThenable = (fn) => (input) => {
+     const result = fn(input);
+     return {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericCallbacksAndClassHierarchy.js.diff b/testdata/baselines/reference/submodule/compiler/genericCallbacksAndClassHierarchy.js.diff
index bbed45594f..cc0c97680f 100644
--- a/testdata/baselines/reference/submodule/compiler/genericCallbacksAndClassHierarchy.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericCallbacksAndClassHierarchy.js.diff
@@ -1,71 +1,14 @@
 --- old.genericCallbacksAndClassHierarchy.js
 +++ new.genericCallbacksAndClassHierarchy.js
-@@= skipped -25, +25 lines =@@
- }
-
- //// [genericCallbacksAndClassHierarchy.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
+@@= skipped -28, +28 lines =@@
  var M;
  (function (M) {
--    var C1 = /** @class */ (function () {
--        function C1() {
--        }
--        return C1;
--    }());
-+    class C1 {
+     class C1 {
 +        value;
-+    }
+     }
      M.C1 = C1;
--    var A = /** @class */ (function () {
--        function A() {
--        }
--        return A;
--    }());
-+    class A {
+     class A {
 +        dummy;
-+    }
+     }
      M.A = A;
--    var B = /** @class */ (function (_super) {
--        __extends(B, _super);
--        function B() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return B;
--    }(C1));
-+    class B extends C1 {
-+    }
-     M.B = B;
--    var D = /** @class */ (function () {
--        function D() {
--        }
--        D.prototype._subscribe = function (viewModel) {
--            var f = function (newValue) { };
-+    class D {
-+        _subscribe(viewModel) {
-+            var f = (newValue) => { };
-             var v = viewModel.value;
-             // both of these should work
-             v.subscribe(f);
--            v.subscribe(function (newValue) { });
--        };
--        return D;
--    }());
-+            v.subscribe((newValue) => { });
-+        }
-+    }
-     M.D = D;
- })(M || (M = {}));
\ No newline at end of file
+     class B extends C1 {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericChainedCalls.js.diff b/testdata/baselines/reference/submodule/compiler/genericChainedCalls.js.diff
deleted file mode 100644
index abb8bfb2cf..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericChainedCalls.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.genericChainedCalls.js
-+++ new.genericChainedCalls.js
-@@= skipped -16, +16 lines =@@
-
-
- //// [genericChainedCalls.js]
--var r1 = v1.func(function (num) { return num.toString(); })
--    .func(function (str) { return str.length; }) // error, number doesn't have a length
--    .func(function (num) { return num.toString(); });
--var s1 = v1.func(function (num) { return num.toString(); });
--var s2 = s1.func(function (str) { return str.length; }); // should also error
--var s3 = s2.func(function (num) { return num.toString(); });
-+var r1 = v1.func(num => num.toString())
-+    .func(str => str.length) // error, number doesn't have a length
-+    .func(num => num.toString());
-+var s1 = v1.func(num => num.toString());
-+var s2 = s1.func(str => str.length); // should also error
-+var s3 = s2.func(num => num.toString());
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericClassImplementingGenericInterfaceFromAnotherModule.js.diff b/testdata/baselines/reference/submodule/compiler/genericClassImplementingGenericInterfaceFromAnotherModule.js.diff
deleted file mode 100644
index a0281da404..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericClassImplementingGenericInterfaceFromAnotherModule.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.genericClassImplementingGenericInterfaceFromAnotherModule.js
-+++ new.genericClassImplementingGenericInterfaceFromAnotherModule.js
-@@= skipped -11, +11 lines =@@
- //// [genericClassImplementingGenericInterfaceFromAnotherModule.js]
- var bar;
- (function (bar) {
--    var Foo = /** @class */ (function () {
--        function Foo() {
--        }
--        return Foo;
--    }());
-+    class Foo {
-+    }
-     bar.Foo = Foo;
- })(bar || (bar = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/genericClassInheritsConstructorFromNonGenericClass.js.diff b/testdata/baselines/reference/submodule/compiler/genericClassInheritsConstructorFromNonGenericClass.js.diff
deleted file mode 100644
index cb9e355afe..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericClassInheritsConstructorFromNonGenericClass.js.diff
+++ /dev/null
@@ -1,47 +0,0 @@
---- old.genericClassInheritsConstructorFromNonGenericClass.js
-+++ new.genericClassInheritsConstructorFromNonGenericClass.js
-@@= skipped -7, +7 lines =@@
- }
-
- //// [genericClassInheritsConstructorFromNonGenericClass.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function (_super) {
--    __extends(A, _super);
--    function A() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return A;
--}(B));
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(C));
--var C = /** @class */ (function () {
--    function C(p) {
--    }
--    return C;
--}());
-+class A extends B {
-+}
-+class B extends C {
-+}
-+class C {
-+    constructor(p) { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericClassPropertyInheritanceSpecialization.js.diff b/testdata/baselines/reference/submodule/compiler/genericClassPropertyInheritanceSpecialization.js.diff
index d03f43cf24..c348469440 100644
--- a/testdata/baselines/reference/submodule/compiler/genericClassPropertyInheritanceSpecialization.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericClassPropertyInheritanceSpecialization.js.diff
@@ -1,24 +1,7 @@
 --- old.genericClassPropertyInheritanceSpecialization.js
 +++ new.genericClassPropertyInheritanceSpecialization.js
-@@= skipped -77, +77 lines =@@
-
-
+@@= skipped -79, +79 lines =@@
  //// [genericClassPropertyInheritanceSpecialization.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  var Portal;
  (function (Portal) {
 -    var Controls;
@@ -27,25 +10,15 @@
 -        var Validators;
 +        let Validators;
          (function (Validators) {
--            var Validator = /** @class */ (function () {
--                function Validator(message) {
--                }
--                Validator.prototype.destroy = function () { };
--                Validator.prototype._validate = function (value) { return 0; };
--                return Validator;
--            }());
-+            class Validator {
+             class Validator {
 +                _subscription;
 +                message;
 +                validationState;
 +                validate;
-+                constructor(message) { }
-+                destroy() { }
-+                _validate(value) { return 0; }
-+            }
-             Validators.Validator = Validator;
-         })(Validators = Controls.Validators || (Controls.Validators = {}));
-     })(Controls = Portal.Controls || (Portal.Controls = {}));
+                 constructor(message) { }
+                 destroy() { }
+                 _validate(value) { return 0; }
+@@= skipped -15, +19 lines =@@
  })(Portal || (Portal = {}));
  var PortalFx;
  (function (PortalFx) {
@@ -58,28 +31,14 @@
 -            var Validators;
 +            let Validators;
              (function (Validators) {
--                var Validator = /** @class */ (function (_super) {
--                    __extends(Validator, _super);
--                    function Validator(message) {
--                        return _super.call(this, message) || this;
-+                class Validator extends Portal.Controls.Validators.Validator {
-+                    constructor(message) {
-+                        super(message);
-                     }
--                    return Validator;
--                }(Portal.Controls.Validators.Validator));
-+                }
-                 Validators.Validator = Validator;
-             })(Validators = Controls.Validators || (Controls.Validators = {}));
-         })(Controls = ViewModels.Controls || (ViewModels.Controls = {}));
+                 class Validator extends Portal.Controls.Validators.Validator {
+                     constructor(message) {
+@@= skipped -17, +17 lines =@@
      })(ViewModels = PortalFx.ViewModels || (PortalFx.ViewModels = {}));
  })(PortalFx || (PortalFx = {}));
--var ViewModel = /** @class */ (function () {
--    function ViewModel() {
+ class ViewModel {
+-    constructor() {
 -        this.validators = ko.observableArray();
 -    }
--    return ViewModel;
--}());
-+class ViewModel {
 +    validators = ko.observableArray();
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericClassStaticMethod.js.diff b/testdata/baselines/reference/submodule/compiler/genericClassStaticMethod.js.diff
deleted file mode 100644
index 703c97625c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericClassStaticMethod.js.diff
+++ /dev/null
@@ -1,45 +0,0 @@
---- old.genericClassStaticMethod.js
-+++ new.genericClassStaticMethod.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [genericClassStaticMethod.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    Foo.getFoo = function () {
--    };
--    return Foo;
--}());
--var Bar = /** @class */ (function (_super) {
--    __extends(Bar, _super);
--    function Bar() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Bar.getFoo = function () {
--    };
--    return Bar;
--}(Foo));
-+class Foo {
-+    static getFoo() {
-+    }
-+}
-+class Bar extends Foo {
-+    static getFoo() {
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericClassWithStaticFactory.js.diff b/testdata/baselines/reference/submodule/compiler/genericClassWithStaticFactory.js.diff
index 55fe01c8c2..ad11c0d8a0 100644
--- a/testdata/baselines/reference/submodule/compiler/genericClassWithStaticFactory.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericClassWithStaticFactory.js.diff
@@ -1,160 +1,14 @@
 --- old.genericClassWithStaticFactory.js
 +++ new.genericClassWithStaticFactory.js
-@@= skipped -145, +145 lines =@@
- //// [genericClassWithStaticFactory.js]
+@@= skipped -146, +146 lines =@@
  var Editor;
  (function (Editor) {
--    var List = /** @class */ (function () {
--        function List(isHead, data) {
-+    class List {
+     class List {
 +        isHead;
 +        data;
 +        next;
 +        prev;
 +        listFactory;
-+        constructor(isHead, data) {
+         constructor(isHead, data) {
              this.isHead = isHead;
-             this.data = data;
-             this.listFactory = new ListFactory();
-         }
--        List.prototype.add = function (data) {
-+        add(data) {
-             var entry = this.listFactory.MakeEntry(data);
-             this.prev.next = entry;
-             entry.next = this;
-             entry.prev = this.prev;
-             this.prev = entry;
-             return entry;
--        };
--        List.prototype.count = function () {
-+        }
-+        count() {
-             var entry;
-             var i;
-             entry = this.next;
-@@= skipped -22, +27 lines =@@
-                 entry = entry.next;
-             }
-             return (i);
--        };
--        List.prototype.isEmpty = function () {
-+        }
-+        isEmpty() {
-             return (this.next == this);
--        };
--        List.prototype.first = function () {
-+        }
-+        first() {
-             if (this.isEmpty()) {
-                 return this.next.data;
-             }
-             else {
-                 return null;
-             }
--        };
--        List.prototype.pushEntry = function (entry) {
-+        }
-+        pushEntry(entry) {
-             entry.isHead = false;
-             entry.next = this.next;
-             entry.prev = this;
-             this.next = entry;
-             entry.next.prev = entry; // entry.next.prev does not show intellisense, but entry.prev.prev does
--        };
--        List.prototype.push = function (data) {
-+        }
-+        push(data) {
-             var entry = this.listFactory.MakeEntry(data);
-             entry.data = data;
-             entry.isHead = false;
-@@= skipped -27, +27 lines =@@
-             entry.prev = this;
-             this.next = entry;
-             entry.next.prev = entry; // entry.next.prev does not show intellisense, but entry.prev.prev does
--        };
--        List.prototype.popEntry = function (head) {
-+        }
-+        popEntry(head) {
-             if (this.next.isHead) {
-                 return null;
-             }
-             else {
-                 return this.listFactory.RemoveEntry(this.next);
-             }
--        };
--        List.prototype.insertEntry = function (entry) {
-+        }
-+        insertEntry(entry) {
-             entry.isHead = false;
-             this.prev.next = entry;
-             entry.next = this;
-             entry.prev = this.prev;
-             this.prev = entry;
-             return entry;
--        };
--        List.prototype.insertAfter = function (data) {
-+        }
-+        insertAfter(data) {
-             var entry = this.listFactory.MakeEntry(data);
-             entry.next = this.next;
-             entry.prev = this;
-             this.next = entry;
-             entry.next.prev = entry; // entry.next.prev does not show intellisense, but entry.prev.prev does
-             return entry;
--        };
--        List.prototype.insertEntryBefore = function (entry) {
-+        }
-+        insertEntryBefore(entry) {
-             this.prev.next = entry;
-             entry.next = this;
-             entry.prev = this.prev;
-             this.prev = entry;
-             return entry;
--        };
--        List.prototype.insertBefore = function (data) {
-+        }
-+        insertBefore(data) {
-             var entry = this.listFactory.MakeEntry(data);
-             return this.insertEntryBefore(entry);
--        };
--        return List;
--    }());
-+        }
-+    }
-     Editor.List = List;
--    var ListFactory = /** @class */ (function () {
--        function ListFactory() {
--        }
--        ListFactory.prototype.MakeHead = function () {
-+    class ListFactory {
-+        MakeHead() {
-             var entry = new List(true, null);
-             entry.prev = entry;
-             entry.next = entry;
-             return entry;
--        };
--        ListFactory.prototype.MakeEntry = function (data) {
-+        }
-+        MakeEntry(data) {
-             var entry = new List(false, data);
-             entry.prev = entry;
-             entry.next = entry;
-             return entry;
--        };
--        ListFactory.prototype.RemoveEntry = function (entry) {
-+        }
-+        RemoveEntry(entry) {
-             if (entry == null) {
-                 return null;
-             }
-@@= skipped -67, +64 lines =@@
-                 entry.prev.next = entry.next;
-                 return entry;
-             }
--        };
--        return ListFactory;
--    }());
-+        }
-+    }
-     Editor.ListFactory = ListFactory;
- })(Editor || (Editor = {}));
\ No newline at end of file
+             this.data = data;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericClassWithStaticsUsingTypeArguments.js.diff b/testdata/baselines/reference/submodule/compiler/genericClassWithStaticsUsingTypeArguments.js.diff
index 9552264032..0a9021b60f 100644
--- a/testdata/baselines/reference/submodule/compiler/genericClassWithStaticsUsingTypeArguments.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericClassWithStaticsUsingTypeArguments.js.diff
@@ -4,10 +4,11 @@
 
  //// [genericClassWithStaticsUsingTypeArguments.js]
  // Should be error to use 'T' in all declarations within Foo.
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    Foo.f = function (xs) {
+-let Foo = (() => {
+-    class Foo {
+-        static f(xs) {
+-            return xs.reverse();
+-        }
 +class Foo {
 +    static a = (n) => { };
 +    static b;
@@ -15,13 +16,12 @@
 +    static d = false || ((x) => x || undefined)(null);
 +    static e = function (x) { return null; };
 +    static f(xs) {
-         return xs.reverse();
--    };
--    Foo.a = function (n) { };
++        return xs.reverse();
+     }
+-    Foo.a = (n) => { };
 -    Foo.c = [];
--    Foo.d = false || (function (x) { return x || undefined; })(null);
+-    Foo.d = false || ((x) => x || undefined)(null);
 -    Foo.e = function (x) { return null; };
 -    return Foo;
--}());
-+    }
+-})();
 +}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses0.js.diff b/testdata/baselines/reference/submodule/compiler/genericClasses0.js.diff
index efd3eb3b48..6c42e160fc 100644
--- a/testdata/baselines/reference/submodule/compiler/genericClasses0.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericClasses0.js.diff
@@ -1,21 +1,14 @@
 --- old.genericClasses0.js
 +++ new.genericClasses0.js
-@@= skipped -9, +9 lines =@@
- var y = v1.x; // should be 'string'
+@@= skipped -10, +10 lines =@@
 
  //// [genericClasses0.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    x;
-+}
+ }
  var v1;
  var y = v1.x; // should be 'string'
-
-@@= skipped -14, +12 lines =@@
+@@= skipped -10, +11 lines =@@
      x: T;
  }
  declare var v1: C;
diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses1.js.diff b/testdata/baselines/reference/submodule/compiler/genericClasses1.js.diff
index 33471d1c4a..4a2761f1fc 100644
--- a/testdata/baselines/reference/submodule/compiler/genericClasses1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericClasses1.js.diff
@@ -1,21 +1,14 @@
 --- old.genericClasses1.js
 +++ new.genericClasses1.js
-@@= skipped -9, +9 lines =@@
- var y = v1.x; // should be 'string'
+@@= skipped -10, +10 lines =@@
 
  //// [genericClasses1.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    x;
-+}
+ }
  var v1 = new C();
  var y = v1.x; // should be 'string'
-
-@@= skipped -14, +12 lines =@@
+@@= skipped -10, +11 lines =@@
      x: T;
  }
  declare var v1: C;
diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses2.js.diff b/testdata/baselines/reference/submodule/compiler/genericClasses2.js.diff
index 9e09b459ce..b1631843d1 100644
--- a/testdata/baselines/reference/submodule/compiler/genericClasses2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericClasses2.js.diff
@@ -1,23 +1,16 @@
 --- old.genericClasses2.js
 +++ new.genericClasses2.js
-@@= skipped -17, +17 lines =@@
- var z = v1.z.a; // should be 'number'
+@@= skipped -18, +18 lines =@@
 
  //// [genericClasses2.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    x;
 +    y;
 +    z;
-+}
+ }
  var v1;
  var y = v1.x; // should be 'string'
- var w = v1.y.a; // should be 'string'
-@@= skipped -21, +21 lines =@@
+@@= skipped -17, +20 lines =@@
      z: Foo;
  }
  declare var v1: C;
diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses3.js.diff b/testdata/baselines/reference/submodule/compiler/genericClasses3.js.diff
index f6e7811974..e8a3a6a883 100644
--- a/testdata/baselines/reference/submodule/compiler/genericClasses3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericClasses3.js.diff
@@ -1,47 +1,18 @@
 --- old.genericClasses3.js
 +++ new.genericClasses3.js
-@@= skipped -19, +19 lines =@@
-
+@@= skipped -20, +20 lines =@@
 
  //// [genericClasses3.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var B = /** @class */ (function () {
--    function B() {
--    }
--    return B;
--}());
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(B));
-+class B {
+ class B {
 +    a;
 +    b;
-+}
-+class C extends B {
+ }
+ class C extends B {
 +    x;
-+}
+ }
  var v2;
  var y = v2.x; // should be 'string'
- var u = v2.a; // should be 'string'
-@@= skipped -42, +22 lines =@@
+@@= skipped -18, +21 lines =@@
      x: T;
  }
  declare var v2: C;
diff --git a/testdata/baselines/reference/submodule/compiler/genericClasses4.js.diff b/testdata/baselines/reference/submodule/compiler/genericClasses4.js.diff
index 4b658ca3ba..0c80e3a412 100644
--- a/testdata/baselines/reference/submodule/compiler/genericClasses4.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericClasses4.js.diff
@@ -1,34 +1,11 @@
 --- old.genericClasses4.js
 +++ new.genericClasses4.js
-@@= skipped -20, +20 lines =@@
-
+@@= skipped -21, +21 lines =@@
  //// [genericClasses4.js]
  // once caused stack overflow
--var Vec2_T = /** @class */ (function () {
--    function Vec2_T(x, y) {
-+class Vec2_T {
+ class Vec2_T {
 +    x;
 +    y;
-+    constructor(x, y) {
+     constructor(x, y) {
          this.x = x;
-         this.y = y;
-     }
--    Vec2_T.prototype.fmap = function (f) {
-+    fmap(f) {
-         var x = f(this.x);
-         var y = f(this.y);
-         var retval = new Vec2_T(x, y);
-         return retval;
--    };
--    Vec2_T.prototype.apply = function (f) {
-+    }
-+    apply(f) {
-         var x = f.x(this.x);
-         var y = f.y(this.y);
-         var retval = new Vec2_T(x, y);
-         return retval;
--    };
--    return Vec2_T;
--}());
-+    }
-+}
\ No newline at end of file
+         this.y = y;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericClassesInModule.js.diff b/testdata/baselines/reference/submodule/compiler/genericClassesInModule.js.diff
deleted file mode 100644
index c2ce3462ad..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericClassesInModule.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.genericClassesInModule.js
-+++ new.genericClassesInModule.js
-@@= skipped -12, +12 lines =@@
- //// [genericClassesInModule.js]
- var Foo;
- (function (Foo) {
--    var B = /** @class */ (function () {
--        function B() {
--        }
--        return B;
--    }());
-+    class B {
-+    }
-     Foo.B = B;
--    var A = /** @class */ (function () {
--        function A() {
--        }
--        return A;
--    }());
-+    class A {
-+    }
-     Foo.A = A;
- })(Foo || (Foo = {}));
- var a = new Foo.B();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericClassesInModule2.js.diff b/testdata/baselines/reference/submodule/compiler/genericClassesInModule2.js.diff
index f823929828..63f574ea1e 100644
--- a/testdata/baselines/reference/submodule/compiler/genericClassesInModule2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericClassesInModule2.js.diff
@@ -8,23 +8,21 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.B = exports.A = void 0;
--    var A = /** @class */ (function () {
--        function A(callback) {
+-    class A {
+-        constructor(callback) {
 -            this.callback = callback;
 -            var child = new B(this);
 -        }
--        A.prototype.AAA = function (callback) {
+-        AAA(callback) {
 -            var child = new B(this);
--        };
--        return A;
--    }());
+-        }
+-    }
 -    exports.A = A;
--    var B = /** @class */ (function () {
--        function B(parent) {
+-    class B {
+-        constructor(parent) {
 -            this.parent = parent;
 -        }
--        return B;
--    }());
+-    }
 -    exports.B = B;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/genericCloduleInModule.js.diff b/testdata/baselines/reference/submodule/compiler/genericCloduleInModule.js.diff
deleted file mode 100644
index 2912bb6fc5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericCloduleInModule.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.genericCloduleInModule.js
-+++ new.genericCloduleInModule.js
-@@= skipped -16, +16 lines =@@
- //// [genericCloduleInModule.js]
- var A;
- (function (A) {
--    var B = /** @class */ (function () {
--        function B() {
--        }
--        B.prototype.foo = function () { };
--        B.bar = function () { };
--        return B;
--    }());
-+    class B {
-+        foo() { }
-+        static bar() { }
-+    }
-     A.B = B;
-     (function (B) {
-         B.x = 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericCloduleInModule2.js.diff b/testdata/baselines/reference/submodule/compiler/genericCloduleInModule2.js.diff
deleted file mode 100644
index b63d4f8f07..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericCloduleInModule2.js.diff
+++ /dev/null
@@ -1,25 +0,0 @@
---- old.genericCloduleInModule2.js
-+++ new.genericCloduleInModule2.js
-@@= skipped -19, +19 lines =@@
- //// [genericCloduleInModule2.js]
- var A;
- (function (A) {
--    var B = /** @class */ (function () {
--        function B() {
--        }
--        B.prototype.foo = function () { };
--        B.bar = function () { };
--        return B;
--    }());
-+    class B {
-+        foo() { }
-+        static bar() { }
-+    }
-     A.B = B;
- })(A || (A = {}));
- (function (A) {
--    var B;
-+    let B;
-     (function (B) {
-         B.x = 1;
-     })(B = A.B || (A.B = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericCloneReturnTypes.js.diff b/testdata/baselines/reference/submodule/compiler/genericCloneReturnTypes.js.diff
index 97eba7f7b2..0967b854fe 100644
--- a/testdata/baselines/reference/submodule/compiler/genericCloneReturnTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericCloneReturnTypes.js.diff
@@ -1,25 +1,11 @@
 --- old.genericCloneReturnTypes.js
 +++ new.genericCloneReturnTypes.js
-@@= skipped -27, +27 lines =@@
- b = b3;
+@@= skipped -28, +28 lines =@@
 
  //// [genericCloneReturnTypes.js]
--var Bar = /** @class */ (function () {
--    function Bar(x) {
-+class Bar {
+ class Bar {
 +    size;
 +    t;
-+    constructor(x) {
+     constructor(x) {
          this.size = x;
-     }
--    Bar.prototype.clone = function () {
-+    clone() {
-         return new Bar(this.size);
--    };
--    return Bar;
--}());
-+    }
-+}
- var b;
- var b2 = b.clone();
- var b3;
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericCloneReturnTypes2.js.diff b/testdata/baselines/reference/submodule/compiler/genericCloneReturnTypes2.js.diff
index f20612df69..d7976a4dd4 100644
--- a/testdata/baselines/reference/submodule/compiler/genericCloneReturnTypes2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericCloneReturnTypes2.js.diff
@@ -1,26 +1,11 @@
 --- old.genericCloneReturnTypes2.js
 +++ new.genericCloneReturnTypes2.js
-@@= skipped -17, +17 lines =@@
- var d: MyList = a.clone(); // error
+@@= skipped -18, +18 lines =@@
 
  //// [genericCloneReturnTypes2.js]
--var MyList = /** @class */ (function () {
--    function MyList(n) {
-+class MyList {
+ class MyList {
 +    size;
 +    data;
-+    constructor(n) {
+     constructor(n) {
          this.size = n;
-         this.data = new Array(this.size);
-     }
--    MyList.prototype.clone = function () {
-+    clone() {
-         return new MyList(this.size);
--    };
--    return MyList;
--}());
-+    }
-+}
- var a;
- var b = a.clone(); // ok
- var c = a.clone(); // bug was there was an error on this line
\ No newline at end of file
+         this.data = new Array(this.size);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericCombinators2.js.diff b/testdata/baselines/reference/submodule/compiler/genericCombinators2.js.diff
deleted file mode 100644
index d9ba1ff5c5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericCombinators2.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.genericCombinators2.js
-+++ new.genericCombinators2.js
-@@= skipped -20, +20 lines =@@
- //// [genericCombinators2.js]
- var _;
- var c2;
--var rf1 = function (x, y) { return x.toFixed(); };
--var r5a = _.map(c2, function (x, y) { return x.toFixed(); });
-+var rf1 = (x, y) => { return x.toFixed(); };
-+var r5a = _.map(c2, (x, y) => { return x.toFixed(); });
- var r5b = _.map(c2, rf1);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericConstraint1.js.diff b/testdata/baselines/reference/submodule/compiler/genericConstraint1.js.diff
deleted file mode 100644
index 67651ee221..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericConstraint1.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.genericConstraint1.js
-+++ new.genericConstraint1.js
-@@= skipped -10, +10 lines =@@
- x.bar2(2, "");
-
- //// [genericConstraint1.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.bar2 = function (x, y) {
-+class C {
-+    bar2(x, y) {
-         return null;
--    };
--    return C;
--}());
-+    }
-+}
- var x = new C();
- x.bar2(2, "");
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericConstraint2.js.diff b/testdata/baselines/reference/submodule/compiler/genericConstraint2.js.diff
index e92782c443..7cb9f05300 100644
--- a/testdata/baselines/reference/submodule/compiler/genericConstraint2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericConstraint2.js.diff
@@ -1,24 +1,10 @@
 --- old.genericConstraint2.js
 +++ new.genericConstraint2.js
-@@= skipped -30, +30 lines =@@
-         return 1;
+@@= skipped -31, +31 lines =@@
      return x.comparer(y);
  }
--var ComparableString = /** @class */ (function () {
--    function ComparableString(currentValue) {
-+class ComparableString {
+ class ComparableString {
 +    currentValue;
-+    constructor(currentValue) {
+     constructor(currentValue) {
          this.currentValue = currentValue;
-     }
--    ComparableString.prototype.localeCompare = function (other) {
-+    localeCompare(other) {
-         return 0;
--    };
--    return ComparableString;
--}());
-+    }
-+}
- var a = new ComparableString("a");
- var b = new ComparableString("b");
- var c = compare(a, b);
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericConstraintDeclaration.js.diff b/testdata/baselines/reference/submodule/compiler/genericConstraintDeclaration.js.diff
deleted file mode 100644
index b2252a2be4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericConstraintDeclaration.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.genericConstraintDeclaration.js
-+++ new.genericConstraintDeclaration.js
-@@= skipped -10, +10 lines =@@
-
-
- //// [genericConstraintDeclaration.js]
--var List = /** @class */ (function () {
--    function List() {
--    }
--    List.empty = function () { return null; };
--    return List;
--}());
-+class List {
-+    static empty() { return null; }
-+}
-
-
- //// [genericConstraintDeclaration.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericConstraintOnExtendedBuiltinTypes.js.diff b/testdata/baselines/reference/submodule/compiler/genericConstraintOnExtendedBuiltinTypes.js.diff
index d9120f4a40..2b4991d68a 100644
--- a/testdata/baselines/reference/submodule/compiler/genericConstraintOnExtendedBuiltinTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericConstraintOnExtendedBuiltinTypes.js.diff
@@ -1,57 +1,26 @@
 --- old.genericConstraintOnExtendedBuiltinTypes.js
 +++ new.genericConstraintOnExtendedBuiltinTypes.js
-@@= skipped -28, +28 lines =@@
- }
-
+@@= skipped -30, +30 lines =@@
  //// [genericConstraintOnExtendedBuiltinTypes.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  var EndGate;
  (function (EndGate) {
 -    var Tweening;
 +    let Tweening;
      (function (Tweening) {
--        var Tween = /** @class */ (function () {
--            function Tween(from) {
-+        class Tween {
+         class Tween {
 +            _from;
-+            constructor(from) {
+             constructor(from) {
                  this._from = from.Clone();
              }
--            return Tween;
--        }());
-+        }
-         Tweening.Tween = Tween;
+@@= skipped -11, +12 lines =@@
      })(Tweening = EndGate.Tweening || (EndGate.Tweening = {}));
  })(EndGate || (EndGate = {}));
  (function (EndGate) {
 -    var Tweening;
 +    let Tweening;
      (function (Tweening) {
--        var NumberTween = /** @class */ (function (_super) {
--            __extends(NumberTween, _super);
--            function NumberTween(from) {
--                return _super.call(this, from) || this;
+-        class NumberTween extends Tweening.Tween {
 +        class NumberTween extends Tween {
-+            constructor(from) {
-+                super(from);
-             }
--            return NumberTween;
--        }(Tweening.Tween));
-+        }
-         Tweening.NumberTween = NumberTween;
-     })(Tweening = EndGate.Tweening || (EndGate.Tweening = {}));
- })(EndGate || (EndGate = {}));
\ No newline at end of file
+             constructor(from) {
+                 super(from);
+             }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericConstraintOnExtendedBuiltinTypes2.js.diff b/testdata/baselines/reference/submodule/compiler/genericConstraintOnExtendedBuiltinTypes2.js.diff
index 280ee0dae3..a01f10a4ce 100644
--- a/testdata/baselines/reference/submodule/compiler/genericConstraintOnExtendedBuiltinTypes2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericConstraintOnExtendedBuiltinTypes2.js.diff
@@ -1,57 +1,26 @@
 --- old.genericConstraintOnExtendedBuiltinTypes2.js
 +++ new.genericConstraintOnExtendedBuiltinTypes2.js
-@@= skipped -27, +27 lines =@@
- }
-
+@@= skipped -29, +29 lines =@@
  //// [genericConstraintOnExtendedBuiltinTypes2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  var EndGate;
  (function (EndGate) {
 -    var Tweening;
 +    let Tweening;
      (function (Tweening) {
--        var Tween = /** @class */ (function () {
--            function Tween(from) {
-+        class Tween {
+         class Tween {
 +            _from;
-+            constructor(from) {
+             constructor(from) {
                  this._from = from.Clone();
              }
--            return Tween;
--        }());
-+        }
-         Tweening.Tween = Tween;
+@@= skipped -11, +12 lines =@@
      })(Tweening = EndGate.Tweening || (EndGate.Tweening = {}));
  })(EndGate || (EndGate = {}));
  (function (EndGate) {
 -    var Tweening;
 +    let Tweening;
      (function (Tweening) {
--        var NumberTween = /** @class */ (function (_super) {
--            __extends(NumberTween, _super);
--            function NumberTween(from) {
--                return _super.call(this, from) || this;
+-        class NumberTween extends Tweening.Tween {
 +        class NumberTween extends Tween {
-+            constructor(from) {
-+                super(from);
-             }
--            return NumberTween;
--        }(Tweening.Tween));
-+        }
-         Tweening.NumberTween = NumberTween;
-     })(Tweening = EndGate.Tweening || (EndGate.Tweening = {}));
- })(EndGate || (EndGate = {}));
\ No newline at end of file
+             constructor(from) {
+                 super(from);
+             }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericContextualTypingSpecialization.js.diff b/testdata/baselines/reference/submodule/compiler/genericContextualTypingSpecialization.js.diff
deleted file mode 100644
index be37974dcc..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericContextualTypingSpecialization.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.genericContextualTypingSpecialization.js
-+++ new.genericContextualTypingSpecialization.js
-@@= skipped -5, +5 lines =@@
-
- //// [genericContextualTypingSpecialization.js]
- var b;
--b.reduce(function (c, d) { return c + d; }, 0); // should not error on '+'
-+b.reduce((c, d) => c + d, 0); // should not error on '+'
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericDefaults.js.diff b/testdata/baselines/reference/submodule/compiler/genericDefaults.js.diff
index 7d28c40f90..e38e2c9f68 100644
--- a/testdata/baselines/reference/submodule/compiler/genericDefaults.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericDefaults.js.diff
@@ -1,115 +1,6 @@
 --- old.genericDefaults.js
 +++ new.genericDefaults.js
-@@= skipped -811, +811 lines =@@
- f20(a);
- f20(a, b);
- f20(a, b, d);
--var i00c00 = x.a;
--var i00c01 = x.a;
--var i01c00 = x.a;
--var i01c01 = x.a;
--var i02c00 = x.a;
--var i02c01 = x.a;
--var i02c02 = x.a;
--var i02c03 = x.a;
--var i02c04 = x.a;
--var i03c00 = x.a;
--var i03c01 = x.a;
--var i03c02 = x.a;
--var i03c03 = x.a;
--var i03c04 = x.a;
--var i05c00 = x.a;
--var i05c01 = x.a;
--var i06c00 = x.a;
--var i06c01 = x.a;
--var i06c02 = x.a;
--var i07c00 = x.a;
--var i07c01 = x.b;
--var i07c02 = x.a;
--var i07c03 = x.b;
--var Base01c00 = new Base01();
--var Base01c01 = new Base01(1);
--var Base01c02 = new Base01();
--var Base01c03 = new Base01(1);
--var Derived01c00 = new Derived01();
--var Derived01c01 = new Derived01(1);
--var Derived01c02 = new Derived01();
--var Derived01c03 = new Derived01(1);
--var Derived02c00 = new Derived02();
--var Derived02c01 = new Derived02(1);
--var Derived02c02 = new Derived02();
--var Derived02c03 = new Derived02(1);
--var Derived03c00 = new Derived03(ab);
--var Derived03c01 = Derived03c00.a;
--var t00c00 = x.a;
--var t00c01 = x.a;
--var t01c00 = x.a;
--var t01c01 = x.a;
--var t02c00 = x.a;
--var t02c01 = x.a;
--var t02c02 = x.a;
--var t02c03 = x.a;
--var t02c04 = x.a;
--var t03c00 = x.a;
--var t03c01 = x.a;
--var t03c02 = x.a;
--var t03c03 = x.a;
--var t03c04 = x.a;
-+const i00c00 = x.a;
-+const i00c01 = x.a;
-+const i01c00 = x.a;
-+const i01c01 = x.a;
-+const i02c00 = x.a;
-+const i02c01 = x.a;
-+const i02c02 = x.a;
-+const i02c03 = x.a;
-+const i02c04 = x.a;
-+const i03c00 = x.a;
-+const i03c01 = x.a;
-+const i03c02 = x.a;
-+const i03c03 = x.a;
-+const i03c04 = x.a;
-+const i05c00 = x.a;
-+const i05c01 = x.a;
-+const i06c00 = x.a;
-+const i06c01 = x.a;
-+const i06c02 = x.a;
-+const i07c00 = x.a;
-+const i07c01 = x.b;
-+const i07c02 = x.a;
-+const i07c03 = x.b;
-+const Base01c00 = new Base01();
-+const Base01c01 = new Base01(1);
-+const Base01c02 = new Base01();
-+const Base01c03 = new Base01(1);
-+const Derived01c00 = new Derived01();
-+const Derived01c01 = new Derived01(1);
-+const Derived01c02 = new Derived01();
-+const Derived01c03 = new Derived01(1);
-+const Derived02c00 = new Derived02();
-+const Derived02c01 = new Derived02(1);
-+const Derived02c02 = new Derived02();
-+const Derived02c03 = new Derived02(1);
-+const Derived03c00 = new Derived03(ab);
-+const Derived03c01 = Derived03c00.a;
-+const t00c00 = x.a;
-+const t00c01 = x.a;
-+const t01c00 = x.a;
-+const t01c01 = x.a;
-+const t02c00 = x.a;
-+const t02c01 = x.a;
-+const t02c02 = x.a;
-+const t02c03 = x.a;
-+const t02c04 = x.a;
-+const t03c00 = x.a;
-+const t03c01 = x.a;
-+const t03c02 = x.a;
-+const t03c03 = x.a;
-+const t03c04 = x.a;
-
-
- //// [genericDefaults.d.ts]
-@@= skipped -81, +81 lines =@@
+@@= skipped -892, +892 lines =@@
  declare const ab: AB;
  declare const bc: BC;
  declare const x: any;
diff --git a/testdata/baselines/reference/submodule/compiler/genericDerivedTypeWithSpecializedBase.js.diff b/testdata/baselines/reference/submodule/compiler/genericDerivedTypeWithSpecializedBase.js.diff
index 9d8433662d..c5f9c209e3 100644
--- a/testdata/baselines/reference/submodule/compiler/genericDerivedTypeWithSpecializedBase.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericDerivedTypeWithSpecializedBase.js.diff
@@ -1,42 +1,13 @@
 --- old.genericDerivedTypeWithSpecializedBase.js
 +++ new.genericDerivedTypeWithSpecializedBase.js
-@@= skipped -14, +14 lines =@@
-
+@@= skipped -15, +15 lines =@@
 
  //// [genericDerivedTypeWithSpecializedBase.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class A {
+ class A {
 +    x;
-+}
-+class B extends A {
+ }
+ class B extends A {
 +    y;
-+}
+ }
  var x;
- var y;
- x = y; // error
\ No newline at end of file
+ var y;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericDerivedTypeWithSpecializedBase2.js.diff b/testdata/baselines/reference/submodule/compiler/genericDerivedTypeWithSpecializedBase2.js.diff
index 59beee2e3f..39ae8bc7da 100644
--- a/testdata/baselines/reference/submodule/compiler/genericDerivedTypeWithSpecializedBase2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericDerivedTypeWithSpecializedBase2.js.diff
@@ -1,42 +1,13 @@
 --- old.genericDerivedTypeWithSpecializedBase2.js
 +++ new.genericDerivedTypeWithSpecializedBase2.js
-@@= skipped -14, +14 lines =@@
-
+@@= skipped -15, +15 lines =@@
 
  //// [genericDerivedTypeWithSpecializedBase2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class A {
+ class A {
 +    x;
-+}
-+class B extends A {
+ }
+ class B extends A {
 +    y;
-+}
+ }
  var x;
- var y;
- x = y; // error
\ No newline at end of file
+ var y;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctionHasFreshTypeArgs.js.diff b/testdata/baselines/reference/submodule/compiler/genericFunctionHasFreshTypeArgs.js.diff
deleted file mode 100644
index dd150a208f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericFunctionHasFreshTypeArgs.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.genericFunctionHasFreshTypeArgs.js
-+++ new.genericFunctionHasFreshTypeArgs.js
-@@= skipped -6, +6 lines =@@
- //// [genericFunctionHasFreshTypeArgs.js]
- function f(p) { }
- ;
--f(function (x) { return f(function (y) { return x = y; }); });
-+f(x => f(y => x = y));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctionInference2.js.diff b/testdata/baselines/reference/submodule/compiler/genericFunctionInference2.js.diff
index 3c15a99066..57fccd601a 100644
--- a/testdata/baselines/reference/submodule/compiler/genericFunctionInference2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericFunctionInference2.js.diff
@@ -5,24 +5,6 @@
 
  //// [genericFunctionInference2.js]
 -// Repro from #30685
--var myReducer1 = combineReducers({
--    combined: combineReducers({ foo: foo }),
--});
--var myReducer2 = combineReducers({
--    combined: combineReducers({ foo: foo }),
--});
--var enhancer4 = withH(function (props) { return ({
--    onChange: function (props) { return function (e) { }; },
--    onSubmit: function (props) { return function (e) { }; },
--}); });
-+const myReducer1 = combineReducers({
-+    combined: combineReducers({ foo }),
-+});
-+const myReducer2 = combineReducers({
-+    combined: combineReducers({ foo }),
-+});
-+const enhancer4 = withH((props) => ({
-+    onChange: (props) => (e) => { },
-+    onSubmit: (props) => (e) => { },
-+}));
- enhancer4.onChange(null);
\ No newline at end of file
+ const myReducer1 = combineReducers({
+     combined: combineReducers({ foo }),
+ });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctionTypedArgumentsAreFixed.js.diff b/testdata/baselines/reference/submodule/compiler/genericFunctionTypedArgumentsAreFixed.js.diff
deleted file mode 100644
index 71cc7f9be0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericFunctionTypedArgumentsAreFixed.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.genericFunctionTypedArgumentsAreFixed.js
-+++ new.genericFunctionTypedArgumentsAreFixed.js
-@@= skipped -4, +4 lines =@@
- map((a) => a.length, [1]);
-
- //// [genericFunctionTypedArgumentsAreFixed.js]
--map(function (a) { return a.length; }, [1]);
-+map((a) => a.length, [1]);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctions2.js.diff b/testdata/baselines/reference/submodule/compiler/genericFunctions2.js.diff
deleted file mode 100644
index 94331bb5cd..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericFunctions2.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.genericFunctions2.js
-+++ new.genericFunctions2.js
-@@= skipped -9, +9 lines =@@
-
- //// [genericFunctions2.js]
- var myItems;
--var lengths = map(myItems, function (x) { return x.length; });
-+var lengths = map(myItems, x => x.length);
-
-
- //// [genericFunctions2.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctionsAndConditionalInference.js.diff b/testdata/baselines/reference/submodule/compiler/genericFunctionsAndConditionalInference.js.diff
deleted file mode 100644
index a4793beedf..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericFunctionsAndConditionalInference.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.genericFunctionsAndConditionalInference.js
-+++ new.genericFunctionsAndConditionalInference.js
-@@= skipped -43, +43 lines =@@
- function foo(obj) {
-     return unboxify(obj);
- }
--var qq = foo({ u: { value: 10 }, v: { value: 'hello' } }); // { u: U, v: V } but should be { u: number, v: string }
--var left = {};
--var right = {};
--var ok = function (at) { return ({ lr: at.lr(at.str, at.num) }); };
--var orphaned = function (at) { return at.dict(ok(at)); };
--var leftOk = ok(left);
--var leftOrphaned = orphaned(left);
--var rightOk = ok(right);
--var rightOrphaned = orphaned(right);
-+let qq = foo({ u: { value: 10 }, v: { value: 'hello' } }); // { u: U, v: V } but should be { u: number, v: string }
-+const left = {};
-+const right = {};
-+const ok = (at) => ({ lr: at.lr(at.str, at.num) });
-+const orphaned = (at) => at.dict(ok(at));
-+const leftOk = ok(left);
-+const leftOrphaned = orphaned(left);
-+const rightOk = ok(right);
-+const rightOrphaned = orphaned(right);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctionsNotContextSensitive.js.diff b/testdata/baselines/reference/submodule/compiler/genericFunctionsNotContextSensitive.js.diff
index 43568a3149..e734247968 100644
--- a/testdata/baselines/reference/submodule/compiler/genericFunctionsNotContextSensitive.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericFunctionsNotContextSensitive.js.diff
@@ -6,7 +6,5 @@
  //// [genericFunctionsNotContextSensitive.js]
 -"use strict";
  // Repro from #37110
--var f = function (_) { return _; };
--var a = f(function (_) { return function (_) { return ({}); }; }); // (_: K) => (_: G) => {}
-+const f = (_) => _;
-+const a = f((_) => _ => ({})); // (_: K) => (_: G) => {}
\ No newline at end of file
+ const f = (_) => _;
+ const a = f((_) => _ => ({})); // (_: K) => (_: G) => {}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericFunctionsWithOptionalParameters3.js.diff b/testdata/baselines/reference/submodule/compiler/genericFunctionsWithOptionalParameters3.js.diff
deleted file mode 100644
index bdbd850c8b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericFunctionsWithOptionalParameters3.js.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- old.genericFunctionsWithOptionalParameters3.js
-+++ new.genericFunctionsWithOptionalParameters3.js
-@@= skipped -17, +17 lines =@@
-
-
- //// [genericFunctionsWithOptionalParameters3.js]
--var Collection = /** @class */ (function () {
--    function Collection() {
--    }
--    Collection.prototype.add = function (x) { };
--    return Collection;
--}());
-+class Collection {
-+    add(x) { }
-+}
- var utils;
- var c = new Collection();
--var r3 = utils.mapReduce(c, function (x) { return 1; }, function (y) { return new Date(); });
--var r4 = utils.mapReduce(c, function (x) { return 1; }, function (y) { return new Date(); });
--var f1 = function (x) { return 1; };
--var f2 = function (y) { return new Date(); };
-+var r3 = utils.mapReduce(c, (x) => { return 1; }, (y) => { return new Date(); });
-+var r4 = utils.mapReduce(c, (x) => { return 1; }, (y) => { return new Date(); });
-+var f1 = (x) => { return 1; };
-+var f2 = (y) => { return new Date(); };
- var r5 = utils.mapReduce(c, f1, f2);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericFunduleInModule2.js.diff b/testdata/baselines/reference/submodule/compiler/genericFunduleInModule2.js.diff
deleted file mode 100644
index 02f36561dc..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericFunduleInModule2.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.genericFunduleInModule2.js
-+++ new.genericFunduleInModule2.js
-@@= skipped -20, +20 lines =@@
-     A.B = B;
- })(A || (A = {}));
- (function (A) {
--    var B;
-+    let B;
-     (function (B) {
-         B.x = 1;
-     })(B = A.B || (A.B = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericGetter.js.diff b/testdata/baselines/reference/submodule/compiler/genericGetter.js.diff
index b7db748f73..e3068d1a32 100644
--- a/testdata/baselines/reference/submodule/compiler/genericGetter.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericGetter.js.diff
@@ -1,25 +1,10 @@
 --- old.genericGetter.js
 +++ new.genericGetter.js
-@@= skipped -11, +11 lines =@@
- var r: string = c.x;
+@@= skipped -12, +12 lines =@@
 
  //// [genericGetter.js]
--var C = /** @class */ (function () {
--    function C() {
-+class C {
+ class C {
 +    data;
-+    get x() {
-+        return this.data;
-     }
--    Object.defineProperty(C.prototype, "x", {
--        get: function () {
--            return this.data;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return C;
--}());
-+}
- var c = new C();
- var r = c.x;
\ No newline at end of file
+     get x() {
+         return this.data;
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericGetter2.js.diff b/testdata/baselines/reference/submodule/compiler/genericGetter2.js.diff
index d5cb5e81fe..c1c9458174 100644
--- a/testdata/baselines/reference/submodule/compiler/genericGetter2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericGetter2.js.diff
@@ -1,31 +1,10 @@
 --- old.genericGetter2.js
 +++ new.genericGetter2.js
-@@= skipped -10, +10 lines =@@
+@@= skipped -13, +13 lines =@@
+ class A {
  }
-
- //// [genericGetter2.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var C = /** @class */ (function () {
--    function C() {
--    }
--    Object.defineProperty(C.prototype, "x", {
--        get: function () {
--            return this.data;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return C;
--}());
-+class A {
-+}
-+class C {
+ class C {
 +    data;
-+    get x() {
-+        return this.data;
-+    }
-+}
\ No newline at end of file
+     get x() {
+         return this.data;
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericGetter3.js.diff b/testdata/baselines/reference/submodule/compiler/genericGetter3.js.diff
index 94819226fb..2aaafc68bb 100644
--- a/testdata/baselines/reference/submodule/compiler/genericGetter3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericGetter3.js.diff
@@ -1,33 +1,10 @@
 --- old.genericGetter3.js
 +++ new.genericGetter3.js
-@@= skipped -13, +13 lines =@@
- var r: string = c.x;
-
- //// [genericGetter3.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var C = /** @class */ (function () {
--    function C() {
--    }
--    Object.defineProperty(C.prototype, "x", {
--        get: function () {
--            return this.data;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return C;
--}());
-+class A {
-+}
-+class C {
+@@= skipped -16, +16 lines =@@
+ class A {
+ }
+ class C {
 +    data;
-+    get x() {
-+        return this.data;
-+    }
-+}
- var c = new C();
- var r = c.x;
\ No newline at end of file
+     get x() {
+         return this.data;
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericImplements.js.diff b/testdata/baselines/reference/submodule/compiler/genericImplements.js.diff
index 6d79111b7f..c83c5ef615 100644
--- a/testdata/baselines/reference/submodule/compiler/genericImplements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericImplements.js.diff
@@ -1,59 +1,14 @@
 --- old.genericImplements.js
 +++ new.genericImplements.js
-@@= skipped -22, +22 lines =@@
- } // { f: () => T } 
+@@= skipped -23, +23 lines =@@
 
  //// [genericImplements.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--;
--var B = /** @class */ (function () {
--    function B() {
--    }
--    return B;
--}());
--;
--// OK
--var X = /** @class */ (function () {
--    function X() {
--    }
--    X.prototype.f = function () { return undefined; };
--    return X;
--}()); // { f: () => { b; } }
--// OK
--var Y = /** @class */ (function () {
--    function Y() {
--    }
--    Y.prototype.f = function () { return undefined; };
--    return Y;
--}()); // { f: () => { a; } }
--// OK
--var Z = /** @class */ (function () {
--    function Z() {
--    }
--    Z.prototype.f = function () { return undefined; };
--    return Z;
--}()); // { f: () => T } 
-+class A {
+ class A {
 +    a;
-+}
-+;
-+class B {
+ }
+ ;
+ class B {
 +    b;
-+}
-+;
-+// OK
-+class X {
-+    f() { return undefined; }
-+} // { f: () => { b; } }
-+// OK
-+class Y {
-+    f() { return undefined; }
-+} // { f: () => { a; } }
-+// OK
-+class Z {
-+    f() { return undefined; }
-+} // { f: () => T } 
\ No newline at end of file
+ }
+ ;
+ // OK
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericIndexedAccessMethodIntersectionCanBeAccessed.js.diff b/testdata/baselines/reference/submodule/compiler/genericIndexedAccessMethodIntersectionCanBeAccessed.js.diff
deleted file mode 100644
index 8c60534306..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericIndexedAccessMethodIntersectionCanBeAccessed.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.genericIndexedAccessMethodIntersectionCanBeAccessed.js
-+++ new.genericIndexedAccessMethodIntersectionCanBeAccessed.js
-@@= skipped -25, +25 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.createService = void 0;
--var createService = function (ServiceCtr) {
--    Object.keys(ServiceCtr).forEach(function (key) {
--        var method = (ServiceCtr)[key];
--        var __$daemonMode = method.__$daemonMode, __$action = method.__$action, id = method.id;
-+const createService = (ServiceCtr) => {
-+    Object.keys(ServiceCtr).forEach(key => {
-+        const method = (ServiceCtr)[key];
-+        const { __$daemonMode, __$action, id } = method;
-     });
- };
- exports.createService = createService;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericIndexedAccessVarianceComparisonResultCorrect.js.diff b/testdata/baselines/reference/submodule/compiler/genericIndexedAccessVarianceComparisonResultCorrect.js.diff
index 8cfe1b277a..7f4caa3c6f 100644
--- a/testdata/baselines/reference/submodule/compiler/genericIndexedAccessVarianceComparisonResultCorrect.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericIndexedAccessVarianceComparisonResultCorrect.js.diff
@@ -1,30 +1,23 @@
 --- old.genericIndexedAccessVarianceComparisonResultCorrect.js
 +++ new.genericIndexedAccessVarianceComparisonResultCorrect.js
-@@= skipped -28, +28 lines =@@
- c = d;
+@@= skipped -29, +29 lines =@@
 
  //// [genericIndexedAccessVarianceComparisonResultCorrect.js]
--var A = /** @class */ (function () {
--    function A() {
+ class A {
+-    constructor() {
 -        this.x = 'A';
 -        this.y = 0;
 -    }
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
++    x = 'A';
++    y = 0;
+ }
+ class B {
+-    constructor() {
 -        this.x = 'B';
 -        this.z = true;
 -    }
--    return B;
--}());
-+class A {
-+    x = 'A';
-+    y = 0;
-+}
-+class B {
 +    x = 'B';
 +    z = true;
-+}
+ }
  b = a; // should be no error
  c = d;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericInference1.js.diff b/testdata/baselines/reference/submodule/compiler/genericInference1.js.diff
deleted file mode 100644
index 83bf780bf7..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericInference1.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.genericInference1.js
-+++ new.genericInference1.js
-@@= skipped -3, +3 lines =@@
- ['a', 'b', 'c'].map(x => x.length);
-
- //// [genericInference1.js]
--['a', 'b', 'c'].map(function (x) { return x.length; });
-+['a', 'b', 'c'].map(x => x.length);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericInferenceDefaultTypeParameter.js.diff b/testdata/baselines/reference/submodule/compiler/genericInferenceDefaultTypeParameter.js.diff
index f0fe2cc5bf..58907b3091 100644
--- a/testdata/baselines/reference/submodule/compiler/genericInferenceDefaultTypeParameter.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericInferenceDefaultTypeParameter.js.diff
@@ -6,9 +6,6 @@
  //// [genericInferenceDefaultTypeParameter.js]
 -"use strict";
 -// Repro from #50858
--f1(function (event) { });
--f1(function (event) { });
--f1(function (event) { });
-+f1(event => { });
-+f1(event => { });
-+f1(event => { });
\ No newline at end of file
+ f1(event => { });
+ f1(event => { });
+ f1(event => { });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericInferenceDefaultTypeParameterJsxReact.js.diff b/testdata/baselines/reference/submodule/compiler/genericInferenceDefaultTypeParameterJsxReact.js.diff
index c3913dfad3..fb30d959fd 100644
--- a/testdata/baselines/reference/submodule/compiler/genericInferenceDefaultTypeParameterJsxReact.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericInferenceDefaultTypeParameterJsxReact.js.diff
@@ -15,6 +15,4 @@
 +const react_1 = __importDefault(require("react"));
  function Component(props) {
      return react_1.default.createElement(react_1.default.Fragment, null);
- }
--var v1 = react_1.default.createElement(Component, { onClick: function (e) { return e.preventDefault(); } });
-+const v1 = react_1.default.createElement(Component, { onClick: e => e.preventDefault() });
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericInheritedDefaultConstructors.js.diff b/testdata/baselines/reference/submodule/compiler/genericInheritedDefaultConstructors.js.diff
index 0bbcb2d4fc..9ad4b447a0 100644
--- a/testdata/baselines/reference/submodule/compiler/genericInheritedDefaultConstructors.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericInheritedDefaultConstructors.js.diff
@@ -1,40 +1,12 @@
 --- old.genericInheritedDefaultConstructors.js
 +++ new.genericInheritedDefaultConstructors.js
-@@= skipped -12, +12 lines =@@
-
+@@= skipped -13, +13 lines =@@
 
  //// [genericInheritedDefaultConstructors.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class A {
+ class A {
 +    a;
-+}
-+class B extends A {
+ }
+ class B extends A {
 +    b;
-+}
+ }
  var c = B; // shouldn't error here
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericInstanceOf.js.diff b/testdata/baselines/reference/submodule/compiler/genericInstanceOf.js.diff
index cb5320ec8e..2ab812f48a 100644
--- a/testdata/baselines/reference/submodule/compiler/genericInstanceOf.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericInstanceOf.js.diff
@@ -1,24 +1,11 @@
 --- old.genericInstanceOf.js
 +++ new.genericInstanceOf.js
-@@= skipped -13, +13 lines =@@
- }
+@@= skipped -14, +14 lines =@@
 
  //// [genericInstanceOf.js]
--var C = /** @class */ (function () {
--    function C(a, b) {
-+class C {
+ class C {
 +    a;
 +    b;
-+    constructor(a, b) {
+     constructor(a, b) {
          this.a = a;
-         this.b = b;
-     }
--    C.prototype.foo = function () {
-+    foo() {
-         if (this.a instanceof this.b) {
-         }
--    };
--    return C;
--}());
-+    }
-+}
\ No newline at end of file
+         this.b = b;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericInterfaceImplementation.js.diff b/testdata/baselines/reference/submodule/compiler/genericInterfaceImplementation.js.diff
deleted file mode 100644
index dddf705e3c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericInterfaceImplementation.js.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- old.genericInterfaceImplementation.js
-+++ new.genericInterfaceImplementation.js
-@@= skipped -18, +18 lines =@@
-
-
- //// [genericInterfaceImplementation.js]
--var None = /** @class */ (function () {
--    function None() {
--    }
--    None.prototype.get = function () {
-+class None {
-+    get() {
-         throw null;
--    };
--    None.prototype.flatten = function () {
-+    }
-+    flatten() {
-         return new None();
--    };
--    return None;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericInterfaceTypeCall.js.diff b/testdata/baselines/reference/submodule/compiler/genericInterfaceTypeCall.js.diff
deleted file mode 100644
index b1f52b9bac..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericInterfaceTypeCall.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.genericInterfaceTypeCall.js
-+++ new.genericInterfaceTypeCall.js
-@@= skipped -18, +18 lines =@@
- //// [genericInterfaceTypeCall.js]
- var foo;
- var test;
--test.fail(function (arg) { return foo.reject(arg); });
--test.fail2(function (arg) { return foo.reject(arg); }); // Error: Supplied parameters do not match any signature of call target
-+test.fail(arg => foo.reject(arg));
-+test.fail2(arg => foo.reject(arg)); // Error: Supplied parameters do not match any signature of call target
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericInterfacesWithoutTypeArguments.js.diff b/testdata/baselines/reference/submodule/compiler/genericInterfacesWithoutTypeArguments.js.diff
deleted file mode 100644
index aa883052e0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericInterfacesWithoutTypeArguments.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.genericInterfacesWithoutTypeArguments.js
-+++ new.genericInterfacesWithoutTypeArguments.js
-@@= skipped -7, +7 lines =@@
-
-
- //// [genericInterfacesWithoutTypeArguments.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
- var i;
- var c;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericIsNeverEmptyObject.js.diff b/testdata/baselines/reference/submodule/compiler/genericIsNeverEmptyObject.js.diff
index 1a196e2c78..d646870406 100644
--- a/testdata/baselines/reference/submodule/compiler/genericIsNeverEmptyObject.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericIsNeverEmptyObject.js.diff
@@ -29,12 +29,10 @@
 -    return t;
 -};
  function test(obj) {
--    var a = obj.a, rest = __rest(obj, ["a"]);
+-    let { a } = obj, rest = __rest(obj, ["a"]);
 -    return __assign(__assign({}, rest), { b: a });
 +    let { a, ...rest } = obj;
 +    return { ...rest, b: a };
  }
--var o1 = { a: 'hello', x: 42 };
--var o2 = test(o1);
-+let o1 = { a: 'hello', x: 42 };
-+let o2 = test(o1);
\ No newline at end of file
+ let o1 = { a: 'hello', x: 42 };
+ let o2 = test(o1);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericLambaArgWithoutTypeArguments.js.diff b/testdata/baselines/reference/submodule/compiler/genericLambaArgWithoutTypeArguments.js.diff
deleted file mode 100644
index 31aecbc74e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericLambaArgWithoutTypeArguments.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.genericLambaArgWithoutTypeArguments.js
-+++ new.genericLambaArgWithoutTypeArguments.js
-@@= skipped -13, +13 lines =@@
- function foo(a) {
-     return null;
- }
--foo(function (arg) { return arg.x; });
-+foo((arg) => { return arg.x; });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericMappedTypeAsClause.js.diff b/testdata/baselines/reference/submodule/compiler/genericMappedTypeAsClause.js.diff
index 8d8af5684e..f850b4d1de 100644
--- a/testdata/baselines/reference/submodule/compiler/genericMappedTypeAsClause.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericMappedTypeAsClause.js.diff
@@ -5,21 +5,6 @@
 
  //// [genericMappedTypeAsClause.js]
 -"use strict";
--var foo1 = { aFoo: 'test', bFoo: 42 };
--var foo2 = { bFoo: 'bar' }; // Error
-+const foo1 = { aFoo: 'test', bFoo: 42 };
-+const foo2 = { bFoo: 'bar' }; // Error
- function f1() {
--    var x1 = 42; // Error
--    var x2 = 'test'; // Error
--    var x3 = [1, 2, 3]; // Error
--    var x4 = false; // Error
--    var x5 = { a: 'bar', b: 42 }; // Error
--    var x6 = undefined; // Error
-+    const x1 = 42; // Error
-+    const x2 = 'test'; // Error
-+    const x3 = [1, 2, 3]; // Error
-+    const x4 = false; // Error
-+    const x5 = { a: 'bar', b: 42 }; // Error
-+    const x6 = undefined; // Error
- }
\ No newline at end of file
+ const foo1 = { aFoo: 'test', bFoo: 42 };
+ const foo2 = { bFoo: 'bar' }; // Error
+ function f1() {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericMemberFunction.js.diff b/testdata/baselines/reference/submodule/compiler/genericMemberFunction.js.diff
index 72ceab13d1..53c59b86c6 100644
--- a/testdata/baselines/reference/submodule/compiler/genericMemberFunction.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericMemberFunction.js.diff
@@ -8,39 +8,29 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.BuildResult = exports.FileWithErrors = exports.BuildError = void 0;
--    var BuildError = /** @class */ (function () {
--        function BuildError() {
--        }
--        BuildError.prototype.parent = function () {
+-    class BuildError {
+-        parent() {
 -            return undefined;
--        };
--        return BuildError;
--    }());
--    exports.BuildError = BuildError;
--    var FileWithErrors = /** @class */ (function () {
--        function FileWithErrors() {
 -        }
--        FileWithErrors.prototype.errors = function () {
+-    }
+-    exports.BuildError = BuildError;
+-    class FileWithErrors {
+-        errors() {
 -            return undefined;
--        };
--        FileWithErrors.prototype.parent = function () {
+-        }
+-        parent() {
 -            return undefined;
--        };
--        return FileWithErrors;
--    }());
--    exports.FileWithErrors = FileWithErrors;
--    var BuildResult = /** @class */ (function () {
--        function BuildResult() {
 -        }
--        BuildResult.prototype.merge = function (other) {
--            var _this = this;
+-    }
+-    exports.FileWithErrors = FileWithErrors;
+-    class BuildResult {
+-        merge(other) {
 -            a.b.c.d.e.f.g = 0;
--            removedFiles.forEach(function (each) {
--                _this.removeFile(each);
+-            removedFiles.forEach((each) => {
+-                this.removeFile(each);
 -            });
--        };
--        return BuildResult;
--    }());
+-        }
+-    }
 -    exports.BuildResult = BuildResult;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/genericMergedDeclarationUsingTypeParameter2.js.diff b/testdata/baselines/reference/submodule/compiler/genericMergedDeclarationUsingTypeParameter2.js.diff
deleted file mode 100644
index b719eae181..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericMergedDeclarationUsingTypeParameter2.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.genericMergedDeclarationUsingTypeParameter2.js
-+++ new.genericMergedDeclarationUsingTypeParameter2.js
-@@= skipped -8, +8 lines =@@
-
-
- //// [genericMergedDeclarationUsingTypeParameter2.js]
--var foo = /** @class */ (function () {
--    function foo(x) {
--    }
--    return foo;
--}());
-+class foo {
-+    constructor(x) { }
-+}
- (function (foo) {
-     var y = 1;
- })(foo || (foo = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericObjectCreationWithoutTypeArgs.js.diff b/testdata/baselines/reference/submodule/compiler/genericObjectCreationWithoutTypeArgs.js.diff
deleted file mode 100644
index 7b0214f78b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericObjectCreationWithoutTypeArgs.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.genericObjectCreationWithoutTypeArgs.js
-+++ new.genericObjectCreationWithoutTypeArgs.js
-@@= skipped -11, +11 lines =@@
-
-
- //// [genericObjectCreationWithoutTypeArgs.js]
--var SS = /** @class */ (function () {
--    function SS() {
--    }
--    return SS;
--}());
-+class SS {
-+}
- var x1 = new SS(); // OK
- var x2 = new SS; // OK 
- var x3 = new SS(); // OK
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericObjectLitReturnType.js.diff b/testdata/baselines/reference/submodule/compiler/genericObjectLitReturnType.js.diff
deleted file mode 100644
index 44d35eae7f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericObjectLitReturnType.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.genericObjectLitReturnType.js
-+++ new.genericObjectLitReturnType.js
-@@= skipped -13, +13 lines =@@
-
-
- //// [genericObjectLitReturnType.js]
--var X = /** @class */ (function () {
--    function X() {
--    }
--    X.prototype.f = function (t) { return { a: t }; };
--    return X;
--}());
-+class X {
-+    f(t) { return { a: t }; }
-+}
- var x;
- var t1 = x.f(5);
- t1.a = 5; // Should not error: t1 should have type {a: number}, instead has type {a: T}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericObjectSpreadResultInSwitch.js.diff b/testdata/baselines/reference/submodule/compiler/genericObjectSpreadResultInSwitch.js.diff
index 8ae4618e64..53e064df97 100644
--- a/testdata/baselines/reference/submodule/compiler/genericObjectSpreadResultInSwitch.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericObjectSpreadResultInSwitch.js.diff
@@ -15,28 +15,11 @@
 -        }
 -    return t;
 -};
--var getType = function (params) {
--    var 
-+const getType = (params) => {
-+    const { 
+ const getType = (params) => {
+     const { 
      // Omit
--    foo = params.foo, rest = __rest(params, ["foo"]);
+-    foo } = params, rest = __rest(params, ["foo"]);
 +    foo, ...rest } = params;
      return rest;
  };
- switch (params.tag) {
-     case 'a': {
-         // TS 4.2: number
-         // TS 4.3: string | number
--        var result = getType(params).type;
-+        const result = getType(params).type;
-         break;
-     }
-     case 'b': {
-         // TS 4.2: string
-         // TS 4.3: string | number
--        var result = getType(params).type;
-+        const result = getType(params).type;
-         break;
-     }
- }
\ No newline at end of file
+ switch (params.tag) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericOfACloduleType1.js.diff b/testdata/baselines/reference/submodule/compiler/genericOfACloduleType1.js.diff
deleted file mode 100644
index 8b56637ba4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericOfACloduleType1.js.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- old.genericOfACloduleType1.js
-+++ new.genericOfACloduleType1.js
-@@= skipped -14, +14 lines =@@
- var g2 = new G() // was: error Type reference cannot refer to container 'M.C'.
-
- //// [genericOfACloduleType1.js]
--var G = /** @class */ (function () {
--    function G() {
--    }
--    G.prototype.bar = function (x) { return x; };
--    return G;
--}());
-+class G {
-+    bar(x) { return x; }
-+}
- var M;
- (function (M) {
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        C.prototype.foo = function () { };
--        return C;
--    }());
-+    class C {
-+        foo() { }
-+    }
-     M.C = C;
-     (function (C) {
--        var X = /** @class */ (function () {
--            function X() {
--            }
--            return X;
--        }());
-+        class X {
-+        }
-         C.X = X;
-     })(C = M.C || (M.C = {}));
-     var g1 = new G();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericOfACloduleType2.js.diff b/testdata/baselines/reference/submodule/compiler/genericOfACloduleType2.js.diff
deleted file mode 100644
index 36742cc728..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericOfACloduleType2.js.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- old.genericOfACloduleType2.js
-+++ new.genericOfACloduleType2.js
-@@= skipped -17, +17 lines =@@
- }
-
- //// [genericOfACloduleType2.js]
--var G = /** @class */ (function () {
--    function G() {
--    }
--    G.prototype.bar = function (x) { return x; };
--    return G;
--}());
-+class G {
-+    bar(x) { return x; }
-+}
- var M;
- (function (M) {
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        C.prototype.foo = function () { };
--        return C;
--    }());
-+    class C {
-+        foo() { }
-+    }
-     M.C = C;
-     (function (C) {
--        var X = /** @class */ (function () {
--            function X() {
--            }
--            return X;
--        }());
-+        class X {
-+        }
-         C.X = X;
-     })(C = M.C || (M.C = {}));
-     var g1 = new G();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericOverloadSignatures.js.diff b/testdata/baselines/reference/submodule/compiler/genericOverloadSignatures.js.diff
deleted file mode 100644
index 92fa471386..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericOverloadSignatures.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.genericOverloadSignatures.js
-+++ new.genericOverloadSignatures.js
-@@= skipped -33, +33 lines =@@
-
- //// [genericOverloadSignatures.js]
- function f(a) { }
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    return C2;
--}());
-+class C2 {
-+}
- var b;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericParameterAssignability1.js.diff b/testdata/baselines/reference/submodule/compiler/genericParameterAssignability1.js.diff
deleted file mode 100644
index 5b473d2c2e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericParameterAssignability1.js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.genericParameterAssignability1.js
-+++ new.genericParameterAssignability1.js
-@@= skipped -6, +6 lines =@@
-
- //// [genericParameterAssignability1.js]
- function f(x) { return null; }
--var r = function (x) { return x; };
-+var r = (x) => x;
- r = f; // should be allowed
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty.js.diff b/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty.js.diff
index 9101e016c6..1bdedd95ff 100644
--- a/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty.js.diff
@@ -1,19 +1,10 @@
 --- old.genericPrototypeProperty.js
 +++ new.genericPrototypeProperty.js
-@@= skipped -11, +11 lines =@@
- var r3 = r.foo(null);
+@@= skipped -12, +12 lines =@@
 
  //// [genericPrototypeProperty.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function (x) { return null; };
--    return C;
--}());
-+class C {
+ class C {
 +    x;
-+    foo(x) { return null; }
-+}
- var r = C.prototype;
- // should be any
- var r2 = r.x;
\ No newline at end of file
+     foo(x) { return null; }
+ }
+ var r = C.prototype;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty2.js.diff b/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty2.js.diff
index dd1d51c02a..a16ecdde61 100644
--- a/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty2.js.diff
@@ -1,57 +1,17 @@
 --- old.genericPrototypeProperty2.js
 +++ new.genericPrototypeProperty2.js
-@@= skipped -17, +17 lines =@@
- }
+@@= skipped -18, +18 lines =@@
 
  //// [genericPrototypeProperty2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var BaseEvent = /** @class */ (function () {
--    function BaseEvent() {
--    }
--    return BaseEvent;
--}());
--var MyEvent = /** @class */ (function (_super) {
--    __extends(MyEvent, _super);
--    function MyEvent() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return MyEvent;
--}(BaseEvent));
--var BaseEventWrapper = /** @class */ (function () {
--    function BaseEventWrapper() {
--    }
--    return BaseEventWrapper;
--}());
--var MyEventWrapper = /** @class */ (function (_super) {
--    __extends(MyEventWrapper, _super);
--    function MyEventWrapper() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return MyEventWrapper;
--}(BaseEventWrapper));
-+class BaseEvent {
+ class BaseEvent {
 +    target;
-+}
-+class MyEvent extends BaseEvent {
+ }
+ class MyEvent extends BaseEvent {
 +    target;
-+}
-+class BaseEventWrapper {
+ }
+ class BaseEventWrapper {
 +    t;
-+}
-+class MyEventWrapper extends BaseEventWrapper {
+ }
+ class MyEventWrapper extends BaseEventWrapper {
 +    t; // any satisfies constraint and passes assignability check between 'target' properties
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty3.js.diff b/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty3.js.diff
index 2560eb826f..5a1c5f2da8 100644
--- a/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericPrototypeProperty3.js.diff
@@ -1,57 +1,17 @@
 --- old.genericPrototypeProperty3.js
 +++ new.genericPrototypeProperty3.js
-@@= skipped -16, +16 lines =@@
- }
+@@= skipped -17, +17 lines =@@
 
  //// [genericPrototypeProperty3.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var BaseEvent = /** @class */ (function () {
--    function BaseEvent() {
--    }
--    return BaseEvent;
--}());
--var MyEvent = /** @class */ (function (_super) {
--    __extends(MyEvent, _super);
--    function MyEvent() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return MyEvent;
--}(BaseEvent));
--var BaseEventWrapper = /** @class */ (function () {
--    function BaseEventWrapper() {
--    }
--    return BaseEventWrapper;
--}());
--var MyEventWrapper = /** @class */ (function (_super) {
--    __extends(MyEventWrapper, _super);
--    function MyEventWrapper() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return MyEventWrapper;
--}(BaseEventWrapper));
-+class BaseEvent {
+ class BaseEvent {
 +    target;
-+}
-+class MyEvent extends BaseEvent {
+ }
+ class MyEvent extends BaseEvent {
 +    target;
-+}
-+class BaseEventWrapper {
+ }
+ class BaseEventWrapper {
 +    t;
-+}
-+class MyEventWrapper extends BaseEventWrapper {
+ }
+ class MyEventWrapper extends BaseEventWrapper {
 +    t;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericRecursiveImplicitConstructorErrors2.js.diff b/testdata/baselines/reference/submodule/compiler/genericRecursiveImplicitConstructorErrors2.js.diff
deleted file mode 100644
index 1ae96eb802..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericRecursiveImplicitConstructorErrors2.js.diff
+++ /dev/null
@@ -1,62 +0,0 @@
---- old.genericRecursiveImplicitConstructorErrors2.js
-+++ new.genericRecursiveImplicitConstructorErrors2.js
-@@= skipped -28, +28 lines =@@
-
-
- //// [genericRecursiveImplicitConstructorErrors2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- var TypeScript2;
- (function (TypeScript2) {
-     ;
-     ;
-     ;
--    var PullSymbolVisibility;
-+    let PullSymbolVisibility;
-     (function (PullSymbolVisibility) {
-         PullSymbolVisibility[PullSymbolVisibility["Private"] = 0] = "Private";
-         PullSymbolVisibility[PullSymbolVisibility["Public"] = 1] = "Public";
-     })(PullSymbolVisibility = TypeScript2.PullSymbolVisibility || (TypeScript2.PullSymbolVisibility = {}));
--    var PullSymbol = /** @class */ (function () {
--        function PullSymbol(name, declKind) {
-+    class PullSymbol {
-+        constructor(name, declKind) {
-         }
-         // link methods
--        PullSymbol.prototype.addOutgoingLink = function (linkTo, kind) {
--        };
--        PullSymbol.prototype.getType = function () {
-+        addOutgoingLink(linkTo, kind) {
-+        }
-+        getType() {
-             return undefined;
--        };
--        return PullSymbol;
--    }());
-+        }
-+    }
-     TypeScript2.PullSymbol = PullSymbol;
--    var PullTypeSymbol = /** @class */ (function (_super) {
--        __extends(PullTypeSymbol, _super);
--        function PullTypeSymbol() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return PullTypeSymbol;
--    }(PullSymbol));
-+    class PullTypeSymbol extends PullSymbol {
-+    }
-     TypeScript2.PullTypeSymbol = PullTypeSymbol;
- })(TypeScript2 || (TypeScript2 = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericRecursiveImplicitConstructorErrors3.js.diff b/testdata/baselines/reference/submodule/compiler/genericRecursiveImplicitConstructorErrors3.js.diff
index 508342caf6..fb7d411c9f 100644
--- a/testdata/baselines/reference/submodule/compiler/genericRecursiveImplicitConstructorErrors3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericRecursiveImplicitConstructorErrors3.js.diff
@@ -1,78 +1,30 @@
 --- old.genericRecursiveImplicitConstructorErrors3.js
 +++ new.genericRecursiveImplicitConstructorErrors3.js
-@@= skipped -32, +32 lines =@@
-
-
- //// [genericRecursiveImplicitConstructorErrors3.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- var TypeScript;
- (function (TypeScript) {
--    var MemberName = /** @class */ (function () {
--        function MemberName() {
-+    class MemberName {
-+        static create(arg1, arg2, arg3) {
-         }
--        MemberName.create = function (arg1, arg2, arg3) {
--        };
--        return MemberName;
--    }());
-+    }
-     TypeScript.MemberName = MemberName;
+@@= skipped -42, +42 lines =@@
  })(TypeScript || (TypeScript = {}));
  (function (TypeScript) {
--    var PullSymbol = /** @class */ (function () {
--        function PullSymbol() {
+     class PullSymbol {
+-        constructor() {
 -            this.type = null;
 -        }
--        return PullSymbol;
--    }());
-+    class PullSymbol {
 +        type = null;
-+    }
+     }
      TypeScript.PullSymbol = PullSymbol;
--    var PullTypeSymbol = /** @class */ (function (_super) {
--        __extends(PullTypeSymbol, _super);
--        function PullTypeSymbol() {
--            var _this = _super !== null && _super.apply(this, arguments) || this;
--            _this._elementType = null;
--            return _this;
+     class PullTypeSymbol extends PullSymbol {
+-        constructor() {
+-            super(...arguments);
+-            this._elementType = null;
 -        }
--        PullTypeSymbol.prototype.toString = function (scopeSymbol, useConstraintInName) {
-+    class PullTypeSymbol extends PullSymbol {
 +        _elementType = null;
-+        toString(scopeSymbol, useConstraintInName) {
+         toString(scopeSymbol, useConstraintInName) {
              var s = this.getScopedNameEx(scopeSymbol, useConstraintInName).toString();
              return s;
--        };
--        PullTypeSymbol.prototype.getScopedNameEx = function (scopeSymbol, useConstraintInName, getPrettyTypeName, getTypeParamMarkerInfo) {
-+        }
-+        getScopedNameEx(scopeSymbol, useConstraintInName, getPrettyTypeName, getTypeParamMarkerInfo) {
-             if (this.isArray()) {
-                 var elementMemberName = this._elementType ?
+@@= skipped -20, +15 lines =@@
                      (this._elementType.isArray() || this._elementType.isNamedTypeSymbol() ?
                          this._elementType.getScopedNameEx(scopeSymbol, false, getPrettyTypeName, getTypeParamMarkerInfo) :
                          this._elementType.getMemberTypeNameEx(false, scopeSymbol, getPrettyTypeName)) : 1;
 -                return TypeScript.MemberName.create(elementMemberName, "", "[]");
 +                return MemberName.create(elementMemberName, "", "[]");
              }
--        };
--        return PullTypeSymbol;
--    }(PullSymbol));
-+        }
-+    }
-     TypeScript.PullTypeSymbol = PullTypeSymbol;
- })(TypeScript || (TypeScript = {}));
\ No newline at end of file
+         }
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericReduce.js.diff b/testdata/baselines/reference/submodule/compiler/genericReduce.js.diff
deleted file mode 100644
index 1692ee5a66..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericReduce.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.genericReduce.js
-+++ new.genericReduce.js
-@@= skipped -16, +16 lines =@@
-
- //// [genericReduce.js]
- var a = ["An", "array", "of", "strings"];
--var b = a.map(function (s) { return s.length; });
--var n1 = b.reduce(function (x, y) { return x + y; });
--var n2 = b.reduceRight(function (x, y) { return x + y; });
-+var b = a.map(s => s.length);
-+var n1 = b.reduce((x, y) => x + y);
-+var n2 = b.reduceRight((x, y) => x + y);
- n1.x = "fail"; // should error, as 'n1' should be type 'number', not 'any'.
- n1.toExponential(2); // should not error if 'n1' is correctly number.
- n2.x = "fail"; // should error, as 'n2' should be type 'number', not 'any'.
- n2.toExponential(2); // should not error if 'n2' is correctly number.
--var n3 = b.reduce(function (x, y) { return x + y; }, ""); // Initial value is of type string
-+var n3 = b.reduce((x, y) => x + y, ""); // Initial value is of type string
- n3.toExponential(2); // should error if 'n3' is correctly type 'string'
- n3.charAt(0); // should not error if 'n3' is correctly type 'string'
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericRestArgs.js.diff b/testdata/baselines/reference/submodule/compiler/genericRestArgs.js.diff
deleted file mode 100644
index 7c8f058f5c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericRestArgs.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.genericRestArgs.js
-+++ new.genericRestArgs.js
-@@= skipped -14, +14 lines =@@
- var a2Gc = makeArrayG(1, ""); // error
-
- //// [genericRestArgs.js]
--function makeArrayG() {
--    var items = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        items[_i] = arguments[_i];
--    }
--    return items;
--}
-+function makeArrayG(...items) { return items; }
- var a1Ga = makeArrayG(1, ""); // no error
- var a1Gb = makeArrayG(1, "");
- var a1Gc = makeArrayG(1, "");
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericRestTypes.js.diff b/testdata/baselines/reference/submodule/compiler/genericRestTypes.js.diff
index 2864410db9..327b439fef 100644
--- a/testdata/baselines/reference/submodule/compiler/genericRestTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericRestTypes.js.diff
@@ -7,32 +7,5 @@
 -"use strict";
 -// Repro from #25793
  function assignmentWithComplexRest() {
--    var fn1 = function (x) {
--        var _ = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            _[_i - 1] = arguments[_i];
--        }
--        return x;
--    };
--    var fn2 = fn1;
-+    const fn1 = (x, ..._) => x;
-+    const fn2 = fn1;
- }
- function assignmentWithComplexRest2() {
--    var fn1 = function (cb) { };
--    var fn2 = fn1;
-+    const fn1 = (cb) => { };
-+    const fn2 = fn1;
- }
- function assignmentWithComplexRest3() {
--    var fn1 = function (x) {
--        var _ = [];
--        for (var _i = 1; _i < arguments.length; _i++) {
--            _[_i - 1] = arguments[_i];
--        }
--        return x;
--    };
--    var fn2 = fn1;
-+    const fn1 = (x, ..._) => x;
-+    const fn2 = fn1;
- }
\ No newline at end of file
+     const fn1 = (x, ..._) => x;
+     const fn2 = fn1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericReturnTypeFromGetter1.js.diff b/testdata/baselines/reference/submodule/compiler/genericReturnTypeFromGetter1.js.diff
index 70a5e35af4..04f3743f2b 100644
--- a/testdata/baselines/reference/submodule/compiler/genericReturnTypeFromGetter1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericReturnTypeFromGetter1.js.diff
@@ -8,17 +8,9 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.DbSet = void 0;
--    var DbSet = /** @class */ (function () {
--        function DbSet() {
--        }
--        Object.defineProperty(DbSet.prototype, "entityType", {
--            get: function () { return this._entityType; } // used to ICE without return type annotation
--            ,
--            enumerable: false,
--            configurable: true
--        });
--        return DbSet;
--    }());
+-    class DbSet {
+-        get entityType() { return this._entityType; } // used to ICE without return type annotation
+-    }
 -    exports.DbSet = DbSet;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/genericReversingTypeParameters.js.diff b/testdata/baselines/reference/submodule/compiler/genericReversingTypeParameters.js.diff
index eea24c6f60..bd794a3ba6 100644
--- a/testdata/baselines/reference/submodule/compiler/genericReversingTypeParameters.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericReversingTypeParameters.js.diff
@@ -1,21 +1,10 @@
 --- old.genericReversingTypeParameters.js
 +++ new.genericReversingTypeParameters.js
-@@= skipped -12, +12 lines =@@
- var r2b = i.get(1); 
+@@= skipped -13, +13 lines =@@
 
  //// [genericReversingTypeParameters.js]
--var BiMap = /** @class */ (function () {
--    function BiMap() {
--    }
--    BiMap.prototype.get = function (key) { return null; };
--    BiMap.prototype.inverse = function () { return null; };
--    return BiMap;
--}());
-+class BiMap {
+ class BiMap {
 +    inverseBiMap;
-+    get(key) { return null; }
-+    inverse() { return null; }
-+}
- var b = new BiMap();
- var r1 = b.get('');
- var i = b.inverse(); // used to get the type wrong here.
\ No newline at end of file
+     get(key) { return null; }
+     inverse() { return null; }
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericReversingTypeParameters2.js.diff b/testdata/baselines/reference/submodule/compiler/genericReversingTypeParameters2.js.diff
index 81ec915c7e..e8c97130c8 100644
--- a/testdata/baselines/reference/submodule/compiler/genericReversingTypeParameters2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericReversingTypeParameters2.js.diff
@@ -1,21 +1,10 @@
 --- old.genericReversingTypeParameters2.js
 +++ new.genericReversingTypeParameters2.js
-@@= skipped -11, +11 lines =@@
- var r2b = i.get(1); 
+@@= skipped -12, +12 lines =@@
 
  //// [genericReversingTypeParameters2.js]
--var BiMap = /** @class */ (function () {
--    function BiMap() {
--    }
--    BiMap.prototype.get = function (key) { return null; };
--    BiMap.prototype.inverse = function () { return null; };
--    return BiMap;
--}());
-+class BiMap {
+ class BiMap {
 +    inverseBiMap;
-+    get(key) { return null; }
-+    inverse() { return null; }
-+}
- var b = new BiMap();
- var i = b.inverse(); // used to get the type wrong here.
- var r2b = i.get(1);
\ No newline at end of file
+     get(key) { return null; }
+     inverse() { return null; }
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericSpecializations1.js.diff b/testdata/baselines/reference/submodule/compiler/genericSpecializations1.js.diff
deleted file mode 100644
index 2a5b0b6a30..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericSpecializations1.js.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- old.genericSpecializations1.js
-+++ new.genericSpecializations1.js
-@@= skipped -17, +17 lines =@@
- }
-
- //// [genericSpecializations1.js]
--var IntFooBad = /** @class */ (function () {
--    function IntFooBad() {
--    }
--    IntFooBad.prototype.foo = function (x) { return null; };
--    return IntFooBad;
--}());
--var StringFoo2 = /** @class */ (function () {
--    function StringFoo2() {
--    }
--    StringFoo2.prototype.foo = function (x) { return null; };
--    return StringFoo2;
--}());
--var StringFoo3 = /** @class */ (function () {
--    function StringFoo3() {
--    }
--    StringFoo3.prototype.foo = function (x) { return null; };
--    return StringFoo3;
--}());
-+class IntFooBad {
-+    foo(x) { return null; }
-+}
-+class StringFoo2 {
-+    foo(x) { return null; }
-+}
-+class StringFoo3 {
-+    foo(x) { return null; }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericSpecializations2.js.diff b/testdata/baselines/reference/submodule/compiler/genericSpecializations2.js.diff
deleted file mode 100644
index 9a5eb0110f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericSpecializations2.js.diff
+++ /dev/null
@@ -1,45 +0,0 @@
---- old.genericSpecializations2.js
-+++ new.genericSpecializations2.js
-@@= skipped -21, +21 lines =@@
-
-
- //// [genericSpecializations2.js]
--var IFoo = /** @class */ (function () {
--    function IFoo() {
--    }
--    IFoo.prototype.foo = function (x) {
-+class IFoo {
-+    foo(x) {
-         return null;
--    };
--    return IFoo;
--}());
--var IntFooBad = /** @class */ (function () {
--    function IntFooBad() {
--    }
--    IntFooBad.prototype.foo = function (x) { return null; };
--    return IntFooBad;
--}());
--var StringFoo2 = /** @class */ (function () {
--    function StringFoo2() {
--    }
--    StringFoo2.prototype.foo = function (x) { return null; };
--    return StringFoo2;
--}());
--var StringFoo3 = /** @class */ (function () {
--    function StringFoo3() {
--    }
--    StringFoo3.prototype.foo = function (x) { return null; };
--    return StringFoo3;
--}());
-+    }
-+}
-+class IntFooBad {
-+    foo(x) { return null; }
-+}
-+class StringFoo2 {
-+    foo(x) { return null; }
-+}
-+class StringFoo3 {
-+    foo(x) { return null; }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericSpecializations3.js.diff b/testdata/baselines/reference/submodule/compiler/genericSpecializations3.js.diff
deleted file mode 100644
index 93876c546b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericSpecializations3.js.diff
+++ /dev/null
@@ -1,49 +0,0 @@
---- old.genericSpecializations3.js
-+++ new.genericSpecializations3.js
-@@= skipped -39, +39 lines =@@
- //// [genericSpecializations3.js]
- var iFoo;
- iFoo.foo(1);
--var IntFooBad = /** @class */ (function () {
--    function IntFooBad() {
--    }
--    IntFooBad.prototype.foo = function (x) { return null; };
--    return IntFooBad;
--}());
-+class IntFooBad {
-+    foo(x) { return null; }
-+}
- var intFooBad;
--var IntFoo = /** @class */ (function () {
--    function IntFoo() {
--    }
--    IntFoo.prototype.foo = function (x) { return null; };
--    return IntFoo;
--}());
-+class IntFoo {
-+    foo(x) { return null; }
-+}
- var intFoo;
--var StringFoo2 = /** @class */ (function () {
--    function StringFoo2() {
--    }
--    StringFoo2.prototype.foo = function (x) { return null; };
--    return StringFoo2;
--}());
-+class StringFoo2 {
-+    foo(x) { return null; }
-+}
- var stringFoo2;
- stringFoo2.foo("hm");
- intFoo = stringFoo2; // error
- stringFoo2 = intFoo; // error
--var StringFoo3 = /** @class */ (function () {
--    function StringFoo3() {
--    }
--    StringFoo3.prototype.foo = function (x) { return null; };
--    return StringFoo3;
--}());
-+class StringFoo3 {
-+    foo(x) { return null; }
-+}
- var stringFoo3;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericStaticAnyTypeFunction.js.diff b/testdata/baselines/reference/submodule/compiler/genericStaticAnyTypeFunction.js.diff
deleted file mode 100644
index c3e706319d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericStaticAnyTypeFunction.js.diff
+++ /dev/null
@@ -1,25 +0,0 @@
---- old.genericStaticAnyTypeFunction.js
-+++ new.genericStaticAnyTypeFunction.js
-@@= skipped -20, +20 lines =@@
-
-
- //// [genericStaticAnyTypeFunction.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.one = function (source, value) {
-+class A {
-+    static one(source, value) {
-         return source;
--    };
--    A.goo = function () { return 0; };
--    A.two = function (source) {
-+    }
-+    static goo() { return 0; }
-+    static two(source) {
-         return this.one(source, 42); // should not error
--    };
--    return A;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTemplateOverloadResolution.js.diff b/testdata/baselines/reference/submodule/compiler/genericTemplateOverloadResolution.js.diff
deleted file mode 100644
index 91b4d1fa4d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTemplateOverloadResolution.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.genericTemplateOverloadResolution.js
-+++ new.genericTemplateOverloadResolution.js
-@@= skipped -13, +13 lines =@@
-
-
- //// [genericTemplateOverloadResolution.js]
--var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
--    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
--    return cooked;
--};
--expect(fooFn(__makeTemplateObject([""], [""])));
-+expect(fooFn ``);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeAssertions1.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeAssertions1.js.diff
deleted file mode 100644
index 3d05c4d2d4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTypeAssertions1.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.genericTypeAssertions1.js
-+++ new.genericTypeAssertions1.js
-@@= skipped -6, +6 lines =@@
- var r2: A = >>foo; // error
-
- //// [genericTypeAssertions1.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.foo = function (x) { };
--    return A;
--}());
-+class A {
-+    foo(x) { }
-+}
- var foo = new A();
- var r = new A(); // error
- var r2 = foo; // error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeAssertions2.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeAssertions2.js.diff
deleted file mode 100644
index 1c4851282b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTypeAssertions2.js.diff
+++ /dev/null
@@ -1,47 +0,0 @@
---- old.genericTypeAssertions2.js
-+++ new.genericTypeAssertions2.js
-@@= skipped -15, +15 lines =@@
- var r5: A = >[]; // error
-
- //// [genericTypeAssertions2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.foo = function (x) { };
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    B.prototype.bar = function () {
-+class A {
-+    foo(x) { }
-+}
-+class B extends A {
-+    bar() {
-         return null;
--    };
--    return B;
--}(A));
-+    }
-+}
- var foo = new A();
- var r = new B();
- var r2 = new B(); // error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeAssertions3.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeAssertions3.js.diff
deleted file mode 100644
index 5174997945..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTypeAssertions3.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.genericTypeAssertions3.js
-+++ new.genericTypeAssertions3.js
-@@= skipped -5, +5 lines =@@
-
-
- //// [genericTypeAssertions3.js]
--var r = (function (x) { return null; }); // bug was 'could not find dotted symbol T' on x's annotation in the type assertion instead of no error
--var s = (function (x) { return null; }); // no error
-+var r = ((x) => { return null; }); // bug was 'could not find dotted symbol T' on x's annotation in the type assertion instead of no error
-+var s = ((x) => { return null; }); // no error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeAssertions4.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeAssertions4.js.diff
deleted file mode 100644
index 90689cba7d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTypeAssertions4.js.diff
+++ /dev/null
@@ -1,55 +0,0 @@
---- old.genericTypeAssertions4.js
-+++ new.genericTypeAssertions4.js
-@@= skipped -27, +27 lines =@@
- }
-
- //// [genericTypeAssertions4.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.foo = function () { return ""; };
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    B.prototype.bar = function () { return 1; };
--    return B;
--}(A));
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    C.prototype.baz = function () { return 1; };
--    return C;
--}(A));
-+class A {
-+    foo() { return ""; }
-+}
-+class B extends A {
-+    bar() { return 1; }
-+}
-+class C extends A {
-+    baz() { return 1; }
-+}
- var a;
- var b;
- var c;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeAssertions6.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeAssertions6.js.diff
deleted file mode 100644
index dfb3068411..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTypeAssertions6.js.diff
+++ /dev/null
@@ -1,56 +0,0 @@
---- old.genericTypeAssertions6.js
-+++ new.genericTypeAssertions6.js
-@@= skipped -26, +26 lines =@@
- var c: A = >b;
-
- //// [genericTypeAssertions6.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A(x) {
-+class A {
-+    constructor(x) {
-         var y = x;
-         var z = x;
-     }
--    A.prototype.f = function (x, y) {
-+    f(x, y) {
-         x = y;
-         y = x;
--    };
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
-     }
--    B.prototype.g = function (x) {
-+}
-+class B extends A {
-+    g(x) {
-         var a = x;
-         var b = x;
-         var c = new Date();
-         var d = new Date();
-         var e = new Date();
--    };
--    return B;
--}(A));
-+    }
-+}
- var b;
- var c = b;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeConstraints.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeConstraints.js.diff
deleted file mode 100644
index b2a199bb72..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTypeConstraints.js.diff
+++ /dev/null
@@ -1,56 +0,0 @@
---- old.genericTypeConstraints.js
-+++ new.genericTypeConstraints.js
-@@= skipped -15, +15 lines =@@
- }
-
- //// [genericTypeConstraints.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    Foo.prototype.fooMethod = function () { };
--    return Foo;
--}());
--var FooExtended = /** @class */ (function () {
--    function FooExtended() {
--    }
--    return FooExtended;
--}());
--var Bar = /** @class */ (function () {
--    function Bar() {
--    }
--    return Bar;
--}());
--var BarExtended = /** @class */ (function (_super) {
--    __extends(BarExtended, _super);
--    function BarExtended() {
--        return _super.call(this) || this;
--    }
--    return BarExtended;
--}(Bar));
-+class Foo {
-+    fooMethod() { }
-+}
-+class FooExtended {
-+}
-+class Bar {
-+}
-+class BarExtended extends Bar {
-+    constructor() {
-+        super();
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeParameterEquivalence2.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeParameterEquivalence2.js.diff
deleted file mode 100644
index faa24b780d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTypeParameterEquivalence2.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.genericTypeParameterEquivalence2.js
-+++ new.genericTypeParameterEquivalence2.js
-@@= skipped -75, +75 lines =@@
- // filter :: (a->bool) -> [a] -> [a]
- function filter(f, ar) {
-     var ret = [];
--    forEach(ar, function (el) {
-+    forEach(ar, (el) => {
-         if (f(el)) {
-             ret.push(el);
-         }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeReferencesRequireTypeArgs.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeReferencesRequireTypeArgs.js.diff
deleted file mode 100644
index 82acb35376..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTypeReferencesRequireTypeArgs.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.genericTypeReferencesRequireTypeArgs.js
-+++ new.genericTypeReferencesRequireTypeArgs.js
-@@= skipped -13, +13 lines =@@
-
-
- //// [genericTypeReferencesRequireTypeArgs.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function () { return null; };
--    return C;
--}());
-+class C {
-+    foo() { return null; }
-+}
- var c1; // error
- var i1; // error
- var c2; // should be an error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeUsedWithoutTypeArguments1.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeUsedWithoutTypeArguments1.js.diff
deleted file mode 100644
index 1650cbf3f3..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTypeUsedWithoutTypeArguments1.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.genericTypeUsedWithoutTypeArguments1.js
-+++ new.genericTypeUsedWithoutTypeArguments1.js
-@@= skipped -5, +5 lines =@@
-
-
- //// [genericTypeUsedWithoutTypeArguments1.js]
--var Bar = /** @class */ (function () {
--    function Bar() {
--    }
--    return Bar;
--}());
-+class Bar {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeWithCallableMembers.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeWithCallableMembers.js.diff
index 53ec8834aa..50080f93ee 100644
--- a/testdata/baselines/reference/submodule/compiler/genericTypeWithCallableMembers.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericTypeWithCallableMembers.js.diff
@@ -1,24 +1,11 @@
 --- old.genericTypeWithCallableMembers.js
 +++ new.genericTypeWithCallableMembers.js
-@@= skipped -14, +14 lines =@@
-
+@@= skipped -15, +15 lines =@@
 
  //// [genericTypeWithCallableMembers.js]
--var C = /** @class */ (function () {
--    function C(data, data2) {
-+class C {
+ class C {
 +    data;
 +    data2;
-+    constructor(data, data2) {
+     constructor(data, data2) {
          this.data = data;
-         this.data2 = data2;
-     }
--    C.prototype.create = function () {
-+    create() {
-         var x = new this.data(); // no error
-         var x2 = new this.data2(); // was error, shouldn't be
--    };
--    return C;
--}());
-+    }
-+}
\ No newline at end of file
+         this.data2 = data2;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericTypeWithNonGenericBaseMisMatch.js.diff b/testdata/baselines/reference/submodule/compiler/genericTypeWithNonGenericBaseMisMatch.js.diff
deleted file mode 100644
index aa7b59dd43..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericTypeWithNonGenericBaseMisMatch.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.genericTypeWithNonGenericBaseMisMatch.js
-+++ new.genericTypeWithNonGenericBaseMisMatch.js
-@@= skipped -11, +11 lines =@@
-
-
- //// [genericTypeWithNonGenericBaseMisMatch.js]
--var X = /** @class */ (function () {
--    function X() {
--    }
--    X.prototype.f = function (a) { };
--    return X;
--}());
-+class X {
-+    f(a) { }
-+}
- var x = new X();
- var i = x; // Should not be allowed -- type of 'f' is incompatible with 'I'
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericWithCallSignatures1.js.diff b/testdata/baselines/reference/submodule/compiler/genericWithCallSignatures1.js.diff
index fa58171c19..2666903efc 100644
--- a/testdata/baselines/reference/submodule/compiler/genericWithCallSignatures1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericWithCallSignatures1.js.diff
@@ -1,19 +1,10 @@
 --- old.genericWithCallSignatures1.js
 +++ new.genericWithCallSignatures1.js
-@@= skipped -20, +20 lines =@@
- //// [genericWithCallSignatures_0.js]
+@@= skipped -21, +21 lines =@@
  //// [genericWithCallSignatures_1.js]
  ///
--var MyClass = /** @class */ (function () {
--    function MyClass() {
--    }
--    MyClass.prototype.myMethod = function () {
-+class MyClass {
+ class MyClass {
 +    callableThing;
-+    myMethod() {
+     myMethod() {
          var x = this.callableThing();
--    };
--    return MyClass;
--}());
-+    }
-+}
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericWithIndexerOfTypeParameterType1.js.diff b/testdata/baselines/reference/submodule/compiler/genericWithIndexerOfTypeParameterType1.js.diff
index e473bd89d3..f1d35d5475 100644
--- a/testdata/baselines/reference/submodule/compiler/genericWithIndexerOfTypeParameterType1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericWithIndexerOfTypeParameterType1.js.diff
@@ -1,22 +1,13 @@
 --- old.genericWithIndexerOfTypeParameterType1.js
 +++ new.genericWithIndexerOfTypeParameterType1.js
-@@= skipped -10, +10 lines =@@
- var value: string = lazyArray.array()["test"]; // used to be an error
+@@= skipped -11, +11 lines =@@
 
  //// [genericWithIndexerOfTypeParameterType1.js]
--var LazyArray = /** @class */ (function () {
--    function LazyArray() {
+ class LazyArray {
+-    constructor() {
 -        this.objects = {};
 -    }
--    LazyArray.prototype.array = function () {
-+class LazyArray {
 +    objects = {};
-+    array() {
+     array() {
          return this.objects;
--    };
--    return LazyArray;
--}());
-+    }
-+}
- var lazyArray = new LazyArray();
- var value = lazyArray.array()["test"]; // used to be an error
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericWithIndexerOfTypeParameterType2.js.diff b/testdata/baselines/reference/submodule/compiler/genericWithIndexerOfTypeParameterType2.js.diff
index 8f55f3e185..cb6d350b76 100644
--- a/testdata/baselines/reference/submodule/compiler/genericWithIndexerOfTypeParameterType2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericWithIndexerOfTypeParameterType2.js.diff
@@ -4,53 +4,22 @@
 
 
  //// [genericWithIndexerOfTypeParameterType2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
 -define(["require", "exports"], function (require, exports) {
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.ListItem = exports.CollectionItem = exports.List = exports.Collection = void 0;
--    var Collection = /** @class */ (function () {
--        function Collection() {
--        }
--        return Collection;
--    }());
+-    class Collection {
+-    }
 -    exports.Collection = Collection;
--    var List = /** @class */ (function (_super) {
--        __extends(List, _super);
--        function List() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        List.prototype.Bar = function () { };
--        return List;
--    }(Collection));
+-    class List extends Collection {
+-        Bar() { }
+-    }
 -    exports.List = List;
--    var CollectionItem = /** @class */ (function () {
--        function CollectionItem() {
--        }
--        return CollectionItem;
--    }());
+-    class CollectionItem {
+-    }
 -    exports.CollectionItem = CollectionItem;
--    var ListItem = /** @class */ (function (_super) {
--        __extends(ListItem, _super);
--        function ListItem() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return ListItem;
--    }(CollectionItem));
+-    class ListItem extends CollectionItem {
+-    }
 -    exports.ListItem = ListItem;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/genericWithNoConstraintComparableWithCurlyCurly.js.diff b/testdata/baselines/reference/submodule/compiler/genericWithNoConstraintComparableWithCurlyCurly.js.diff
index 06cc0b6826..b70eed9488 100644
--- a/testdata/baselines/reference/submodule/compiler/genericWithNoConstraintComparableWithCurlyCurly.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericWithNoConstraintComparableWithCurlyCurly.js.diff
@@ -6,32 +6,5 @@
  //// [genericWithNoConstraintComparableWithCurlyCurly.js]
 -"use strict";
  function foo() {
--    var x = {};
-+    let x = {};
-     x;
- }
- function bar() {
--    var x = {};
-+    let x = {};
-     x;
- }
- function baz() {
--    var x = {};
-+    let x = {};
-     x;
- }
- function bat() {
--    var x = {};
-+    let x = {};
-     x;
- }
- function no() {
--    var x = {};
-+    let x = {};
-     x; // should error
- }
- function yes() {
--    var x = {};
-+    let x = {};
-     x;
- }
\ No newline at end of file
+     let x = {};
+     x;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericWithOpenTypeParameters1.js.diff b/testdata/baselines/reference/submodule/compiler/genericWithOpenTypeParameters1.js.diff
deleted file mode 100644
index f30c0b2124..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericWithOpenTypeParameters1.js.diff
+++ /dev/null
@@ -1,25 +0,0 @@
---- old.genericWithOpenTypeParameters1.js
-+++ new.genericWithOpenTypeParameters1.js
-@@= skipped -13, +13 lines =@@
-
-
- //// [genericWithOpenTypeParameters1.js]
--var B = /** @class */ (function () {
--    function B() {
--    }
--    B.prototype.foo = function (x) { return null; };
--    return B;
--}());
-+class B {
-+    foo(x) { return null; }
-+}
- var x;
- x.foo(1); // no error
--var f = function (x) { return x.foo(1); }; // error
--var f2 = function (x) { return x.foo(1); }; // error
--var f3 = function (x) { return x.foo(1); }; // error
--var f4 = function (x) { return x.foo(1); }; // no error
-+var f = (x) => { return x.foo(1); }; // error
-+var f2 = (x) => { return x.foo(1); }; // error
-+var f3 = (x) => { return x.foo(1); }; // error
-+var f4 = (x) => { return x.foo(1); }; // no error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/generics3.js.diff b/testdata/baselines/reference/submodule/compiler/generics3.js.diff
index 51f8dbe838..6d3d981dfe 100644
--- a/testdata/baselines/reference/submodule/compiler/generics3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/generics3.js.diff
@@ -1,17 +1,10 @@
 --- old.generics3.js
 +++ new.generics3.js
-@@= skipped -9, +9 lines =@@
- a = b; // Ok - should be identical
+@@= skipped -10, +10 lines =@@
 
  //// [generics3.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    x;
-+}
+ }
  var a;
- var b;
- a = b; // Ok - should be identical
\ No newline at end of file
+ var b;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/generics4.js.diff b/testdata/baselines/reference/submodule/compiler/generics4.js.diff
index 65a7a46018..eaa7c739b5 100644
--- a/testdata/baselines/reference/submodule/compiler/generics4.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/generics4.js.diff
@@ -1,17 +1,10 @@
 --- old.generics4.js
 +++ new.generics4.js
-@@= skipped -9, +9 lines =@@
- a = b; // Not ok - return types of "f" are different
+@@= skipped -10, +10 lines =@@
 
  //// [generics4.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    x;
-+}
+ }
  var a;
- var b;
- a = b; // Not ok - return types of "f" are different
\ No newline at end of file
+ var b;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/generics4NoError.js.diff b/testdata/baselines/reference/submodule/compiler/generics4NoError.js.diff
index b9b6eab727..52dcce6db6 100644
--- a/testdata/baselines/reference/submodule/compiler/generics4NoError.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/generics4NoError.js.diff
@@ -1,16 +1,10 @@
 --- old.generics4NoError.js
 +++ new.generics4NoError.js
-@@= skipped -8, +8 lines =@@
-
+@@= skipped -9, +9 lines =@@
 
  //// [generics4NoError.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    x;
-+}
+ }
  var a;
- var b;
+ var b;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericsAndHigherOrderFunctions.js.diff b/testdata/baselines/reference/submodule/compiler/genericsAndHigherOrderFunctions.js.diff
deleted file mode 100644
index 9663346115..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericsAndHigherOrderFunctions.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.genericsAndHigherOrderFunctions.js
-+++ new.genericsAndHigherOrderFunctions.js
-@@= skipped -20, +20 lines =@@
-
- //// [genericsAndHigherOrderFunctions.js]
- // no errors expected
--var combine = function (f) {
--    return function (g) {
--        return function (x) { return f(g(x)); };
--    };
--};
--var foo = function (g) {
--    return function (h) {
--        return function (f) { return h(combine(f)(g)); };
--    };
--};
-+var combine = (f) => (g) => (x) => f(g(x));
-+var foo = (g) => (h) => (f) => h(combine(f)(g));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericsWithDuplicateTypeParameters1.js.diff b/testdata/baselines/reference/submodule/compiler/genericsWithDuplicateTypeParameters1.js.diff
deleted file mode 100644
index e2562158b3..0000000000
--- a/testdata/baselines/reference/submodule/compiler/genericsWithDuplicateTypeParameters1.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.genericsWithDuplicateTypeParameters1.js
-+++ new.genericsWithDuplicateTypeParameters1.js
-@@= skipped -20, +20 lines =@@
- //// [genericsWithDuplicateTypeParameters1.js]
- function f() { }
- function f2(a, b) { return null; }
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.f = function () { };
--    C.prototype.f2 = function (a, b) { return null; };
--    return C;
--}());
-+class C {
-+    f() { }
-+    f2(a, b) { return null; }
-+}
- var m = {
-     a: function f() { },
-     b: function f2(a, b) { return null; }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/genericsWithoutTypeParameters1.js.diff b/testdata/baselines/reference/submodule/compiler/genericsWithoutTypeParameters1.js.diff
index f39634e8a9..2ac2c3883f 100644
--- a/testdata/baselines/reference/submodule/compiler/genericsWithoutTypeParameters1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/genericsWithoutTypeParameters1.js.diff
@@ -1,43 +1,11 @@
 --- old.genericsWithoutTypeParameters1.js
 +++ new.genericsWithoutTypeParameters1.js
-@@= skipped -35, +35 lines =@@
- }
-
- //// [genericsWithoutTypeParameters1.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function () { return null; };
--    return C;
--}());
-+class C {
-+    foo() { return null; }
-+}
- var c1;
- var i1;
- var c2;
-@@= skipped -13, +10 lines =@@
- function foo(x, y) { }
- function foo2(x, y) { }
+@@= skipped -47, +47 lines =@@
  var x = { a: new C() };
--var x2 = { a: { bar: function () { return 1; } } };
--var D = /** @class */ (function () {
--    function D() {
--    }
--    return D;
--}());
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+var x2 = { a: { bar() { return 1; } } };
-+class D {
+ var x2 = { a: { bar() { return 1; } } };
+ class D {
 +    x;
 +    y;
-+}
-+class A {
-+}
- function f(x) {
-     return null;
+ }
+ class A {
  }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.js.diff b/testdata/baselines/reference/submodule/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.js.diff
deleted file mode 100644
index b82a5f8d8c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.js.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- old.getAccessorWithImpliedReturnTypeAndFunctionClassMerge.js
-+++ new.getAccessorWithImpliedReturnTypeAndFunctionClassMerge.js
-@@= skipped -31, +31 lines =@@
- //// [getAccessorWithImpliedReturnTypeAndFunctionClassMerge.js]
- var MyModule;
- (function (MyModule) {
--    var MyClass = /** @class */ (function () {
--        function MyClass() {
-+    class MyClass {
-+        get myGetter() {
-+            var obj = {};
-+            return obj;
-         }
--        Object.defineProperty(MyClass.prototype, "myGetter", {
--            get: function () {
--                var obj = {};
--                return obj;
--            },
--            enumerable: false,
--            configurable: true
--        });
--        return MyClass;
--    }());
-+    }
-     MyModule.MyClass = MyClass;
- })(MyModule || (MyModule = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/getAndSetAsMemberNames.js.diff b/testdata/baselines/reference/submodule/compiler/getAndSetAsMemberNames.js.diff
index f0ef74308e..69c31c0317 100644
--- a/testdata/baselines/reference/submodule/compiler/getAndSetAsMemberNames.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/getAndSetAsMemberNames.js.diff
@@ -1,62 +1,34 @@
 --- old.getAndSetAsMemberNames.js
 +++ new.getAndSetAsMemberNames.js
-@@= skipped -23, +23 lines =@@
-
+@@= skipped -24, +24 lines =@@
 
  //// [getAndSetAsMemberNames.js]
--var C1 = /** @class */ (function () {
--    function C1() {
+ class C1 {
+-    constructor() {
 -        this.get = 1;
 -    }
--    return C1;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    return C2;
--}());
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    C3.prototype.set = function (x) {
-+class C1 {
 +    set;
 +    get = 1;
-+}
-+class C2 {
+ }
+ class C2 {
 +    set;
-+}
-+class C3 {
-+    set(x) {
-         return x + 1;
--    };
--    return C3;
--}());
--var C4 = /** @class */ (function () {
--    function C4() {
+ }
+ class C3 {
+     set(x) {
+@@= skipped -12, +12 lines =@@
+     }
+ }
+ class C4 {
+-    constructor() {
 -        this.get = true;
 -    }
--    return C4;
--}());
--var C5 = /** @class */ (function () {
--    function C5() {
++    get = true;
+ }
+ class C5 {
+-    constructor() {
 -        this.set = function () { return true; };
 -    }
--    C5.prototype.get = function () { return true; };
--    Object.defineProperty(C5.prototype, "t", {
--        set: function (x) { },
--        enumerable: false,
--        configurable: true
--    });
--    return C5;
--}());
-+    }
-+}
-+class C4 {
-+    get = true;
-+}
-+class C5 {
 +    set = function () { return true; };
-+    get() { return true; }
-+    set t(x) { }
-+}
\ No newline at end of file
+     get() { return true; }
+     set t(x) { }
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType.js.diff b/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType.js.diff
deleted file mode 100644
index d444c13d2f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.getAndSetNotIdenticalType.js
-+++ new.getAndSetNotIdenticalType.js
-@@= skipped -8, +8 lines =@@
- }
-
- //// [getAndSetNotIdenticalType.js]
--var C = /** @class */ (function () {
--    function C() {
-+class C {
-+    get x() {
-+        return 1;
-     }
--    Object.defineProperty(C.prototype, "x", {
--        get: function () {
--            return 1;
--        },
--        set: function (v) { },
--        enumerable: false,
--        configurable: true
--    });
--    return C;
--}());
-+    set x(v) { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType2.js.diff b/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType2.js.diff
index 9a6fd31b80..3c5e0132a9 100644
--- a/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType2.js.diff
@@ -1,41 +1,13 @@
 --- old.getAndSetNotIdenticalType2.js
 +++ new.getAndSetNotIdenticalType2.js
-@@= skipped -17, +17 lines =@@
- x.x = r;
+@@= skipped -18, +18 lines =@@
 
  //// [getAndSetNotIdenticalType2.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var C = /** @class */ (function () {
--    function C() {
--    }
--    Object.defineProperty(C.prototype, "x", {
--        get: function () {
--            return this.data;
--        },
--        set: function (v) {
--            this.data = v;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return C;
--}());
-+class A {
+ class A {
 +    foo;
-+}
-+class C {
+ }
+ class C {
 +    data;
-+    get x() {
-+        return this.data;
-+    }
-+    set x(v) {
-+        this.data = v;
-+    }
-+}
- var x = new C();
- var r = x.x;
- x.x = r;
\ No newline at end of file
+     get x() {
+         return this.data;
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType3.js.diff b/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType3.js.diff
index 8626ad819d..69ce5f0e8e 100644
--- a/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/getAndSetNotIdenticalType3.js.diff
@@ -1,41 +1,13 @@
 --- old.getAndSetNotIdenticalType3.js
 +++ new.getAndSetNotIdenticalType3.js
-@@= skipped -17, +17 lines =@@
- x.x = r;
+@@= skipped -18, +18 lines =@@
 
  //// [getAndSetNotIdenticalType3.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var C = /** @class */ (function () {
--    function C() {
--    }
--    Object.defineProperty(C.prototype, "x", {
--        get: function () {
--            return this.data;
--        },
--        set: function (v) {
--            this.data = v;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return C;
--}());
-+class A {
+ class A {
 +    foo;
-+}
-+class C {
+ }
+ class C {
 +    data;
-+    get x() {
-+        return this.data;
-+    }
-+    set x(v) {
-+        this.data = v;
-+    }
-+}
- var x = new C();
- var r = x.x;
- x.x = r;
\ No newline at end of file
+     get x() {
+         return this.data;
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/getParameterNameAtPosition.js.diff b/testdata/baselines/reference/submodule/compiler/getParameterNameAtPosition.js.diff
index a7f4f74cbd..6faee97c2a 100644
--- a/testdata/baselines/reference/submodule/compiler/getParameterNameAtPosition.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/getParameterNameAtPosition.js.diff
@@ -6,5 +6,4 @@
  //// [getParameterNameAtPosition.js]
 -"use strict";
 -// Repro from #30171
--cases(fn(function (opts) { }));
-+cases(fn(opts => { }));
\ No newline at end of file
+ cases(fn(opts => { }));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/getSetEnumerable.js.diff b/testdata/baselines/reference/submodule/compiler/getSetEnumerable.js.diff
deleted file mode 100644
index 9b7ccc51c1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/getSetEnumerable.js.diff
+++ /dev/null
@@ -1,64 +0,0 @@
---- old.getSetEnumerable.js
-+++ new.getSetEnumerable.js
-@@= skipped -28, +28 lines =@@
-
-
- //// [getSetEnumerable.js]
--var GetSetEnumerableClassGet = /** @class */ (function () {
--    function GetSetEnumerableClassGet() {
--    }
--    Object.defineProperty(GetSetEnumerableClassGet.prototype, "prop", {
--        get: function () { return true; },
--        enumerable: false,
--        configurable: true
--    });
--    return GetSetEnumerableClassGet;
--}());
--var GetSetEnumerableClassSet = /** @class */ (function () {
--    function GetSetEnumerableClassSet() {
--    }
--    Object.defineProperty(GetSetEnumerableClassSet.prototype, "prop", {
--        set: function (value) { },
--        enumerable: false,
--        configurable: true
--    });
--    return GetSetEnumerableClassSet;
--}());
--var GetSetEnumerableClassGetSet = /** @class */ (function () {
--    function GetSetEnumerableClassGetSet() {
--    }
--    Object.defineProperty(GetSetEnumerableClassGetSet.prototype, "prop", {
--        get: function () { return true; },
--        set: function (value) { },
--        enumerable: false,
--        configurable: true
--    });
--    return GetSetEnumerableClassGetSet;
--}());
--var GetSetEnumerableObjectGet = {
--    get prop() { return true; }
--};
--var GetSetEnumerableObjectSet = {
--    set prop(value) { }
--};
--var GetSetEnumerableObjectGetSet = {
-+class GetSetEnumerableClassGet {
-+    get prop() { return true; }
-+}
-+class GetSetEnumerableClassSet {
-+    set prop(value) { }
-+}
-+class GetSetEnumerableClassGetSet {
-+    get prop() { return true; }
-+    set prop(value) { }
-+}
-+const GetSetEnumerableObjectGet = {
-+    get prop() { return true; }
-+};
-+const GetSetEnumerableObjectSet = {
-+    set prop(value) { }
-+};
-+const GetSetEnumerableObjectGetSet = {
-     get prop() { return true; },
-     set prop(value) { }
- };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/getterControlFlowStrictNull.js.diff b/testdata/baselines/reference/submodule/compiler/getterControlFlowStrictNull.js.diff
deleted file mode 100644
index 3e605634a1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/getterControlFlowStrictNull.js.diff
+++ /dev/null
@@ -1,71 +0,0 @@
---- old.getterControlFlowStrictNull.js
-+++ new.getterControlFlowStrictNull.js
-@@= skipped -32, +32 lines =@@
- }
-
- //// [getterControlFlowStrictNull.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.a = function () {
-+class A {
-+    a() {
-         if (Math.random() > 0.5) {
-             return '';
-         }
-         // it does error here as expected
--    };
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--    }
--    Object.defineProperty(B.prototype, "a", {
--        get: function () {
--            if (Math.random() > 0.5) {
--                return '';
--            }
--            // it should error here because it returns undefined
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return B;
--}());
--var C = /** @class */ (function () {
--    function C() {
--    }
--    Object.defineProperty(C.prototype, "a", {
--        get: function () {
--            if (Math.random() > 0.5) {
--                return 0;
--            }
--            // it should error here because it returns undefined
--        },
--        set: function (value) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return C;
--}());
-+    }
-+}
-+class B {
-+    get a() {
-+        if (Math.random() > 0.5) {
-+            return '';
-+        }
-+        // it should error here because it returns undefined
-+    }
-+}
-+class C {
-+    get a() {
-+        if (Math.random() > 0.5) {
-+            return 0;
-+        }
-+        // it should error here because it returns undefined
-+    }
-+    set a(value) {
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/getterMissingReturnError.js.diff b/testdata/baselines/reference/submodule/compiler/getterMissingReturnError.js.diff
deleted file mode 100644
index 71af9c17b6..0000000000
--- a/testdata/baselines/reference/submodule/compiler/getterMissingReturnError.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.getterMissingReturnError.js
-+++ new.getterMissingReturnError.js
-@@= skipped -8, +8 lines =@@
-
-
- //// [getterMissingReturnError.js]
--var test = /** @class */ (function () {
--    function test() {
-+class test {
-+    get p2() {
-     }
--    Object.defineProperty(test.prototype, "p2", {
--        get: function () {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return test;
--}());
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/getterThatThrowsShouldNotNeedReturn.js.diff b/testdata/baselines/reference/submodule/compiler/getterThatThrowsShouldNotNeedReturn.js.diff
deleted file mode 100644
index fb079b15d2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/getterThatThrowsShouldNotNeedReturn.js.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- old.getterThatThrowsShouldNotNeedReturn.js
-+++ new.getterThatThrowsShouldNotNeedReturn.js
-@@= skipped -11, +11 lines =@@
-
-
- //// [getterThatThrowsShouldNotNeedReturn.js]
--var Greeter = /** @class */ (function () {
--    function Greeter() {
--    }
--    Object.defineProperty(Greeter.prototype, "greet", {
--        get: function () {
--            throw ''; // should not raise an error
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Greeter.prototype.greeting = function () {
--        throw ''; // should not raise an error
--    };
--    return Greeter;
--}());
-+class Greeter {
-+    get greet() {
-+        throw ''; // should not raise an error
-+    }
-+    greeting() {
-+        throw ''; // should not raise an error
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/gettersAndSettersAccessibility.js.diff b/testdata/baselines/reference/submodule/compiler/gettersAndSettersAccessibility.js.diff
deleted file mode 100644
index 58f6e929af..0000000000
--- a/testdata/baselines/reference/submodule/compiler/gettersAndSettersAccessibility.js.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- old.gettersAndSettersAccessibility.js
-+++ new.gettersAndSettersAccessibility.js
-@@= skipped -7, +7 lines =@@
-
-
- //// [gettersAndSettersAccessibility.js]
--var C99 = /** @class */ (function () {
--    function C99() {
--    }
--    Object.defineProperty(C99.prototype, "Baz", {
--        get: function () { return 0; },
--        set: function (n) { } // error - accessors do not agree in visibility
--        ,
--        enumerable: false,
--        configurable: true
--    });
--    return C99;
--}());
-+class C99 {
-+    get Baz() { return 0; }
-+    set Baz(n) { } // error - accessors do not agree in visibility
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/gettersAndSettersErrors.js.diff b/testdata/baselines/reference/submodule/compiler/gettersAndSettersErrors.js.diff
index 4448e0a3a8..6f0f1df6b9 100644
--- a/testdata/baselines/reference/submodule/compiler/gettersAndSettersErrors.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/gettersAndSettersErrors.js.diff
@@ -1,51 +1,18 @@
 --- old.gettersAndSettersErrors.js
 +++ new.gettersAndSettersErrors.js
-@@= skipped -18, +18 lines =@@
-
+@@= skipped -19, +19 lines =@@
 
  //// [gettersAndSettersErrors.js]
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.Foo = 0; // error - duplicate identifier Foo - confirmed
 -    }
--    Object.defineProperty(C.prototype, "Foo", {
--        get: function () { return "foo"; } // ok
--        ,
--        set: function (foo) { } // ok
--        ,
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C.prototype, "Goo", {
--        get: function (v) { return null; } // error - getters must not have a parameter
--        ,
--        set: function (v) { } // error - setters must not specify a return type
--        ,
--        enumerable: false,
--        configurable: true
--    });
--    return C;
--}());
--var E = /** @class */ (function () {
--    function E() {
--    }
--    Object.defineProperty(E.prototype, "Baz", {
--        get: function () { return 0; },
--        set: function (n) { } // error - accessors do not agree in visibility
--        ,
--        enumerable: false,
--        configurable: true
--    });
--    return E;
--}());
-+class C {
-+    get Foo() { return "foo"; } // ok
-+    set Foo(foo) { } // ok
+     get Foo() { return "foo"; } // ok
+     set Foo(foo) { } // ok
 +    Foo = 0; // error - duplicate identifier Foo - confirmed
-+    get Goo(v) { return null; } // error - getters must not have a parameter
+     get Goo(v) { return null; } // error - getters must not have a parameter
+-    set Goo(v): string { } // error - setters must not specify a return type
 +    set Goo(v) { } // error - setters must not specify a return type
-+}
-+class E {
-+    get Baz() { return 0; }
-+    set Baz(n) { } // error - accessors do not agree in visibility
-+}
\ No newline at end of file
+ }
+ class E {
+     get Baz() { return 0; }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/gettersAndSettersTypesAgree.js.diff b/testdata/baselines/reference/submodule/compiler/gettersAndSettersTypesAgree.js.diff
deleted file mode 100644
index 88d35a4a92..0000000000
--- a/testdata/baselines/reference/submodule/compiler/gettersAndSettersTypesAgree.js.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- old.gettersAndSettersTypesAgree.js
-+++ new.gettersAndSettersTypesAgree.js
-@@= skipped -12, +12 lines =@@
- var o2 = {get Foo(){return 0;}, set Foo(val:number){}}; // ok - types agree
-
- //// [gettersAndSettersTypesAgree.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    Object.defineProperty(C.prototype, "Foo", {
--        get: function () { return "foo"; } // ok
--        ,
--        set: function (foo) { } // ok - type inferred from getter return statement
--        ,
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C.prototype, "Bar", {
--        get: function () { return "foo"; } // ok
--        ,
--        set: function (bar) { } // ok - type must be declared
--        ,
--        enumerable: false,
--        configurable: true
--    });
--    return C;
--}());
-+class C {
-+    get Foo() { return "foo"; } // ok
-+    set Foo(foo) { } // ok - type inferred from getter return statement
-+    get Bar() { return "foo"; } // ok
-+    set Bar(bar) { } // ok - type must be declared
-+}
- var o1 = { get Foo() { return 0; }, set Foo(val) { } }; // ok - types agree (inference)
- var o2 = { get Foo() { return 0; }, set Foo(val) { } }; // ok - types agree
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/giant.js.diff b/testdata/baselines/reference/submodule/compiler/giant.js.diff
index 56cacfffa8..745792e25c 100644
--- a/testdata/baselines/reference/submodule/compiler/giant.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/giant.js.diff
@@ -22,124 +22,66 @@
 -    
 -        MAX DEPTH 3 LEVELS
 -    */
--    var p = "propName";
+-    const p = "propName";
 -    var V;
 -    function F() { }
 -    ;
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        C.prototype.pF = function () { };
--        C.prototype.rF = function () { };
--        C.prototype.pgF = function () { };
--        Object.defineProperty(C.prototype, "pgF", {
--            get: function () { },
--            enumerable: false,
--            configurable: true
--        });
--        C.prototype.psF = function (param) { };
--        Object.defineProperty(C.prototype, "psF", {
--            set: function (param) { },
--            enumerable: false,
--            configurable: true
--        });
--        C.prototype.rgF = function () { };
--        Object.defineProperty(C.prototype, "rgF", {
--            get: function () { },
--            enumerable: false,
--            configurable: true
--        });
--        C.prototype.rsF = function (param) { };
--        Object.defineProperty(C.prototype, "rsF", {
--            set: function (param) { },
--            enumerable: false,
--            configurable: true
--        });
--        C.tF = function () { };
--        C.tsF = function (param) { };
--        Object.defineProperty(C, "tsF", {
--            set: function (param) { },
--            enumerable: false,
--            configurable: true
--        });
--        C.tgF = function () { };
--        Object.defineProperty(C, "tgF", {
--            get: function () { },
--            enumerable: false,
--            configurable: true
--        });
--        return C;
--    }());
+-    class C {
+-        constructor() { }
+-        pF() { }
+-        rF() { }
+-        pgF() { }
+-        get pgF() { }
+-        psF(param) { }
+-        set psF(param) { }
+-        rgF() { }
+-        get rgF() { }
+-        rsF(param) { }
+-        set rsF(param) { }
+-        static tF() { }
+-        static tsF(param) { }
+-        static set tsF(param) { }
+-        static tgF() { }
+-        static get tgF() { }
+-    }
 -    var M;
 -    (function (M_1) {
 -        var V;
 -        function F() { }
 -        ;
--        var C = /** @class */ (function () {
--            function C() {
--            }
--            C.prototype.pF = function () { };
--            C.prototype.rF = function () { };
--            C.prototype.pgF = function () { };
--            Object.defineProperty(C.prototype, "pgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            C.prototype.psF = function (param) { };
--            Object.defineProperty(C.prototype, "psF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            C.prototype.rgF = function () { };
--            Object.defineProperty(C.prototype, "rgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            C.prototype.rsF = function (param) { };
--            Object.defineProperty(C.prototype, "rsF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            C.tF = function () { };
--            C.tsF = function (param) { };
--            Object.defineProperty(C, "tsF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            C.tgF = function () { };
--            Object.defineProperty(C, "tgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            return C;
--        }());
--        var M;
+-        class C {
+-            constructor() { }
+-            pF() { }
+-            rF() { }
+-            pgF() { }
+-            get pgF() { }
+-            psF(param) { }
+-            set psF(param) { }
+-            rgF() { }
+-            get rgF() { }
+-            rsF(param) { }
+-            set rsF(param) { }
+-            static tF() { }
+-            static tsF(param) { }
+-            static set tsF(param) { }
+-            static tgF() { }
+-            static get tgF() { }
+-        }
+-        let M;
 -        (function (M) {
 -            var V;
 -            function F() { }
 -            ;
--            var C = /** @class */ (function () {
--                function C() {
--                }
--                return C;
--            }());
+-            class C {
+-            }
 -            ;
 -            ;
 -            ;
 -            function eF() { }
 -            M.eF = eF;
 -            ;
--            var eC = /** @class */ (function () {
--                function eC() {
--                }
--                return eC;
--            }());
+-            class eC {
+-            }
 -            M.eC = eC;
 -            ;
 -            ;
@@ -151,72 +93,40 @@
 -        function eF() { }
 -        M_1.eF = eF;
 -        ;
--        var eC = /** @class */ (function () {
--            function eC() {
--            }
--            eC.prototype.pF = function () { };
--            eC.prototype.rF = function () { };
--            eC.prototype.pgF = function () { };
--            Object.defineProperty(eC.prototype, "pgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            eC.prototype.psF = function (param) { };
--            Object.defineProperty(eC.prototype, "psF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            eC.prototype.rgF = function () { };
--            Object.defineProperty(eC.prototype, "rgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            eC.prototype.rsF = function (param) { };
--            Object.defineProperty(eC.prototype, "rsF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            eC.tF = function () { };
--            eC.tsF = function (param) { };
--            Object.defineProperty(eC, "tsF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            eC.tgF = function () { };
--            Object.defineProperty(eC, "tgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            return eC;
--        }());
+-        class eC {
+-            constructor() { }
+-            pF() { }
+-            rF() { }
+-            pgF() { }
+-            get pgF() { }
+-            psF(param) { }
+-            set psF(param) { }
+-            rgF() { }
+-            get rgF() { }
+-            rsF(param) { }
+-            set rsF(param) { }
+-            static tF() { }
+-            static tsF(param) { }
+-            static set tsF(param) { }
+-            static tgF() { }
+-            static get tgF() { }
+-        }
 -        M_1.eC = eC;
--        var eM;
+-        let eM;
 -        (function (eM) {
 -            var V;
 -            function F() { }
 -            ;
--            var C = /** @class */ (function () {
--                function C() {
--                }
--                return C;
--            }());
+-            class C {
+-            }
 -            ;
 -            ;
 -            ;
 -            function eF() { }
 -            eM.eF = eF;
 -            ;
--            var eC = /** @class */ (function () {
--                function eC() {
--                }
--                return eC;
--            }());
+-            class eC {
+-            }
 -            eM.eC = eC;
 -            ;
 -            ;
@@ -229,121 +139,63 @@
 -    })(M || (M = {}));
 -    function eF() { }
 -    ;
--    var eC = /** @class */ (function () {
--        function eC() {
--        }
--        eC.prototype.pF = function () { };
--        eC.prototype.rF = function () { };
--        eC.prototype.pgF = function () { };
--        Object.defineProperty(eC.prototype, "pgF", {
--            get: function () { },
--            enumerable: false,
--            configurable: true
--        });
--        eC.prototype.psF = function (param) { };
--        Object.defineProperty(eC.prototype, "psF", {
--            set: function (param) { },
--            enumerable: false,
--            configurable: true
--        });
--        eC.prototype.rgF = function () { };
--        Object.defineProperty(eC.prototype, "rgF", {
--            get: function () { },
--            enumerable: false,
--            configurable: true
--        });
--        eC.prototype.rsF = function (param) { };
--        Object.defineProperty(eC.prototype, "rsF", {
--            set: function (param) { },
--            enumerable: false,
--            configurable: true
--        });
--        eC.tF = function () { };
--        eC.tsF = function (param) { };
--        Object.defineProperty(eC, "tsF", {
--            set: function (param) { },
--            enumerable: false,
--            configurable: true
--        });
--        eC.tgF = function () { };
--        Object.defineProperty(eC, "tgF", {
--            get: function () { },
--            enumerable: false,
--            configurable: true
--        });
--        return eC;
--    }());
+-    class eC {
+-        constructor() { }
+-        pF() { }
+-        rF() { }
+-        pgF() { }
+-        get pgF() { }
+-        psF(param) { }
+-        set psF(param) { }
+-        rgF() { }
+-        get rgF() { }
+-        rsF(param) { }
+-        set rsF(param) { }
+-        static tF() { }
+-        static tsF(param) { }
+-        static set tsF(param) { }
+-        static tgF() { }
+-        static get tgF() { }
+-    }
 -    exports.eC = eC;
 -    var eM;
 -    (function (eM_1) {
 -        var V;
 -        function F() { }
 -        ;
--        var C = /** @class */ (function () {
--            function C() {
--            }
--            C.prototype.pF = function () { };
--            C.prototype.rF = function () { };
--            C.prototype.pgF = function () { };
--            Object.defineProperty(C.prototype, "pgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            C.prototype.psF = function (param) { };
--            Object.defineProperty(C.prototype, "psF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            C.prototype.rgF = function () { };
--            Object.defineProperty(C.prototype, "rgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            C.prototype.rsF = function (param) { };
--            Object.defineProperty(C.prototype, "rsF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            C.tF = function () { };
--            C.tsF = function (param) { };
--            Object.defineProperty(C, "tsF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            C.tgF = function () { };
--            Object.defineProperty(C, "tgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            return C;
--        }());
--        var M;
+-        class C {
+-            constructor() { }
+-            pF() { }
+-            rF() { }
+-            pgF() { }
+-            get pgF() { }
+-            psF(param) { }
+-            set psF(param) { }
+-            rgF() { }
+-            get rgF() { }
+-            rsF(param) { }
+-            set rsF(param) { }
+-            static tF() { }
+-            static tsF(param) { }
+-            static set tsF(param) { }
+-            static tgF() { }
+-            static get tgF() { }
+-        }
+-        let M;
 -        (function (M) {
 -            var V;
 -            function F() { }
 -            ;
--            var C = /** @class */ (function () {
--                function C() {
--                }
--                return C;
--            }());
+-            class C {
+-            }
 -            ;
 -            ;
 -            ;
 -            function eF() { }
 -            M.eF = eF;
 -            ;
--            var eC = /** @class */ (function () {
--                function eC() {
--                }
--                return eC;
--            }());
+-            class eC {
+-            }
 -            M.eC = eC;
 -            ;
 -            ;
@@ -355,72 +207,40 @@
 -        function eF() { }
 -        eM_1.eF = eF;
 -        ;
--        var eC = /** @class */ (function () {
--            function eC() {
--            }
--            eC.prototype.pF = function () { };
--            eC.prototype.rF = function () { };
--            eC.prototype.pgF = function () { };
--            Object.defineProperty(eC.prototype, "pgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            eC.prototype.psF = function (param) { };
--            Object.defineProperty(eC.prototype, "psF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            eC.prototype.rgF = function () { };
--            Object.defineProperty(eC.prototype, "rgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            eC.prototype.rsF = function (param) { };
--            Object.defineProperty(eC.prototype, "rsF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            eC.tF = function () { };
--            eC.tsF = function (param) { };
--            Object.defineProperty(eC, "tsF", {
--                set: function (param) { },
--                enumerable: false,
--                configurable: true
--            });
--            eC.tgF = function () { };
--            Object.defineProperty(eC, "tgF", {
--                get: function () { },
--                enumerable: false,
--                configurable: true
--            });
--            return eC;
--        }());
+-        class eC {
+-            constructor() { }
+-            pF() { }
+-            rF() { }
+-            pgF() { }
+-            get pgF() { }
+-            psF(param) { }
+-            set psF(param) { }
+-            rgF() { }
+-            get rgF() { }
+-            rsF(param) { }
+-            set rsF(param) { }
+-            static tF() { }
+-            static tsF(param) { }
+-            static set tsF(param) { }
+-            static tgF() { }
+-            static get tgF() { }
+-        }
 -        eM_1.eC = eC;
--        var eM;
+-        let eM;
 -        (function (eM) {
 -            var V;
 -            function F() { }
 -            ;
--            var C = /** @class */ (function () {
--                function C() {
--                }
--                return C;
--            }());
+-            class C {
+-            }
 -            ;
 -            ;
 -            ;
 -            function eF() { }
 -            eM.eF = eF;
 -            ;
--            var eC = /** @class */ (function () {
--                function eC() {
--                }
--                return eC;
--            }());
+-            class eC {
+-            }
 -            eM.eC = eC;
 -            ;
 -            ;
@@ -681,7 +501,7 @@
  declare const p = "propName";
  export declare var eV: any;
  export declare function eF(): void;
-@@= skipped -457, +270 lines =@@
+@@= skipped -277, +270 lines =@@
      static get tgF(): any;
  }
  export interface eI {
diff --git a/testdata/baselines/reference/submodule/compiler/globalIsContextualKeyword.js.diff b/testdata/baselines/reference/submodule/compiler/globalIsContextualKeyword.js.diff
deleted file mode 100644
index 824394da37..0000000000
--- a/testdata/baselines/reference/submodule/compiler/globalIsContextualKeyword.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.globalIsContextualKeyword.js
-+++ new.globalIsContextualKeyword.js
-@@= skipped -19, +19 lines =@@
-
- //// [globalIsContextualKeyword.js]
- function a() {
--    var global = 1;
-+    let global = 1;
- }
- function b() {
--    var global = /** @class */ (function () {
--        function global() {
--        }
--        return global;
--    }());
-+    class global {
-+    }
- }
- function foo(global) {
- }
--var obj = {
-+let obj = {
-     global: "123"
- };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/globalThisCapture.js.diff b/testdata/baselines/reference/submodule/compiler/globalThisCapture.js.diff
deleted file mode 100644
index 639c2493ef..0000000000
--- a/testdata/baselines/reference/submodule/compiler/globalThisCapture.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.globalThisCapture.js
-+++ new.globalThisCapture.js
-@@= skipped -10, +10 lines =@@
-
-
- //// [globalThisCapture.js]
--var _this = this;
- // Add a lambda to ensure global 'this' capture is triggered
--(function () { return _this.window; });
-+(() => this.window);
- var parts = [];
- // Ensure that the generated code is correct
- parts[0];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/grammarAmbiguities1.js.diff b/testdata/baselines/reference/submodule/compiler/grammarAmbiguities1.js.diff
deleted file mode 100644
index 9feec59e6c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/grammarAmbiguities1.js.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- old.grammarAmbiguities1.js
-+++ new.grammarAmbiguities1.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [grammarAmbiguities1.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.foo = function () { };
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--    }
--    B.prototype.bar = function () { };
--    return B;
--}());
-+class A {
-+    foo() { }
-+}
-+class B {
-+    bar() { }
-+}
- function f(x) { return x; }
- function g(x) { return f(x); }
- g(7);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/heterogeneousArrayAndOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/heterogeneousArrayAndOverloads.js.diff
deleted file mode 100644
index 1ad287e0d1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/heterogeneousArrayAndOverloads.js.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- old.heterogeneousArrayAndOverloads.js
-+++ new.heterogeneousArrayAndOverloads.js
-@@= skipped -13, +13 lines =@@
- }
-
- //// [heterogeneousArrayAndOverloads.js]
--var arrTest = /** @class */ (function () {
--    function arrTest() {
--    }
--    arrTest.prototype.test = function (arg1) { };
--    arrTest.prototype.callTest = function () {
-+class arrTest {
-+    test(arg1) { }
-+    callTest() {
-         this.test([1, 2, 3, 5]);
-         this.test(["hi"]);
-         this.test([]);
-         this.test([1, 2, "hi", 5]); // Error
--    };
--    return arrTest;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/higherOrderMappedIndexLookupInference.js.diff b/testdata/baselines/reference/submodule/compiler/higherOrderMappedIndexLookupInference.js.diff
deleted file mode 100644
index bdd01219b2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/higherOrderMappedIndexLookupInference.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.higherOrderMappedIndexLookupInference.js
-+++ new.higherOrderMappedIndexLookupInference.js
-@@= skipped -41, +41 lines =@@
-     a = b;
-     b = a;
- }
--var h = f;
-+const h = f;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/identicalGenericConditionalsWithInferRelated.js.diff b/testdata/baselines/reference/submodule/compiler/identicalGenericConditionalsWithInferRelated.js.diff
deleted file mode 100644
index 7524c29e2d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/identicalGenericConditionalsWithInferRelated.js.diff
+++ /dev/null
@@ -1,25 +0,0 @@
---- old.identicalGenericConditionalsWithInferRelated.js
-+++ new.identicalGenericConditionalsWithInferRelated.js
-@@= skipped -34, +34 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- function f(arg) {
--    var x = null;
--    var y = null;
-+    let x = null;
-+    let y = null;
-     x = y; // is err, should be ok
-     y = x; // is err, should be ok
- }
--var Y = /** @class */ (function () {
--    function Y() {
--    }
--    Y.prototype.decode = function (ctor) {
-+class Y {
-+    decode(ctor) {
-         throw new Error();
--    };
--    return Y;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/identicalTypesNoDifferByCheckOrder.js.diff b/testdata/baselines/reference/submodule/compiler/identicalTypesNoDifferByCheckOrder.js.diff
deleted file mode 100644
index 4ef179743b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/identicalTypesNoDifferByCheckOrder.js.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- old.identicalTypesNoDifferByCheckOrder.js
-+++ new.identicalTypesNoDifferByCheckOrder.js
-@@= skipped -38, +38 lines =@@
- needsComponentOfSomeProps2({ renderAs: comp2 });
-
- //// [identicalTypesNoDifferByCheckOrder.js]
--function needsComponentOfSomeProps3() {
--    var x = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        x[_i] = arguments[_i];
--    }
--}
--var comp3 = null;
-+function needsComponentOfSomeProps3(...x) { }
-+const comp3 = null;
- needsComponentOfSomeProps3({ renderAs: comp3 });
--function needsComponentOfSomeProps2() {
--    var x = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        x[_i] = arguments[_i];
--    }
--}
--var comp2 = null;
-+function needsComponentOfSomeProps2(...x) { }
-+const comp2 = null;
- needsComponentOfSomeProps2({ renderAs: comp2 });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/identifierStartAfterNumericLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/identifierStartAfterNumericLiteral.js.diff
deleted file mode 100644
index 50a8d14d3c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/identifierStartAfterNumericLiteral.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.identifierStartAfterNumericLiteral.js
-+++ new.identifierStartAfterNumericLiteral.js
-@@= skipped -29, +29 lines =@@
-
-
- //// [identifierStartAfterNumericLiteral.js]
--var valueIn = 3 in [null];
-+let valueIn = 3 in [null];
- 3;
- a[null];
- 123;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/ignoredJsxAttributes.js.diff b/testdata/baselines/reference/submodule/compiler/ignoredJsxAttributes.js.diff
index 58a0eb23ef..39292a7044 100644
--- a/testdata/baselines/reference/submodule/compiler/ignoredJsxAttributes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/ignoredJsxAttributes.js.diff
@@ -9,13 +9,7 @@
 +/// 
  // Repro from #44797
 -var React = require("react");
--var props = {
 +const React = require("react");
-+let props = {
+ let props = {
      foo: "",
-     "data-yadda": 42, // Error
- };
--var x1 = React.createElement(Yadda, { foo: "hello", "data-yadda": 42 });
--var x2 = React.createElement(Yadda, { bar: "hello", "data-yadda": 42 }); // Error
-+let x1 = React.createElement(Yadda, { foo: "hello", "data-yadda": 42 });
-+let x2 = React.createElement(Yadda, { bar: "hello", "data-yadda": 42 }); // Error
\ No newline at end of file
+     "data-yadda": 42, // Error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/illegalModifiersOnClassElements.js.diff b/testdata/baselines/reference/submodule/compiler/illegalModifiersOnClassElements.js.diff
index 09f04b096e..8f7fb384ca 100644
--- a/testdata/baselines/reference/submodule/compiler/illegalModifiersOnClassElements.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/illegalModifiersOnClassElements.js.diff
@@ -1,15 +1,11 @@
 --- old.illegalModifiersOnClassElements.js
 +++ new.illegalModifiersOnClassElements.js
-@@= skipped -6, +6 lines =@@
- }
+@@= skipped -7, +7 lines =@@
 
  //// [illegalModifiersOnClassElements.js]
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.bar = 1;
 -    }
--    return C;
--}());
-+class C {
 +    export bar = 1;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/illegalSuperCallsInConstructor.js.diff b/testdata/baselines/reference/submodule/compiler/illegalSuperCallsInConstructor.js.diff
index 96ef7f91d8..a94d173b8b 100644
--- a/testdata/baselines/reference/submodule/compiler/illegalSuperCallsInConstructor.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/illegalSuperCallsInConstructor.js.diff
@@ -1,57 +1,10 @@
 --- old.illegalSuperCallsInConstructor.js
 +++ new.illegalSuperCallsInConstructor.js
-@@= skipped -22, +22 lines =@@
- }
+@@= skipped -23, +23 lines =@@
 
  //// [illegalSuperCallsInConstructor.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Base = /** @class */ (function () {
--    function Base() {
--    }
--    return Base;
--}());
--var Derived = /** @class */ (function (_super) {
--    __extends(Derived, _super);
--    function Derived() {
--        var _this = this;
--        var r2 = function () { return _this = _super.call(this) || this; };
--        var r3 = function () { _this = _super.call(this) || this; };
--        var r4 = function () { _this = _super.call(this) || this; };
-+class Base {
+ class Base {
 +    x;
-+}
-+class Derived extends Base {
-+    constructor() {
-+        var r2 = () => super();
-+        var r3 = () => { super(); };
-+        var r4 = function () { super(); };
-         var r5 = {
-             get foo() {
--                _this = _super.call(this) || this;
-+                super();
-                 return 1;
-             },
-             set foo(v) {
--                _this = _super.call(this) || this;
-+                super();
-             }
-         };
--        return _this;
-     }
--    return Derived;
--}(Base));
-+}
\ No newline at end of file
+ }
+ class Derived extends Base {
+     constructor() {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implementClausePrecedingExtends.js.diff b/testdata/baselines/reference/submodule/compiler/implementClausePrecedingExtends.js.diff
index adde265281..d88f002055 100644
--- a/testdata/baselines/reference/submodule/compiler/implementClausePrecedingExtends.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/implementClausePrecedingExtends.js.diff
@@ -1,38 +1,10 @@
 --- old.implementClausePrecedingExtends.js
 +++ new.implementClausePrecedingExtends.js
-@@= skipped -4, +4 lines =@@
- class D implements C extends C { }
+@@= skipped -5, +5 lines =@@
 
  //// [implementClausePrecedingExtends.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return D;
--}(C));
-+class C {
+ class C {
 +    foo;
-+}
-+class D extends C {
-+}
\ No newline at end of file
+ }
+ class D extends C {
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implementGenericWithMismatchedTypes.js.diff b/testdata/baselines/reference/submodule/compiler/implementGenericWithMismatchedTypes.js.diff
index e951dff8e6..62094db9bf 100644
--- a/testdata/baselines/reference/submodule/compiler/implementGenericWithMismatchedTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/implementGenericWithMismatchedTypes.js.diff
@@ -6,29 +6,6 @@
  //// [implementGenericWithMismatchedTypes.js]
 -// no errors because in the derived types the best common type for T's value is Object
 -// and that matches the original signature for assignability since we treat its T's as Object
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function (x) {
--        return null;
--    };
--    return C;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    C2.prototype.foo = function (x) {
--        return null;
--    };
--    return C2;
--}());
-+class C {
-+    foo(x) {
-+        return null;
-+    }
-+}
-+class C2 {
-+    foo(x) {
-+        return null;
-+    }
-+}
\ No newline at end of file
+ class C {
+     foo(x) {
+         return null;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implementInterfaceAnyMemberWithVoid.js.diff b/testdata/baselines/reference/submodule/compiler/implementInterfaceAnyMemberWithVoid.js.diff
deleted file mode 100644
index 28d486f4c1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implementInterfaceAnyMemberWithVoid.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.implementInterfaceAnyMemberWithVoid.js
-+++ new.implementInterfaceAnyMemberWithVoid.js
-@@= skipped -11, +11 lines =@@
-
-
- //// [implementInterfaceAnyMemberWithVoid.js]
--var Bug = /** @class */ (function () {
--    function Bug() {
-+class Bug {
-+    foo(value) {
-     }
--    Bug.prototype.foo = function (value) {
--    };
--    return Bug;
--}());
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implementPublicPropertyAsPrivate.js.diff b/testdata/baselines/reference/submodule/compiler/implementPublicPropertyAsPrivate.js.diff
index 5ec19a68ad..d43d1500fc 100644
--- a/testdata/baselines/reference/submodule/compiler/implementPublicPropertyAsPrivate.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/implementPublicPropertyAsPrivate.js.diff
@@ -1,15 +1,11 @@
 --- old.implementPublicPropertyAsPrivate.js
 +++ new.implementPublicPropertyAsPrivate.js
-@@= skipped -8, +8 lines =@@
- }
+@@= skipped -9, +9 lines =@@
 
  //// [implementPublicPropertyAsPrivate.js]
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.x = 0; // should raise error at class decl
 -    }
--    return C;
--}());
-+class C {
 +    x = 0; // should raise error at class decl
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implementsClauseAlreadySeen.js.diff b/testdata/baselines/reference/submodule/compiler/implementsClauseAlreadySeen.js.diff
deleted file mode 100644
index aa4f77f813..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implementsClauseAlreadySeen.js.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- old.implementsClauseAlreadySeen.js
-+++ new.implementsClauseAlreadySeen.js
-@@= skipped -8, +8 lines =@@
- }
-
- //// [implementsClauseAlreadySeen.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var D = /** @class */ (function () {
--    function D() {
--    }
--    D.prototype.baz = function () { };
--    return D;
--}());
-+class C {
-+}
-+class D {
-+    baz() { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implementsInClassExpression.js.diff b/testdata/baselines/reference/submodule/compiler/implementsInClassExpression.js.diff
deleted file mode 100644
index 6370fea4ed..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implementsInClassExpression.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.implementsInClassExpression.js
-+++ new.implementsInClassExpression.js
-@@= skipped -9, +9 lines =@@
- }
-
- //// [implementsInClassExpression.js]
--var cls = /** @class */ (function () {
--    function class_1() {
--    }
--    class_1.prototype.doThing = function () { };
--    return class_1;
--}());
-+let cls = class {
-+    doThing() { }
-+};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implementsIncorrectlyNoAssertion.js.diff b/testdata/baselines/reference/submodule/compiler/implementsIncorrectlyNoAssertion.js.diff
index 92f83cbd59..f73d1b3ccb 100644
--- a/testdata/baselines/reference/submodule/compiler/implementsIncorrectlyNoAssertion.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/implementsIncorrectlyNoAssertion.js.diff
@@ -1,15 +1,9 @@
 --- old.implementsIncorrectlyNoAssertion.js
 +++ new.implementsIncorrectlyNoAssertion.js
-@@= skipped -14, +14 lines =@@
-
+@@= skipped -15, +15 lines =@@
 
  //// [implementsIncorrectlyNoAssertion.js]
--var Baz = /** @class */ (function () {
--    function Baz() {
--    }
--    return Baz;
--}());
-+class Baz {
+ class Baz {
 +    x;
 +    y;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyAnyReturningFunction.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyAnyReturningFunction.js.diff
deleted file mode 100644
index 209098c000..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyAnyReturningFunction.js.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- old.implicitAnyAnyReturningFunction.js
-+++ new.implicitAnyAnyReturningFunction.js
-@@= skipped -29, +29 lines =@@
-     var someLocal = {};
-     return someLocal;
- }
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.A = function () {
-+class C {
-+    A() {
-         return "";
--    };
--    C.prototype.B = function () {
-+    }
-+    B() {
-         var someLocal = {};
-         return someLocal;
--    };
--    return C;
--}());
-+    }
-+}
-
-
- //// [implicitAnyAnyReturningFunction.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyCastedValue.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyCastedValue.js.diff
index b0acf8623e..ff04f34854 100644
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyCastedValue.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/implicitAnyCastedValue.js.diff
@@ -1,68 +1,26 @@
 --- old.implicitAnyCastedValue.js
 +++ new.implicitAnyCastedValue.js
-@@= skipped -86, +86 lines =@@
- function foo() {
+@@= skipped -87, +87 lines =@@
      return "hello world"; // this should not be an error
  }
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.bar = null; // this should be an error
 -        this.foo = undefined; // this should be an error
-+class C {
+-    }
 +    bar = null; // this should be an error
 +    foo = undefined; // this should be an error
-+    get tempVar() {
-+        return 0; // this should not be an error
+     get tempVar() {
+         return 0; // this should not be an error
+     }
+@@= skipped -15, +13 lines =@@
      }
--    Object.defineProperty(C.prototype, "tempVar", {
--        get: function () {
--            return 0; // this should not be an error
--        },
--        enumerable: false,
--        configurable: true
--    });
--    C.prototype.returnBarWithCase = function () {
-+    returnBarWithCase() {
-         return this.bar;
--    };
--    C.prototype.returnFooWithCase = function () {
-+    }
-+    returnFooWithCase() {
-         return this.foo; // this should not be an error
--    };
--    return C;
--}());
--var C1 = /** @class */ (function () {
--    function C1() {
+ }
+ class C1 {
+-    constructor() {
 -        this.getValue = null; // this should be an error
 -    }
--    Object.defineProperty(C1.prototype, "castedGet", {
--        get: function () {
--            return this.getValue; // this should not be an error
--        },
--        enumerable: false,
--        configurable: true
--    });
--    Object.defineProperty(C1.prototype, "notCastedGet", {
--        get: function () {
--            return this.getValue; // this should not be an error
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return C1;
--}());
-+    }
-+}
-+class C1 {
 +    getValue = null; // this should be an error
-+    get castedGet() {
-+        return this.getValue; // this should not be an error
-+    }
-+    get notCastedGet() {
-+        return this.getValue; // this should not be an error
-+    }
-+}
- function castedNull() {
-     return null; // this should not be an error
- }
\ No newline at end of file
+     get castedGet() {
+         return this.getValue; // this should not be an error
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionExprWithoutFormalType.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionExprWithoutFormalType.js.diff
deleted file mode 100644
index 9de662aee2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionExprWithoutFormalType.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.implicitAnyDeclareFunctionExprWithoutFormalType.js
-+++ new.implicitAnyDeclareFunctionExprWithoutFormalType.js
-@@= skipped -20, +20 lines =@@
-
- //// [implicitAnyDeclareFunctionExprWithoutFormalType.js]
- // these should be errors for implicit any parameter
--var lambda = function (l1) { }; // Error at "l1"
--var lambd2 = function (ll1, ll2) { }; // Error at "ll1"
-+var lambda = (l1) => { }; // Error at "l1"
-+var lambd2 = (ll1, ll2) => { }; // Error at "ll1"
- var lamda3 = function myLambda3(myParam) { };
--var lamda4 = function () { return null; };
-+var lamda4 = () => { return null; };
- // these should be error for implicit any return type
- var lambda5 = function temp() { return null; };
--var lambda6 = function () { return null; };
-+var lambda6 = () => { return null; };
- var lambda7 = function temp() { return undefined; };
--var lambda8 = function () { return undefined; };
-+var lambda8 = () => { return undefined; };
- // this shouldn't be an error
--var lambda9 = function () { return 5; };
-+var lambda9 = () => { return 5; };
- var lambda10 = function temp1() { return 5; };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionWithoutFormalType.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionWithoutFormalType.js.diff
deleted file mode 100644
index b17e17c9aa..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareFunctionWithoutFormalType.js.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- old.implicitAnyDeclareFunctionWithoutFormalType.js
-+++ new.implicitAnyDeclareFunctionWithoutFormalType.js
-@@= skipped -20, +20 lines =@@
- ; // error at "y"; no error at "x"
- function func2(a, b, c) { }
- ; // error at "a,b,c"
--function func3() {
--    var args = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        args[_i] = arguments[_i];
--    }
--}
-+function func3(...args) { }
- ; // error at "args" 
--function func4(z, w) {
--    if (z === void 0) { z = null; }
--    if (w === void 0) { w = undefined; }
--}
-+function func4(z = null, w = undefined) { }
- ; // error at "z,w"
- // these shouldn't be errors
--function noError1(x, y) {
--    if (x === void 0) { x = 3; }
--    if (y === void 0) { y = 2; }
--}
-+function noError1(x = 3, y = 2) { }
- ;
- function noError2(x, y) { }
- ;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareMemberWithoutType2.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareMemberWithoutType2.js.diff
index a9c7baa0a1..dbe48fb1da 100644
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareMemberWithoutType2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareMemberWithoutType2.js.diff
@@ -1,19 +1,14 @@
 --- old.implicitAnyDeclareMemberWithoutType2.js
 +++ new.implicitAnyDeclareMemberWithoutType2.js
-@@= skipped -12, +12 lines =@@
-
+@@= skipped -13, +13 lines =@@
  //// [implicitAnyDeclareMemberWithoutType2.js]
  // this should be an error
--var C = /** @class */ (function () {
--    function C(c1, c2, c3) {
+ class C {
+-    constructor(c1, c2, c3) {
 -        this.x = null; // error at "x"
 -    } // error at "c1, c2"
--    C.prototype.funcOfC = function (f1, f2, f3) { }; // error at "f1,f2"
--    return C;
--}());
-+class C {
 +    x = null; // error at "x"
 +    x1; // no error
 +    constructor(c1, c2, c3) { } // error at "c1, c2"
-+    funcOfC(f1, f2, f3) { } // error at "f1,f2"
-+}
\ No newline at end of file
+     funcOfC(f1, f2, f3) { } // error at "f1,f2"
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareTypePropertyWithoutType.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareTypePropertyWithoutType.js.diff
deleted file mode 100644
index 5535b98db6..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyDeclareTypePropertyWithoutType.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.implicitAnyDeclareTypePropertyWithoutType.js
-+++ new.implicitAnyDeclareTypePropertyWithoutType.js
-@@= skipped -19, +19 lines =@@
-
-
- //// [implicitAnyDeclareTypePropertyWithoutType.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+    constructor() { }
-+}
- // this should be an error
- var x; // error at "y,z"
- var x1; // error at "z1" 
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyFromCircularInference.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyFromCircularInference.js.diff
index 06b883c118..4a540bbd84 100644
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyFromCircularInference.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/implicitAnyFromCircularInference.js.diff
@@ -1,43 +1,13 @@
 --- old.implicitAnyFromCircularInference.js
 +++ new.implicitAnyFromCircularInference.js
-@@= skipped -65, +65 lines =@@
-     return f1();
- };
- // Error expected
--var f2 = function () { return f2(); };
-+var f2 = () => f2();
- // Error expected
- function h() {
-     return foo();
-@@= skipped -9, +9 lines =@@
-     }
+@@= skipped -75, +75 lines =@@
  }
  function foo(x) { return "abc"; }
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.s = foo(this);
 -    }
--    return C;
--}());
--var D = /** @class */ (function () {
--    function D() {
--    }
--    Object.defineProperty(D.prototype, "x", {
--        // Error expected
--        get: function () {
--            return this.x;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return D;
--}());
-+class C {
 +    s = foo(this);
-+}
-+class D {
-+    // Error expected
-+    get x() {
-+        return this.x;
-+    }
-+}
\ No newline at end of file
+ }
+ class D {
+     // Error expected
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyFunctionInvocationWithAnyArguements.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyFunctionInvocationWithAnyArguements.js.diff
deleted file mode 100644
index d86f8e19be..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyFunctionInvocationWithAnyArguements.js.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- old.implicitAnyFunctionInvocationWithAnyArguements.js
-+++ new.implicitAnyFunctionInvocationWithAnyArguements.js
-@@= skipped -51, +51 lines =@@
- function testFuncLiteral(funcLit) { }
- ;
- // this should not be an error
--testFunctionExprC2(function (v1, v2) { return 1; });
-+testFunctionExprC2((v1, v2) => 1);
- testObjLiteral(objL);
- testFuncLiteral(funcL);
- var k = temp1(null);
-@@= skipped -11, +11 lines =@@
- noError(undefined, []);
- noError(null, [null, undefined]);
- noError(undefined, anyArray);
--var C = /** @class */ (function () {
--    function C(emtpyArray, variable) {
-+class C {
-+    constructor(emtpyArray, variable) {
-     }
--    return C;
--}());
-+}
- var newC = new C([], undefined);
- var newC1 = new C([], arg0);
- var newC2 = new C([], null);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyFunctionReturnNullOrUndefined.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyFunctionReturnNullOrUndefined.js.diff
deleted file mode 100644
index 179c380dc0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyFunctionReturnNullOrUndefined.js.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- old.implicitAnyFunctionReturnNullOrUndefined.js
-+++ new.implicitAnyFunctionReturnNullOrUndefined.js
-@@= skipped -29, +29 lines =@@
- // this should be an error
- function nullWidenFunction() { return null; } // error at "nullWidenFunction"
- function undefinedWidenFunction() { return undefined; } // error at "undefinedWidenFunction"
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.nullWidenFuncOfC = function () {
-+class C {
-+    nullWidenFuncOfC() {
-         return null;
--    };
--    C.prototype.underfinedWidenFuncOfC = function () {
-+    }
-+    underfinedWidenFuncOfC() {
-         return undefined;
--    };
--    return C;
--}());
-+    }
-+}
- // this should not be an error
- function foo1() { return null; }
- function bar1() { return undefined; }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyGenerics.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyGenerics.js.diff
index 8193439f5d..ab3d7c8c42 100644
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyGenerics.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/implicitAnyGenerics.js.diff
@@ -1,29 +1,10 @@
 --- old.implicitAnyGenerics.js
 +++ new.implicitAnyGenerics.js
-@@= skipped -27, +27 lines =@@
-     
+@@= skipped -28, +28 lines =@@
 
  //// [implicitAnyGenerics.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    x;
-+}
+ }
  var c = new C();
- var c2 = new C();
- var c3 = new C();
- var c4 = new C();
--var D = /** @class */ (function () {
--    function D(x) {
--    }
--    return D;
--}());
-+class D {
-+    constructor(x) { }
-+}
- var d = new D(null);
- var d2 = new D(1);
- var d3 = new D(1);
\ No newline at end of file
+ var c2 = new C();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyGetAndSetAccessorWithAnyReturnType.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyGetAndSetAccessorWithAnyReturnType.js.diff
index a70cb12547..90c35bb6b2 100644
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyGetAndSetAccessorWithAnyReturnType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/implicitAnyGetAndSetAccessorWithAnyReturnType.js.diff
@@ -1,65 +1,13 @@
 --- old.implicitAnyGetAndSetAccessorWithAnyReturnType.js
 +++ new.implicitAnyGetAndSetAccessorWithAnyReturnType.js
-@@= skipped -26, +26 lines =@@
-
+@@= skipped -27, +27 lines =@@
  //// [implicitAnyGetAndSetAccessorWithAnyReturnType.js]
  // these should be errors
--var GetAndSet = /** @class */ (function () {
--    function GetAndSet() {
+ class GetAndSet {
+-    constructor() {
 -        this.getAndSet = null; // error at "getAndSet"
 -    }
--    Object.defineProperty(GetAndSet.prototype, "haveGetAndSet", {
--        get: function () {
--            return this.getAndSet;
--        },
--        // this shouldn't be an error
--        set: function (value) {
--            this.getAndSet = value;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return GetAndSet;
--}());
--var SetterOnly = /** @class */ (function () {
--    function SetterOnly() {
--    }
--    Object.defineProperty(SetterOnly.prototype, "haveOnlySet", {
--        set: function (newXValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return SetterOnly;
--}());
--var GetterOnly = /** @class */ (function () {
--    function GetterOnly() {
--    }
--    Object.defineProperty(GetterOnly.prototype, "haveOnlyGet", {
--        get: function () {
--            return null;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return GetterOnly;
--}());
-+class GetAndSet {
 +    getAndSet = null; // error at "getAndSet"
-+    get haveGetAndSet() {
-+        return this.getAndSet;
-+    }
-+    // this shouldn't be an error
-+    set haveGetAndSet(value) {
-+        this.getAndSet = value;
-+    }
-+}
-+class SetterOnly {
-+    set haveOnlySet(newXValue) {
-+    }
-+}
-+class GetterOnly {
-+    get haveOnlyGet() {
-+        return null;
-+    }
-+}
\ No newline at end of file
+     get haveGetAndSet() {
+         return this.getAndSet;
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyInCatch.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyInCatch.js.diff
deleted file mode 100644
index d3abe7a2cf..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyInCatch.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.implicitAnyInCatch.js
-+++ new.implicitAnyInCatch.js
-@@= skipped -22, +22 lines =@@
-     if (error.number === -2147024809) { }
- }
- for (var key in this) { }
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.temp = function () {
-+class C {
-+    temp() {
-         for (var x in this) {
-         }
--    };
--    return C;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitAnyWidenToAny.js.diff b/testdata/baselines/reference/submodule/compiler/implicitAnyWidenToAny.js.diff
index 325c7df383..7134967875 100644
--- a/testdata/baselines/reference/submodule/compiler/implicitAnyWidenToAny.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/implicitAnyWidenToAny.js.diff
@@ -1,17 +1,10 @@
 --- old.implicitAnyWidenToAny.js
 +++ new.implicitAnyWidenToAny.js
-@@= skipped -35, +35 lines =@@
- var widenArray = [null, undefined]; // error at "widenArray"
+@@= skipped -36, +36 lines =@@
  var emptyArray = [];
  // these should not be error
--var AnimalObj = /** @class */ (function () {
--    function AnimalObj() {
--    }
--    return AnimalObj;
--}());
-+class AnimalObj {
+ class AnimalObj {
 +    x;
-+}
+ }
  var foo = 5;
- var bar = "Hello World";
- var foo1 = null;
\ No newline at end of file
+ var bar = "Hello World";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitConstParameters.js.diff b/testdata/baselines/reference/submodule/compiler/implicitConstParameters.js.diff
deleted file mode 100644
index fc69aecfb6..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implicitConstParameters.js.diff
+++ /dev/null
@@ -1,57 +0,0 @@
---- old.implicitConstParameters.js
-+++ new.implicitConstParameters.js
-@@= skipped -62, +62 lines =@@
- }
- function fn(x) {
-     if (typeof x === 'number') {
--        doSomething(function () { return x.toFixed(); });
-+        doSomething(() => x.toFixed());
-     }
- }
- function f1(x) {
-     if (!x) {
-         return;
-     }
--    doSomething(function () { return x.length; });
-+    doSomething(() => x.length);
- }
- function f2(x) {
-     if (x) {
--        doSomething(function () {
--            doSomething(function () { return x.length; });
-+        doSomething(() => {
-+            doSomething(() => x.length);
-         });
-     }
- }
-@@= skipped -20, +20 lines =@@
-     inner();
-     function inner() {
-         if (x) {
--            doSomething(function () { return x.length; });
-+            doSomething(() => x.length);
-         }
-     }
- }
- function f4(x) {
-     x = "abc";
-     if (x) {
--        doSomething(function () { return x.length; });
-+        doSomething(() => x.length);
-     }
- }
- function f5(x) {
-     if (x) {
--        doSomething(function () { return x.length; });
-+        doSomething(() => x.length);
-     }
-     x = "abc"; // causes x to be considered non-const
- }
- function f6(x) {
--    var y = x || "";
-+    const y = x || "";
-     if (x) {
--        doSomething(function () { return y.length; });
-+        doSomething(() => y.length);
-     }
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/implicitIndexSignatures.js.diff b/testdata/baselines/reference/submodule/compiler/implicitIndexSignatures.js.diff
deleted file mode 100644
index 2305f9d6f8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/implicitIndexSignatures.js.diff
+++ /dev/null
@@ -1,97 +0,0 @@
---- old.implicitIndexSignatures.js
-+++ new.implicitIndexSignatures.js
-@@= skipped -60, +60 lines =@@
-
-
- //// [implicitIndexSignatures.js]
--var empty1 = {};
--var empty2;
--var names1 = { a: "foo", b: "bar" };
--var names2;
--var map;
-+const empty1 = {};
-+let empty2;
-+const names1 = { a: "foo", b: "bar" };
-+let names2;
-+let map;
- map = { x: "xxx", y: "yyy" };
- map = empty1;
- map = empty2;
- map = names1;
- map = names2;
- function f1() {
--    var o1 = { a: 1, b: 2 };
--    var o2;
--    var v1 = getStringIndexValue(o1);
--    var v2 = getStringIndexValue(o2);
-+    const o1 = { a: 1, b: 2 };
-+    let o2;
-+    const v1 = getStringIndexValue(o1);
-+    const v2 = getStringIndexValue(o2);
- }
- function f2() {
--    var o1 = { a: "1", b: "2" };
--    var o2;
--    var v1 = getStringIndexValue(o1);
--    var v2 = getStringIndexValue(o2);
-+    const o1 = { a: "1", b: "2" };
-+    let o2;
-+    const v1 = getStringIndexValue(o1);
-+    const v2 = getStringIndexValue(o2);
- }
- function f3() {
--    var o1 = { a: 1, b: "2" };
--    var o2;
--    var v1 = getStringIndexValue(o1);
--    var v2 = getStringIndexValue(o2);
-+    const o1 = { a: 1, b: "2" };
-+    let o2;
-+    const v1 = getStringIndexValue(o1);
-+    const v2 = getStringIndexValue(o2);
- }
- function f4() {
--    var o1 = { 0: "0", 1: "1", count: 2 };
--    var o2;
--    var v1 = getStringIndexValue(o1);
--    var v2 = getStringIndexValue(o2);
--    var v3 = getNumberIndexValue(o1);
--    var v4 = getNumberIndexValue(o2);
-+    const o1 = { 0: "0", 1: "1", count: 2 };
-+    let o2;
-+    const v1 = getStringIndexValue(o1);
-+    const v2 = getStringIndexValue(o2);
-+    const v3 = getNumberIndexValue(o1);
-+    const v4 = getNumberIndexValue(o2);
- }
- function f5() {
--    var E1;
-+    let E1;
-     (function (E1) {
-         E1[E1["A"] = 0] = "A";
-         E1[E1["B"] = 1] = "B";
-     })(E1 || (E1 = {}));
--    var E2;
-+    let E2;
-     (function (E2) {
-         E2["A"] = "A";
-         E2["B"] = "B";
-     })(E2 || (E2 = {}));
--    var E3;
-+    let E3;
-     (function (E3) {
-         E3[E3["A"] = 0] = "A";
-         E3["B"] = "B";
-     })(E3 || (E3 = {}));
--    var v1 = getStringIndexValue(E1);
--    var v2 = getStringIndexValue(E2);
--    var v3 = getStringIndexValue(E3);
--    var v4 = getNumberIndexValue(E1);
--    var v5 = getNumberIndexValue(E2);
--    var v6 = getNumberIndexValue(E3);
-+    const v1 = getStringIndexValue(E1);
-+    const v2 = getStringIndexValue(E2);
-+    const v3 = getStringIndexValue(E3);
-+    const v4 = getNumberIndexValue(E1);
-+    const v5 = getNumberIndexValue(E2);
-+    const v6 = getNumberIndexValue(E3);
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importAliasFromNamespace.js.diff b/testdata/baselines/reference/submodule/compiler/importAliasFromNamespace.js.diff
index 5fde430df9..cbde67b39b 100644
--- a/testdata/baselines/reference/submodule/compiler/importAliasFromNamespace.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importAliasFromNamespace.js.diff
@@ -25,22 +25,16 @@
 +    let Thing;
      (function (Thing) {
          var Internal = My.Internal;
--        var Foo = /** @class */ (function () {
--            function Foo() {
-+        class Foo {
+         class Foo {
 +            _which;
-+            constructor() {
+             constructor() {
                  Internal.getThing();
 -                0 /* Internal.WhichThing.A */ ? "foo" : "bar";
 +                Internal.WhichThing.A ? "foo" : "bar";
              }
--            return Foo;
--        }());
-+        }
+         }
          Thing.Foo = Foo;
-     })(Thing = SomeOther.Thing || (SomeOther.Thing = {}));
- })(SomeOther || (SomeOther = {}));
-@@= skipped -35, +41 lines =@@
+@@= skipped -34, +41 lines =@@
      }
  }
  //// [usage.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/importAliasInModuleAugmentation.js.diff b/testdata/baselines/reference/submodule/compiler/importAliasInModuleAugmentation.js.diff
deleted file mode 100644
index ff1daf1341..0000000000
--- a/testdata/baselines/reference/submodule/compiler/importAliasInModuleAugmentation.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.importAliasInModuleAugmentation.js
-+++ new.importAliasInModuleAugmentation.js
-@@= skipped -25, +25 lines =@@
- (function (A) {
-     A.y = 34;
- })(A || (A = {}));
--var m = x;
--var s = { s: "" };
-+const m = x;
-+let s = { s: "" };
- void s.s;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importAliasWithDottedName.js.diff b/testdata/baselines/reference/submodule/compiler/importAliasWithDottedName.js.diff
deleted file mode 100644
index c88f8eb268..0000000000
--- a/testdata/baselines/reference/submodule/compiler/importAliasWithDottedName.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.importAliasWithDottedName.js
-+++ new.importAliasWithDottedName.js
-@@= skipped -17, +17 lines =@@
- var M;
- (function (M) {
-     M.x = 1;
--    var N;
-+    let N;
-     (function (N) {
-         N.y = 2;
-     })(N = M.N || (M.N = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importAndVariableDeclarationConflict2.js.diff b/testdata/baselines/reference/submodule/compiler/importAndVariableDeclarationConflict2.js.diff
index e7d7e92e5a..13ec517e67 100644
--- a/testdata/baselines/reference/submodule/compiler/importAndVariableDeclarationConflict2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importAndVariableDeclarationConflict2.js.diff
@@ -5,15 +5,6 @@
      m_1.m = '';
  })(m || (m = {}));
 -var x = m.m;
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function () {
-+class C {
-+    foo() {
-         var x = '';
--    };
--    return C;
--}());
-+    }
-+}
\ No newline at end of file
+ class C {
+     foo() {
+         var x = '';
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importAsBaseClass.js.diff b/testdata/baselines/reference/submodule/compiler/importAsBaseClass.js.diff
index bf077c1e94..b6981328a5 100644
--- a/testdata/baselines/reference/submodule/compiler/importAsBaseClass.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importAsBaseClass.js.diff
@@ -1,45 +1,10 @@
 --- old.importAsBaseClass.js
 +++ new.importAsBaseClass.js
-@@= skipped -13, +13 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Greeter = void 0;
--var Greeter = /** @class */ (function () {
--    function Greeter() {
--    }
--    Greeter.prototype.greet = function () { return 'greet'; };
--    return Greeter;
--}());
-+class Greeter {
-+    greet() { return 'greet'; }
-+}
- exports.Greeter = Greeter;
+@@= skipped -20, +20 lines =@@
  //// [importAsBaseClass_1.js]
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
 -var Greeter = require("./importAsBaseClass_0");
--var Hello = /** @class */ (function (_super) {
--    __extends(Hello, _super);
--    function Hello() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Hello;
--}(Greeter));
 +const Greeter = require("./importAsBaseClass_0");
-+class Hello extends Greeter {
-+}
\ No newline at end of file
+ class Hello extends Greeter {
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importDecl.js.diff b/testdata/baselines/reference/submodule/compiler/importDecl.js.diff
index 8ddf657d44..226abcf508 100644
--- a/testdata/baselines/reference/submodule/compiler/importDecl.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importDecl.js.diff
@@ -1,66 +1,38 @@
 --- old.importDecl.js
 +++ new.importDecl.js
-@@= skipped -85, +85 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -86, +86 lines =@@
  exports.x = exports.d = void 0;
  exports.foo = foo;
--var d = /** @class */ (function () {
--    function d() {
--    }
--    return d;
--}());
-+class d {
+ class d {
 +    foo;
-+}
+ }
  exports.d = d;
  function foo() { return null; }
- //// [importDecl_require1.js]
-@@= skipped -12, +10 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -9, +10 lines =@@
  exports.d = void 0;
  exports.foo = foo;
--var d = /** @class */ (function () {
--    function d() {
--    }
--    return d;
--}());
-+class d {
+ class d {
 +    bar;
-+}
+ }
  exports.d = d;
  var x;
- function foo() { return null; }
-@@= skipped -13, +11 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -10, +11 lines =@@
  exports.x = exports.d = void 0;
  exports.foo = foo;
--var d = /** @class */ (function () {
--    function d() {
--    }
--    return d;
--}());
-+class d {
+ class d {
 +    baz;
-+}
+ }
  exports.d = d;
  function foo() { return null; }
- //// [importDecl_require3.js]
-@@= skipped -12, +10 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
+@@= skipped -9, +10 lines =@@
  exports.x = exports.d = void 0;
  exports.foo = foo;
--var d = /** @class */ (function () {
--    function d() {
--    }
--    return d;
--}());
-+class d {
+ class d {
 +    bing;
-+}
+ }
  exports.d = d;
  function foo() { return null; }
- //// [importDecl_require4.js]
-@@= skipped -21, +19 lines =@@
+@@= skipped -17, +18 lines =@@
  ///
  ///
  ///
diff --git a/testdata/baselines/reference/submodule/compiler/importDeclarationUsedAsTypeQuery.js.diff b/testdata/baselines/reference/submodule/compiler/importDeclarationUsedAsTypeQuery.js.diff
index 880f6d7381..442c525bff 100644
--- a/testdata/baselines/reference/submodule/compiler/importDeclarationUsedAsTypeQuery.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importDeclarationUsedAsTypeQuery.js.diff
@@ -1,17 +1,10 @@
 --- old.importDeclarationUsedAsTypeQuery.js
 +++ new.importDeclarationUsedAsTypeQuery.js
-@@= skipped -14, +14 lines =@@
- "use strict";
+@@= skipped -15, +15 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.B = void 0;
--var B = /** @class */ (function () {
--    function B() {
--    }
--    return B;
--}());
-+class B {
+ class B {
 +    id;
-+}
+ }
  exports.B = B;
- //// [importDeclarationUsedAsTypeQuery_1.js]
- "use strict";
\ No newline at end of file
+ //// [importDeclarationUsedAsTypeQuery_1.js]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importEqualsError45874.js.diff b/testdata/baselines/reference/submodule/compiler/importEqualsError45874.js.diff
index 561dd440a2..40839fa8be 100644
--- a/testdata/baselines/reference/submodule/compiler/importEqualsError45874.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importEqualsError45874.js.diff
@@ -6,5 +6,4 @@
  })(globals || (globals = {}));
 -var Foo = globals.toString.Blah;
  //// [index.js]
--var Foo = {};
-+const Foo = {};
\ No newline at end of file
+ const Foo = {};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importHelpers.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpers.js.diff
index f289aaf078..832953b793 100644
--- a/testdata/baselines/reference/submodule/compiler/importHelpers.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importHelpers.js.diff
@@ -5,31 +5,16 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.result = exports.B = exports.A = void 0;
 -var tslib_1 = require("tslib");
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
-+}
+ class A {
+ }
  exports.A = A;
--var B = /** @class */ (function (_super) {
--    tslib_1.__extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class B extends A {
-+}
+ class B extends A {
+ }
  exports.B = B;
--var C = /** @class */ (function () {
--    function C() {
-+@dec
-+class C {
-+    method(x) {
-     }
--    C.prototype.method = function (x) {
+-let C = (() => {
+-    let C = class C {
+-        method(x) {
+-        }
 -    };
 -    tslib_1.__decorate([
 -        tslib_1.__param(0, dec),
@@ -41,34 +26,17 @@
 -        dec
 -    ], C);
 -    return C;
--}());
+-})();
++@dec
++class C {
++    method(x) {
++    }
 +}
  function id(x) {
      return x;
  }
--exports.result = id(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["hello world"], ["hello world"])));
--var templateObject_1;
-+exports.result = id `hello world`;
+ exports.result = id `hello world`;
  //// [script.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
--    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
--    return cooked;
--};
 -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
 -    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
 -    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -81,22 +49,14 @@
 -var __param = (this && this.__param) || function (paramIndex, decorator) {
 -    return function (target, key) { decorator(target, key, paramIndex); }
 -};
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.method = function (x) {
+ class A {
+ }
+ class B extends A {
+ }
+-let C = (() => {
+-    let C = class C {
+-        method(x) {
+-        }
 -    };
 -    __decorate([
 -        __param(0, dec),
@@ -108,11 +68,7 @@
 -        dec
 -    ], C);
 -    return C;
--}());
-+class A {
-+}
-+class B extends A {
-+}
+-})();
 +@dec
 +class C {
 +    method(x) {
@@ -120,6 +76,4 @@
 +}
  function id(x) {
      return x;
- }
--var result = id(__makeTemplateObject(["hello world"], ["hello world"]));
-+const result = id `hello world`;
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersAmd.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersAmd.js.diff
index bfd2713705..8aa11313ca 100644
--- a/testdata/baselines/reference/submodule/compiler/importHelpersAmd.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importHelpersAmd.js.diff
@@ -8,11 +8,8 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.A = void 0;
--    var A = /** @class */ (function () {
--        function A() {
--        }
--        return A;
--    }());
+-    class A {
+-    }
 -    exports.A = A;
 -});
 +"use strict";
@@ -27,13 +24,8 @@
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.B = void 0;
 -    tslib_1.__exportStar(a_2, exports);
--    var B = /** @class */ (function (_super) {
--        tslib_1.__extends(B, _super);
--        function B() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return B;
--    }(a_1.A));
+-    class B extends a_1.A {
+-    }
 -    exports.B = B;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js.diff
index 7061bef589..0953e78b12 100644
--- a/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importHelpersInIsolatedModules.js.diff
@@ -5,31 +5,16 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.B = exports.A = void 0;
 -var tslib_1 = require("tslib");
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
-+}
+ class A {
+ }
  exports.A = A;
--var B = /** @class */ (function (_super) {
--    tslib_1.__extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class B extends A {
-+}
+ class B extends A {
+ }
  exports.B = B;
--var C = /** @class */ (function () {
--    function C() {
-+@dec
-+class C {
-+    method(x) {
-     }
--    C.prototype.method = function (x) {
+-let C = (() => {
+-    let C = class C {
+-        method(x) {
+-        }
 -    };
 -    tslib_1.__decorate([
 -        tslib_1.__param(0, dec),
@@ -41,24 +26,13 @@
 -        dec
 -    ], C);
 -    return C;
--}());
+-})();
++@dec
++class C {
++    method(x) {
++    }
 +}
  //// [script.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
 -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
 -    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
 -    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -71,22 +45,14 @@
 -var __param = (this && this.__param) || function (paramIndex, decorator) {
 -    return function (target, key) { decorator(target, key, paramIndex); }
 -};
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.method = function (x) {
+ class A {
+ }
+ class B extends A {
+ }
+-let C = (() => {
+-    let C = class C {
+-        method(x) {
+-        }
 -    };
 -    __decorate([
 -        __param(0, dec),
@@ -98,11 +64,7 @@
 -        dec
 -    ], C);
 -    return C;
--}());
-+class A {
-+}
-+class B extends A {
-+}
+-})();
 +@dec
 +class C {
 +    method(x) {
diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersInTsx.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersInTsx.js.diff
index 2d4ed85a27..0727e4623f 100644
--- a/testdata/baselines/reference/submodule/compiler/importHelpersInTsx.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importHelpersInTsx.js.diff
@@ -8,10 +8,4 @@
 +const tslib_1 = require("tslib");
  exports.x = React.createElement("span", tslib_1.__assign({}, o));
  //// [script.js]
- var __assign = (this && this.__assign) || function () {
-@@= skipped -14, +14 lines =@@
-     };
-     return __assign.apply(this, arguments);
- };
--var x = React.createElement("span", __assign({}, o));
-+const x = React.createElement("span", __assign({}, o));
\ No newline at end of file
+ var __assign = (this && this.__assign) || function () {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersNoHelpers.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersNoHelpers.js.diff
index 81cd95e7c9..1aa7e3a670 100644
--- a/testdata/baselines/reference/submodule/compiler/importHelpersNoHelpers.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importHelpersNoHelpers.js.diff
@@ -7,31 +7,16 @@
 -var tslib_1 = require("tslib");
 +const tslib_1 = require("tslib");
  tslib_1.__exportStar(require("./other"), exports);
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
-+}
- exports.A = A;
--var B = /** @class */ (function (_super) {
--    tslib_1.__extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class B extends A {
-+}
+ class A {
+ }
+@@= skipped -8, +8 lines =@@
+ class B extends A {
+ }
  exports.B = B;
--var C = /** @class */ (function () {
--    function C() {
-+@dec
-+class C {
-+    method(x) {
-     }
--    C.prototype.method = function (x) {
+-let C = (() => {
+-    let C = class C {
+-        method(x) {
+-        }
 -    };
 -    tslib_1.__decorate([
 -        tslib_1.__param(0, dec),
@@ -43,30 +28,18 @@
 -        dec
 -    ], C);
 -    return C;
--}());
--var o = { a: 1 };
--var y = tslib_1.__assign({}, o);
--var x = tslib_1.__rest(y, []);
+-})();
++@dec
++class C {
++    method(x) {
++    }
 +}
-+const o = { a: 1 };
+ const o = { a: 1 };
+-const y = tslib_1.__assign({}, o);
+-const x = tslib_1.__rest(y, []);
 +const y = { ...o };
 +const { ...x } = y;
  //// [script.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
 -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
 -    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
 -    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -79,22 +52,14 @@
 -var __param = (this && this.__param) || function (paramIndex, decorator) {
 -    return function (target, key) { decorator(target, key, paramIndex); }
 -};
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.method = function (x) {
+ class A {
+ }
+ class B extends A {
+ }
+-let C = (() => {
+-    let C = class C {
+-        method(x) {
+-        }
 -    };
 -    __decorate([
 -        __param(0, dec),
@@ -106,11 +71,7 @@
 -        dec
 -    ], C);
 -    return C;
--}());
-+class A {
-+}
-+class B extends A {
-+}
+-})();
 +@dec
 +class C {
 +    method(x) {
diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersNoHelpersForAsyncGenerators.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersNoHelpersForAsyncGenerators.js.diff
index 38abffdd97..623b1326fc 100644
--- a/testdata/baselines/reference/submodule/compiler/importHelpersNoHelpersForAsyncGenerators.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importHelpersNoHelpersForAsyncGenerators.js.diff
@@ -6,23 +6,10 @@
  exports.f = f;
 -var tslib_1 = require("tslib");
 -function f() {
--    return tslib_1.__asyncGenerator(this, arguments, function f_1() {
--        return tslib_1.__generator(this, function (_a) {
--            switch (_a.label) {
--                case 0: return [4 /*yield*/, tslib_1.__await(1)];
--                case 1:
--                    _a.sent();
--                    return [4 /*yield*/, tslib_1.__await(2)];
--                case 2: return [4 /*yield*/, _a.sent()];
--                case 3:
--                    _a.sent();
--                    return [5 /*yield**/, tslib_1.__values(tslib_1.__asyncDelegator(tslib_1.__asyncValues([3])))];
--                case 4: return [4 /*yield*/, tslib_1.__await.apply(void 0, [_a.sent()])];
--                case 5:
--                    _a.sent();
--                    return [2 /*return*/];
--            }
--        });
+-    return tslib_1.__asyncGenerator(this, arguments, function* f_1() {
+-        yield tslib_1.__await(1);
+-        yield yield tslib_1.__await(2);
+-        yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues([3])));
 -    });
 +async function* f() {
 +    await 1;
diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersNoModule.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersNoModule.js.diff
index c6cd8b0add..aa0453ed96 100644
--- a/testdata/baselines/reference/submodule/compiler/importHelpersNoModule.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importHelpersNoModule.js.diff
@@ -5,31 +5,16 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.B = exports.A = void 0;
 -var tslib_1 = require("tslib");
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
-+}
+ class A {
+ }
  exports.A = A;
--var B = /** @class */ (function (_super) {
--    tslib_1.__extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class B extends A {
-+}
+ class B extends A {
+ }
  exports.B = B;
--var C = /** @class */ (function () {
--    function C() {
-+@dec
-+class C {
-+    method(x) {
-     }
--    C.prototype.method = function (x) {
+-let C = (() => {
+-    let C = class C {
+-        method(x) {
+-        }
 -    };
 -    tslib_1.__decorate([
 -        tslib_1.__param(0, dec),
@@ -41,24 +26,13 @@
 -        dec
 -    ], C);
 -    return C;
--}());
+-})();
++@dec
++class C {
++    method(x) {
++    }
 +}
  //// [script.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
 -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
 -    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
 -    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -71,22 +45,14 @@
 -var __param = (this && this.__param) || function (paramIndex, decorator) {
 -    return function (target, key) { decorator(target, key, paramIndex); }
 -};
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.method = function (x) {
+ class A {
+ }
+ class B extends A {
+ }
+-let C = (() => {
+-    let C = class C {
+-        method(x) {
+-        }
 -    };
 -    __decorate([
 -        __param(0, dec),
@@ -98,11 +64,7 @@
 -        dec
 -    ], C);
 -    return C;
--}());
-+class A {
-+}
-+class B extends A {
-+}
+-})();
 +@dec
 +class C {
 +    method(x) {
diff --git a/testdata/baselines/reference/submodule/compiler/importHelpersSystem.js.diff b/testdata/baselines/reference/submodule/compiler/importHelpersSystem.js.diff
index 9a04f608a2..286df470a9 100644
--- a/testdata/baselines/reference/submodule/compiler/importHelpersSystem.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importHelpersSystem.js.diff
@@ -11,11 +11,8 @@
 -    return {
 -        setters: [],
 -        execute: function () {
--            A = /** @class */ (function () {
--                function A() {
--                }
--                return A;
--            }());
+-            A = class A {
+-            };
 -            exports_1("A", A);
 -        }
 -    };
@@ -27,9 +24,9 @@
 +}
 +exports.A = A;
  //// [b.js]
--System.register(["tslib", "./a"], function (exports_1, context_1) {
+-System.register(["./a"], function (exports_1, context_1) {
 -    "use strict";
--    var tslib_1, a_1, B;
+-    var a_1, B;
 -    var __moduleName = context_1 && context_1.id;
 -    var exportedNames_1 = {
 -        "B": true
@@ -43,22 +40,14 @@
 -    }
 -    return {
 -        setters: [
--            function (tslib_1_1) {
--                tslib_1 = tslib_1_1;
--            },
 -            function (a_1_1) {
 -                a_1 = a_1_1;
 -                exportStar_1(a_1_1);
 -            }
 -        ],
 -        execute: function () {
--            B = /** @class */ (function (_super) {
--                tslib_1.__extends(B, _super);
--                function B() {
--                    return _super !== null && _super.apply(this, arguments) || this;
--                }
--                return B;
--            }(a_1.A));
+-            B = class B extends a_1.A {
+-            };
 -            exports_1("B", B);
 -        }
 -    };
diff --git a/testdata/baselines/reference/submodule/compiler/importInTypePosition.js.diff b/testdata/baselines/reference/submodule/compiler/importInTypePosition.js.diff
index 465611ffe5..7e7d934e7f 100644
--- a/testdata/baselines/reference/submodule/compiler/importInTypePosition.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importInTypePosition.js.diff
@@ -1,24 +1,15 @@
 --- old.importInTypePosition.js
 +++ new.importInTypePosition.js
-@@= skipped -25, +25 lines =@@
- //// [importInTypePosition.js]
+@@= skipped -26, +26 lines =@@
  var A;
  (function (A) {
--    var Point = /** @class */ (function () {
--        function Point(x, y) {
-+    class Point {
+     class Point {
 +        x;
 +        y;
-+        constructor(x, y) {
+         constructor(x, y) {
              this.x = x;
              this.y = y;
-         }
--        return Point;
--    }());
-+    }
-     A.Point = Point;
-     A.Origin = new Point(0, 0);
- })(A || (A = {}));
+@@= skipped -11, +13 lines =@@
  // no code gen expected
  var C;
  (function (C) {
diff --git a/testdata/baselines/reference/submodule/compiler/importNonExportedMember4.js.diff b/testdata/baselines/reference/submodule/compiler/importNonExportedMember4.js.diff
deleted file mode 100644
index d904a73f34..0000000000
--- a/testdata/baselines/reference/submodule/compiler/importNonExportedMember4.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.importNonExportedMember4.js
-+++ new.importNonExportedMember4.js
-@@= skipped -8, +8 lines =@@
-
- //// [a.js]
- "use strict";
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- module.exports = Foo;
- //// [b.js]
- "use strict";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importNonExportedMember5.js.diff b/testdata/baselines/reference/submodule/compiler/importNonExportedMember5.js.diff
deleted file mode 100644
index d9a64b9abe..0000000000
--- a/testdata/baselines/reference/submodule/compiler/importNonExportedMember5.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.importNonExportedMember5.js
-+++ new.importNonExportedMember5.js
-@@= skipped -8, +8 lines =@@
-
- //// [a.js]
- "use strict";
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- module.exports = Foo;
- //// [b.js]
- "use strict";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importNonExportedMember6.js.diff b/testdata/baselines/reference/submodule/compiler/importNonExportedMember6.js.diff
deleted file mode 100644
index 8d7ff1f810..0000000000
--- a/testdata/baselines/reference/submodule/compiler/importNonExportedMember6.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.importNonExportedMember6.js
-+++ new.importNonExportedMember6.js
-@@= skipped -7, +7 lines =@@
- import { Foo } from './a';
-
- //// [a.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- export {};
- //// [b.js]
- export {};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importNonExportedMember7.js.diff b/testdata/baselines/reference/submodule/compiler/importNonExportedMember7.js.diff
deleted file mode 100644
index 72c4003d42..0000000000
--- a/testdata/baselines/reference/submodule/compiler/importNonExportedMember7.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.importNonExportedMember7.js
-+++ new.importNonExportedMember7.js
-@@= skipped -7, +7 lines =@@
- import { Foo } from './a';
-
- //// [a.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- export {};
- //// [b.js]
- export {};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importNotElidedWhenNotFound.js.diff b/testdata/baselines/reference/submodule/compiler/importNotElidedWhenNotFound.js.diff
index 495b9c2ee1..0e3fd5bab2 100644
--- a/testdata/baselines/reference/submodule/compiler/importNotElidedWhenNotFound.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importNotElidedWhenNotFound.js.diff
@@ -1,54 +1,22 @@
 --- old.importNotElidedWhenNotFound.js
 +++ new.importNotElidedWhenNotFound.js
-@@= skipped -20, +20 lines =@@
-
+@@= skipped -21, +21 lines =@@
  //// [importNotElidedWhenNotFound.js]
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
 -var file_1 = require("file");
 -var other_file_1 = require("other_file");
--var Y = /** @class */ (function (_super) {
--    __extends(Y, _super);
--    function Y() {
--        return _super.call(this, file_1.default) || this;
--    }
--    return Y;
--}(other_file_1.default));
--var file2_1 = require("file2");
--var file3_1 = require("file3");
--var Q = /** @class */ (function (_super) {
--    __extends(Q, _super);
--    function Q() {
--        return _super.call(this, file2_1.default, file3_1.default) || this;
--    }
--    return Q;
--}(other_file_1.default));
 +const file_1 = require("file");
 +const other_file_1 = require("other_file");
-+class Y extends other_file_1.default {
-+    constructor() {
-+        super(file_1.default);
-+    }
-+}
+ class Y extends other_file_1.default {
+     constructor() {
+         super(file_1.default);
+     }
+ }
+-var file2_1 = require("file2");
+-var file3_1 = require("file3");
 +const file2_1 = require("file2");
 +const file3_1 = require("file3");
-+class Q extends other_file_1.default {
-+    constructor() {
-+        super(file2_1.default, file3_1.default);
-+    }
-+}
\ No newline at end of file
+ class Q extends other_file_1.default {
+     constructor() {
+         super(file2_1.default, file3_1.default);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importShadowsGlobalName.js.diff b/testdata/baselines/reference/submodule/compiler/importShadowsGlobalName.js.diff
index c7028b1110..c07f282db7 100644
--- a/testdata/baselines/reference/submodule/compiler/importShadowsGlobalName.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importShadowsGlobalName.js.diff
@@ -7,38 +7,15 @@
 -//// [Foo.js]
 -define(["require", "exports"], function (require, exports) {
 -    "use strict";
--    var Foo = /** @class */ (function () {
--        function Foo() {
--        }
--        return Foo;
--    }());
+-    class Foo {
+-    }
 -    return Foo;
 -});
  //// [Bar.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
 -define(["require", "exports", "Foo"], function (require, exports, Error) {
 -    "use strict";
--    var Bar = /** @class */ (function (_super) {
--        __extends(Bar, _super);
--        function Bar() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return Bar;
--    }(Error));
+-    class Bar extends Error {
+-    }
 -    return Bar;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/importTypeGenericArrowTypeParenthesized.js.diff b/testdata/baselines/reference/submodule/compiler/importTypeGenericArrowTypeParenthesized.js.diff
index 54a900bffb..e12f973bdb 100644
--- a/testdata/baselines/reference/submodule/compiler/importTypeGenericArrowTypeParenthesized.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importTypeGenericArrowTypeParenthesized.js.diff
@@ -5,16 +5,11 @@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.works2 = exports.works1 = exports.fail2 = exports.fail1 = void 0;
 -var module_1 = require("module");
--exports.fail1 = (0, module_1.fn)(function (x) { return x; });
 +const module_1 = require("module");
-+exports.fail1 = (0, module_1.fn)((x) => x);
+ exports.fail1 = (0, module_1.fn)((x) => x);
  exports.fail2 = (0, module_1.fn)(function (x) {
      return x;
- });
--exports.works1 = (0, module_1.fn)(function (x) { return x; });
--exports.works2 = (0, module_1.fn)(function (x) { return x; });
-+exports.works1 = (0, module_1.fn)((x) => x);
-+exports.works2 = (0, module_1.fn)(x => x);
+@@= skipped -10, +10 lines =@@
 
 
  //// [index.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/importUsedInExtendsList1.js.diff b/testdata/baselines/reference/submodule/compiler/importUsedInExtendsList1.js.diff
index 9fddfcfe39..dbd7527ee1 100644
--- a/testdata/baselines/reference/submodule/compiler/importUsedInExtendsList1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importUsedInExtendsList1.js.diff
@@ -1,47 +1,18 @@
 --- old.importUsedInExtendsList1.js
 +++ new.importUsedInExtendsList1.js
-@@= skipped -14, +14 lines =@@
- "use strict";
+@@= skipped -15, +15 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Super = void 0;
--var Super = /** @class */ (function () {
--    function Super() {
--    }
--    return Super;
--}());
-+class Super {
+ class Super {
 +    foo;
-+}
+ }
  exports.Super = Super;
  //// [importUsedInExtendsList1_1.js]
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
  ///
 -var foo = require("./importUsedInExtendsList1_require");
--var Sub = /** @class */ (function (_super) {
--    __extends(Sub, _super);
--    function Sub() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Sub;
--}(foo.Super));
 +const foo = require("./importUsedInExtendsList1_require");
-+class Sub extends foo.Super {
-+}
- var s;
- var r = s.foo;
\ No newline at end of file
+ class Sub extends foo.Super {
+ }
+ var s;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/import_reference-exported-alias.js.diff b/testdata/baselines/reference/submodule/compiler/import_reference-exported-alias.js.diff
index 5928e68049..484e1ce289 100644
--- a/testdata/baselines/reference/submodule/compiler/import_reference-exported-alias.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/import_reference-exported-alias.js.diff
@@ -9,16 +9,13 @@
 -    "use strict";
 -    var App;
 -    (function (App) {
--        var Services;
+-        let Services;
 -        (function (Services) {
--            var UserServices = /** @class */ (function () {
--                function UserServices() {
--                }
--                UserServices.prototype.getUserName = function () {
+-            class UserServices {
+-                getUserName() {
 -                    return "Bill Gates";
--                };
--                return UserServices;
--            }());
+-                }
+-            }
 -            Services.UserServices = UserServices;
 -        })(Services = App.Services || (App.Services = {}));
 -    })(App || (App = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/import_reference-to-type-alias.js.diff b/testdata/baselines/reference/submodule/compiler/import_reference-to-type-alias.js.diff
index e4f19de1c1..a3dea7ee1f 100644
--- a/testdata/baselines/reference/submodule/compiler/import_reference-to-type-alias.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/import_reference-to-type-alias.js.diff
@@ -11,16 +11,13 @@
 -    exports.App = void 0;
 -    var App;
 -    (function (App) {
--        var Services;
+-        let Services;
 -        (function (Services) {
--            var UserServices = /** @class */ (function () {
--                function UserServices() {
--                }
--                UserServices.prototype.getUserName = function () {
+-            class UserServices {
+-                getUserName() {
 -                    return "Bill Gates";
--                };
--                return UserServices;
--            }());
+-                }
+-            }
 -            Services.UserServices = UserServices;
 -        })(Services = App.Services || (App.Services = {}));
 -    })(App || (exports.App = App = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/import_var-referencing-an-imported-module-alias.js.diff b/testdata/baselines/reference/submodule/compiler/import_var-referencing-an-imported-module-alias.js.diff
index 72aaf7672b..6b53e88dfb 100644
--- a/testdata/baselines/reference/submodule/compiler/import_var-referencing-an-imported-module-alias.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/import_var-referencing-an-imported-module-alias.js.diff
@@ -9,11 +9,8 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.Host = void 0;
--    var Host = /** @class */ (function () {
--        function Host() {
--        }
--        return Host;
--    }());
+-    class Host {
+-    }
 -    exports.Host = Host;
 -});
  //// [consumer.js]
diff --git a/testdata/baselines/reference/submodule/compiler/importedAliasesInTypePositions.js.diff b/testdata/baselines/reference/submodule/compiler/importedAliasesInTypePositions.js.diff
index 3ad8e95b6f..f643f411d3 100644
--- a/testdata/baselines/reference/submodule/compiler/importedAliasesInTypePositions.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importedAliasesInTypePositions.js.diff
@@ -17,13 +17,10 @@
 -            (function (mod) {
 -                var name;
 -                (function (name) {
--                    var ReferredTo = /** @class */ (function () {
--                        function ReferredTo() {
+-                    class ReferredTo {
+-                        doSomething() {
 -                        }
--                        ReferredTo.prototype.doSomething = function () {
--                        };
--                        return ReferredTo;
--                    }());
+-                    }
 -                    name.ReferredTo = ReferredTo;
 -                })(name = mod.name || (mod.name = {}));
 -            })(mod = nested.mod || (nested.mod = {}));
@@ -37,14 +34,10 @@
 -    exports.ImportingModule = void 0;
 -    var ImportingModule;
 -    (function (ImportingModule) {
--        var UsesReferredType = /** @class */ (function () {
--            function UsesReferredType(referred) {
+-        class UsesReferredType {
+-            constructor(referred) {
 -                this.referred = referred;
 -            }
--            return UsesReferredType;
--        }());
--    })(ImportingModule || (exports.ImportingModule = ImportingModule = {}));
--});
 +"use strict";
 +Object.defineProperty(exports, "__esModule", { value: true });
 +exports.ImportingModule = void 0;
@@ -54,6 +47,8 @@
 +        referred;
 +        constructor(referred) {
 +            this.referred = referred;
-+        }
+         }
+-    })(ImportingModule || (exports.ImportingModule = ImportingModule = {}));
+-});
 +    }
 +})(ImportingModule || (exports.ImportingModule = ImportingModule = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/importedModuleAddToGlobal.js.diff b/testdata/baselines/reference/submodule/compiler/importedModuleAddToGlobal.js.diff
index a1feb4972a..97d3481289 100644
--- a/testdata/baselines/reference/submodule/compiler/importedModuleAddToGlobal.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importedModuleAddToGlobal.js.diff
@@ -4,14 +4,9 @@
  //// [importedModuleAddToGlobal.js]
  var B;
  (function (B_1) {
--    var B = /** @class */ (function () {
--        function B() {
--        }
--        return B;
--    }());
 +    var a = A;
-+    class B {
-+    }
+     class B {
+     }
      B_1.B = B;
  })(B || (B = {}));
  var C;
diff --git a/testdata/baselines/reference/submodule/compiler/importedModuleClassNameClash.js.diff b/testdata/baselines/reference/submodule/compiler/importedModuleClassNameClash.js.diff
index 8c2608b175..144cd066f3 100644
--- a/testdata/baselines/reference/submodule/compiler/importedModuleClassNameClash.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/importedModuleClassNameClash.js.diff
@@ -7,11 +7,8 @@
 -define(["require", "exports"], function (require, exports) {
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
--    var foo = /** @class */ (function () {
--        function foo() {
--        }
--        return foo;
--    }());
+-    class foo {
+-    }
 -});
 +"use strict";
 +Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.js.diff b/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.js.diff
deleted file mode 100644
index 040931a6e2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inDoesNotOperateOnPrimitiveTypes.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.inDoesNotOperateOnPrimitiveTypes.js
-+++ new.inDoesNotOperateOnPrimitiveTypes.js
-@@= skipped -68, +68 lines =@@
-
-
- //// [inDoesNotOperateOnPrimitiveTypes.js]
--var validHasKey = function (thing, key) {
-+const validHasKey = (thing, key) => {
-     return key in thing; // Ok
- };
--var alsoValidHasKey = function (thing, key) {
-+const alsoValidHasKey = (thing, key) => {
-     return key in thing; // Ok (as T may be instantiated with a valid type)
- };
- function invalidHasKey(thing, key) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.js.diff b/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.js.diff
index 660cea33a2..bc115a2d7f 100644
--- a/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inKeywordAndIntersection.js.diff
@@ -5,35 +5,17 @@
 
  //// [inKeywordAndIntersection.js]
 -"use strict";
--var A = /** @class */ (function () {
--    function A() {
+ class A {
+-    constructor() {
 -        this.a = 0;
 -    }
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
++    a = 0;
+ }
+ class B {
+-    constructor() {
 -        this.b = 0;
 -    }
--    return B;
--}());
-+class A {
-+    a = 0;
-+}
-+class B {
 +    b = 0;
-+}
- function f10(obj) {
-     if (obj instanceof Object) {
-         obj; // A & { x: string } | B
-@@= skipped -21, +14 lines =@@
-         obj; // Error
-     }
  }
--var instance = {};
--var ClassOne = {};
-+const instance = {};
-+const ClassOne = {};
- if (instance instanceof ClassOne) {
-     instance.one();
- }
\ No newline at end of file
+ function f10(obj) {
+     if (obj instanceof Object) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inOperatorWithGeneric.js.diff b/testdata/baselines/reference/submodule/compiler/inOperatorWithGeneric.js.diff
deleted file mode 100644
index 298c299937..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inOperatorWithGeneric.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.inOperatorWithGeneric.js
-+++ new.inOperatorWithGeneric.js
-@@= skipped -8, +8 lines =@@
- }
-
- //// [inOperatorWithGeneric.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function (x) {
-+class C {
-+    foo(x) {
-         for (var p in x) {
-         }
--    };
--    return C;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/incompatibleAssignmentOfIdenticallyNamedTypes.js.diff b/testdata/baselines/reference/submodule/compiler/incompatibleAssignmentOfIdenticallyNamedTypes.js.diff
index 8ee4692d38..690e72a056 100644
--- a/testdata/baselines/reference/submodule/compiler/incompatibleAssignmentOfIdenticallyNamedTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/incompatibleAssignmentOfIdenticallyNamedTypes.js.diff
@@ -1,19 +1,10 @@
 --- old.incompatibleAssignmentOfIdenticallyNamedTypes.js
 +++ new.incompatibleAssignmentOfIdenticallyNamedTypes.js
-@@= skipped -11, +11 lines =@@
-
+@@= skipped -12, +12 lines =@@
 
  //// [incompatibleAssignmentOfIdenticallyNamedTypes.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    Foo.prototype.fn = function () {
-+class Foo {
+ class Foo {
 +    x;
-+    fn() {
+     fn() {
          this.x = a;
--    };
--    return Foo;
--}());
-+    }
-+}
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/incompatibleTypes.js.diff b/testdata/baselines/reference/submodule/compiler/incompatibleTypes.js.diff
index 2bdf9c55f5..2c450f57f9 100644
--- a/testdata/baselines/reference/submodule/compiler/incompatibleTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/incompatibleTypes.js.diff
@@ -1,62 +1,13 @@
 --- old.incompatibleTypes.js
 +++ new.incompatibleTypes.js
-@@= skipped -77, +77 lines =@@
-
-
- //// [incompatibleTypes.js]
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    C1.prototype.p1 = function () {
-+class C1 {
-+    p1() {
-         return "s";
--    };
--    return C1;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
+@@= skipped -88, +88 lines =@@
      }
--    C2.prototype.p1 = function (n) {
-+}
-+class C2 {
-+    p1(n) {
-         return 0;
--    };
--    return C2;
--}());
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    return C3;
--}());
--var C4 = /** @class */ (function () {
--    function C4() {
--    }
--    return C4;
--}());
-+    }
-+}
-+class C3 {
-+    p1;
-+}
-+class C4 {
+ }
+ class C3 {
 +    p1;
-+}
- function if1(a) { }
- var c1;
- var c2;
-@@= skipped -36, +26 lines =@@
  }
- function bar() {
-     var map;
--    foo(function () {
-+    foo(() => {
-         map = {};
-     });
+ class C4 {
++    p1;
  }
- var o1 = { e: 0, f: 0 };
- var a1 = [{ e: 0, f: 0 }, { e: 0, f: 0 }, { e: 0, g: 0 }];
- var i1c1 = 5;
--var fp1 = function (a) { return 0; };
-+var fp1 = a => 0;
\ No newline at end of file
+ function if1(a) { }
+ var c1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/incompleteObjectLiteral1.js.diff b/testdata/baselines/reference/submodule/compiler/incompleteObjectLiteral1.js.diff
index 97540c8df6..3727aeda49 100644
--- a/testdata/baselines/reference/submodule/compiler/incompleteObjectLiteral1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/incompleteObjectLiteral1.js.diff
@@ -4,6 +4,6 @@
  var x = tt;
 
  //// [incompleteObjectLiteral1.js]
--var tt = { aa: aa };
+-var tt = { aa };
 +var tt = { aa, };
  var x = tt;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/incorrectClassOverloadChain.js.diff b/testdata/baselines/reference/submodule/compiler/incorrectClassOverloadChain.js.diff
index 7087fca9e4..c16faff268 100644
--- a/testdata/baselines/reference/submodule/compiler/incorrectClassOverloadChain.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/incorrectClassOverloadChain.js.diff
@@ -1,15 +1,11 @@
 --- old.incorrectClassOverloadChain.js
 +++ new.incorrectClassOverloadChain.js
-@@= skipped -7, +7 lines =@@
- }
+@@= skipped -8, +8 lines =@@
 
  //// [incorrectClassOverloadChain.js]
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.x = 1;
 -    }
--    return C;
--}());
-+class C {
 +    x = 1;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/incorrectNumberOfTypeArgumentsDuringErrorReporting.js.diff b/testdata/baselines/reference/submodule/compiler/incorrectNumberOfTypeArgumentsDuringErrorReporting.js.diff
deleted file mode 100644
index 76cf786189..0000000000
--- a/testdata/baselines/reference/submodule/compiler/incorrectNumberOfTypeArgumentsDuringErrorReporting.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.incorrectNumberOfTypeArgumentsDuringErrorReporting.js
-+++ new.incorrectNumberOfTypeArgumentsDuringErrorReporting.js
-@@= skipped -24, +24 lines =@@
-
-
- //// [incorrectNumberOfTypeArgumentsDuringErrorReporting.js]
--var fn = function (opts) { return 'Z'; };
-+const fn = (opts) => 'Z';
- fn({
-     a: { x: 'X', y: 'Y' },
-     b: {},
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/incrementOnNullAssertion.js.diff b/testdata/baselines/reference/submodule/compiler/incrementOnNullAssertion.js.diff
index 4056559afe..8966d0349f 100644
--- a/testdata/baselines/reference/submodule/compiler/incrementOnNullAssertion.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/incrementOnNullAssertion.js.diff
@@ -5,17 +5,6 @@
 
  //// [incrementOnNullAssertion.js]
 -"use strict";
--var x = 'bar';
--var foo = {};
-+const x = 'bar';
-+let foo = {};
- if (foo[x] === undefined) {
-     foo[x] = 1;
- }
- else {
--    var nu = foo[x];
--    var n = foo[x];
-+    let nu = foo[x];
-+    let n = foo[x];
-     foo[x]++;
- }
\ No newline at end of file
+ const x = 'bar';
+ let foo = {};
+ if (foo[x] === undefined) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/incrementOnTypeParameter.js.diff b/testdata/baselines/reference/submodule/compiler/incrementOnTypeParameter.js.diff
index 6081717038..01020d2c8f 100644
--- a/testdata/baselines/reference/submodule/compiler/incrementOnTypeParameter.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/incrementOnTypeParameter.js.diff
@@ -1,21 +1,10 @@
 --- old.incrementOnTypeParameter.js
 +++ new.incrementOnTypeParameter.js
-@@= skipped -11, +11 lines =@@
-
+@@= skipped -12, +12 lines =@@
 
  //// [incrementOnTypeParameter.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.prototype.foo = function () {
-+class C {
+ class C {
 +    a;
-+    foo() {
+     foo() {
          this.a++;
-         for (var i, j = 0; j < 10; i++) {
-         }
--    };
--    return C;
--}());
-+    }
-+}
\ No newline at end of file
+         for (var i, j = 0; j < 10; i++) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/incrementalConfig.js.diff b/testdata/baselines/reference/submodule/compiler/incrementalConfig.js.diff
deleted file mode 100644
index 648b329b68..0000000000
--- a/testdata/baselines/reference/submodule/compiler/incrementalConfig.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.incrementalConfig.js
-+++ new.incrementalConfig.js
-@@= skipped -4, +4 lines =@@
-
-
- //// [a.js]
--var x = 10;
-+const x = 10;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/incrementalInvalid.js.diff b/testdata/baselines/reference/submodule/compiler/incrementalInvalid.js.diff
deleted file mode 100644
index cc36fdf4ca..0000000000
--- a/testdata/baselines/reference/submodule/compiler/incrementalInvalid.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.incrementalInvalid.js
-+++ new.incrementalInvalid.js
-@@= skipped -5, +5 lines =@@
-
-
- //// [incrementalInvalid.js]
--var x = 10;
-+const x = 10;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/incrementalTsBuildInfoFile.js.diff b/testdata/baselines/reference/submodule/compiler/incrementalTsBuildInfoFile.js.diff
deleted file mode 100644
index 1fe4ecc09c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/incrementalTsBuildInfoFile.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.incrementalTsBuildInfoFile.js
-+++ new.incrementalTsBuildInfoFile.js
-@@= skipped -6, +6 lines =@@
-
-
- //// [a.js]
--var x = 10;
-+const x = 10;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexClassByNumber.js.diff b/testdata/baselines/reference/submodule/compiler/indexClassByNumber.js.diff
deleted file mode 100644
index 623567ce61..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexClassByNumber.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.indexClassByNumber.js
-+++ new.indexClassByNumber.js
-@@= skipped -10, +10 lines =@@
-
- //// [indexClassByNumber.js]
- // Shouldn't be able to index a class instance by a number (unless it has declared a number index signature)
--var foo = /** @class */ (function () {
--    function foo() {
--    }
--    return foo;
--}());
-+class foo {
-+}
- var f = new foo();
- f[0] = 4; // Shouldn't be allowed
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexIntoEnum.js.diff b/testdata/baselines/reference/submodule/compiler/indexIntoEnum.js.diff
deleted file mode 100644
index 2238bdb2e1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexIntoEnum.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.indexIntoEnum.js
-+++ new.indexIntoEnum.js
-@@= skipped -10, +10 lines =@@
- //// [indexIntoEnum.js]
- var M;
- (function (M) {
--    var E;
-+    let E;
-     (function (E) {
-     })(E || (E = {}));
-     var x = E[0];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexSignatureMustHaveTypeAnnotation.js.diff b/testdata/baselines/reference/submodule/compiler/indexSignatureMustHaveTypeAnnotation.js.diff
index 3f69013e3b..668ef038cc 100644
--- a/testdata/baselines/reference/submodule/compiler/indexSignatureMustHaveTypeAnnotation.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexSignatureMustHaveTypeAnnotation.js.diff
@@ -1,22 +1,11 @@
 --- old.indexSignatureMustHaveTypeAnnotation.js
 +++ new.indexSignatureMustHaveTypeAnnotation.js
-@@= skipped -17, +17 lines =@@
- }
+@@= skipped -18, +18 lines =@@
 
  //// [indexSignatureMustHaveTypeAnnotation.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    return C2;
--}());
-+class C {
+ class C {
 +    // Used to be indexer, now it is a computed property
 +    [x];
-+}
-+class C2 {
-+}
\ No newline at end of file
+ }
+ class C2 {
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexSignatureTypeCheck2.js.diff b/testdata/baselines/reference/submodule/compiler/indexSignatureTypeCheck2.js.diff
deleted file mode 100644
index be0028c894..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexSignatureTypeCheck2.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.indexSignatureTypeCheck2.js
-+++ new.indexSignatureTypeCheck2.js
-@@= skipped -16, +16 lines =@@
- }
-
- //// [indexSignatureTypeCheck2.js]
--var IPropertySet = /** @class */ (function () {
--    function IPropertySet() {
--    }
--    return IPropertySet;
--}());
-+class IPropertySet {
-+}
- var ps = null;
- var index = "hello";
- ps[index] = 12;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexSignatureWithAccessibilityModifier.js.diff b/testdata/baselines/reference/submodule/compiler/indexSignatureWithAccessibilityModifier.js.diff
deleted file mode 100644
index 093c8dd126..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexSignatureWithAccessibilityModifier.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.indexSignatureWithAccessibilityModifier.js
-+++ new.indexSignatureWithAccessibilityModifier.js
-@@= skipped -9, +9 lines =@@
- }
-
- //// [indexSignatureWithAccessibilityModifier.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexSignatureWithInitializer.js.diff b/testdata/baselines/reference/submodule/compiler/indexSignatureWithInitializer.js.diff
index 038a636f25..041cecec97 100644
--- a/testdata/baselines/reference/submodule/compiler/indexSignatureWithInitializer.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexSignatureWithInitializer.js.diff
@@ -1,15 +1,9 @@
 --- old.indexSignatureWithInitializer.js
 +++ new.indexSignatureWithInitializer.js
-@@= skipped -10, +10 lines =@@
- }
+@@= skipped -11, +11 lines =@@
 
  //// [indexSignatureWithInitializer.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--x = 0;
-+class C {
+ class C {
 +    [x = 0];
-+}
\ No newline at end of file
+ }
+-x = 0;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexSignatureWithInitializer1.js.diff b/testdata/baselines/reference/submodule/compiler/indexSignatureWithInitializer1.js.diff
deleted file mode 100644
index 5c65797d81..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexSignatureWithInitializer1.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.indexSignatureWithInitializer1.js
-+++ new.indexSignatureWithInitializer1.js
-@@= skipped -5, +5 lines =@@
- }
-
- //// [indexSignatureWithInitializer1.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexSignatureWithTrailingComma.js.diff b/testdata/baselines/reference/submodule/compiler/indexSignatureWithTrailingComma.js.diff
deleted file mode 100644
index 6bf66efcec..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexSignatureWithTrailingComma.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.indexSignatureWithTrailingComma.js
-+++ new.indexSignatureWithTrailingComma.js
-@@= skipped -14, +14 lines =@@
-
-
- //// [indexSignatureWithTrailingComma.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexSignatureWithoutTypeAnnotation1.js.diff b/testdata/baselines/reference/submodule/compiler/indexSignatureWithoutTypeAnnotation1.js.diff
deleted file mode 100644
index 8e9cff1530..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexSignatureWithoutTypeAnnotation1.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.indexSignatureWithoutTypeAnnotation1.js
-+++ new.indexSignatureWithoutTypeAnnotation1.js
-@@= skipped -5, +5 lines =@@
- }
-
- //// [indexSignatureWithoutTypeAnnotation1.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexTypeCheck.js.diff b/testdata/baselines/reference/submodule/compiler/indexTypeCheck.js.diff
index 2d81f3bdb0..ae21b64986 100644
--- a/testdata/baselines/reference/submodule/compiler/indexTypeCheck.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexTypeCheck.js.diff
@@ -1,20 +1,13 @@
 --- old.indexTypeCheck.js
 +++ new.indexTypeCheck.js
-@@= skipped -77, +77 lines =@@
- yellow[blue]; // error
+@@= skipped -78, +78 lines =@@
  var x;
  x[0];
--var Benchmark = /** @class */ (function () {
--    function Benchmark() {
+ class Benchmark {
+-    constructor() {
 -        this.results = {};
 -    }
--    Benchmark.prototype.addTimingFor = function (name, timing) {
-+class Benchmark {
 +    results = {};
-+    addTimingFor(name, timing) {
+     addTimingFor(name, timing) {
          this.results[name] = this.results[name];
--    };
--    return Benchmark;
--}());
-+    }
-+}
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexTypeNoSubstitutionTemplateLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/indexTypeNoSubstitutionTemplateLiteral.js.diff
index 6ad4e94f10..d2902f02fc 100644
--- a/testdata/baselines/reference/submodule/compiler/indexTypeNoSubstitutionTemplateLiteral.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexTypeNoSubstitutionTemplateLiteral.js.diff
@@ -6,5 +6,4 @@
  //// [indexTypeNoSubstitutionTemplateLiteral.js]
 -"use strict";
  function Foo() { }
--Foo["b"] = function () { };
-+Foo[`b`] = function () { };
\ No newline at end of file
+ Foo[`b`] = function () { };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexWithUndefinedAndNull.js.diff b/testdata/baselines/reference/submodule/compiler/indexWithUndefinedAndNull.js.diff
deleted file mode 100644
index 6a9290ec2f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexWithUndefinedAndNull.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.indexWithUndefinedAndNull.js
-+++ new.indexWithUndefinedAndNull.js
-@@= skipped -15, +15 lines =@@
-
-
- //// [indexWithUndefinedAndNull.js]
--var n;
--var s;
--var str = n[undefined];
-+let n;
-+let s;
-+let str = n[undefined];
- str = n[null];
--var num = s[undefined];
-+let num = s[undefined];
- num = s[null];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexWithUndefinedAndNullStrictNullChecks.js.diff b/testdata/baselines/reference/submodule/compiler/indexWithUndefinedAndNullStrictNullChecks.js.diff
deleted file mode 100644
index db91b77d82..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexWithUndefinedAndNullStrictNullChecks.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.indexWithUndefinedAndNullStrictNullChecks.js
-+++ new.indexWithUndefinedAndNullStrictNullChecks.js
-@@= skipped -15, +15 lines =@@
-
-
- //// [indexWithUndefinedAndNullStrictNullChecks.js]
--var n;
--var s;
--var str = n[undefined];
-+let n;
-+let s;
-+let str = n[undefined];
- str = n[null];
--var num = s[undefined];
-+let num = s[undefined];
- num = s[null];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexWithoutParamType2.js.diff b/testdata/baselines/reference/submodule/compiler/indexWithoutParamType2.js.diff
index 5407e5211f..bb689e478b 100644
--- a/testdata/baselines/reference/submodule/compiler/indexWithoutParamType2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexWithoutParamType2.js.diff
@@ -1,15 +1,9 @@
 --- old.indexWithoutParamType2.js
 +++ new.indexWithoutParamType2.js
-@@= skipped -6, +6 lines =@@
- }
+@@= skipped -7, +7 lines =@@
 
  //// [indexWithoutParamType2.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
+ class C {
 +    // Used to be indexer, now it is a computed property
 +    [x];
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexedAccessCanBeHighOrder.js.diff b/testdata/baselines/reference/submodule/compiler/indexedAccessCanBeHighOrder.js.diff
deleted file mode 100644
index ec14be5e6d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexedAccessCanBeHighOrder.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.indexedAccessCanBeHighOrder.js
-+++ new.indexedAccessCanBeHighOrder.js
-@@= skipped -14, +14 lines =@@
-
- //// [indexedAccessCanBeHighOrder.js]
- function impl(a, b) {
--    var item = get(a, b);
-+    const item = get(a, b);
-     return find(item);
- }
--var o = { x: 42 };
--var r = impl(o, "x");
-+const o = { x: 42 };
-+const r = impl(o, "x");
- r[0][r[1]] = o[r[1]];
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.js.diff b/testdata/baselines/reference/submodule/compiler/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.js.diff
index aafd8438fe..607b38a997 100644
--- a/testdata/baselines/reference/submodule/compiler/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.js.diff
@@ -1,39 +1,11 @@
 --- old.indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.js
 +++ new.indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.js
-@@= skipped -24, +24 lines =@@
- }
+@@= skipped -25, +25 lines =@@
 
  //// [indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class A {
+ class A {
 +    foo;
-+}
-+class B extends A {
+ }
+ class B extends A {
 +    foo;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexedAccessNormalization.js.diff b/testdata/baselines/reference/submodule/compiler/indexedAccessNormalization.js.diff
index c7bba7ce02..5595f810a2 100644
--- a/testdata/baselines/reference/submodule/compiler/indexedAccessNormalization.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexedAccessNormalization.js.diff
@@ -7,15 +7,5 @@
 -"use strict";
 -// Repro from from #43152
  function f1(mymap, k) {
--    var elemofM = mymap[k];
-+    const elemofM = mymap[k];
-     g(elemofM);
- }
- function f2(mymap, k, z) {
--    var q1 = z;
--    var q2 = z;
--    var q3 = z;
-+    const q1 = z;
-+    const q2 = z;
-+    const q3 = z;
- }
\ No newline at end of file
+     const elemofM = mymap[k];
+     g(elemofM);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexedAccessPrivateMemberOfGenericConstraint.js.diff b/testdata/baselines/reference/submodule/compiler/indexedAccessPrivateMemberOfGenericConstraint.js.diff
index 3be913f227..c7e396eb0d 100644
--- a/testdata/baselines/reference/submodule/compiler/indexedAccessPrivateMemberOfGenericConstraint.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexedAccessPrivateMemberOfGenericConstraint.js.diff
@@ -1,22 +1,11 @@
 --- old.indexedAccessPrivateMemberOfGenericConstraint.js
 +++ new.indexedAccessPrivateMemberOfGenericConstraint.js
-@@= skipped -14, +14 lines =@@
-
+@@= skipped -15, +15 lines =@@
 
  //// [indexedAccessPrivateMemberOfGenericConstraint.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function () {
--    function B() {
--    }
--    return B;
--}());
-+class A {
+ class A {
 +    a;
-+}
-+class B {
+ }
+ class B {
 +    a;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexedAccessRelation.js.diff b/testdata/baselines/reference/submodule/compiler/indexedAccessRelation.js.diff
index 057057142f..2f676bbe24 100644
--- a/testdata/baselines/reference/submodule/compiler/indexedAccessRelation.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexedAccessRelation.js.diff
@@ -5,50 +5,8 @@
  //// [indexedAccessRelation.js]
  "use strict";
 -// Repro from #14723
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
--var Component = /** @class */ (function () {
--    function Component() {
--    }
--    Component.prototype.setState = function (state) { };
--    return Component;
--}());
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
--var Comp = /** @class */ (function (_super) {
--    __extends(Comp, _super);
--    function Comp() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Comp.prototype.foo = function (a) {
 +// Repro from #14723
-+class Component {
-+    setState(state) { }
-+}
-+class Foo {
-+}
-+class Comp extends Component {
-+    foo(a) {
-         this.setState({ a: a });
--    };
--    return Comp;
--}(Component));
-+    }
-+}
\ No newline at end of file
+ class Component {
+     setState(state) { }
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexedAccessTypeConstraints.js.diff b/testdata/baselines/reference/submodule/compiler/indexedAccessTypeConstraints.js.diff
index 1c61c32dc0..1fcf56ce47 100644
--- a/testdata/baselines/reference/submodule/compiler/indexedAccessTypeConstraints.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexedAccessTypeConstraints.js.diff
@@ -5,66 +5,10 @@
  //// [indexedAccessTypeConstraints.js]
  "use strict";
 -// Repro from #14557
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.Bar = exports.Foo = void 0;
--var Parent = /** @class */ (function () {
--    function Parent(data) {
-+class Parent {
+ class Parent {
 +    data;
-+    constructor(data) {
+     constructor(data) {
          this.data = data;
-     }
--    Parent.prototype.getData = function () {
-+    getData() {
-         return this.data;
--    };
--    return Parent;
--}());
--var Foo = /** @class */ (function (_super) {
--    __extends(Foo, _super);
--    function Foo() {
--        return _super !== null && _super.apply(this, arguments) || this;
-     }
--    Foo.prototype.getContent = function () {
-+}
-+class Foo extends Parent {
-+    getContent() {
-         return this.getData().get('content');
--    };
--    return Foo;
--}(Parent));
-+    }
-+}
- exports.Foo = Foo;
--var Bar = /** @class */ (function (_super) {
--    __extends(Bar, _super);
--    function Bar() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Bar.prototype.getContent = function () {
-+class Bar extends Parent {
-+    getContent() {
-         return this.getData().get('content');
--    };
--    return Bar;
--}(Parent));
-+    }
-+}
- exports.Bar = Bar;
- // Repro from #14557
- function foo(x, y) {
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexer2A.js.diff b/testdata/baselines/reference/submodule/compiler/indexer2A.js.diff
deleted file mode 100644
index 19a9ce7708..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexer2A.js.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- old.indexer2A.js
-+++ new.indexer2A.js
-@@= skipped -9, +9 lines =@@
- var directChildrenMap = {}; 
-
- //// [indexer2A.js]
--var IHeapObjectProperty = /** @class */ (function () {
--    function IHeapObjectProperty() {
--    }
--    return IHeapObjectProperty;
--}());
--var IDirectChildrenMap = /** @class */ (function () {
--    function IDirectChildrenMap() {
--    }
--    return IDirectChildrenMap;
--}());
-+class IHeapObjectProperty {
-+}
-+class IDirectChildrenMap {
-+}
- var directChildrenMap = {};
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexerA.js.diff b/testdata/baselines/reference/submodule/compiler/indexerA.js.diff
index d5ac1bd85f..78a18af335 100644
--- a/testdata/baselines/reference/submodule/compiler/indexerA.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexerA.js.diff
@@ -1,23 +1,10 @@
 --- old.indexerA.js
 +++ new.indexerA.js
-@@= skipped -12, +12 lines =@@
- jq[0].id;
+@@= skipped -13, +13 lines =@@
 
  //// [indexerA.js]
--var JQueryElement = /** @class */ (function () {
--    function JQueryElement() {
--    }
--    return JQueryElement;
--}());
--var JQuery = /** @class */ (function () {
--    function JQuery() {
--    }
--    return JQuery;
--}());
-+class JQueryElement {
+ class JQueryElement {
 +    id;
-+}
-+class JQuery {
-+}
- var jq = { 0: { id: "a" }, 1: { id: "b" } };
- jq[0].id;
\ No newline at end of file
+ }
+ class JQuery {
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexerAsOptional.js.diff b/testdata/baselines/reference/submodule/compiler/indexerAsOptional.js.diff
deleted file mode 100644
index 220d3a280f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexerAsOptional.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.indexerAsOptional.js
-+++ new.indexerAsOptional.js
-@@= skipped -11, +11 lines =@@
- }
-
- //// [indexerAsOptional.js]
--var indexSig2 = /** @class */ (function () {
--    function indexSig2() {
--    }
--    return indexSig2;
--}());
-+class indexSig2 {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexerConstraints2.js.diff b/testdata/baselines/reference/submodule/compiler/indexerConstraints2.js.diff
index 743f866797..e0830d23cd 100644
--- a/testdata/baselines/reference/submodule/compiler/indexerConstraints2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexerConstraints2.js.diff
@@ -1,90 +1,13 @@
 --- old.indexerConstraints2.js
 +++ new.indexerConstraints2.js
-@@= skipped -83, +83 lines =@@
-
+@@= skipped -84, +84 lines =@@
 
  //// [indexerConstraints2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class A {
+ class A {
 +    a;
-+}
-+class B extends A {
+ }
+ class B extends A {
 +    b;
-+}
+ }
  // Inheritance
--var F = /** @class */ (function () {
--    function F() {
--    }
--    return F;
--}());
--var G = /** @class */ (function (_super) {
--    __extends(G, _super);
--    function G() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return G;
--}(F));
-+class F {
-+}
-+class G extends F {
-+}
- // Other way
--var H = /** @class */ (function () {
--    function H() {
--    }
--    return H;
--}());
--var I = /** @class */ (function (_super) {
--    __extends(I, _super);
--    function I() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return I;
--}(H));
-+class H {
-+}
-+class I extends H {
-+}
- // With hidden indexer
--var J = /** @class */ (function () {
--    function J() {
--    }
--    return J;
--}());
--var K = /** @class */ (function (_super) {
--    __extends(K, _super);
--    function K() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return K;
--}(J));
-+class J {
-+}
-+class K extends J {
-+}
\ No newline at end of file
+ class F {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexerReturningTypeParameter1.js.diff b/testdata/baselines/reference/submodule/compiler/indexerReturningTypeParameter1.js.diff
deleted file mode 100644
index 7e77065247..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexerReturningTypeParameter1.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.indexerReturningTypeParameter1.js
-+++ new.indexerReturningTypeParameter1.js
-@@= skipped -17, +17 lines =@@
- //// [indexerReturningTypeParameter1.js]
- var a;
- var r = a.groupBy();
--var c = /** @class */ (function () {
--    function c() {
--    }
--    c.prototype.groupBy = function () {
-+class c {
-+    groupBy() {
-         return null;
--    };
--    return c;
--}());
-+    }
-+}
- var a2;
- var r2 = a2.groupBy();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexerSignatureWithRestParam.js.diff b/testdata/baselines/reference/submodule/compiler/indexerSignatureWithRestParam.js.diff
deleted file mode 100644
index eb9c401e07..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indexerSignatureWithRestParam.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.indexerSignatureWithRestParam.js
-+++ new.indexerSignatureWithRestParam.js
-@@= skipped -9, +9 lines =@@
- }
-
- //// [indexerSignatureWithRestParam.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indexingTypesWithNever.js.diff b/testdata/baselines/reference/submodule/compiler/indexingTypesWithNever.js.diff
index caf1836620..0f15a0403c 100644
--- a/testdata/baselines/reference/submodule/compiler/indexingTypesWithNever.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indexingTypesWithNever.js.diff
@@ -5,17 +5,6 @@
 
  //// [indexingTypesWithNever.js]
 -"use strict";
--// Should be never
--var result3 = genericFn1({ c: "ctest", d: "dtest" });
--// Should be never
--var result4 = genericFn2({ e: "etest", f: "ftest" });
--// Should be never
--var result5 = genericFn3({ g: "gtest", h: "htest" }, "g", "h"); // 'g' & 'h' will reduce to never
--var result6 = obj[key];
-+// Should be never
-+const result3 = genericFn1({ c: "ctest", d: "dtest" });
-+// Should be never
-+const result4 = genericFn2({ e: "etest", f: "ftest" });
-+// Should be never
-+const result5 = genericFn3({ g: "gtest", h: "htest" }, "g", "h"); // 'g' & 'h' will reduce to never
-+const result6 = obj[key];
\ No newline at end of file
+ // Should be never
+ const result3 = genericFn1({ c: "ctest", d: "dtest" });
+ // Should be never
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indirectDiscriminantAndExcessProperty.js.diff b/testdata/baselines/reference/submodule/compiler/indirectDiscriminantAndExcessProperty.js.diff
deleted file mode 100644
index 5dfd84fd3d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indirectDiscriminantAndExcessProperty.js.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- old.indirectDiscriminantAndExcessProperty.js
-+++ new.indirectDiscriminantAndExcessProperty.js
-@@= skipped -30, +30 lines =@@
- //// [indirectDiscriminantAndExcessProperty.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var foo1 = "foo";
-+let foo1 = "foo";
- thing({
-     type: foo1,
-     abc: "hello!"
- });
--var foo2 = "foo";
-+let foo2 = "foo";
- thing({
-     type: foo2,
-     abc: "hello!",
-     extra: 123,
- });
--var bar = "bar";
-+let bar = "bar";
- thing({
-     type: bar,
-     xyz: 123,
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indirectSelfReference.js.diff b/testdata/baselines/reference/submodule/compiler/indirectSelfReference.js.diff
deleted file mode 100644
index a0dd9027fe..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indirectSelfReference.js.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- old.indirectSelfReference.js
-+++ new.indirectSelfReference.js
-@@= skipped -4, +4 lines =@@
- class b extends a{ }
-
- //// [indirectSelfReference.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function (_super) {
--    __extends(a, _super);
--    function a() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return a;
--}(b));
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return b;
--}(a));
-+class a extends b {
-+}
-+class b extends a {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indirectSelfReferenceGeneric.js.diff b/testdata/baselines/reference/submodule/compiler/indirectSelfReferenceGeneric.js.diff
deleted file mode 100644
index 6ebd319e7f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/indirectSelfReferenceGeneric.js.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- old.indirectSelfReferenceGeneric.js
-+++ new.indirectSelfReferenceGeneric.js
-@@= skipped -4, +4 lines =@@
- class b extends a { }
-
- //// [indirectSelfReferenceGeneric.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function (_super) {
--    __extends(a, _super);
--    function a() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return a;
--}(b));
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return b;
--}(a));
-+class a extends b {
-+}
-+class b extends a {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/indirectTypeParameterReferences.js.diff b/testdata/baselines/reference/submodule/compiler/indirectTypeParameterReferences.js.diff
index 4ba647f2b6..aaa080d08a 100644
--- a/testdata/baselines/reference/submodule/compiler/indirectTypeParameterReferences.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/indirectTypeParameterReferences.js.diff
@@ -5,26 +5,6 @@
 
  //// [indirectTypeParameterReferences.js]
 -// Repro from #19043
--var flowtypes = function (b) {
--    var combined = function (fn) { return null; };
--    var literal = function (fn) { return null; };
--    return { combined: combined, literal: literal };
-+const flowtypes = (b) => {
-+    const combined = (fn) => null;
-+    const literal = (fn) => null;
-+    return { combined, literal };
- };
--var _a = flowtypes({ b: 'b-value' }), combined = _a.combined, literal = _a.literal;
--literal(function (aPlusB) {
-+const { combined, literal } = flowtypes({ b: 'b-value' });
-+literal(aPlusB => {
-     aPlusB.b;
-     aPlusB.a;
- });
--combined(function (comb) {
-+combined(comb => {
-     comb.b;
-     comb.a;
- });
--var n = f(2).a;
-+let n = f(2).a;
\ No newline at end of file
+ const flowtypes = (b) => {
+     const combined = (fn) => null;
+     const literal = (fn) => null;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes1.js.diff b/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes1.js.diff
index 014e79979e..a1b7198aca 100644
--- a/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes1.js.diff
@@ -1,75 +1,10 @@
 --- old.inferFromGenericFunctionReturnTypes1.js
 +++ new.inferFromGenericFunctionReturnTypes1.js
-@@= skipped -75, +75 lines =@@
- //// [inferFromGenericFunctionReturnTypes1.js]
+@@= skipped -76, +76 lines =@@
  // Repro from #15680
  // This is a contrived class. We could do the same thing with Observables, etc.
--var SetOf = /** @class */ (function () {
--    function SetOf() {
--    }
--    SetOf.prototype.add = function (a) {
-+class SetOf {
+ class SetOf {
 +    _store;
-+    add(a) {
+     add(a) {
          this._store.push(a);
--    };
--    SetOf.prototype.transform = function (transformer) {
-+    }
-+    transform(transformer) {
-         return transformer(this);
--    };
--    SetOf.prototype.forEach = function (fn) {
--        this._store.forEach(function (a, i) { return fn(a, i); });
--    };
--    return SetOf;
--}());
-+    }
-+    forEach(fn) {
-+        this._store.forEach((a, i) => fn(a, i));
-+    }
-+}
- /* ... etc ... */
--function compose() {
--    var fns = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        fns[_i] = arguments[_i];
--    }
--    return function (x) { return fns.reduce(function (prev, fn) { return fn(prev); }, x); };
-+function compose(...fns) {
-+    return (x) => fns.reduce((prev, fn) => fn(prev), x);
- }
- function map(fn) {
--    return function (a) {
--        var b = new SetOf();
--        a.forEach(function (x) { return b.add(fn(x)); });
-+    return (a) => {
-+        const b = new SetOf();
-+        a.forEach(x => b.add(fn(x)));
-         return b;
-     };
- }
- function filter(predicate) {
--    return function (a) {
--        var result = new SetOf();
--        a.forEach(function (x) {
-+    return (a) => {
-+        const result = new SetOf();
-+        a.forEach(x => {
-             if (predicate(x))
-                 result.add(x);
-         });
-         return result;
-     };
- }
--var testSet = new SetOf();
-+const testSet = new SetOf();
- testSet.add(1);
- testSet.add(2);
- testSet.add(3);
--testSet.transform(compose(filter(function (x) { return x % 1 === 0; }), map(function (x) { return x + x; }), map(function (x) { return x + '!!!'; }), map(function (x) { return x.toUpperCase(); })));
--testSet.transform(compose(filter(function (x) { return x % 1 === 0; }), map(function (x) { return x + x; }), map(function (x) { return 123; }), // Whoops a bug
--map(function (x) { return x.toUpperCase(); }) // causes an error!
-+testSet.transform(compose(filter(x => x % 1 === 0), map(x => x + x), map(x => x + '!!!'), map(x => x.toUpperCase())));
-+testSet.transform(compose(filter(x => x % 1 === 0), map(x => x + x), map(x => 123), // Whoops a bug
-+map(x => x.toUpperCase()) // causes an error!
- ));
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes2.js.diff b/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes2.js.diff
index 8c8336474c..cd32713c1e 100644
--- a/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferFromGenericFunctionReturnTypes2.js.diff
@@ -1,95 +1,10 @@
 --- old.inferFromGenericFunctionReturnTypes2.js
 +++ new.inferFromGenericFunctionReturnTypes2.js
-@@= skipped -97, +97 lines =@@
-
-
- //// [inferFromGenericFunctionReturnTypes2.js]
--var f1 = function (s) { return s.length; };
--var f2 = wrap(function (s) { return s.length; });
--var f3 = arrayize(wrap(function (s) { return s.length; }));
--var f4 = combine(wrap(function (s) { return s.length; }), wrap(function (n) { return n >= 10; }));
--foo(wrap(function (s) { return s.length; }));
--var a1 = ["a", "b"].map(function (s) { return s.length; });
--var a2 = ["a", "b"].map(wrap(function (s) { return s.length; }));
--var a3 = ["a", "b"].map(wrap(arrayize(function (s) { return s.length; })));
--var a4 = ["a", "b"].map(combine(wrap(function (s) { return s.length; }), wrap(function (n) { return n > 10; })));
--var a5 = ["a", "b"].map(combine(identity, wrap(function (s) { return s.length; })));
--var a6 = ["a", "b"].map(combine(wrap(function (s) { return s.length; }), identity));
-+let f1 = s => s.length;
-+let f2 = wrap(s => s.length);
-+let f3 = arrayize(wrap(s => s.length));
-+let f4 = combine(wrap(s => s.length), wrap(n => n >= 10));
-+foo(wrap(s => s.length));
-+let a1 = ["a", "b"].map(s => s.length);
-+let a2 = ["a", "b"].map(wrap(s => s.length));
-+let a3 = ["a", "b"].map(wrap(arrayize(s => s.length)));
-+let a4 = ["a", "b"].map(combine(wrap(s => s.length), wrap(n => n > 10)));
-+let a5 = ["a", "b"].map(combine(identity, wrap(s => s.length)));
-+let a6 = ["a", "b"].map(combine(wrap(s => s.length), identity));
+@@= skipped -110, +110 lines =@@
+ let a6 = ["a", "b"].map(combine(wrap(s => s.length), identity));
  // This is a contrived class. We could do the same thing with Observables, etc.
--var SetOf = /** @class */ (function () {
--    function SetOf() {
--    }
--    SetOf.prototype.add = function (a) {
-+class SetOf {
+ class SetOf {
 +    _store;
-+    add(a) {
+     add(a) {
          this._store.push(a);
--    };
--    SetOf.prototype.transform = function (transformer) {
-+    }
-+    transform(transformer) {
-         return transformer(this);
--    };
--    SetOf.prototype.forEach = function (fn) {
--        this._store.forEach(function (a, i) { return fn(a, i); });
--    };
--    return SetOf;
--}());
-+    }
-+    forEach(fn) {
-+        this._store.forEach((a, i) => fn(a, i));
-+    }
-+}
- /* ... etc ... */
--function compose() {
--    var fns = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        fns[_i] = arguments[_i];
--    }
--    return function (x) { return fns.reduce(function (prev, fn) { return fn(prev); }, x); };
-+function compose(...fns) {
-+    return (x) => fns.reduce((prev, fn) => fn(prev), x);
- }
- function map(fn) {
--    return function (a) {
--        var b = new SetOf();
--        a.forEach(function (x) { return b.add(fn(x)); });
-+    return (a) => {
-+        const b = new SetOf();
-+        a.forEach(x => b.add(fn(x)));
-         return b;
-     };
- }
- function filter(predicate) {
--    return function (a) {
--        var result = new SetOf();
--        a.forEach(function (x) {
-+    return (a) => {
-+        const result = new SetOf();
-+        a.forEach(x => {
-             if (predicate(x))
-                 result.add(x);
-         });
-         return result;
-     };
- }
--var testSet = new SetOf();
-+const testSet = new SetOf();
- testSet.add(1);
- testSet.add(2);
- testSet.add(3);
--var t1 = testSet.transform(compose(filter(function (x) { return x % 1 === 0; }), map(function (x) { return x + x; }), map(function (x) { return x + '!!!'; }), map(function (x) { return x.toUpperCase(); })));
--var t2 = testSet.transform(compose(filter(function (x) { return x % 1 === 0; }), identity, map(function (x) { return x + '!!!'; }), map(function (x) { return x.toUpperCase(); })));
-+const t1 = testSet.transform(compose(filter(x => x % 1 === 0), map(x => x + x), map(x => x + '!!!'), map(x => x.toUpperCase())));
-+const t2 = testSet.transform(compose(filter(x => x % 1 === 0), identity, map(x => x + '!!!'), map(x => x.toUpperCase())));
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferObjectTypeFromStringLiteralToKeyof.js.diff b/testdata/baselines/reference/submodule/compiler/inferObjectTypeFromStringLiteralToKeyof.js.diff
deleted file mode 100644
index 9388847166..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferObjectTypeFromStringLiteralToKeyof.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.inferObjectTypeFromStringLiteralToKeyof.js
-+++ new.inferObjectTypeFromStringLiteralToKeyof.js
-@@= skipped -8, +8 lines =@@
-
-
- //// [inferObjectTypeFromStringLiteralToKeyof.js]
--var x = inference1(two);
--var y = inference2({ a: 1, b: 2, c: 3, d: function (n) { return n; } }, two);
-+const x = inference1(two);
-+const y = inference2({ a: 1, b: 2, c: 3, d(n) { return n; } }, two);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferParameterWithMethodCallInitializer.js.diff b/testdata/baselines/reference/submodule/compiler/inferParameterWithMethodCallInitializer.js.diff
deleted file mode 100644
index 222a538d9c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferParameterWithMethodCallInitializer.js.diff
+++ /dev/null
@@ -1,42 +0,0 @@
---- old.inferParameterWithMethodCallInitializer.js
-+++ new.inferParameterWithMethodCallInitializer.js
-@@= skipped -25, +25 lines =@@
- function getNumber() {
-     return 1;
- }
--var Example = /** @class */ (function () {
--    function Example() {
--    }
--    Example.prototype.getNumber = function () {
-+class Example {
-+    getNumber() {
-         return 1;
--    };
--    Example.prototype.doSomething = function (a) {
--        if (a === void 0) { a = this.getNumber(); }
-+    }
-+    doSomething(a = this.getNumber()) {
-         return a;
--    };
--    return Example;
--}());
--function weird(a) {
--    if (a === void 0) { a = this.getNumber(); }
-+    }
-+}
-+function weird(a = this.getNumber()) {
-     return a;
- }
--var Weird = /** @class */ (function () {
--    function Weird() {
--    }
--    Weird.prototype.doSomething = function (a) {
--        if (a === void 0) { a = this.getNumber(); }
-+class Weird {
-+    doSomething(a = this.getNumber()) {
-         return a;
--    };
--    return Weird;
--}());
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferRestArgumentsMappedTuple.js.diff b/testdata/baselines/reference/submodule/compiler/inferRestArgumentsMappedTuple.js.diff
index bbcb6134a9..4cd9ba6912 100644
--- a/testdata/baselines/reference/submodule/compiler/inferRestArgumentsMappedTuple.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferRestArgumentsMappedTuple.js.diff
@@ -5,7 +5,5 @@
 
  //// [inferRestArgumentsMappedTuple.js]
 -"use strict";
--var myPrimitiveTupleOld = extractPrimitivesOld({ primitive: "" }, { primitive: 0 });
--var myPrimitiveTupleNew = extractPrimitivesNew({ primitive: "" }, { primitive: 0 });
-+const myPrimitiveTupleOld = extractPrimitivesOld({ primitive: "" }, { primitive: 0 });
-+const myPrimitiveTupleNew = extractPrimitivesNew({ primitive: "" }, { primitive: 0 });
\ No newline at end of file
+ const myPrimitiveTupleOld = extractPrimitivesOld({ primitive: "" }, { primitive: 0 });
+ const myPrimitiveTupleNew = extractPrimitivesNew({ primitive: "" }, { primitive: 0 });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferSetterParamType.js.diff b/testdata/baselines/reference/submodule/compiler/inferSetterParamType.js.diff
deleted file mode 100644
index 9bf4daf99b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferSetterParamType.js.diff
+++ /dev/null
@@ -1,48 +0,0 @@
---- old.inferSetterParamType.js
-+++ new.inferSetterParamType.js
-@@= skipped -20, +20 lines =@@
-
-
- //// [inferSetterParamType.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    Object.defineProperty(Foo.prototype, "bar", {
--        get: function () {
--            return 0;
--        },
--        set: function (n) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return Foo;
--}());
--var Foo2 = /** @class */ (function () {
--    function Foo2() {
--    }
--    Object.defineProperty(Foo2.prototype, "bar", {
--        get: function () {
--            return 0; // should be an error - can't coerce infered return type to match setter annotated type
--        },
--        set: function (n) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return Foo2;
--}());
-+class Foo {
-+    get bar() {
-+        return 0;
-+    }
-+    set bar(n) {
-+    }
-+}
-+class Foo2 {
-+    get bar() {
-+        return 0; // should be an error - can't coerce infered return type to match setter annotated type
-+    }
-+    set bar(n) {
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferStringLiteralUnionForBindingElement.js.diff b/testdata/baselines/reference/submodule/compiler/inferStringLiteralUnionForBindingElement.js.diff
deleted file mode 100644
index 8781a2fca9..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferStringLiteralUnionForBindingElement.js.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- old.inferStringLiteralUnionForBindingElement.js
-+++ new.inferStringLiteralUnionForBindingElement.js
-@@= skipped -25, +25 lines =@@
-
- //// [inferStringLiteralUnionForBindingElement.js]
- function func1() {
--    var firstKey = func({ keys: ["aa", "bb"] }).firstKey;
--    var a = firstKey;
--    var keys = func({ keys: ["aa", "bb"] }).keys;
--    var b = keys;
-+    const { firstKey } = func({ keys: ["aa", "bb"] });
-+    const a = firstKey;
-+    const { keys } = func({ keys: ["aa", "bb"] });
-+    const b = keys;
- }
- function func2() {
--    var _a = func({ keys: ["aa", "bb"] }), keys = _a.keys, firstKey = _a.firstKey;
--    var a = firstKey;
--    var b = keys;
-+    const { keys, firstKey } = func({ keys: ["aa", "bb"] });
-+    const a = firstKey;
-+    const b = keys;
- }
- function func3() {
--    var x = func({ keys: ["aa", "bb"] });
--    var a = x.firstKey;
--    var b = x.keys;
-+    const x = func({ keys: ["aa", "bb"] });
-+    const a = x.firstKey;
-+    const b = x.keys;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferTupleFromBindingPattern.js.diff b/testdata/baselines/reference/submodule/compiler/inferTupleFromBindingPattern.js.diff
deleted file mode 100644
index f8ca2f7a72..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferTupleFromBindingPattern.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferTupleFromBindingPattern.js
-+++ new.inferTupleFromBindingPattern.js
-@@= skipped -5, +5 lines =@@
-
-
- //// [inferTupleFromBindingPattern.js]
--var _a = f(function () { return [1, "hi", true]; }), e1 = _a[0], e2 = _a[1], e3 = _a[2];
-+const [e1, e2, e3] = f(() => [1, "hi", true]);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferTypeArgumentsInSignatureWithRestParameters.js.diff b/testdata/baselines/reference/submodule/compiler/inferTypeArgumentsInSignatureWithRestParameters.js.diff
deleted file mode 100644
index 2a3932aa2e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferTypeArgumentsInSignatureWithRestParameters.js.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- old.inferTypeArgumentsInSignatureWithRestParameters.js
-+++ new.inferTypeArgumentsInSignatureWithRestParameters.js
-@@= skipped -13, +13 lines =@@
-
-
- //// [inferTypeArgumentsInSignatureWithRestParameters.js]
--function f(array) {
--    var args = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        args[_i - 1] = arguments[_i];
--    }
--}
--function g(array) {
--    var args = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        args[_i - 1] = arguments[_i];
--    }
--}
--function h(nonarray) {
--    var args = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        args[_i - 1] = arguments[_i];
--    }
--}
-+function f(array, ...args) { }
-+function g(array, ...args) { }
-+function h(nonarray, ...args) { }
- function i(array, opt) { }
- var a = [1, 2, 3, 4, 5];
- f(a); // OK
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferTypeParameterConstraints.js.diff b/testdata/baselines/reference/submodule/compiler/inferTypeParameterConstraints.js.diff
index a9b79cbcbc..4d4403e0ed 100644
--- a/testdata/baselines/reference/submodule/compiler/inferTypeParameterConstraints.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferTypeParameterConstraints.js.diff
@@ -6,43 +6,17 @@
  //// [inferTypeParameterConstraints.js]
 -"use strict";
 -// Repro from #42636
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  // https://github.com/microsoft/TypeScript/issues/57286#issuecomment-1927920336
--var BaseClass = /** @class */ (function () {
--    function BaseClass() {
--    }
--    BaseClass.prototype.fake = function () {
-+class BaseClass {
-+    fake() {
-         throw new Error("");
--    };
--    return BaseClass;
--}());
--var Klass = /** @class */ (function (_super) {
--    __extends(Klass, _super);
--    function Klass() {
--        var _this = _super !== null && _super.apply(this, arguments) || this;
--        _this.child = true;
--        return _this;
+ class BaseClass {
+     fake() {
+@@= skipped -9, +7 lines =@@
      }
--    return Klass;
--}(BaseClass));
-+}
-+class Klass extends BaseClass {
+ }
+ class Klass extends BaseClass {
+-    constructor() {
+-        super(...arguments);
+-        this.child = true;
+-    }
 +    child = true;
-+}
+ }
  m.child; // ok
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js.diff b/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js.diff
index 65f04640e8..e1f8407d9d 100644
--- a/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferTypePredicates.js.diff
@@ -1,307 +1,39 @@
 --- old.inferTypePredicates.js
 +++ new.inferTypePredicates.js
-@@= skipped -292, +292 lines =@@
-
- //// [inferTypePredicates.js]
- // https://github.com/microsoft/TypeScript/issues/16069
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var numsOrNull = [1, 2, 3, 4, null];
--var filteredNumsTruthy = numsOrNull.filter(function (x) { return !!x; }); // should error
--var filteredNumsNonNullish = numsOrNull.filter(function (x) { return x !== null; }); // should ok
--var evenSquaresInline = // should error
-- [1, 2, 3, 4]
--    .map(function (x) { return x % 2 === 0 ? x * x : null; })
--    .filter(function (x) { return !!x; }); // tests truthiness, not non-nullishness
--var isTruthy = function (x) { return !!x; };
--var evenSquares = // should error
+@@= skipped -295, +295 lines =@@
+ const numsOrNull = [1, 2, 3, 4, null];
+ const filteredNumsTruthy = numsOrNull.filter(x => !!x); // should error
+ const filteredNumsNonNullish = numsOrNull.filter(x => x !== null); // should ok
+-const evenSquaresInline = // should error
 - [1, 2, 3, 4]
--    .map(function (x) { return x % 2 === 0 ? x * x : null; })
-+const numsOrNull = [1, 2, 3, 4, null];
-+const filteredNumsTruthy = numsOrNull.filter(x => !!x); // should error
-+const filteredNumsNonNullish = numsOrNull.filter(x => x !== null); // should ok
 +const evenSquaresInline = [1, 2, 3, 4]
-+    .map(x => x % 2 === 0 ? x * x : null)
-+    .filter(x => !!x); // tests truthiness, not non-nullishness
-+const isTruthy = (x) => !!x;
+     .map(x => x % 2 === 0 ? x * x : null)
+     .filter(x => !!x); // tests truthiness, not non-nullishness
+ const isTruthy = (x) => !!x;
+-const evenSquares = // should error
+- [1, 2, 3, 4]
 +const evenSquares = [1, 2, 3, 4]
-+    .map(x => x % 2 === 0 ? x * x : null)
+     .map(x => x % 2 === 0 ? x * x : null)
      .filter(isTruthy);
--var evenSquaresNonNull = // should ok
+-const evenSquaresNonNull = // should ok
 - [1, 2, 3, 4]
--    .map(function (x) { return x % 2 === 0 ? x * x : null; })
--    .filter(function (x) { return x !== null; });
 +const evenSquaresNonNull = [1, 2, 3, 4]
-+    .map(x => x % 2 === 0 ? x * x : null)
-+    .filter(x => x !== null);
+     .map(x => x % 2 === 0 ? x * x : null)
+     .filter(x => x !== null);
  function isNonNull(x) {
-     return x !== null;
- }
- // factoring out a boolean works thanks to aliased discriminants
- function isNonNullVar(x) {
--    var ok = x !== null;
-+    const ok = x !== null;
-     return ok;
- }
- function isNonNullGeneric(x) {
-     return x !== null;
- }
- // Type guards can flow between functions
--var myGuard = function (o) { return !!o; };
--var mySecondGuard = function (o) { return myGuard(o); };
--var myArray = [];
--var result = myArray
--    .map(function (arr) { return arr.list; })
--    .filter(function (arr) { return arr && arr.length; })
--    .map(function (arr) { return arr // should error
--    .filter(function (obj) { return obj && obj.data; })
--    .map(function (obj) { return JSON.parse(obj.data); }); } // should error
-+const myGuard = (o) => !!o;
-+const mySecondGuard = (o) => myGuard(o);
-+const myArray = [];
-+const result = myArray
-+    .map((arr) => arr.list)
-+    .filter((arr) => arr && arr.length)
-+    .map((arr) => arr // should error
-+    .filter((obj) => obj && obj.data)
-+    .map(obj => JSON.parse(obj.data)) // should error
- );
--var result2 = myArray
--    .map(function (arr) { return arr.list; })
--    .filter(function (arr) { return !!arr; })
--    .filter(function (arr) { return arr.length; })
--    .map(function (arr) { return arr // should ok
--    .filter(function (obj) { return obj; })
-+const result2 = myArray
-+    .map((arr) => arr.list)
-+    .filter((arr) => !!arr)
-+    .filter(arr => arr.length)
-+    .map((arr) => arr // should ok
-+    .filter((obj) => obj)
-     // inferring a guard here would require https://github.com/microsoft/TypeScript/issues/42384
--    .filter(function (obj) { return !!obj.data; })
--    .map(function (obj) { return JSON.parse(obj.data); }); });
--var list = [];
--var resultBars = list.filter(function (value) { return 'bar' in value; }); // should ok
-+    .filter(obj => !!obj.data)
-+    .map(obj => JSON.parse(obj.data)));
-+const list = [];
-+const resultBars = list.filter((value) => 'bar' in value); // should ok
- function isBarNonNull(x) {
-     return ('bar' in x);
- }
--var fooOrBar = list[0];
-+const fooOrBar = list[0];
- if (isBarNonNull(fooOrBar)) {
--    var t = fooOrBar; // should ok
-+    const t = fooOrBar; // should ok
- }
- // https://github.com/microsoft/TypeScript/issues/38390#issuecomment-626019466
- // Ryan's example (currently legal):
--var a = [1, "foo", 2, "bar"].filter(function (x) { return typeof x === "string"; });
-+const a = [1, "foo", 2, "bar"].filter(x => typeof x === "string");
- a.push(10);
- // Defer to explicit type guards, even when they're incorrect.
- function backwardsGuard(x) {
-@@= skipped -84, +66 lines =@@
-     return typeof x === 'string';
- }
- if (isString(strOrNum)) {
--    var t = strOrNum; // should ok
-+    let t = strOrNum; // should ok
- }
- else {
--    var t = strOrNum; // should ok
-+    let t = strOrNum; // should ok
- }
- function flakyIsString(x) {
-     return typeof x === 'string' && Math.random() > 0.5;
- }
- if (flakyIsString(strOrNum)) {
--    var t = strOrNum; // should error
-+    let t = strOrNum; // should error
- }
- else {
--    var t = strOrNum; // should error
-+    let t = strOrNum; // should error
- }
- function isDate(x) {
-     return x instanceof Date;
-@@= skipped -21, +21 lines =@@
-     return x instanceof Date && Math.random() > 0.5;
- }
- if (isDate(maybeDate)) {
--    var t = maybeDate; // should ok
-+    let t = maybeDate; // should ok
- }
- else {
--    var t = maybeDate; // should ok
-+    let t = maybeDate; // should ok
- }
- if (flakyIsDate(maybeDate)) {
--    var t = maybeDate; // should error
-+    let t = maybeDate; // should error
- }
- else {
--    var t = maybeDate; // should ok
-+    let t = maybeDate; // should ok
- }
- // This should not infer a type guard since the value on which we do the refinement
- // is not related to the original parameter.
-@@= skipped -18, +18 lines =@@
-     return typeof x === 'string';
- }
- function irrelevantIsNumberDestructuring(x) {
--    x = [Math.random() < 0.5 ? "string" : 123][0];
-+    [x] = [Math.random() < 0.5 ? "string" : 123];
-     return typeof x === 'string';
- }
- // Cannot infer a type guard for either param because of the false case.
-@@= skipped -22, +22 lines =@@
-     return typeof __x === 'string';
- }
- // could infer a type guard here but it doesn't seem that helpful.
--var booleanIdentity = function (x) { return x; };
-+const booleanIdentity = (x) => x;
- // we infer "x is number | true" which is accurate but of debatable utility.
--var numOrBoolean = function (x) { return typeof x === 'number' || x; };
--var Inferrer = /** @class */ (function () {
--    function Inferrer() {
--    }
--    Inferrer.prototype.isNumber = function (x) {
-+const numOrBoolean = (x) => typeof x === 'number' || x;
-+class Inferrer {
-+    isNumber(x) {
-         return typeof x === 'number';
--    };
--    return Inferrer;
--}());
--var inf = new Inferrer();
-+    }
-+}
-+const inf = new Inferrer();
- if (inf.isNumber(numOrStr)) {
--    var t = numOrStr; // should ok
-+    let t = numOrStr; // should ok
- }
- else {
--    var t = numOrStr; // should ok
-+    let t = numOrStr; // should ok
- }
- // Type predicates are not inferred on "this"
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    C1.prototype.isC2 = function () {
-+class C1 {
-+    isC2() {
-         return this instanceof C2;
--    };
--    return C1;
--}());
--var C2 = /** @class */ (function (_super) {
--    __extends(C2, _super);
--    function C2() {
--        var _this = _super !== null && _super.apply(this, arguments) || this;
--        _this.z = 0;
--        return _this;
+@@= skipped -149, +146 lines =@@
      }
--    return C2;
--}(C1));
-+}
-+class C2 extends C1 {
-+    z = 0;
-+}
- if (c.isC2()) {
--    var c2 = c; // should error
-+    let c2 = c; // should error
- }
--function doNotRefineDestructuredParam(_a) {
--    var x = _a.x, y = _a.y;
-+function doNotRefineDestructuredParam({ x, y }) {
-     return typeof x === 'number';
- }
- // The type predicate must remain valid when the function is called with subtypes.
-@@= skipped -60, +47 lines =@@
-     str.charAt(0); // should OK
- }
- else {
--    var t = str; // should OK
-+    let t = str; // should OK
- }
- // infer a union type
- function isNumOrStr(x) {
-     return (typeof x === "number" || typeof x === "string");
  }
- if (isNumOrStr(unk)) {
--    var t = unk; // should ok
-+    let t = unk; // should ok
- }
- // A function can be a type predicate even if it throws.
- function assertAndPredicate(x) {
-@@= skipped -17, +17 lines =@@
-     return typeof x === 'string';
- }
- if (assertAndPredicate(snd)) {
--    var t = snd; // should error
-+    let t = snd; // should error
- }
- function isNumberWithThis(x) {
-     return typeof x === 'number';
-@@= skipped -8, +8 lines =@@
- function narrowFromAny(x) {
-     return typeof x === 'number';
- }
--var noInferenceFromRest = function () {
--    var f = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        f[_i] = arguments[_i];
--    }
--    return f[0] === "a";
--};
--var noInferenceFromImpossibleRest = function () {
--    var f = [];
--    for (var _i = 0; _i < arguments.length; _i++) {
--        f[_i] = arguments[_i];
+ class C2 extends C1 {
+-    constructor() {
+-        super(...arguments);
+-        this.z = 0;
 -    }
--    return typeof f === "undefined";
--};
--function inferWithRest(x) {
--    var f = [];
--    for (var _i = 1; _i < arguments.length; _i++) {
--        f[_i - 1] = arguments[_i];
--    }
-+const noInferenceFromRest = (...f) => f[0] === "a";
-+const noInferenceFromImpossibleRest = (...f) => typeof f === "undefined";
-+function inferWithRest(x, ...f) {
-     return typeof x === 'string';
- }
--var foobarPred = function (fb) { return fb.type === "foo"; };
-+const foobarPred = (fb) => fb.type === "foo";
- if (foobarPred(foobar)) {
-     foobar.foo;
- }
- // https://github.com/microsoft/TypeScript/issues/60778
--var arrTest = [1, 2, null, 3].filter(function (x) { return (x != null); });
-+const arrTest = [1, 2, null, 3].filter((x) => (x != null));
- function isEmptyString(x) {
--    var rv = x === "";
-+    const rv = x === "";
-     return rv;
++    z = 0;
  }
+ if (c.isC2()) {
+     let c2 = c; // should error
+@@= skipped -71, +68 lines =@@
 
 
  //// [inferTypePredicates.d.ts]
@@ -329,7 +61,7 @@
  type MyObj = {
      data?: string;
  };
-@@= skipped -55, +45 lines =@@
+@@= skipped -21, +27 lines =@@
  declare const myArray: MyArray;
  declare const result: any[][];
  declare const result2: any[][];
diff --git a/testdata/baselines/reference/submodule/compiler/inferenceAndSelfReferentialConstraint.js.diff b/testdata/baselines/reference/submodule/compiler/inferenceAndSelfReferentialConstraint.js.diff
index ea8f1ac054..97cadbab15 100644
--- a/testdata/baselines/reference/submodule/compiler/inferenceAndSelfReferentialConstraint.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferenceAndSelfReferentialConstraint.js.diff
@@ -7,32 +7,4 @@
 -// @strict
  function test(arg) {
      return arg;
- }
--var res1 = test({
--    foo: true,
--    bar: function () {
--    }
--});
--var res2 = test({
--    foo: true,
--    bar: function () {
--    }
--});
--var res3 = test({
--    foo: true,
--    bar: function () {
-+const res1 = test({
-+    foo: true,
-+    bar() {
-+    }
-+});
-+const res2 = test({
-+    foo: true,
-+    bar: function () {
-+    }
-+});
-+const res3 = test({
-+    foo: true,
-+    bar: () => {
-     }
- });
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.js.diff b/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.js.diff
index e5690da3c1..e1171aedfc 100644
--- a/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferenceDoesNotAddUndefinedOrNull.js.diff
@@ -6,29 +6,5 @@
  //// [inferenceDoesNotAddUndefinedOrNull.js]
 -"use strict";
  function flatMapChildren(node, cb) {
--    var result = [];
--    node.forEachChild(function (child) {
--        var value = cb(child);
-+    const result = [];
-+    node.forEachChild(child => {
-+        const value = cb(child);
-         if (value !== undefined) {
--            result.push.apply(result, toArray(value));
-+            result.push(...toArray(value));
-         }
-     });
-     return result;
- }
- function flatMapChildren2(node, cb) {
--    var result = [];
--    node.forEachChild(function (child) {
--        var value = cb(child);
-+    const result = [];
-+    node.forEachChild(child => {
-+        const value = cb(child);
-         if (value !== null) {
--            result.push.apply(result, toArray(value));
-+            result.push(...toArray(value));
-         }
-     });
-     return result;
\ No newline at end of file
+     const result = [];
+     node.forEachChild(child => {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferenceDoesntCompareAgainstUninstantiatedTypeParameter.js.diff b/testdata/baselines/reference/submodule/compiler/inferenceDoesntCompareAgainstUninstantiatedTypeParameter.js.diff
index 9ce4b3f766..0ed5930844 100644
--- a/testdata/baselines/reference/submodule/compiler/inferenceDoesntCompareAgainstUninstantiatedTypeParameter.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferenceDoesntCompareAgainstUninstantiatedTypeParameter.js.diff
@@ -1,49 +1,21 @@
 --- old.inferenceDoesntCompareAgainstUninstantiatedTypeParameter.js
 +++ new.inferenceDoesntCompareAgainstUninstantiatedTypeParameter.js
-@@= skipped -37, +37 lines =@@
- //// [inferenceDoesntCompareAgainstUninstantiatedTypeParameter.js]
+@@= skipped -38, +38 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
--var ClassA = /** @class */ (function () {
--    function ClassA(entity, settings) {
-+class ClassA {
+ class ClassA {
 +    entity;
 +    settings;
-+    constructor(entity, settings) {
+     constructor(entity, settings) {
          this.entity = entity;
          this.settings = settings;
      }
--    return ClassA;
--}());
--var ConcreteClass = /** @class */ (function () {
--    function ConcreteClass() {
+ }
+ class ConcreteClass {
+-    constructor() {
 -        this.theName = 'myClass';
 -    }
--    return ConcreteClass;
--}());
-+}
-+class ConcreteClass {
 +    theName = 'myClass';
-+}
+ }
  var thisGetsTheFalseError = new ClassA(new ConcreteClass(), {
--    values: function (o) { return [
-+    values: o => [
-         {
-             value: o.theName,
--            func: function (x) { return 'asdfkjhgfdfghjkjhgfdfghjklkjhgfdfghjklkjhgfghj'; }
-+            func: x => 'asdfkjhgfdfghjkjhgfdfghjklkjhgfdfghjklkjhgfghj'
-         }
--    ]; }
-+    ]
- });
- var thisIsOk = new ClassA(new ConcreteClass(), {
--    values: function (o) { return [
-+    values: o => [
-         {
-             value: o.theName,
--            func: function (x) { return 'asdfkjhgfdfghjkjhgfdfghjklkjhgfdfghjklkjhgfghj'; }
-+            func: x => 'asdfkjhgfdfghjkjhgfdfghjklkjhgfdfghjklkjhgfghj'
-         }
--    ]; }
-+    ]
- });
\ No newline at end of file
+     values: o => [
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferenceFromParameterlessLambda.js.diff b/testdata/baselines/reference/submodule/compiler/inferenceFromParameterlessLambda.js.diff
deleted file mode 100644
index 831036b1e1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferenceFromParameterlessLambda.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferenceFromParameterlessLambda.js
-+++ new.inferenceFromParameterlessLambda.js
-@@= skipped -14, +14 lines =@@
- //// [inferenceFromParameterlessLambda.js]
- function foo(o, i) { }
- // Infer string from second argument because it isn't context sensitive
--foo(function (n) { return n.length; }, function () { return 'hi'; });
-+foo(n => n.length, () => 'hi');
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.js.diff b/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.js.diff
index 3eacd40841..3cc48e4afe 100644
--- a/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferenceOfNullableObjectTypesWithCommonBase.js.diff
@@ -6,8 +6,5 @@
  //// [inferenceOfNullableObjectTypesWithCommonBase.js]
 -"use strict";
  function equal(a, b) { }
--var v = null;
-+let v = null;
- equal(v, v);
- equal(v, v);
+ let v = null;
  equal(v, v);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferenceOptionalProperties.js.diff b/testdata/baselines/reference/submodule/compiler/inferenceOptionalProperties.js.diff
index 9cb0c4c8e7..f6f5b4c989 100644
--- a/testdata/baselines/reference/submodule/compiler/inferenceOptionalProperties.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferenceOptionalProperties.js.diff
@@ -5,10 +5,6 @@
 
  //// [inferenceOptionalProperties.js]
 -"use strict";
--var y1 = test(x1);
--var y2 = test(x2);
-+const y1 = test(x1);
-+const y2 = test(x2);
- var v1;
- var v1;
- var v2;
\ No newline at end of file
+ const y1 = test(x1);
+ const y2 = test(x2);
+ var v1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferenceOptionalPropertiesStrict.js.diff b/testdata/baselines/reference/submodule/compiler/inferenceOptionalPropertiesStrict.js.diff
index f5ce0ddf52..fb8998eacf 100644
--- a/testdata/baselines/reference/submodule/compiler/inferenceOptionalPropertiesStrict.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferenceOptionalPropertiesStrict.js.diff
@@ -5,10 +5,6 @@
 
  //// [inferenceOptionalPropertiesStrict.js]
 -"use strict";
--var y1 = test(x1);
--var y2 = test(x2);
-+const y1 = test(x1);
-+const y2 = test(x2);
- var v1;
- var v1;
- var v2;
\ No newline at end of file
+ const y1 = test(x1);
+ const y2 = test(x2);
+ var v1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferenceShouldFailOnEvolvingArrays.js.diff b/testdata/baselines/reference/submodule/compiler/inferenceShouldFailOnEvolvingArrays.js.diff
index c0c6f0e6e3..f5f285ddd1 100644
--- a/testdata/baselines/reference/submodule/compiler/inferenceShouldFailOnEvolvingArrays.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferenceShouldFailOnEvolvingArrays.js.diff
@@ -7,20 +7,4 @@
 -"use strict";
  // repro from https://github.com/Microsoft/TypeScript/issues/25675
  // The type of `arg` blocks inference but simplifies to T.
- function logLength(arg) {
-@@= skipped -8, +7 lines =@@
-     return arg;
- }
- logLength(42); // error
--var z;
-+let z;
- z = logLength(42); // no error; T is inferred as `any`
- function logFirstLength(arg) {
-     console.log(arg[0].length);
-     return arg;
- }
- logFirstLength([42]); // error
--var zz = [];
-+let zz = [];
- zz.push(logLength(42)); // no error; T is inferred as `any`
- zz = logFirstLength([42]); // no error; T is inferred as `any[]`
\ No newline at end of file
+ function logLength(arg) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferenceUnionOfObjectsMappedContextualType.js.diff b/testdata/baselines/reference/submodule/compiler/inferenceUnionOfObjectsMappedContextualType.js.diff
index e5f3acf04b..5e6da2c637 100644
--- a/testdata/baselines/reference/submodule/compiler/inferenceUnionOfObjectsMappedContextualType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferenceUnionOfObjectsMappedContextualType.js.diff
@@ -5,10 +5,6 @@
 
  //// [inferenceUnionOfObjectsMappedContextualType.js]
 -"use strict";
--var test = {
-+const test = {
+ const test = {
      key: 'someDate',
-     caption: 'My Date',
--    formatter: function (value) { return value ? value.toString() : '-'; } // value: any
-+    formatter: (value) => value ? value.toString() : '-' // value: any
- };
\ No newline at end of file
+     caption: 'My Date',
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferentialTypingObjectLiteralMethod1.js.diff b/testdata/baselines/reference/submodule/compiler/inferentialTypingObjectLiteralMethod1.js.diff
deleted file mode 100644
index a458c22700..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferentialTypingObjectLiteralMethod1.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferentialTypingObjectLiteralMethod1.js
-+++ new.inferentialTypingObjectLiteralMethod1.js
-@@= skipped -7, +7 lines =@@
- foo("", { method(p1) { return p1.length } }, { method(p2) { return undefined } });
-
- //// [inferentialTypingObjectLiteralMethod1.js]
--foo("", { method: function (p1) { return p1.length; } }, { method: function (p2) { return undefined; } });
-+foo("", { method(p1) { return p1.length; } }, { method(p2) { return undefined; } });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferentialTypingObjectLiteralMethod2.js.diff b/testdata/baselines/reference/submodule/compiler/inferentialTypingObjectLiteralMethod2.js.diff
deleted file mode 100644
index 805b8b13f5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferentialTypingObjectLiteralMethod2.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferentialTypingObjectLiteralMethod2.js
-+++ new.inferentialTypingObjectLiteralMethod2.js
-@@= skipped -7, +7 lines =@@
- foo("", { method(p1) { return p1.length } }, { method(p2) { return undefined } });
-
- //// [inferentialTypingObjectLiteralMethod2.js]
--foo("", { method: function (p1) { return p1.length; } }, { method: function (p2) { return undefined; } });
-+foo("", { method(p1) { return p1.length; } }, { method(p2) { return undefined; } });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferentialTypingUsingApparentType1.js.diff b/testdata/baselines/reference/submodule/compiler/inferentialTypingUsingApparentType1.js.diff
deleted file mode 100644
index f0ad09d279..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferentialTypingUsingApparentType1.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferentialTypingUsingApparentType1.js
-+++ new.inferentialTypingUsingApparentType1.js
-@@= skipped -10, +10 lines =@@
- function foo(x) {
-     return undefined;
- }
--foo(function (x) { return x.length; });
-+foo(x => x.length);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferentialTypingUsingApparentType2.js.diff b/testdata/baselines/reference/submodule/compiler/inferentialTypingUsingApparentType2.js.diff
deleted file mode 100644
index 295c5b216a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferentialTypingUsingApparentType2.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferentialTypingUsingApparentType2.js
-+++ new.inferentialTypingUsingApparentType2.js
-@@= skipped -10, +10 lines =@@
- function foo(x) {
-     return undefined;
- }
--foo({ m: function (x) { return x.length; } });
-+foo({ m(x) { return x.length; } });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferentialTypingUsingApparentType3.js.diff b/testdata/baselines/reference/submodule/compiler/inferentialTypingUsingApparentType3.js.diff
index bbeeaa1792..a1e83c8ca7 100644
--- a/testdata/baselines/reference/submodule/compiler/inferentialTypingUsingApparentType3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inferentialTypingUsingApparentType3.js.diff
@@ -1,42 +1,10 @@
 --- old.inferentialTypingUsingApparentType3.js
 +++ new.inferentialTypingUsingApparentType3.js
-@@= skipped -28, +28 lines =@@
- person.fields.id;
-
- //// [inferentialTypingUsingApparentType3.js]
--var CharField = /** @class */ (function () {
--    function CharField() {
--    }
--    CharField.prototype.clean = function (input) {
-+class CharField {
-+    clean(input) {
-         return "Yup";
--    };
--    return CharField;
--}());
--var NumberField = /** @class */ (function () {
--    function NumberField() {
+@@= skipped -39, +39 lines =@@
      }
--    NumberField.prototype.clean = function (input) {
-+}
-+class NumberField {
-+    clean(input) {
-         return 123;
--    };
--    return NumberField;
--}());
--var ObjectField = /** @class */ (function () {
--    function ObjectField(fields) {
-+    }
-+}
-+class ObjectField {
+ }
+ class ObjectField {
 +    fields;
-+    constructor(fields) {
+     constructor(fields) {
          this.fields = fields;
-     }
--    return ObjectField;
--}());
-+}
- var person = new ObjectField({
-     id: new NumberField(),
-     name: new CharField()
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferentialTypingWithFunctionTypeNested.js.diff b/testdata/baselines/reference/submodule/compiler/inferentialTypingWithFunctionTypeNested.js.diff
deleted file mode 100644
index 6aebf9728d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferentialTypingWithFunctionTypeNested.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferentialTypingWithFunctionTypeNested.js
-+++ new.inferentialTypingWithFunctionTypeNested.js
-@@= skipped -6, +6 lines =@@
- var s = map("", () => { return { x: identity }; });
-
- //// [inferentialTypingWithFunctionTypeNested.js]
--var s = map("", function () { return { x: identity }; });
-+var s = map("", () => { return { x: identity }; });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferentialTypingWithFunctionTypeSyntacticScenarios.js.diff b/testdata/baselines/reference/submodule/compiler/inferentialTypingWithFunctionTypeSyntacticScenarios.js.diff
deleted file mode 100644
index c2d0a3ac16..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferentialTypingWithFunctionTypeSyntacticScenarios.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.inferentialTypingWithFunctionTypeSyntacticScenarios.js
-+++ new.inferentialTypingWithFunctionTypeSyntacticScenarios.js
-@@= skipped -42, +42 lines =@@
- // index expression
- s = map("", dottedIdentity['x']);
- // function call
--s = map("", (function () { return identity; })());
-+s = map("", (() => identity)());
- var ic;
- s = map("", new ic());
- // assignment
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferredNonidentifierTypesGetQuotes.js.diff b/testdata/baselines/reference/submodule/compiler/inferredNonidentifierTypesGetQuotes.js.diff
deleted file mode 100644
index 61fe69e911..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferredNonidentifierTypesGetQuotes.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.inferredNonidentifierTypesGetQuotes.js
-+++ new.inferredNonidentifierTypesGetQuotes.js
-@@= skipped -5, +5 lines =@@
- var y = [{ ["a-b"]: "string" }, {}];
-
- //// [inferredNonidentifierTypesGetQuotes.js]
--var _a;
- var x = [{ "a-b": "string" }, {}];
--var y = [(_a = {}, _a["a-b"] = "string", _a), {}];
-+var y = [{ ["a-b"]: "string" }, {}];
-
-
- //// [inferredNonidentifierTypesGetQuotes.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferredRestTypeFixedOnce.js.diff b/testdata/baselines/reference/submodule/compiler/inferredRestTypeFixedOnce.js.diff
deleted file mode 100644
index b3f66c8627..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferredRestTypeFixedOnce.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.inferredRestTypeFixedOnce.js
-+++ new.inferredRestTypeFixedOnce.js
-@@= skipped -6, +6 lines =@@
-
- //// [inferredRestTypeFixedOnce.js]
- function wrap(_) { }
--wrap(function (_a) {
--    var _b = _a === void 0 ? {} : _a, cancelable = _b.cancelable;
--});
-+wrap(({ cancelable } = {}) => { });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferredReturnTypeIncorrectReuse1.js.diff b/testdata/baselines/reference/submodule/compiler/inferredReturnTypeIncorrectReuse1.js.diff
deleted file mode 100644
index eef140d354..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferredReturnTypeIncorrectReuse1.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.inferredReturnTypeIncorrectReuse1.js
-+++ new.inferredReturnTypeIncorrectReuse1.js
-@@= skipped -35, +35 lines =@@
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.out2 = exports.out = void 0;
- /** Type<(In: string) => number> */
--exports.out = t.pipe(function (s) { return parseInt(s); });
-+exports.out = t.pipe(s => parseInt(s));
- /** Type<(In: string) => number> */
--exports.out2 = t2.pipe(function (s) { return parseInt(s); });
-+exports.out2 = t2.pipe(s => parseInt(s));
-
-
- //// [inferredReturnTypeIncorrectReuse1.d.ts]
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType1.js.diff b/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType1.js.diff
deleted file mode 100644
index c69a9d760d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType1.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferringAnyFunctionType1.js
-+++ new.inferringAnyFunctionType1.js
-@@= skipped -11, +11 lines =@@
- function f(p) {
-     return p;
- }
--var v = f([function (x) { return x; }]);
-+var v = f([x => x]);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType2.js.diff b/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType2.js.diff
deleted file mode 100644
index 7b052dd3d8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType2.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferringAnyFunctionType2.js
-+++ new.inferringAnyFunctionType2.js
-@@= skipped -10, +10 lines =@@
- function f(p) {
-     return p;
- }
--var v = f([function (x) { return x; }]);
-+var v = f([x => x]);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType3.js.diff b/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType3.js.diff
deleted file mode 100644
index 2c1102f969..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType3.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferringAnyFunctionType3.js
-+++ new.inferringAnyFunctionType3.js
-@@= skipped -10, +10 lines =@@
- function f(p) {
-     return p;
- }
--var v = f([function (x) { return x; }]);
-+var v = f([x => x]);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType4.js.diff b/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType4.js.diff
deleted file mode 100644
index 1b735f1604..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType4.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferringAnyFunctionType4.js
-+++ new.inferringAnyFunctionType4.js
-@@= skipped -10, +10 lines =@@
- function f(p) {
-     return p;
- }
--var v = f(function (x) { return x; });
-+var v = f(x => x);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType5.js.diff b/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType5.js.diff
deleted file mode 100644
index df215a09e8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferringAnyFunctionType5.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.inferringAnyFunctionType5.js
-+++ new.inferringAnyFunctionType5.js
-@@= skipped -10, +10 lines =@@
- function f(p) {
-     return p;
- }
--var v = f({ q: function (x) { return x; } });
-+var v = f({ q: x => x });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inferringReturnTypeFromConstructSignatureGeneric.js.diff b/testdata/baselines/reference/submodule/compiler/inferringReturnTypeFromConstructSignatureGeneric.js.diff
deleted file mode 100644
index a96b933ac0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inferringReturnTypeFromConstructSignatureGeneric.js.diff
+++ /dev/null
@@ -1,68 +0,0 @@
---- old.inferringReturnTypeFromConstructSignatureGeneric.js
-+++ new.inferringReturnTypeFromConstructSignatureGeneric.js
-@@= skipped -36, +36 lines =@@
-
-
- //// [inferringReturnTypeFromConstructSignatureGeneric.js]
--var GenericObject = /** @class */ (function () {
--    function GenericObject() {
--    }
--    GenericObject.prototype.give = function (value) {
--        return value;
--    };
--    return GenericObject;
--}());
--var GenericNumber = /** @class */ (function () {
--    function GenericNumber() {
--    }
--    GenericNumber.prototype.give = function (value) {
--        return value;
--    };
--    return GenericNumber;
--}());
--var GenericNumberOrString = /** @class */ (function () {
--    function GenericNumberOrString() {
--    }
--    GenericNumberOrString.prototype.give = function (value) {
--        return value;
--    };
--    return GenericNumberOrString;
--}());
-+class GenericObject {
-+    give(value) {
-+        return value;
-+    }
-+}
-+class GenericNumber {
-+    give(value) {
-+        return value;
-+    }
-+}
-+class GenericNumberOrString {
-+    give(value) {
-+        return value;
-+    }
-+}
- function g(type) {
-     return new type();
- }
--var g1 = g(GenericObject);
-+const g1 = g(GenericObject);
- g1.give({});
--var g2 = g(GenericNumber);
-+const g2 = g(GenericNumber);
- g2.give(1);
--var g3 = g(GenericNumberOrString);
-+const g3 = g(GenericNumberOrString);
- g3.give(1);
- g3.give('1');
- // repro from #35636
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var g4 = g(C);
-+class C {
-+}
-+const g4 = g(C);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/infiniteConstraints.js.diff b/testdata/baselines/reference/submodule/compiler/infiniteConstraints.js.diff
index 3814e4fa3e..bccf326f67 100644
--- a/testdata/baselines/reference/submodule/compiler/infiniteConstraints.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/infiniteConstraints.js.diff
@@ -6,11 +6,5 @@
  "use strict";
 -// Both of the following types trigger the recursion limiter in getImmediateBaseConstraint
  Object.defineProperty(exports, "__esModule", { value: true });
--var out = myBug({ obj1: { a: "test" } });
--var noError = ensureNoDuplicates({ main: value("test"), alternate: value("test2") });
--var shouldBeNoError = ensureNoDuplicates({ main: value("test") });
--var shouldBeError = ensureNoDuplicates({ main: value("dup"), alternate: value("dup") });
-+const out = myBug({ obj1: { a: "test" } });
-+const noError = ensureNoDuplicates({ main: value("test"), alternate: value("test2") });
-+const shouldBeNoError = ensureNoDuplicates({ main: value("test") });
-+const shouldBeError = ensureNoDuplicates({ main: value("dup"), alternate: value("dup") });
\ No newline at end of file
+ const out = myBug({ obj1: { a: "test" } });
+ const noError = ensureNoDuplicates({ main: value("test"), alternate: value("test2") });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/infinitelyExpandingOverloads.js.diff b/testdata/baselines/reference/submodule/compiler/infinitelyExpandingOverloads.js.diff
index 8696a84ba6..10412b7bbd 100644
--- a/testdata/baselines/reference/submodule/compiler/infinitelyExpandingOverloads.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/infinitelyExpandingOverloads.js.diff
@@ -1,42 +1,16 @@
 --- old.infinitelyExpandingOverloads.js
 +++ new.infinitelyExpandingOverloads.js
-@@= skipped -28, +28 lines =@@
- }
+@@= skipped -29, +29 lines =@@
 
  //// [infinitelyExpandingOverloads.js]
--var Validator2 = /** @class */ (function () {
--    function Validator2() {
--    }
--    return Validator2;
--}());
--var ViewModel = /** @class */ (function () {
--    function ViewModel() {
+ class Validator2 {
++    _subscription;
+ }
+ class ViewModel {
+-    constructor() {
 -        this.validationPlacements = new Array();
 -    }
--    return ViewModel;
--}());
--var Widget = /** @class */ (function () {
--    function Widget(viewModelType) {
--    }
--    Object.defineProperty(Widget.prototype, "options", {
--        get: function () {
--            return null;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return Widget;
--}());
-+class Validator2 {
-+    _subscription;
-+}
-+class ViewModel {
 +    validationPlacements = new Array();
-+}
-+class Widget {
-+    constructor(viewModelType) {
-+    }
-+    get options() {
-+        return null;
-+    }
-+}
\ No newline at end of file
+ }
+ class Widget {
+     constructor(viewModelType) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/infinitelyExpandingTypesNonGenericBase.js.diff b/testdata/baselines/reference/submodule/compiler/infinitelyExpandingTypesNonGenericBase.js.diff
index 73b6bb4dc1..6370cdf603 100644
--- a/testdata/baselines/reference/submodule/compiler/infinitelyExpandingTypesNonGenericBase.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/infinitelyExpandingTypesNonGenericBase.js.diff
@@ -1,49 +1,15 @@
 --- old.infinitelyExpandingTypesNonGenericBase.js
 +++ new.infinitelyExpandingTypesNonGenericBase.js
-@@= skipped -26, +26 lines =@@
-
+@@= skipped -27, +27 lines =@@
 
  //// [infinitelyExpandingTypesNonGenericBase.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Functionality = /** @class */ (function () {
--    function Functionality() {
--    }
--    return Functionality;
--}());
--var Base = /** @class */ (function () {
--    function Base() {
--    }
--    return Base;
--}());
--var A = /** @class */ (function (_super) {
--    __extends(A, _super);
--    function A() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return A;
--}(Base));
-+class Functionality {
+ class Functionality {
 +    property;
-+}
-+class Base {
-+}
-+class A extends Base {
+ }
+ class Base {
+ }
+ class A extends Base {
 +    options;
-+}
- function o(type) {
  }
- o(A);
\ No newline at end of file
+ function o(type) {
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritFromGenericTypeParameter.js.diff b/testdata/baselines/reference/submodule/compiler/inheritFromGenericTypeParameter.js.diff
deleted file mode 100644
index fe72624345..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritFromGenericTypeParameter.js.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- old.inheritFromGenericTypeParameter.js
-+++ new.inheritFromGenericTypeParameter.js
-@@= skipped -4, +4 lines =@@
- interface I extends T { }
-
- //// [inheritFromGenericTypeParameter.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(T));
-+class C extends T {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritSameNamePrivatePropertiesFromDifferentOrigins.js.diff b/testdata/baselines/reference/submodule/compiler/inheritSameNamePrivatePropertiesFromDifferentOrigins.js.diff
index 3c3b663686..91045dc88f 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritSameNamePrivatePropertiesFromDifferentOrigins.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritSameNamePrivatePropertiesFromDifferentOrigins.js.diff
@@ -1,22 +1,11 @@
 --- old.inheritSameNamePrivatePropertiesFromDifferentOrigins.js
 +++ new.inheritSameNamePrivatePropertiesFromDifferentOrigins.js
-@@= skipped -13, +13 lines =@@
- }
+@@= skipped -14, +14 lines =@@
 
  //// [inheritSameNamePrivatePropertiesFromDifferentOrigins.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    return C2;
--}());
-+class C {
+ class C {
 +    x;
-+}
-+class C2 {
+ }
+ class C2 {
 +    x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritSameNamePrivatePropertiesFromSameOrigin.js.diff b/testdata/baselines/reference/submodule/compiler/inheritSameNamePrivatePropertiesFromSameOrigin.js.diff
index fc9b0f0475..a4bcd08fe6 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritSameNamePrivatePropertiesFromSameOrigin.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritSameNamePrivatePropertiesFromSameOrigin.js.diff
@@ -1,47 +1,10 @@
 --- old.inheritSameNamePrivatePropertiesFromSameOrigin.js
 +++ new.inheritSameNamePrivatePropertiesFromSameOrigin.js
-@@= skipped -12, +12 lines =@@
- }
+@@= skipped -13, +13 lines =@@
 
  //// [inheritSameNamePrivatePropertiesFromSameOrigin.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var B = /** @class */ (function () {
--    function B() {
--    }
--    return B;
--}());
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(B));
--var C2 = /** @class */ (function (_super) {
--    __extends(C2, _super);
--    function C2() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C2;
--}(B));
-+class B {
+ class B {
 +    x;
-+}
-+class C extends B {
-+}
-+class C2 extends B {
-+}
\ No newline at end of file
+ }
+ class C extends B {
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritSameNamePropertiesWithDifferentVisibility.js.diff b/testdata/baselines/reference/submodule/compiler/inheritSameNamePropertiesWithDifferentVisibility.js.diff
index 6411b3e46e..048b9c927e 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritSameNamePropertiesWithDifferentVisibility.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritSameNamePropertiesWithDifferentVisibility.js.diff
@@ -1,22 +1,11 @@
 --- old.inheritSameNamePropertiesWithDifferentVisibility.js
 +++ new.inheritSameNamePropertiesWithDifferentVisibility.js
-@@= skipped -13, +13 lines =@@
- }
+@@= skipped -14, +14 lines =@@
 
  //// [inheritSameNamePropertiesWithDifferentVisibility.js]
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    return C2;
--}());
-+class C {
+ class C {
 +    x;
-+}
-+class C2 {
+ }
+ class C2 {
 +    x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritance.js.diff b/testdata/baselines/reference/submodule/compiler/inheritance.js.diff
index e657223681..2fcf118ba6 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritance.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritance.js.diff
@@ -1,97 +1,29 @@
 --- old.inheritance.js
 +++ new.inheritance.js
-@@= skipped -36, +36 lines =@@
-
+@@= skipped -37, +37 lines =@@
 
  //// [inheritance.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var B1 = /** @class */ (function () {
--    function B1() {
--    }
--    return B1;
--}());
--var B2 = /** @class */ (function () {
--    function B2() {
--    }
--    return B2;
--}());
--var D1 = /** @class */ (function (_super) {
--    __extends(D1, _super);
--    function D1() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return D1;
--}(B1));
--var D2 = /** @class */ (function (_super) {
--    __extends(D2, _super);
--    function D2() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return D2;
--}(B2));
--var N = /** @class */ (function () {
--    function N() {
--    }
--    return N;
--}());
--var ND = /** @class */ (function (_super) {
--    __extends(ND, _super);
--    function ND() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return ND;
--}(N));
--var Good = /** @class */ (function () {
--    function Good() {
--        this.f = function () { return 0; };
--    }
--    Good.prototype.g = function () { return 0; };
--    return Good;
--}());
--var Baad = /** @class */ (function (_super) {
--    __extends(Baad, _super);
--    function Baad() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Baad.prototype.f = function () { return 0; };
--    Baad.prototype.g = function (n) { return 0; };
--    return Baad;
--}(Good));
-+class B1 {
+ class B1 {
 +    x;
-+}
-+class B2 {
+ }
+ class B2 {
 +    x;
-+}
-+class D1 extends B1 {
-+}
-+class D2 extends B2 {
-+}
-+class N {
+ }
+ class D1 extends B1 {
+ }
+ class D2 extends B2 {
+ }
+ class N {
 +    y;
-+}
-+class ND extends N {
+ }
+ class ND extends N {
 +    y;
-+}
-+class Good {
+ }
+ class Good {
+-    constructor() {
+-        this.f = function () { return 0; };
+-    }
 +    f = function () { return 0; };
-+    g() { return 0; }
-+}
-+class Baad extends Good {
-+    f() { return 0; }
-+    g(n) { return 0; }
-+}
\ No newline at end of file
+     g() { return 0; }
+ }
+ class Baad extends Good {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritance1.js.diff b/testdata/baselines/reference/submodule/compiler/inheritance1.js.diff
index eaaec4c856..4f41828894 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritance1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritance1.js.diff
@@ -1,90 +1,10 @@
 --- old.inheritance1.js
 +++ new.inheritance1.js
-@@= skipped -63, +63 lines =@@
- l1 = c;
+@@= skipped -64, +64 lines =@@
 
  //// [inheritance1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Control = /** @class */ (function () {
--    function Control() {
--    }
--    return Control;
--}());
--var Button = /** @class */ (function (_super) {
--    __extends(Button, _super);
--    function Button() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Button.prototype.select = function () { };
--    return Button;
--}(Control));
--var TextBox = /** @class */ (function (_super) {
--    __extends(TextBox, _super);
--    function TextBox() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    TextBox.prototype.select = function () { };
--    return TextBox;
--}(Control));
--var ImageBase = /** @class */ (function (_super) {
--    __extends(ImageBase, _super);
--    function ImageBase() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return ImageBase;
--}(Control));
--var Image1 = /** @class */ (function (_super) {
--    __extends(Image1, _super);
--    function Image1() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Image1;
--}(Control));
--var Locations = /** @class */ (function () {
--    function Locations() {
--    }
--    Locations.prototype.select = function () { };
--    return Locations;
--}());
--var Locations1 = /** @class */ (function () {
--    function Locations1() {
--    }
--    Locations1.prototype.select = function () { };
--    return Locations1;
--}());
-+class Control {
+ class Control {
 +    state;
-+}
-+class Button extends Control {
-+    select() { }
-+}
-+class TextBox extends Control {
-+    select() { }
-+}
-+class ImageBase extends Control {
-+}
-+class Image1 extends Control {
-+}
-+class Locations {
-+    select() { }
-+}
-+class Locations1 {
-+    select() { }
-+}
- var sc;
- var c;
- var b;
\ No newline at end of file
+ }
+ class Button extends Control {
+     select() { }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceGrandParentPrivateMemberCollision.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceGrandParentPrivateMemberCollision.js.diff
deleted file mode 100644
index 0538af104c..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceGrandParentPrivateMemberCollision.js.diff
+++ /dev/null
@@ -1,50 +0,0 @@
---- old.inheritanceGrandParentPrivateMemberCollision.js
-+++ new.inheritanceGrandParentPrivateMemberCollision.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [inheritanceGrandParentPrivateMemberCollision.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.myMethod = function () { };
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    C.prototype.myMethod = function () { };
--    return C;
--}(B));
-+class A {
-+    myMethod() { }
-+}
-+class B extends A {
-+}
-+class C extends B {
-+    myMethod() { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceGrandParentPrivateMemberCollisionWithPublicMember.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceGrandParentPrivateMemberCollisionWithPublicMember.js.diff
deleted file mode 100644
index 427995b3f0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceGrandParentPrivateMemberCollisionWithPublicMember.js.diff
+++ /dev/null
@@ -1,50 +0,0 @@
---- old.inheritanceGrandParentPrivateMemberCollisionWithPublicMember.js
-+++ new.inheritanceGrandParentPrivateMemberCollisionWithPublicMember.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [inheritanceGrandParentPrivateMemberCollisionWithPublicMember.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.myMethod = function () { };
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    C.prototype.myMethod = function () { };
--    return C;
--}(B));
-+class A {
-+    myMethod() { }
-+}
-+class B extends A {
-+}
-+class C extends B {
-+    myMethod() { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceGrandParentPublicMemberCollisionWithPrivateMember.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceGrandParentPublicMemberCollisionWithPrivateMember.js.diff
deleted file mode 100644
index e688487920..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceGrandParentPublicMemberCollisionWithPrivateMember.js.diff
+++ /dev/null
@@ -1,50 +0,0 @@
---- old.inheritanceGrandParentPublicMemberCollisionWithPrivateMember.js
-+++ new.inheritanceGrandParentPublicMemberCollisionWithPrivateMember.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [inheritanceGrandParentPublicMemberCollisionWithPrivateMember.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.myMethod = function () { };
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    C.prototype.myMethod = function () { };
--    return C;
--}(B));
-+class A {
-+    myMethod() { }
-+}
-+class B extends A {
-+}
-+class C extends B {
-+    myMethod() { }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceMemberAccessorOverridingAccessor.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceMemberAccessorOverridingAccessor.js.diff
deleted file mode 100644
index 160c2e31c8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceMemberAccessorOverridingAccessor.js.diff
+++ /dev/null
@@ -1,65 +0,0 @@
---- old.inheritanceMemberAccessorOverridingAccessor.js
-+++ new.inheritanceMemberAccessorOverridingAccessor.js
-@@= skipped -19, +19 lines =@@
- }
-
- //// [inheritanceMemberAccessorOverridingAccessor.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    Object.defineProperty(a.prototype, "x", {
--        get: function () {
--            return "20";
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Object.defineProperty(b.prototype, "x", {
--        get: function () {
--            return "20";
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return b;
--}(a));
-+class a {
-+    get x() {
-+        return "20";
-+    }
-+    set x(aValue) {
-+    }
-+}
-+class b extends a {
-+    get x() {
-+        return "20";
-+    }
-+    set x(aValue) {
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceMemberAccessorOverridingMethod.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceMemberAccessorOverridingMethod.js.diff
deleted file mode 100644
index 1723ea3252..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceMemberAccessorOverridingMethod.js.diff
+++ /dev/null
@@ -1,56 +0,0 @@
---- old.inheritanceMemberAccessorOverridingMethod.js
-+++ new.inheritanceMemberAccessorOverridingMethod.js
-@@= skipped -16, +16 lines =@@
- }
-
- //// [inheritanceMemberAccessorOverridingMethod.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    a.prototype.x = function () {
-+class a {
-+    x() {
-         return "20";
--    };
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Object.defineProperty(b.prototype, "x", {
--        get: function () {
--            return function () { return "20"; };
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return b;
--}(a));
-+    }
-+}
-+class b extends a {
-+    get x() {
-+        return () => "20";
-+    }
-+    set x(aValue) {
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceMemberAccessorOverridingProperty.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceMemberAccessorOverridingProperty.js.diff
index f10313bcb3..72082ed696 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceMemberAccessorOverridingProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceMemberAccessorOverridingProperty.js.diff
@@ -1,52 +1,10 @@
 --- old.inheritanceMemberAccessorOverridingProperty.js
 +++ new.inheritanceMemberAccessorOverridingProperty.js
-@@= skipped -14, +14 lines =@@
- }
+@@= skipped -15, +15 lines =@@
 
  //// [inheritanceMemberAccessorOverridingProperty.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Object.defineProperty(b.prototype, "x", {
--        get: function () {
--            return "20";
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return b;
--}(a));
-+class a {
+ class a {
 +    x;
-+}
-+class b extends a {
-+    get x() {
-+        return "20";
-+    }
-+    set x(aValue) {
-+    }
-+}
\ No newline at end of file
+ }
+ class b extends a {
+     get x() {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceMemberFuncOverridingAccessor.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceMemberFuncOverridingAccessor.js.diff
deleted file mode 100644
index 5a20044b63..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceMemberFuncOverridingAccessor.js.diff
+++ /dev/null
@@ -1,57 +0,0 @@
---- old.inheritanceMemberFuncOverridingAccessor.js
-+++ new.inheritanceMemberFuncOverridingAccessor.js
-@@= skipped -16, +16 lines =@@
- }
-
- //// [inheritanceMemberFuncOverridingAccessor.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    Object.defineProperty(a.prototype, "x", {
--        get: function () {
--            return "20";
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    b.prototype.x = function () {
--        return "20";
--    };
--    return b;
--}(a));
-+class a {
-+    get x() {
-+        return "20";
-+    }
-+    set x(aValue) {
-+    }
-+}
-+class b extends a {
-+    x() {
-+        return "20";
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceMemberFuncOverridingMethod.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceMemberFuncOverridingMethod.js.diff
deleted file mode 100644
index 9e656c8345..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceMemberFuncOverridingMethod.js.diff
+++ /dev/null
@@ -1,46 +0,0 @@
---- old.inheritanceMemberFuncOverridingMethod.js
-+++ new.inheritanceMemberFuncOverridingMethod.js
-@@= skipped -13, +13 lines =@@
- }
-
- //// [inheritanceMemberFuncOverridingMethod.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    a.prototype.x = function () {
-+class a {
-+    x() {
-         return "10";
--    };
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
-     }
--    b.prototype.x = function () {
-+}
-+class b extends a {
-+    x() {
-         return "20";
--    };
--    return b;
--}(a));
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceMemberFuncOverridingProperty.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceMemberFuncOverridingProperty.js.diff
index 902f861557..75445c5242 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceMemberFuncOverridingProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceMemberFuncOverridingProperty.js.diff
@@ -1,43 +1,10 @@
 --- old.inheritanceMemberFuncOverridingProperty.js
 +++ new.inheritanceMemberFuncOverridingProperty.js
-@@= skipped -11, +11 lines =@@
- }
+@@= skipped -12, +12 lines =@@
 
  //// [inheritanceMemberFuncOverridingProperty.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    b.prototype.x = function () {
-+class a {
+ class a {
 +    x;
-+}
-+class b extends a {
-+    x() {
-         return "20";
--    };
--    return b;
--}(a));
-+    }
-+}
\ No newline at end of file
+ }
+ class b extends a {
+     x() {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingAccessor.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingAccessor.js.diff
index 274aa5eadb..2c31dbe4d9 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingAccessor.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingAccessor.js.diff
@@ -1,55 +1,16 @@
 --- old.inheritanceMemberPropertyOverridingAccessor.js
 +++ new.inheritanceMemberPropertyOverridingAccessor.js
-@@= skipped -15, +15 lines =@@
- }
+@@= skipped -16, +16 lines =@@
 
  //// [inheritanceMemberPropertyOverridingAccessor.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    Object.defineProperty(a.prototype, "x", {
--        get: function () {
--            return this.__x;
--        },
--        set: function (aValue) {
--            this.__x = aValue;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return b;
--}(a));
-+class a {
+ class a {
 +    __x;
-+    get x() {
-+        return this.__x;
-+    }
-+    set x(aValue) {
-+        this.__x = aValue;
-+    }
-+}
-+class b extends a {
+     get x() {
+         return this.__x;
+     }
+@@= skipped -8, +9 lines =@@
+     }
+ }
+ class b extends a {
 +    x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingMethod.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingMethod.js.diff
index 6d543e82f1..dc2d8f8274 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingMethod.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingMethod.js.diff
@@ -1,42 +1,8 @@
 --- old.inheritanceMemberPropertyOverridingMethod.js
 +++ new.inheritanceMemberPropertyOverridingMethod.js
-@@= skipped -11, +11 lines =@@
- }
-
- //// [inheritanceMemberPropertyOverridingMethod.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    a.prototype.x = function () {
-+class a {
-+    x() {
-         return "20";
--    };
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
+@@= skipped -17, +17 lines =@@
      }
--    return b;
--}(a));
-+}
-+class b extends a {
+ }
+ class b extends a {
 +    x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingProperty.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingProperty.js.diff
index 6c68252996..daf9cca6b4 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceMemberPropertyOverridingProperty.js.diff
@@ -1,39 +1,11 @@
 --- old.inheritanceMemberPropertyOverridingProperty.js
 +++ new.inheritanceMemberPropertyOverridingProperty.js
-@@= skipped -9, +9 lines =@@
- }
+@@= skipped -10, +10 lines =@@
 
  //// [inheritanceMemberPropertyOverridingProperty.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return b;
--}(a));
-+class a {
+ class a {
 +    x;
-+}
-+class b extends a {
+ }
+ class b extends a {
 +    x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceOfGenericConstructorMethod1.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceOfGenericConstructorMethod1.js.diff
deleted file mode 100644
index dd0355721f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceOfGenericConstructorMethod1.js.diff
+++ /dev/null
@@ -1,40 +0,0 @@
---- old.inheritanceOfGenericConstructorMethod1.js
-+++ new.inheritanceOfGenericConstructorMethod1.js
-@@= skipped -9, +9 lines =@@
-
-
- //// [inheritanceOfGenericConstructorMethod1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class A {
-+}
-+class B extends A {
-+}
- var a = new A();
- var b1 = new B(); // no error
- var b2 = new B(); // no error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceOfGenericConstructorMethod2.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceOfGenericConstructorMethod2.js.diff
deleted file mode 100644
index af103e228a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceOfGenericConstructorMethod2.js.diff
+++ /dev/null
@@ -1,64 +0,0 @@
---- old.inheritanceOfGenericConstructorMethod2.js
-+++ new.inheritanceOfGenericConstructorMethod2.js
-@@= skipped -16, +16 lines =@@
-
-
- //// [inheritanceOfGenericConstructorMethod2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
- var M;
- (function (M) {
--    var C1 = /** @class */ (function () {
--        function C1() {
--        }
--        return C1;
--    }());
-+    class C1 {
-+    }
-     M.C1 = C1;
--    var C2 = /** @class */ (function () {
--        function C2() {
--        }
--        return C2;
--    }());
-+    class C2 {
-+    }
-     M.C2 = C2;
- })(M || (M = {}));
- var N;
- (function (N) {
--    var D1 = /** @class */ (function (_super) {
--        __extends(D1, _super);
--        function D1() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return D1;
--    }(M.C1));
-+    class D1 extends M.C1 {
-+    }
-     N.D1 = D1;
--    var D2 = /** @class */ (function (_super) {
--        __extends(D2, _super);
--        function D2() {
--            return _super !== null && _super.apply(this, arguments) || this;
--        }
--        return D2;
--    }(M.C2));
-+    class D2 extends M.C2 {
-+    }
-     N.D2 = D2;
- })(N || (N = {}));
- var c = new M.C2(); // no error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticAccessorOverridingAccessor.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticAccessorOverridingAccessor.js.diff
deleted file mode 100644
index c0b2470318..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticAccessorOverridingAccessor.js.diff
+++ /dev/null
@@ -1,65 +0,0 @@
---- old.inheritanceStaticAccessorOverridingAccessor.js
-+++ new.inheritanceStaticAccessorOverridingAccessor.js
-@@= skipped -19, +19 lines =@@
- }
-
- //// [inheritanceStaticAccessorOverridingAccessor.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    Object.defineProperty(a, "x", {
--        get: function () {
--            return "20";
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Object.defineProperty(b, "x", {
--        get: function () {
--            return "20";
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return b;
--}(a));
-+class a {
-+    static get x() {
-+        return "20";
-+    }
-+    static set x(aValue) {
-+    }
-+}
-+class b extends a {
-+    static get x() {
-+        return "20";
-+    }
-+    static set x(aValue) {
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticAccessorOverridingMethod.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticAccessorOverridingMethod.js.diff
deleted file mode 100644
index d7c82a1cd5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticAccessorOverridingMethod.js.diff
+++ /dev/null
@@ -1,57 +0,0 @@
---- old.inheritanceStaticAccessorOverridingMethod.js
-+++ new.inheritanceStaticAccessorOverridingMethod.js
-@@= skipped -16, +16 lines =@@
- }
-
- //// [inheritanceStaticAccessorOverridingMethod.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    a.x = function () {
--        return "20";
--    };
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Object.defineProperty(b, "x", {
--        get: function () {
--            return "20";
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return b;
--}(a));
-+class a {
-+    static x() {
-+        return "20";
-+    }
-+}
-+class b extends a {
-+    static get x() {
-+        return "20";
-+    }
-+    static set x(aValue) {
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticAccessorOverridingProperty.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticAccessorOverridingProperty.js.diff
index 8c70aca2dc..cf2ed2a431 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticAccessorOverridingProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceStaticAccessorOverridingProperty.js.diff
@@ -1,52 +1,10 @@
 --- old.inheritanceStaticAccessorOverridingProperty.js
 +++ new.inheritanceStaticAccessorOverridingProperty.js
-@@= skipped -14, +14 lines =@@
- }
+@@= skipped -15, +15 lines =@@
 
  //// [inheritanceStaticAccessorOverridingProperty.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Object.defineProperty(b, "x", {
--        get: function () {
--            return "20";
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return b;
--}(a));
-+class a {
+ class a {
 +    static x;
-+}
-+class b extends a {
-+    static get x() {
-+        return "20";
-+    }
-+    static set x(aValue) {
-+    }
-+}
\ No newline at end of file
+ }
+ class b extends a {
+     static get x() {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingAccessor.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingAccessor.js.diff
deleted file mode 100644
index 008c54f6eb..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingAccessor.js.diff
+++ /dev/null
@@ -1,57 +0,0 @@
---- old.inheritanceStaticFuncOverridingAccessor.js
-+++ new.inheritanceStaticFuncOverridingAccessor.js
-@@= skipped -16, +16 lines =@@
- }
-
- //// [inheritanceStaticFuncOverridingAccessor.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    Object.defineProperty(a, "x", {
--        get: function () {
--            return "20";
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    b.x = function () {
--        return "20";
--    };
--    return b;
--}(a));
-+class a {
-+    static get x() {
-+        return "20";
-+    }
-+    static set x(aValue) {
-+    }
-+}
-+class b extends a {
-+    static x() {
-+        return "20";
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingAccessorOfFuncType.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingAccessorOfFuncType.js.diff
deleted file mode 100644
index e30ceb7af9..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingAccessorOfFuncType.js.diff
+++ /dev/null
@@ -1,52 +0,0 @@
---- old.inheritanceStaticFuncOverridingAccessorOfFuncType.js
-+++ new.inheritanceStaticFuncOverridingAccessorOfFuncType.js
-@@= skipped -13, +13 lines =@@
- }
-
- //// [inheritanceStaticFuncOverridingAccessorOfFuncType.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    Object.defineProperty(a, "x", {
--        get: function () {
--            return null;
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    b.x = function () {
-+class a {
-+    static get x() {
-+        return null;
-+    }
-+}
-+class b extends a {
-+    static x() {
-         return "20";
--    };
--    return b;
--}(a));
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingMethod.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingMethod.js.diff
deleted file mode 100644
index 3235ea3e2b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingMethod.js.diff
+++ /dev/null
@@ -1,46 +0,0 @@
---- old.inheritanceStaticFuncOverridingMethod.js
-+++ new.inheritanceStaticFuncOverridingMethod.js
-@@= skipped -13, +13 lines =@@
- }
-
- //// [inheritanceStaticFuncOverridingMethod.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    a.x = function () {
-+class a {
-+    static x() {
-         return "10";
--    };
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
-     }
--    b.x = function () {
-+}
-+class b extends a {
-+    static x() {
-         return "20";
--    };
--    return b;
--}(a));
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingProperty.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingProperty.js.diff
index b8285f93e9..ff982b1966 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingProperty.js.diff
@@ -1,43 +1,10 @@
 --- old.inheritanceStaticFuncOverridingProperty.js
 +++ new.inheritanceStaticFuncOverridingProperty.js
-@@= skipped -11, +11 lines =@@
- }
+@@= skipped -12, +12 lines =@@
 
  //// [inheritanceStaticFuncOverridingProperty.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    b.x = function () {
-+class a {
+ class a {
 +    static x;
-+}
-+class b extends a {
-+    static x() {
-         return "20";
--    };
--    return b;
--}(a));
-+    }
-+}
\ No newline at end of file
+ }
+ class b extends a {
+     static x() {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingPropertyOfFuncType.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingPropertyOfFuncType.js.diff
index 1f74a80783..ab3dc65636 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingPropertyOfFuncType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceStaticFuncOverridingPropertyOfFuncType.js.diff
@@ -1,43 +1,10 @@
 --- old.inheritanceStaticFuncOverridingPropertyOfFuncType.js
 +++ new.inheritanceStaticFuncOverridingPropertyOfFuncType.js
-@@= skipped -11, +11 lines =@@
- }
+@@= skipped -12, +12 lines =@@
 
  //// [inheritanceStaticFuncOverridingPropertyOfFuncType.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    b.x = function () {
-+class a {
+ class a {
 +    static x;
-+}
-+class b extends a {
-+    static x() {
-         return "20";
--    };
--    return b;
--}(a));
-+    }
-+}
\ No newline at end of file
+ }
+ class b extends a {
+     static x() {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFunctionOverridingInstanceProperty.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticFunctionOverridingInstanceProperty.js.diff
index acc8a8911c..9477742dc4 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticFunctionOverridingInstanceProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceStaticFunctionOverridingInstanceProperty.js.diff
@@ -1,43 +1,10 @@
 --- old.inheritanceStaticFunctionOverridingInstanceProperty.js
 +++ new.inheritanceStaticFunctionOverridingInstanceProperty.js
-@@= skipped -11, +11 lines =@@
- }
+@@= skipped -12, +12 lines =@@
 
  //// [inheritanceStaticFunctionOverridingInstanceProperty.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    b.x = function () {
-+class a {
+ class a {
 +    x;
-+}
-+class b extends a {
-+    static x() {
-         return new b().x;
--    };
--    return b;
--}(a));
-+    }
-+}
\ No newline at end of file
+ }
+ class b extends a {
+     static x() {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticMembersCompatible.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticMembersCompatible.js.diff
index 3269ccef32..d1d9f489fc 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticMembersCompatible.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceStaticMembersCompatible.js.diff
@@ -1,39 +1,11 @@
 --- old.inheritanceStaticMembersCompatible.js
 +++ new.inheritanceStaticMembersCompatible.js
-@@= skipped -9, +9 lines =@@
- }
+@@= skipped -10, +10 lines =@@
 
  //// [inheritanceStaticMembersCompatible.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return b;
--}(a));
-+class a {
+ class a {
 +    static x;
-+}
-+class b extends a {
+ }
+ class b extends a {
 +    static x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticMembersIncompatible.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticMembersIncompatible.js.diff
index 8767e779f8..433c2c04ae 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticMembersIncompatible.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceStaticMembersIncompatible.js.diff
@@ -1,39 +1,11 @@
 --- old.inheritanceStaticMembersIncompatible.js
 +++ new.inheritanceStaticMembersIncompatible.js
-@@= skipped -9, +9 lines =@@
- }
+@@= skipped -10, +10 lines =@@
 
  //// [inheritanceStaticMembersIncompatible.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return b;
--}(a));
-+class a {
+ class a {
 +    static x;
-+}
-+class b extends a {
+ }
+ class b extends a {
 +    static x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingAccessor.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingAccessor.js.diff
index afcfc565bd..24e8d15fcf 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingAccessor.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingAccessor.js.diff
@@ -1,54 +1,8 @@
 --- old.inheritanceStaticPropertyOverridingAccessor.js
 +++ new.inheritanceStaticPropertyOverridingAccessor.js
-@@= skipped -13, +13 lines =@@
+@@= skipped -22, +22 lines =@@
+     }
  }
-
- //// [inheritanceStaticPropertyOverridingAccessor.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    Object.defineProperty(a, "x", {
--        get: function () {
--            return null;
--            ;
--        },
--        set: function (aValue) {
--        },
--        enumerable: false,
--        configurable: true
--    });
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return b;
--}(a));
-+class a {
-+    static get x() {
-+        return null;
-+        ;
-+    }
-+    static set x(aValue) {
-+    }
-+}
-+class b extends a {
+ class b extends a {
 +    static x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingMethod.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingMethod.js.diff
index 41c881ba35..8c9b4b2722 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingMethod.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingMethod.js.diff
@@ -1,42 +1,8 @@
 --- old.inheritanceStaticPropertyOverridingMethod.js
 +++ new.inheritanceStaticPropertyOverridingMethod.js
-@@= skipped -11, +11 lines =@@
- }
-
- //// [inheritanceStaticPropertyOverridingMethod.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    a.x = function () {
-+class a {
-+    static x() {
-         return "20";
--    };
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
+@@= skipped -17, +17 lines =@@
      }
--    return b;
--}(a));
-+}
-+class b extends a {
+ }
+ class b extends a {
 +    static x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingProperty.js.diff b/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingProperty.js.diff
index 0b42232ad8..bea5240e93 100644
--- a/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingProperty.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inheritanceStaticPropertyOverridingProperty.js.diff
@@ -1,39 +1,11 @@
 --- old.inheritanceStaticPropertyOverridingProperty.js
 +++ new.inheritanceStaticPropertyOverridingProperty.js
-@@= skipped -9, +9 lines =@@
- }
+@@= skipped -10, +10 lines =@@
 
  //// [inheritanceStaticPropertyOverridingProperty.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var a = /** @class */ (function () {
--    function a() {
--    }
--    return a;
--}());
--var b = /** @class */ (function (_super) {
--    __extends(b, _super);
--    function b() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return b;
--}(a));
-+class a {
+ class a {
 +    static x;
-+}
-+class b extends a {
+ }
+ class b extends a {
 +    static x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritedConstructorPropertyContextualType.js.diff b/testdata/baselines/reference/submodule/compiler/inheritedConstructorPropertyContextualType.js.diff
deleted file mode 100644
index d0218bffdc..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritedConstructorPropertyContextualType.js.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- old.inheritedConstructorPropertyContextualType.js
-+++ new.inheritedConstructorPropertyContextualType.js
-@@= skipped -14, +14 lines =@@
- }
-
- //// [inheritedConstructorPropertyContextualType.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Assignment = /** @class */ (function (_super) {
--    __extends(Assignment, _super);
--    function Assignment() {
--        var _this = _super.call(this) || this;
--        _this.state = { version: 2 };
--        return _this;
-+class Assignment extends Base {
-+    constructor() {
-+        super();
-+        this.state = { version: 2 };
-     }
--    return Assignment;
--}(Base));
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritedConstructorWithRestParams.js.diff b/testdata/baselines/reference/submodule/compiler/inheritedConstructorWithRestParams.js.diff
deleted file mode 100644
index b924d7854d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritedConstructorWithRestParams.js.diff
+++ /dev/null
@@ -1,45 +0,0 @@
---- old.inheritedConstructorWithRestParams.js
-+++ new.inheritedConstructorWithRestParams.js
-@@= skipped -16, +16 lines =@@
- new Derived(3);
-
- //// [inheritedConstructorWithRestParams.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Base = /** @class */ (function () {
--    function Base() {
--        var a = [];
--        for (var _i = 0; _i < arguments.length; _i++) {
--            a[_i] = arguments[_i];
--        }
--    }
--    return Base;
--}());
--var Derived = /** @class */ (function (_super) {
--    __extends(Derived, _super);
--    function Derived() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Derived;
--}(Base));
-+class Base {
-+    constructor(...a) { }
-+}
-+class Derived extends Base {
-+}
- // Ok
- new Derived("", "");
- new Derived("");
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritedConstructorWithRestParams2.js.diff b/testdata/baselines/reference/submodule/compiler/inheritedConstructorWithRestParams2.js.diff
deleted file mode 100644
index d0af2600c8..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritedConstructorWithRestParams2.js.diff
+++ /dev/null
@@ -1,58 +0,0 @@
---- old.inheritedConstructorWithRestParams2.js
-+++ new.inheritedConstructorWithRestParams2.js
-@@= skipped -36, +36 lines =@@
- new Derived("", 3, "", "");
-
- //// [inheritedConstructorWithRestParams2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var IBaseBase = /** @class */ (function () {
--    function IBaseBase(x) {
--    }
--    return IBaseBase;
--}());
--var BaseBase2 = /** @class */ (function () {
--    function BaseBase2(x) {
--    }
--    return BaseBase2;
--}());
--var Base = /** @class */ (function (_super) {
--    __extends(Base, _super);
--    function Base() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Base;
--}(BaseBase));
--var Derived = /** @class */ (function (_super) {
--    __extends(Derived, _super);
--    function Derived() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Derived;
--}(Base));
-+class IBaseBase {
-+    constructor(x) { }
-+}
-+class BaseBase2 {
-+    constructor(x) { }
-+}
-+class Base extends BaseBase {
-+}
-+class Derived extends Base {
-+}
- // Ok
- new Derived("", "");
- new Derived("", 3);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritedFunctionAssignmentCompatibility.js.diff b/testdata/baselines/reference/submodule/compiler/inheritedFunctionAssignmentCompatibility.js.diff
deleted file mode 100644
index 1731979d16..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritedFunctionAssignmentCompatibility.js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.inheritedFunctionAssignmentCompatibility.js
-+++ new.inheritedFunctionAssignmentCompatibility.js
-@@= skipped -11, +11 lines =@@
-
- //// [inheritedFunctionAssignmentCompatibility.js]
- function fn(cb) { }
--fn(function (a, b) { return true; });
-+fn((a, b) => true);
- fn(function (a, b) { return true; });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inheritedModuleMembersForClodule.js.diff b/testdata/baselines/reference/submodule/compiler/inheritedModuleMembersForClodule.js.diff
deleted file mode 100644
index f1287cfab7..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inheritedModuleMembersForClodule.js.diff
+++ /dev/null
@@ -1,62 +0,0 @@
---- old.inheritedModuleMembersForClodule.js
-+++ new.inheritedModuleMembersForClodule.js
-@@= skipped -23, +23 lines =@@
-
-
- //// [inheritedModuleMembersForClodule.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C() {
--    }
--    C.foo = function () {
-+class C {
-+    static foo() {
-         return "123";
--    };
--    return C;
--}());
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        return _super !== null && _super.apply(this, arguments) || this;
-     }
--    return D;
--}(C));
-+}
-+class D extends C {
-+}
- (function (D) {
-     function foo() {
-         return 0;
-@@= skipped -37, +14 lines =@@
-     D.foo = foo;
-     ;
- })(D || (D = {}));
--var E = /** @class */ (function (_super) {
--    __extends(E, _super);
--    function E() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    E.bar = function () {
-+class E extends D {
-+    static bar() {
-         return this.foo();
--    };
--    return E;
--}(D));
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/initializePropertiesWithRenamedLet.js.diff b/testdata/baselines/reference/submodule/compiler/initializePropertiesWithRenamedLet.js.diff
deleted file mode 100644
index ba6716b1f0..0000000000
--- a/testdata/baselines/reference/submodule/compiler/initializePropertiesWithRenamedLet.js.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- old.initializePropertiesWithRenamedLet.js
-+++ new.initializePropertiesWithRenamedLet.js
-@@= skipped -19, +19 lines =@@
- //// [initializePropertiesWithRenamedLet.js]
- var x0;
- if (true) {
--    var x0_1;
--    var obj1 = { x0: x0_1 };
--    var obj2 = { x0: x0_1 };
-+    let x0;
-+    var obj1 = { x0: x0 };
-+    var obj2 = { x0 };
- }
- var x, y, z;
- if (true) {
--    var x_1 = { x: 0 }.x;
--    var y_1 = { y: 0 }.y;
--    var z_1;
--    (z_1 = { z: 0 }.z);
--    (z_1 = { z: 0 }.z);
-+    let { x: x } = { x: 0 };
-+    let { y } = { y: 0 };
-+    let z;
-+    ({ z: z } = { z: 0 });
-+    ({ z } = { z: 0 });
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/initializedDestructuringAssignmentTypes.js.diff b/testdata/baselines/reference/submodule/compiler/initializedDestructuringAssignmentTypes.js.diff
deleted file mode 100644
index e172a295f4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/initializedDestructuringAssignmentTypes.js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.initializedDestructuringAssignmentTypes.js
-+++ new.initializedDestructuringAssignmentTypes.js
-@@= skipped -5, +5 lines =@@
- a.toFixed()
-
- //// [initializedDestructuringAssignmentTypes.js]
--var _a = ''.match('') || [], _b = _a[1], a = _b === void 0 ? '' : _b;
-+const [, a = ''] = ''.match('') || [];
- a.toFixed();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js.diff b/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js.diff
index 9616fc1d5a..deddbe076d 100644
--- a/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/initializerWithThisPropertyAccess.js.diff
@@ -5,82 +5,47 @@
 
  //// [initializerWithThisPropertyAccess.js]
 -"use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var A = /** @class */ (function () {
--    function A() {
--        var _this = this;
--        this.b = this.a; // Error
--        this.c = function () { return _this.a; };
--        this.d = (new A()).a;
-+class A {
+ class A {
 +    a;
 +    b = this.a; // Error
 +    c = () => this.a;
 +    d = (new A()).a;
-+    constructor() {
+     constructor() {
+-        this.b = this.a; // Error
+-        this.c = () => this.a;
+-        this.d = (new A()).a;
          this.a = 1;
      }
--    return A;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        var _this = _super !== null && _super.apply(this, arguments) || this;
--        _this.x = _this.a;
--        return _this;
+ }
+ class B extends A {
+-    constructor() {
+-        super(...arguments);
+-        this.x = this.a;
 -    }
--    return B;
--}(A));
--var C = /** @class */ (function () {
--    function C() {
++    x = this.a;
+ }
+ class C {
+-    constructor() {
 -        this.b = this.a;
 -    }
--    return C;
--}());
-+}
-+class B extends A {
-+    x = this.a;
-+}
-+class C {
 +    a;
 +    b = this.a;
-+}
+ }
  // Repro from #37979
--var Foo = /** @class */ (function () {
--    function Foo() {
--        this.barProp = this.bar.prop;
-+class Foo {
+ class Foo {
 +    bar;
 +    barProp = this.bar.prop;
-+    constructor() {
+     constructor() {
+-        this.barProp = this.bar.prop;
          this.bar = new Bar();
      }
--    return Foo;
--}());
--var Bar = /** @class */ (function () {
--    function Bar() {
+ }
+ class Bar {
+-    constructor() {
 -        this.prop = false;
 -    }
--    return Bar;
--}());
-+}
-+class Bar {
 +    prop = false;
-+}
+ }
 
 
  //// [initializerWithThisPropertyAccess.d.ts]
@@ -91,7 +56,7 @@
      c: () => number;
      d: number;
      constructor();
-@@= skipped -69, +41 lines =@@
+@@= skipped -46, +41 lines =@@
      x: number;
  }
  declare class C {
diff --git a/testdata/baselines/reference/submodule/compiler/inlineConditionalHasSimilarAssignability.js.diff b/testdata/baselines/reference/submodule/compiler/inlineConditionalHasSimilarAssignability.js.diff
deleted file mode 100644
index 9d1f039fbd..0000000000
--- a/testdata/baselines/reference/submodule/compiler/inlineConditionalHasSimilarAssignability.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.inlineConditionalHasSimilarAssignability.js
-+++ new.inlineConditionalHasSimilarAssignability.js
-@@= skipped -19, +19 lines =@@
-
- //// [inlineConditionalHasSimilarAssignability.js]
- function foo(a) {
--    var b = 0;
-+    const b = 0;
-     a = b; // ok
--    var c = 0;
-+    const c = 0;
-     a = c;
--    var d = 0;
-+    const d = 0;
-     a = d; // ok
--    var e = 0;
-+    const e = 0;
-     a = e;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/inlinedAliasAssignableToConstraintSameAsAlias.js.diff b/testdata/baselines/reference/submodule/compiler/inlinedAliasAssignableToConstraintSameAsAlias.js.diff
index cbb1be99af..e8e0360474 100644
--- a/testdata/baselines/reference/submodule/compiler/inlinedAliasAssignableToConstraintSameAsAlias.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/inlinedAliasAssignableToConstraintSameAsAlias.js.diff
@@ -1,21 +1,12 @@
 --- old.inlinedAliasAssignableToConstraintSameAsAlias.js
 +++ new.inlinedAliasAssignableToConstraintSameAsAlias.js
-@@= skipped -27, +27 lines =@@
-
+@@= skipped -28, +28 lines =@@
 
  //// [inlinedAliasAssignableToConstraintSameAsAlias.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.whereRelated = function () {
-+class A {
+ class A {
 +    x;
 +    y;
 +    z;
-+    whereRelated() {
+     whereRelated() {
          return 1;
--    };
--    return A;
--}());
-+    }
-+}
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/innerAliases.js.diff b/testdata/baselines/reference/submodule/compiler/innerAliases.js.diff
deleted file mode 100644
index 207bbaab21..0000000000
--- a/testdata/baselines/reference/submodule/compiler/innerAliases.js.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- old.innerAliases.js
-+++ new.innerAliases.js
-@@= skipped -27, +27 lines =@@
- //// [innerAliases.js]
- var A;
- (function (A) {
--    var B;
-+    let B;
-     (function (B) {
--        var C;
-+        let C;
-         (function (C) {
--            var Class1 = /** @class */ (function () {
--                function Class1() {
--                }
--                return Class1;
--            }());
-+            class Class1 {
-+            }
-             C.Class1 = Class1;
-         })(C = B.C || (B.C = {}));
-     })(B = A.B || (A.B = {}));
-@@= skipped -17, +14 lines =@@
- (function (D) {
-     var inner = A.B.C;
-     var c1 = new inner.Class1();
--    var E;
-+    let E;
-     (function (E) {
--        var Class2 = /** @class */ (function () {
--            function Class2() {
--            }
--            return Class2;
--        }());
-+        class Class2 {
-+        }
-         E.Class2 = Class2;
-     })(E = D.E || (D.E = {}));
- })(D || (D = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/innerAliases2.js.diff b/testdata/baselines/reference/submodule/compiler/innerAliases2.js.diff
deleted file mode 100644
index 1ad6c22118..0000000000
--- a/testdata/baselines/reference/submodule/compiler/innerAliases2.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.innerAliases2.js
-+++ new.innerAliases2.js
-@@= skipped -23, +23 lines =@@
- //// [innerAliases2.js]
- var _provider;
- (function (_provider) {
--    var UsefulClass = /** @class */ (function () {
--        function UsefulClass() {
-+    class UsefulClass {
-+        foo() {
-         }
--        UsefulClass.prototype.foo = function () {
--        };
--        return UsefulClass;
--    }());
-+    }
-     _provider.UsefulClass = UsefulClass;
- })(_provider || (_provider = {}));
- var consumer;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/innerBoundLambdaEmit.js.diff b/testdata/baselines/reference/submodule/compiler/innerBoundLambdaEmit.js.diff
deleted file mode 100644
index ec40a381d5..0000000000
--- a/testdata/baselines/reference/submodule/compiler/innerBoundLambdaEmit.js.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- old.innerBoundLambdaEmit.js
-+++ new.innerBoundLambdaEmit.js
-@@= skipped -13, +13 lines =@@
- //// [innerBoundLambdaEmit.js]
- var M;
- (function (M) {
--    var Foo = /** @class */ (function () {
--        function Foo() {
--        }
--        return Foo;
--    }());
-+    class Foo {
-+    }
-     M.Foo = Foo;
--    var bar = function () { };
-+    var bar = () => { };
- })(M || (M = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/innerExtern.js.diff b/testdata/baselines/reference/submodule/compiler/innerExtern.js.diff
index d94824273c..98a92f1e15 100644
--- a/testdata/baselines/reference/submodule/compiler/innerExtern.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/innerExtern.js.diff
@@ -1,21 +1,13 @@
 --- old.innerExtern.js
 +++ new.innerExtern.js
-@@= skipped -17, +17 lines =@@
- //// [innerExtern.js]
- var A;
- (function (A) {
--    var B;
-+    let B;
+@@= skipped -20, +20 lines =@@
+     let B;
      (function (B) {
--        var C = /** @class */ (function () {
--            function C() {
+         class C {
+-            constructor() {
 -                this.x = BB.Elephant.X;
 -            }
--            return C;
--        }());
-+        class C {
 +            x = BB.Elephant.X;
-+        }
+         }
          B.C = C;
-     })(B = A.B || (A.B = {}));
- })(A || (A = {}));
\ No newline at end of file
+     })(B = A.B || (A.B = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/instanceAndStaticDeclarations1.js.diff b/testdata/baselines/reference/submodule/compiler/instanceAndStaticDeclarations1.js.diff
index a4570282c6..4419386572 100644
--- a/testdata/baselines/reference/submodule/compiler/instanceAndStaticDeclarations1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/instanceAndStaticDeclarations1.js.diff
@@ -4,25 +4,33 @@
 
  //// [instanceAndStaticDeclarations1.js]
  // from spec
--var Point = /** @class */ (function () {
--    function Point(x, y) {
+-let Point = (() => {
+-    class Point {
+-        constructor(x, y) {
+-            this.x = x;
+-            this.y = y;
+-        }
+-        distance(p) {
+-            var dx = this.x - p.x;
+-            var dy = this.y - p.y;
+-            return Math.sqrt(dx * dx + dy * dy);
+-        }
+-        static distance(p1, p2) { return p1.distance(p2); }
+-    }
+-    Point.origin = new Point(0, 0);
+-    return Point;
+-})();
 +class Point {
 +    x;
 +    y;
 +    constructor(x, y) {
-         this.x = x;
-         this.y = y;
-     }
--    Point.prototype.distance = function (p) {
++        this.x = x;
++        this.y = y;
++    }
 +    distance(p) {
-         var dx = this.x - p.x;
-         var dy = this.y - p.y;
-         return Math.sqrt(dx * dx + dy * dy);
--    };
--    Point.distance = function (p1, p2) { return p1.distance(p2); };
--    Point.origin = new Point(0, 0);
--    return Point;
--}());
++        var dx = this.x - p.x;
++        var dy = this.y - p.y;
++        return Math.sqrt(dx * dx + dy * dy);
 +    }
 +    static origin = new Point(0, 0);
 +    static distance(p1, p2) { return p1.distance(p2); }
diff --git a/testdata/baselines/reference/submodule/compiler/instanceOfAssignability.js.diff b/testdata/baselines/reference/submodule/compiler/instanceOfAssignability.js.diff
index acafaea1ff..a94d32431a 100644
--- a/testdata/baselines/reference/submodule/compiler/instanceOfAssignability.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/instanceOfAssignability.js.diff
@@ -1,142 +1,34 @@
 --- old.instanceOfAssignability.js
 +++ new.instanceOfAssignability.js
-@@= skipped -91, +91 lines =@@
-
-
+@@= skipped -93, +93 lines =@@
  //// [instanceOfAssignability.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  // Derived1 is assignable to, but not a subtype of, Base
--var Derived1 = /** @class */ (function () {
--    function Derived1() {
--    }
--    return Derived1;
--}());
-+class Derived1 {
+ class Derived1 {
 +    foo;
-+}
+ }
  // Derived2 is a subtype of Base that is not assignable to Derived1
--var Derived2 = /** @class */ (function () {
--    function Derived2() {
--    }
--    return Derived2;
--}());
--var Animal = /** @class */ (function () {
--    function Animal() {
--    }
--    return Animal;
--}());
--var Mammal = /** @class */ (function (_super) {
--    __extends(Mammal, _super);
--    function Mammal() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Mammal;
--}(Animal));
--var Giraffe = /** @class */ (function (_super) {
--    __extends(Giraffe, _super);
--    function Giraffe() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Giraffe;
--}(Mammal));
-+class Derived2 {
+ class Derived2 {
 +    foo;
 +    optional;
-+}
-+class Animal {
+ }
+ class Animal {
 +    move;
-+}
-+class Mammal extends Animal {
+ }
+ class Mammal extends Animal {
 +    milk;
-+}
-+class Giraffe extends Mammal {
+ }
+ class Giraffe extends Mammal {
 +    neck;
-+}
+ }
  function fn1(x) {
      if (x instanceof Array) {
-         // 1.5: y: Array|Array
-         // Want: y: Array|Array
--        var y = x;
-+        let y = x;
-     }
- }
- function fn2(x) {
-     if (x instanceof Derived1) {
-         // 1.5: y: Base
-         // Want: y: Derived1
--        var y = x;
-+        let y = x;
-     }
- }
- function fn3(x) {
-     if (x instanceof Derived2) {
-         // 1.5: y: Derived2
-         // Want: Derived2
--        var y = x;
-+        let y = x;
+@@= skipped -60, +66 lines =@@
      }
  }
- function fn4(x) {
-     if (x instanceof Derived1) {
-         // 1.5: y: {}
-         // Want: Derived1
--        var y = x;
-+        let y = x;
-     }
- }
- function fn5(x) {
-     if (x instanceof Derived2) {
-         // 1.5: y: Derived1
-         // Want: ???
--        var y = x;
-+        let y = x;
-     }
- }
- function fn6(x) {
-     if (x instanceof Giraffe) {
-         // 1.5: y: Derived1
-         // Want: ???
--        var y = x;
-+        let y = x;
-     }
- }
- function fn7(x) {
-     if (x instanceof Array) {
-         // 1.5: y: Array|Array
-         // Want: y: Array|Array
--        var y = x;
--    }
--}
--var ABC = /** @class */ (function () {
--    function ABC() {
--    }
--    return ABC;
--}());
-+        let y = x;
-+    }
-+}
-+class ABC {
+ class ABC {
 +    a;
 +    b;
 +    c;
-+}
+ }
  function fn8(x) {
-     if (x instanceof ABC) {
--        var y = x;
-+        let y = x;
-     }
- }
\ No newline at end of file
+     if (x instanceof ABC) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/instanceOfInExternalModules.js.diff b/testdata/baselines/reference/submodule/compiler/instanceOfInExternalModules.js.diff
index 1fd655ce2c..8870c65e8b 100644
--- a/testdata/baselines/reference/submodule/compiler/instanceOfInExternalModules.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/instanceOfInExternalModules.js.diff
@@ -8,11 +8,8 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.Foo = void 0;
--    var Foo = /** @class */ (function () {
--        function Foo() {
--        }
--        return Foo;
--    }());
+-    class Foo {
+-    }
 -    exports.Foo = Foo;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/instanceSubtypeCheck2.js.diff b/testdata/baselines/reference/submodule/compiler/instanceSubtypeCheck2.js.diff
index f147dcae5c..9df8b92812 100644
--- a/testdata/baselines/reference/submodule/compiler/instanceSubtypeCheck2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/instanceSubtypeCheck2.js.diff
@@ -1,39 +1,11 @@
 --- old.instanceSubtypeCheck2.js
 +++ new.instanceSubtypeCheck2.js
-@@= skipped -9, +9 lines =@@
- }
+@@= skipped -10, +10 lines =@@
 
  //// [instanceSubtypeCheck2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    return C1;
--}());
--var C2 = /** @class */ (function (_super) {
--    __extends(C2, _super);
--    function C2() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C2;
--}(C1));
-+class C1 {
+ class C1 {
 +    x;
-+}
-+class C2 extends C1 {
+ }
+ class C2 extends C1 {
 +    x;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/instanceofOperator.js.diff b/testdata/baselines/reference/submodule/compiler/instanceofOperator.js.diff
deleted file mode 100644
index 83e225b6be..0000000000
--- a/testdata/baselines/reference/submodule/compiler/instanceofOperator.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.instanceofOperator.js
-+++ new.instanceofOperator.js
-@@= skipped -32, +32 lines =@@
- // Boolean primitive type.
- var test;
- (function (test) {
--    var Object = /** @class */ (function () {
--        function Object() {
--        }
--        return Object;
--    }());
-+    class Object {
-+    }
-     var obj;
-     4 instanceof null;
-     // Error and should be error
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/instanceofWithStructurallyIdenticalTypes.js.diff b/testdata/baselines/reference/submodule/compiler/instanceofWithStructurallyIdenticalTypes.js.diff
index 24ba7e0350..512d7e39db 100644
--- a/testdata/baselines/reference/submodule/compiler/instanceofWithStructurallyIdenticalTypes.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/instanceofWithStructurallyIdenticalTypes.js.diff
@@ -1,90 +1,32 @@
 --- old.instanceofWithStructurallyIdenticalTypes.js
 +++ new.instanceofWithStructurallyIdenticalTypes.js
-@@= skipped -73, +73 lines =@@
-
+@@= skipped -74, +74 lines =@@
  //// [instanceofWithStructurallyIdenticalTypes.js]
  // Repro from #7271
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    return C1;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    return C2;
--}());
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    return C3;
--}());
-+class C1 {
+ class C1 {
 +    item;
-+}
-+class C2 {
+ }
+ class C2 {
 +    item;
-+}
-+class C3 {
+ }
+ class C3 {
 +    item;
-+}
+ }
  function foo1(x) {
      if (x instanceof C1) {
-         return x.item;
-@@= skipped -58, +37 lines =@@
-     return "error";
+@@= skipped -34, +37 lines =@@
  }
  // More tests
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
--var A1 = /** @class */ (function (_super) {
--    __extends(A1, _super);
--    function A1() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return A1;
--}(A));
--var A2 = /** @class */ (function () {
--    function A2() {
--    }
--    return A2;
--}());
--var B = /** @class */ (function (_super) {
--    __extends(B, _super);
--    function B() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return B;
--}(A));
-+class A {
+ class A {
 +    a;
-+}
-+class A1 extends A {
-+}
-+class A2 {
+ }
+ class A1 extends A {
+ }
+ class A2 {
 +    a;
-+}
-+class B extends A {
+ }
+ class B extends A {
 +    b;
-+}
+ }
  function goo(x) {
-     if (x instanceof A) {
-         x; // A
\ No newline at end of file
+     if (x instanceof A) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/instantiateContextuallyTypedGenericThis.js.diff b/testdata/baselines/reference/submodule/compiler/instantiateContextuallyTypedGenericThis.js.diff
deleted file mode 100644
index c08822ceae..0000000000
--- a/testdata/baselines/reference/submodule/compiler/instantiateContextuallyTypedGenericThis.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.instantiateContextuallyTypedGenericThis.js
-+++ new.instantiateContextuallyTypedGenericThis.js
-@@= skipped -14, +14 lines =@@
-
-
- //// [instantiateContextuallyTypedGenericThis.js]
--var $;
--var lines;
-+let $;
-+let lines;
- $.each(lines, function (dit) {
-     return dit.charAt(0) + this.charAt(1);
- });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/instantiateCrossFileMerge.js.diff b/testdata/baselines/reference/submodule/compiler/instantiateCrossFileMerge.js.diff
deleted file mode 100644
index db6a012395..0000000000
--- a/testdata/baselines/reference/submodule/compiler/instantiateCrossFileMerge.js.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- old.instantiateCrossFileMerge.js
-+++ new.instantiateCrossFileMerge.js
-@@= skipped -11, +11 lines =@@
-
- //// [first.js]
- //// [second.js]
--new P(function (r) { r('foo'); });
-+new P(r => { r('foo'); });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/instantiatedBaseTypeConstraints.js.diff b/testdata/baselines/reference/submodule/compiler/instantiatedBaseTypeConstraints.js.diff
deleted file mode 100644
index 58a95b193e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/instantiatedBaseTypeConstraints.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.instantiatedBaseTypeConstraints.js
-+++ new.instantiatedBaseTypeConstraints.js
-@@= skipped -13, +13 lines =@@
-
-
- //// [instantiatedBaseTypeConstraints.js]
--var Bar = /** @class */ (function () {
--    function Bar() {
-+class Bar {
-+    foo(bar) {
-     }
--    Bar.prototype.foo = function (bar) {
--    };
--    return Bar;
--}());
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/instantiatedReturnTypeContravariance.js.diff b/testdata/baselines/reference/submodule/compiler/instantiatedReturnTypeContravariance.js.diff
deleted file mode 100644
index ca974f316d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/instantiatedReturnTypeContravariance.js.diff
+++ /dev/null
@@ -1,49 +0,0 @@
---- old.instantiatedReturnTypeContravariance.js
-+++ new.instantiatedReturnTypeContravariance.js
-@@= skipped -32, +32 lines =@@
-
-
- //// [instantiatedReturnTypeContravariance.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var c = /** @class */ (function () {
--    function c() {
--    }
--    c.prototype.foo = function () {
--        return null;
--    };
--    return c;
--}());
--var d = /** @class */ (function (_super) {
--    __extends(d, _super);
--    function d() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    d.prototype.foo = function () {
--        return null;
--    };
--    return d;
--}(c));
-+class c {
-+    foo() {
-+        return null;
-+    }
-+}
-+class d extends c {
-+    foo() {
-+        return null;
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js.diff b/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js.diff
index 29963900f0..8d8e2f6c06 100644
--- a/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/instantiatedTypeAliasDisplay.js.diff
@@ -5,10 +5,8 @@
 
  //// [instantiatedTypeAliasDisplay.js]
 -// Repros from #12066
--var x1 = f1(); // Z
--var x2 = f2({}, {}, {}, {}); // Z<{}, string[]>
-+const x1 = f1(); // Z
-+const x2 = f2({}, {}, {}, {}); // Z<{}, string[]>
+ const x1 = f1(); // Z
+ const x2 = f2({}, {}, {}, {}); // Z<{}, string[]>
 
 
  //// [instantiatedTypeAliasDisplay.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/instantiationExpressionErrorNoCrash.js.diff b/testdata/baselines/reference/submodule/compiler/instantiationExpressionErrorNoCrash.js.diff
deleted file mode 100644
index 35895b1539..0000000000
--- a/testdata/baselines/reference/submodule/compiler/instantiationExpressionErrorNoCrash.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.instantiationExpressionErrorNoCrash.js
-+++ new.instantiationExpressionErrorNoCrash.js
-@@= skipped -21, +21 lines =@@
- //// [instantiationExpressionErrorNoCrash.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var createCacheReducer = function (queries) {
--    var queriesMap = {};
--    var initialState = {
-+const createCacheReducer = (queries) => {
-+    const queriesMap = {};
-+    const initialState = {
-         queries: queriesMap,
-     };
--    return function (state) {
--        if (state === void 0) { state = initialState; }
--        return state;
--    };
-+    return (state = initialState) => state;
- };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/intTypeCheck.js.diff b/testdata/baselines/reference/submodule/compiler/intTypeCheck.js.diff
deleted file mode 100644
index 856b9a0358..0000000000
--- a/testdata/baselines/reference/submodule/compiler/intTypeCheck.js.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- old.intTypeCheck.js
-+++ new.intTypeCheck.js
-@@= skipped -207, +207 lines =@@
- var obj87: i8 = new {};
-
- //// [intTypeCheck.js]
--var Base = /** @class */ (function () {
--    function Base() {
--    }
--    Base.prototype.foo = function () { };
--    return Base;
--}());
-+class Base {
-+    foo() { }
-+}
- var anyVar;
- //
- // Property signatures
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces0.js.diff b/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces0.js.diff
deleted file mode 100644
index 385301ce3a..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces0.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.interMixingModulesInterfaces0.js
-+++ new.interMixingModulesInterfaces0.js
-@@= skipped -19, +19 lines =@@
- //// [interMixingModulesInterfaces0.js]
- var A;
- (function (A) {
--    var B;
-+    let B;
-     (function (B) {
-         function createB() {
-             return null;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces1.js.diff b/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces1.js.diff
deleted file mode 100644
index bb907000e4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces1.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.interMixingModulesInterfaces1.js
-+++ new.interMixingModulesInterfaces1.js
-@@= skipped -19, +19 lines =@@
- //// [interMixingModulesInterfaces1.js]
- var A;
- (function (A) {
--    var B;
-+    let B;
-     (function (B) {
-         function createB() {
-             return null;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces2.js.diff b/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces2.js.diff
deleted file mode 100644
index d5fac5703f..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces2.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.interMixingModulesInterfaces2.js
-+++ new.interMixingModulesInterfaces2.js
-@@= skipped -19, +19 lines =@@
- //// [interMixingModulesInterfaces2.js]
- var A;
- (function (A) {
--    var B;
-+    let B;
-     (function (B) {
-         function createB() {
-             return null;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces3.js.diff b/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces3.js.diff
deleted file mode 100644
index 89aa6686a3..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces3.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.interMixingModulesInterfaces3.js
-+++ new.interMixingModulesInterfaces3.js
-@@= skipped -19, +19 lines =@@
- //// [interMixingModulesInterfaces3.js]
- var A;
- (function (A) {
--    var B;
-+    let B;
-     (function (B) {
-         function createB() {
-             return null;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces4.js.diff b/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces4.js.diff
deleted file mode 100644
index 0cfe3721df..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces4.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.interMixingModulesInterfaces4.js
-+++ new.interMixingModulesInterfaces4.js
-@@= skipped -19, +19 lines =@@
- //// [interMixingModulesInterfaces4.js]
- var A;
- (function (A) {
--    var B;
-+    let B;
-     (function (B) {
-         function createB() {
-             return null;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces5.js.diff b/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces5.js.diff
deleted file mode 100644
index 08c10bc425..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interMixingModulesInterfaces5.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.interMixingModulesInterfaces5.js
-+++ new.interMixingModulesInterfaces5.js
-@@= skipped -19, +19 lines =@@
- //// [interMixingModulesInterfaces5.js]
- var A;
- (function (A) {
--    var B;
-+    let B;
-     (function (B) {
-         function createB() {
-             return null;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceAssignmentCompat.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceAssignmentCompat.js.diff
deleted file mode 100644
index 6713d77a5d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interfaceAssignmentCompat.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.interfaceAssignmentCompat.js
-+++ new.interfaceAssignmentCompat.js
-@@= skipped -56, +56 lines =@@
- //// [interfaceAssignmentCompat.js]
- var M;
- (function (M) {
--    var Color;
-+    let Color;
-     (function (Color) {
-         Color[Color["Green"] = 0] = "Green";
-         Color[Color["Blue"] = 1] = "Blue";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceClassMerging.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceClassMerging.js.diff
index 00b67b2c2e..cc92fbe925 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceClassMerging.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceClassMerging.js.diff
@@ -1,50 +1,10 @@
 --- old.interfaceClassMerging.js
 +++ new.interfaceClassMerging.js
-@@= skipped -42, +42 lines =@@
-
+@@= skipped -43, +43 lines =@@
 
  //// [interfaceClassMerging.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    Foo.prototype.additionalMethod = function (a) {
-+class Foo {
+ class Foo {
 +    additionalProperty;
-+    additionalMethod(a) {
+     additionalMethod(a) {
          return this.method(0);
--    };
--    return Foo;
--}());
--var Bar = /** @class */ (function (_super) {
--    __extends(Bar, _super);
--    function Bar() {
--        return _super !== null && _super.apply(this, arguments) || this;
-     }
--    Bar.prototype.method = function (a) {
-+}
-+class Bar extends Foo {
-+    method(a) {
-         return this.optionalProperty;
--    };
--    return Bar;
--}(Foo));
-+    }
-+}
- var bar = new Bar();
- bar.method(0);
- bar.optionalMethod(1);
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceClassMerging2.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceClassMerging2.js.diff
index 78ba89e90e..0fd17b68a1 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceClassMerging2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceClassMerging2.js.diff
@@ -1,54 +1,16 @@
 --- old.interfaceClassMerging2.js
 +++ new.interfaceClassMerging2.js
-@@= skipped -38, +38 lines =@@
-
+@@= skipped -39, +39 lines =@@
 
  //// [interfaceClassMerging2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    Foo.prototype.classFooMethod = function () {
--        return this;
--    };
--    return Foo;
--}());
--var Bar = /** @class */ (function (_super) {
--    __extends(Bar, _super);
--    function Bar() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Bar.prototype.classBarMethod = function () {
--        return this;
--    };
--    return Bar;
--}(Foo));
-+class Foo {
+ class Foo {
 +    classFooProperty;
-+    classFooMethod() {
-+        return this;
-+    }
-+}
-+class Bar extends Foo {
+     classFooMethod() {
+         return this;
+     }
+ }
+ class Bar extends Foo {
 +    classBarProperty;
-+    classBarMethod() {
-+        return this;
-+    }
-+}
- var bar = new Bar();
- bar.interfaceBarMethod().interfaceFooMethod().classBarMethod().classFooMethod();
- var foo = new Foo();
\ No newline at end of file
+     classBarMethod() {
+         return this;
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceContextualType.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceContextualType.js.diff
index 2cfcfcba3a..d2d3879198 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceContextualType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceContextualType.js.diff
@@ -1,27 +1,10 @@
 --- old.interfaceContextualType.js
 +++ new.interfaceContextualType.js
-@@= skipped -25, +25 lines =@@
- //// [interfaceContextualType.js]
+@@= skipped -26, +26 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
--var Bug = /** @class */ (function () {
--    function Bug() {
--    }
--    Bug.prototype.ok = function () {
-+class Bug {
+ class Bug {
 +    values;
-+    ok() {
+     ok() {
          this.values = {};
-         this.values['comments'] = { italic: true };
--    };
--    Bug.prototype.shouldBeOK = function () {
-+    }
-+    shouldBeOK() {
-         this.values = {
-             comments: { italic: true }
-         };
--    };
--    return Bug;
--}());
-+    }
-+}
\ No newline at end of file
+         this.values['comments'] = { italic: true };
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceDeclaration1.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceDeclaration1.js.diff
deleted file mode 100644
index efb9cf36dc..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interfaceDeclaration1.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.interfaceDeclaration1.js
-+++ new.interfaceDeclaration1.js
-@@= skipped -57, +57 lines =@@
- //// [interfaceDeclaration1.js]
- var v1;
- v1();
--var C1 = /** @class */ (function () {
--    function C1() {
-+class C1 {
-+    constructor() {
-         var prototype = 3;
-     }
--    return C1;
--}());
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceDeclaration2.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceDeclaration2.js.diff
deleted file mode 100644
index 41a4c662c1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interfaceDeclaration2.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.interfaceDeclaration2.js
-+++ new.interfaceDeclaration2.js
-@@= skipped -15, +15 lines =@@
-
-
- //// [interfaceDeclaration2.js]
--var I2 = /** @class */ (function () {
--    function I2() {
--    }
--    return I2;
--}());
-+class I2 {
-+}
- function I3() { }
- var I4;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceDeclaration3.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceDeclaration3.js.diff
index 8fee730a8d..ce983c9116 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceDeclaration3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceDeclaration3.js.diff
@@ -10,65 +10,32 @@
 -    exports.M2 = void 0;
 -    var M1;
 -    (function (M1) {
--        var C1 = /** @class */ (function () {
--            function C1() {
--            }
--            return C1;
--        }());
--        var C2 = /** @class */ (function () {
--            function C2() {
--            }
--            return C2;
--        }());
--        var C3 = /** @class */ (function () {
--            function C3() {
--            }
--            return C3;
--        }());
--        var C4 = /** @class */ (function () {
--            function C4() {
--            }
--            return C4;
--        }());
--        var C5 = /** @class */ (function () {
--            function C5() {
--            }
--            return C5;
--        }());
+-        class C1 {
+-        }
+-        class C2 {
+-        }
+-        class C3 {
+-        }
+-        class C4 {
+-        }
+-        class C5 {
+-        }
 -    })(M1 || (M1 = {}));
 -    var M2;
 -    (function (M2) {
--        var C1 = /** @class */ (function () {
--            function C1() {
--            }
--            return C1;
--        }());
--        var C2 = /** @class */ (function () {
--            function C2() {
--            }
--            return C2;
--        }());
--        var C3 = /** @class */ (function () {
--            function C3() {
--            }
--            return C3;
--        }());
--    })(M2 || (exports.M2 = M2 = {}));
--    var C1 = /** @class */ (function () {
--        function C1() {
+-        class C1 {
 -        }
--        return C1;
--    }());
--    var C2 = /** @class */ (function () {
--        function C2() {
+-        class C2 {
 -        }
--        return C2;
--    }());
--    var C3 = /** @class */ (function () {
--        function C3() {
+-        class C3 {
 -        }
--        return C3;
--    }());
+-    })(M2 || (exports.M2 = M2 = {}));
+-    class C1 {
+-    }
+-    class C2 {
+-    }
+-    class C3 {
+-    }
 -});
 +"use strict";
 +Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceDeclaration4.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceDeclaration4.js.diff
index 9e61868658..abd1bc25b7 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceDeclaration4.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceDeclaration4.js.diff
@@ -1,41 +1,14 @@
 --- old.interfaceDeclaration4.js
 +++ new.interfaceDeclaration4.js
-@@= skipped -46, +46 lines =@@
- // import Foo = require("interfaceDeclaration5")
- var Foo;
- (function (Foo) {
--    var C1 = /** @class */ (function () {
--        function C1() {
--        }
--        return C1;
--    }());
-+    class C1 {
-+    }
+@@= skipped -51, +51 lines =@@
      Foo.C1 = C1;
  })(Foo || (Foo = {}));
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    return C1;
--}());
-+class C1 {
+ class C1 {
 +    item;
-+}
+ }
  // Err - not implemented item
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    return C2;
--}());
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    return C3;
--}());
-+class C2 {
+ class C2 {
 +    token;
-+}
-+class C3 {
-+}
- I1;
- { }
\ No newline at end of file
+ }
+ class C3 {
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceDeclaration5.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceDeclaration5.js.diff
index 3290f020e0..9e5f88bf66 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceDeclaration5.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceDeclaration5.js.diff
@@ -8,11 +8,8 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.C1 = void 0;
--    var C1 = /** @class */ (function () {
--        function C1() {
--        }
--        return C1;
--    }());
+-    class C1 {
+-    }
 -    exports.C1 = C1;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceExtendsClass1.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceExtendsClass1.js.diff
index 63f3387fb5..8b8fcaea23 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceExtendsClass1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceExtendsClass1.js.diff
@@ -1,69 +1,10 @@
 --- old.interfaceExtendsClass1.js
 +++ new.interfaceExtendsClass1.js
-@@= skipped -20, +20 lines =@@
-
+@@= skipped -21, +21 lines =@@
 
  //// [interfaceExtendsClass1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var Control = /** @class */ (function () {
--    function Control() {
--    }
--    return Control;
--}());
--var Button = /** @class */ (function (_super) {
--    __extends(Button, _super);
--    function Button() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    Button.prototype.select = function () { };
--    return Button;
--}(Control));
--var TextBox = /** @class */ (function (_super) {
--    __extends(TextBox, _super);
--    function TextBox() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    TextBox.prototype.select = function () { };
--    return TextBox;
--}(Control));
--var Image = /** @class */ (function (_super) {
--    __extends(Image, _super);
--    function Image() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return Image;
--}(Control));
--var Location = /** @class */ (function () {
--    function Location() {
--    }
--    Location.prototype.select = function () { };
--    return Location;
--}());
-+class Control {
+ class Control {
 +    state;
-+}
-+class Button extends Control {
-+    select() { }
-+}
-+class TextBox extends Control {
-+    select() { }
-+}
-+class Image extends Control {
-+}
-+class Location {
-+    select() { }
-+}
\ No newline at end of file
+ }
+ class Button extends Control {
+     select() { }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceExtendsClassWithPrivate1.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceExtendsClassWithPrivate1.js.diff
index eb8b9ff738..63efd44ac2 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceExtendsClassWithPrivate1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceExtendsClassWithPrivate1.js.diff
@@ -1,50 +1,14 @@
 --- old.interfaceExtendsClassWithPrivate1.js
 +++ new.interfaceExtendsClassWithPrivate1.js
-@@= skipped -29, +29 lines =@@
- d = c; // error
+@@= skipped -30, +30 lines =@@
 
  //// [interfaceExtendsClassWithPrivate1.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.x = 1;
 -    }
--    C.prototype.foo = function (x) { return x; };
--    return C;
--}());
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    D.prototype.foo = function (x) { return x; };
--    D.prototype.other = function (x) { return x; };
--    D.prototype.bar = function () { };
--    return D;
--}(C));
-+class C {
-+    foo(x) { return x; }
+     foo(x) { return x; }
 +    x = 1;
-+}
-+class D extends C {
-+    foo(x) { return x; }
-+    other(x) { return x; }
-+    bar() { }
-+}
- var c;
- var i;
- var d;
\ No newline at end of file
+ }
+ class D extends C {
+     foo(x) { return x; }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceExtendsClassWithPrivate2.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceExtendsClassWithPrivate2.js.diff
index 6aca40179c..839290c7c9 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceExtendsClassWithPrivate2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceExtendsClassWithPrivate2.js.diff
@@ -1,70 +1,34 @@
 --- old.interfaceExtendsClassWithPrivate2.js
 +++ new.interfaceExtendsClassWithPrivate2.js
-@@= skipped -25, +25 lines =@@
- } 
+@@= skipped -26, +26 lines =@@
 
  //// [interfaceExtendsClassWithPrivate2.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C = /** @class */ (function () {
--    function C() {
+ class C {
+-    constructor() {
 -        this.x = 1;
 -    }
--    C.prototype.foo = function (x) { return x; };
--    return C;
--}());
--var D = /** @class */ (function (_super) {
--    __extends(D, _super);
--    function D() {
--        var _this = _super !== null && _super.apply(this, arguments) || this;
--        _this.x = 2;
--        _this.y = 3;
--        return _this;
--    }
--    D.prototype.foo = function (x) { return x; };
--    D.prototype.other = function (x) { return x; };
--    D.prototype.bar = function () { };
--    return D;
--}(C));
--var D2 = /** @class */ (function (_super) {
--    __extends(D2, _super);
--    function D2() {
--        var _this = _super !== null && _super.apply(this, arguments) || this;
--        _this.x = "";
--        return _this;
--    }
--    D2.prototype.foo = function (x) { return x; };
--    D2.prototype.other = function (x) { return x; };
--    D2.prototype.bar = function () { };
--    return D2;
--}(C));
-+class C {
-+    foo(x) { return x; }
+     foo(x) { return x; }
 +    x = 1;
-+}
-+class D extends C {
-+    foo(x) { return x; }
+ }
+ class D extends C {
+-    constructor() {
+-        super(...arguments);
+-        this.x = 2;
+-        this.y = 3;
+-    }
+     foo(x) { return x; }
 +    x = 2;
 +    y = 3;
-+    other(x) { return x; }
-+    bar() { }
-+}
-+class D2 extends C {
-+    foo(x) { return x; }
+     other(x) { return x; }
+     bar() { }
+ }
+ class D2 extends C {
+-    constructor() {
+-        super(...arguments);
+-        this.x = "";
+-    }
+     foo(x) { return x; }
 +    x = "";
-+    other(x) { return x; }
-+    bar() { }
-+}
\ No newline at end of file
+     other(x) { return x; }
+     bar() { }
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceImplementation1.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceImplementation1.js.diff
index e05edbe4c5..b6905dcdfa 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceImplementation1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceImplementation1.js.diff
@@ -1,30 +1,18 @@
 --- old.interfaceImplementation1.js
 +++ new.interfaceImplementation1.js
-@@= skipped -48, +48 lines =@@
-
-
+@@= skipped -50, +50 lines =@@
  //// [interfaceImplementation1.js]
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    C1.prototype.iFn = function (n, s) { };
--    return C1;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
--        this.x = 1;
--    }
--    return C2;
--}());
-+class C1 {
-+    iFn(n, s) { }
+ class C1 {
+     iFn(n, s) { }
 +    iAny;
 +    iNum;
 +    iObj;
-+}
-+class C2 {
+ }
+ class C2 {
+-    constructor() {
+-        this.x = 1;
+-    }
 +    x = 1;
-+}
+ }
  var a = function () {
-     return new C2();
- };
\ No newline at end of file
+     return new C2();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceImplementation2.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceImplementation2.js.diff
index 846199d001..c29e036875 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceImplementation2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceImplementation2.js.diff
@@ -1,16 +1,10 @@
 --- old.interfaceImplementation2.js
 +++ new.interfaceImplementation2.js
-@@= skipped -15, +15 lines =@@
-
+@@= skipped -16, +16 lines =@@
 
  //// [interfaceImplementation2.js]
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    return C3;
--}());
-+class C3 {
+ class C3 {
 +    iObj;
 +    iNum;
 +    iAny;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceImplementation3.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceImplementation3.js.diff
index 62026b443e..f16628efc0 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceImplementation3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceImplementation3.js.diff
@@ -1,17 +1,10 @@
 --- old.interfaceImplementation3.js
 +++ new.interfaceImplementation3.js
-@@= skipped -17, +17 lines =@@
-
+@@= skipped -18, +18 lines =@@
 
  //// [interfaceImplementation3.js]
--var C4 = /** @class */ (function () {
--    function C4() {
--    }
--    C4.prototype.iFn = function () { };
--    return C4;
--}());
-+class C4 {
+ class C4 {
 +    iObj;
 +    iNum;
-+    iFn() { }
-+}
\ No newline at end of file
+     iFn() { }
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceImplementation4.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceImplementation4.js.diff
index 62d52af5b1..e1c8041171 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceImplementation4.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceImplementation4.js.diff
@@ -1,17 +1,10 @@
 --- old.interfaceImplementation4.js
 +++ new.interfaceImplementation4.js
-@@= skipped -15, +15 lines =@@
-
+@@= skipped -16, +16 lines =@@
 
  //// [interfaceImplementation4.js]
--var C5 = /** @class */ (function () {
--    function C5() {
--    }
--    C5.prototype.iFn = function () { };
--    return C5;
--}());
-+class C5 {
+ class C5 {
 +    iNum;
 +    iAny;
-+    iFn() { }
-+}
\ No newline at end of file
+     iFn() { }
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceImplementation5.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceImplementation5.js.diff
deleted file mode 100644
index 5fa024f468..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interfaceImplementation5.js.diff
+++ /dev/null
@@ -1,88 +0,0 @@
---- old.interfaceImplementation5.js
-+++ new.interfaceImplementation5.js
-@@= skipped -33, +33 lines =@@
-
-
- //// [interfaceImplementation5.js]
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    Object.defineProperty(C1.prototype, "getset1", {
--        get: function () { return 1; },
--        enumerable: false,
--        configurable: true
--    });
--    return C1;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    Object.defineProperty(C2.prototype, "getset1", {
--        set: function (baz) { },
--        enumerable: false,
--        configurable: true
--    });
--    return C2;
--}());
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    Object.defineProperty(C3.prototype, "getset1", {
--        get: function () { return 1; },
--        set: function (baz) { },
--        enumerable: false,
--        configurable: true
--    });
--    return C3;
--}());
--var C4 = /** @class */ (function () {
--    function C4() {
--    }
--    Object.defineProperty(C4.prototype, "getset1", {
--        get: function () { var x; return x; },
--        enumerable: false,
--        configurable: true
--    });
--    return C4;
--}());
--var C5 = /** @class */ (function () {
--    function C5() {
--    }
--    Object.defineProperty(C5.prototype, "getset1", {
--        set: function (baz) { },
--        enumerable: false,
--        configurable: true
--    });
--    return C5;
--}());
--var C6 = /** @class */ (function () {
--    function C6() {
--    }
--    Object.defineProperty(C6.prototype, "getset1", {
--        get: function () { var x; return x; },
--        set: function (baz) { },
--        enumerable: false,
--        configurable: true
--    });
--    return C6;
--}());
-+class C1 {
-+    get getset1() { return 1; }
-+}
-+class C2 {
-+    set getset1(baz) { }
-+}
-+class C3 {
-+    get getset1() { return 1; }
-+    set getset1(baz) { }
-+}
-+class C4 {
-+    get getset1() { var x; return x; }
-+}
-+class C5 {
-+    set getset1(baz) { }
-+}
-+class C6 {
-+    set getset1(baz) { }
-+    get getset1() { var x; return x; }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceImplementation6.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceImplementation6.js.diff
index 8825b7dacd..7b33b67747 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceImplementation6.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceImplementation6.js.diff
@@ -8,28 +8,20 @@
 -    "use strict";
 -    Object.defineProperty(exports, "__esModule", { value: true });
 -    exports.Test = void 0;
--    var C1 = /** @class */ (function () {
--        function C1() {
--        }
--        return C1;
--    }());
--    var C2 = /** @class */ (function () {
--        function C2() {
--        }
--        return C2;
--    }());
--    var C3 = /** @class */ (function () {
--        function C3() {
+-    class C1 {
+-    }
+-    class C2 {
+-    }
+-    class C3 {
+-        constructor() {
 -            var item;
 -        }
--        return C3;
--    }());
--    var Test = /** @class */ (function () {
--        function Test() {
+-    }
+-    class Test {
+-        constructor() {
 -            this.pt = { item: 1 };
 -        }
--        return Test;
--    }());
+-    }
 -    exports.Test = Test;
 -});
 +"use strict";
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceImplementation7.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceImplementation7.js.diff
deleted file mode 100644
index 490b664e7b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interfaceImplementation7.js.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- old.interfaceImplementation7.js
-+++ new.interfaceImplementation7.js
-@@= skipped -12, +12 lines =@@
-
-
- //// [interfaceImplementation7.js]
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    C1.prototype.name = function () { return ""; };
--    return C1;
--}());
-+class C1 {
-+    name() { return ""; }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceImplementation8.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceImplementation8.js.diff
index 43f2c683b2..d47e8a3fba 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceImplementation8.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceImplementation8.js.diff
@@ -1,90 +1,25 @@
 --- old.interfaceImplementation8.js
 +++ new.interfaceImplementation8.js
-@@= skipped -42, +42 lines =@@
-
+@@= skipped -43, +43 lines =@@
 
  //// [interfaceImplementation8.js]
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    return C1;
--}());
--var C2 = /** @class */ (function () {
--    function C2() {
--    }
--    return C2;
--}());
--var C3 = /** @class */ (function () {
--    function C3() {
--    }
--    return C3;
--}());
--var C4 = /** @class */ (function (_super) {
--    __extends(C4, _super);
--    function C4() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C4;
--}(C1));
--var C5 = /** @class */ (function (_super) {
--    __extends(C5, _super);
--    function C5() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C5;
--}(C2));
--var C6 = /** @class */ (function (_super) {
--    __extends(C6, _super);
--    function C6() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C6;
--}(C3));
--var C7 = /** @class */ (function () {
--    function C7() {
--    }
--    return C7;
--}());
--var C8 = /** @class */ (function (_super) {
--    __extends(C8, _super);
--    function C8() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C8;
--}(C7));
-+class C1 {
+ class C1 {
 +    name;
-+}
-+class C2 {
+ }
+ class C2 {
 +    name;
-+}
-+class C3 {
+ }
+ class C3 {
 +    name;
-+}
-+class C4 extends C1 {
-+}
-+class C5 extends C2 {
-+}
-+class C6 extends C3 {
-+}
-+class C7 {
+ }
+ class C4 extends C1 {
+ }
+@@= skipped -12, +15 lines =@@
+ class C6 extends C3 {
+ }
+ class C7 {
 +    name;
-+}
-+class C8 extends C7 {
+ }
+ class C8 extends C7 {
 +    age;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceInReopenedModule.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceInReopenedModule.js.diff
index 00bbb2dbb0..0d324f05ca 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceInReopenedModule.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceInReopenedModule.js.diff
@@ -1,16 +1,10 @@
 --- old.interfaceInReopenedModule.js
 +++ new.interfaceInReopenedModule.js
-@@= skipped -16, +16 lines =@@
- // In second instance of same module, exported interface is not visible
+@@= skipped -17, +17 lines =@@
  var m;
  (function (m) {
--    var n = /** @class */ (function () {
--        function n() {
--        }
--        return n;
--    }());
-+    class n {
+     class n {
 +        n;
-+    }
+     }
      m.n = n;
  })(m || (m = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceInheritance.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceInheritance.js.diff
index c708852d8a..501c2f6833 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceInheritance.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceInheritance.js.diff
@@ -1,17 +1,10 @@
 --- old.interfaceInheritance.js
 +++ new.interfaceInheritance.js
-@@= skipped -42, +42 lines =@@
-
+@@= skipped -43, +43 lines =@@
 
  //// [interfaceInheritance.js]
--var C1 = /** @class */ (function () {
--    function C1() {
--    }
--    return C1;
--}());
-+class C1 {
+ class C1 {
 +    i2P1;
-+}
+ }
  var i2;
- var i1;
- var i3;
\ No newline at end of file
+ var i1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfacePropertiesWithSameName3.js.diff b/testdata/baselines/reference/submodule/compiler/interfacePropertiesWithSameName3.js.diff
index 0a2a5522c2..4968851008 100644
--- a/testdata/baselines/reference/submodule/compiler/interfacePropertiesWithSameName3.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfacePropertiesWithSameName3.js.diff
@@ -1,22 +1,11 @@
 --- old.interfacePropertiesWithSameName3.js
 +++ new.interfacePropertiesWithSameName3.js
-@@= skipped -10, +10 lines =@@
-
+@@= skipped -11, +11 lines =@@
 
  //// [interfacePropertiesWithSameName3.js]
--var D2 = /** @class */ (function () {
--    function D2() {
--    }
--    return D2;
--}());
--var E2 = /** @class */ (function () {
--    function E2() {
--    }
--    return E2;
--}());
-+class D2 {
+ class D2 {
 +    a;
-+}
-+class E2 {
+ }
+ class E2 {
 +    a;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceSubtyping.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceSubtyping.js.diff
index 3a00b30746..58b201c676 100644
--- a/testdata/baselines/reference/submodule/compiler/interfaceSubtyping.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfaceSubtyping.js.diff
@@ -1,18 +1,10 @@
 --- old.interfaceSubtyping.js
 +++ new.interfaceSubtyping.js
-@@= skipped -11, +11 lines =@@
-
+@@= skipped -12, +12 lines =@@
 
  //// [interfaceSubtyping.js]
--var Camera = /** @class */ (function () {
--    function Camera(str) {
-+class Camera {
+ class Camera {
 +    str;
-+    constructor(str) {
+     constructor(str) {
          this.str = str;
-     }
--    Camera.prototype.foo = function () { return "s"; };
--    return Camera;
--}());
-+    foo() { return "s"; }
-+}
\ No newline at end of file
+     }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfaceWithMultipleDeclarations.js.diff b/testdata/baselines/reference/submodule/compiler/interfaceWithMultipleDeclarations.js.diff
deleted file mode 100644
index 106d7691c1..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interfaceWithMultipleDeclarations.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.interfaceWithMultipleDeclarations.js
-+++ new.interfaceWithMultipleDeclarations.js
-@@= skipped -39, +39 lines =@@
- }
-
- //// [interfaceWithMultipleDeclarations.js]
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/interfacedecl.js.diff b/testdata/baselines/reference/submodule/compiler/interfacedecl.js.diff
index 12d5480858..bd35a44657 100644
--- a/testdata/baselines/reference/submodule/compiler/interfacedecl.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/interfacedecl.js.diff
@@ -1,20 +1,6 @@
 --- old.interfacedecl.js
 +++ new.interfacedecl.js
-@@= skipped -48, +48 lines =@@
- var instance2 = new c1();
-
- //// [interfacedecl.js]
--var c1 = /** @class */ (function () {
--    function c1() {
--    }
--    return c1;
--}());
-+class c1 {
-+}
- var instance2 = new c1();
-
-
-@@= skipped -12, +9 lines =@@
+@@= skipped -57, +57 lines =@@
  interface a0 {
      (): string;
      (a: any, b: any, c?: string): number;
diff --git a/testdata/baselines/reference/submodule/compiler/interfacedeclWithIndexerErrors.js.diff b/testdata/baselines/reference/submodule/compiler/interfacedeclWithIndexerErrors.js.diff
deleted file mode 100644
index ee6d53fefa..0000000000
--- a/testdata/baselines/reference/submodule/compiler/interfacedeclWithIndexerErrors.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.interfacedeclWithIndexerErrors.js
-+++ new.interfacedeclWithIndexerErrors.js
-@@= skipped -55, +55 lines =@@
- var instance2 = new c1();
-
- //// [interfacedeclWithIndexerErrors.js]
--var c1 = /** @class */ (function () {
--    function c1() {
--    }
--    return c1;
--}());
-+class c1 {
-+}
- var instance2 = new c1();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasClass.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasClass.js.diff
deleted file mode 100644
index af1c96f425..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasClass.js.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- old.internalAliasClass.js
-+++ new.internalAliasClass.js
-@@= skipped -13, +13 lines =@@
- //// [internalAliasClass.js]
- var a;
- (function (a) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        return c;
--    }());
-+    class c {
-+    }
-     a.c = c;
- })(a || (a = {}));
- var c;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideLocalModuleWithExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideLocalModuleWithExport.js.diff
deleted file mode 100644
index 35f1f7a8f2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideLocalModuleWithExport.js.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- old.internalAliasClassInsideLocalModuleWithExport.js
-+++ new.internalAliasClassInsideLocalModuleWithExport.js
-@@= skipped -24, +24 lines =@@
- exports.d = exports.m2 = exports.x = void 0;
- var x;
- (function (x) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        c.prototype.foo = function (a) {
-+    class c {
-+        foo(a) {
-             return a;
--        };
--        return c;
--    }());
-+        }
-+    }
-     x.c = c;
- })(x || (exports.x = x = {}));
- var m2;
- (function (m2) {
--    var m3;
-+    let m3;
-     (function (m3) {
-         m3.c = x.c;
-         m3.cProp = new m3.c();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideLocalModuleWithoutExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideLocalModuleWithoutExport.js.diff
deleted file mode 100644
index db8109b909..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideLocalModuleWithoutExport.js.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- old.internalAliasClassInsideLocalModuleWithoutExport.js
-+++ new.internalAliasClassInsideLocalModuleWithoutExport.js
-@@= skipped -22, +22 lines =@@
- exports.m2 = exports.x = void 0;
- var x;
- (function (x) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        c.prototype.foo = function (a) {
-+    class c {
-+        foo(a) {
-             return a;
--        };
--        return c;
--    }());
-+        }
-+    }
-     x.c = c;
- })(x || (exports.x = x = {}));
- var m2;
- (function (m2) {
--    var m3;
-+    let m3;
-     (function (m3) {
-         var c = x.c;
-         m3.cProp = new c();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideLocalModuleWithoutExportAccessError.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideLocalModuleWithoutExportAccessError.js.diff
deleted file mode 100644
index de2fc1551b..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideLocalModuleWithoutExportAccessError.js.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- old.internalAliasClassInsideLocalModuleWithoutExportAccessError.js
-+++ new.internalAliasClassInsideLocalModuleWithoutExportAccessError.js
-@@= skipped -24, +24 lines =@@
- exports.d = exports.m2 = exports.x = void 0;
- var x;
- (function (x) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        c.prototype.foo = function (a) {
-+    class c {
-+        foo(a) {
-             return a;
--        };
--        return c;
--    }());
-+        }
-+    }
-     x.c = c;
- })(x || (exports.x = x = {}));
- var m2;
- (function (m2) {
--    var m3;
-+    let m3;
-     (function (m3) {
-         var c = x.c;
-         m3.cProp = new c();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideTopLevelModuleWithExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideTopLevelModuleWithExport.js.diff
index 30ead2cef8..5bc6b0a911 100644
--- a/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideTopLevelModuleWithExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideTopLevelModuleWithExport.js.diff
@@ -8,18 +8,9 @@
 +exports.cProp = exports.x = void 0;
  var x;
  (function (x) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        c.prototype.foo = function (a) {
-+    class c {
-+        foo(a) {
-             return a;
--        };
--        return c;
--    }());
-+        }
-+    }
+     class c {
+@@= skipped -10, +10 lines =@@
+     }
      x.c = c;
  })(x || (exports.x = x = {}));
 -exports.xc = x.c;
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideTopLevelModuleWithoutExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideTopLevelModuleWithoutExport.js.diff
index 84fcf46707..02dab15e72 100644
--- a/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideTopLevelModuleWithoutExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalAliasClassInsideTopLevelModuleWithoutExport.js.diff
@@ -1,21 +1,7 @@
 --- old.internalAliasClassInsideTopLevelModuleWithoutExport.js
 +++ new.internalAliasClassInsideTopLevelModuleWithoutExport.js
-@@= skipped -18, +18 lines =@@
- exports.cProp = exports.x = void 0;
- var x;
- (function (x) {
--    var c = /** @class */ (function () {
--        function c() {
--        }
--        c.prototype.foo = function (a) {
-+    class c {
-+        foo(a) {
-             return a;
--        };
--        return c;
--    }());
-+        }
-+    }
+@@= skipped -25, +25 lines =@@
+     }
      x.c = c;
  })(x || (exports.x = x = {}));
 -var xc = x.c;
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasEnum.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasEnum.js.diff
deleted file mode 100644
index bb60b97da2..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasEnum.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.internalAliasEnum.js
-+++ new.internalAliasEnum.js
-@@= skipped -17, +17 lines =@@
- //// [internalAliasEnum.js]
- var a;
- (function (a) {
--    var weekend;
-+    let weekend;
-     (function (weekend) {
-         weekend[weekend["Friday"] = 0] = "Friday";
-         weekend[weekend["Saturday"] = 1] = "Saturday";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideLocalModuleWithExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideLocalModuleWithExport.js.diff
deleted file mode 100644
index e93677cb16..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideLocalModuleWithExport.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.internalAliasEnumInsideLocalModuleWithExport.js
-+++ new.internalAliasEnumInsideLocalModuleWithExport.js
-@@= skipped -20, +20 lines =@@
- exports.c = exports.a = void 0;
- var a;
- (function (a) {
--    var weekend;
-+    let weekend;
-     (function (weekend) {
-         weekend[weekend["Friday"] = 0] = "Friday";
-         weekend[weekend["Saturday"] = 1] = "Saturday";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideLocalModuleWithoutExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideLocalModuleWithoutExport.js.diff
deleted file mode 100644
index f2e76b240e..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideLocalModuleWithoutExport.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.internalAliasEnumInsideLocalModuleWithoutExport.js
-+++ new.internalAliasEnumInsideLocalModuleWithoutExport.js
-@@= skipped -20, +20 lines =@@
- exports.c = exports.a = void 0;
- var a;
- (function (a) {
--    var weekend;
-+    let weekend;
-     (function (weekend) {
-         weekend[weekend["Friday"] = 0] = "Friday";
-         weekend[weekend["Saturday"] = 1] = "Saturday";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideLocalModuleWithoutExportAccessError.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideLocalModuleWithoutExportAccessError.js.diff
deleted file mode 100644
index 8728fad80d..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideLocalModuleWithoutExportAccessError.js.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- old.internalAliasEnumInsideLocalModuleWithoutExportAccessError.js
-+++ new.internalAliasEnumInsideLocalModuleWithoutExportAccessError.js
-@@= skipped -21, +21 lines =@@
- exports.c = exports.a = void 0;
- var a;
- (function (a) {
--    var weekend;
-+    let weekend;
-     (function (weekend) {
-         weekend[weekend["Friday"] = 0] = "Friday";
-         weekend[weekend["Saturday"] = 1] = "Saturday";
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideTopLevelModuleWithExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideTopLevelModuleWithExport.js.diff
index 2b3543eac2..719a8b2153 100644
--- a/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideTopLevelModuleWithExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideTopLevelModuleWithExport.js.diff
@@ -10,7 +10,7 @@
 -    exports.bVal = exports.b = exports.a = void 0;
 -    var a;
 -    (function (a) {
--        var weekend;
+-        let weekend;
 -        (function (weekend) {
 -            weekend[weekend["Friday"] = 0] = "Friday";
 -            weekend[weekend["Saturday"] = 1] = "Saturday";
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.js.diff
index 34be02003a..d0b960b0fc 100644
--- a/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.js.diff
@@ -10,7 +10,7 @@
 -    exports.bVal = exports.a = void 0;
 -    var a;
 -    (function (a) {
--        var weekend;
+-        let weekend;
 -        (function (weekend) {
 -            weekend[weekend["Friday"] = 0] = "Friday";
 -            weekend[weekend["Saturday"] = 1] = "Saturday";
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModule.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModule.js.diff
deleted file mode 100644
index 26bf9f5995..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModule.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.internalAliasInitializedModule.js
-+++ new.internalAliasInitializedModule.js
-@@= skipped -15, +15 lines =@@
- //// [internalAliasInitializedModule.js]
- var a;
- (function (a) {
--    var b;
-+    let b;
-     (function (b) {
--        var c = /** @class */ (function () {
--            function c() {
--            }
--            return c;
--        }());
-+        class c {
-+        }
-         b.c = c;
-     })(b = a.b || (a.b = {}));
- })(a || (a = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.js.diff
index 187e5e44f2..79766d10ed 100644
--- a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.js.diff
@@ -10,13 +10,10 @@
 -    exports.c = exports.a = void 0;
 -    var a;
 -    (function (a) {
--        var b;
+-        let b;
 -        (function (b) {
--            var c = /** @class */ (function () {
--                function c() {
--                }
--                return c;
--            }());
+-            class c {
+-            }
 -            b.c = c;
 -        })(b = a.b || (a.b = {}));
 -    })(a || (exports.a = a = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideLocalModuleWithoutExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideLocalModuleWithoutExport.js.diff
deleted file mode 100644
index c5c34f9302..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideLocalModuleWithoutExport.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.internalAliasInitializedModuleInsideLocalModuleWithoutExport.js
-+++ new.internalAliasInitializedModuleInsideLocalModuleWithoutExport.js
-@@= skipped -18, +18 lines =@@
- exports.c = exports.a = void 0;
- var a;
- (function (a) {
--    var b;
-+    let b;
-     (function (b) {
--        var c = /** @class */ (function () {
--            function c() {
--            }
--            return c;
--        }());
-+        class c {
-+        }
-         b.c = c;
-     })(b = a.b || (a.b = {}));
- })(a || (exports.a = a = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideLocalModuleWithoutExportAccessError.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideLocalModuleWithoutExportAccessError.js.diff
deleted file mode 100644
index bc70cc4727..0000000000
--- a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideLocalModuleWithoutExportAccessError.js.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- old.internalAliasInitializedModuleInsideLocalModuleWithoutExportAccessError.js
-+++ new.internalAliasInitializedModuleInsideLocalModuleWithoutExportAccessError.js
-@@= skipped -20, +20 lines =@@
- exports.d = exports.c = exports.a = void 0;
- var a;
- (function (a) {
--    var b;
-+    let b;
-     (function (b) {
--        var c = /** @class */ (function () {
--            function c() {
--            }
--            return c;
--        }());
-+        class c {
-+        }
-         b.c = c;
-     })(b = a.b || (a.b = {}));
- })(a || (exports.a = a = {}));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithExport.js.diff
index 11bd9d85b3..bc977f9b52 100644
--- a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithExport.js.diff
@@ -8,16 +8,8 @@
 +exports.x = exports.a = void 0;
  var a;
  (function (a) {
--    var b;
-+    let b;
-     (function (b) {
--        var c = /** @class */ (function () {
--            function c() {
--            }
--            return c;
--        }());
-+        class c {
-+        }
+     let b;
+@@= skipped -10, +10 lines =@@
          b.c = c;
      })(b = a.b || (a.b = {}));
  })(a || (exports.a = a = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.js.diff b/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.js.diff
index d08c8edaa0..a6622d3003 100644
--- a/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.js.diff
@@ -10,13 +10,10 @@
 -    exports.x = exports.a = void 0;
 -    var a;
 -    (function (a) {
--        var b;
+-        let b;
 -        (function (b) {
--            var c = /** @class */ (function () {
--                function c() {
--                }
--                return c;
--            }());
+-            class c {
+-            }
 -            b.c = c;
 -        })(b = a.b || (a.b = {}));
 -    })(a || (exports.a = a = {}));
diff --git a/testdata/baselines/reference/submodule/compiler/internalImportInstantiatedModuleMergedWithClassNotReferencingInstance.js.diff b/testdata/baselines/reference/submodule/compiler/internalImportInstantiatedModuleMergedWithClassNotReferencingInstance.js.diff
index a91a1ead60..a05066dfca 100644
--- a/testdata/baselines/reference/submodule/compiler/internalImportInstantiatedModuleMergedWithClassNotReferencingInstance.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalImportInstantiatedModuleMergedWithClassNotReferencingInstance.js.diff
@@ -1,20 +1,14 @@
 --- old.internalImportInstantiatedModuleMergedWithClassNotReferencingInstance.js
 +++ new.internalImportInstantiatedModuleMergedWithClassNotReferencingInstance.js
-@@= skipped -15, +15 lines =@@
-
+@@= skipped -16, +16 lines =@@
 
  //// [internalImportInstantiatedModuleMergedWithClassNotReferencingInstance.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
+ class A {
 +    aProp;
-+}
+ }
  (function (A) {
      A.a = 10;
- })(A || (A = {}));
+@@= skipped -7, +8 lines =@@
  var B;
  (function (B) {
      var A = 1;
diff --git a/testdata/baselines/reference/submodule/compiler/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js.diff b/testdata/baselines/reference/submodule/compiler/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js.diff
index 66f58c89b9..f62e163ed5 100644
--- a/testdata/baselines/reference/submodule/compiler/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js.diff
@@ -1,17 +1,10 @@
 --- old.internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js
 +++ new.internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js
-@@= skipped -14, +14 lines =@@
-
+@@= skipped -15, +15 lines =@@
 
  //// [internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
+ class A {
 +    aProp;
-+}
+ }
  (function (A) {
-     A.a = 10;
- })(A || (A = {}));
\ No newline at end of file
+     A.a = 10;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstance.js.diff b/testdata/baselines/reference/submodule/compiler/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstance.js.diff
index 5a04ba2ad4..953153cf76 100644
--- a/testdata/baselines/reference/submodule/compiler/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstance.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstance.js.diff
@@ -1,17 +1,11 @@
 --- old.internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstance.js
 +++ new.internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstance.js
-@@= skipped -14, +14 lines =@@
-
+@@= skipped -15, +15 lines =@@
 
  //// [internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstance.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
+ class A {
 +    aProp;
-+}
+ }
  var B;
  (function (B) {
      var A = 1;
diff --git a/testdata/baselines/reference/submodule/compiler/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js.diff b/testdata/baselines/reference/submodule/compiler/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js.diff
index 055671eac8..eb9acb112d 100644
--- a/testdata/baselines/reference/submodule/compiler/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js.diff
@@ -1,14 +1,8 @@
 --- old.internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js
 +++ new.internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js
-@@= skipped -13, +13 lines =@@
-
+@@= skipped -14, +14 lines =@@
 
  //// [internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.js]
--var A = /** @class */ (function () {
--    function A() {
--    }
--    return A;
--}());
-+class A {
+ class A {
 +    aProp;
-+}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/intersectionOfTypeVariableHasApparentSignatures.js.diff b/testdata/baselines/reference/submodule/compiler/intersectionOfTypeVariableHasApparentSignatures.js.diff
deleted file mode 100644
index f35a28e2fa..0000000000
--- a/testdata/baselines/reference/submodule/compiler/intersectionOfTypeVariableHasApparentSignatures.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.intersectionOfTypeVariableHasApparentSignatures.js
-+++ new.intersectionOfTypeVariableHasApparentSignatures.js
-@@= skipped -19, +19 lines =@@
- //// [intersectionOfTypeVariableHasApparentSignatures.js]
- f({
-     props: {
--        children: (function (_a) {
--            var x = _a.x;
--        })
-+        children: (({ x }) => { })
-     }
- });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/intersectionPropertyCheck.js.diff b/testdata/baselines/reference/submodule/compiler/intersectionPropertyCheck.js.diff
index a4fac18258..8dddfcf128 100644
--- a/testdata/baselines/reference/submodule/compiler/intersectionPropertyCheck.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/intersectionPropertyCheck.js.diff
@@ -16,10 +16,8 @@
 -    };
 -    return __assign.apply(this, arguments);
 -};
--var obj = { a: { x: 'hello', y: 2 }, c: 5 }; // Nested excess property
--var weak = wrong; // Nested weak object type
-+let obj = { a: { x: 'hello', y: 2 }, c: 5 }; // Nested excess property
-+let weak = wrong; // Nested weak object type
+ let obj = { a: { x: 'hello', y: 2 }, c: 5 }; // Nested excess property
+ let weak = wrong; // Nested weak object type
  function foo(x, y) {
      x = y; // Mismatched property in source intersection
  }
diff --git a/testdata/baselines/reference/submodule/compiler/intersectionSatisfiesConstraint.js.diff b/testdata/baselines/reference/submodule/compiler/intersectionSatisfiesConstraint.js.diff
index e942da8714..0d6173edf0 100644
--- a/testdata/baselines/reference/submodule/compiler/intersectionSatisfiesConstraint.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/intersectionSatisfiesConstraint.js.diff
@@ -5,13 +5,6 @@
 
  //// [intersectionSatisfiesConstraint.js]
 -"use strict";
--var myFirstFunction = function (param1) {
--    var newParam = Object.assign(param1, { otherProperty: 3 });
-+const myFirstFunction = (param1) => {
-+    const newParam = Object.assign(param1, { otherProperty: 3 });
-     mySecondFunction(newParam);
- };
--var mySecondFunction = function (newParam) {
-+const mySecondFunction = (newParam) => {
-     return newParam;
- };
\ No newline at end of file
+ const myFirstFunction = (param1) => {
+     const newParam = Object.assign(param1, { otherProperty: 3 });
+     mySecondFunction(newParam);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/intersectionTypeInference1.js.diff b/testdata/baselines/reference/submodule/compiler/intersectionTypeInference1.js.diff
index 68654647d9..56f35b8476 100644
--- a/testdata/baselines/reference/submodule/compiler/intersectionTypeInference1.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/intersectionTypeInference1.js.diff
@@ -9,8 +9,5 @@
  exports.Form3 = void 0;
 +// Repro from #8801
  function alert(s) { }
--var parameterFn = function (props) { return alert(props.store); };
--var brokenFunction = function (f) { return function (o) { return o; }; };
-+const parameterFn = (props) => alert(props.store);
-+const brokenFunction = (f) => (o) => o;
- exports.Form3 = brokenFunction(parameterFn)({ store: "hello" });
\ No newline at end of file
+ const parameterFn = (props) => alert(props.store);
+ const brokenFunction = (f) => (o) => o;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/intersectionTypeNormalization.js.diff b/testdata/baselines/reference/submodule/compiler/intersectionTypeNormalization.js.diff
deleted file mode 100644
index 49123a6526..0000000000
--- a/testdata/baselines/reference/submodule/compiler/intersectionTypeNormalization.js.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- old.intersectionTypeNormalization.js
-+++ new.intersectionTypeNormalization.js
-@@= skipped -124, +124 lines =@@
-     return value.str;
- }
- function foo(so) {
--    var val = so;
--    var isGenre = val.genreId;
-+    const val = so;
-+    const isGenre = val.genreId;
-     return isGenre;
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/intersectionsAndOptionalProperties.js.diff b/testdata/baselines/reference/submodule/compiler/intersectionsAndOptionalProperties.js.diff
index 71626ea062..cab7556f54 100644
--- a/testdata/baselines/reference/submodule/compiler/intersectionsAndOptionalProperties.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/intersectionsAndOptionalProperties.js.diff
@@ -7,14 +7,4 @@
 -"use strict";
  x = y; // Error
  x = z; // Error
- function foo(v) {
--    var x;
-+    let x;
-     x = v; // Error
-     x.field = v.field; // Error
- }
- // Repro from #38348
--var yy = [1];
--var xx = yy;
-+const yy = [1];
-+const xx = yy;
\ No newline at end of file
+ function foo(v) {
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/intersectionsOfLargeUnions.js.diff b/testdata/baselines/reference/submodule/compiler/intersectionsOfLargeUnions.js.diff
index 9697eab2f5..1552e303e5 100644
--- a/testdata/baselines/reference/submodule/compiler/intersectionsOfLargeUnions.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/intersectionsOfLargeUnions.js.diff
@@ -11,14 +11,5 @@
  exports.assertNodeProperty = assertNodeProperty;
 +// Repro from #23977
  function assertIsElement(node) {
--    var nodeType = node === null ? null : node.nodeType;
-+    let nodeType = node === null ? null : node.nodeType;
-     return nodeType === 1;
- }
- function assertNodeTagName(node, tagName) {
-     if (assertIsElement(node)) {
--        var nodeTagName = node.tagName.toLowerCase();
-+        const nodeTagName = node.tagName.toLowerCase();
-         return nodeTagName === tagName;
-     }
-     return false;
\ No newline at end of file
+     let nodeType = node === null ? null : node.nodeType;
+     return nodeType === 1;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/intersectionsOfLargeUnions2.js.diff b/testdata/baselines/reference/submodule/compiler/intersectionsOfLargeUnions2.js.diff
index 663da98f0b..7468281772 100644
--- a/testdata/baselines/reference/submodule/compiler/intersectionsOfLargeUnions2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/intersectionsOfLargeUnions2.js.diff
@@ -7,17 +7,4 @@
 -// Repro from #24233
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.assertIsElement = assertIsElement;
- exports.assertNodeTagName = assertNodeTagName;
- exports.assertNodeProperty = assertNodeProperty;
- function assertIsElement(node) {
--    var nodeType = node === null ? null : node.nodeType;
-+    let nodeType = node === null ? null : node.nodeType;
-     return nodeType === 1;
- }
- function assertNodeTagName(node, tagName) {
-     if (assertIsElement(node)) {
--        var nodeTagName = node.tagName.toLowerCase();
-+        const nodeTagName = node.tagName.toLowerCase();
-         return nodeTagName === tagName;
-     }
-     return false;
\ No newline at end of file
+ exports.assertNodeTagName = assertNodeTagName;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/intrinsics.js.diff b/testdata/baselines/reference/submodule/compiler/intrinsics.js.diff
index a57935b0e6..2326196cfe 100644
--- a/testdata/baselines/reference/submodule/compiler/intrinsics.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/intrinsics.js.diff
@@ -1,27 +1,6 @@
 --- old.intrinsics.js
 +++ new.intrinsics.js
-@@= skipped -19, +19 lines =@@
- var hasOwnProperty; // Error
- var m1;
- (function (m1) {
--    var C = /** @class */ (function () {
--        function C() {
--        }
--        return C;
--    }());
-+    class C {
-+    }
- })(m1 || (m1 = {}));
- __proto__ = 0; // Error, __proto__ not defined
- m1.__proto__ = 0;
--var Foo = /** @class */ (function () {
--    function Foo() {
--    }
--    return Foo;
--}());
-+class Foo {
-+}
- var foo;
+@@= skipped -30, +30 lines =@@
 
 
  //// [intrinsics.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/invalidContinueInDownlevelAsync.js.diff b/testdata/baselines/reference/submodule/compiler/invalidContinueInDownlevelAsync.js.diff
index f04e3f1492..a2890c0457 100644
--- a/testdata/baselines/reference/submodule/compiler/invalidContinueInDownlevelAsync.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/invalidContinueInDownlevelAsync.js.diff
@@ -13,48 +13,14 @@
 -        step((generator = generator.apply(thisArg, _arguments || [])).next());
 -    });
 -};
--var __generator = (this && this.__generator) || function (thisArg, body) {
--    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
--    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
--    function verb(n) { return function (v) { return step([n, v]); }; }
--    function step(op) {
--        if (f) throw new TypeError("Generator is already executing.");
--        while (g && (g = 0, op[0] && (_ = 0)), _) try {
--            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
--            if (y = 0, t) op = [op[0] & 2, t.value];
--            switch (op[0]) {
--                case 0: case 1: t = op; break;
--                case 4: _.label++; return { value: op[1], done: false };
--                case 5: _.label++; y = op[1]; op = [0]; continue;
--                case 7: op = _.ops.pop(); _.trys.pop(); continue;
--                default:
--                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
--                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
--                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
--                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
--                    if (t[2]) _.ops.pop();
--                    _.trys.pop(); continue;
--            }
--            op = body.call(thisArg, _);
--        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
--        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
--    }
--};
 -function func() {
--    return __awaiter(this, void 0, void 0, function () {
--        return __generator(this, function (_a) {
--            switch (_a.label) {
--                case 0:
--                    if (!true) return [3 /*break*/, 1];
--                    continue;
--                    return [3 /*break*/, 3];
--                case 1: return [4 /*yield*/, 1];
--                case 2:
--                    _a.sent();
--                    _a.label = 3;
--                case 3: return [2 /*return*/];
--            }
--        });
+-    return __awaiter(this, void 0, void 0, function* () {
+-        if (true) {
+-            continue;
+-        }
+-        else {
+-            yield 1;
+-        }
 -    });
 +async function func() {
 +    if (true) {
diff --git a/testdata/baselines/reference/submodule/compiler/invalidOptionalChainFromNewExpression.js.diff b/testdata/baselines/reference/submodule/compiler/invalidOptionalChainFromNewExpression.js.diff
index 1596996019..c0039414d5 100644
--- a/testdata/baselines/reference/submodule/compiler/invalidOptionalChainFromNewExpression.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/invalidOptionalChainFromNewExpression.js.diff
@@ -5,16 +5,10 @@
 
  //// [invalidOptionalChainFromNewExpression.js]
 -var _a, _b;
--var A = /** @class */ (function () {
--    function A() {
--    }
--    A.prototype.b = function () { };
--    return A;
--}());
+ class A {
+     b() { }
+ }
 -(_a = new A) === null || _a === void 0 ? void 0 : _a.b(); // error
 -(_b = new A()) === null || _b === void 0 ? void 0 : _b.b(); // ok
-+class A {
-+    b() { }
-+}
 +(new A)?.b(); // error
 +new A()?.b(); // ok
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/invalidReferenceSyntax1.js.diff b/testdata/baselines/reference/submodule/compiler/invalidReferenceSyntax1.js.diff
deleted file mode 100644
index 6f619c89a4..0000000000
--- a/testdata/baselines/reference/submodule/compiler/invalidReferenceSyntax1.js.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- old.invalidReferenceSyntax1.js
-+++ new.invalidReferenceSyntax1.js
-@@= skipped -7, +7 lines =@@
-
- //// [invalidReferenceSyntax1.js]
- ///  { }) { }
+ class Bar2 {
+-    constructor() {
 -        this.r = 1;
 -        this.f = 2;
 -    }
--    return Bar2;
--}());
-+function foo(p = (ip = 10, v) => { }) {
-+}
-+function foo2(p = (ip = 10, v) => { }) { }
-+class Bar2 {
 +    r = 1;
 +    f = 2;
-+}
+ }
  exports.Bar2 = Bar2;
 
 
diff --git a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js.diff
index 1f33846930..872747af0c 100644
--- a/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/isolatedDeclarationsAddUndefined2.js.diff
@@ -10,54 +10,34 @@
  exports.test1 = test1;
  exports.test2 = test2;
  exports.test3 = test3;
--var Bar = /** @class */ (function () {
--    function Bar(x) {
 +// https://github.com/microsoft/TypeScript/issues/60123
-+class Bar {
+ class Bar {
 +    x;
-+    constructor(x) {
+     constructor(x) {
          this.x = x;
      }
--    return Bar;
--}());
-+}
+ }
  exports.Bar = Bar;
--var Bar2 = /** @class */ (function () {
--    function Bar2(x) {
-+class Bar2 {
+ class Bar2 {
 +    x;
-+    constructor(x) {
+     constructor(x) {
          this.x = x;
      }
--    return Bar2;
--}());
-+}
+ }
  exports.Bar2 = Bar2;
--var Bar3 = /** @class */ (function () {
--    function Bar3(x) {
-+class Bar3 {
+ class Bar3 {
 +    x;
-+    constructor(x) {
+     constructor(x) {
          this.x = x;
      }
--    return Bar3;
--}());
-+}
+ }
  exports.Bar3 = Bar3;
--var Bar4 = /** @class */ (function () {
--    function Bar4(x) {
-+class Bar4 {
+ class Bar4 {
 +    x;
-+    constructor(x) {
+     constructor(x) {
          this.x = x;
      }
--    return Bar4;
--}());
-+}
- exports.Bar4 = Bar4;
- function test1(x) { }
- function test2(x) { }
-@@= skipped -40, +40 lines =@@
+@@= skipped -36, +40 lines =@@
 
 
  //// [isolatedDeclarationsAddUndefined2.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/isolatedModulesExportDeclarationType.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedModulesExportDeclarationType.js.diff
index e8ee862d5c..1e89e725c7 100644
--- a/testdata/baselines/reference/submodule/compiler/isolatedModulesExportDeclarationType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/isolatedModulesExportDeclarationType.js.diff
@@ -1,15 +1,6 @@
 --- old.isolatedModulesExportDeclarationType.js
 +++ new.isolatedModulesExportDeclarationType.js
-@@= skipped -28, +28 lines =@@
- //// [test1.js]
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
--var T = 0; // Error as of #56354
-+const T = 0; // Error as of #56354
- exports.default = T; // Ok
- //// [test2.js]
- "use strict";
-@@= skipped -12, +12 lines =@@
+@@= skipped -40, +40 lines =@@
  "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  // @ts-expect-error
diff --git a/testdata/baselines/reference/submodule/compiler/isolatedModulesExportImportUninstantiatedNamespace.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedModulesExportImportUninstantiatedNamespace.js.diff
deleted file mode 100644
index f0f9861065..0000000000
--- a/testdata/baselines/reference/submodule/compiler/isolatedModulesExportImportUninstantiatedNamespace.js.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- old.isolatedModulesExportImportUninstantiatedNamespace.js
-+++ new.isolatedModulesExportImportUninstantiatedNamespace.js
-@@= skipped -23, +23 lines =@@
- //// [jsx.js]
- export {};
- //// [factory.js]
--export function createElement(tagName, attributes) {
--    var children = [];
--    for (var _i = 2; _i < arguments.length; _i++) {
--        children[_i - 2] = arguments[_i];
--    }
-+export function createElement(tagName, attributes, ...children) {
-     //...
- }
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/isolatedModulesGlobalNamespacesAndEnums.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedModulesGlobalNamespacesAndEnums.js.diff
index df5c3a7212..84245da38a 100644
--- a/testdata/baselines/reference/submodule/compiler/isolatedModulesGlobalNamespacesAndEnums.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/isolatedModulesGlobalNamespacesAndEnums.js.diff
@@ -1,11 +1,6 @@
 --- old.isolatedModulesGlobalNamespacesAndEnums.js
 +++ new.isolatedModulesGlobalNamespacesAndEnums.js
-@@= skipped -52, +52 lines =@@
-     Enum[Enum["B"] = 1] = "B";
-     Enum[Enum["C"] = 2] = "C";
- })(Enum || (Enum = {}));
--var d = 'd';
-+const d = 'd';
+@@= skipped -56, +56 lines =@@
  //// [enum2.js]
  var Enum;
  (function (Enum) {
diff --git a/testdata/baselines/reference/submodule/compiler/isolatedModulesImportExportElision.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedModulesImportExportElision.js.diff
index 37d2e7e5ba..dc33b712bd 100644
--- a/testdata/baselines/reference/submodule/compiler/isolatedModulesImportExportElision.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/isolatedModulesImportExportElision.js.diff
@@ -1,46 +1,20 @@
 --- old.isolatedModulesImportExportElision.js
 +++ new.isolatedModulesImportExportElision.js
-@@= skipped -15, +15 lines =@@
-
- //// [file1.js]
+@@= skipped -17, +17 lines =@@
  "use strict";
--var __extends = (this && this.__extends) || (function () {
--    var extendStatics = function (d, b) {
--        extendStatics = Object.setPrototypeOf ||
--            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
--            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
--        return extendStatics(d, b);
--    };
--    return function (d, b) {
--        if (typeof b !== "function" && b !== null)
--            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
--        extendStatics(d, b);
--        function __() { this.constructor = d; }
--        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
--    };
--})();
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.z = exports.c1 = void 0;
 -var module_1 = require("module");
 -var module_2 = require("module");
 -var ns = require("module");
--var C = /** @class */ (function (_super) {
--    __extends(C, _super);
--    function C() {
--        return _super !== null && _super.apply(this, arguments) || this;
--    }
--    return C;
--}(module_2.c2.C));
--var x = new module_1.c();
--var y = ns.value;
--var module_3 = require("module");
 +const module_1 = require("module");
 +const module_2 = require("module");
 +const ns = require("module");
-+class C extends module_2.c2.C {
-+}
-+let x = new module_1.c();
-+let y = ns.value;
+ class C extends module_2.c2.C {
+ }
+ let x = new module_1.c();
+ let y = ns.value;
+-var module_3 = require("module");
 +const module_3 = require("module");
  Object.defineProperty(exports, "c1", { enumerable: true, get: function () { return module_3.c1; } });
  exports.z = x;
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/isolatedModulesReExportType.js.diff b/testdata/baselines/reference/submodule/compiler/isolatedModulesReExportType.js.diff
index 25420baaf0..0b525d20bd 100644
--- a/testdata/baselines/reference/submodule/compiler/isolatedModulesReExportType.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/isolatedModulesReExportType.js.diff
@@ -1,20 +1,6 @@
 --- old.isolatedModulesReExportType.js
 +++ new.isolatedModulesReExportType.js
-@@= skipped -61, +61 lines =@@
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.C = void 0;
--var C = /** @class */ (function () {
--    function C() {
--    }
--    return C;
--}());
-+class C {
-+}
- exports.C = C;
- //// [reExportValueAsTypeOnly.js]
- "use strict";
-@@= skipped -14, +11 lines =@@
+@@= skipped -72, +72 lines =@@
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.NS = exports.C = void 0;
  // OK, has a value side
diff --git a/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.errors.txt b/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.errors.txt
new file mode 100644
index 0000000000..2d268cb5a4
--- /dev/null
+++ b/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.errors.txt
@@ -0,0 +1,50 @@
+index.js(10,12): error TS2749: 'Thing' refers to a value, but is being used as a type here. Did you mean 'typeof Thing'?
+index.js(17,16): error TS2749: 'Thing' refers to a value, but is being used as a type here. Did you mean 'typeof Thing'?
+
+
+==== usage.js (0 errors) ====
+    const { Thing, useThing, cbThing } = require("./index");
+    
+    useThing(Thing.a);
+    
+    /**
+     * @typedef {Object} LogEntry
+     * @property {string} type
+     * @property {number} time
+     */
+    
+    cbThing(type => {
+        /** @type {LogEntry} */
+        const logEntry = {
+            time: Date.now(),
+            type,
+        };
+    });
+    
+==== index.js (2 errors) ====
+    /** @enum {string} */
+    const Thing = Object.freeze({
+        a: "thing",
+        b: "chill"
+    });
+    
+    exports.Thing = Thing;
+    
+    /**
+     * @param {Thing} x
+               ~~~~~
+!!! error TS2749: 'Thing' refers to a value, but is being used as a type here. Did you mean 'typeof Thing'?
+     */
+    function useThing(x) {}
+    
+    exports.useThing = useThing;
+    
+    /**
+     * @param {(x: Thing) => void} x
+                   ~~~~~
+!!! error TS2749: 'Thing' refers to a value, but is being used as a type here. Did you mean 'typeof Thing'?
+     */
+    function cbThing(x) {}
+    
+    exports.cbThing = cbThing;
+    
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.symbols b/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.symbols
index b46908c5b0..22ca93d390 100644
--- a/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.symbols
+++ b/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.symbols
@@ -6,10 +6,13 @@ const { Thing, useThing, cbThing } = require("./index");
 >useThing : Symbol(useThing, Decl(usage.js, 0, 14))
 >cbThing : Symbol(cbThing, Decl(usage.js, 0, 24))
 >require : Symbol(require)
+>"./index" : Symbol("index", Decl(index.js, 0, 0))
 
 useThing(Thing.a);
 >useThing : Symbol(useThing, Decl(usage.js, 0, 14))
+>Thing.a : Symbol(a, Decl(index.js, 1, 29))
 >Thing : Symbol(Thing, Decl(usage.js, 0, 7))
+>a : Symbol(a, Decl(index.js, 1, 29))
 
 /**
  * @typedef {Object} LogEntry
@@ -37,3 +40,51 @@ cbThing(type => {
     };
 });
 
+=== index.js ===
+/** @enum {string} */
+const Thing = Object.freeze({
+>Thing : Symbol(Thing, Decl(index.js, 1, 5))
+>Object.freeze : Symbol(freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
+>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
+>freeze : Symbol(freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
+
+    a: "thing",
+>a : Symbol(a, Decl(index.js, 1, 29))
+
+    b: "chill"
+>b : Symbol(b, Decl(index.js, 2, 15))
+
+});
+
+exports.Thing = Thing;
+>exports.Thing : Symbol(Thing, Decl(index.js, 4, 3))
+>exports : Symbol("index", Decl(index.js, 0, 0))
+>Thing : Symbol(Thing, Decl(index.js, 4, 3))
+>Thing : Symbol(Thing, Decl(index.js, 1, 5))
+
+/**
+ * @param {Thing} x
+ */
+function useThing(x) {}
+>useThing : Symbol(useThing, Decl(index.js, 6, 22))
+>x : Symbol(x, Decl(index.js, 11, 18))
+
+exports.useThing = useThing;
+>exports.useThing : Symbol(useThing, Decl(index.js, 11, 23))
+>exports : Symbol("index", Decl(index.js, 0, 0))
+>useThing : Symbol(useThing, Decl(index.js, 11, 23))
+>useThing : Symbol(useThing, Decl(index.js, 6, 22))
+
+/**
+ * @param {(x: Thing) => void} x
+ */
+function cbThing(x) {}
+>cbThing : Symbol(cbThing, Decl(index.js, 13, 28))
+>x : Symbol(x, Decl(index.js, 18, 17))
+
+exports.cbThing = cbThing;
+>exports.cbThing : Symbol(cbThing, Decl(index.js, 18, 22))
+>exports : Symbol("index", Decl(index.js, 0, 0))
+>cbThing : Symbol(cbThing, Decl(index.js, 18, 22))
+>cbThing : Symbol(cbThing, Decl(index.js, 13, 28))
+
diff --git a/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.symbols.diff b/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.symbols.diff
index 040b35b093..2a2a752d9e 100644
--- a/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.symbols.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.symbols.diff
@@ -1,20 +1,6 @@
 --- old.jsEnumTagOnObjectFrozen.symbols
 +++ new.jsEnumTagOnObjectFrozen.symbols
-@@= skipped -5, +5 lines =@@
- >useThing : Symbol(useThing, Decl(usage.js, 0, 14))
- >cbThing : Symbol(cbThing, Decl(usage.js, 0, 24))
- >require : Symbol(require)
-->"./index" : Symbol("index", Decl(index.js, 0, 0))
-
- useThing(Thing.a);
- >useThing : Symbol(useThing, Decl(usage.js, 0, 14))
-->Thing.a : Symbol(a, Decl(index.js, 1, 29))
- >Thing : Symbol(Thing, Decl(usage.js, 0, 7))
-->a : Symbol(a, Decl(index.js, 1, 29))
-
- /**
-  * @typedef {Object} LogEntry
-@@= skipped -24, +21 lines =@@
+@@= skipped -29, +29 lines =@@
 
          time: Date.now(),
  >time : Symbol(time, Decl(usage.js, 12, 22))
@@ -26,54 +12,46 @@
 
          type,
  >type : Symbol(type, Decl(usage.js, 13, 25))
-
-     };
- });
--
--=== index.js ===
--/** @enum {string} */
--const Thing = Object.freeze({
+@@= skipped -13, +13 lines =@@
+ === index.js ===
+ /** @enum {string} */
+ const Thing = Object.freeze({
 ->Thing : Symbol(Thing, Decl(index.js, 1, 5), Decl(index.js, 0, 4))
 ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
-->Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
++>Thing : Symbol(Thing, Decl(index.js, 1, 5))
++>Object.freeze : Symbol(freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
+ >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
 ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
--
--    a: "thing",
-->a : Symbol(a, Decl(index.js, 1, 29))
--
--    b: "chill"
-->b : Symbol(b, Decl(index.js, 2, 15))
--
--});
--
--exports.Thing = Thing;
-->exports.Thing : Symbol(Thing, Decl(index.js, 4, 3))
++>freeze : Symbol(freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
+
+     a: "thing",
+ >a : Symbol(a, Decl(index.js, 1, 29))
+@@= skipped -15, +15 lines =@@
+
+ exports.Thing = Thing;
+ >exports.Thing : Symbol(Thing, Decl(index.js, 4, 3))
 ->exports : Symbol(Thing, Decl(index.js, 4, 3))
-->Thing : Symbol(Thing, Decl(index.js, 4, 3))
++>exports : Symbol("index", Decl(index.js, 0, 0))
+ >Thing : Symbol(Thing, Decl(index.js, 4, 3))
 ->Thing : Symbol(Thing, Decl(index.js, 1, 5), Decl(index.js, 0, 4))
--
--/**
-- * @param {Thing} x
-- */
--function useThing(x) {}
-->useThing : Symbol(useThing, Decl(index.js, 6, 22))
-->x : Symbol(x, Decl(index.js, 11, 18))
--
--exports.useThing = useThing;
-->exports.useThing : Symbol(useThing, Decl(index.js, 11, 23))
++>Thing : Symbol(Thing, Decl(index.js, 1, 5))
+
+ /**
+  * @param {Thing} x
+@@= skipped -13, +13 lines =@@
+
+ exports.useThing = useThing;
+ >exports.useThing : Symbol(useThing, Decl(index.js, 11, 23))
 ->exports : Symbol(useThing, Decl(index.js, 11, 23))
-->useThing : Symbol(useThing, Decl(index.js, 11, 23))
-->useThing : Symbol(useThing, Decl(index.js, 6, 22))
--
--/**
-- * @param {(x: Thing) => void} x
-- */
--function cbThing(x) {}
-->cbThing : Symbol(cbThing, Decl(index.js, 13, 28))
-->x : Symbol(x, Decl(index.js, 18, 17))
--
--exports.cbThing = cbThing;
-->exports.cbThing : Symbol(cbThing, Decl(index.js, 18, 22))
++>exports : Symbol("index", Decl(index.js, 0, 0))
+ >useThing : Symbol(useThing, Decl(index.js, 11, 23))
+ >useThing : Symbol(useThing, Decl(index.js, 6, 22))
+
+@@= skipped -13, +13 lines =@@
+
+ exports.cbThing = cbThing;
+ >exports.cbThing : Symbol(cbThing, Decl(index.js, 18, 22))
 ->exports : Symbol(cbThing, Decl(index.js, 18, 22))
-->cbThing : Symbol(cbThing, Decl(index.js, 18, 22))
-->cbThing : Symbol(cbThing, Decl(index.js, 13, 28))
++>exports : Symbol("index", Decl(index.js, 0, 0))
+ >cbThing : Symbol(cbThing, Decl(index.js, 18, 22))
+ >cbThing : Symbol(cbThing, Decl(index.js, 13, 28))
diff --git a/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.types b/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.types
index a845130443..5d912b169c 100644
--- a/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.types
+++ b/testdata/baselines/reference/submodule/compiler/jsEnumTagOnObjectFrozen.types
@@ -2,19 +2,19 @@
 
 === usage.js ===
 const { Thing, useThing, cbThing } = require("./index");
->Thing : any
->useThing : any
->cbThing : any
->require("./index") : any
+>Thing : Readonly<{ a: "thing"; b: "chill"; }>
+>useThing : (x: Thing) => void
+>cbThing : (x: (x: Thing) => void) => void
+>require("./index") : typeof import("./index")
 >require : any
 >"./index" : "./index"
 
 useThing(Thing.a);
->useThing(Thing.a) : any
->useThing : any
->Thing.a : any
->Thing : any
->a : any
+>useThing(Thing.a) : void
+>useThing : (x: Thing) => void
+>Thing.a : "thing"
+>Thing : Readonly<{ a: "thing"; b: "chill"; }>
+>a : "thing"
 
 /**
  * @typedef {Object} LogEntry
@@ -23,15 +23,15 @@ useThing(Thing.a);
  */
 
 cbThing(type => {
->cbThing(type => {    /** @type {LogEntry} */    const logEntry = {        time: Date.now(),        type,    };}) : any
->cbThing : any
->type => {    /** @type {LogEntry} */    const logEntry = {        time: Date.now(),        type,    };} : (type: any) => void
->type : any
+>cbThing(type => {    /** @type {LogEntry} */    const logEntry = {        time: Date.now(),        type,    };}) : void
+>cbThing : (x: (x: Thing) => void) => void
+>type => {    /** @type {LogEntry} */    const logEntry = {        time: Date.now(),        type,    };} : (type: Thing) => void
+>type : Thing
 
     /** @type {LogEntry} */
     const logEntry = {
 >logEntry : LogEntry
->{        time: Date.now(),        type,    } : { time: number; type: any; }
+>{        time: Date.now(),        type,    } : { time: number; type: Thing; }
 
         time: Date.now(),
 >time : number
@@ -41,8 +41,63 @@ cbThing(type => {
 >now : () => number
 
         type,
->type : any
+>type : Thing
 
     };
 });
 
+=== index.js ===
+/** @enum {string} */
+const Thing = Object.freeze({
+>Thing : Readonly<{ a: "thing"; b: "chill"; }>
+>Object.freeze({    a: "thing",    b: "chill"}) : Readonly<{ a: "thing"; b: "chill"; }>
+>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; }
+>Object : ObjectConstructor
+>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; }
+>{    a: "thing",    b: "chill"} : { a: "thing"; b: "chill"; }
+
+    a: "thing",
+>a : "thing"
+>"thing" : "thing"
+
+    b: "chill"
+>b : "chill"
+>"chill" : "chill"
+
+});
+
+exports.Thing = Thing;
+>exports.Thing = Thing : Readonly<{ a: "thing"; b: "chill"; }>
+>exports.Thing : Readonly<{ a: "thing"; b: "chill"; }>
+>exports : typeof import(".")
+>Thing : Readonly<{ a: "thing"; b: "chill"; }>
+>Thing : Readonly<{ a: "thing"; b: "chill"; }>
+
+/**
+ * @param {Thing} x
+ */
+function useThing(x) {}
+>useThing : (x: Thing) => void
+>x : Thing
+
+exports.useThing = useThing;
+>exports.useThing = useThing : (x: Thing) => void
+>exports.useThing : (x: Thing) => void
+>exports : typeof import(".")
+>useThing : (x: Thing) => void
+>useThing : (x: Thing) => void
+
+/**
+ * @param {(x: Thing) => void} x
+ */
+function cbThing(x) {}
+>cbThing : (x: (x: Thing) => void) => void
+>x : (x: Thing) => void
+
+exports.cbThing = cbThing;
+>exports.cbThing = cbThing : (x: (x: Thing) => void) => void
+>exports.cbThing : (x: (x: Thing) => void) => void
+>exports : typeof import(".")
+>cbThing : (x: (x: Thing) => void) => void
+>cbThing : (x: (x: Thing) => void) => void
+
diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithDeclarationEmitPathSameAsInput.js.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithDeclarationEmitPathSameAsInput.js.diff
index 77a4e6f994..cea40b918a 100644
--- a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithDeclarationEmitPathSameAsInput.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithDeclarationEmitPathSameAsInput.js.diff
@@ -1,16 +1,9 @@
 --- old.jsFileCompilationWithDeclarationEmitPathSameAsInput.js
 +++ new.jsFileCompilationWithDeclarationEmitPathSameAsInput.js
-@@= skipped -7, +7 lines =@@
- declare function isC(): boolean;
-
+@@= skipped -9, +9 lines =@@
  //// [a.js]
--var c = /** @class */ (function () {
--    function c() {
--    }
--    return c;
--}());
-+class c {
-+}
+ class c {
+ }
 +
 +
 +//// [a.d.ts]
diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js.map.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js.map.diff
index bded02d3e6..1eb06a93c9 100644
--- a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.js.map.diff
@@ -2,10 +2,8 @@
 +++ new.jsFileCompilationWithMapFileAsJs.js.map
 @@= skipped -0, +0 lines =@@
  //// [a.js.map]
--{"version":3,"file":"a.js","sourceRoot":"","sources":["a.ts"],"names":[],"mappings":"AAAA;IAAA;IACA,CAAC;IAAD,QAAC;AAAD,CAAC,AADD,IACC"}
--//// https://sokra.github.io/source-map-visualization#base64,dmFyIGMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gYygpIHsNCiAgICB9DQogICAgcmV0dXJuIGM7DQp9KCkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9YS5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFBQTtJQUNBLENBQUM7SUFBRCxRQUFDO0FBQUQsQ0FBQyxBQURELElBQ0MifQ==,Y2xhc3MgYyB7Cn0K
-+{"version":3,"file":"a.js","sourceRoot":"","sources":["a.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC;CACN"}
-+//// https://sokra.github.io/source-map-visualization#base64,Y2xhc3MgYyB7DQp9DQovLyMgc291cmNlTWFwcGluZ1VSTD1hLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDO0NBQ04ifQ==,Y2xhc3MgYyB7Cn0K
+ {"version":3,"file":"a.js","sourceRoot":"","sources":["a.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC;CACN"}
+ //// https://sokra.github.io/source-map-visualization#base64,Y2xhc3MgYyB7DQp9DQovLyMgc291cmNlTWFwcGluZ1VSTD1hLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDO0NBQ04ifQ==,Y2xhc3MgYyB7Cn0K
 +
 +//// [b.js.map]
 +{"version":3,"file":"b.js","sourceRoot":"","sources":["b.js"],"names":[],"mappings":"AAAA,SAAS,GAAG,GAAG;AAAC,CACf"}
diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.sourcemap.txt.diff
index cb39a2da0c..84ba1b0da2 100644
--- a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJs.sourcemap.txt.diff
@@ -1,58 +1,10 @@
 --- old.jsFileCompilationWithMapFileAsJs.sourcemap.txt
 +++ new.jsFileCompilationWithMapFileAsJs.sourcemap.txt
-@@= skipped -7, +7 lines =@@
- emittedFile:a.js
- sourceFile:a.ts
- -------------------------------------------------------------------
-->>>var c = /** @class */ (function () {
--1 >
--2 >^^^^^^^^^^^^^^^^^^^->
--1 >
--1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
-----
-->>>    function c() {
--1->^^^^
--2 >    ^^->
--1->
--1->Emitted(2, 5) Source(1, 1) + SourceIndex(0)
-----
-->>>    }
--1->^^^^
--2 >    ^
--3 >     ^^^^^^^^^->
--1->class c {
--  >
--2 >    }
--1->Emitted(3, 5) Source(2, 1) + SourceIndex(0)
--2 >Emitted(3, 6) Source(2, 2) + SourceIndex(0)
-----
-->>>    return c;
--1->^^^^
--2 >    ^^^^^^^^
--1->
--2 >    }
--1->Emitted(4, 5) Source(2, 1) + SourceIndex(0)
--2 >Emitted(4, 13) Source(2, 2) + SourceIndex(0)
-----
-->>>}());
-+>>>class c {
-+1 >
-+2 >^^^^^^
-+3 >      ^
-+1 >
-+2 >class 
-+3 >      c
-+1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
-+2 >Emitted(1, 7) Source(1, 7) + SourceIndex(0)
-+3 >Emitted(1, 8) Source(1, 8) + SourceIndex(0)
-+---
-+>>>}
-+1 >^
-+2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
-+1 > {
-+  >}
-+1 >Emitted(2, 2) Source(2, 2) + SourceIndex(0)
-+---
+@@= skipped -25, +25 lines =@@
+   >}
+ 1 >Emitted(2, 2) Source(2, 2) + SourceIndex(0)
+ ---
+->>>//# sourceMappingURL=a.js.map
 +>>>//# sourceMappingURL=a.js.map===================================================================
 +JsFile: b.js
 +mapUrl: b.js.map
@@ -78,26 +30,13 @@
 +4 >Emitted(1, 16) Source(1, 16) + SourceIndex(0)
 +---
 +>>>}
- 1 >
- 2 >^
--3 > 
--4 > ^^^^
--5 >     ^^^^^^^^^^^^^^^^^^^^^^^->
--1 >
--2 >}
--3 > 
--4 > class c {
--  > }
--1 >Emitted(5, 1) Source(2, 1) + SourceIndex(0)
--2 >Emitted(5, 2) Source(2, 2) + SourceIndex(0)
--3 >Emitted(5, 2) Source(1, 1) + SourceIndex(0)
--4 >Emitted(5, 6) Source(2, 2) + SourceIndex(0)
++1 >
++2 >^
 +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
 +1 >{
 +2 >
 +  >}
 +1 >Emitted(2, 1) Source(1, 17) + SourceIndex(0)
 +2 >Emitted(2, 2) Source(2, 2) + SourceIndex(0)
- ---
-->>>//# sourceMappingURL=a.js.map
++---
 +>>>//# sourceMappingURL=b.js.map
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.sourcemap.txt.diff
index 9aff77c802..8f77d82282 100644
--- a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithInlineSourceMap.sourcemap.txt.diff
@@ -1,66 +1,10 @@
 --- old.jsFileCompilationWithMapFileAsJsWithInlineSourceMap.sourcemap.txt
 +++ new.jsFileCompilationWithMapFileAsJsWithInlineSourceMap.sourcemap.txt
-@@= skipped -0, +0 lines =@@
- ===================================================================
- JsFile: a.js
--mapUrl: data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFBQTtJQUNBLENBQUM7SUFBRCxRQUFDO0FBQUQsQ0FBQyxBQURELElBQ0MifQ==
-+mapUrl: data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDO0NBQ04ifQ==
- sourceRoot: 
- sources: a.ts
- ===================================================================
-@@= skipped -7, +7 lines =@@
- emittedFile:a.js
- sourceFile:a.ts
- -------------------------------------------------------------------
-->>>var c = /** @class */ (function () {
--1 >
--2 >^^^^^^^^^^^^^^^^^^^->
--1 >
--1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
-----
-->>>    function c() {
--1->^^^^
--2 >    ^^->
--1->
--1->Emitted(2, 5) Source(1, 1) + SourceIndex(0)
-----
-->>>    }
--1->^^^^
--2 >    ^
--3 >     ^^^^^^^^^->
--1->class c {
--  >
--2 >    }
--1->Emitted(3, 5) Source(2, 1) + SourceIndex(0)
--2 >Emitted(3, 6) Source(2, 2) + SourceIndex(0)
-----
-->>>    return c;
--1->^^^^
--2 >    ^^^^^^^^
--1->
--2 >    }
--1->Emitted(4, 5) Source(2, 1) + SourceIndex(0)
--2 >Emitted(4, 13) Source(2, 2) + SourceIndex(0)
-----
-->>>}());
-+>>>class c {
-+1 >
-+2 >^^^^^^
-+3 >      ^
-+1 >
-+2 >class 
-+3 >      c
-+1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
-+2 >Emitted(1, 7) Source(1, 7) + SourceIndex(0)
-+3 >Emitted(1, 8) Source(1, 8) + SourceIndex(0)
-+---
-+>>>}
-+1 >^
-+2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
-+1 > {
-+  >}
-+1 >Emitted(2, 2) Source(2, 2) + SourceIndex(0)
-+---
+@@= skipped -25, +25 lines =@@
+   >}
+ 1 >Emitted(2, 2) Source(2, 2) + SourceIndex(0)
+ ---
+->>>//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDO0NBQ04ifQ==
 +>>>//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDO0NBQ04ifQ=====================================================================
 +JsFile: b.js
 +mapUrl: data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxHQUFHLEdBQUc7QUFBQyxDQUNmIn0=
@@ -86,26 +30,13 @@
 +4 >Emitted(1, 16) Source(1, 16) + SourceIndex(0)
 +---
 +>>>}
- 1 >
- 2 >^
--3 > 
--4 > ^^^^
--5 >     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
--1 >
--2 >}
--3 > 
--4 > class c {
--  > }
--1 >Emitted(5, 1) Source(2, 1) + SourceIndex(0)
--2 >Emitted(5, 2) Source(2, 2) + SourceIndex(0)
--3 >Emitted(5, 2) Source(1, 1) + SourceIndex(0)
--4 >Emitted(5, 6) Source(2, 2) + SourceIndex(0)
++1 >
++2 >^
 +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
 +1 >{
 +2 >
 +  >}
 +1 >Emitted(2, 1) Source(1, 17) + SourceIndex(0)
 +2 >Emitted(2, 2) Source(2, 2) + SourceIndex(0)
- ---
-->>>//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFBQTtJQUNBLENBQUM7SUFBRCxRQUFDO0FBQUQsQ0FBQyxBQURELElBQ0MifQ==
++---
 +>>>//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxHQUFHLEdBQUc7QUFBQyxDQUNmIn0=
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.js.map.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.js.map.diff
index cd7634034b..64d40d95c6 100644
--- a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.js.map.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.js.map.diff
@@ -2,8 +2,7 @@
 +++ new.jsFileCompilationWithMapFileAsJsWithOutDir.js.map
 @@= skipped -0, +0 lines =@@
  //// [a.js.map]
--{"version":3,"file":"a.js","sourceRoot":"","sources":["../a.ts"],"names":[],"mappings":"AAAA;IAAA;IACA,CAAC;IAAD,QAAC;AAAD,CAAC,AADD,IACC"}
-+{"version":3,"file":"a.js","sourceRoot":"","sources":["../a.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC;CACN"}
+ {"version":3,"file":"a.js","sourceRoot":"","sources":["../a.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC;CACN"}
  //// [b.js.map]
 -{"version":3,"file":"b.js","sourceRoot":"","sources":["../b.js"],"names":[],"mappings":"AAAA,SAAS,GAAG;AACZ,CAAC"}
 +{"version":3,"file":"b.js","sourceRoot":"","sources":["../b.js"],"names":[],"mappings":"AAAA,SAAS,GAAG,GAAG;AAAC,CACf"}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.sourcemap.txt.diff b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.sourcemap.txt.diff
index 109a7da656..51e3373196 100644
--- a/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.sourcemap.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsFileCompilationWithMapFileAsJsWithOutDir.sourcemap.txt.diff
@@ -1,74 +1,6 @@
 --- old.jsFileCompilationWithMapFileAsJsWithOutDir.sourcemap.txt
 +++ new.jsFileCompilationWithMapFileAsJsWithOutDir.sourcemap.txt
-@@= skipped -7, +7 lines =@@
- emittedFile:out/a.js
- sourceFile:../a.ts
- -------------------------------------------------------------------
-->>>var c = /** @class */ (function () {
--1 >
--2 >^^^^^^^^^^^^^^^^^^^->
--1 >
-+>>>class c {
-+1 >
-+2 >^^^^^^
-+3 >      ^
-+1 >
-+2 >class 
-+3 >      c
- 1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
-----
-->>>    function c() {
--1->^^^^
--2 >    ^^->
--1->
--1->Emitted(2, 5) Source(1, 1) + SourceIndex(0)
-----
-->>>    }
--1->^^^^
--2 >    ^
--3 >     ^^^^^^^^^->
--1->class c {
--  >
--2 >    }
--1->Emitted(3, 5) Source(2, 1) + SourceIndex(0)
--2 >Emitted(3, 6) Source(2, 2) + SourceIndex(0)
-----
-->>>    return c;
--1->^^^^
--2 >    ^^^^^^^^
--1->
--2 >    }
--1->Emitted(4, 5) Source(2, 1) + SourceIndex(0)
--2 >Emitted(4, 13) Source(2, 2) + SourceIndex(0)
-----
-->>>}());
--1 >
--2 >^
--3 > 
--4 > ^^^^
--5 >     ^^^^^^^^^^^^^^^^^^^^^^^->
--1 >
--2 >}
--3 > 
--4 > class c {
--  > }
--1 >Emitted(5, 1) Source(2, 1) + SourceIndex(0)
--2 >Emitted(5, 2) Source(2, 2) + SourceIndex(0)
--3 >Emitted(5, 2) Source(1, 1) + SourceIndex(0)
--4 >Emitted(5, 6) Source(2, 2) + SourceIndex(0)
-+2 >Emitted(1, 7) Source(1, 7) + SourceIndex(0)
-+3 >Emitted(1, 8) Source(1, 8) + SourceIndex(0)
-+---
-+>>>}
-+1 >^
-+2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
-+1 > {
-+  >}
-+1 >Emitted(2, 2) Source(2, 2) + SourceIndex(0)
- ---
- >>>//# sourceMappingURL=a.js.map===================================================================
- JsFile: b.js
-@@= skipped -60, +32 lines =@@
+@@= skipped -39, +39 lines =@@
  1 >
  2 >^^^^^^^^^
  3 >         ^^^
diff --git a/testdata/baselines/reference/submodule/compiler/jsdocInTypeScript.js.diff b/testdata/baselines/reference/submodule/compiler/jsdocInTypeScript.js.diff
index fc17b20a50..afcfd4e612 100644
--- a/testdata/baselines/reference/submodule/compiler/jsdocInTypeScript.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsdocInTypeScript.js.diff
@@ -1,41 +1,23 @@
 --- old.jsdocInTypeScript.js
 +++ new.jsdocInTypeScript.js
-@@= skipped -59, +59 lines =@@
-
+@@= skipped -60, +60 lines =@@
 
  //// [jsdocInTypeScript.js]
--var T = /** @class */ (function () {
--    function T() {
--    }
--    return T;
--}());
-+class T {
+ class T {
 +    prop;
-+}
+ }
  x.prop;
  // @param type has no effect.
- /**
-@@= skipped -17, +15 lines =@@
- f(true).length;
- // @type has no effect either.
- /** @type {{ x?: number }} */
--var z = {};
-+const z = {};
- z.x = 1; // Error
+@@= skipped -18, +19 lines =@@
  /** @template T */
  function tem(t) { return {}; }
--var i; // Should succeed thanks to type parameter default
+ let i; // Should succeed thanks to type parameter default
 -/** @typedef {string} N.Str */
 -var M = N; // Error: @typedef does not create namespaces in TypeScript code.
-+let i; // Should succeed thanks to type parameter default
  // Not legal JSDoc, but that shouldn't matter in TypeScript.
  /**
   * @type {{foo: (function(string, string): string)}}
-  */
--var obj = { foo: function (a, b) { return a + b; } };
-+const obj = { foo: (a, b) => a + b };
- /** @enum {string} */
- var E = {};
+@@= skipped -12, +10 lines =@@
  E[""];
  // make sure import types in JSDoc are not resolved
  /** @type {import("should-not-be-resolved").Type} */
diff --git a/testdata/baselines/reference/submodule/compiler/jsdocParameterParsingInvalidName.js.diff b/testdata/baselines/reference/submodule/compiler/jsdocParameterParsingInvalidName.js.diff
deleted file mode 100644
index ef9f6d1e15..0000000000
--- a/testdata/baselines/reference/submodule/compiler/jsdocParameterParsingInvalidName.js.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- old.jsdocParameterParsingInvalidName.js
-+++ new.jsdocParameterParsingInvalidName.js
-@@= skipped -9, +9 lines =@@
- }
-
- //// [jsdocParameterParsingInvalidName.js]
--var c = /** @class */ (function () {
--    function c() {
--    }
-+class c {
-     /**
-      * @param {string} [`foo]
-      */
--    c.prototype.method = function (foo) {
--    };
--    return c;
--}());
-+    method(foo) {
-+    }
-+}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/json.stringify.js.diff b/testdata/baselines/reference/submodule/compiler/json.stringify.js.diff
deleted file mode 100644
index 4c22f7ff72..0000000000
--- a/testdata/baselines/reference/submodule/compiler/json.stringify.js.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- old.json.stringify.js
-+++ new.json.stringify.js
-@@= skipped -12, +12 lines =@@
- JSON.stringify(value, undefined, 2);
- JSON.stringify(value, null, 2);
- JSON.stringify(value, ["a", 1], 2);
--JSON.stringify(value, function (k) { return undefined; }, 2);
-+JSON.stringify(value, (k) => undefined, 2);
- JSON.stringify(value, undefined, 2);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsxAttributeMissingInitializer.js.diff b/testdata/baselines/reference/submodule/compiler/jsxAttributeMissingInitializer.js.diff
deleted file mode 100644
index 9fc0fbab35..0000000000
--- a/testdata/baselines/reference/submodule/compiler/jsxAttributeMissingInitializer.js.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- old.jsxAttributeMissingInitializer.js
-+++ new.jsxAttributeMissingInitializer.js
-@@= skipped -5, +5 lines =@@
-
-
- //// [jsxAttributeMissingInitializer.jsx]
--var x = 
; --var y = 0; -+const x =
; -+const y = 0; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxCallElaborationCheckNoCrash1.js.diff b/testdata/baselines/reference/submodule/compiler/jsxCallElaborationCheckNoCrash1.js.diff index 7fa41d9a13..c1dbfd53f8 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxCallElaborationCheckNoCrash1.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxCallElaborationCheckNoCrash1.js.diff @@ -8,12 +8,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Hoc = void 0; -var React = require("react"); --var Hoc = function (TagElement) { -- var Component = function () { return React.createElement(TagElement, null); }; +/// +const React = require("react"); -+const Hoc = (TagElement) => { -+ const Component = () => React.createElement(TagElement, null); - return Component; - }; - exports.Hoc = Hoc; \ No newline at end of file + const Hoc = (TagElement) => { + const Component = () => React.createElement(TagElement, null); + return Component; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxCallbackWithDestructuring.js.diff b/testdata/baselines/reference/submodule/compiler/jsxCallbackWithDestructuring.js.diff deleted file mode 100644 index 3ade23af33..0000000000 --- a/testdata/baselines/reference/submodule/compiler/jsxCallbackWithDestructuring.js.diff +++ /dev/null @@ -1,37 +0,0 @@ ---- old.jsxCallbackWithDestructuring.js -+++ new.jsxCallbackWithDestructuring.js -@@= skipped -29, +29 lines =@@ - - //// [jsxCallbackWithDestructuring.jsx] - "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MyComponent = void 0; --var MyComponent = /** @class */ (function (_super) { -- __extends(MyComponent, _super); -- function MyComponent() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return MyComponent; --}(Component)); -+class MyComponent extends Component { -+} - exports.MyComponent = MyComponent; --; -+ { }}/>; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxChildrenArrayWrongType.js.diff b/testdata/baselines/reference/submodule/compiler/jsxChildrenArrayWrongType.js.diff index f17c17a3b6..0f17e08fc4 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxChildrenArrayWrongType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxChildrenArrayWrongType.js.diff @@ -7,7 +7,7 @@ -"use strict"; /// /// --var b = (React.createElement(Foo, null, +-const b = (React.createElement(Foo, null, - React.createElement("div", null), - "aa")); +const b = (React.createElement(Foo, null, React.createElement("div", null), "aa")); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxChildrenGenericContextualTypes.js.diff b/testdata/baselines/reference/submodule/compiler/jsxChildrenGenericContextualTypes.js.diff index 4748d1dda6..f570d9e0ed 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxChildrenGenericContextualTypes.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxChildrenGenericContextualTypes.js.diff @@ -5,26 +5,6 @@ //// [jsxChildrenGenericContextualTypes.jsx] -"use strict"; --var Elem = function (p) { return
; }; --Elem({ prop: { a: "x" }, children: function (i) { return ({ a: "z" }); } }); --var q = ; --var qq = {function (i) { return ({ a: "z" }); }}; --var ElemLit = function (p) { return
; }; --ElemLit({ prop: "x", children: function () { return "x"; } }); --var j = ; --var jj = {function () { return "x"; }}; -+const Elem = (p) =>
; -+Elem({ prop: { a: "x" }, children: i => ({ a: "z" }) }); -+const q = ({ a: "z" })}/>; -+const qq = {i => ({ a: "z" })}; -+const ElemLit = (p) =>
; -+ElemLit({ prop: "x", children: () => "x" }); -+const j = "x"}/>; -+const jj = {() => "x"}; - // Should error --var arg = ; --var argchild = {function (p) { return "y"; }}; --var mismatched = {function () { return 12; }}; -+const arg = "y"}/>; -+const argchild = {p => "y"}; -+const mismatched = {() => 12}; \ No newline at end of file + const Elem = (p) =>
; + Elem({ prop: { a: "x" }, children: i => ({ a: "z" }) }); + const q = ({ a: "z" })}/>; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxChildrenIndividualErrorElaborations.js.diff b/testdata/baselines/reference/submodule/compiler/jsxChildrenIndividualErrorElaborations.js.diff index 605390a00d..9633d2815a 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxChildrenIndividualErrorElaborations.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxChildrenIndividualErrorElaborations.js.diff @@ -10,41 +10,38 @@ return React.createElement(React.Fragment, null); } // Incompatible child. --var a = React.createElement(Blah, null, function (x) { return x; }); -+var a = React.createElement(Blah, null, x => x); + var a = React.createElement(Blah, null, x => x); // Blah components don't accept text as child elements -var a = React.createElement(Blah, null, "Hello unexpected text!"); +var a = React.createElement(Blah, null, "Hello unexpected text"); // Blah components don't accept multiple children. -var a = React.createElement(Blah, null, -- function (x) { return "" + x; }, -- function (x) { return "" + x; }); +- x => "" + x, +- x => "" + x); +var a = React.createElement(Blah, null, x => "" + x, x => "" + x); function Blah2(props) { return React.createElement(React.Fragment, null); } // Incompatible child. --var a = React.createElement(Blah2, null, function (x) { return x; }); -+var a = React.createElement(Blah2, null, x => x); + var a = React.createElement(Blah2, null, x => x); // Blah2 components don't accept text as child elements -var a = React.createElement(Blah2, null, "Hello unexpected text!"); +var a = React.createElement(Blah2, null, "Hello unexpected text"); // Blah2 components don't accept multiple children of the wrong type. -var a = React.createElement(Blah2, null, -- function (x) { return x; }, -- function (x) { return x; }); +- x => x, +- x => x); +var a = React.createElement(Blah2, null, x => x, x => x); function Blah3(props) { return React.createElement(React.Fragment, null); } // Incompatible child. --var a = React.createElement(Blah3, null, function (x) { return x; }); -+var a = React.createElement(Blah3, null, x => x); + var a = React.createElement(Blah3, null, x => x); // Blah3 components don't accept text as child elements -var a = React.createElement(Blah3, null, "Hello unexpected text!"); +var a = React.createElement(Blah3, null, "Hello unexpected text"); // Blah3 components don't accept multiple children of the wrong type. -var a = React.createElement(Blah3, null, -- function (x) { return x; }, -- function (x) { return x; }); +- x => x, +- x => x); +var a = React.createElement(Blah3, null, x => x, x => x); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxChildrenSingleChildConfusableWithMultipleChildrenNoError.js.diff b/testdata/baselines/reference/submodule/compiler/jsxChildrenSingleChildConfusableWithMultipleChildrenNoError.js.diff index f159f42c4e..4f2d8d312a 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxChildrenSingleChildConfusableWithMultipleChildrenNoError.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxChildrenSingleChildConfusableWithMultipleChildrenNoError.js.diff @@ -5,21 +5,6 @@ //// [jsxChildrenSingleChildConfusableWithMultipleChildrenNoError.js] "use strict"; -/// --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); exports.App = void 0; -var React = require("react"); @@ -27,22 +12,4 @@ +const React = require("react"); function TabLayout(props) { return React.createElement("div", null); - } --var App = /** @class */ (function (_super) { -- __extends(App, _super); -- function App() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- App.prototype.render = function () { -+class App extends React.Component { -+ render() { - return React.createElement(TabLayout, null, [ - ['Users', React.createElement("div", null)], - ['Products', React.createElement("div", null)] - ]); -- }; -- return App; --}(React.Component)); -+ } -+} - exports.App = App; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxComplexSignatureHasApplicabilityError.js.diff b/testdata/baselines/reference/submodule/compiler/jsxComplexSignatureHasApplicabilityError.js.diff index 19874c82c5..1a21218483 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxComplexSignatureHasApplicabilityError.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxComplexSignatureHasApplicabilityError.js.diff @@ -16,10 +16,5 @@ +/// +const React = require("react"); function createReactSingleSelect(WrappedComponent) { -- return function (props) { -- return (React.createElement(ReactSelectClass, __assign({}, props, { multi: false, autosize: false, value: props.value, onChange: function (value) { -+ return (props) => { -+ return (React.createElement(ReactSelectClass, __assign({}, props, { multi: false, autosize: false, value: props.value, onChange: (value) => { - if (props.onChange) { - props.onChange(value === null ? undefined : value); - } \ No newline at end of file + return (props) => { + return (React.createElement(ReactSelectClass, __assign({}, props, { multi: false, autosize: false, value: props.value, onChange: (value) => { \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxComponentTypeErrors.js.diff b/testdata/baselines/reference/submodule/compiler/jsxComponentTypeErrors.js.diff index 1cd4ee8854..4ce429b405 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxComponentTypeErrors.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxComponentTypeErrors.js.diff @@ -5,51 +5,17 @@ //// [jsxComponentTypeErrors.jsx] -"use strict"; --function FunctionComponent(_a) { -- var type = _a.type; -+function FunctionComponent({ type }) { + function FunctionComponent({ type }) { return { -- type: type -+ type - }; - } - FunctionComponent.useThis = function () { + type +@@= skipped -10, +9 lines =@@ return ; }; --var ClassComponent = /** @class */ (function () { -- function ClassComponent() { + class ClassComponent { +- constructor() { - this.type = 'string'; - } -- return ClassComponent; --}()); --var MixedComponent = Math.random() ? FunctionComponent : ClassComponent; --var elem1 = ; --var elem2 = ; --var elem3 = ; --var elem4 = ; --var obj = { -- MemberFunctionComponent: function () { -+class ClassComponent { + type = 'string'; -+} -+const MixedComponent = Math.random() ? FunctionComponent : ClassComponent; -+const elem1 = ; -+const elem2 = ; -+const elem3 = ; -+const elem4 = ; -+const obj = { -+ MemberFunctionComponent() { - return {}; - }, -- MemberClassComponent: /** @class */ (function () { -- function MemberClassComponent() { -- } -- return MemberClassComponent; -- }()), -+ MemberClassComponent: class { -+ }, - }; --var elem5 = ; --var elem6 = ; -+const elem5 = ; -+const elem6 = ; \ No newline at end of file + } + const MixedComponent = Math.random() ? FunctionComponent : ClassComponent; + const elem1 = ; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxElementClassTooManyParams.js.diff b/testdata/baselines/reference/submodule/compiler/jsxElementClassTooManyParams.js.diff index a475b0ba15..2cd0bb4f1a 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxElementClassTooManyParams.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxElementClassTooManyParams.js.diff @@ -5,15 +5,8 @@ //// [jsxElementClassTooManyParams.jsx] -"use strict"; --var ElemClass = /** @class */ (function () { -- function ElemClass(props) { -+class ElemClass { + class ElemClass { + props; -+ constructor(props) { + constructor(props) { this.props = props; - } -- return ElemClass; --}()); --var elem = ; -+} -+const elem = ; \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxElementType.js.diff b/testdata/baselines/reference/submodule/compiler/jsxElementType.js.diff index f9f3d9efc7..a68ad5ac7d 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxElementType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxElementType.js.diff @@ -4,21 +4,6 @@ //// [jsxElementType.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { @@ -27,103 +12,20 @@ - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); --}; --var __generator = (this && this.__generator) || function (thisArg, body) { -- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); -- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -- function verb(n) { return function (v) { return step([n, v]); }; } -- function step(op) { -- if (f) throw new TypeError("Generator is already executing."); -- while (g && (g = 0, op[0] && (_ = 0)), _) try { -- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -- if (y = 0, t) op = [op[0] & 2, t.value]; -- switch (op[0]) { -- case 0: case 1: t = op; break; -- case 4: _.label++; return { value: op[1], done: false }; -- case 5: _.label++; y = op[1]; op = [0]; continue; -- case 7: op = _.ops.pop(); _.trys.pop(); continue; -- default: -- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -- if (t[2]) _.ops.pop(); -- _.trys.pop(); continue; -- } -- op = body.call(thisArg, _); -- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -- } -}; Object.defineProperty(exports, "__esModule", { value: true }); /// -var React = require("react"); --var Component; --var RenderElement = function (_a) { -- var title = _a.title; -- return React.createElement("div", null, title); --}; +const React = require("react"); -+let Component; -+const RenderElement = ({ title }) => React.createElement("div", null, title); + let Component; + const RenderElement = ({ title }) => React.createElement("div", null, title); Component = RenderElement; - React.createElement(RenderElement, null); - React.createElement(RenderElement, { title: "react" }); - React.createElement(RenderElement, { excessProp: true }); --var RenderString = function (_a) { -- var title = _a.title; -- return title; --}; -+const RenderString = ({ title }) => title; - Component = RenderString; - React.createElement(RenderString, null); - React.createElement(RenderString, { title: "react" }); - React.createElement(RenderString, { excessProp: true }); --var RenderNumber = function (_a) { -- var title = _a.title; -- return title.length; --}; -+const RenderNumber = ({ title }) => title.length; - Component = RenderNumber; - React.createElement(RenderNumber, null); - React.createElement(RenderNumber, { title: "react" }); - React.createElement(RenderNumber, { excessProp: true }); --var RenderArray = function (_a) { -- var title = _a.title; -- return [title]; --}; -+const RenderArray = ({ title }) => [title]; - Component = RenderArray; - React.createElement(RenderArray, null); +@@= skipped -34, +25 lines =@@ React.createElement(RenderArray, { title: "react" }); React.createElement(RenderArray, { excessProp: true }); // React Server Component --var RenderPromise = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) { -- var title = _b.title; -- return __generator(this, function (_c) { -- return [2 /*return*/, "react"]; -- }); --}); }; +-const RenderPromise = (_a) => __awaiter(void 0, [_a], void 0, function* ({ title }) { return "react"; }); +const RenderPromise = async ({ title }) => "react"; Component = RenderPromise; React.createElement(RenderPromise, null); - React.createElement(RenderPromise, { title: "react" }); - React.createElement(RenderPromise, { excessProp: true }); - // Class components still work --var RenderStringClass = /** @class */ (function (_super) { -- __extends(RenderStringClass, _super); -- function RenderStringClass() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- RenderStringClass.prototype.render = function () { -+class RenderStringClass extends React.Component { -+ render() { - return this.props.title; -- }; -- return RenderStringClass; --}(React.Component)); -+ } -+} - Component = RenderStringClass; - React.createElement(RenderStringClass, null); - React.createElement(RenderStringClass, { title: "react" }); \ No newline at end of file + React.createElement(RenderPromise, { title: "react" }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxElementTypeLiteral.js.diff b/testdata/baselines/reference/submodule/compiler/jsxElementTypeLiteral.js.diff index 9fe1e2f2bb..3e5c4e37d0 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxElementTypeLiteral.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxElementTypeLiteral.js.diff @@ -7,12 +7,5 @@ -var React = require("react"); +const React = require("react"); // should be fine - `ElementType` accepts `div` --var a = React.createElement("div", null); -+let a = React.createElement("div", null); - // should be an error - `ElementType` does not accept `span` --var b = React.createElement("span", null); -+let b = React.createElement("span", null); - // Should be an error. - // `ruhroh` is in neither `IntrinsicElements` nor `ElementType` --var c = React.createElement("ruhroh", null); -+let c = React.createElement("ruhroh", null); \ No newline at end of file + let a = React.createElement("div", null); + // should be an error - `ElementType` does not accept `span` \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxElementTypeLiteralWithGeneric.js.diff b/testdata/baselines/reference/submodule/compiler/jsxElementTypeLiteralWithGeneric.js.diff index 2602b02626..e24b0f3772 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxElementTypeLiteralWithGeneric.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxElementTypeLiteralWithGeneric.js.diff @@ -7,9 +7,5 @@ -var React = require("react"); +const React = require("react"); // should be fine - `ElementType` accepts `div` --var a = React.createElement("div", null); -+let a = React.createElement("div", null); - // Should be an error. - // `ruhroh` is in neither `IntrinsicElements` nor `ElementType` --var c = React.createElement("ruhroh", null); -+let c = React.createElement("ruhroh", null); \ No newline at end of file + let a = React.createElement("div", null); + // Should be an error. \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react).js.diff b/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react).js.diff index ec992273f0..e75b72d689 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react).js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react).js.diff @@ -9,6 +9,6 @@ function Wrapper(props) { return React.createElement("div", null, props.children); } --var element = (React.createElement(Wrapper, null, +-const element = (React.createElement(Wrapper, null, - React.createElement("div", null, "Hello"))); +const element = (React.createElement(Wrapper, null, React.createElement("div", null, "Hello"))); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).js.diff b/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).js.diff index 3d91add4a1..345ffbaac1 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).js.diff @@ -10,5 +10,5 @@ - return (0, jsx_runtime_1.jsx)("div", { children: props.children }); + return jsx_runtime_1.jsx("div", { children: props.children }); } --var element = ((0, jsx_runtime_1.jsx)(Wrapper, { children: (0, jsx_runtime_1.jsx)("div", { children: "Hello" }) })); +-const element = ((0, jsx_runtime_1.jsx)(Wrapper, { children: (0, jsx_runtime_1.jsx)("div", { children: "Hello" }) })); +const element = (jsx_runtime_1.jsx(Wrapper, { children: jsx_runtime_1.jsx("div", { children: "Hello" }) })); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js.diff index c93cd03406..536da522f2 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js.diff @@ -5,12 +5,11 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var jsx_dev_runtime_1 = require("react/jsx-dev-runtime"); --var _jsxFileName = "jsxEmptyExpressionNotCountedAsChild.tsx"; +const jsx_dev_runtime_1 = require("react/jsx-dev-runtime"); -+const _jsxFileName = "jsxEmptyExpressionNotCountedAsChild.tsx"; + const _jsxFileName = "jsxEmptyExpressionNotCountedAsChild.tsx"; function Wrapper(props) { - return (0, jsx_dev_runtime_1.jsxDEV)("div", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 9, columnNumber: 11 }, this); + return jsx_dev_runtime_1.jsxDEV("div", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 9, columnNumber: 11 }, this); } --var element = ((0, jsx_dev_runtime_1.jsxDEV)(Wrapper, { children: (0, jsx_dev_runtime_1.jsxDEV)("div", { children: "Hello" }, void 0, false, { fileName: _jsxFileName, lineNumber: 15, columnNumber: 6 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 12, columnNumber: 18 }, this)); +-const element = ((0, jsx_dev_runtime_1.jsxDEV)(Wrapper, { children: (0, jsx_dev_runtime_1.jsxDEV)("div", { children: "Hello" }, void 0, false, { fileName: _jsxFileName, lineNumber: 15, columnNumber: 6 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 12, columnNumber: 18 }, this)); +const element = (jsx_dev_runtime_1.jsxDEV(Wrapper, { children: jsx_dev_runtime_1.jsxDEV("div", { children: "Hello" }, void 0, false, { fileName: _jsxFileName, lineNumber: 15, columnNumber: 6 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 12, columnNumber: 18 }, this)); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxExcessPropsAndAssignability.js.diff b/testdata/baselines/reference/submodule/compiler/jsxExcessPropsAndAssignability.js.diff index f9b0e6d9fe..961aefabfb 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxExcessPropsAndAssignability.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxExcessPropsAndAssignability.js.diff @@ -13,14 +13,8 @@ }; Object.defineProperty(exports, "__esModule", { value: true }); -var React = require("react"); --var myHoc = function (ComposedComponent) { -- var WrapperComponent = null; -- var props = null; +/// +const React = require("react"); -+const myHoc = (ComposedComponent) => { -+ const WrapperComponent = null; -+ const props = null; - React.createElement(WrapperComponent, __assign({}, props, { myProp: '1000000' })); - React.createElement(WrapperComponent, __assign({}, props, { myProp: 1000000 })); - }; \ No newline at end of file + const myHoc = (ComposedComponent) => { + const WrapperComponent = null; + const props = null; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedNameWithEs5.js.diff b/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedNameWithEs5.js.diff deleted file mode 100644 index 5c934a406b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/jsxFactoryQualifiedNameWithEs5.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.jsxFactoryQualifiedNameWithEs5.js -+++ new.jsxFactoryQualifiedNameWithEs5.js -@@= skipped -16, +16 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); - require("./jsx"); - var skate; --var React = { createElement: skate.h }; --var Component = /** @class */ (function () { -- function Component() { -- } -- Component.prototype.renderCallback = function () { -+const React = { createElement: skate.h }; -+class Component { -+ renderCallback() { - return skate.h("div", null, "test"); -- }; -- return Component; --}()); -+ } -+} - ; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxFragmentFactoryNoUnusedLocals.js.diff b/testdata/baselines/reference/submodule/compiler/jsxFragmentFactoryNoUnusedLocals.js.diff index 8bf098d7f0..c831aea953 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxFragmentFactoryNoUnusedLocals.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxFragmentFactoryNoUnusedLocals.js.diff @@ -5,14 +5,11 @@ exports.Counter = Counter; /// -var react_1 = require("react"); --function Counter(_a) { -- var _b = _a.count, count = _b === void 0 ? 0 : _b; -- var _c = null, cnt = _c[0], setCnt = _c[1]; ++const react_1 = require("react"); + function Counter({ count = 0 }) { + const [cnt, setCnt] = null; - return (0, react_1.createElement)(react_1.Fragment, null, - (0, react_1.createElement)("p", null, cnt), -- (0, react_1.createElement)("button", { onClick: function () { return setCnt(function (prev) { return prev + 1; }); }, type: "button" }, "Update")); -+const react_1 = require("react"); -+function Counter({ count = 0 }) { -+ const [cnt, setCnt] = null; +- (0, react_1.createElement)("button", { onClick: () => setCnt((prev) => prev + 1), type: "button" }, "Update")); + return (0, react_1.createElement)(react_1.Fragment, null, (0, react_1.createElement)("p", null, cnt), (0, react_1.createElement)("button", { onClick: () => setCnt((prev) => prev + 1), type: "button" }, "Update")); } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxHasLiteralType.js.diff b/testdata/baselines/reference/submodule/compiler/jsxHasLiteralType.js.diff index cedfa57a1b..7be5e063dd 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxHasLiteralType.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxHasLiteralType.js.diff @@ -1,35 +1,11 @@ --- old.jsxHasLiteralType.js +++ new.jsxHasLiteralType.js -@@= skipped -11, +11 lines =@@ - +@@= skipped -12, +12 lines =@@ //// [jsxHasLiteralType.js] "use strict"; --var __extends = (this && this.__extends) || (function () { -- var extendStatics = function (d, b) { -- extendStatics = Object.setPrototypeOf || -- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -- return extendStatics(d, b); -- }; -- return function (d, b) { -- if (typeof b !== "function" && b !== null) -- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -- extendStatics(d, b); -- function __() { this.constructor = d; } -- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -- }; --})(); Object.defineProperty(exports, "__esModule", { value: true }); -var React = require("react"); --var MyComponent = /** @class */ (function (_super) { -- __extends(MyComponent, _super); -- function MyComponent() { -- return _super !== null && _super.apply(this, arguments) || this; -- } -- return MyComponent; --}(React.Component)); --var m = React.createElement(MyComponent, { x: "a" }); +const React = require("react"); -+class MyComponent extends React.Component { -+} -+const m = React.createElement(MyComponent, { x: "a" }); \ No newline at end of file + class MyComponent extends React.Component { + } + const m = React.createElement(MyComponent, { x: "a" }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxImportForSideEffectsNonExtantNoError.js.diff b/testdata/baselines/reference/submodule/compiler/jsxImportForSideEffectsNonExtantNoError.js.diff index e4ee135254..0cacd6ca78 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxImportForSideEffectsNonExtantNoError.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxImportForSideEffectsNonExtantNoError.js.diff @@ -7,5 +7,4 @@ -var React = require("react"); +const React = require("react"); require("./App.css"); // doesn't actually exist --var tag = React.createElement("div", null); -+const tag = React.createElement("div", null); \ No newline at end of file + const tag = React.createElement("div", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxImportInAttribute.js.diff b/testdata/baselines/reference/submodule/compiler/jsxImportInAttribute.js.diff index c761904f1a..2ff8ed15ca 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxImportInAttribute.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxImportInAttribute.js.diff @@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); /// -var Test_1 = require("Test"); --var x = Test_1.default; // emit test_1.default +const Test_1 = require("Test"); -+let x = Test_1.default; // emit test_1.default + let x = Test_1.default; // emit test_1.default ; // ? \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxImportSourceNonPragmaComment.js.diff b/testdata/baselines/reference/submodule/compiler/jsxImportSourceNonPragmaComment.js.diff index 4c6ca5320a..4ba41a3fec 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxImportSourceNonPragmaComment.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxImportSourceNonPragmaComment.js.diff @@ -1,23 +1,11 @@ --- old.jsxImportSourceNonPragmaComment.js +++ new.jsxImportSourceNonPragmaComment.js -@@= skipped -16, +16 lines =@@ - - //// [jsxImportSourceNonPragmaComment.jsx] - "use strict"; --var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { -- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } -- return cooked; --}; - Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -20, +20 lines =@@ exports.default = Component; /* eslint-disable react/react-in-jsx-scope -- Unaware of @jsxImportSource */ /** @jsxImportSource @emotion/react */ -var react_1 = require("@emotion/react"); +const react_1 = require("@emotion/react"); function Component() { -- return (); -+ return (); - } --var templateObject_1; \ No newline at end of file + return ( class extends React.Component { -+ render() { - return React.createElement("span", null, "Hello, world!"); -- }; -- return class_1; --}(React.Component)); }))); -+ } -+}) { -+} \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxInferenceProducesLiteralAsExpected.js.diff b/testdata/baselines/reference/submodule/compiler/jsxInferenceProducesLiteralAsExpected.js.diff index 7642ea36b6..16c89ce1ba 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxInferenceProducesLiteralAsExpected.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxInferenceProducesLiteralAsExpected.js.diff @@ -5,24 +5,16 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var React = require("react"); --var TestObject = /** @class */ (function () { -- function TestObject() { ++const React = require("react"); + class TestObject { +- constructor() { - this.a = ''; - this.b = 1; -- this.c = function () { }; +- this.c = () => { }; - } -- return TestObject; --}()); -+const React = require("react"); -+class TestObject { + a = ''; + b = 1; + c = () => { }; -+} + } function Test(props) { return React.createElement(React.Fragment, null); } --var model = new TestObject(); --var el1 = React.createElement(Test, { model: model, foo: "c" }); --var el2 = React.createElement(Test, { model: model, foo: "c" }); -+const model = new TestObject(); -+const el1 = React.createElement(Test, { model: model, foo: "c" }); -+const el2 = React.createElement(Test, { model: model, foo: "c" }); \ No newline at end of file + const model = new TestObject(); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxIntrinsicElementsTypeArgumentErrors.js.diff b/testdata/baselines/reference/submodule/compiler/jsxIntrinsicElementsTypeArgumentErrors.js.diff index 7f363350a6..c67464a392 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxIntrinsicElementsTypeArgumentErrors.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxIntrinsicElementsTypeArgumentErrors.js.diff @@ -7,28 +7,5 @@ -var React = require("react"); +const React = require("react"); // opening + closing --var a = React.createElement("div", null); // empty type args --var b = React.createElement("div", null); // trailing comma type args --var c = React.createElement("div", null); // nonexistant type args --var d = React.createElement("div", null); // nested missing type args --var e = React.createElement("div", null); // existing but incorrect nested type args --var f = React.createElement("div", null); // existing type argument with no internal issues -+const a = React.createElement("div", null); // empty type args -+const b = React.createElement("div", null); // trailing comma type args -+const c = React.createElement("div", null); // nonexistant type args -+const d = React.createElement("div", null); // nested missing type args -+const e = React.createElement("div", null); // existing but incorrect nested type args -+const f = React.createElement("div", null); // existing type argument with no internal issues - // self-closing --var g = React.createElement("div", null); // empty type args --var h = React.createElement("div", null); // trailing comma type args --var i = React.createElement("div", null); // nonexistant type args --var j = React.createElement("div", null); // nested missing type args --var k = React.createElement("div", null); // existing but incorrect nested type args --var l = React.createElement("div", null); // existing type argument with no internal issues -+const g = React.createElement("div", null); // empty type args -+const h = React.createElement("div", null); // trailing comma type args -+const i = React.createElement("div", null); // nonexistant type args -+const j = React.createElement("div", null); // nested missing type args -+const k = React.createElement("div", null); // existing but incorrect nested type args -+const l = React.createElement("div", null); // existing type argument with no internal issues \ No newline at end of file + const a = React.createElement("div", null); // empty type args + const b = React.createElement("div", null); // trailing comma type args \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxIntrinsicUnions.js.diff b/testdata/baselines/reference/submodule/compiler/jsxIntrinsicUnions.js.diff index ca5259d892..3ca0818f87 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxIntrinsicUnions.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxIntrinsicUnions.js.diff @@ -7,9 +7,7 @@ -/// Object.defineProperty(exports, "__esModule", { value: true }); -var React = require("react"); --var El = Math.random() ? 'h1' : 'h2'; --var tag = React.createElement(El, { className: "ok", key: "key" }, "Title"); +/// +const React = require("react"); -+const El = Math.random() ? 'h1' : 'h2'; -+const tag = React.createElement(El, { className: "ok", key: "key" }, "Title"); \ No newline at end of file + const El = Math.random() ? 'h1' : 'h2'; + const tag = React.createElement(El, { className: "ok", key: "key" }, "Title"); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxIssuesErrorWhenTagExpectsTooManyArguments.js.diff b/testdata/baselines/reference/submodule/compiler/jsxIssuesErrorWhenTagExpectsTooManyArguments.js.diff index b210831c2c..3125094b86 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxIssuesErrorWhenTagExpectsTooManyArguments.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxIssuesErrorWhenTagExpectsTooManyArguments.js.diff @@ -11,16 +11,4 @@ +const React = require("react"); function MyComp4(props, context, bad, verybad) { return React.createElement("div", null); - } -@@= skipped -12, +12 lines =@@ - function MyComp2(props, context) { - return React.createElement("div", null); - } --var a = React.createElement(MyComp4, { x: 2 }); // using `MyComp` as a component should error - it expects more arguments than react provides --var b = React.createElement(MyComp3, { x: 2 }); // using `MyComp` as a component should error - it expects more arguments than react provides --var c = React.createElement(MyComp2, { x: 2 }); // Should be OK, `context` is allowed, per react rules --var d = React.createElement(MyTagWithOptionalNonJSXBits, { x: 2 }); // Technically OK, but probably questionable -+const a = React.createElement(MyComp4, { x: 2 }); // using `MyComp` as a component should error - it expects more arguments than react provides -+const b = React.createElement(MyComp3, { x: 2 }); // using `MyComp` as a component should error - it expects more arguments than react provides -+const c = React.createElement(MyComp2, { x: 2 }); // Should be OK, `context` is allowed, per react rules -+const d = React.createElement(MyTagWithOptionalNonJSXBits, { x: 2 }); // Technically OK, but probably questionable \ No newline at end of file + } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxLocalNamespaceIndexSignatureNoCrash.js.diff b/testdata/baselines/reference/submodule/compiler/jsxLocalNamespaceIndexSignatureNoCrash.js.diff deleted file mode 100644 index 624f462071..0000000000 --- a/testdata/baselines/reference/submodule/compiler/jsxLocalNamespaceIndexSignatureNoCrash.js.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.jsxLocalNamespaceIndexSignatureNoCrash.js -+++ new.jsxLocalNamespaceIndexSignatureNoCrash.js -@@= skipped -22, +22 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.X = void 0; --var X = /** @class */ (function () { -- function X() { -- } -- X.jsx = function () { -+class X { -+ static jsx() { - return document.createElement('p'); -- }; -- return X; --}()); -+ } -+} - exports.X = X; - function A() { - return (X.jsx("p", null, "Hello")); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeStringValues.js.diff b/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeStringValues.js.diff deleted file mode 100644 index 54e626026f..0000000000 --- a/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeStringValues.js.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.jsxMultilineAttributeStringValues.js -+++ new.jsxMultilineAttributeStringValues.js -@@= skipped -9, +9 lines =@@ - - - //// [jsxMultilineAttributeStringValues.jsx] --var a = ; --var b = ; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js.diff b/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js.diff index e2fb663b6b..83e9614ba0 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js.diff @@ -1,12 +1,10 @@ --- old.jsxMultilineAttributeValuesReact.js +++ new.jsxMultilineAttributeValuesReact.js -@@= skipped -13, +13 lines =@@ - +@@= skipped -14, +14 lines =@@ //// [jsxMultilineAttributeValuesReact.js] --var a = React.createElement("input", { value: "\nfoo: 23\n" }); --var b = React.createElement("input", { value: '\nfoo: 23\n' }); --var c = React.createElement("input", { value: '\nfoo: 23\\n\n' }); -+const a = React.createElement("input", { value: "\nfoo: 23\n" }); + const a = React.createElement("input", { value: "\nfoo: 23\n" }); +-const b = React.createElement("input", { value: '\nfoo: 23\n' }); +-const c = React.createElement("input", { value: '\nfoo: 23\\n\n' }); +const b = React.createElement("input", { value: "\nfoo: 23\n" }); +const c = React.createElement("input", { value: "\nfoo: 23\\n\n" }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsx).js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsx).js.diff index 390a966ebe..6196964fdf 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsx).js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsx).js.diff @@ -5,9 +5,9 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var jsx_runtime_1 = require("/jsx/jsx-runtime"); --var Title = function (props) { return (0, jsx_runtime_1.jsx)("h1", { children: props.children }); }; +-const Title = (props) => (0, jsx_runtime_1.jsx)("h1", { children: props.children }); -(0, jsx_runtime_1.jsx)(Title, { children: "Hello, world!" }); --var Wrong = function (props) { return (0, jsx_runtime_1.jsx)("h1", { children: props.offspring }); }; +-const Wrong = (props) => (0, jsx_runtime_1.jsx)("h1", { children: props.offspring }); -(0, jsx_runtime_1.jsx)(Wrong, { children: "Byebye, world!" }); +const jsx_runtime_1 = require("/jsx/jsx-runtime"); +const Title = (props) => jsx_runtime_1.jsx("h1", { children: props.children }); diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js.diff index e46ccae383..aef716b7f0 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js.diff @@ -1,19 +1,16 @@ --- old.jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js +++ new.jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js -@@= skipped -32, +32 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -33, +33 lines =@@ //// [test.js] "use strict"; --var _this = this; Object.defineProperty(exports, "__esModule", { value: true }); -var jsx_dev_runtime_1 = require("/jsx/jsx-dev-runtime"); --var _jsxFileName = "/test.tsx"; --var Title = function (props) { return (0, jsx_dev_runtime_1.jsxDEV)("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 47 }, _this); }; ++const jsx_dev_runtime_1 = require("/jsx/jsx-dev-runtime"); + const _jsxFileName = "/test.tsx"; +-const Title = (props) => (0, jsx_dev_runtime_1.jsxDEV)("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 47 }, this); -(0, jsx_dev_runtime_1.jsxDEV)(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 74 }, this); --var Wrong = function (props) { return (0, jsx_dev_runtime_1.jsxDEV)("h1", { children: props.offspring }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 48 }, _this); }; +-const Wrong = (props) => (0, jsx_dev_runtime_1.jsxDEV)("h1", { children: props.offspring }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 48 }, this); -(0, jsx_dev_runtime_1.jsxDEV)(Wrong, { children: "Byebye, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 76 }, this); -+const jsx_dev_runtime_1 = require("/jsx/jsx-dev-runtime"); -+const _jsxFileName = "/test.tsx"; +const Title = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 47 }, this); +jsx_dev_runtime_1.jsxDEV(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 74 }, this); +const Wrong = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.offspring }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 48 }, this); diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceGlobalReexport.js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceGlobalReexport.js.diff index 731772d7f3..86a236decb 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceGlobalReexport.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceGlobalReexport.js.diff @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Comp = void 0; -var jsx_runtime_1 = require("preact/jsx-runtime"); --var Comp = function () { return (0, jsx_runtime_1.jsx)("div", {}); }; +-const Comp = () => (0, jsx_runtime_1.jsx)("div", {}); +const jsx_runtime_1 = require("preact/jsx-runtime"); +const Comp = () => jsx_runtime_1.jsx("div", {}); exports.Comp = Comp; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceGlobalReexportMissingAliasTarget.js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceGlobalReexportMissingAliasTarget.js.diff index 7ea05971c8..c52ffb7cb8 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceGlobalReexportMissingAliasTarget.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceGlobalReexportMissingAliasTarget.js.diff @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Comp = void 0; -var jsx_runtime_1 = require("preact/jsx-runtime"); --var Comp = function () { return (0, jsx_runtime_1.jsx)("div", {}); }; +-const Comp = () => (0, jsx_runtime_1.jsx)("div", {}); +const jsx_runtime_1 = require("preact/jsx-runtime"); +const Comp = () => jsx_runtime_1.jsx("div", {}); exports.Comp = Comp; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespace.js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespace.js.diff index 5fca1592d7..94896cadcc 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespace.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespace.js.diff @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Comp = void 0; -var jsx_runtime_1 = require("preact/jsx-runtime"); --var Comp = function () { return (0, jsx_runtime_1.jsx)("div", {}); }; +-const Comp = () => (0, jsx_runtime_1.jsx)("div", {}); +const jsx_runtime_1 = require("preact/jsx-runtime"); +const Comp = () => jsx_runtime_1.jsx("div", {}); exports.Comp = Comp; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=preserve).js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=preserve).js.diff deleted file mode 100644 index 4d98e6d329..0000000000 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=preserve).js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=preserve).js -+++ new.jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=preserve).js -@@= skipped -67, +67 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Comp = void 0; --var Comp = function () { return
; }; -+const Comp = () =>
; - exports.Comp = Comp; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=react-jsx).js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=react-jsx).js.diff index 72ea270b34..50c71fe543 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=react-jsx).js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=react-jsx).js.diff @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Comp = void 0; -var jsx_runtime_1 = require("@emotion/react/jsx-runtime"); --var Comp = function () { return (0, jsx_runtime_1.jsx)("div", { css: "color: hotpink;" }); }; +-const Comp = () => (0, jsx_runtime_1.jsx)("div", { css: "color: hotpink;" }); +const jsx_runtime_1 = require("@emotion/react/jsx-runtime"); +const Comp = () => jsx_runtime_1.jsx("div", { css: "color: hotpink;" }); exports.Comp = Comp; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromPragmaPickedOverGlobalOne.js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromPragmaPickedOverGlobalOne.js.diff index b66fee98ca..50f2558812 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromPragmaPickedOverGlobalOne.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceImplicitImportJSXNamespaceFromPragmaPickedOverGlobalOne.js.diff @@ -7,6 +7,6 @@ -var jsx_runtime_1 = require("@emotion/react/jsx-runtime"); +const jsx_runtime_1 = require("@emotion/react/jsx-runtime"); /* @jsxImportSource @emotion/react */ --var Comp = function () { return (0, jsx_runtime_1.jsx)("div", { css: "color: hotpink;" }); }; +-const Comp = () => (0, jsx_runtime_1.jsx)("div", { css: "color: hotpink;" }); +const Comp = () => jsx_runtime_1.jsx("div", { css: "color: hotpink;" }); exports.Comp = Comp; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsx).js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsx).js.diff index 08cd838e40..06c32b4f64 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsx).js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsx).js.diff @@ -5,8 +5,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var jsx_runtime_1 = require("/jsx/jsx-runtime"); --var Title = function (props) { return (0, jsx_runtime_1.jsx)("h1", { children: props.children }); }; --var element = (0, jsx_runtime_1.jsx)(Title, { children: "Hello, world!" }); +-const Title = (props) => (0, jsx_runtime_1.jsx)("h1", { children: props.children }); +-const element = (0, jsx_runtime_1.jsx)(Title, { children: "Hello, world!" }); +const jsx_runtime_1 = require("/jsx/jsx-runtime"); +const Title = (props) => jsx_runtime_1.jsx("h1", { children: props.children }); +const element = jsx_runtime_1.jsx(Title, { children: "Hello, world!" }); diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js.diff index 5a177d9cd1..40af9ba871 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js.diff @@ -1,17 +1,14 @@ --- old.jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js +++ new.jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js -@@= skipped -23, +23 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -24, +24 lines =@@ //// [test.js] "use strict"; --var _this = this; Object.defineProperty(exports, "__esModule", { value: true }); -var jsx_dev_runtime_1 = require("/jsx/jsx-dev-runtime"); --var _jsxFileName = "/test.tsx"; --var Title = function (props) { return (0, jsx_dev_runtime_1.jsxDEV)("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 47 }, _this); }; --var element = (0, jsx_dev_runtime_1.jsxDEV)(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 16 }, this); +const jsx_dev_runtime_1 = require("/jsx/jsx-dev-runtime"); -+const _jsxFileName = "/test.tsx"; + const _jsxFileName = "/test.tsx"; +-const Title = (props) => (0, jsx_dev_runtime_1.jsxDEV)("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 47 }, this); +-const element = (0, jsx_dev_runtime_1.jsxDEV)(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 16 }, this); +const Title = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 47 }, this); +const element = jsx_dev_runtime_1.jsxDEV(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 16 }, this); //// [jsx-runtime.js] diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespacePrefixIntrinsics.js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespacePrefixIntrinsics.js.diff deleted file mode 100644 index 5844c78541..0000000000 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespacePrefixIntrinsics.js.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- old.jsxNamespacePrefixIntrinsics.js -+++ new.jsxNamespacePrefixIntrinsics.js -@@= skipped -20, +20 lines =@@ - - - //// [jsxNamespacePrefixIntrinsics.jsx] --var valid = ; --var validUpcase1 = ; --var validUpcase2 = ; --var invalid1 = ; --var invalid2 = ; --var invalid3 = ; -+const valid = ; -+const validUpcase1 = ; -+const validUpcase2 = ; -+const invalid1 = ; -+const invalid2 = ; -+const invalid3 = ; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceReexports.js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceReexports.js.diff index ddc0c92e31..2847d547d3 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceReexports.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceReexports.js.diff @@ -1,20 +1,9 @@ --- old.jsxNamespaceReexports.js +++ new.jsxNamespaceReexports.js -@@= skipped -18, +18 lines =@@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.createElement = createElement; --function createElement(element, props) { -- var children = []; -- for (var _i = 2; _i < arguments.length; _i++) { -- children[_i - 2] = arguments[_i]; -- } --} -+function createElement(element, props, ...children) { } +@@= skipped -22, +22 lines =@@ //// [index.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var MyLib = require("./library"); --var content = MyLib.createElement("my-element", null); +const MyLib = require("./library"); -+const content = MyLib.createElement("my-element", null); \ No newline at end of file + const content = MyLib.createElement("my-element", null); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxNestedWithinTernaryParsesCorrectly.js.diff b/testdata/baselines/reference/submodule/compiler/jsxNestedWithinTernaryParsesCorrectly.js.diff deleted file mode 100644 index a938fbfe6b..0000000000 --- a/testdata/baselines/reference/submodule/compiler/jsxNestedWithinTernaryParsesCorrectly.js.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.jsxNestedWithinTernaryParsesCorrectly.js -+++ new.jsxNestedWithinTernaryParsesCorrectly.js -@@= skipped -15, +15 lines =@@ - ); - - //// [jsxNestedWithinTernaryParsesCorrectly.jsx] --var emptyMessage = null; --var a = (
-+const emptyMessage = null; -+const a = (
- {0 ? (emptyMessage // must be identifier? - ) : ( - // must be exactly two expression holes \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxPartialSpread.js.diff b/testdata/baselines/reference/submodule/compiler/jsxPartialSpread.js.diff index 3aa2762d77..36644f33cb 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxPartialSpread.js.diff +++ b/testdata/baselines/reference/submodule/compiler/jsxPartialSpread.js.diff @@ -1,15 +1,11 @@ --- old.jsxPartialSpread.js +++ new.jsxPartialSpread.js -@@= skipped -18, +18 lines =@@ - Object.defineProperty(exports, "__esModule", { value: true }); +@@= skipped -19, +19 lines =@@ exports.Repro = Repro; /// --var Select = function (p) { return

; }; + const Select = (p) =>

; -var react_1 = __importDefault(require("react")); --function Repro(_a) { -- var _b = _a.SelectProps, SelectProps = _b === void 0 ? {} : _b; -+const Select = (p) =>

; +const react_1 = __importDefault(require("react")); -+function Repro({ SelectProps = {} }) { + function Repro({ SelectProps = {} }) { return (