Skip to content

Commit

Permalink
add some tests
Browse files Browse the repository at this point in the history
  • Loading branch information
fabiosantoscode authored and jridgewell committed Aug 23, 2021
1 parent a9b8a8a commit e9f87c9
Showing 1 changed file with 190 additions and 0 deletions.
190 changes: 190 additions & 0 deletions test/compress/switch.js
Original file line number Diff line number Diff line change
Expand Up @@ -2393,3 +2393,193 @@ issue_445: {
}
expect_stdout: "PASS"
}

collapse_same_branches: {
options = {
switches: true,
dead_code: true
}
input: {
switch (id(1)) {
case 1:
console.log("PASS");
break

case 2:
console.log("PASS");
break

}
}
expect: {
switch (id(1)) {
case 1:
case 2:
console.log("PASS");
}
}
expect_stdout: "PASS"
}

// Not when the branches are break-less
collapse_same_branches_2: {
options = {
switches: true,
dead_code: true
}
input: {
switch (id(1)) {
case 1:
console.log("PASS");

case 2:
console.log("PASS");
}
}
expect: {
switch (id(1)) {
case 1:
console.log("PASS");

case 2:
console.log("PASS");
}
}
expect_stdout: ["PASS", "PASS"]
}

// Empty branches at the end of the switch get trimmed
trim_empty_last_branches: {
options = {
switches: true,
dead_code: true
}
input: {
switch (id(1)) {
case 1:
console.log("PASS")
case 2:
// break should be removed too
break
case 3: {}
case 4:
}
}
expect: {
if (1 === id(1)) console.log("PASS")
}
expect_stdout: "PASS"
}

// ... But break should be kept if we're breaking to somewhere else
trim_empty_last_branches_2: {
options = {
switches: true,
dead_code: true
}
input: {
somewhere_else: if (id(true)) {
switch (id(1)) {
case 1:
console.log("PASS")
case 2:
break somewhere_else
case 3: {}
case 4:
}
}
}
expect: {
somewhere_else: if (id(true))
switch (id(1)) {
case 1:
console.log("PASS")
case 2:
break somewhere_else
}
}
expect_stdout: "PASS"
}

trim_side_effect_free_branches_falling_into_default: {
options = {
switches: true,
dead_code: true
}
input: {
switch (id(1)) {
case 0:
"no side effect"
case 1:
// Not here either
default:
console.log("PASS default")
case 2:
console.log("PASS 2")
}
}
expect: {
if (2 !== id(1))
console.log("PASS default");
console.log("PASS 2")
}
}

gut_entire_switch: {
options = {
switches: true,
dead_code: true
}
input: {
switch (id(123)) {
case 1:
case 2:
case 3:
default:
console.log("PASS");
}
}
expect: {
id(123); console.log("PASS");
}
expect_stdout: "PASS"
}

turn_into_if: {
options = {
switches: true,
dead_code: true
}
input: {
switch (id(1)) {
case id(2):
console.log("FAIL");
}
console.log("PASS");
}
expect: {
if (id(1) === id(2)) console.log("FAIL");
console.log("PASS");
}
expect_stdout: "PASS"
}

turn_into_if_2: {
options = {
switches: true,
dead_code: true
}
input: {
switch (id(1)) {
case id(2):
console.log("FAIL");
default:
console.log("PASS");
}
}
expect: {
if (id(1) === id(2)) console.log("FAIL");
console.log("PASS");
}
expect_stdout: "PASS"
}

0 comments on commit e9f87c9

Please sign in to comment.