diff --git a/scripts/configurePrerelease.ts b/scripts/configurePrerelease.ts index da1984c13e..2377b5d471 100644 --- a/scripts/configurePrerelease.ts +++ b/scripts/configurePrerelease.ts @@ -56,13 +56,13 @@ function updateTsFile(tsFilePath: string, tsFileContents: string, majorMinor: st const majorMinorRgx = /export const versionMajorMinor = "(\d+\.\d+)"/; const majorMinorMatch = majorMinorRgx.exec(tsFileContents); assert(majorMinorMatch !== null, `The file seems to no longer have a string matching '${majorMinorRgx}'.`); - const parsedMajorMinor = majorMinorMatch[1]; + const parsedMajorMinor = majorMinorMatch![1]; assert(parsedMajorMinor === majorMinor, `versionMajorMinor does not match. ${tsFilePath}: '${parsedMajorMinor}'; package.json: '${majorMinor}'`); const versionRgx = /export const version = `\$\{versionMajorMinor\}\.(\d)(-dev)?`;/; const patchMatch = versionRgx.exec(tsFileContents); assert(patchMatch !== null, "The file seems to no longer have a string matching " + versionRgx.toString()); - const parsedPatch = patchMatch[1]; + const parsedPatch = patchMatch![1]; if (parsedPatch !== patch) { throw new Error(`patch does not match. ${tsFilePath}: '${parsedPatch}; package.json: '${patch}'`); } @@ -74,7 +74,7 @@ function parsePackageJsonVersion(versionString: string): { majorMinor: string, p const versionRgx = /(\d+\.\d+)\.(\d+)($|\-)/; const match = versionString.match(versionRgx); assert(match !== null, "package.json 'version' should match " + versionRgx.toString()); - return { majorMinor: match[1], patch: match[2] }; + return { majorMinor: match![1], patch: match![2] }; } /** e.g. 0-dev.20170707 */ diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 769cde5dcc..237553141f 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -24153,6 +24153,16 @@ namespace ts { } } + /** + * The name cannot be used as 'Object' of user defined types with special target. + */ + function checkClassNameCollisionWithObject(name: Identifier): void { + if (languageVersion === ScriptTarget.ES5 && name.escapedText === "Object" + && moduleKind !== ModuleKind.ES2015 && moduleKind !== ModuleKind.ESNext) { + error(name, Diagnostics.Class_name_cannot_be_Object_when_targeting_ES5_with_module_0, ModuleKind[moduleKind]); // https://github.com/Microsoft/TypeScript/issues/17494 + } + } + /** * Check each type parameter and check that type parameters have no duplicate type parameter declarations */ @@ -24279,6 +24289,9 @@ namespace ts { checkTypeNameIsReserved(node.name, Diagnostics.Class_name_cannot_be_0); checkCollisionWithRequireExportsInGeneratedCode(node, node.name); checkCollisionWithGlobalPromiseInGeneratedCode(node, node.name); + if (!(node.flags & NodeFlags.Ambient)) { + checkClassNameCollisionWithObject(node.name); + } } checkTypeParameters(getEffectiveTypeParameterDeclarations(node)); checkExportsOnMergedDeclarations(node); diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index be96d3de07..f0bb5e5ed7 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -2357,6 +2357,11 @@ "category": "Error", "code": 2724 }, + "Class name cannot be 'Object' when targeting ES5 with module {0}.": { + "category": "Error", + "code": 2725 + }, + "Import declaration '{0}' is using private name '{1}'.": { "category": "Error", "code": 4000 diff --git a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl index 3607e3e848..e68b3b149e 100644 --- a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1008,6 +1008,15 @@ + + + + + + + + + @@ -1125,6 +1134,15 @@ + + + + + + + + + @@ -2538,6 +2556,12 @@ + + + + + + @@ -6564,6 +6588,15 @@ + + + + + + + + + @@ -6603,6 +6636,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl index d64721cd90..4d01ea1789 100644 --- a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1017,6 +1017,15 @@ + + + + + + + + + @@ -1134,6 +1143,15 @@ + + + + + + + + + @@ -2547,6 +2565,12 @@ + + + + + + @@ -6573,6 +6597,15 @@ + + + + + + + + + @@ -6612,6 +6645,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl index ea95d1bda8..e076be1b08 100644 --- a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1005,6 +1005,15 @@ + + + + + + + + + @@ -1122,6 +1131,15 @@ + + + + + + + + + @@ -2535,6 +2553,12 @@ + + + + + + @@ -6558,6 +6582,15 @@ + + + + + + + + + @@ -6597,6 +6630,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl index 7a76969651..3688383b06 100644 --- a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1019,10 +1019,13 @@ - + - + + + + @@ -1143,6 +1146,15 @@ + + + + + + + + + @@ -2556,6 +2568,12 @@ + + + + + + @@ -6585,6 +6603,9 @@ + + + @@ -6630,6 +6651,18 @@ + + + + + + + + + + + + diff --git a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl index d034fc6882..04e562b0fd 100644 --- a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1008,6 +1008,15 @@ + + + + + + + + + @@ -1125,6 +1134,15 @@ + + + + + + + + + @@ -2538,6 +2556,12 @@ + + + + + + @@ -6564,6 +6588,15 @@ + + + + + + + + + @@ -6603,6 +6636,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/server/typingsInstaller/nodeTypingsInstaller.ts b/src/server/typingsInstaller/nodeTypingsInstaller.ts index 7132a93f3e..6de5d9e1e0 100644 --- a/src/server/typingsInstaller/nodeTypingsInstaller.ts +++ b/src/server/typingsInstaller/nodeTypingsInstaller.ts @@ -2,8 +2,7 @@ namespace ts.server.typingsInstaller { const fs: { - appendFileSync(file: string, content: string): void; - existsSync(path: string): boolean; + appendFileSync(file: string, content: string): void } = require("fs"); const path: { @@ -33,12 +32,11 @@ namespace ts.server.typingsInstaller { /** Used if `--npmLocation` is not passed. */ function getDefaultNPMLocation(processName: string) { if (path.basename(processName).indexOf("node") === 0) { - const npmPath = `"${path.join(path.dirname(process.argv[0]), "npm")}"`; - if (fs.existsSync(npmPath)) { - return npmPath; - } + return `"${path.join(path.dirname(process.argv[0]), "npm")}"`; + } + else { + return "npm"; } - return "npm"; } interface TypesRegistryFile { diff --git a/tests/baselines/reference/es6modulekindExportClassNameWithObject.js b/tests/baselines/reference/es6modulekindExportClassNameWithObject.js new file mode 100644 index 0000000000..d5af2ffafa --- /dev/null +++ b/tests/baselines/reference/es6modulekindExportClassNameWithObject.js @@ -0,0 +1,11 @@ +//// [es6modulekindExportClassNameWithObject.ts] +export class Object {} + + +//// [es6modulekindExportClassNameWithObject.js] +var Object = /** @class */ (function () { + function Object() { + } + return Object; +}()); +export { Object }; diff --git a/tests/baselines/reference/es6modulekindExportClassNameWithObject.symbols b/tests/baselines/reference/es6modulekindExportClassNameWithObject.symbols new file mode 100644 index 0000000000..b05183ae93 --- /dev/null +++ b/tests/baselines/reference/es6modulekindExportClassNameWithObject.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/es6/es6modulekindExportClassNameWithObject.ts === +export class Object {} +>Object : Symbol(Object, Decl(es6modulekindExportClassNameWithObject.ts, 0, 0)) + diff --git a/tests/baselines/reference/es6modulekindExportClassNameWithObject.types b/tests/baselines/reference/es6modulekindExportClassNameWithObject.types new file mode 100644 index 0000000000..b0b9cd7f6a --- /dev/null +++ b/tests/baselines/reference/es6modulekindExportClassNameWithObject.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/es6/es6modulekindExportClassNameWithObject.ts === +export class Object {} +>Object : Object + diff --git a/tests/baselines/reference/exnextmodulekindExportClassNameWithObject.js b/tests/baselines/reference/exnextmodulekindExportClassNameWithObject.js new file mode 100644 index 0000000000..e56b6ad8f1 --- /dev/null +++ b/tests/baselines/reference/exnextmodulekindExportClassNameWithObject.js @@ -0,0 +1,11 @@ +//// [exnextmodulekindExportClassNameWithObject.ts] +export class Object {} + + +//// [exnextmodulekindExportClassNameWithObject.js] +var Object = /** @class */ (function () { + function Object() { + } + return Object; +}()); +export { Object }; diff --git a/tests/baselines/reference/exnextmodulekindExportClassNameWithObject.symbols b/tests/baselines/reference/exnextmodulekindExportClassNameWithObject.symbols new file mode 100644 index 0000000000..2bc0455e16 --- /dev/null +++ b/tests/baselines/reference/exnextmodulekindExportClassNameWithObject.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/esnext/exnextmodulekindExportClassNameWithObject.ts === +export class Object {} +>Object : Symbol(Object, Decl(exnextmodulekindExportClassNameWithObject.ts, 0, 0)) + diff --git a/tests/baselines/reference/exnextmodulekindExportClassNameWithObject.types b/tests/baselines/reference/exnextmodulekindExportClassNameWithObject.types new file mode 100644 index 0000000000..1fbe924a4a --- /dev/null +++ b/tests/baselines/reference/exnextmodulekindExportClassNameWithObject.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/esnext/exnextmodulekindExportClassNameWithObject.ts === +export class Object {} +>Object : Object + diff --git a/tests/baselines/reference/exportAmbientClassNameWithObject.js b/tests/baselines/reference/exportAmbientClassNameWithObject.js new file mode 100644 index 0000000000..fdad4c7818 --- /dev/null +++ b/tests/baselines/reference/exportAmbientClassNameWithObject.js @@ -0,0 +1,7 @@ +//// [exportAmbientClassNameWithObject.ts] +export declare class Object {} + + +//// [exportAmbientClassNameWithObject.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/tests/baselines/reference/exportAmbientClassNameWithObject.symbols b/tests/baselines/reference/exportAmbientClassNameWithObject.symbols new file mode 100644 index 0000000000..6287c91780 --- /dev/null +++ b/tests/baselines/reference/exportAmbientClassNameWithObject.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportAmbientClassNameWithObject.ts === +export declare class Object {} +>Object : Symbol(Object, Decl(exportAmbientClassNameWithObject.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportAmbientClassNameWithObject.types b/tests/baselines/reference/exportAmbientClassNameWithObject.types new file mode 100644 index 0000000000..e85e4eb05d --- /dev/null +++ b/tests/baselines/reference/exportAmbientClassNameWithObject.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportAmbientClassNameWithObject.ts === +export declare class Object {} +>Object : Object + diff --git a/tests/baselines/reference/exportClassNameWithObjectAMD.errors.txt b/tests/baselines/reference/exportClassNameWithObjectAMD.errors.txt new file mode 100644 index 0000000000..32eb7a1e7d --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectAMD.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts(1,14): error TS2725: Class name cannot be 'Object' when targeting ES5 with module AMD. + + +==== tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts (1 errors) ==== + export class Object {} + ~~~~~~ +!!! error TS2725: Class name cannot be 'Object' when targeting ES5 with module AMD. + \ No newline at end of file diff --git a/tests/baselines/reference/exportClassNameWithObjectAMD.js b/tests/baselines/reference/exportClassNameWithObjectAMD.js new file mode 100644 index 0000000000..e3403689cb --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectAMD.js @@ -0,0 +1,15 @@ +//// [exportClassNameWithObjectAMD.ts] +export class Object {} + + +//// [exportClassNameWithObjectAMD.js] +define(["require", "exports"], function (require, exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Object = /** @class */ (function () { + function Object() { + } + return Object; + }()); + exports.Object = Object; +}); diff --git a/tests/baselines/reference/exportClassNameWithObjectAMD.symbols b/tests/baselines/reference/exportClassNameWithObjectAMD.symbols new file mode 100644 index 0000000000..eadb0af0dd --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectAMD.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts === +export class Object {} +>Object : Symbol(Object, Decl(exportClassNameWithObjectAMD.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportClassNameWithObjectAMD.types b/tests/baselines/reference/exportClassNameWithObjectAMD.types new file mode 100644 index 0000000000..7caeadb6e0 --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectAMD.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts === +export class Object {} +>Object : Object + diff --git a/tests/baselines/reference/exportClassNameWithObjectCommonJS.errors.txt b/tests/baselines/reference/exportClassNameWithObjectCommonJS.errors.txt new file mode 100644 index 0000000000..de5b8d59ca --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectCommonJS.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/externalModules/exportClassNameWithObjectCommonJS.ts(1,14): error TS2725: Class name cannot be 'Object' when targeting ES5 with module CommonJS. + + +==== tests/cases/conformance/externalModules/exportClassNameWithObjectCommonJS.ts (1 errors) ==== + export class Object {} + ~~~~~~ +!!! error TS2725: Class name cannot be 'Object' when targeting ES5 with module CommonJS. + \ No newline at end of file diff --git a/tests/baselines/reference/exportClassNameWithObjectCommonJS.js b/tests/baselines/reference/exportClassNameWithObjectCommonJS.js new file mode 100644 index 0000000000..b9e2522b1b --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectCommonJS.js @@ -0,0 +1,13 @@ +//// [exportClassNameWithObjectCommonJS.ts] +export class Object {} + + +//// [exportClassNameWithObjectCommonJS.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Object = /** @class */ (function () { + function Object() { + } + return Object; +}()); +exports.Object = Object; diff --git a/tests/baselines/reference/exportClassNameWithObjectCommonJS.symbols b/tests/baselines/reference/exportClassNameWithObjectCommonJS.symbols new file mode 100644 index 0000000000..025fa479fd --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectCommonJS.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportClassNameWithObjectCommonJS.ts === +export class Object {} +>Object : Symbol(Object, Decl(exportClassNameWithObjectCommonJS.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportClassNameWithObjectCommonJS.types b/tests/baselines/reference/exportClassNameWithObjectCommonJS.types new file mode 100644 index 0000000000..38ce8d61d9 --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectCommonJS.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportClassNameWithObjectCommonJS.ts === +export class Object {} +>Object : Object + diff --git a/tests/baselines/reference/exportClassNameWithObjectSystem.errors.txt b/tests/baselines/reference/exportClassNameWithObjectSystem.errors.txt new file mode 100644 index 0000000000..4b43001cc2 --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectSystem.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/externalModules/exportClassNameWithObjectSystem.ts(1,14): error TS2725: Class name cannot be 'Object' when targeting ES5 with module System. + + +==== tests/cases/conformance/externalModules/exportClassNameWithObjectSystem.ts (1 errors) ==== + export class Object {} + ~~~~~~ +!!! error TS2725: Class name cannot be 'Object' when targeting ES5 with module System. + \ No newline at end of file diff --git a/tests/baselines/reference/exportClassNameWithObjectSystem.js b/tests/baselines/reference/exportClassNameWithObjectSystem.js new file mode 100644 index 0000000000..361f4d807d --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectSystem.js @@ -0,0 +1,21 @@ +//// [exportClassNameWithObjectSystem.ts] +export class Object {} + + +//// [exportClassNameWithObjectSystem.js] +System.register([], function (exports_1, context_1) { + "use strict"; + var Object; + var __moduleName = context_1 && context_1.id; + return { + setters: [], + execute: function () { + Object = /** @class */ (function () { + function Object() { + } + return Object; + }()); + exports_1("Object", Object); + } + }; +}); diff --git a/tests/baselines/reference/exportClassNameWithObjectSystem.symbols b/tests/baselines/reference/exportClassNameWithObjectSystem.symbols new file mode 100644 index 0000000000..5152c2aa63 --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectSystem.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportClassNameWithObjectSystem.ts === +export class Object {} +>Object : Symbol(Object, Decl(exportClassNameWithObjectSystem.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportClassNameWithObjectSystem.types b/tests/baselines/reference/exportClassNameWithObjectSystem.types new file mode 100644 index 0000000000..5b6507fd94 --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectSystem.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportClassNameWithObjectSystem.ts === +export class Object {} +>Object : Object + diff --git a/tests/baselines/reference/exportClassNameWithObjectUMD.errors.txt b/tests/baselines/reference/exportClassNameWithObjectUMD.errors.txt new file mode 100644 index 0000000000..e292c473af --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectUMD.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/externalModules/exportClassNameWithObjectUMD.ts(1,14): error TS2725: Class name cannot be 'Object' when targeting ES5 with module UMD. + + +==== tests/cases/conformance/externalModules/exportClassNameWithObjectUMD.ts (1 errors) ==== + export class Object {} + ~~~~~~ +!!! error TS2725: Class name cannot be 'Object' when targeting ES5 with module UMD. + \ No newline at end of file diff --git a/tests/baselines/reference/exportClassNameWithObjectUMD.js b/tests/baselines/reference/exportClassNameWithObjectUMD.js new file mode 100644 index 0000000000..1447392c87 --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectUMD.js @@ -0,0 +1,23 @@ +//// [exportClassNameWithObjectUMD.ts] +export class Object {} + + +//// [exportClassNameWithObjectUMD.js] +(function (factory) { + if (typeof module === "object" && typeof module.exports === "object") { + var v = factory(require, exports); + if (v !== undefined) module.exports = v; + } + else if (typeof define === "function" && define.amd) { + define(["require", "exports"], factory); + } +})(function (require, exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Object = /** @class */ (function () { + function Object() { + } + return Object; + }()); + exports.Object = Object; +}); diff --git a/tests/baselines/reference/exportClassNameWithObjectUMD.symbols b/tests/baselines/reference/exportClassNameWithObjectUMD.symbols new file mode 100644 index 0000000000..05d3eeb8b0 --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectUMD.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportClassNameWithObjectUMD.ts === +export class Object {} +>Object : Symbol(Object, Decl(exportClassNameWithObjectUMD.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportClassNameWithObjectUMD.types b/tests/baselines/reference/exportClassNameWithObjectUMD.types new file mode 100644 index 0000000000..42f0198cba --- /dev/null +++ b/tests/baselines/reference/exportClassNameWithObjectUMD.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportClassNameWithObjectUMD.ts === +export class Object {} +>Object : Object + diff --git a/tests/baselines/reference/exportDefaultClassNameWithObject.errors.txt b/tests/baselines/reference/exportDefaultClassNameWithObject.errors.txt new file mode 100644 index 0000000000..da874bf2d4 --- /dev/null +++ b/tests/baselines/reference/exportDefaultClassNameWithObject.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/externalModules/exportDefaultClassNameWithObject.ts(1,22): error TS2725: Class name cannot be 'Object' when targeting ES5 with module CommonJS. + + +==== tests/cases/conformance/externalModules/exportDefaultClassNameWithObject.ts (1 errors) ==== + export default class Object {} + ~~~~~~ +!!! error TS2725: Class name cannot be 'Object' when targeting ES5 with module CommonJS. + \ No newline at end of file diff --git a/tests/baselines/reference/exportDefaultClassNameWithObject.js b/tests/baselines/reference/exportDefaultClassNameWithObject.js new file mode 100644 index 0000000000..f5a4ec74a6 --- /dev/null +++ b/tests/baselines/reference/exportDefaultClassNameWithObject.js @@ -0,0 +1,13 @@ +//// [exportDefaultClassNameWithObject.ts] +export default class Object {} + + +//// [exportDefaultClassNameWithObject.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Object = /** @class */ (function () { + function Object() { + } + return Object; +}()); +exports.default = Object; diff --git a/tests/baselines/reference/exportDefaultClassNameWithObject.symbols b/tests/baselines/reference/exportDefaultClassNameWithObject.symbols new file mode 100644 index 0000000000..3192dcf73e --- /dev/null +++ b/tests/baselines/reference/exportDefaultClassNameWithObject.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportDefaultClassNameWithObject.ts === +export default class Object {} +>Object : Symbol(Object, Decl(exportDefaultClassNameWithObject.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportDefaultClassNameWithObject.types b/tests/baselines/reference/exportDefaultClassNameWithObject.types new file mode 100644 index 0000000000..547164703d --- /dev/null +++ b/tests/baselines/reference/exportDefaultClassNameWithObject.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/externalModules/exportDefaultClassNameWithObject.ts === +export default class Object {} +>Object : Object + diff --git a/tests/cases/conformance/externalModules/es6/es6modulekindExportClassNameWithObject.ts b/tests/cases/conformance/externalModules/es6/es6modulekindExportClassNameWithObject.ts new file mode 100644 index 0000000000..40de8852ff --- /dev/null +++ b/tests/cases/conformance/externalModules/es6/es6modulekindExportClassNameWithObject.ts @@ -0,0 +1,3 @@ +// @target: ES5 +// @module: es2015 +export class Object {} diff --git a/tests/cases/conformance/externalModules/esnext/exnextmodulekindExportClassNameWithObject.ts b/tests/cases/conformance/externalModules/esnext/exnextmodulekindExportClassNameWithObject.ts new file mode 100644 index 0000000000..440bfe080d --- /dev/null +++ b/tests/cases/conformance/externalModules/esnext/exnextmodulekindExportClassNameWithObject.ts @@ -0,0 +1,3 @@ +// @target: ES5 +// @module: esnext +export class Object {} diff --git a/tests/cases/conformance/externalModules/exportAmbientClassNameWithObject.ts b/tests/cases/conformance/externalModules/exportAmbientClassNameWithObject.ts new file mode 100644 index 0000000000..3262ecdd3a --- /dev/null +++ b/tests/cases/conformance/externalModules/exportAmbientClassNameWithObject.ts @@ -0,0 +1,2 @@ +// @target: ES5 +export declare class Object {} diff --git a/tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts b/tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts new file mode 100644 index 0000000000..529924b4a4 --- /dev/null +++ b/tests/cases/conformance/externalModules/exportClassNameWithObjectAMD.ts @@ -0,0 +1,3 @@ +// @target: ES5 +// @module: amd +export class Object {} diff --git a/tests/cases/conformance/externalModules/exportClassNameWithObjectCommonJS.ts b/tests/cases/conformance/externalModules/exportClassNameWithObjectCommonJS.ts new file mode 100644 index 0000000000..676e275dfb --- /dev/null +++ b/tests/cases/conformance/externalModules/exportClassNameWithObjectCommonJS.ts @@ -0,0 +1,3 @@ +// @target: ES5 +// @module: commonjs +export class Object {} diff --git a/tests/cases/conformance/externalModules/exportClassNameWithObjectSystem.ts b/tests/cases/conformance/externalModules/exportClassNameWithObjectSystem.ts new file mode 100644 index 0000000000..6d23d7e1e3 --- /dev/null +++ b/tests/cases/conformance/externalModules/exportClassNameWithObjectSystem.ts @@ -0,0 +1,3 @@ +// @target: ES5 +// @module: system +export class Object {} diff --git a/tests/cases/conformance/externalModules/exportClassNameWithObjectUMD.ts b/tests/cases/conformance/externalModules/exportClassNameWithObjectUMD.ts new file mode 100644 index 0000000000..d2cb221a06 --- /dev/null +++ b/tests/cases/conformance/externalModules/exportClassNameWithObjectUMD.ts @@ -0,0 +1,3 @@ +// @target: ES5 +// @module: umd +export class Object {} diff --git a/tests/cases/conformance/externalModules/exportDefaultClassNameWithObject.ts b/tests/cases/conformance/externalModules/exportDefaultClassNameWithObject.ts new file mode 100644 index 0000000000..75a5a33ac0 --- /dev/null +++ b/tests/cases/conformance/externalModules/exportDefaultClassNameWithObject.ts @@ -0,0 +1,2 @@ +// @target: ES5 +export default class Object {}