From 8dd6b159b19dfdc02640bb38d76b0e4ef6acd0c5 Mon Sep 17 00:00:00 2001 From: Alan Schmitt <alan.schmitt@polytechnique.org> Date: Wed, 4 May 2016 08:58:34 +0200 Subject: [PATCH] let%not_throw --- generator/monad_ppx.ml | 1 + generator/tests/jsref/JsInterpreter.ml | 46 +++++++++++++------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/generator/monad_ppx.ml b/generator/monad_ppx.ml index 94b3968..620bb77 100644 --- a/generator/monad_ppx.ml +++ b/generator/monad_ppx.ml @@ -15,6 +15,7 @@ let monad_mapping = ("bool", "if_bool"); ("void", "if_void"); ("success", "if_success"); + ("not_throw", "if_not_throw"); ] (* e.g. diff --git a/generator/tests/jsref/JsInterpreter.ml b/generator/tests/jsref/JsInterpreter.ml index 10016bc..0e7ef8f 100644 --- a/generator/tests/jsref/JsInterpreter.ml +++ b/generator/tests/jsref/JsInterpreter.ml @@ -3116,13 +3116,13 @@ and init_array s c l oes = (s3, len) = (to_uint32 s2 c (Coq_value_prim (Coq_prim_number (ilen +. number_of_int elisionLength)))) in - if_not_throw - (object_put s3 c l0 + let%not_throw + (s4, x) = (object_put s3 c l0 ("length") (Coq_value_prim (Coq_prim_number (of_int len))) - throw_false) (fun s4 x -> + throw_false) in result_out (Coq_out_ter (s4, - (res_val (Coq_value_object l0))))))) + (res_val (Coq_value_object l0)))))) (** val run_var_decl_item : state -> execution_ctx -> prop_name -> expr option -> result **) @@ -3810,16 +3810,16 @@ and push s c l args ilen = let_binding (of_int ilen) (fun vlen -> match args with | [] -> - if_not_throw - (object_put s c l ("length") - (Coq_value_prim (Coq_prim_number vlen)) throw_true) (fun s0 x -> + let%not_throw + (s0, x) = (object_put s c l ("length") + (Coq_value_prim (Coq_prim_number vlen)) throw_true) in result_out (Coq_out_ter (s0, - (res_val (Coq_value_prim (Coq_prim_number vlen)))))) + (res_val (Coq_value_prim (Coq_prim_number vlen))))) | v :: vs -> let%string (s0, slen) = (to_string s c (Coq_value_prim (Coq_prim_number vlen))) in - if_not_throw (object_put s0 c l slen v throw_true) (fun s1 x -> - push s1 c l vs (ilen +. 1.))) + let%not_throw (s1, x) = (object_put s0 c l slen v throw_true) in + push s1 c l vs (ilen +. 1.)) (** val run_object_is_sealed : state -> execution_ctx -> object_loc -> prop_name list -> @@ -4485,27 +4485,27 @@ and run_call_prealloc s c b vthis args = ("length")) in let%run (s2, ilen) = (to_uint32 s1 c vlen) in if ilen = 0.0 - then if_not_throw - (object_put s2 c l + then let%not_throw + + (s3, x) = (object_put s2 c l ("length") - (Coq_value_prim (Coq_prim_number JsNumber.zero)) throw_true) - (fun s3 x -> + (Coq_value_prim (Coq_prim_number JsNumber.zero)) throw_true) in result_out (Coq_out_ter (s3, - (res_val (Coq_value_prim Coq_prim_undef))))) + (res_val (Coq_value_prim Coq_prim_undef)))) else let%string (s3, sindx) = (to_string s2 c (Coq_value_prim (Coq_prim_number (of_int (ilen -. 1.))))) in let%value (s4, velem) = (run_object_get s3 c l sindx) in - if_not_throw - (object_delete_default s4 c l sindx throw_true) - (fun s5 x -> - if_not_throw - (object_put s5 c l + let%not_throw + + (s5, x) = (object_delete_default s4 c l sindx throw_true) in + let%not_throw + + (s6, x0) = (object_put s5 c l ("length") - (Coq_value_prim (Coq_prim_string sindx)) throw_true) - (fun s6 x0 -> - result_out (Coq_out_ter (s6, (res_val velem))))) + (Coq_value_prim (Coq_prim_string sindx)) throw_true) in + result_out (Coq_out_ter (s6, (res_val velem))) | Coq_prealloc_array_proto_push -> let%object (s0, l) = (to_object s vthis) in let%value -- GitLab