From 99108694d55138cd2046970bac8e0b3ef1e6172e Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 16 Mar 2015 20:54:28 -0700 Subject: [PATCH] Do not emit "export" for classes within modules, and do not write the name of an export default class --- src/compiler/emitter.ts | 6 ++++-- .../reference/es6ExportDefaultClassDeclaration2.js | 2 +- tests/baselines/reference/es6ModuleClassDeclaration.js | 4 ++-- tests/baselines/reference/symbolDeclarationEmit12.js | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 888c37f2f85..f1305254455 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -4894,7 +4894,7 @@ module ts { } function emitClassDeclarationForES6AndHigher(node: ClassDeclaration) { - if (node.flags & NodeFlags.Export) { + if (isES6ModuleMemberDeclaration(node)) { write("export "); if (node.flags & NodeFlags.Default) { @@ -4903,7 +4903,9 @@ module ts { } write("class "); - emitDeclarationName(node); + if (node.name || !(node.flags & NodeFlags.Default)) { + emitDeclarationName(node); + } var baseTypeNode = getClassBaseTypeNode(node); if (baseTypeNode) { write(" extends "); diff --git a/tests/baselines/reference/es6ExportDefaultClassDeclaration2.js b/tests/baselines/reference/es6ExportDefaultClassDeclaration2.js index 3941f3ee7d3..a975d4322f5 100644 --- a/tests/baselines/reference/es6ExportDefaultClassDeclaration2.js +++ b/tests/baselines/reference/es6ExportDefaultClassDeclaration2.js @@ -6,7 +6,7 @@ export default class { //// [es6ExportDefaultClassDeclaration2.js] -export default class _default { +export default class { method() { } } diff --git a/tests/baselines/reference/es6ModuleClassDeclaration.js b/tests/baselines/reference/es6ModuleClassDeclaration.js index 633548155e7..fb555196315 100644 --- a/tests/baselines/reference/es6ModuleClassDeclaration.js +++ b/tests/baselines/reference/es6ModuleClassDeclaration.js @@ -149,7 +149,7 @@ new c(); new c2(); var m1; (function (m1) { - export class c3 { + class c3 { constructor() { this.x = 10; this.y = 30; @@ -189,7 +189,7 @@ var m1; export { m1 }; var m2; (function (m2) { - export class c3 { + class c3 { constructor() { this.x = 10; this.y = 30; diff --git a/tests/baselines/reference/symbolDeclarationEmit12.js b/tests/baselines/reference/symbolDeclarationEmit12.js index 9a75f6d573c..6165475a500 100644 --- a/tests/baselines/reference/symbolDeclarationEmit12.js +++ b/tests/baselines/reference/symbolDeclarationEmit12.js @@ -15,7 +15,7 @@ module M { //// [symbolDeclarationEmit12.js] var M; (function (M) { - export class C { + class C { [Symbol.toPrimitive](x) { } [Symbol.isConcatSpreadable]() {