Fix: export default decorated class parsed as class expression (#7189)

This commit is contained in:
Naveen jain 2018-01-30 22:30:29 +05:30 committed by Henry Zhu
parent 2185256589
commit 65ae4ff15b
3 changed files with 9 additions and 4 deletions

View File

@ -1,5 +1,7 @@
var _class, _class2;
export default dec(_class = class A {}) || _class;
let A = dec(_class2 = class A {}) || _class2;
let B = dec(_class2 = class B {}) || _class2;
export { A as default };
let B = dec(_class = class B {}) || _class;

View File

@ -1368,6 +1368,9 @@ export default class StatementParser extends ExpressionParser {
return this.parseFunction(expr, true, false, true, true);
} else if (this.match(tt._class)) {
return this.parseClass(expr, true, true);
} else if (this.match(tt.at)) {
this.parseDecorators(false);
return this.parseClass(expr, true, true);
} else {
const res = this.parseMaybeAssign();
this.semicolon();

View File

@ -43,7 +43,7 @@
}
},
"declaration": {
"type": "ClassExpression",
"type": "ClassDeclaration",
"start": 16,
"end": 34,
"loc": {
@ -129,4 +129,4 @@
],
"directives": []
}
}
}