Tan Li Hau 3e4a9d588b Do expressions transform for switch statements (#10070)
* lint fix

* switch inside do expression

* review comments

* review comments

* make min diff

* adding more test

* review changes

* review changes

* handle block statement and added more test cases

* fix implementation and add more test cases

* fix last swtich case

* disable block fallthrough case

* fix nitpick reviews
2019-08-01 09:36:35 +02:00

37 lines
649 B
JavaScript

// `blockExpressions` before `break` is hard to deal with
// https://github.com/babel/babel/pull/10070#discussion_r296048106
const x = (n) => do {
switch (n) {
case 0:
{ "a"; }
{ "b"; };
case 1:
{ "c"; }
break;
{ "d"; };
case 2:
"a";
"b";
case 3:
{}
{ break; }
case 4:
{ "d"; }
{ "e"; }
case 5:
"f";
case 6:
{}
case 7:
}
}
expect(x(0)).toBe('c')
expect(x(1)).toBe('c')
expect(x(2)).toBeUndefined()
expect(x(3)).toBeUndefined()
expect(x(4)).toBe('f')
expect(x(5)).toBe('f')
expect(x(6)).toBeUndefined()
expect(x(7)).toBeUndefined()