Justin Ridgewell b1a589f0aa
Fix printing edge cases in Nullish Coalescing and Optional Ch… (#11255)
This is a mix of changes, most importantly:

- Always print parens when mixing nullish coalescing and another logical
- Fixes assignment in the callee of an optional chain, which now blocks #11248

Also, cleans up a bit of code, and removes an unnecessary parens around `class A extends new B {}`
2020-03-13 16:35:28 +01:00

36 lines
522 B
JavaScript

class A1 extends (() => {}) {}
class A2 extends (B = C) {}
class A3 extends (B || C) {}
class A4 extends (B + C) {}
class A5 extends B() {}
class A6 extends class {} {}
class A7 extends (B ? C : D) {}
class A8 extends new B() {}
class A9 extends (B, C) {}
class A10 extends {} {}
class A11 extends B.C {}
class A12 extends function () {} {}
class A13 extends (void B) {}
class A14 extends (++B) {}
async function f1() {
class A15 extends (await C) {}
}
function* f2() {
class A16 extends (yield 1) {}
}