/* * Some old cases from doc/compiler.txt. * * Note: the case for 'f(3)' is duplicated on purpose. */ function f(x) { print("f() called with x=" + x); return x; } /*=== f() called with x=1 f() called with x=2 f() called with x=3 f() called with x=102 f() called with x=103 f() called with x=104 104 ===*/ /* Basic case without default clauses, match in the middle */ print(eval("switch (3) {\n" + " case f(1): f(100);\n" + " case f(2): f(101);\n" + " case f(3): f(102);\n" + " case f(4): f(103);\n" + " case f(3): f(104);\n" + "}")); /*=== f() called with x=1 f() called with x=2 f() called with x=3 f() called with x=102 f() called with x=103 f() called with x=104 104 ===*/ /* Default clause with a match after the default clause */ print(eval("switch (3) {\n" + " case f(1): f(100);\n" + " case f(2): f(101);\n" + " default:\n" + " case f(3): f(102);\n" + " case f(4): f(103);\n" + " case f(3): f(104);\n" + "}")); /*=== f() called with x=1 f() called with x=2 f() called with x=101 f() called with x=102 f() called with x=103 f() called with x=104 104 ===*/ /* Default clause, with match before default clause */ print(eval("switch (2) {\n" + " case f(1): f(100);\n" + " case f(2): f(101);\n" + " default:\n" + " case f(3): f(102);\n" + " case f(4): f(103);\n" + " case f(3): f(104);\n" + "}")); /*=== f() called with x=1 f() called with x=2 f() called with x=3 f() called with x=4 f() called with x=3 f() called with x=102 f() called with x=103 f() called with x=104 104 ===*/ /* Default clause without a match:: */ print(eval("switch (5) {\n" + " case f(1): f(100);\n" + " case f(2): f(101);\n" + " default: \n" + " case f(3): f(102);\n" + " case f(4): f(103);\n" + " case f(3): f(104);\n" + "}"));