mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Reject class with extends for single file UI components
This commit is contained in:
parent
ab1e53701b
commit
baf6cf6a14
@ -0,0 +1,6 @@
|
|||||||
|
class Foo extends Bar {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
</div>
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
var expect = require('chai').expect;
|
||||||
|
|
||||||
|
exports.checkError = function(e) {
|
||||||
|
expect(e.toString()).to.contain('A component class is not allowed to use `extends`');
|
||||||
|
expect(e.toString()).to.contain('https://github.com/marko-js/marko/wiki/Error:-Component-class-with-extends');
|
||||||
|
};
|
||||||
@ -207,6 +207,12 @@ function handleClassDeclaration(classEl, transformHelper) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let expression = tree.body[0].expression;
|
let expression = tree.body[0].expression;
|
||||||
|
|
||||||
|
if (expression.superClass && expression.superClass.name) {
|
||||||
|
transformHelper.context.addError(classEl, 'A component class is not allowed to use `extends`. See: https://github.com/marko-js/marko/wiki/Error:-Component-class-with-extends');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let object = classToObject(expression);
|
let object = classToObject(expression);
|
||||||
let componentVar = transformHelper.context.addStaticVar('marko_component', escodegen.generate(object));
|
let componentVar = transformHelper.context.addStaticVar('marko_component', escodegen.generate(object));
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user