aboutsummaryrefslogtreecommitdiff
labels_1: {
    options = {
        conditionals: true,
        dead_code: true,
        if_return: true,
        unused: true,
    }
    input: {
        out: {
            if (foo) break out;
            console.log("bar");
        }
    };
    expect: {
        foo || console.log("bar");
    }
    expect_stdout: true
}

labels_2: {
    options = {
        conditionals: true,
        dead_code: true,
        if_return: true,
        unused: true,
    }
    input: {
        out: {
            if (foo) print("stuff");
            else break out;
            console.log("here");
        }
    };
    expect: {
        if (foo) {
            print("stuff");
            console.log("here");
        }
    }
}

labels_3: {
    options = {
        conditionals: true,
        dead_code: true,
        if_return: true,
    }
    input: {
        for (var i = 0; i < 5; ++i) {
            if (i < 3) continue;
            console.log(i);
        }
    };
    expect: {
        for (var i = 0; i < 5; ++i)
            i < 3 || console.log(i);
    }
    expect_stdout: true
}

labels_4: {
    options = {
        conditionals: true,
        dead_code: true,
        if_return: true,
        unused: true,
    }
    input: {
        out: for (var i = 0; i < 5; ++i) {
            if (i < 3) continue out;
            console.log(i);
        }
    };
    expect: {
        for (var i = 0; i < 5; ++i)
            i < 3 || console.log(i);
    }
    expect_stdout: true
}

labels_5: {
    options = {
        conditionals: true,
        dead_code: true,
        if_return: true,
    }
    // should keep the break-s in the following
    input: {
        while (foo) {
            if (bar) break;
            console.log("foo");
        }
        out: while (foo) {
            if (bar) break out;
            console.log("foo");
        }
    };
    expect: {
        while (foo) {
            if (bar) break;
            console.log("foo");
        }
        out: while (foo) {
            if (bar) break out;
            console.log("foo");
        }
    }
}

labels_6: {
    options = {
        dead_code: true,
    }
    input: {
        out: break out;
    };
    expect: {}
}

labels_7: {
    options = {
        conditionals: true,
        dead_code: true,
        if_return: true,
    }
    input: {
        while (foo) {
            x();
            y();
            continue;
        }
    };
    expect: {
        while (foo) {
            x();
            y();
        }
    }
}

labels_8: {
    options = {
        conditionals: true,
        dead_code: true,
        if_return: true,
    }
    input: {
        while (foo) {
            x();
            y();
            break;
        }
    };
    expect: {
        while (foo) {
            x();
            y();
            break;
        }
    }
}

labels_9: {
    options = {
        conditionals: true,
        dead_code: true,
        if_return: true,
        unused: true,
    }
    input: {
        out: while (foo) {
            x();
            y();
            continue out;
            z();
            k();
        }
    };
    expect: {
        while (foo) {
            x();
            y();
        }
    }
}

labels_10: {
    options = {
        conditionals: true,
        dead_code: true,
        if_return: true,
    }
    input: {
        out: while (foo) {
            x();
            y();
            break out;
            z();
            k();
        }
    };
    expect: {
        out: while (foo) {
            x();
            y();
            break out;
        }
    }
}

issue_4466_1: {
    mangle = {
        v8: false,
    }
    input: {
        A: if (console.log("PASS"))
            B:;
        else
            C:;
    }
    expect: {
        e: if (console.log("PASS"))
            l:;
        else
            l:;
    }
    expect_stdout: "PASS"
    node_version: ">=12"
}

issue_4466_1_v8: {
    mangle = {
        v8: true,
    }
    input: {
        A: if (console.log("PASS"))
            B:;
        else
            C:;
    }
    expect: {
        e: if (console.log("PASS"))
            l:;
        else
            o:;
    }
    expect_stdout: "PASS"
    node_version: ">=12"
}

issue_4466_2: {
    mangle = {
        toplevel: false,
        v8: false,
    }
    input: {
        if (console.log("PASS"))
            A:;
        else
            B:;
    }
    expect: {
        if (console.log("PASS"))
            e:;
        else
            e:;
    }
    expect_stdout: "PASS"
}

issue_4466_2_v8: {
    mangle = {
        toplevel: false,
        v8: true,
    }
    input: {
        if (console.log("PASS"))
            A:;
        else
            B:;
    }
    expect: {
        if (console.log("PASS"))
            e:;
        else
            l:;
    }
    expect_stdout: "PASS"
}

issue_4466_2_toplevel: {
    mangle = {
        toplevel: true,
        v8: false,
    }
    input: {
        if (console.log("PASS"))
            A:;
        else
            B:;
    }
    expect: {
        if (console.log("PASS"))
            e:;
        else
            e:;
    }
    expect_stdout: "PASS"
}

issue_4466_2_toplevel_v8: {
    mangle = {
        toplevel: true,
        v8: true,
    }
    input: {
        if (console.log("PASS"))
            A:;
        else
            B:;
    }
    expect: {
        if (console.log("PASS"))
            e:;
        else
            e:;
    }
    expect_stdout: "PASS"
}