mirror of
https://github.com/zulip/zulip.git
synced 2025-11-22 07:21:23 +00:00
This was "npm update handlebars" followed by copying runtime.js into the static directory and restoring the copyright header. (imported from commit 69d30cbfcb3b776cdfdcffa17a87704540eab76a)
261 lines
4.9 KiB
JavaScript
261 lines
4.9 KiB
JavaScript
constant_switch_1: {
|
|
options = { dead_code: true, evaluate: true };
|
|
input: {
|
|
switch (1+1) {
|
|
case 1: foo(); break;
|
|
case 1+1: bar(); break;
|
|
case 1+1+1: baz(); break;
|
|
}
|
|
}
|
|
expect: {
|
|
bar();
|
|
}
|
|
}
|
|
|
|
constant_switch_2: {
|
|
options = { dead_code: true, evaluate: true };
|
|
input: {
|
|
switch (1) {
|
|
case 1: foo();
|
|
case 1+1: bar(); break;
|
|
case 1+1+1: baz();
|
|
}
|
|
}
|
|
expect: {
|
|
foo();
|
|
bar();
|
|
}
|
|
}
|
|
|
|
constant_switch_3: {
|
|
options = { dead_code: true, evaluate: true };
|
|
input: {
|
|
switch (10) {
|
|
case 1: foo();
|
|
case 1+1: bar(); break;
|
|
case 1+1+1: baz();
|
|
default:
|
|
def();
|
|
}
|
|
}
|
|
expect: {
|
|
def();
|
|
}
|
|
}
|
|
|
|
constant_switch_4: {
|
|
options = { dead_code: true, evaluate: true };
|
|
input: {
|
|
switch (2) {
|
|
case 1:
|
|
x();
|
|
if (foo) break;
|
|
y();
|
|
break;
|
|
case 1+1:
|
|
bar();
|
|
default:
|
|
def();
|
|
}
|
|
}
|
|
expect: {
|
|
bar();
|
|
def();
|
|
}
|
|
}
|
|
|
|
constant_switch_5: {
|
|
options = { dead_code: true, evaluate: true };
|
|
input: {
|
|
switch (1) {
|
|
case 1:
|
|
x();
|
|
if (foo) break;
|
|
y();
|
|
break;
|
|
case 1+1:
|
|
bar();
|
|
default:
|
|
def();
|
|
}
|
|
}
|
|
expect: {
|
|
// the break inside the if ruins our job
|
|
// we can still get rid of irrelevant cases.
|
|
switch (1) {
|
|
case 1:
|
|
x();
|
|
if (foo) break;
|
|
y();
|
|
}
|
|
// XXX: we could optimize this better by inventing an outer
|
|
// labeled block, but that's kinda tricky.
|
|
}
|
|
}
|
|
|
|
constant_switch_6: {
|
|
options = { dead_code: true, evaluate: true };
|
|
input: {
|
|
OUT: {
|
|
foo();
|
|
switch (1) {
|
|
case 1:
|
|
x();
|
|
if (foo) break OUT;
|
|
y();
|
|
case 1+1:
|
|
bar();
|
|
break;
|
|
default:
|
|
def();
|
|
}
|
|
}
|
|
}
|
|
expect: {
|
|
OUT: {
|
|
foo();
|
|
x();
|
|
if (foo) break OUT;
|
|
y();
|
|
bar();
|
|
}
|
|
}
|
|
}
|
|
|
|
constant_switch_7: {
|
|
options = { dead_code: true, evaluate: true };
|
|
input: {
|
|
OUT: {
|
|
foo();
|
|
switch (1) {
|
|
case 1:
|
|
x();
|
|
if (foo) break OUT;
|
|
for (var x = 0; x < 10; x++) {
|
|
if (x > 5) break; // this break refers to the for, not to the switch; thus it
|
|
// shouldn't ruin our optimization
|
|
console.log(x);
|
|
}
|
|
y();
|
|
case 1+1:
|
|
bar();
|
|
break;
|
|
default:
|
|
def();
|
|
}
|
|
}
|
|
}
|
|
expect: {
|
|
OUT: {
|
|
foo();
|
|
x();
|
|
if (foo) break OUT;
|
|
for (var x = 0; x < 10; x++) {
|
|
if (x > 5) break;
|
|
console.log(x);
|
|
}
|
|
y();
|
|
bar();
|
|
}
|
|
}
|
|
}
|
|
|
|
constant_switch_8: {
|
|
options = { dead_code: true, evaluate: true };
|
|
input: {
|
|
OUT: switch (1) {
|
|
case 1:
|
|
x();
|
|
for (;;) break OUT;
|
|
y();
|
|
break;
|
|
case 1+1:
|
|
bar();
|
|
default:
|
|
def();
|
|
}
|
|
}
|
|
expect: {
|
|
OUT: {
|
|
x();
|
|
for (;;) break OUT;
|
|
y();
|
|
}
|
|
}
|
|
}
|
|
|
|
constant_switch_9: {
|
|
options = { dead_code: true, evaluate: true };
|
|
input: {
|
|
OUT: switch (1) {
|
|
case 1:
|
|
x();
|
|
for (;;) if (foo) break OUT;
|
|
y();
|
|
case 1+1:
|
|
bar();
|
|
default:
|
|
def();
|
|
}
|
|
}
|
|
expect: {
|
|
OUT: {
|
|
x();
|
|
for (;;) if (foo) break OUT;
|
|
y();
|
|
bar();
|
|
def();
|
|
}
|
|
}
|
|
}
|
|
|
|
drop_default_1: {
|
|
options = { dead_code: true };
|
|
input: {
|
|
switch (foo) {
|
|
case 'bar': baz();
|
|
default:
|
|
}
|
|
}
|
|
expect: {
|
|
switch (foo) {
|
|
case 'bar': baz();
|
|
}
|
|
}
|
|
}
|
|
|
|
drop_default_2: {
|
|
options = { dead_code: true };
|
|
input: {
|
|
switch (foo) {
|
|
case 'bar': baz(); break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
expect: {
|
|
switch (foo) {
|
|
case 'bar': baz();
|
|
}
|
|
}
|
|
}
|
|
|
|
keep_default: {
|
|
options = { dead_code: true };
|
|
input: {
|
|
switch (foo) {
|
|
case 'bar': baz();
|
|
default:
|
|
something();
|
|
break;
|
|
}
|
|
}
|
|
expect: {
|
|
switch (foo) {
|
|
case 'bar': baz();
|
|
default:
|
|
something();
|
|
}
|
|
}
|
|
}
|