diff --git a/compiler/lib/generate.ml b/compiler/lib/generate.ml index 759237e62e..8a016d7b09 100644 --- a/compiler/lib/generate.ml +++ b/compiler/lib/generate.ml @@ -1014,11 +1014,6 @@ let throw_statement ctx cx k loc = , loc ) ] -let next_label scope_stack = - match scope_stack with - | (_, (l, _, _)) :: _ -> J.Label.succ l - | [] -> J.Label.zero - let rec translate_expr ctx queue loc x e level : _ * J.statement_list = match e with | Apply { f; args; exact } -> @@ -1400,7 +1395,7 @@ and compile_block st queue (pc : Addr.t) scope_stack ~fall_through = | true -> if debug () then Format.eprintf "@[for(;;) {@,"; let never_body, body = - let lab = next_label scope_stack in + let lab = J.Label.fresh () in let lab_used = ref false in let exit_branch_used = ref false in let scope_stack = (pc, (lab, lab_used, Loop)) :: scope_stack in @@ -1463,7 +1458,7 @@ and compile_block_no_loop st queue (pc : Addr.t) ~fall_through scope_stack = match l with | [] -> compile_conditional st queue ~fall_through block.branch scope_stack | x :: xs -> ( - let l = next_label scope_stack in + let l = J.Label.fresh () in let used = ref false in let scope_stack = (x, (l, used, Forward)) :: scope_stack in let _never_inner, inner = loop ~scope_stack ~fall_through:(Block x) xs in @@ -1515,7 +1510,7 @@ and compile_decision_tree kind st scope_stack loc cx dtree ~fall_through = let all_never = ref true in let len = Array.length a in let last_index = len - 1 in - let lab = next_label scope_stack in + let lab = J.Label.fresh () in let label_used = ref false in let exit_branch_used = ref false in let scope_stack = diff --git a/compiler/lib/javascript.ml b/compiler/lib/javascript.ml index c1c58273dd..756fdefdc5 100644 --- a/compiler/lib/javascript.ml +++ b/compiler/lib/javascript.ml @@ -143,20 +143,10 @@ end module Label = struct type t = - | L of int + | L of Code.Var.t | S of Utf8_string.t - let printer = Var_printer.create Var_printer.Alphabet.javascript - - let zero = L 0 - - let succ = function - | L t -> L (succ t) - | S _ -> assert false - - let to_string = function - | L t -> Utf8_string.of_string_exn (Var_printer.to_string printer t) - | S s -> s + let fresh () = L (Code.Var.fresh ()) let of_string s = S s end diff --git a/compiler/lib/javascript.mli b/compiler/lib/javascript.mli index 3d6ffbaeb3..75cf608a77 100644 --- a/compiler/lib/javascript.mli +++ b/compiler/lib/javascript.mli @@ -51,13 +51,11 @@ module Num : sig end module Label : sig - type t - - val zero : t - - val succ : t -> t + type t = + | L of Code.Var.t + | S of Utf8_string.t - val to_string : t -> Utf8_string.t + val fresh : unit -> t val of_string : Utf8_string.t -> t end diff --git a/compiler/lib/js_assign.ml b/compiler/lib/js_assign.ml index ded0a92fb7..67974304f0 100644 --- a/compiler/lib/js_assign.ml +++ b/compiler/lib/js_assign.ml @@ -329,11 +329,48 @@ class traverse record_block = super#record_block b end +class traverse_labels h = + object + inherit Js_traverse.iter as super + + val ldepth = 0 + + method fun_decl (_k, _params, body, _loc) = + let m = {} in + m#function_body body + + method statement = + function + | Labelled_statement (L l, (s, _)) -> + let m = {} in + Hashtbl.add h l ldepth; + m#statement s + | s -> super#statement s + end + +class name ident label = + object (m) + inherit Js_traverse.subst ident as super + + method statement = + function + | Labelled_statement (l, (s, loc)) -> + Labelled_statement (label l, (m#statement s, loc)) + | Break_statement (Some l) -> Break_statement (Some (label l)) + | Continue_statement (Some l) -> Continue_statement (Some (label l)) + | s -> super#statement s + end + let program' (module Strategy : Strategy) p = let nv = Var.count () in let state = Strategy.create nv in + let labels = Hashtbl.create 20 in let mapper = new traverse (Strategy.record_block state) in let p = mapper#program p in + let () = + let o = new traverse_labels labels in + o#program p + in mapper#record_block Normal; let free = IdentSet.filter @@ -350,7 +387,7 @@ let program' (module Strategy : Strategy) p = | S _ -> () | V x -> names.(Var.idx x) <- "") free; - let color = function + let ident = function | V v -> ( let name = names.(Var.idx v) in match name, has_free_var with @@ -359,7 +396,18 @@ let program' (module Strategy : Strategy) p = | _, (true | false) -> ident ~var:v (Utf8_string.of_string_exn name)) | x -> x in - let p = (new Js_traverse.subst color)#program p in + let label_printer = Var_printer.create Var_printer.Alphabet.javascript in + let max_label_depth = Hashtbl.fold (fun _ d acc -> max d acc) labels 0 in + let lname_per_depth = + Array.init (max_label_depth + 1) ~f:(fun i -> Var_printer.to_string label_printer i) + in + let label = function + | Label.S _ as l -> l + | L v -> + let i = Hashtbl.find labels v in + S (Utf8_string.of_string_exn lname_per_depth.(i)) + in + let p = (new name ident label)#program p in (if has_free_var then let () = diff --git a/compiler/lib/js_output.ml b/compiler/lib/js_output.ml index 1a54bfd96a..ed9042276e 100644 --- a/compiler/lib/js_output.ml +++ b/compiler/lib/js_output.ml @@ -60,6 +60,10 @@ end) = struct open D + let nane_of_label = function + | Javascript.Label.L _ -> assert false + | Javascript.Label.S n -> n + let debug_enabled = Config.Flag.debuginfo () let output_debug_info f loc = @@ -1260,7 +1264,7 @@ struct last_semi () | Continue_statement (Some s) -> PP.string f "continue "; - let (Utf8 l) = Javascript.Label.to_string s in + let (Utf8 l) = nane_of_label s in PP.string f l; last_semi () | Break_statement None -> @@ -1268,7 +1272,7 @@ struct last_semi () | Break_statement (Some s) -> PP.string f "break "; - let (Utf8 l) = Javascript.Label.to_string s in + let (Utf8 l) = nane_of_label s in PP.string f l; last_semi () | Return_statement e -> ( @@ -1309,7 +1313,7 @@ struct (* There MUST be a space between the return and its argument. A line return will not work *)) | Labelled_statement (i, s) -> - let (Utf8 l) = Javascript.Label.to_string i in + let (Utf8 l) = nane_of_label i in PP.string f l; PP.string f ":"; PP.space f; diff --git a/compiler/lib/js_traverse.ml b/compiler/lib/js_traverse.ml index 41efb1a781..295b7e3435 100644 --- a/compiler/lib/js_traverse.ml +++ b/compiler/lib/js_traverse.ml @@ -976,6 +976,8 @@ class rename_variable = val decl = StringSet.empty + val labels = StringMap.empty + method private update_state scope params iter_body = let declared_names = declared scope params iter_body in { + let l, m = + match l with + | L _ -> l, m + | S (Utf8 u) -> + let l = Label.fresh () in + let m = {} in + l, m + in + Labelled_statement (l, (m#statement s, loc)) + | Break_statement (Some l) -> ( + match l with + | L _ -> s + | S (Utf8 l) -> ( + match StringMap.find_opt l labels with + | None -> s + | Some l -> Break_statement (Some l))) + | Continue_statement (Some l) -> ( + match l with + | L _ -> s + | S (Utf8 l) -> ( + match StringMap.find_opt l labels with + | None -> s + | Some l -> Continue_statement (Some l))) | Function_declaration (id, (k, params, body, nid)) -> let ids = bound_idents_of_params params in let m' = m#update_state (Fun_block None) ids body in diff --git a/compiler/tests-full/stdlib.cma.expected.js b/compiler/tests-full/stdlib.cma.expected.js index e9cdd8d0b4..282f75cac5 100644 --- a/compiler/tests-full/stdlib.cma.expected.js +++ b/compiler/tests-full/stdlib.cma.expected.js @@ -1298,11 +1298,11 @@ /*<>*/ return [0, arity, start_env]; /*<>*/ } function of_val(x){ - /*<>*/ b: + /*<>*/ a: { if (is_block(x) - && /*<>*/ caml_obj_tag(x) !== 248 && 1 <= x.length - 1){var slot = x[1]; break b;} + && /*<>*/ caml_obj_tag(x) !== 248 && 1 <= x.length - 1){var slot = x[1]; break a;} var slot = x; } a: @@ -1615,11 +1615,11 @@ /*<>*/ return [246, function(_f_){ var _g_ = caml_obj_tag(x); - b: + a: if(250 === _g_) var _h_ = x[1]; else{ - if(246 !== _g_ && 244 !== _g_){var _h_ = x; break b;} + if(246 !== _g_ && 244 !== _g_){var _h_ = x; break a;} var _h_ = caml_call1(CamlinternalLazy[2], x); } /*<>*/ return /*<>*/ caml_call1 @@ -1631,22 +1631,22 @@ /*<>*/ return [246, function(_c_){ var _d_ = caml_obj_tag(x); - b: + a: if(250 === _d_) var _e_ = x[1]; else{ - if(246 !== _d_ && 244 !== _d_){var _e_ = x; break b;} + if(246 !== _d_ && 244 !== _d_){var _e_ = x; break a;} var _e_ = caml_call1(CamlinternalLazy[2], x); } /*<>*/ return /*<>*/ caml_call1 (f, _e_); }]; var _a_ = caml_obj_tag(x); - b: + a: if(250 === _a_) var _b_ = x[1]; else{ - if(246 !== _a_ && 244 !== _a_){var _b_ = x; break b;} + if(246 !== _a_ && 244 !== _a_){var _b_ = x; break a;} var _b_ = caml_call1(CamlinternalLazy[2], x); } /*<>*/ return from_val @@ -2968,14 +2968,14 @@ (Stdlib[1], cst_Char_chr); /*<>*/ } function escaped(c){ - /*<>*/ b: + /*<>*/ a: { if(40 <= c){ if(92 === c) /*<>*/ return cst; - if(127 > c) break b; + if(127 > c) break a; } else{ - if(32 <= c){if(39 <= c) /*<>*/ return cst$0; break b;} + if(32 <= c){if(39 <= c) /*<>*/ return cst$0; break a;} if(14 > c) switch(c){ case 8: @@ -4644,9 +4644,9 @@ c = a + b | 0, _ao_ = b < 0 ? 1 : 0, match = c < 0 ? 1 : 0; - b: + a: { - if(a < 0){if(_ao_ && ! match) break b;} else if(! _ao_ && match) break b; + if(a < 0){if(_ao_ && ! match) break a;} else if(! _ao_ && match) break a; /*<>*/ return c; } /*<>*/ return /*<>*/ caml_call1 @@ -4802,9 +4802,9 @@ function is_space(param){ /*<>*/ /*<>*/ var _ag_ = param - 9 | 0; - b: + a: { - if(4 < _ag_ >>> 0){if(23 !== _ag_) break b;} else if(2 === _ag_) break b; + if(4 < _ag_ >>> 0){if(23 !== _ag_) break a;} else if(2 === _ag_) break a; /*<>*/ return 1; } /*<>*/ return 0; @@ -4834,28 +4834,28 @@ var i$0 = ___; for(;;){ var match = caml_bytes_unsafe_get(s, i$0); - c: + a: { - d: + b: { - e: + c: { if(32 <= match){ var _ad_ = match - 34 | 0; if(58 < _ad_ >>> 0){ - if(93 <= _ad_) break e; + if(93 <= _ad_) break c; } - else if(56 < _ad_ - 1 >>> 0) break d; + else if(56 < _ad_ - 1 >>> 0) break b; var _ae_ = 1; - break c; + break a; } if(11 <= match){ - if(13 === match) break d; + if(13 === match) break b; } - else if(8 <= match) break d; + else if(8 <= match) break b; } var _ae_ = 4; - break c; + break a; } var _ae_ = 2; } @@ -4876,48 +4876,48 @@ var i = _aa_; for(;;){ var c = caml_bytes_unsafe_get(s, i); - d: + a: { - e: + b: { - f: + c: { if(35 <= c){ - if(92 !== c){if(127 <= c) break f; break e;} + if(92 !== c){if(127 <= c) break c; break b;} } else{ if(32 > c){ - if(14 <= c) break f; + if(14 <= c) break c; switch(c){ case 8: caml_bytes_unsafe_set(s$0, n[1], 92); n[1]++; caml_bytes_unsafe_set(s$0, n[1], 98); - break d; + break a; case 9: caml_bytes_unsafe_set(s$0, n[1], 92); n[1]++; caml_bytes_unsafe_set(s$0, n[1], 116); - break d; + break a; case 10: caml_bytes_unsafe_set(s$0, n[1], 92); n[1]++; caml_bytes_unsafe_set(s$0, n[1], 110); - break d; + break a; case 13: caml_bytes_unsafe_set(s$0, n[1], 92); n[1]++; caml_bytes_unsafe_set(s$0, n[1], 114); - break d; - default: break f; + break a; + default: break c; } } - if(34 > c) break e; + if(34 > c) break b; } caml_bytes_unsafe_set(s$0, n[1], 92); n[1]++; caml_bytes_unsafe_set(s$0, n[1], c); - break d; + break a; } caml_bytes_unsafe_set(s$0, n[1], 92); n[1]++; @@ -4926,7 +4926,7 @@ caml_bytes_unsafe_set(s$0, n[1], 48 + ((c / 10 | 0) % 10 | 0) | 0); n[1]++; caml_bytes_unsafe_set(s$0, n[1], 48 + (c % 10 | 0) | 0); - break d; + break a; } caml_bytes_unsafe_set(s$0, n[1], c); } @@ -5461,11 +5461,11 @@ /*<>*/ caml_bytes_get(b, i), /*<>*/ max = /*<>*/ caml_ml_bytes_length(b) - 1 | 0; - b: + a: { /*<>*/ if(224 <= b0){ if(237 <= b0){ - if(245 <= b0) break b; + if(245 <= b0) break a; switch(b0 - 237 | 0){ case 0: /*<>*/ /*<>*/ var i$0 = i + 1 | 0; @@ -6313,9 +6313,9 @@ /*<>*/ } function is_space(param){ /*<>*/ /*<>*/ var _J_ = param - 9 | 0; - b: + a: { - if(4 < _J_ >>> 0){if(23 !== _J_) break b;} else if(2 === _J_) break b; + if(4 < _J_ >>> 0){if(23 !== _J_) break a;} else if(2 === _J_) break a; /*<>*/ return 1; } /*<>*/ return 0; @@ -7413,7 +7413,7 @@ /*<>*/ /*<>*/ var _y_ = l - 1 | 0; if(_y_ >= 2){ var i$4 = _y_; - c: + a: for(;;){ /*<>*/ /*<>*/ var e$0 = caml_check_bound(a, i$4)[1 + i$4]; @@ -7452,7 +7452,7 @@ /*<>*/ caml_check_bound(a, 0)[1] = e$0; } /*<>*/ /*<>*/ var _B_ = i$4 - 1 | 0; - if(2 === i$4) break c; + if(2 === i$4) break a; var i$4 = _B_; break; } @@ -7763,25 +7763,25 @@ /*<>*/ return 0 === caml_float_compare(x, y) ? 1 : 0; /*<>*/ } function min(x, y){ - /*<>*/ b: + /*<>*/ a: if(! (x < y)){ /*<>*/ if (! /*<>*/ caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) - break b; + break a; /*<>*/ return x != x ? x : y; } /*<>*/ return y != y ? y : x; /*<>*/ } function max(x, y){ - /*<>*/ b: + /*<>*/ a: if(! (x < y)){ /*<>*/ if (! /*<>*/ caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) - break b; + break a; /*<>*/ return y != y ? y : x; } /*<>*/ return x != x ? x : y; @@ -7802,25 +7802,25 @@ /*<>*/ return [0, nan, nan]; /*<>*/ } function min_num(x, y){ - /*<>*/ b: + /*<>*/ a: if(! (x < y)){ /*<>*/ if (! /*<>*/ caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) - break b; + break a; /*<>*/ return y != y ? x : y; } /*<>*/ return x != x ? y : x; /*<>*/ } function max_num(x, y){ - /*<>*/ b: + /*<>*/ a: if(! (x < y)){ /*<>*/ if (! /*<>*/ caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) - break b; + break a; /*<>*/ return x != x ? y : x; } /*<>*/ return y != y ? x : y; @@ -7830,13 +7830,13 @@ /*<>*/ return [0, y, y]; /*<>*/ if(y != y) /*<>*/ return [0, x, x]; - b: + a: if(! (x < y)){ /*<>*/ if (! /*<>*/ caml_signbit_float(y) && /*<>*/ caml_signbit_float(x)) - break b; + break a; /*<>*/ return [0, y, x]; } /*<>*/ return [0, x, y]; @@ -8267,7 +8267,7 @@ /*<>*/ /*<>*/ var _F_ = l - 1 | 0; if(_F_ >= 2){ var i$4 = _F_; - c: + a: for(;;){ /*<>*/ /*<>*/ var e$0 = /*<>*/ caml_array_get(a, i$4); @@ -8308,7 +8308,7 @@ (a, 0, e$0); } /*<>*/ /*<>*/ var _I_ = i$4 - 1 | 0; - if(2 === i$4) break c; + if(2 === i$4) break a; var i$4 = _I_; break; } @@ -10372,19 +10372,19 @@ } } function try_join(l, v, r){ - /*<>*/ b: + /*<>*/ a: { if(0 !== l){ /*<>*/ /*<>*/ var _v_ = max_elt(l); /*<>*/ if (0 <= /*<>*/ caml_call2(Ord[1], _v_, v)) - break b; + break a; } if(0 !== r){ /*<>*/ /*<>*/ var _u_ = min_elt(r); /*<>*/ if (0 <= /*<>*/ caml_call2(Ord[1], v, _u_)) - break b; + break a; } /*<>*/ return join(l, v, r); } @@ -12285,26 +12285,26 @@ lim$0 = caml_ml_string_length(s), i$2 = start; /*<>*/ for(;;){ - e: + b: { if(lim$0 > i$2){ /*<>*/ /*<>*/ var match = /*<>*/ caml_string_get(s, i$2); - f: + c: { if(91 <= match){ if(97 <= match){ - if(123 > match) break f; + if(123 > match) break c; } - else if(95 === match) break f; + else if(95 === match) break c; } else if(58 <= match){ - if(65 <= match) break f; + if(65 <= match) break c; } - else if(48 <= match) break f; + else if(48 <= match) break c; var stop$0 = i$2; - break e; + break b; } var i$3 = i$2 + 1 | 0, i$2 = i$3; continue; @@ -12947,7 +12947,7 @@ /*<>*/ caml_call1(Stdlib_Condition[1], 0), /*<>*/ term_state = [0, 0]; function body(param){ - /*<>*/ b: + /*<>*/ a: { /*<>*/ try{ /*<>*/ create_dls(0); @@ -12968,7 +12968,7 @@ } catch(ex$0){ var ex = caml_wrap_exception(ex$0), result = [1, ex]; - break b; + break a; } var result = [0, res]; } @@ -14140,9 +14140,9 @@ /*<>*/ if(is_alone(93)) /*<>*/ buffer_add_char(buf, 93); var i = 1; - e: + a: /*<>*/ for(;;){ - f: + b: if(i < 256){ /*<>*/ if (! @@ -14162,7 +14162,7 @@ if(48 < switcher >>> 0){ if(210 <= switcher){ /*<>*/ print_char(buf, 255); - break f; + break b; } } else if(46 < switcher - 1 >>> 0){ @@ -14195,7 +14195,7 @@ if(210 <= switcher$0){ /*<>*/ print_char(buf, 254); /*<>*/ print_char(buf, 255); - break f; + break b; } } else if @@ -14249,7 +14249,7 @@ /*<>*/ var /*<>*/ i$7 = j$0 + 1 | 0, i = i$7; - continue e; + continue a; } } /*<>*/ if(is_alone(45)) @@ -14753,9 +14753,9 @@ _df_]; /*<>*/ } function trans(ty1, ty2){ - /*<>*/ b: + /*<>*/ a: { - a: + b: { c: { @@ -14782,9 +14782,9 @@ case 9: break g; case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -14806,9 +14806,9 @@ case 9: break g; case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -14830,9 +14830,9 @@ case 9: break g; case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -14854,9 +14854,9 @@ case 9: break g; case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -14878,9 +14878,9 @@ case 9: break g; case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -14902,9 +14902,9 @@ case 9: break g; case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -14926,9 +14926,9 @@ case 9: break g; case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -14950,9 +14950,9 @@ case 9: break g; case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -14975,9 +14975,9 @@ trans(ty1$0, ty2$0), _de_]; case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -15011,9 +15011,9 @@ ty22, trans(rest1$8, rest2$8)]; case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -15037,7 +15037,7 @@ if(typeof ty2 !== "number") switch(ty2[0]){ case 10: - break b; + break a; case 11: var rest2$10 = ty2[1]; /*<>*/ return [11, @@ -15050,9 +15050,9 @@ if(typeof ty2 !== "number") switch(ty2[0]){ case 10: - break b; - case 11: break a; + case 11: + break b; case 12: var rest2$11 = ty2[1]; /*<>*/ return [12, @@ -15065,9 +15065,9 @@ if(typeof ty2 !== "number") switch(ty2[0]){ case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -15082,9 +15082,9 @@ if(typeof ty2 !== "number") switch(ty2[0]){ case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -15104,9 +15104,9 @@ /*<>*/ return 0; switch(ty2[0]){ case 10: - break b; - case 11: break a; + case 11: + break b; case 12: break c; case 13: @@ -16188,7 +16188,7 @@ (Stdlib_String[48], str, 0, res, width$0 - len | 0, len); break; default: - e: + a: if(0 < len){ /*<>*/ if (43 @@ -16199,7 +16199,7 @@ && 32 !== /*<>*/ caml_string_get(str, 0)) - break e; + break a; /*<>*/ /*<>*/ caml_bytes_set (res, 0, @@ -16213,7 +16213,7 @@ len - 1 | 0); break; } - f: + a: if (1 < len && @@ -16225,7 +16225,7 @@ && 88 !== /*<>*/ caml_string_get(str, 1)) - break f; + break a; /*<>*/ /*<>*/ caml_bytes_set (res, 1, @@ -16253,16 +16253,16 @@ /*<>*/ caml_ml_string_length(str), /*<>*/ c = /*<>*/ caml_string_get(str, 0); - b: + a: { - a: + b: { if(58 > c){ if(32 !== c){ - if(43 > c) break b; + if(43 > c) break a; switch(c - 43 | 0){ case 5: - e: + c: if(len < (prec$0 + 2 | 0) && 1 < len){ /*<>*/ if (120 @@ -16272,7 +16272,7 @@ 88 !== /*<>*/ caml_string_get(str, 1)) - break e; + break c; /*<>*/ /*<>*/ var res$1 = /*<>*/ caml_call2 @@ -16291,17 +16291,17 @@ /*<>*/ return /*<>*/ caml_call1 (Stdlib_Bytes[44], res$1); } - break a; + break b; case 0: case 2: break; case 1: case 3: case 4: - break b; - default: break a; + break a; + default: break b; } } - if(len >= (prec$0 + 1 | 0)) break b; + if(len >= (prec$0 + 1 | 0)) break a; /*<>*/ /*<>*/ var res$0 = /*<>*/ caml_call2 @@ -16318,7 +16318,7 @@ /*<>*/ return /*<>*/ caml_call1 (Stdlib_Bytes[44], res$0); } - if(71 <= c){if(5 < c - 97 >>> 0) break b;} else if(65 > c) break b; + if(71 <= c){if(5 < c - 97 >>> 0) break a;} else if(65 > c) break a; } if(len < prec$0){ /*<>*/ /*<>*/ var @@ -16595,12 +16595,12 @@ /*<>*/ caml_string_get(str, i) - 46 | 0; - c: + a: { if(23 < _cS_ >>> 0){ - if(55 === _cS_) break c; + if(55 === _cS_) break a; } - else if(21 < _cS_ - 1 >>> 0) break c; + else if(21 < _cS_ - 1 >>> 0) break a; /*<>*/ var /*<>*/ i$0 = i + 1 | 0, i = i$0; @@ -17950,18 +17950,18 @@ /*<>*/ nstart = parse_spaces(wend), nend = nstart; /*<>*/ for(;;){ - d: + a: if(nend !== len){ /*<>*/ /*<>*/ var match = /*<>*/ caml_string_get(str, nend); - e: + b: { if(48 <= match){ - if(58 > match) break e; + if(58 > match) break b; } - else if(45 === match) break e; - break d; + else if(45 === match) break b; + break a; } /*<>*/ var /*<>*/ j$0 = nend + 1 | 0, @@ -17988,20 +17988,20 @@ exp_end = parse_spaces(nend); if(exp_end !== len) /*<>*/ invalid_box(0); - g: + a: { if (caml_string_notequal(box_name, cst$43) && caml_string_notequal(box_name, "b")){ - if(! caml_string_notequal(box_name, "h")){var box_type = 0; break g;} - if(! caml_string_notequal(box_name, "hov")){var box_type = 3; break g;} - if(! caml_string_notequal(box_name, "hv")){var box_type = 2; break g;} + if(! caml_string_notequal(box_name, "h")){var box_type = 0; break a;} + if(! caml_string_notequal(box_name, "hov")){var box_type = 3; break a;} + if(! caml_string_notequal(box_name, "hv")){var box_type = 2; break a;} if(caml_string_notequal(box_name, "v")){ var box_type = invalid_box(0); - break g; + break a; } var box_type = 1; - break g; + break a; } var box_type = 4; } @@ -18181,7 +18181,7 @@ break a; case 27: var str_ind$3 = str_ind$0 + 1 | 0; - e: + b: try{ var _bg_ = str_ind$3 === end_ind ? 1 : 0, @@ -18203,12 +18203,12 @@ /*<>*/ match$2 = /*<>*/ caml_string_get (str, str_ind_1); - g: + c: { if(48 <= match$2){ - if(58 > match$2) break g; + if(58 > match$2) break c; } - else if(45 === match$2) break g; + else if(45 === match$2) break c; /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace (Stdlib[8], 1); } @@ -18239,7 +18239,7 @@ str_ind_3 + 1 | 0, formatting_lit$0 = _bi_, next_ind = _bj_; - break e; + break b; } } else if(1 < switcher$0 - 1 >>> 0){ @@ -18270,7 +18270,7 @@ str_ind_5 + 1 | 0, formatting_lit$0 = _bk_, next_ind = _bl_; - break e; + break b; } /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace (Stdlib[8], 1); @@ -18294,16 +18294,16 @@ /*<>*/ match$6 = /*<>*/ caml_string_get (str, str_ind_1$0); - f: + b: { - g: + c: { if(48 <= match$6){ - if(58 > match$6) break g; + if(58 > match$6) break c; } - else if(45 === match$6) break g; + else if(45 === match$6) break c; var _bo_ = 0; - break f; + break b; } /*<>*/ var /*<>*/ match$7 = @@ -18484,7 +18484,7 @@ /*<>*/ return opt_of_pad (c, get_padprec(0)); /*<>*/ } - b: + a: { /*<>*/ if(124 > symb) switch(symb){ @@ -18492,7 +18492,7 @@ var fmt_rest$5 = parse(str_ind, end_ind)[1], fmt_result = [0, [10, fmt_rest$5]]; - break b; + break a; case 40: /*<>*/ var /*<>*/ sub_end = @@ -18509,16 +18509,16 @@ else var _aN_ = [0, [14, get_pad_opt(40), sub_fmtty, fmt_rest$7]]; var fmt_result = _aN_; - break b; + break a; case 44: - var fmt_result = parse(str_ind, end_ind); break b; + var fmt_result = parse(str_ind, end_ind); break a; case 67: /*<>*/ var fmt_rest$10 = parse(str_ind, end_ind)[1], /*<>*/ _aP_ = get_ign(0) ? [0, [23, 1, fmt_rest$10]] : [0, [1, fmt_rest$10]], fmt_result = _aP_; - break b; + break a; case 78: var fmt_rest$14 = parse(str_ind, end_ind)[1], counter$0 = 2; /*<>*/ if(get_ign(0)) @@ -18528,7 +18528,7 @@ else var _aV_ = [0, [21, counter$0, fmt_rest$14]]; var fmt_result = _aV_; - break b; + break a; case 83: /*<>*/ var /*<>*/ pad$6 = @@ -18547,7 +18547,7 @@ pad$7 = match$5[1], _aW_ = [0, [3, pad$7, fmt_rest$16]]; var fmt_result = _aW_; - break b; + break a; case 91: if(str_ind === end_ind) /*<>*/ unexpected_end_of_format @@ -18622,18 +18622,18 @@ c$1 = /*<>*/ caml_string_get (str, str_ind$0); - c: + a: { if(46 <= c$1){ if(64 !== c$1){ - if(93 !== c$1) break c; + if(93 !== c$1) break a; /*<>*/ add_char(c$0); /*<>*/ return str_ind$0 + 1 | 0; } } else if(37 !== c$1){ - if(45 > c$1) break c; + if(45 > c$1) break a; var str_ind$2 = str_ind$0 + 1 | 0; if(str_ind$2 === end_ind) /*<>*/ unexpected_end_of_format @@ -18739,12 +18739,12 @@ else var _a1_ = [0, [20, get_pad_opt(91), char_set$1, fmt_rest$19]]; var fmt_result = _a1_; - break b; + break a; case 97: var fmt_rest$20 = parse(str_ind, end_ind)[1], fmt_result = [0, [15, fmt_rest$20]]; - break b; + break a; case 99: /*<>*/ var char_format = @@ -18773,14 +18773,14 @@ else var _a4_ = char_format(fmt_rest$21); var fmt_result = _a4_; - break b; + break a; case 114: /*<>*/ var fmt_rest$22 = parse(str_ind, end_ind)[1], /*<>*/ _a5_ = get_ign(0) ? [0, [23, 2, fmt_rest$22]] : [0, [19, fmt_rest$22]], fmt_result = _a5_; - break b; + break a; case 115: /*<>*/ var /*<>*/ pad$9 = @@ -18799,12 +18799,12 @@ pad$10 = match$8[1], _a6_ = [0, [2, pad$10, fmt_rest$24]]; var fmt_result = _a6_; - break b; + break a; case 116: var fmt_rest$25 = parse(str_ind, end_ind)[1], fmt_result = [0, [16, fmt_rest$25]]; - break b; + break a; case 123: /*<>*/ var /*<>*/ sub_end$0 = @@ -18821,7 +18821,7 @@ else var _a7_ = [0, [13, get_pad_opt(123), sub_fmtty$0, fmt_rest$26]]; var fmt_result = _a7_; - break b; + break a; case 66: case 98: /*<>*/ var @@ -18841,13 +18841,13 @@ pad$4 = match$3[1], _aO_ = [0, [9, pad$4, fmt_rest$9]]; var fmt_result = _aO_; - break b; + break a; case 37: case 64: var fmt_rest$6 = parse(str_ind, end_ind)[1], fmt_result = [0, [12, symb, fmt_rest$6]]; - break b; + break a; case 76: case 108: case 110: @@ -18857,7 +18857,7 @@ /*<>*/ caml_string_get (str, str_ind), /*<>*/ _a8_ = symb$0 - 88 | 0; - e: + b: { if(32 >= _a8_ >>> 0) switch(_a8_){ @@ -18867,25 +18867,25 @@ case 23: case 29: case 32: - var _aU_ = 1; break e; + var _aU_ = 1; break b; } var _aU_ = 0; } /*<>*/ if(_aU_) break; } var fmt_rest$13 = parse(str_ind, end_ind)[1]; - e: + b: { if(108 <= symb){ if(111 > symb) switch(symb - 108 | 0){ case 0: - var counter = 0; break e; + var counter = 0; break b; case 1: break; - default: var counter = 1; break e; + default: var counter = 1; break b; } } - else if(76 === symb){var counter = 2; break e;} + else if(76 === symb){var counter = 2; break b;} /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace ([0, Assert_failure, _V_], 1); } @@ -18896,7 +18896,7 @@ else var _aT_ = [0, [21, counter, fmt_rest$13]]; var fmt_result = _aT_; - break b; + break a; case 32: case 35: case 43: @@ -18906,7 +18906,7 @@ fmt_result = /*<>*/ caml_call3 (failwith_message(_M_), str, pct_ind, symb); - break b; + break a; case 88: case 100: case 105: @@ -18934,7 +18934,7 @@ pad$8 = match$6[1], _aZ_ = [0, [4, iconv$2, pad$8, prec$4, fmt_rest$18]]; var fmt_result = _aZ_; - break b; + break a; case 69: case 70: case 71: @@ -18955,9 +18955,9 @@ : incompatible_flag(pct_ind, str_ind, 32, cst$36) : 1 : space$1 ? 2 : 0; - e: + b: { - f: + c: if(73 <= symb){ var switcher = symb - 101 | 0; if(3 >= switcher >>> 0){ @@ -18971,7 +18971,7 @@ default: var _a9_ = 6; } var kind = _a9_; - break e; + break b; } } else if(69 <= symb){ @@ -18979,18 +18979,18 @@ case 0: var _a__ = 2; break; case 1: - break f; + break c; case 2: var _a__ = 4; break; default: var _a__ = 7; } var kind = _a__; - break e; + break b; } if(hash$1){ - if(70 === symb){var kind = 8; break e;} + if(70 === symb){var kind = 8; break b;} } - else if(70 === symb){var kind = 5; break e;} + else if(70 === symb){var kind = 5; break b;} /*<>*/ throw /*<>*/ caml_maybe_attach_backtrace ([0, Assert_failure, _X_], 1); } @@ -19021,9 +19021,9 @@ pad$5 = match$4[1], _aR_ = [0, [8, fconv, pad$5, prec$3, fmt_rest$12]]; var fmt_result = _aR_; - break b; + break a; } - c: + b: if(108 <= symb){ if(111 > symb){ switch(symb - 108 | 0){ @@ -19055,7 +19055,7 @@ var _aB_ = _aA_; break; case 1: - break c; + break b; default: /*<>*/ var /*<>*/ _aD_ = @@ -19084,7 +19084,7 @@ var _aB_ = _aG_; } var fmt_result = _aB_; - break b; + break a; } } else if(76 === symb){ @@ -19112,7 +19112,7 @@ pad$2 = match$2[1], _aL_ = [0, [7, iconv$1, pad$2, prec$2, fmt_rest$4]]; var fmt_result = _aL_; - break b; + break a; } var fmt_result = @@ -19160,15 +19160,15 @@ (pct_ind, str_ind, 95, cst$30); } var _aw_ = 1 - ign_used[1], ign$0 = _aw_ ? ign : _aw_; - d: + a: if(ign$0){ - e: + b: { if(38 <= symb){ - if(44 !== symb && 64 !== symb) break e; + if(44 !== symb && 64 !== symb) break b; } - else if(33 !== symb && 37 > symb) break e; - if(legacy_behavior$0) break d; + else if(33 !== symb && 37 > symb) break b; + if(legacy_behavior$0) break a; } /*<>*/ incompatible_flag (pct_ind, str_ind, symb, cst$31); @@ -20278,7 +20278,7 @@ /*<>*/ var _Y_ = current[1], /*<>*/ s = caml_check_bound(argv[1], _Y_)[1 + _Y_]; - c: + a: { /*<>*/ if (1 <= /*<>*/ caml_ml_string_length(s) @@ -20538,7 +20538,7 @@ }, treat_action = treat_action$0(s, no_arg, get_arg, consume_arg); /*<>*/ treat_action(action); - break c; + break a; } /*<>*/ /*<>*/ caml_call1(anonfun, s); } @@ -23351,14 +23351,14 @@ var d = h[2], _ai_ = d.length - 1 - 1 | 0, _ah_ = 0; if(_ai_ >= 0){ var i = _ah_; - c: + a: for(;;){ var param = caml_check_bound(d, i)[1 + i]; /*<>*/ for(;;){ if(! param){ /*<>*/ /*<>*/ var _al_ = i + 1 | 0; - if(_ai_ === i) break c; + if(_ai_ === i) break a; var i = _al_; break; } @@ -23390,7 +23390,7 @@ var _ad_ = d.length - 1 - 1 | 0, _ac_ = 0; if(_ad_ >= 0){ var i = _ac_; - c: + a: for(;;){ /*<>*/ var /*<>*/ slot$0 = caml_check_bound(h[2], i)[1 + i], @@ -23404,7 +23404,7 @@ /*<>*/ caml_check_bound(h[2], i)[1 + i] = 0; /*<>*/ /*<>*/ var _ag_ = i + 1 | 0; - if(_ad_ === i) break c; + if(_ad_ === i) break a; var i = _ag_; break; } @@ -23451,7 +23451,7 @@ /*<>*/ ___ = 0; if(_$_ >= 0){ var i = ___; - c: + a: for(;;){ /*<>*/ var accu$2 = accu$1[1], @@ -23463,7 +23463,7 @@ accu$1[1] = accu; /*<>*/ /*<>*/ var _ab_ = i + 1 | 0; - if(_$_ === i) break c; + if(_$_ === i) break a; var i = _ab_; break; } @@ -26366,9 +26366,9 @@ function output_acc(ppf, acc){ /*<>*/ if(typeof acc === "number") /*<>*/ return 0; - b: + a: { - a: + b: { c: { @@ -26401,11 +26401,11 @@ var _ab_ = _aa_[2]; if(typeof _ab_ !== "number" && 1 === _ab_[0]){ var s$0 = acc[2], size = _ab_[2], p$2 = _aa_[1]; - break a; + break b; } } var s = acc[2], p$1 = _aa_; - break b; + break a; case 3: var _ac_ = acc[1]; if(typeof _ac_ !== "number" && 0 === _ac_[0]){ @@ -26423,11 +26423,11 @@ var _af_ = _ae_[2]; if(typeof _af_ !== "number" && 1 === _af_[0]){ var s$0 = acc[2], size = _af_[2], p$2 = _ae_[1]; - break a; + break b; } } var s = acc[2], p$1 = _ae_; - break b; + break a; case 5: var _ag_ = acc[1]; if(typeof _ag_ !== "number" && 0 === _ag_[0]){ @@ -26473,9 +26473,9 @@ function strput_acc(ppf, acc){ /*<>*/ if(typeof acc === "number") /*<>*/ return 0; - b: + a: { - a: + b: { c: { @@ -26508,11 +26508,11 @@ var _U_ = _T_[2]; if(typeof _U_ !== "number" && 1 === _U_[0]){ var s$0 = acc[2], size = _U_[2], p$2 = _T_[1]; - break a; + break b; } } var s = acc[2], p$1 = _T_; - break b; + break a; case 3: var _V_ = acc[1]; if(typeof _V_ !== "number" && 0 === _V_[0]){ @@ -26530,11 +26530,11 @@ var _Y_ = _X_[2]; if(typeof _Y_ !== "number" && 1 === _Y_[0]){ var s$0 = acc[2], size = _Y_[2], p$2 = _X_[1]; - break a; + break b; } } var s = acc[2], p$1 = _X_; - break b; + break a; case 5: var _Z_ = acc[1]; if(typeof _Z_ !== "number" && 0 === _Z_[0]){ @@ -27451,12 +27451,12 @@ function is_hexa_digit(param){ /*<>*/ /*<>*/ var _aY_ = param - 48 | 0; - b: + a: { if(22 < _aY_ >>> 0){ - if(5 < _aY_ - 49 >>> 0) break b; + if(5 < _aY_ - 49 >>> 0) break a; } - else if(6 >= _aY_ - 10 >>> 0) break b; + else if(6 >= _aY_ - 10 >>> 0) break a; /*<>*/ return 1; } /*<>*/ return 0; @@ -27504,16 +27504,16 @@ c$0 = peek_char(ib); /*<>*/ if(ib[1]) /*<>*/ return width; - b: + a: { if(99 <= c$0){ if(111 === c$0) /*<>*/ return scan_octal_int (store_char(width, ib, c$0), ib); - if(120 === c$0) break b; + if(120 === c$0) break a; } else{ - if(88 === c$0) break b; + if(88 === c$0) break a; if(98 <= c$0) /*<>*/ return scan_binary_int (store_char(width, ib, c$0), ib); @@ -27617,13 +27617,13 @@ /*<>*/ if(_aI_) /*<>*/ bad_hex_float(0); /*<>*/ /*<>*/ var c = peek_char(ib); - e: + a: { if(78 <= c){ /*<>*/ /*<>*/ var switcher = c - 79 | 0; if(30 < switcher >>> 0){ - if(32 <= switcher) break e; + if(32 <= switcher) break a; /*<>*/ var /*<>*/ width$1 = store_char(width$0, ib, c), _aJ_ = 0 === width$1 ? 1 : 0, @@ -27633,7 +27633,7 @@ /*<>*/ return check_case_insensitive_string (width$1, ib, bad_hex_float, cst_an); } - if(26 !== switcher) break e; + if(26 !== switcher) break a; } else{ if(48 === c){ @@ -27649,16 +27649,16 @@ /*<>*/ if(0 !== width$4 && ! end_of_input(ib)){ /*<>*/ /*<>*/ var _aP_ = peek_char(ib) - 46 | 0; - h: + b: { - i: + c: { if(34 < _aP_ >>> 0){ - if(66 === _aP_) break i; + if(66 === _aP_) break c; } - else if(32 < _aP_ - 1 >>> 0) break i; + else if(32 < _aP_ - 1 >>> 0) break c; var width$5 = scan_hexadecimal_int(width$4, ib); - break h; + break b; } var width$5 = width$4; } @@ -27668,12 +27668,12 @@ if(46 === c$0){ /*<>*/ /*<>*/ var width$6 = store_char(width$5, ib, c$0); - j: + b: { /*<>*/ if(0 !== width$6 && ! end_of_input(ib)){ /*<>*/ /*<>*/ var match = peek_char(ib); - k: + c: { if(80 !== match && 112 !== match){ /*<>*/ var @@ -27684,12 +27684,12 @@ width$6 - (precision$0 - scan_hexadecimal_int(precision$0, ib) | 0) | 0; - break k; + break c; } var width$10 = width$6; } var width$7 = width$10; - break j; + break b; } var width$7 = width$6; } @@ -27717,7 +27717,7 @@ } /*<>*/ return width$4; } - if(73 !== c) break e; + if(73 !== c) break a; } /*<>*/ var /*<>*/ width$2 = store_char(width$0, ib, c), @@ -27807,20 +27807,20 @@ /*<>*/ var /*<>*/ c$1 = peek_char(ib), /*<>*/ switcher = c$1 - 80 | 0; - j: + a: { - l: + b: { if(32 < switcher >>> 0){ if(-34 === switcher){ /*<>*/ /*<>*/ var width$5 = store_char(width$4, ib, c$1); - m: + c: { /*<>*/ if(0 !== width$5 && ! end_of_input(ib)){ /*<>*/ /*<>*/ var match = peek_char(ib); - n: + d: { if(80 !== match && 112 !== match){ /*<>*/ var @@ -27831,22 +27831,22 @@ width$5 - (precision$0 - scan_hexadecimal_int(precision$0, ib) | 0) | 0; - break n; + break d; } var width$10 = width$5; } var width$6 = width$10; - break m; + break c; } var width$6 = width$5; } var width$7 = width$6; - break l; + break b; } } - else if(30 < switcher - 1 >>> 0){var width$7 = width$4; break l;} + else if(30 < switcher - 1 >>> 0){var width$7 = width$4; break b;} var width$8 = bad_float(0); - break j; + break a; } var width$8 = width$7; } @@ -27920,11 +27920,11 @@ function scan_backslash_char(width, ib){ /*<>*/ /*<>*/ var c0 = check_next_char_for_char(width, ib); - b: + a: { if(40 <= c0){ if(58 > c0){ - if(48 > c0) break b; + if(48 > c0) break a; /*<>*/ var get_digit$0 = function(param){ @@ -27938,11 +27938,11 @@ ((100 * (c0 - 48 | 0) | 0) + (10 * (c1$0 - 48 | 0) | 0) | 0) + (c2$0 - 48 | 0) | 0; - c: + b: { if(0 <= c && 255 >= c){ var _ag_ = /*<>*/ caml_call1(Stdlib[29], c); - break c; + break b; } var _ag_ = @@ -27954,7 +27954,7 @@ } /*<>*/ /*<>*/ var switcher = c0 - 92 | 0; - if(28 < switcher >>> 0) break b; + if(28 < switcher >>> 0) break a; switch(switcher){ case 28: /*<>*/ var @@ -27963,12 +27963,12 @@ /*<>*/ var /*<>*/ c = next_char(ib), /*<>*/ _ah_ = c - 48 | 0; - b: + a: { if(22 < _ah_ >>> 0){ - if(5 < _ah_ - 49 >>> 0) break b; + if(5 < _ah_ - 49 >>> 0) break a; } - else if(6 >= _ah_ - 10 >>> 0) break b; + else if(6 >= _ah_ - 10 >>> 0) break a; /*<>*/ return c; } /*<>*/ return bad_input_escape(c); @@ -27977,11 +27977,11 @@ /*<>*/ c2 = get_digit(0), /*<>*/ _ad_ = hexadecimal_value_of_char(c2), c$0 = (16 * hexadecimal_value_of_char(c1) | 0) + _ad_ | 0; - d: + b: { if(0 <= c$0 && 255 >= c$0){ var _af_ = /*<>*/ caml_call1(Stdlib[29], c$0); - break d; + break b; } var _af_ = @@ -27995,24 +27995,24 @@ case 18: case 22: case 24: break; - default: break b; + default: break a; } } - else if(34 !== c0 && 39 > c0) break b; - c: + else if(34 !== c0 && 39 > c0) break a; + b: { if(110 <= c0){ if(117 > c0) switch(c0 - 110 | 0){ case 0: - var _ae_ = 10; break c; + var _ae_ = 10; break b; case 4: - var _ae_ = 13; break c; + var _ae_ = 13; break b; case 6: - var _ae_ = 9; break c; + var _ae_ = 9; break b; } } - else if(98 === c0){var _ae_ = 8; break c;} + else if(98 === c0){var _ae_ = 8; break b;} var _ae_ = c0; } /*<>*/ return store_char(width, ib, _ae_); @@ -29798,7 +29798,7 @@ function new_cache(table){ /*<>*/ /*<>*/ var n = new_method(table); - b: + a: { if(0 !== (n % 2 | 0)){ var _n_ = Stdlib_Sys[9]; @@ -29806,7 +29806,7 @@ ((2 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _n_) | 0) >= n){ var n$0 = new_method(table); - break b; + break a; } } var n$0 = n; @@ -30344,7 +30344,7 @@ /*<>*/ n$0 = n[1 + i], /*<>*/ shape = caml_check_bound(comps$0, i)[1 + i]; - d: + a: if(typeof shape === "number"){ if(2 === shape){ if @@ -30357,7 +30357,7 @@ /*<>*/ cl[1 + j] = n$0[1 + j]; /*<>*/ /*<>*/ var _c_ = j + 1 | 0; - if(3 === j) break d; + if(3 === j) break a; var j = _c_; } } @@ -30454,11 +30454,11 @@ if(initial_size > x && Stdlib_Sys[13] >= (x * 2 | 0)){var x$0 = x * 2 | 0, x = x$0; continue;} /*<>*/ if(random){ var _aK_ = runtime.caml_obj_tag(prng); - e: + a: if(250 === _aK_) var _aL_ = prng[1]; else{ - if(246 !== _aK_ && 244 !== _aK_){var _aL_ = prng; break e;} + if(246 !== _aK_ && 244 !== _aK_){var _aL_ = prng; break a;} var _aL_ = caml_call1(CamlinternalLazy[2], prng); } var @@ -32309,19 +32309,19 @@ (Stdlib_Buffer[1], caml_ml_string_length(s) + 20 | 0), _F_ = [0, _E_, _C_]; function _w_(c){ - /*<>*/ b: + /*<>*/ a: { if(62 <= c){ var _K_ = c - 63 | 0; - if(60 < _K_ >>> 0){if(62 <= _K_) break b;} else if(31 !== _K_) break b; + if(60 < _K_ >>> 0){if(62 <= _K_) break a;} else if(31 !== _K_) break a; } else if(42 <= c){ - if(60 !== c) break b; + if(60 !== c) break a; } else{ - if(33 > c) break b; - switch(c - 33 | 0){case 2:case 3:case 6: break b; + if(33 > c) break a; + switch(c - 33 | 0){case 2:case 3:case 6: break a; } } /*<>*/ /*<>*/ caml_call2 @@ -32352,12 +32352,12 @@ param = /*<>*/ caml_string_get(s, 0); a: { - c: + b: { if(91 <= param){ - if(25 < param - 97 >>> 0) break c; + if(25 < param - 97 >>> 0) break b; } - else if(65 > param) break c; + else if(65 > param) break b; var _t_ = 1; break a; }