Merge pull request #280 from zjmiller/master
Add support for anonymous class declarations in default exports
diff --git a/escodegen.js b/escodegen.js
index 40ea53c..0c1b1ae 100644
--- a/escodegen.js
+++ b/escodegen.js
@@ -1145,7 +1145,10 @@
ClassDeclaration: function (stmt, flags) {
var result, fragment;
- result = ['class ' + stmt.id.name];
+ result = ['class'];
+ if (stmt.id) {
+ result = join(result, this.generateExpression(stmt.id, Precedence.Sequence, E_TTT));
+ }
if (stmt.superClass) {
fragment = join('extends', this.generateExpression(stmt.superClass, Precedence.Assignment, E_TTT));
result = join(result, fragment);
diff --git a/test/compare-esprima2/export-default-declaration.expected.js b/test/compare-esprima2/export-default-declaration.expected.js
index a9f92d1..20a9dba 100644
--- a/test/compare-esprima2/export-default-declaration.expected.js
+++ b/test/compare-esprima2/export-default-declaration.expected.js
@@ -2,3 +2,7 @@
}
export default function () {
}
+export default class A {
+}
+export default class {
+}
diff --git a/test/compare-esprima2/export-default-declaration.expected.min.js b/test/compare-esprima2/export-default-declaration.expected.min.js
index ecaae3e..6adcd02 100644
--- a/test/compare-esprima2/export-default-declaration.expected.min.js
+++ b/test/compare-esprima2/export-default-declaration.expected.min.js
@@ -1 +1 @@
-export default function a(){}export default function (){}
+export default function a(){}export default function (){}export default class A{}export default class{}
diff --git a/test/compare-esprima2/export-default-declaration.js b/test/compare-esprima2/export-default-declaration.js
index d99cb8b..e5de54e 100644
--- a/test/compare-esprima2/export-default-declaration.js
+++ b/test/compare-esprima2/export-default-declaration.js
@@ -2,3 +2,5 @@
// export default var i = 20;
// export default const K = 20;
export default function () { }
+export default class A { }
+export default class { }