Super class (class extends) isn't parenthesized correctly
NotWearingPants opened this issue · comments
NotWearingPants commented
There is no parenthesis check at all in class extends ...
.
Using the online demo:
class A extends (a => a) {}
turns into
class A extends a => a {}
which is a syntax error.
function* f() { class A extends (yield) {} }
turns into
function* f() { class A extends yield {} }
which is a syntax error.
async function f() { class A extends (await B) {} }
turns into
async function f() { class A extends await B {} }
which is a syntax error.
class A extends (a++) {}
turns into
class A extends a++ {}
which is a syntax error.
class A extends (1+1) {}
turns into
class A extends 1+1 {}
which is a syntax error.
class A extends (-1) {}
turns into
class A extends -1 {}
which is a syntax error.