| #include <algorithm> | |
| #include <cmath> | |
| #include <emscripten.h> | |
| extern "C" { | |
| int EMSCRIPTEN_KEEPALIVE check_if(int x) { | |
| if (x < 10) | |
| x++; | |
| return x; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE check_loop(int x) { | |
| while (x < 100) | |
| x *= 2; | |
| return x; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE check_loop_break(int x) { | |
| while (x < 100) { | |
| x *= 2; | |
| if (x > 30) | |
| break; | |
| x++; | |
| } | |
| return x; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE check_loop_continue(int x) { | |
| while (x < 100) { | |
| x *= 2; | |
| if (x > 30) | |
| continue; | |
| x++; | |
| } | |
| return x; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE check_do_loop(int x) { | |
| do { | |
| x *= 2; | |
| if (x > 1000) | |
| break; | |
| x--; | |
| if (x > 30) | |
| continue; | |
| x++; | |
| } while (x < 100); | |
| return x; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE check_do_once(int x) { | |
| do { | |
| x *= 2; | |
| if (x > 1000) | |
| break; | |
| x--; | |
| if (x > 30) | |
| continue; | |
| x++; | |
| } while (0); | |
| return x; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE check_while_forever(int x) { | |
| while (1) { | |
| x *= 2; | |
| if (x > 1000) | |
| break; | |
| x--; | |
| if (x > 30) | |
| continue; | |
| x++; | |
| } | |
| return x; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE check_switch(int x) { | |
| switch (x) { | |
| case 1: | |
| return 10; | |
| case 3: | |
| return 20; | |
| case 5: | |
| return 30; | |
| case 10: | |
| return 40; | |
| case 11: | |
| return 50; | |
| default: | |
| return 60; | |
| } | |
| return 70; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE check_switch_nodefault(int x) { | |
| switch (x) { | |
| case 1: | |
| return 10; | |
| case 3: | |
| return 20; | |
| case 5: | |
| return 30; | |
| case 10: | |
| return 40; | |
| case 11: | |
| return 50; | |
| } | |
| return 70; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE check_switch_rdefault(int x) { | |
| switch (x) { | |
| default: | |
| return -60; | |
| case 1: | |
| return 10; | |
| case 3: | |
| return 20; | |
| case 5: | |
| return 30; | |
| case 10: | |
| return 40; | |
| case 11: | |
| return 50; | |
| } | |
| return 70; | |
| } | |
| int EMSCRIPTEN_KEEPALIVE check_switch_fallthrough(int x) { | |
| switch (x) { | |
| case 1: | |
| return 10; | |
| case 2: | |
| case 3: | |
| x++; | |
| case 5: | |
| return x; | |
| case 10: | |
| return 40; | |
| case 11: | |
| return 50; | |
| default: | |
| return 60; | |
| } | |
| return 70; | |
| } | |
| } |