diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 337996443b2..3474a2cea04 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -4273,7 +4273,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi } if (node.kind === SyntaxKind.FunctionDeclaration) { // Emit name if one is present, or emit generated name in down-level case (for export default case) - return !!node.name || languageVersion < ScriptTarget.ES6; + return !!node.name || modulekind !== ModuleKind.ES6; } } @@ -5108,7 +5108,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi // emit name if // - node has a name // - this is default export with static initializers - if ((node.name || (node.flags & NodeFlags.Default && staticProperties.length > 0)) && !thisNodeIsDecorated) { + if ((node.name || (node.flags & NodeFlags.Default && (staticProperties.length > 0 || modulekind !== ModuleKind.ES6))) && !thisNodeIsDecorated) { write(" "); emitDeclarationName(node); } diff --git a/tests/baselines/reference/anonymousDefaultExportsAmd.js b/tests/baselines/reference/anonymousDefaultExportsAmd.js new file mode 100644 index 00000000000..67931fd6cc8 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsAmd.js @@ -0,0 +1,21 @@ +//// [tests/cases/conformance/es6/moduleExportsAmd/anonymousDefaultExportsAmd.ts] //// + +//// [a.ts] +export default class {} + +//// [b.ts] +export default function() {} + +//// [a.js] +define(["require", "exports"], function (require, exports) { + "use strict"; + class default_1 { + } + exports.default = default_1; +}); +//// [b.js] +define(["require", "exports"], function (require, exports) { + "use strict"; + function default_1() { } + exports.default = default_1; +}); diff --git a/tests/baselines/reference/anonymousDefaultExportsAmd.symbols b/tests/baselines/reference/anonymousDefaultExportsAmd.symbols new file mode 100644 index 00000000000..b7778168f33 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsAmd.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/moduleExportsAmd/a.ts === +export default class {} +No type information for this code. +No type information for this code.=== tests/cases/conformance/es6/moduleExportsAmd/b.ts === +export default function() {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/anonymousDefaultExportsAmd.types b/tests/baselines/reference/anonymousDefaultExportsAmd.types new file mode 100644 index 00000000000..b7778168f33 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsAmd.types @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/moduleExportsAmd/a.ts === +export default class {} +No type information for this code. +No type information for this code.=== tests/cases/conformance/es6/moduleExportsAmd/b.ts === +export default function() {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/anonymousDefaultExportsCommonjs.js b/tests/baselines/reference/anonymousDefaultExportsCommonjs.js new file mode 100644 index 00000000000..513b75c27bd --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsCommonjs.js @@ -0,0 +1,17 @@ +//// [tests/cases/conformance/es6/moduleExportsCommonjs/anonymousDefaultExportsCommonjs.ts] //// + +//// [a.ts] +export default class {} + +//// [b.ts] +export default function() {} + +//// [a.js] +"use strict"; +class default_1 { +} +exports.default = default_1; +//// [b.js] +"use strict"; +function default_1() { } +exports.default = default_1; diff --git a/tests/baselines/reference/anonymousDefaultExportsCommonjs.symbols b/tests/baselines/reference/anonymousDefaultExportsCommonjs.symbols new file mode 100644 index 00000000000..e74f41088d7 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsCommonjs.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/moduleExportsCommonjs/a.ts === +export default class {} +No type information for this code. +No type information for this code.=== tests/cases/conformance/es6/moduleExportsCommonjs/b.ts === +export default function() {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/anonymousDefaultExportsCommonjs.types b/tests/baselines/reference/anonymousDefaultExportsCommonjs.types new file mode 100644 index 00000000000..e74f41088d7 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsCommonjs.types @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/moduleExportsCommonjs/a.ts === +export default class {} +No type information for this code. +No type information for this code.=== tests/cases/conformance/es6/moduleExportsCommonjs/b.ts === +export default function() {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/anonymousDefaultExportsSystem.js b/tests/baselines/reference/anonymousDefaultExportsSystem.js new file mode 100644 index 00000000000..74913a57a99 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsSystem.js @@ -0,0 +1,32 @@ +//// [tests/cases/conformance/es6/moduleExportsSystem/anonymousDefaultExportsSystem.ts] //// + +//// [a.ts] +export default class {} + +//// [b.ts] +export default function() {} + +//// [a.js] +System.register([], function(exports_1) { + "use strict"; + var default_1; + return { + setters:[], + execute: function() { + class default_1 { + } + exports_1("default", default_1); + } + } +}); +//// [b.js] +System.register([], function(exports_1) { + "use strict"; + function default_1() { } + exports_1("default", default_1); + return { + setters:[], + execute: function() { + } + } +}); diff --git a/tests/baselines/reference/anonymousDefaultExportsSystem.symbols b/tests/baselines/reference/anonymousDefaultExportsSystem.symbols new file mode 100644 index 00000000000..a865de3bb91 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsSystem.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/moduleExportsSystem/a.ts === +export default class {} +No type information for this code. +No type information for this code.=== tests/cases/conformance/es6/moduleExportsSystem/b.ts === +export default function() {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/anonymousDefaultExportsSystem.types b/tests/baselines/reference/anonymousDefaultExportsSystem.types new file mode 100644 index 00000000000..a865de3bb91 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsSystem.types @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/moduleExportsSystem/a.ts === +export default class {} +No type information for this code. +No type information for this code.=== tests/cases/conformance/es6/moduleExportsSystem/b.ts === +export default function() {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/anonymousDefaultExportsUmd.js b/tests/baselines/reference/anonymousDefaultExportsUmd.js new file mode 100644 index 00000000000..bdaf8dc6aa8 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsUmd.js @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/es6/moduleExportsUmd/anonymousDefaultExportsUmd.ts] //// + +//// [a.ts] +export default class {} + +//// [b.ts] +export default function() {} + +//// [a.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"; + class default_1 { + } + exports.default = default_1; +}); +//// [b.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"; + function default_1() { } + exports.default = default_1; +}); diff --git a/tests/baselines/reference/anonymousDefaultExportsUmd.symbols b/tests/baselines/reference/anonymousDefaultExportsUmd.symbols new file mode 100644 index 00000000000..6bc9e18ed56 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsUmd.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/moduleExportsUmd/a.ts === +export default class {} +No type information for this code. +No type information for this code.=== tests/cases/conformance/es6/moduleExportsUmd/b.ts === +export default function() {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/anonymousDefaultExportsUmd.types b/tests/baselines/reference/anonymousDefaultExportsUmd.types new file mode 100644 index 00000000000..6bc9e18ed56 --- /dev/null +++ b/tests/baselines/reference/anonymousDefaultExportsUmd.types @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/moduleExportsUmd/a.ts === +export default class {} +No type information for this code. +No type information for this code.=== tests/cases/conformance/es6/moduleExportsUmd/b.ts === +export default function() {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.js b/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.js index 3fb23375f02..05323aa247d 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.js +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.js @@ -1,12 +1,19 @@ -//// [decoratedDefaultExportsGetExportedAmd.ts] - +//// [tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts] //// + +//// [a.ts] var decorator: ClassDecorator; @decorator export default class Foo {} +//// [b.ts] +var decorator: ClassDecorator; + +@decorator +export default class {} -//// [decoratedDefaultExportsGetExportedAmd.js] + +//// [a.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; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -23,3 +30,20 @@ define(["require", "exports"], function (require, exports) { ], Foo); exports.default = Foo; }); +//// [b.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; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + 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; +}; +define(["require", "exports"], function (require, exports) { + "use strict"; + var decorator; + let default_1 = class { + }; + default_1 = __decorate([ + decorator + ], default_1); + exports.default = default_1; +}); diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.symbols b/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.symbols index d8ff6716c38..4414fd9ef87 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.symbols +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.symbols @@ -1,12 +1,21 @@ -=== tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts === - +=== tests/cases/conformance/es6/moduleExportsAmd/a.ts === var decorator: ClassDecorator; ->decorator : Symbol(decorator, Decl(decoratedDefaultExportsGetExportedAmd.ts, 1, 3)) +>decorator : Symbol(decorator, Decl(a.ts, 0, 3)) >ClassDecorator : Symbol(ClassDecorator, Decl(lib.d.ts, --, --)) @decorator ->decorator : Symbol(decorator, Decl(decoratedDefaultExportsGetExportedAmd.ts, 1, 3)) +>decorator : Symbol(decorator, Decl(a.ts, 0, 3)) export default class Foo {} ->Foo : Symbol(Foo, Decl(decoratedDefaultExportsGetExportedAmd.ts, 1, 30)) +>Foo : Symbol(Foo, Decl(a.ts, 0, 30)) + +=== tests/cases/conformance/es6/moduleExportsAmd/b.ts === +var decorator: ClassDecorator; +>decorator : Symbol(decorator, Decl(b.ts, 0, 3)) +>ClassDecorator : Symbol(ClassDecorator, Decl(lib.d.ts, --, --)) + +@decorator +>decorator : Symbol(decorator, Decl(b.ts, 0, 3)) + +export default class {} diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.types b/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.types index 89df83ce76d..16dc655cc2f 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.types +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedAmd.types @@ -1,5 +1,4 @@ -=== tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts === - +=== tests/cases/conformance/es6/moduleExportsAmd/a.ts === var decorator: ClassDecorator; >decorator : (target: TFunction) => TFunction | void >ClassDecorator : (target: TFunction) => TFunction | void @@ -10,3 +9,13 @@ var decorator: ClassDecorator; export default class Foo {} >Foo : Foo +=== tests/cases/conformance/es6/moduleExportsAmd/b.ts === +var decorator: ClassDecorator; +>decorator : (target: TFunction) => TFunction | void +>ClassDecorator : (target: TFunction) => TFunction | void + +@decorator +>decorator : (target: TFunction) => TFunction | void + +export default class {} + diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.js b/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.js index 32acfbbea39..32e053789ce 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.js +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.js @@ -1,12 +1,19 @@ -//// [decoratedDefaultExportsGetExportedCommonjs.ts] - +//// [tests/cases/conformance/es6/moduleExportsCommonjs/decoratedDefaultExportsGetExportedCommonjs.ts] //// + +//// [a.ts] var decorator: ClassDecorator; @decorator export default class Foo {} +//// [b.ts] +var decorator: ClassDecorator; + +@decorator +export default class {} -//// [decoratedDefaultExportsGetExportedCommonjs.js] + +//// [a.js] "use strict"; 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; @@ -21,3 +28,18 @@ Foo = __decorate([ decorator ], Foo); exports.default = Foo; +//// [b.js] +"use strict"; +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); + 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 decorator; +let default_1 = class { +}; +default_1 = __decorate([ + decorator +], default_1); +exports.default = default_1; diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.symbols b/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.symbols index 35131c1244e..4eafc337573 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.symbols +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.symbols @@ -1,12 +1,21 @@ -=== tests/cases/conformance/es6/moduleExportsCommonjs/decoratedDefaultExportsGetExportedCommonjs.ts === - +=== tests/cases/conformance/es6/moduleExportsCommonjs/a.ts === var decorator: ClassDecorator; ->decorator : Symbol(decorator, Decl(decoratedDefaultExportsGetExportedCommonjs.ts, 1, 3)) +>decorator : Symbol(decorator, Decl(a.ts, 0, 3)) >ClassDecorator : Symbol(ClassDecorator, Decl(lib.d.ts, --, --)) @decorator ->decorator : Symbol(decorator, Decl(decoratedDefaultExportsGetExportedCommonjs.ts, 1, 3)) +>decorator : Symbol(decorator, Decl(a.ts, 0, 3)) export default class Foo {} ->Foo : Symbol(Foo, Decl(decoratedDefaultExportsGetExportedCommonjs.ts, 1, 30)) +>Foo : Symbol(Foo, Decl(a.ts, 0, 30)) + +=== tests/cases/conformance/es6/moduleExportsCommonjs/b.ts === +var decorator: ClassDecorator; +>decorator : Symbol(decorator, Decl(b.ts, 0, 3)) +>ClassDecorator : Symbol(ClassDecorator, Decl(lib.d.ts, --, --)) + +@decorator +>decorator : Symbol(decorator, Decl(b.ts, 0, 3)) + +export default class {} diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.types b/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.types index 56c8926342a..01aaf5c0dbe 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.types +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedCommonjs.types @@ -1,5 +1,4 @@ -=== tests/cases/conformance/es6/moduleExportsCommonjs/decoratedDefaultExportsGetExportedCommonjs.ts === - +=== tests/cases/conformance/es6/moduleExportsCommonjs/a.ts === var decorator: ClassDecorator; >decorator : (target: TFunction) => TFunction | void >ClassDecorator : (target: TFunction) => TFunction | void @@ -10,3 +9,13 @@ var decorator: ClassDecorator; export default class Foo {} >Foo : Foo +=== tests/cases/conformance/es6/moduleExportsCommonjs/b.ts === +var decorator: ClassDecorator; +>decorator : (target: TFunction) => TFunction | void +>ClassDecorator : (target: TFunction) => TFunction | void + +@decorator +>decorator : (target: TFunction) => TFunction | void + +export default class {} + diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js b/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js index a2b22e4ccdb..ed322374799 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js @@ -1,12 +1,18 @@ -//// [decoratedDefaultExportsGetExportedSystem.ts] - +//// [tests/cases/conformance/es6/moduleExportsSystem/decoratedDefaultExportsGetExportedSystem.ts] //// + +//// [a.ts] var decorator: ClassDecorator; @decorator export default class Foo {} +//// [b.ts] +var decorator: ClassDecorator; + +@decorator +export default class {} -//// [decoratedDefaultExportsGetExportedSystem.js] +//// [a.js] System.register([], function(exports_1) { "use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { @@ -28,3 +34,25 @@ System.register([], function(exports_1) { } } }); +//// [b.js] +System.register([], function(exports_1) { + "use strict"; + 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); + 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 decorator, default_1; + return { + setters:[], + execute: function() { + let default_1 = class { + }; + default_1 = __decorate([ + decorator + ], default_1); + exports_1("default", default_1); + } + } +}); diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.symbols b/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.symbols index 106ea3cacd8..3751c992fa5 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.symbols +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.symbols @@ -1,12 +1,20 @@ -=== tests/cases/conformance/es6/moduleExportsSystem/decoratedDefaultExportsGetExportedSystem.ts === - +=== tests/cases/conformance/es6/moduleExportsSystem/a.ts === var decorator: ClassDecorator; ->decorator : Symbol(decorator, Decl(decoratedDefaultExportsGetExportedSystem.ts, 1, 3)) +>decorator : Symbol(decorator, Decl(a.ts, 0, 3)) >ClassDecorator : Symbol(ClassDecorator, Decl(lib.d.ts, --, --)) @decorator ->decorator : Symbol(decorator, Decl(decoratedDefaultExportsGetExportedSystem.ts, 1, 3)) +>decorator : Symbol(decorator, Decl(a.ts, 0, 3)) export default class Foo {} ->Foo : Symbol(Foo, Decl(decoratedDefaultExportsGetExportedSystem.ts, 1, 30)) +>Foo : Symbol(Foo, Decl(a.ts, 0, 30)) +=== tests/cases/conformance/es6/moduleExportsSystem/b.ts === +var decorator: ClassDecorator; +>decorator : Symbol(decorator, Decl(b.ts, 0, 3)) +>ClassDecorator : Symbol(ClassDecorator, Decl(lib.d.ts, --, --)) + +@decorator +>decorator : Symbol(decorator, Decl(b.ts, 0, 3)) + +export default class {} diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.types b/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.types index c180f5fcf09..ae36b442665 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.types +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.types @@ -1,5 +1,4 @@ -=== tests/cases/conformance/es6/moduleExportsSystem/decoratedDefaultExportsGetExportedSystem.ts === - +=== tests/cases/conformance/es6/moduleExportsSystem/a.ts === var decorator: ClassDecorator; >decorator : (target: TFunction) => TFunction | void >ClassDecorator : (target: TFunction) => TFunction | void @@ -10,3 +9,12 @@ var decorator: ClassDecorator; export default class Foo {} >Foo : Foo +=== tests/cases/conformance/es6/moduleExportsSystem/b.ts === +var decorator: ClassDecorator; +>decorator : (target: TFunction) => TFunction | void +>ClassDecorator : (target: TFunction) => TFunction | void + +@decorator +>decorator : (target: TFunction) => TFunction | void + +export default class {} diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.js b/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.js index 06cee476b57..d65bc33575b 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.js +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.js @@ -1,12 +1,19 @@ -//// [decoratedDefaultExportsGetExportedUmd.ts] - +//// [tests/cases/conformance/es6/moduleExportsUmd/decoratedDefaultExportsGetExportedUmd.ts] //// + +//// [a.ts] var decorator: ClassDecorator; @decorator export default class Foo {} +//// [b.ts] +var decorator: ClassDecorator; + +@decorator +export default class {} -//// [decoratedDefaultExportsGetExportedUmd.js] + +//// [a.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; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -30,3 +37,27 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, ], Foo); exports.default = Foo; }); +//// [b.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; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + 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; +}; +(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"; + var decorator; + let default_1 = class { + }; + default_1 = __decorate([ + decorator + ], default_1); + exports.default = default_1; +}); diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.symbols b/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.symbols index f4a8266cfa1..5ea35d450d0 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.symbols +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.symbols @@ -1,12 +1,21 @@ -=== tests/cases/conformance/es6/moduleExportsUmd/decoratedDefaultExportsGetExportedUmd.ts === - +=== tests/cases/conformance/es6/moduleExportsUmd/a.ts === var decorator: ClassDecorator; ->decorator : Symbol(decorator, Decl(decoratedDefaultExportsGetExportedUmd.ts, 1, 3)) +>decorator : Symbol(decorator, Decl(a.ts, 0, 3)) >ClassDecorator : Symbol(ClassDecorator, Decl(lib.d.ts, --, --)) @decorator ->decorator : Symbol(decorator, Decl(decoratedDefaultExportsGetExportedUmd.ts, 1, 3)) +>decorator : Symbol(decorator, Decl(a.ts, 0, 3)) export default class Foo {} ->Foo : Symbol(Foo, Decl(decoratedDefaultExportsGetExportedUmd.ts, 1, 30)) +>Foo : Symbol(Foo, Decl(a.ts, 0, 30)) + +=== tests/cases/conformance/es6/moduleExportsUmd/b.ts === +var decorator: ClassDecorator; +>decorator : Symbol(decorator, Decl(b.ts, 0, 3)) +>ClassDecorator : Symbol(ClassDecorator, Decl(lib.d.ts, --, --)) + +@decorator +>decorator : Symbol(decorator, Decl(b.ts, 0, 3)) + +export default class {} diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.types b/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.types index a258a600ba0..68212835a6f 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.types +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedUmd.types @@ -1,5 +1,4 @@ -=== tests/cases/conformance/es6/moduleExportsUmd/decoratedDefaultExportsGetExportedUmd.ts === - +=== tests/cases/conformance/es6/moduleExportsUmd/a.ts === var decorator: ClassDecorator; >decorator : (target: TFunction) => TFunction | void >ClassDecorator : (target: TFunction) => TFunction | void @@ -10,3 +9,13 @@ var decorator: ClassDecorator; export default class Foo {} >Foo : Foo +=== tests/cases/conformance/es6/moduleExportsUmd/b.ts === +var decorator: ClassDecorator; +>decorator : (target: TFunction) => TFunction | void +>ClassDecorator : (target: TFunction) => TFunction | void + +@decorator +>decorator : (target: TFunction) => TFunction | void + +export default class {} + diff --git a/tests/baselines/reference/defaultExportsGetExportedAmd.js b/tests/baselines/reference/defaultExportsGetExportedAmd.js index b9387a2cc84..fd9927250cb 100644 --- a/tests/baselines/reference/defaultExportsGetExportedAmd.js +++ b/tests/baselines/reference/defaultExportsGetExportedAmd.js @@ -1,11 +1,22 @@ -//// [defaultExportsGetExportedAmd.ts] +//// [tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts] //// + +//// [a.ts] export default class Foo {} +//// [b.ts] +export default function foo() {} -//// [defaultExportsGetExportedAmd.js] + +//// [a.js] define(["require", "exports"], function (require, exports) { "use strict"; class Foo { } exports.default = Foo; }); +//// [b.js] +define(["require", "exports"], function (require, exports) { + "use strict"; + function foo() { } + exports.default = foo; +}); diff --git a/tests/baselines/reference/defaultExportsGetExportedAmd.symbols b/tests/baselines/reference/defaultExportsGetExportedAmd.symbols index 22376f91b08..bcb37eb7db7 100644 --- a/tests/baselines/reference/defaultExportsGetExportedAmd.symbols +++ b/tests/baselines/reference/defaultExportsGetExportedAmd.symbols @@ -1,4 +1,8 @@ -=== tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts === +=== tests/cases/conformance/es6/moduleExportsAmd/a.ts === export default class Foo {} ->Foo : Symbol(Foo, Decl(defaultExportsGetExportedAmd.ts, 0, 0)) +>Foo : Symbol(Foo, Decl(a.ts, 0, 0)) + +=== tests/cases/conformance/es6/moduleExportsAmd/b.ts === +export default function foo() {} +>foo : Symbol(foo, Decl(b.ts, 0, 0)) diff --git a/tests/baselines/reference/defaultExportsGetExportedAmd.types b/tests/baselines/reference/defaultExportsGetExportedAmd.types index 94e511dbef6..a15f5e52f0c 100644 --- a/tests/baselines/reference/defaultExportsGetExportedAmd.types +++ b/tests/baselines/reference/defaultExportsGetExportedAmd.types @@ -1,4 +1,8 @@ -=== tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts === +=== tests/cases/conformance/es6/moduleExportsAmd/a.ts === export default class Foo {} >Foo : Foo +=== tests/cases/conformance/es6/moduleExportsAmd/b.ts === +export default function foo() {} +>foo : () => void + diff --git a/tests/baselines/reference/defaultExportsGetExportedCommonjs.js b/tests/baselines/reference/defaultExportsGetExportedCommonjs.js index 28301251efc..8b97cff5d38 100644 --- a/tests/baselines/reference/defaultExportsGetExportedCommonjs.js +++ b/tests/baselines/reference/defaultExportsGetExportedCommonjs.js @@ -1,9 +1,18 @@ -//// [defaultExportsGetExportedCommonjs.ts] +//// [tests/cases/conformance/es6/moduleExportsCommonjs/defaultExportsGetExportedCommonjs.ts] //// + +//// [a.ts] export default class Foo {} +//// [b.ts] +export default function foo() {} -//// [defaultExportsGetExportedCommonjs.js] + +//// [a.js] "use strict"; class Foo { } exports.default = Foo; +//// [b.js] +"use strict"; +function foo() { } +exports.default = foo; diff --git a/tests/baselines/reference/defaultExportsGetExportedCommonjs.symbols b/tests/baselines/reference/defaultExportsGetExportedCommonjs.symbols index a5be95f1787..ddcaabfed68 100644 --- a/tests/baselines/reference/defaultExportsGetExportedCommonjs.symbols +++ b/tests/baselines/reference/defaultExportsGetExportedCommonjs.symbols @@ -1,4 +1,8 @@ -=== tests/cases/conformance/es6/moduleExportsCommonjs/defaultExportsGetExportedCommonjs.ts === +=== tests/cases/conformance/es6/moduleExportsCommonjs/a.ts === export default class Foo {} ->Foo : Symbol(Foo, Decl(defaultExportsGetExportedCommonjs.ts, 0, 0)) +>Foo : Symbol(Foo, Decl(a.ts, 0, 0)) + +=== tests/cases/conformance/es6/moduleExportsCommonjs/b.ts === +export default function foo() {} +>foo : Symbol(foo, Decl(b.ts, 0, 0)) diff --git a/tests/baselines/reference/defaultExportsGetExportedCommonjs.types b/tests/baselines/reference/defaultExportsGetExportedCommonjs.types index d7034ffa03d..7f7c5bc6f64 100644 --- a/tests/baselines/reference/defaultExportsGetExportedCommonjs.types +++ b/tests/baselines/reference/defaultExportsGetExportedCommonjs.types @@ -1,4 +1,8 @@ -=== tests/cases/conformance/es6/moduleExportsCommonjs/defaultExportsGetExportedCommonjs.ts === +=== tests/cases/conformance/es6/moduleExportsCommonjs/a.ts === export default class Foo {} >Foo : Foo +=== tests/cases/conformance/es6/moduleExportsCommonjs/b.ts === +export default function foo() {} +>foo : () => void + diff --git a/tests/baselines/reference/defaultExportsGetExportedSystem.js b/tests/baselines/reference/defaultExportsGetExportedSystem.js index 7d5c6ee2854..67dc47f4bd5 100644 --- a/tests/baselines/reference/defaultExportsGetExportedSystem.js +++ b/tests/baselines/reference/defaultExportsGetExportedSystem.js @@ -1,8 +1,13 @@ -//// [defaultExportsGetExportedSystem.ts] +//// [tests/cases/conformance/es6/moduleExportsSystem/defaultExportsGetExportedSystem.ts] //// + +//// [a.ts] export default class Foo {} +//// [b.ts] +export default function foo() {} -//// [defaultExportsGetExportedSystem.js] + +//// [a.js] System.register([], function(exports_1) { "use strict"; var Foo; @@ -15,3 +20,14 @@ System.register([], function(exports_1) { } } }); +//// [b.js] +System.register([], function(exports_1) { + "use strict"; + function foo() { } + exports_1("default", foo); + return { + setters:[], + execute: function() { + } + } +}); diff --git a/tests/baselines/reference/defaultExportsGetExportedSystem.symbols b/tests/baselines/reference/defaultExportsGetExportedSystem.symbols index 9050833680e..cd47917b707 100644 --- a/tests/baselines/reference/defaultExportsGetExportedSystem.symbols +++ b/tests/baselines/reference/defaultExportsGetExportedSystem.symbols @@ -1,4 +1,8 @@ -=== tests/cases/conformance/es6/moduleExportsSystem/defaultExportsGetExportedSystem.ts === +=== tests/cases/conformance/es6/moduleExportsSystem/a.ts === export default class Foo {} ->Foo : Symbol(Foo, Decl(defaultExportsGetExportedSystem.ts, 0, 0)) +>Foo : Symbol(Foo, Decl(a.ts, 0, 0)) + +=== tests/cases/conformance/es6/moduleExportsSystem/b.ts === +export default function foo() {} +>foo : Symbol(foo, Decl(b.ts, 0, 0)) diff --git a/tests/baselines/reference/defaultExportsGetExportedSystem.types b/tests/baselines/reference/defaultExportsGetExportedSystem.types index d1439f0f99d..a3c0c90e859 100644 --- a/tests/baselines/reference/defaultExportsGetExportedSystem.types +++ b/tests/baselines/reference/defaultExportsGetExportedSystem.types @@ -1,4 +1,8 @@ -=== tests/cases/conformance/es6/moduleExportsSystem/defaultExportsGetExportedSystem.ts === +=== tests/cases/conformance/es6/moduleExportsSystem/a.ts === export default class Foo {} >Foo : Foo +=== tests/cases/conformance/es6/moduleExportsSystem/b.ts === +export default function foo() {} +>foo : () => void + diff --git a/tests/baselines/reference/defaultExportsGetExportedUmd.js b/tests/baselines/reference/defaultExportsGetExportedUmd.js index 902fc89c1d4..2d442e42061 100644 --- a/tests/baselines/reference/defaultExportsGetExportedUmd.js +++ b/tests/baselines/reference/defaultExportsGetExportedUmd.js @@ -1,8 +1,13 @@ -//// [defaultExportsGetExportedUmd.ts] +//// [tests/cases/conformance/es6/moduleExportsUmd/defaultExportsGetExportedUmd.ts] //// + +//// [a.ts] export default class Foo {} +//// [b.ts] +export default function foo() {} -//// [defaultExportsGetExportedUmd.js] + +//// [a.js] (function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; @@ -16,3 +21,16 @@ export default class Foo {} } exports.default = Foo; }); +//// [b.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"; + function foo() { } + exports.default = foo; +}); diff --git a/tests/baselines/reference/defaultExportsGetExportedUmd.symbols b/tests/baselines/reference/defaultExportsGetExportedUmd.symbols index 9c59f10e6e0..6b96dbaf628 100644 --- a/tests/baselines/reference/defaultExportsGetExportedUmd.symbols +++ b/tests/baselines/reference/defaultExportsGetExportedUmd.symbols @@ -1,4 +1,8 @@ -=== tests/cases/conformance/es6/moduleExportsUmd/defaultExportsGetExportedUmd.ts === +=== tests/cases/conformance/es6/moduleExportsUmd/a.ts === export default class Foo {} ->Foo : Symbol(Foo, Decl(defaultExportsGetExportedUmd.ts, 0, 0)) +>Foo : Symbol(Foo, Decl(a.ts, 0, 0)) + +=== tests/cases/conformance/es6/moduleExportsUmd/b.ts === +export default function foo() {} +>foo : Symbol(foo, Decl(b.ts, 0, 0)) diff --git a/tests/baselines/reference/defaultExportsGetExportedUmd.types b/tests/baselines/reference/defaultExportsGetExportedUmd.types index ed5f4b7f709..a8b2c3495ee 100644 --- a/tests/baselines/reference/defaultExportsGetExportedUmd.types +++ b/tests/baselines/reference/defaultExportsGetExportedUmd.types @@ -1,4 +1,8 @@ -=== tests/cases/conformance/es6/moduleExportsUmd/defaultExportsGetExportedUmd.ts === +=== tests/cases/conformance/es6/moduleExportsUmd/a.ts === export default class Foo {} >Foo : Foo +=== tests/cases/conformance/es6/moduleExportsUmd/b.ts === +export default function foo() {} +>foo : () => void + diff --git a/tests/cases/conformance/es6/moduleExportsAmd/anonymousDefaultExportsAmd.ts b/tests/cases/conformance/es6/moduleExportsAmd/anonymousDefaultExportsAmd.ts new file mode 100644 index 00000000000..562f4a910c5 --- /dev/null +++ b/tests/cases/conformance/es6/moduleExportsAmd/anonymousDefaultExportsAmd.ts @@ -0,0 +1,7 @@ +// @target: ES6 +// @module: amd +// @filename: a.ts +export default class {} + +// @filename: b.ts +export default function() {} \ No newline at end of file diff --git a/tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts b/tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts index 87fc8afd263..8eb8a90c8d7 100644 --- a/tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts +++ b/tests/cases/conformance/es6/moduleExportsAmd/decoratedDefaultExportsGetExportedAmd.ts @@ -1,8 +1,14 @@ // @target: ES6 // @experimentalDecorators: true // @module: amd - +// @filename: a.ts var decorator: ClassDecorator; @decorator export default class Foo {} + +// @filename: b.ts +var decorator: ClassDecorator; + +@decorator +export default class {} diff --git a/tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts b/tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts index ef0f2ffde17..473dfbf6f73 100644 --- a/tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts +++ b/tests/cases/conformance/es6/moduleExportsAmd/defaultExportsGetExportedAmd.ts @@ -1,3 +1,7 @@ // @target: ES6 // @module: amd +// @filename: a.ts export default class Foo {} + +// @filename: b.ts +export default function foo() {} diff --git a/tests/cases/conformance/es6/moduleExportsCommonjs/anonymousDefaultExportsCommonjs.ts b/tests/cases/conformance/es6/moduleExportsCommonjs/anonymousDefaultExportsCommonjs.ts new file mode 100644 index 00000000000..7637426b0ea --- /dev/null +++ b/tests/cases/conformance/es6/moduleExportsCommonjs/anonymousDefaultExportsCommonjs.ts @@ -0,0 +1,7 @@ +// @target: ES6 +// @module: commonjs +// @filename: a.ts +export default class {} + +// @filename: b.ts +export default function() {} \ No newline at end of file diff --git a/tests/cases/conformance/es6/moduleExportsCommonjs/decoratedDefaultExportsGetExportedCommonjs.ts b/tests/cases/conformance/es6/moduleExportsCommonjs/decoratedDefaultExportsGetExportedCommonjs.ts index aefd07ffdb9..a20a3769afb 100644 --- a/tests/cases/conformance/es6/moduleExportsCommonjs/decoratedDefaultExportsGetExportedCommonjs.ts +++ b/tests/cases/conformance/es6/moduleExportsCommonjs/decoratedDefaultExportsGetExportedCommonjs.ts @@ -1,8 +1,14 @@ // @target: ES6 // @experimentalDecorators: true // @module: commonjs - +// @filename: a.ts var decorator: ClassDecorator; @decorator export default class Foo {} + +// @filename: b.ts +var decorator: ClassDecorator; + +@decorator +export default class {} diff --git a/tests/cases/conformance/es6/moduleExportsCommonjs/defaultExportsGetExportedCommonjs.ts b/tests/cases/conformance/es6/moduleExportsCommonjs/defaultExportsGetExportedCommonjs.ts index 994f24df658..d66ffda426f 100644 --- a/tests/cases/conformance/es6/moduleExportsCommonjs/defaultExportsGetExportedCommonjs.ts +++ b/tests/cases/conformance/es6/moduleExportsCommonjs/defaultExportsGetExportedCommonjs.ts @@ -1,3 +1,7 @@ // @target: ES6 // @module: commonjs +// @filename: a.ts export default class Foo {} + +// @filename: b.ts +export default function foo() {} diff --git a/tests/cases/conformance/es6/moduleExportsSystem/anonymousDefaultExportsSystem.ts b/tests/cases/conformance/es6/moduleExportsSystem/anonymousDefaultExportsSystem.ts new file mode 100644 index 00000000000..e29f5ab92aa --- /dev/null +++ b/tests/cases/conformance/es6/moduleExportsSystem/anonymousDefaultExportsSystem.ts @@ -0,0 +1,7 @@ +// @target: ES6 +// @module: system +// @filename: a.ts +export default class {} + +// @filename: b.ts +export default function() {} \ No newline at end of file diff --git a/tests/cases/conformance/es6/moduleExportsSystem/decoratedDefaultExportsGetExportedSystem.ts b/tests/cases/conformance/es6/moduleExportsSystem/decoratedDefaultExportsGetExportedSystem.ts index b871b3c7b35..ca9984dc900 100644 --- a/tests/cases/conformance/es6/moduleExportsSystem/decoratedDefaultExportsGetExportedSystem.ts +++ b/tests/cases/conformance/es6/moduleExportsSystem/decoratedDefaultExportsGetExportedSystem.ts @@ -1,8 +1,14 @@ // @target: ES6 // @experimentalDecorators: true // @module: system - +// @filename: a.ts var decorator: ClassDecorator; @decorator export default class Foo {} + +// @filename: b.ts +var decorator: ClassDecorator; + +@decorator +export default class {} \ No newline at end of file diff --git a/tests/cases/conformance/es6/moduleExportsSystem/defaultExportsGetExportedSystem.ts b/tests/cases/conformance/es6/moduleExportsSystem/defaultExportsGetExportedSystem.ts index 3764f2ec36c..b24757a58bc 100644 --- a/tests/cases/conformance/es6/moduleExportsSystem/defaultExportsGetExportedSystem.ts +++ b/tests/cases/conformance/es6/moduleExportsSystem/defaultExportsGetExportedSystem.ts @@ -1,3 +1,7 @@ // @target: ES6 // @module: system +// @filename: a.ts export default class Foo {} + +// @filename: b.ts +export default function foo() {} diff --git a/tests/cases/conformance/es6/moduleExportsUmd/anonymousDefaultExportsUmd.ts b/tests/cases/conformance/es6/moduleExportsUmd/anonymousDefaultExportsUmd.ts new file mode 100644 index 00000000000..ea83f4e08b0 --- /dev/null +++ b/tests/cases/conformance/es6/moduleExportsUmd/anonymousDefaultExportsUmd.ts @@ -0,0 +1,7 @@ +// @target: ES6 +// @module: umd +// @filename: a.ts +export default class {} + +// @filename: b.ts +export default function() {} \ No newline at end of file diff --git a/tests/cases/conformance/es6/moduleExportsUmd/decoratedDefaultExportsGetExportedUmd.ts b/tests/cases/conformance/es6/moduleExportsUmd/decoratedDefaultExportsGetExportedUmd.ts index 9b0a7d773ef..2ae3f00d254 100644 --- a/tests/cases/conformance/es6/moduleExportsUmd/decoratedDefaultExportsGetExportedUmd.ts +++ b/tests/cases/conformance/es6/moduleExportsUmd/decoratedDefaultExportsGetExportedUmd.ts @@ -1,8 +1,14 @@ // @target: ES6 // @experimentalDecorators: true // @module: umd - +// @filename: a.ts var decorator: ClassDecorator; @decorator export default class Foo {} + +// @filename: b.ts +var decorator: ClassDecorator; + +@decorator +export default class {} diff --git a/tests/cases/conformance/es6/moduleExportsUmd/defaultExportsGetExportedUmd.ts b/tests/cases/conformance/es6/moduleExportsUmd/defaultExportsGetExportedUmd.ts index 39784fc7188..9ce5a7546eb 100644 --- a/tests/cases/conformance/es6/moduleExportsUmd/defaultExportsGetExportedUmd.ts +++ b/tests/cases/conformance/es6/moduleExportsUmd/defaultExportsGetExportedUmd.ts @@ -1,3 +1,7 @@ // @target: ES6 // @module: umd +// @filename: a.ts export default class Foo {} + +// @filename: b.ts +export default function foo() {}