diff --git a/generator/Makefile b/generator/Makefile index 81cc2904f9452a23269c781952ef6539863b82bc..f036a0c1ab125a74b5ffcbab8b358f9ef5b24b10 100644 --- a/generator/Makefile +++ b/generator/Makefile @@ -36,7 +36,6 @@ ASSEMBLY_JS_FILES := \ LibList.unlog.js \ LibString.unlog.js \ LibOption.unlog.js \ - LibTactics.unlog.js \ LibProd.unlog.js \ LibFunc.unlog.js \ Heap.unlog.js \ @@ -117,7 +116,7 @@ $(STDLIB_DIR)/stdlib.cmi: $(STDLIB_DIR)/stdlib.mli monad_ppx.native: monad_ppx.ml $(OCAMLBUILD) $@ - + #ocamlfind ocamlc -linkpkg -o $@ $< # -package compiler-libs.common diff --git a/generator/tests/jsref/JsInterpreter.ml b/generator/tests/jsref/JsInterpreter.ml index fcb80945ef1f120b71eea00b69ea78550355f0ca..36dd41e6c56a4b37becb8be862119fc7e7b7e59b 100644 --- a/generator/tests/jsref/JsInterpreter.ml +++ b/generator/tests/jsref/JsInterpreter.ml @@ -13,7 +13,6 @@ open LibOption open LibProd open LibReflect open LibString -open LibTactics open List0 open Shared @@ -311,7 +310,8 @@ let rec object_has_prop s c l x = -> prop_name -> result **) and object_get_builtin s c b vthis l x = - let_binding (fun s0 l0 -> + let + def = (fun s0 l0 -> let%run (s1, d) = (run_object_get_prop s0 c l0 x) in match d with | Coq_full_descriptor_undef -> @@ -330,13 +330,12 @@ and object_get_builtin s c b vthis l x = | Coq_prim_bool b0 -> Coq_result_impossible | Coq_prim_number n -> Coq_result_impossible | Coq_prim_string s2 -> Coq_result_impossible) - | Coq_value_object lf -> run_call s1 c lf vthis []))) - (fun def -> - let_binding (fun s0 -> + | Coq_value_object lf -> run_call s1 c lf vthis []))) in + let function0 = (fun s0 -> let%value (s_2, v) = (def s0 l) in if spec_function_get_error_case_dec s_2 x v then run_error s_2 Coq_native_error_type - else res_ter s_2 (res_val v)) (fun function0 -> + else res_ter s_2 (res_val v)) in match b with | Coq_builtin_get_default -> def s l | Coq_builtin_get_function -> function0 s @@ -348,7 +347,7 @@ and object_get_builtin s c b vthis l x = match d with | Coq_full_descriptor_undef -> function0 s0 | Coq_full_descriptor_some a -> - run_object_get s0 c lmap x)) + run_object_get s0 c lmap x (** val run_object_get : state -> execution_ctx -> object_loc -> prop_name -> result **) @@ -409,7 +408,7 @@ and object_default_value s c l prefo = match b with Coq_builtin_default_value_default -> let gpref = unsome_default Coq_preftype_number prefo in let lpref = other_preftypes gpref in - let sub0 = (fun s_2 x k -> (* this was a let_binding *) + let sub0 = (fun s_2 x k -> let%value (s1, vfo) = (run_object_get s_2 c l x) in let%some co = (run_callable s1 vfo) in match co with @@ -423,10 +422,10 @@ and object_default_value s c l prefo = | Coq_value_object l0 -> k s3 end | None -> k s1) in - let_binding (method_of_preftype gpref) (fun gmeth -> + let gmeth = (method_of_preftype gpref) in sub0 s gmeth (fun s_2 -> let lmeth = method_of_preftype lpref in - sub0 s_2 lmeth (fun s_3 -> run_error s_3 Coq_native_error_type))) + sub0 s_2 lmeth (fun s_3 -> run_error s_3 Coq_native_error_type)) (** val to_primitive : state -> execution_ctx -> value -> preftype option -> result **) @@ -553,28 +552,28 @@ and object_can_put s c l x = and run_object_define_own_prop_array_loop s c l newLen oldLen newLenDesc newWritable throwcont def = if newLen < oldLen - then let_binding (oldLen -. 1.) (fun oldLen_2 -> + then let oldLen_2 = (oldLen -. 1.) in let%string (s0, slen) = (to_string s c (Coq_value_prim (Coq_prim_number (of_int oldLen_2)))) in let%bool (s1, deleteSucceeded) = (object_delete s0 c l slen false) in if not_decidable (bool_decidable deleteSucceeded) - then let_binding - (descriptor_with_value newLenDesc (Some (Coq_value_prim - (Coq_prim_number (of_int (oldLen_2 +. 1.)))))) - (fun newLenDesc0 -> - let_binding - (if not_decidable (bool_decidable newWritable) + then let + + newLenDesc0 = (descriptor_with_value newLenDesc (Some (Coq_value_prim + (Coq_prim_number (of_int (oldLen_2 +. 1.)))))) in + let + newLenDesc1 = (if not_decidable (bool_decidable newWritable) then descriptor_with_writable newLenDesc0 (Some false) - else newLenDesc0) (fun newLenDesc1 -> + else newLenDesc0) in let%bool (s2, x) = (def s1 ("length") newLenDesc1 false) in out_error_or_cst s2 throwcont Coq_native_error_type - (Coq_value_prim (Coq_prim_bool false)))) + (Coq_value_prim (Coq_prim_bool false)) else run_object_define_own_prop_array_loop s1 c l - newLen oldLen_2 newLenDesc newWritable throwcont def) + newLen oldLen_2 newLenDesc newWritable throwcont def else if not_decidable (bool_decidable newWritable) then def s ("length") { descriptor_value = None; descriptor_writable = (Some false); @@ -588,37 +587,38 @@ and run_object_define_own_prop_array_loop s c l newLen oldLen newLenDesc newWrit descriptor -> strictness_flag -> result **) and object_define_own_prop s c l x desc throwcont = - let_binding (fun s0 throwcont0 -> + let reject = (fun s0 throwcont0 -> out_error_or_cst s0 throwcont0 Coq_native_error_type (Coq_value_prim - (Coq_prim_bool false))) (fun reject -> - let_binding (fun s0 x0 desc0 throwcont0 -> + (Coq_prim_bool false))) in + let + def = (fun s0 x0 desc0 throwcont0 -> let%run (s1, d) = (run_object_get_own_prop s0 c l x0) in let%some ext = (run_object_method object_extensible_ s1 l) in match d with | Coq_full_descriptor_undef -> if ext - then let_binding - (if or_decidable (descriptor_is_generic_dec desc0) + then let + + a = (if or_decidable (descriptor_is_generic_dec desc0) (descriptor_is_data_dec desc0) then Coq_attributes_data_of (attributes_data_of_descriptor desc0) else Coq_attributes_accessor_of - (attributes_accessor_of_descriptor desc0)) - (fun a -> + (attributes_accessor_of_descriptor desc0)) in let%some s2 = (object_heap_map_properties_pickable_option s1 l (fun p -> Heap.write p x0 a)) in res_ter s2 - (res_val (Coq_value_prim (Coq_prim_bool true)))) + (res_val (Coq_value_prim (Coq_prim_bool true))) else reject s1 throwcont0 | Coq_full_descriptor_some a -> - let_binding (fun s2 a0 -> + let + object_define_own_prop_write = (fun s2 a0 -> let a_2 = attributes_update a0 desc0 in let%some s3 = (object_heap_map_properties_pickable_option s2 l (fun p -> Heap.write p x0 a_2)) in - res_ter s3 (res_val (Coq_value_prim (Coq_prim_bool true)))) - (fun object_define_own_prop_write -> + res_ter s3 (res_val (Coq_value_prim (Coq_prim_bool true)))) in if descriptor_contains_dec (descriptor_of_attributes a) desc0 then res_ter s1 (res_val (Coq_value_prim (Coq_prim_bool true))) else if attributes_change_enumerable_on_non_configurable_dec a @@ -631,8 +631,8 @@ and object_define_own_prop s c l x desc throwcont = (attributes_is_data_dec a) (descriptor_is_data_dec desc0)) then if attributes_configurable a - then let_binding - (match a with + then let + a_2 = (match a with | Coq_attributes_data_of ad -> Coq_attributes_accessor_of (attributes_accessor_of_attributes_data @@ -640,12 +640,12 @@ and object_define_own_prop s c l x desc throwcont = | Coq_attributes_accessor_of aa -> Coq_attributes_data_of (attributes_data_of_attributes_accessor - aa)) (fun a_2 -> + aa)) in let%some s2 = (object_heap_map_properties_pickable_option s1 l (fun p -> Heap.write p x0 a_2)) in - object_define_own_prop_write s2 a_2) + object_define_own_prop_write s2 a_2 else reject s1 throwcont0 else if and_decidable (attributes_is_data_dec a) (descriptor_is_data_dec desc0) @@ -678,8 +678,7 @@ and object_define_own_prop s c l x desc throwcont = s1 a) else (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s0 - ("cases are mutually exclusives in [defineOwnProperty]"))) - (fun def -> + ("cases are mutually exclusives in [defineOwnProperty]")) in let%some b = (run_object_method object_define_own_prop_ s l) in match b with | Coq_builtin_define_own_prop_default -> def s x desc throwcont @@ -695,13 +694,13 @@ and object_define_own_prop s c l x desc throwcont = | Coq_full_descriptor_some attr -> (match attr with | Coq_attributes_data_of a -> - let_binding a.attributes_data_value (fun oldLen -> + let oldLen = (a.attributes_data_value) in begin match oldLen with | Coq_value_prim w -> - let_binding - (JsNumber.to_uint32 (convert_prim_to_number w)) - (fun oldLen0 -> - let_binding desc.descriptor_value (fun descValueOpt -> + let + + oldLen0 = (JsNumber.to_uint32 (convert_prim_to_number w)) in + let descValueOpt = (desc.descriptor_value) in if string_comparable x ("length") then (match descValueOpt with @@ -713,12 +712,12 @@ and object_define_own_prop s c l x desc throwcont = (number_comparable (of_int newLen) newLenN) then run_error s2 Coq_native_error_range - else let_binding - (descriptor_with_value desc (Some + else let + + newLenDesc = (descriptor_with_value desc (Some (Coq_value_prim (Coq_prim_number - (of_int newLen))))) - (fun newLenDesc -> + (of_int newLen))))) in if le_int_decidable oldLen0 newLen then def s2 @@ -728,23 +727,23 @@ and object_define_own_prop s c l x desc throwcont = (bool_decidable a.attributes_data_writable) then reject s2 throwcont - else let_binding - (match newLenDesc.descriptor_writable with + else let + + newWritable = (match newLenDesc.descriptor_writable with | Some b0 -> if b0 then true else false - | None -> true) - (fun newWritable -> - let_binding - (if not_decidable + | None -> true) in + let + + newLenDesc0 = (if not_decidable (bool_decidable newWritable) then descriptor_with_writable newLenDesc (Some true) - else newLenDesc) - (fun newLenDesc0 -> + else newLenDesc) in let%bool (s3, succ) = (def s2 @@ -766,7 +765,7 @@ and object_define_own_prop s c l x desc throwcont = newLenDesc0 newWritable throwcont - def))) + def | None -> def s0 ("length") @@ -817,11 +816,12 @@ and object_define_own_prop s c l x desc throwcont = (Coq_value_prim (Coq_prim_bool true))) - else def s2 x desc throwcont)) + else def s2 x desc throwcont | Coq_value_object l0 -> (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s0 - ("Spec asserts length of array is number.")) + ("Spec asserts length of array is number.") + end | Coq_attributes_accessor_of a -> (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s0 @@ -834,10 +834,10 @@ and object_define_own_prop s c l x desc throwcont = (s0, d) = (run_object_get_own_prop s c lmap x) in let%bool (s1, b0) = (def s0 x desc false) in if b0 - then let_binding (fun s2 -> + then let + follow = (fun s2 -> res_ter s2 - (res_val (Coq_value_prim (Coq_prim_bool true)))) - (fun follow -> + (res_val (Coq_value_prim (Coq_prim_bool true)))) in match d with | Coq_full_descriptor_undef -> follow s1 | Coq_full_descriptor_some a -> @@ -845,21 +845,21 @@ and object_define_own_prop s c l x desc throwcont = then let%bool (s2, x0) = (object_delete s1 c lmap x false) in follow s2 - else let_binding (fun s2 -> + else let follow0 = (fun s2 -> if option_comparable bool_comparable desc.descriptor_writable (Some false) then let%bool (s3, x0) = (object_delete s2 c lmap x false) in follow s3 - else follow s2) (fun follow0 -> + else follow s2) in match desc.descriptor_value with | Some v -> let%void s2 = (object_put s1 c lmap x v throwcont) in follow0 s2 - | None -> follow0 s1)) - else reject s1 throwcont)) + | None -> follow0 s1 + else reject s1 throwcont (** val run_to_descriptor : state -> execution_ctx -> value -> descriptor specres **) @@ -942,37 +942,37 @@ and run_to_descriptor s c _foo_ = match _foo_ with and prim_new_object s _foo_ = match _foo_ with | Coq_prim_bool b -> result_out - (let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc + (let + o1 = (object_new (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_bool_proto)) - ("Boolean")) (fun o1 -> - let_binding - (object_with_primitive_value o1 (Coq_value_prim (Coq_prim_bool b))) - (fun o -> + ("Boolean")) in + let + + o = (object_with_primitive_value o1 (Coq_value_prim (Coq_prim_bool b))) in let (l, s1) = object_alloc s o in - Coq_out_ter (s1, (res_val (Coq_value_object l)))))) + Coq_out_ter (s1, (res_val (Coq_value_object l)))) | Coq_prim_number n -> result_out - (let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc + (let + o1 = (object_new (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_number_proto)) - ("Number")) (fun o1 -> - let_binding - (object_with_primitive_value o1 (Coq_value_prim (Coq_prim_number n))) - (fun o -> + ("Number")) in + let + + o = (object_with_primitive_value o1 (Coq_value_prim (Coq_prim_number n))) in let (l, s1) = object_alloc s o in - Coq_out_ter (s1, (res_val (Coq_value_object l)))))) + Coq_out_ter (s1, (res_val (Coq_value_object l)))) | Coq_prim_string s0 -> - let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc + let + o2 = (object_new (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_string_proto)) - ("String")) (fun o2 -> - let_binding - (object_with_get_own_property o2 Coq_builtin_get_own_prop_string) - (fun o1 -> - let_binding - (object_with_primitive_value o1 (Coq_value_prim (Coq_prim_string - s0))) (fun o -> + ("String")) in + let + + o1 = (object_with_get_own_property o2 Coq_builtin_get_own_prop_string) in + let + o = (object_with_primitive_value o1 (Coq_value_prim (Coq_prim_string + s0))) in let (l, s1) = object_alloc s o in let%some @@ -980,7 +980,7 @@ and prim_new_object s _foo_ = match _foo_ with Heap.write p ("length") (Coq_attributes_data_of (attributes_data_intro_constant (Coq_value_prim - (Coq_prim_number (number_of_int (strlength s0)))))))) in res_ter s_2 (res_val (Coq_value_object l))))) + (Coq_prim_number (number_of_int (strlength s0)))))))) in res_ter s_2 (res_val (Coq_value_object l)) | _ -> (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s @@ -1165,7 +1165,8 @@ and ref_get_value s c _foo_ = match _foo_ with ("[ref_get_value] received an empty result.") | Coq_resvalue_value v -> res_spec s v | Coq_resvalue_ref r -> - let_binding (fun tt -> + let + for_base_or_object = (fun tt -> match r.ref_base with | Coq_ref_base_type_value v -> if ref_kind_comparable (ref_kind_of r) Coq_ref_kind_primitive_base @@ -1180,8 +1181,7 @@ and ref_get_value s c _foo_ = match _foo_ with | Coq_ref_base_type_env_loc l -> (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s - ("[ref_get_value] received a reference to a value whose base type is an environnment record.")) - (fun for_base_or_object -> + ("[ref_get_value] received a reference to a value whose base type is an environnment record.")) in match ref_kind_of r with | Coq_ref_kind_null -> (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) @@ -1199,7 +1199,7 @@ and ref_get_value s c _foo_ = match _foo_ with | Coq_ref_base_type_env_loc l -> let%value - (s2, v) = (env_record_get_binding_value s c l r.ref_name r.ref_strict) in res_spec s2 v)) + (s2, v) = (env_record_get_binding_value s c l r.ref_name r.ref_strict) in res_spec s2 v) (* DEBUG and ref_get_value runs s c r = @@ -1237,18 +1237,19 @@ and object_put_complete b s c vthis l x v str = let%bool (s1, b0) = (object_can_put s c l x) in if b0 then let%run (s2, d) = (run_object_get_own_prop s1 c l x) in - let_binding (fun x0 -> + let + follow = (fun x0 -> let%run (s3, d_2) = (run_object_get_prop s2 c l x) in - let_binding (fun x1 -> + let follow_2 = (fun x1 -> match vthis with | Coq_value_prim wthis -> out_error_or_void s3 str Coq_native_error_type | Coq_value_object lthis -> - let_binding (descriptor_intro_data v true true true) - (fun desc -> + let + desc = (descriptor_intro_data v true true true) in let%success - (s4, rv) = (object_define_own_prop s3 c l x desc str) in res_void s4)) (fun follow_2 -> + (s4, rv) = (object_define_own_prop s3 c l x desc str) in res_void s4) in match d_2 with | Coq_full_descriptor_undef -> follow_2 () | Coq_full_descriptor_some a -> @@ -1263,8 +1264,7 @@ and object_put_complete b s c vthis l x v str = | Coq_value_object lfsetter -> let%success (s4, rv) = (run_call s3 c lfsetter vthis - (v :: [])) in res_void s4)))) - (fun follow -> + (v :: [])) in res_void s4))) in match d with | Coq_full_descriptor_undef -> follow () | Coq_full_descriptor_some a -> @@ -1274,14 +1274,14 @@ and object_put_complete b s c vthis l x v str = | Coq_value_prim wthis -> out_error_or_void s2 str Coq_native_error_type | Coq_value_object lthis -> - let_binding { descriptor_value = (Some v); + let desc = ({ descriptor_value = (Some v); descriptor_writable = None; descriptor_get = None; descriptor_set = None; descriptor_enumerable = None; - descriptor_configurable = None } (fun desc -> + descriptor_configurable = None }) in let%success - (s3, rv) = (object_define_own_prop s2 c l x desc str) in res_void s3)) - | Coq_attributes_accessor_of a0 -> follow ())) + (s3, rv) = (object_define_own_prop s2 c l x desc str) in res_void s3) + | Coq_attributes_accessor_of a0 -> follow ()) else out_error_or_void s1 str Coq_native_error_type (** val object_put : @@ -1374,7 +1374,7 @@ and ref_put_value s c rv v = option -> result_void **) and env_record_create_mutable_binding s c l x deletable_opt = - let_binding (unsome_default false deletable_opt) (fun deletable -> + let deletable = (unsome_default false deletable_opt) in let%some e = (env_record_binds_pickable_option s l) in match e with | Coq_env_record_decl ed -> @@ -1382,24 +1382,24 @@ and env_record_create_mutable_binding s c l x deletable_opt = then (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s ("Already declared environnment record in [env_record_create_mutable_binding].") - else let_binding - (env_record_write_decl_env s l x + else let + s_2 = (env_record_write_decl_env s l x (mutability_of_bool deletable) (Coq_value_prim - Coq_prim_undef)) (fun s_2 -> res_void s_2) + Coq_prim_undef)) in res_void s_2 | Coq_env_record_object (l0, pt) -> let%bool (s1, has) = (object_has_prop s c l0 x) in if has then (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s1 ("Already declared binding in [env_record_create_mutable_binding].") - else let_binding { attributes_data_value = (Coq_value_prim + else let a = ({ attributes_data_value = (Coq_value_prim Coq_prim_undef); attributes_data_writable = true; attributes_data_enumerable = true; - attributes_data_configurable = deletable } (fun a -> + attributes_data_configurable = deletable }) in let%success (s2, rv) = (object_define_own_prop s1 c l0 x (descriptor_of_attributes (Coq_attributes_data_of a)) - throw_true) in res_void s2)) + throw_true) in res_void s2 (** val env_record_create_set_mutable_binding : state -> execution_ctx -> env_loc -> prop_name -> bool @@ -1440,9 +1440,9 @@ and env_record_initialize_immutable_binding s l x v = if prod_comparable mutability_comparable value_comparable evs (Coq_mutability_uninitialized_immutable, (Coq_value_prim Coq_prim_undef)) - then let_binding - (env_record_write_decl_env s l x Coq_mutability_immutable v) - (fun s_2 -> res_void s_2) + then let + + s_2 = (env_record_write_decl_env s l x Coq_mutability_immutable v) in res_void s_2 else (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s ("Non suitable binding in [env_record_initialize_immutable_binding].") @@ -1457,20 +1457,20 @@ and call_object_new s v = match type_of v with | Coq_type_undef -> result_out - (let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc + (let + o = (object_new (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_object_proto)) - ("Object")) (fun o -> - let_binding (object_alloc s o) (fun p -> - let (l, s_2) = p in Coq_out_ter (s_2, (res_val (Coq_value_object l)))))) + ("Object")) in + let p = (object_alloc s o) in + let (l, s_2) = p in Coq_out_ter (s_2, (res_val (Coq_value_object l)))) | Coq_type_null -> result_out - (let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc + (let + o = (object_new (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_object_proto)) - ("Object")) (fun o -> - let_binding (object_alloc s o) (fun p -> - let (l, s_2) = p in Coq_out_ter (s_2, (res_val (Coq_value_object l)))))) + ("Object")) in + let p = (object_alloc s o) in + let (l, s_2) = p in Coq_out_ter (s_2, (res_val (Coq_value_object l)))) | Coq_type_bool -> to_object s v | Coq_type_number -> to_object s v | Coq_type_string -> to_object s v @@ -1632,46 +1632,46 @@ and string_of_prealloc _foo_ = match _foo_ with and run_construct_prealloc s c b args = match b with | Coq_prealloc_object -> - let_binding (get_arg 0 args) (fun v -> call_object_new s v) + let v = (get_arg 0 args) in call_object_new s v | Coq_prealloc_bool -> result_out - (let_binding (get_arg 0 args) (fun v -> - let_binding (convert_value_to_boolean v) (fun b0 -> - let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc + (let v = (get_arg 0 args) in + let b0 = (convert_value_to_boolean v) in + let + o1 = (object_new (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_bool_proto)) - ("Boolean")) (fun o1 -> - let_binding - (object_with_primitive_value o1 (Coq_value_prim (Coq_prim_bool - b0))) (fun o -> - let_binding (object_alloc s o) (fun p -> + ("Boolean")) in + let + o = (object_with_primitive_value o1 (Coq_value_prim (Coq_prim_bool + b0))) in + let p = (object_alloc s o) in let (l, s_2) = p in - Coq_out_ter (s_2, (res_val (Coq_value_object l))))))))) + Coq_out_ter (s_2, (res_val (Coq_value_object l)))) | Coq_prealloc_number -> - let_binding (fun s_2 v -> - let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc + let + follow = (fun s_2 v -> + let + o1 = (object_new (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_number_proto)) - ("Number")) (fun o1 -> - let_binding (object_with_primitive_value o1 v) (fun o -> + ("Number")) in + let o = (object_with_primitive_value o1 v) in let (l, s1) = object_alloc s_2 o in - result_out (Coq_out_ter (s1, (res_val (Coq_value_object l))))))) - (fun follow -> + result_out (Coq_out_ter (s1, (res_val (Coq_value_object l))))) in if list_eq_nil_decidable args then follow s (Coq_value_prim (Coq_prim_number JsNumber.zero)) - else let_binding (get_arg 0 args) (fun v -> + else let v = (get_arg 0 args) in let%number (x, x0) = (to_number s c v) in - follow x (Coq_value_prim (Coq_prim_number x0)))) + follow x (Coq_value_prim (Coq_prim_number x0)) | Coq_prealloc_array -> - let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc - Coq_prealloc_array_proto)) ("Array")) - (fun o_2 -> - let_binding (object_for_array o_2 Coq_builtin_define_own_prop_array) - (fun o -> - let_binding (object_alloc s o) (fun p -> + let + + o_2 = (object_new (Coq_value_object (Coq_object_loc_prealloc + Coq_prealloc_array_proto)) ("Array")) in + let + o = (object_for_array o_2 Coq_builtin_define_own_prop_array) in + let p = (object_alloc s o) in let (l, s_2) = p in - let_binding (fun s_3 length0 -> + let follow = (fun s_3 length0 -> let%some s0 = (object_heap_map_properties_pickable_option s_3 l (fun p0 -> Heap.write p0 ("length") @@ -1680,10 +1680,10 @@ and run_construct_prealloc s c b args = attributes_data_writable = true; attributes_data_enumerable = false; attributes_data_configurable = false }))) in - res_ter s0 (res_val (Coq_value_object l))) (fun follow -> - let_binding (LibList.length args) (fun arg_len -> + res_ter s0 (res_val (Coq_value_object l))) in + let arg_len = (LibList.length args) in if nat_eq arg_len 1 - then let_binding (get_arg 0 args) (fun v -> + then let v = (get_arg 0 args) in match v with | Coq_value_prim p0 -> (match p0 with @@ -1732,7 +1732,7 @@ and run_construct_prealloc s c b args = (fun p0 -> Heap.write p0 ("0") (Coq_attributes_data_of (attributes_data_intro_all_true v)))) in - follow s0 1.0) + follow s0 1.0 else let%some s0 = (object_heap_map_properties_pickable_option s_2 l (fun p0 -> @@ -1745,43 +1745,43 @@ and run_construct_prealloc s c b args = attributes_data_enumerable = false; attributes_data_configurable = false }))) in let%void - s1 = (array_args_map_loop s0 c l args 0.) in res_ter s1 (res_val (Coq_value_object l))))))) + s1 = (array_args_map_loop s0 c l args 0.) in res_ter s1 (res_val (Coq_value_object l)) | Coq_prealloc_string -> - let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc + let + o2 = (object_new (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_string_proto)) - ("String")) (fun o2 -> - let_binding - (object_with_get_own_property o2 Coq_builtin_get_own_prop_string) - (fun o1 -> - let_binding (fun s0 s1 -> - let_binding - (object_with_primitive_value o1 (Coq_value_prim (Coq_prim_string - s1))) (fun o -> + ("String")) in + let + + o1 = (object_with_get_own_property o2 Coq_builtin_get_own_prop_string) in + let follow = (fun s0 s1 -> + let + o = (object_with_primitive_value o1 (Coq_value_prim (Coq_prim_string + s1))) in let (l, s2) = object_alloc s0 o in - let_binding - (attributes_data_intro_constant (Coq_value_prim - (Coq_prim_number (number_of_int (strlength s1))))) - (fun lenDesc -> + let + + lenDesc = (attributes_data_intro_constant (Coq_value_prim + (Coq_prim_number (number_of_int (strlength s1))))) in let%some s_2 = (object_heap_map_properties_pickable_option s2 l (fun p -> Heap.write p ("length") (Coq_attributes_data_of lenDesc))) in - res_ter s_2 (res_val (Coq_value_object l))))) (fun follow -> - let_binding (LibList.length args) (fun arg_len -> + res_ter s_2 (res_val (Coq_value_object l))) in + let arg_len = (LibList.length args) in if nat_eq arg_len 0 then follow s "" - else let_binding (get_arg 0 args) (fun arg -> + else let arg = (get_arg 0 args) in let%string (s0, s1) = (to_string s c arg) in - follow s0 s1))))) + follow s0 s1 | Coq_prealloc_error -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in build_error s (Coq_value_object (Coq_object_loc_prealloc - Coq_prealloc_error_proto)) v) + Coq_prealloc_error_proto)) v | Coq_prealloc_native_error ne -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in build_error s (Coq_value_object (Coq_object_loc_prealloc - (Coq_prealloc_native_error_proto ne))) v) + (Coq_prealloc_native_error_proto ne))) v | _ -> (fun s -> Debug.not_yet_implemented_because __LOC__ s; Coq_result_impossible) (strappend @@ -1798,22 +1798,22 @@ and run_construct_default s c l args = (s1, v1) = (run_object_get s c l ("prototype")) in - let_binding - (if type_comparable (type_of v1) Coq_type_object + let + vproto = (if type_comparable (type_of v1) Coq_type_object then v1 else Coq_value_object (Coq_object_loc_prealloc - Coq_prealloc_object_proto)) (fun vproto -> - let_binding - (object_new vproto ("Object")) - (fun o -> - let_binding (object_alloc s1 o) (fun p -> + Coq_prealloc_object_proto)) in + let + + o = (object_new vproto ("Object")) in + let p = (object_alloc s1 o) in let (l_2, s2) = p in let%value (s3, v2) = (run_call s2 c l (Coq_value_object l_2) args) in - let_binding - (if type_comparable (type_of v2) Coq_type_object + let + vr = (if type_comparable (type_of v2) Coq_type_object then v2 - else Coq_value_object l_2) (fun vr -> res_ter s3 (res_val vr))))) + else Coq_value_object l_2) in res_ter s3 (res_val vr) (** val run_construct : state -> execution_ctx -> construct -> object_loc -> value @@ -1830,8 +1830,8 @@ and run_construct s c co l args = | Some co0 -> let%some oarg = run_object_method object_bound_args_ s l in let%some boundArgs = oarg in - let_binding (LibList.append boundArgs args) (fun arguments_ -> - run_construct s c co0 target arguments_) + let arguments_ = (LibList.append boundArgs args) in + run_construct s c co0 target arguments_ | None -> run_error s Coq_native_error_type end | Coq_construct_prealloc b -> run_construct_prealloc s c b args @@ -1840,9 +1840,9 @@ and run_construct s c co l args = state -> execution_ctx -> object_loc -> result **) and run_call_default s c lf = - let_binding - (result_out (Coq_out_ter (s, (res_val (Coq_value_prim Coq_prim_undef))))) - (fun def -> + let + + def = (result_out (Coq_out_ter (s, (res_val (Coq_value_prim Coq_prim_undef))))) in let%some oC = (run_object_method object_code_ s lf) in match oC with | Some bd -> @@ -1853,7 +1853,7 @@ and run_call_default s c lf = result_out (Coq_out_ter (s_2, (res_val (Coq_value_prim Coq_prim_undef))))) (fun s_2 rv -> result_out (Coq_out_ter (s_2, (res_normal rv)))) - | None -> def) + | None -> def (** val creating_function_object_proto : state -> execution_ctx -> object_loc -> result **) @@ -1861,45 +1861,45 @@ and run_call_default s c lf = and creating_function_object_proto s c l = let%object (s1, lproto) = (run_construct_prealloc s c Coq_prealloc_object []) in - let_binding { attributes_data_value = (Coq_value_object l); + let a1 = ({ attributes_data_value = (Coq_value_object l); attributes_data_writable = true; attributes_data_enumerable = false; - attributes_data_configurable = true } (fun a1 -> + attributes_data_configurable = true }) in let%bool (s2, b) = (object_define_own_prop s1 c lproto ("constructor") (descriptor_of_attributes (Coq_attributes_data_of a1)) false) in - let_binding { attributes_data_value = (Coq_value_object lproto); + let a2 = ({ attributes_data_value = (Coq_value_object lproto); attributes_data_writable = true; attributes_data_enumerable = - false; attributes_data_configurable = false } (fun a2 -> + false; attributes_data_configurable = false }) in object_define_own_prop s2 c l ("prototype") - (descriptor_of_attributes (Coq_attributes_data_of a2)) false)) + (descriptor_of_attributes (Coq_attributes_data_of a2)) false (** val creating_function_object : state -> execution_ctx -> string list -> funcbody -> lexical_env -> strictness_flag -> result **) and creating_function_object s c names bd x str = - let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc + let + o = (object_new (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_function_proto)) - ("Function")) (fun o -> - let_binding (object_with_get o Coq_builtin_get_function) (fun o1 -> - let_binding - (object_with_invokation o1 (Some Coq_construct_default) (Some - Coq_call_default) (Some Coq_builtin_has_instance_function)) - (fun o2 -> - let_binding - (object_with_details o2 (Some x) (Some names) (Some bd) None None - None None) (fun o3 -> - let_binding (object_alloc s o3) (fun p -> + ("Function")) in + let o1 = (object_with_get o Coq_builtin_get_function) in + let + + o2 = (object_with_invokation o1 (Some Coq_construct_default) (Some + Coq_call_default) (Some Coq_builtin_has_instance_function)) in + let + o3 = (object_with_details o2 (Some x) (Some names) (Some bd) None None + None None) in + let p = (object_alloc s o3) in let (l, s1) = p in - let_binding { attributes_data_value = (Coq_value_prim + let a1 = ({ attributes_data_value = (Coq_value_prim (Coq_prim_number (number_of_int (LibList.length names)))); attributes_data_writable = false; attributes_data_enumerable = - false; attributes_data_configurable = false } (fun a1 -> + false; attributes_data_configurable = false }) in let%bool (s2, b2) = (object_define_own_prop s1 c l ("length") @@ -1909,13 +1909,13 @@ and creating_function_object s c names bd x str = (s3, b3) = (creating_function_object_proto s2 c l) in if negb str then res_ter s3 (res_val (Coq_value_object l)) - else let_binding (Coq_value_object (Coq_object_loc_prealloc - Coq_prealloc_throw_type_error)) (fun vthrower -> - let_binding { attributes_accessor_get = vthrower; + else let vthrower = (Coq_value_object (Coq_object_loc_prealloc + Coq_prealloc_throw_type_error)) in + let + a2 = ({ attributes_accessor_get = vthrower; attributes_accessor_set = vthrower; attributes_accessor_enumerable = false; - attributes_accessor_configurable = false } - (fun a2 -> + attributes_accessor_configurable = false }) in let%bool (s4, b4) = (object_define_own_prop s3 c l @@ -1928,7 +1928,7 @@ and creating_function_object s c names bd x str = ("arguments") (descriptor_of_attributes (Coq_attributes_accessor_of a2)) false) in - res_ter s5 (res_val (Coq_value_object l)))))))))) + res_ter s5 (res_val (Coq_value_object l)) (** val binding_inst_formal_params : state -> execution_ctx -> env_loc -> value list -> string @@ -1938,20 +1938,20 @@ and binding_inst_formal_params s c l args names str = match names with | [] -> res_void s | argname :: names_2 -> - let_binding (hd (Coq_value_prim Coq_prim_undef) args) (fun v -> - let_binding (tl args) (fun args_2 -> + let v = (hd (Coq_value_prim Coq_prim_undef) args) in + let args_2 = (tl args) in let%bool (s1, hb) = (env_record_has_binding s c l argname) in - let_binding (fun s_2 -> + let + follow = (fun s_2 -> let%void s_3= (env_record_set_mutable_binding s_2 c l argname v str) in - binding_inst_formal_params s_3 c l args_2 names_2 str) - (fun follow -> + binding_inst_formal_params s_3 c l args_2 names_2 str) in if hb then follow s1 else let%void s2 = (env_record_create_mutable_binding s1 c l argname - None) in follow s2))) + None) in follow s2 (** val binding_inst_function_decls : state -> execution_ctx -> env_loc -> funcdecl list -> @@ -1962,19 +1962,19 @@ and binding_inst_function_decls s c l fds str bconfig = match fds with | [] -> res_void s | fd :: fds_2 -> - let_binding fd.funcdecl_body (fun fbd -> - let_binding (funcbody_is_strict fbd) (fun str_fd -> - let_binding fd.funcdecl_parameters (fun fparams -> - let_binding fd.funcdecl_name (fun fname -> + let fbd = (fd.funcdecl_body) in + let str_fd = (funcbody_is_strict fbd) in + let fparams = (fd.funcdecl_parameters) in + let fname = (fd.funcdecl_name) in let%object (s1, fo) = (creating_function_object s c fparams fbd c.execution_ctx_variable_env str_fd) in - let_binding (fun s2 -> + let + follow = (fun s2 -> let%void s3= (env_record_set_mutable_binding s2 c l fname (Coq_value_object fo) str) in - binding_inst_function_decls s3 c l fds_2 str bconfig) - (fun follow -> + binding_inst_function_decls s3 c l fds_2 str bconfig) in let%bool (s2, has) = (env_record_has_binding s1 c l fname) in if has @@ -1990,19 +1990,19 @@ and binding_inst_function_decls s c l fds str bconfig = ("Undefined full descriptor in [binding_inst_function_decls].") | Coq_full_descriptor_some a -> if bool_decidable (attributes_configurable a) - then let_binding { attributes_data_value = + then let a_2 = ({ attributes_data_value = (Coq_value_prim Coq_prim_undef); attributes_data_writable = true; attributes_data_enumerable = true; attributes_data_configurable = - bconfig } (fun a_2 -> + bconfig }) in let%bool (s0, x) = (object_define_own_prop s3 c (Coq_object_loc_prealloc Coq_prealloc_global) fname (descriptor_of_attributes (Coq_attributes_data_of a_2)) - true) in follow s0) + true) in follow s0 else if or_decidable (descriptor_is_accessor_dec (descriptor_of_attributes a)) @@ -2017,7 +2017,7 @@ and binding_inst_function_decls s c l fds str bconfig = else follow s2 else let%void s3 = (env_record_create_mutable_binding s2 c l - fname (Some bconfig)) in follow s3))))) + fname (Some bconfig)) in follow s3 (** val make_arg_getter : state -> execution_ctx -> prop_name -> lexical_env -> result **) @@ -2057,19 +2057,19 @@ and arguments_object_map_loop s c l xs len args x str lmap xsmap = if list_eq_nil_decidable xsmap then res_void s else let%some o = (object_binds_pickable_option s l) in - let_binding - (object_for_args_object o lmap Coq_builtin_get_args_obj + let + o_2 = (object_for_args_object o lmap Coq_builtin_get_args_obj Coq_builtin_get_own_prop_args_obj Coq_builtin_define_own_prop_args_obj - Coq_builtin_delete_args_obj) (fun o_2 -> - res_void (object_write s l o_2))) + Coq_builtin_delete_args_obj) in + res_void (object_write s l o_2)) (fun len_2 -> - let_binding (take_drop_last args) (fun tdl -> + let tdl = (take_drop_last args) in let (rmlargs, largs) = tdl in - let_binding (fun s0 xsmap0 -> + let arguments_object_map_loop_2 = (fun s0 xsmap0 -> arguments_object_map_loop s0 c l xs len_2 rmlargs x str lmap - xsmap0) (fun arguments_object_map_loop_2 -> - let_binding (attributes_data_intro_all_true largs) (fun a -> + xsmap0) in + let a = (attributes_data_intro_all_true largs) in let%bool (s1, b) = (object_define_own_prop s c l @@ -2079,7 +2079,7 @@ and arguments_object_map_loop s c l xs len args x str lmap xsmap = if ge_nat_decidable len_2 (LibList.length xs) then arguments_object_map_loop_2 s1 xsmap else let dummy = "" in - let_binding (nth_def dummy len_2 xs) (fun x0 -> + let x0 = (nth_def dummy len_2 xs) in if or_decidable (bool_comparable str true) (coq_Mem_decidable string_comparable x0 xsmap) then arguments_object_map_loop_2 s1 xsmap @@ -2087,12 +2087,12 @@ and arguments_object_map_loop s c l xs len args x str lmap xsmap = (s2, lgetter) = (make_arg_getter s1 c x0 x) in let%object (s3, lsetter) = (make_arg_setter s2 c x0 x) in - let_binding { attributes_accessor_get = + let a_2 = ({ attributes_accessor_get = (Coq_value_object lgetter); attributes_accessor_set = (Coq_value_object lsetter); attributes_accessor_enumerable = false; attributes_accessor_configurable = - true } (fun a_2 -> + true }) in let%bool (s4, b_2) = (object_define_own_prop s3 c lmap @@ -2100,7 +2100,7 @@ and arguments_object_map_loop s c l xs len args x str lmap xsmap = (number_of_int len_2))) (descriptor_of_attributes (Coq_attributes_accessor_of a_2)) false) in - arguments_object_map_loop_2 s4 (x0 :: xsmap))))))) + arguments_object_map_loop_2 s4 (x0 :: xsmap)) len (** val arguments_object_map : @@ -2118,17 +2118,17 @@ and arguments_object_map s c l xs args x str = value list -> lexical_env -> strictness_flag -> result **) and create_arguments_object s c lf xs args x str = - let_binding - (object_create_builtin (Coq_value_object (Coq_object_loc_prealloc + let + o = (object_create_builtin (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_object_proto)) ("Arguments") - Heap.empty) (fun o -> - let_binding (object_alloc s o) (fun p -> + Heap.empty) in + let p = (object_alloc s o) in let (l, s_2) = p in - let_binding { attributes_data_value = (Coq_value_prim (Coq_prim_number + let a = ({ attributes_data_value = (Coq_value_prim (Coq_prim_number (number_of_int (LibList.length args)))); attributes_data_writable = true; attributes_data_enumerable = false; - attributes_data_configurable = true } (fun a -> + attributes_data_configurable = true }) in let%bool (s1, b) = (object_define_own_prop s_2 c l @@ -2137,12 +2137,12 @@ and create_arguments_object s c lf xs args x str = let%void s2= (arguments_object_map s1 c l xs args x str) in if str - then let_binding (Coq_value_object (Coq_object_loc_prealloc - Coq_prealloc_throw_type_error)) (fun vthrower -> - let_binding { attributes_accessor_get = vthrower; + then let vthrower = (Coq_value_object (Coq_object_loc_prealloc + Coq_prealloc_throw_type_error)) in + let a0 = ({ attributes_accessor_get = vthrower; attributes_accessor_set = vthrower; attributes_accessor_enumerable = false; - attributes_accessor_configurable = false } (fun a0 -> + attributes_accessor_configurable = false }) in let%bool (s3, b_2) = (object_define_own_prop s2 c l @@ -2155,17 +2155,17 @@ and create_arguments_object s c lf xs args x str = ("callee") (descriptor_of_attributes (Coq_attributes_accessor_of a0)) false) in - res_ter s4 (res_val (Coq_value_object l)))) - else let_binding { attributes_data_value = (Coq_value_object lf); + res_ter s4 (res_val (Coq_value_object l)) + else let a0 = ({ attributes_data_value = (Coq_value_object lf); attributes_data_writable = true; attributes_data_enumerable = false; - attributes_data_configurable = true } (fun a0 -> + attributes_data_configurable = true }) in let%bool (s3, b_2) = (object_define_own_prop s2 c l ("callee") (descriptor_of_attributes (Coq_attributes_data_of a0)) false) in - res_ter s3 (res_val (Coq_value_object l)))))) + res_ter s3 (res_val (Coq_value_object l)) (** val binding_inst_arg_obj : state -> execution_ctx -> object_loc -> prog -> string @@ -2175,7 +2175,7 @@ and binding_inst_arg_obj s c lf p xs args l = let arguments_ = "arguments" in - let_binding (prog_intro_strictness p) (fun str -> + let str = (prog_intro_strictness p) in let%object (s1, largs) = (create_arguments_object s c lf xs args c.execution_ctx_variable_env str) in @@ -2185,7 +2185,7 @@ and binding_inst_arg_obj s c lf p xs args l = env_record_initialize_immutable_binding s2 l arguments_ (Coq_value_object largs) else env_record_create_set_mutable_binding s1 c l arguments_ None - (Coq_value_object largs) false) + (Coq_value_object largs) false (** val binding_inst_var_decls : state -> execution_ctx -> env_loc -> string list -> bool @@ -2195,14 +2195,14 @@ and binding_inst_var_decls s c l vds bconfig str = match vds with | [] -> res_void s | vd :: vds_2 -> - let_binding (fun s0 -> - binding_inst_var_decls s0 c l vds_2 bconfig str) (fun bivd -> + let bivd = (fun s0 -> + binding_inst_var_decls s0 c l vds_2 bconfig str) in let%bool (s1, has) = (env_record_has_binding s c l vd) in if has then bivd s1 else let%void s2 = (env_record_create_set_mutable_binding s1 c l vd (Some - bconfig) (Coq_value_prim Coq_prim_undef) str) in bivd s2) + bconfig) (Coq_value_prim Coq_prim_undef) str) in bivd s2 (** val execution_ctx_binding_inst : state -> execution_ctx -> codetype -> object_loc option -> @@ -2215,11 +2215,11 @@ and execution_ctx_binding_inst s c ct funco p args = s ("Empty [execution_ctx_variable_env] in [execution_ctx_binding_inst].") | l :: l0 -> - let_binding (prog_intro_strictness p) (fun str -> - let_binding (fun s_2 names -> - let_binding (codetype_comparable ct Coq_codetype_eval) - (fun bconfig -> - let_binding (prog_funcdecl p) (fun fds -> + let str = (prog_intro_strictness p) in + let follow = (fun s_2 names -> + let + bconfig = (codetype_comparable ct Coq_codetype_eval) in + let fds = (prog_funcdecl p) in let%void s1= (binding_inst_function_decls s_2 c l fds str bconfig) in @@ -2227,10 +2227,10 @@ and execution_ctx_binding_inst s c ct funco p args = (s2, bdefined) = (env_record_has_binding s1 c l ("arguments")) in - let_binding (fun s10 -> + let + follow2 = (fun s10 -> let vds = prog_vardecl p in - binding_inst_var_decls s10 c l vds bconfig str) - (fun follow2 -> + binding_inst_var_decls s10 c l vds bconfig str) in match ct with | Coq_codetype_func -> (match funco with @@ -2247,7 +2247,7 @@ and execution_ctx_binding_inst s c ct funco p args = s2 ("Weird `arguments\' object in [execution_ctx_binding_inst].")) | Coq_codetype_global -> follow2 s2 - | Coq_codetype_eval -> follow2 s2)))) (fun follow -> + | Coq_codetype_eval -> follow2 s2) in match ct with | Coq_codetype_func -> (match funco with @@ -2275,7 +2275,7 @@ and execution_ctx_binding_inst s c ct funco p args = (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s ("Non coherent non-functionnal code type in [execution_ctx_binding_inst].") - | None -> follow s []))) + | None -> follow s []) (** val entering_func_code : state -> execution_ctx -> object_loc -> value -> value list @@ -2284,18 +2284,18 @@ and execution_ctx_binding_inst s c ct funco p args = and entering_func_code s c lf vthis args = let%some bdo = (run_object_method object_code_ s lf) in let%some bd = (bdo) in - let_binding (funcbody_is_strict bd) (fun str -> - let_binding (fun s_2 vthis_2 -> + let str = (funcbody_is_strict bd) in + let follow = (fun s_2 vthis_2 -> let%some lexo = (run_object_method object_scope_ s_2 lf) in let%some lex = (lexo) in - let_binding (lexical_env_alloc_decl s_2 lex) (fun p -> + let p = (lexical_env_alloc_decl s_2 lex) in let (lex_2, s1) = p in - let_binding (execution_ctx_intro_same lex_2 vthis_2 str) - (fun c_2 -> + let + c_2 = (execution_ctx_intro_same lex_2 vthis_2 str) in let%void s2= (execution_ctx_binding_inst s1 c_2 Coq_codetype_func (Some lf) (funcbody_prog bd) args) in - run_call_default s2 c_2 lf))) (fun follow -> + run_call_default s2 c_2 lf) in if str then follow s vthis else (match vthis with @@ -2311,7 +2311,7 @@ and entering_func_code s c lf vthis args = | Coq_prim_number n -> let%value (s2, v) = (to_object s vthis) in follow s2 v | Coq_prim_string s0 -> let%value (s2, v) = (to_object s vthis) in follow s2 v) - | Coq_value_object lthis -> follow s vthis))) + | Coq_value_object lthis -> follow s vthis) (** val run_object_get_own_prop : state -> execution_ctx -> object_loc -> prop_name -> @@ -2319,13 +2319,13 @@ and entering_func_code s c lf vthis args = and run_object_get_own_prop s c l x = let%some b = (run_object_method object_get_own_prop_ s l) in - let_binding (fun s_2 -> + let def = (fun s_2 -> let%some p = (run_object_method object_properties_ s_2 l) in res_spec s_2 (ifx_some_or_default (convert_option_attributes (Heap.read_option string_comparable p x)) - Coq_full_descriptor_undef (fun x -> x))) (fun def -> + Coq_full_descriptor_undef (fun x -> x))) in match b with | Coq_builtin_get_own_prop_default -> def s | Coq_builtin_get_own_prop_args_obj -> @@ -2339,8 +2339,8 @@ and run_object_get_own_prop s c l x = let%some lmap = (lmapo) in let%run (s2, d0) = (run_object_get_own_prop s1 c lmap x) in - let_binding (fun s_2 a0 -> - res_spec s_2 (Coq_full_descriptor_some a0)) (fun follow -> + let follow = (fun s_2 a0 -> + res_spec s_2 (Coq_full_descriptor_some a0)) in match d0 with | Coq_full_descriptor_undef -> follow s2 a | Coq_full_descriptor_some amap -> @@ -2353,7 +2353,7 @@ and run_object_get_own_prop s c l x = | Coq_attributes_accessor_of aa -> (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s3 - ("[run_object_get_own_prop]: received an accessor property descriptor in a point where the specification suppose it never happens.")) + ("[run_object_get_own_prop]: received an accessor property descriptor in a point where the specification suppose it never happens.") end | Coq_builtin_get_own_prop_string -> let%run (s0, d) = (def s) in @@ -2372,7 +2372,7 @@ and run_object_get_own_prop s c l x = let%run (s5, k0) = (to_int32 s4 c (Coq_value_prim (Coq_prim_string x))) in - let_binding (number_of_int (strlength str)) (fun len -> + let len = (number_of_int (strlength str)) in if le_int_decidable len k0 then res_spec s5 Coq_full_descriptor_undef else let resultStr = @@ -2386,8 +2386,8 @@ and run_object_get_own_prop s c l x = attributes_data_configurable = false } in res_spec s5 (Coq_full_descriptor_some - (Coq_attributes_data_of a))) - | Coq_full_descriptor_some a -> res_spec s0 d) + (Coq_attributes_data_of a)) + | Coq_full_descriptor_some a -> res_spec s0 d (** val run_function_has_instance : state -> object_loc -> value -> result **) @@ -2449,57 +2449,56 @@ and from_prop_descriptor s c _foo_ = match _foo_ with | Coq_full_descriptor_some a -> let%object (s1, l) = (run_construct_prealloc s c Coq_prealloc_object []) in - let_binding (fun s0 x -> - let_binding - (attributes_data_intro_all_true (Coq_value_prim (Coq_prim_bool - (attributes_enumerable a)))) (fun a1 -> + let follow = (fun s0 x -> + let + a1 = (attributes_data_intro_all_true (Coq_value_prim (Coq_prim_bool + (attributes_enumerable a)))) in let%bool (s0_2, x0) = (object_define_own_prop s0 c l ("enumerable") (descriptor_of_attributes (Coq_attributes_data_of a1)) throw_false) in - let_binding - (attributes_data_intro_all_true (Coq_value_prim (Coq_prim_bool - (attributes_configurable a)))) (fun a2 -> + let + a2 = (attributes_data_intro_all_true (Coq_value_prim (Coq_prim_bool + (attributes_configurable a)))) in let%bool (s_2, x1) = (object_define_own_prop s0_2 c l ("configurable") (descriptor_of_attributes (Coq_attributes_data_of a2)) throw_false) in - res_ter s_2 (res_val (Coq_value_object l))))) (fun follow -> + res_ter s_2 (res_val (Coq_value_object l))) in match a with | Coq_attributes_data_of ad -> - let_binding (attributes_data_intro_all_true ad.attributes_data_value) - (fun a1 -> + let + a1 = (attributes_data_intro_all_true ad.attributes_data_value) in let%bool (s2, x) = (object_define_own_prop s1 c l ("value") (descriptor_of_attributes (Coq_attributes_data_of a1)) throw_false) in - let_binding - (attributes_data_intro_all_true (Coq_value_prim (Coq_prim_bool - ad.attributes_data_writable))) (fun a2 -> + let + a2 = (attributes_data_intro_all_true (Coq_value_prim (Coq_prim_bool + ad.attributes_data_writable))) in let%bool (s3, v) = (object_define_own_prop s2 c l ("writable") (descriptor_of_attributes (Coq_attributes_data_of a2)) - throw_false) in follow s3 v)) + throw_false) in follow s3 v | Coq_attributes_accessor_of aa -> - let_binding - (attributes_data_intro_all_true aa.attributes_accessor_get) - (fun a1 -> + let + + a1 = (attributes_data_intro_all_true aa.attributes_accessor_get) in let%bool (s2, x) = (object_define_own_prop s1 c l ("get") (descriptor_of_attributes (Coq_attributes_data_of a1)) throw_false) in - let_binding - (attributes_data_intro_all_true aa.attributes_accessor_set) - (fun a2 -> + let + + a2 = (attributes_data_intro_all_true aa.attributes_accessor_set) in let%bool (s3, v) = (object_define_own_prop s2 c l ("set") (descriptor_of_attributes (Coq_attributes_data_of a2)) - throw_false) in follow s3 v)) - ) + throw_false) in follow s3 v (** val is_lazy_op : binary_op -> bool option **) @@ -2649,18 +2648,18 @@ and get_bitwise_op _foo_ = match _foo_ with and run_equal s c v1 v2 = let conv_number = fun s0 v -> to_number s0 c v in let conv_primitive = fun s0 v -> to_primitive s0 c v None in - let_binding (fun s0 v3 v4 k -> + let checkTypesThen = (fun s0 v3 v4 k -> let ty1 = type_of v3 in let ty2 = type_of v4 in if type_comparable ty1 ty2 then result_out (Coq_out_ter (s0, (res_val (Coq_value_prim (Coq_prim_bool (equality_test_for_same_type ty1 v3 v4)))))) - else k ty1 ty2) (fun checkTypesThen -> + else k ty1 ty2) in checkTypesThen s v1 v2 (fun ty1 ty2 -> - let_binding (fun v3 f v4 -> - let%value (s0, v2_2) = (f s v4) in run_equal s0 c v3 v2_2) - (fun dc_conv -> + let + dc_conv = (fun v3 f v4 -> + let%value (s0, v2_2) = (f s v4) in run_equal s0 c v3 v2_2) in let so = fun b -> result_out (Coq_out_ter (s, (res_val (Coq_value_prim (Coq_prim_bool b))))) @@ -2699,7 +2698,7 @@ and run_equal s c v1 v2 = (type_comparable ty2 Coq_type_number)) then dc_conv v2 conv_primitive v1 - else so false))) + else so false) (** val convert_twice : ('a2 resultof -> (state -> 'a1 -> ('a1 * 'a1) specres) -> ('a1 * 'a1) @@ -2796,9 +2795,9 @@ and run_binary_op s c op v1 v2 = (s1, ww) = (convert_twice_primitive s c v1 v2) in let (w1, w2) = ww in - let_binding - (if b_swap then (w2, w1) else (w1, w2)) - (fun p -> + let + + p = (if b_swap then (w2, w1) else (w1, w2)) in let (wa, wb) = p in let wr = inequality_test_primitive wa wb in res_out (Coq_out_ter (s1, @@ -2819,7 +2818,7 @@ and run_binary_op s c op v1 v2 = then res_val (Coq_value_prim (Coq_prim_bool true)) else res_val (Coq_value_prim - wr))))) + wr)))) else if binary_op_comparable op Coq_binary_op_instanceof then (match v2 with @@ -2919,14 +2918,14 @@ and run_unary_op s c op e = let%number (s3, n1) = (to_number s2 c v2) in let%some po = (run_prepost_op op) in let (number_op, is_pre) = po in - let_binding (number_op n1) (fun n2 -> - let_binding (Coq_prim_number (if is_pre then n2 else n1)) - (fun v -> + let n2 = (number_op n1) in + let + v = (Coq_prim_number (if is_pre then n2 else n1)) in let%void s4= (ref_put_value s3 c rv1 (Coq_value_prim (Coq_prim_number n2))) in result_out (Coq_out_ter (s4, - (res_val (Coq_value_prim v)))))) + (res_val (Coq_value_prim v)))) else (match op with | Coq_unary_op_delete -> let%success (s0, rv)= (run_expr s c e) in begin @@ -3013,10 +3012,10 @@ and init_object s c l _foo_ = match _foo_ with | [] -> result_out (Coq_out_ter (s, (res_val (Coq_value_object l)))) | p :: pds_2 -> let (pn, pb) = p in - let_binding (string_of_propname pn) (fun x -> - let_binding (fun s1 desc -> + let x = (string_of_propname pn) in + let follows = (fun s1 desc -> let%success - (s2, rv) = (object_define_own_prop s1 c l x desc false) in init_object s2 c l pds_2) (fun follows -> + (s2, rv) = (object_define_own_prop s1 c l x desc false) in init_object s2 c l pds_2) in match pb with | Coq_propbody_val e0 -> let%run (s1, v0) = (run_expr_get_value s c e0) in @@ -3041,7 +3040,7 @@ and init_object s c l _foo_ = match _foo_ with descriptor_enumerable = (Some true); descriptor_configurable = (Some true) } in - follows s1 desc)) + follows s1 desc (** val run_array_element_list : state -> execution_ctx -> object_loc -> expr option list -> @@ -3053,9 +3052,9 @@ and run_array_element_list s c l oes n = | o :: oes_2 -> (match o with | Some e -> - let_binding (fun s0 -> - run_array_element_list s0 c l oes_2 0.) - (fun loop_result -> + let + loop_result = (fun s0 -> + run_array_element_list s0 c l oes_2 0.) in let%run (s0, v) = (run_expr_get_value s c e) in let%value (s1, vlen) = (run_object_get s0 c l @@ -3064,28 +3063,28 @@ and run_array_element_list s c l oes n = let%string (s3, slen) = (to_string s2 c (Coq_value_prim (Coq_prim_number (ilen +. n)))) in - let_binding { attributes_data_value = v; + let desc = ({ attributes_data_value = v; attributes_data_writable = true; attributes_data_enumerable = true; - attributes_data_configurable = true } (fun desc -> + attributes_data_configurable = true }) in let%bool (s4, x) = (object_define_own_prop s3 c l slen (descriptor_of_attributes (Coq_attributes_data_of desc)) false) in let%object (s5, l0) = (loop_result s4) in - res_ter s5 (res_val (Coq_value_object l0)))) + res_ter s5 (res_val (Coq_value_object l0)) | None -> - let_binding (elision_head_count (None :: oes_2)) (fun firstIndex -> + let firstIndex = (elision_head_count (None :: oes_2)) in run_array_element_list s c l - (elision_head_remove (None :: oes_2)) (number_of_int firstIndex))) + (elision_head_remove (None :: oes_2)) (number_of_int firstIndex)) (** val init_array : state -> execution_ctx -> object_loc -> expr option list -> result **) and init_array s c l oes = - let_binding (elision_tail_remove oes) (fun elementList -> - let_binding (elision_tail_count oes) (fun elisionLength -> + let elementList = (elision_tail_remove oes) in + let elisionLength = (elision_tail_count oes) in let%object (s0, l0) = (run_array_element_list s c l elementList 0.) in let%value @@ -3102,7 +3101,7 @@ and init_array s c l oes = (Coq_value_prim (Coq_prim_number (of_int len))) 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 **) @@ -3158,11 +3157,11 @@ and run_block s c _foo_ = match _foo_ with match is_lazy_op op with | Some b_ret -> let%run (s1, v1) = (run_expr_get_value s c e1) in - let_binding (convert_value_to_boolean v1) (fun b1 -> + let b1 = (convert_value_to_boolean v1) in if bool_comparable b1 b_ret then res_ter s1 (res_val v1) else let%run (s2, v) = (run_expr_get_value s1 c e2) in - res_ter s2 (res_val v)) + res_ter s2 (res_val v) | None -> let%run (s1, v1) = (run_expr_get_value s c e1) in let%run (s2, v2) = (run_expr_get_value s1 c e2) in @@ -3174,11 +3173,11 @@ and run_expr_binary_op s c op e1 e2 = match is_lazy_op op with | Some b_ret -> let%run (s1, v1) = (run_expr_get_value s c e1) in - let_binding (convert_value_to_boolean v1) (fun b1 -> + let b1 = (convert_value_to_boolean v1) in if bool_comparable b1 b_ret then res_ter s1 (res_val v1) else let%run (s2, v) = (run_expr_get_value s1 c e2) in - res_ter s2 (res_val v)) + res_ter s2 (res_val v) | None -> let%run (s1,v1) = run_expr_get_value s c e1 in let%run (s2,v2) = run_expr_get_value s1 c e2 in @@ -3214,7 +3213,8 @@ and run_expr_access s c e1 e2 = and run_expr_assign s c opo e1 e2 = let%success (s1, rv1)= (run_expr s c e1) in - let_binding (fun s0 rv_2 -> + let + follow = (fun s0 rv_2 -> match rv_2 with | Coq_resvalue_empty -> (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) @@ -3226,8 +3226,7 @@ and run_expr_assign s c opo e1 e2 = | Coq_resvalue_ref r -> (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s0 - ("Non-value result in [run_expr_assign].")) - (fun follow -> + ("Non-value result in [run_expr_assign].")) in match opo with | Some op -> let%run (s2, v1) = (ref_get_value s1 c rv1) in @@ -3235,7 +3234,7 @@ and run_expr_assign s c opo e1 e2 = let%success (s4, v) = (run_binary_op s3 c op v1 v2) in follow s4 v | None -> let%run (x, x0 )= (run_expr_get_value s1 c e2) in - follow x (Coq_resvalue_value x0)) + follow x (Coq_resvalue_value x0) (** val run_expr_function : state -> execution_ctx -> prop_name option -> string list @@ -3244,8 +3243,8 @@ and run_expr_assign s c opo e1 e2 = and run_expr_function s c fo args bd = match fo with | Some fn -> - let_binding (lexical_env_alloc_decl s c.execution_ctx_lexical_env) - (fun p -> + let + p = (lexical_env_alloc_decl s c.execution_ctx_lexical_env) in let (lex_2, s_2) = p in let follow = fun l -> let%some e = (env_record_binds_pickable_option s_2 l) in @@ -3263,7 +3262,7 @@ and run_expr_function s c fo args bd = (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s_2 ("Empty lexical environnment allocated in [run_expr_function].")) - (fun l x -> follow l) ()) + (fun l x -> follow l) () | None -> let lex = c.execution_ctx_lexical_env in creating_function_object s c args bd lex (funcbody_is_strict bd) @@ -3273,21 +3272,21 @@ and run_expr_function s c fo args bd = execution_ctx -> result) -> result **) and entering_eval_code s c direct bd k = - let_binding - (coq_or (funcbody_is_strict bd) ( direct && c.execution_ctx_strict)) - (fun str -> - let_binding (if direct then c else execution_ctx_initial str) (fun c_2 -> - let_binding - (if str + let + + str = (coq_or (funcbody_is_strict bd) ( direct && c.execution_ctx_strict)) in + let c_2 = (if direct then c else execution_ctx_initial str) in + let + p = (if str then lexical_env_alloc_decl s c_2.execution_ctx_lexical_env - else (c_2.execution_ctx_lexical_env, s)) (fun p -> + else (c_2.execution_ctx_lexical_env, s)) in let (lex, s_2) = p in - let_binding (if str then execution_ctx_with_lex_same c_2 lex else c_2) - (fun c1 -> - let_binding (funcbody_prog bd) (fun p0 -> + let + c1 = (if str then execution_ctx_with_lex_same c_2 lex else c_2) in + let p0 = (funcbody_prog bd) in let%void s1 = (execution_ctx_binding_inst s_2 c1 Coq_codetype_eval None - p0 []) in k s1 c1))))) + p0 []) in k s1 c1 (** val run_eval : state -> execution_ctx -> bool -> value list -> result **) @@ -3308,8 +3307,8 @@ and run_eval s c is_direct_call vs = result_out (Coq_out_ter (s, (res_val (Coq_value_prim (Coq_prim_number n))))) | Coq_prim_string s0 -> - let_binding (coq_and is_direct_call c.execution_ctx_strict) - (fun str -> + let + str = (coq_and is_direct_call c.execution_ctx_strict) in match parse_pickable s0 str with | Some p0 -> entering_eval_code s c is_direct_call (Coq_funcbody_intro @@ -3331,7 +3330,7 @@ and run_eval s c is_direct_call vs = (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) s2 ("Forbidden result type returned by an `eval\' in [run_eval].")) - | None -> run_error s Coq_native_error_syntax)) + | None -> run_error s Coq_native_error_syntax) | Coq_value_object o -> result_out (Coq_out_ter (s, (res_val (Coq_value_object o)))) @@ -3339,7 +3338,7 @@ and run_eval s c is_direct_call vs = state -> execution_ctx -> expr -> expr list -> result **) and run_expr_call s c e1 e2s = - let_binding (is_syntactic_eval e1) (fun is_eval_direct -> + let is_eval_direct = (is_syntactic_eval e1) in let%success (s1, rv)= (run_expr s c e1) in let%run (s2, f) = (ref_get_value s1 c rv) in let%run (s3, vs) = (run_list_expr s2 c [] e2s) in @@ -3347,11 +3346,11 @@ and run_expr_call s c e1 e2s = | Coq_value_prim p -> run_error s3 Coq_native_error_type | Coq_value_object l -> if is_callable_dec s3 (Coq_value_object l) - then let_binding (fun vthis -> + then let follow = (fun vthis -> if object_loc_comparable l (Coq_object_loc_prealloc Coq_prealloc_global_eval) then run_eval s3 c is_eval_direct vs - else run_call s3 c l vthis vs) (fun follow -> + else run_call s3 c l vthis vs) in match rv with | Coq_resvalue_empty -> (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) @@ -3375,18 +3374,18 @@ and run_expr_call s c e1 e2s = s3 ("[run_expr_call] unable to call a non-property function.") | Coq_ref_base_type_env_loc l0 -> - let%some v = (env_record_implicit_this_value s3 l0) in follow v)) - else run_error s3 Coq_native_error_type) + let%some v = (env_record_implicit_this_value s3 l0) in follow v) + else run_error s3 Coq_native_error_type (** val run_expr_conditionnal : state -> execution_ctx -> expr -> expr -> expr -> result **) and run_expr_conditionnal s c e1 e2 e3 = let%run (s1, v1) = (run_expr_get_value s c e1) in - let_binding (convert_value_to_boolean v1) (fun b -> - let_binding (if b then e2 else e3) (fun e -> + let b = (convert_value_to_boolean v1) in + let e = (if b then e2 else e3) in let%run (s0, r) = (run_expr_get_value s1 c e) in - res_ter s0 (res_val r))) + res_ter s0 (res_val r) (** val run_expr_new : state -> execution_ctx -> expr -> expr list -> result **) @@ -3418,12 +3417,12 @@ and run_stat_label s c lab t = and run_stat_with s c e1 t2 = let%run (s1, v1) = (run_expr_get_value s c e1) in let%object (s2, l) = (to_object s1 v1) in - let_binding c.execution_ctx_lexical_env (fun lex -> - let_binding (lexical_env_alloc_object s2 lex l provide_this_true) - (fun p -> + let lex = (c.execution_ctx_lexical_env) in + let + p = (lexical_env_alloc_object s2 lex l provide_this_true) in let (lex_2, s3) = p in - let_binding (execution_ctx_with_lex c lex_2) (fun c_2 -> - run_stat s3 c_2 t2))) + let c_2 = (execution_ctx_with_lex c lex_2) in + run_stat s3 c_2 t2 (** val run_stat_if : state -> execution_ctx -> expr -> stat -> stat option -> @@ -3431,13 +3430,13 @@ and run_stat_with s c e1 t2 = and run_stat_if s c e1 t2 to0 = let%run (s1, v1) = (run_expr_get_value s c e1) in - let_binding (convert_value_to_boolean v1) (fun b -> + let b = (convert_value_to_boolean v1) in if b then run_stat s1 c t2 else (match to0 with | Some t3 -> run_stat s1 c t3 | None -> - result_out (Coq_out_ter (s1, (res_normal Coq_resvalue_empty))))) + result_out (Coq_out_ter (s1, (res_normal Coq_resvalue_empty)))) (** val run_stat_while : state -> execution_ctx -> resvalue -> label_set -> expr -> @@ -3445,16 +3444,16 @@ and run_stat_if s c e1 t2 to0 = and run_stat_while s c rv labs e1 t2 = let%run (s1, v1) = (run_expr_get_value s c e1) in - let_binding (convert_value_to_boolean v1) (fun b -> + let b = (convert_value_to_boolean v1) in if b then let%ter (s2, r) = (run_stat s1 c t2) in - let_binding - (if not_decidable + let + rv_2 = (if not_decidable (resvalue_comparable r.res_value Coq_resvalue_empty) then r.res_value - else rv) (fun rv_2 -> - let_binding (fun x -> - run_stat_while s2 c rv_2 labs e1 t2) (fun loop -> + else rv) in + let loop = (fun x -> + run_stat_while s2 c rv_2 labs e1 t2) in if or_decidable (not_decidable (restype_comparable r.res_type Coq_restype_continue)) @@ -3468,8 +3467,8 @@ and run_stat_while s c rv labs e1 t2 = Coq_restype_normal) then res_ter s2 r else loop () - else loop ())) - else res_ter s1 (res_normal rv)) + else loop () + else res_ter s1 (res_normal rv) (** val run_stat_switch_end : state -> execution_ctx -> resvalue -> switchclause list -> @@ -3491,11 +3490,11 @@ and run_stat_switch_no_default s c vi rv _foo_ = match _foo_ with | y :: scs_2 -> match y with Coq_switchclause_intro (e, ts) -> let%run (s1, v1) = (run_expr_get_value s c e) in - let_binding (strict_equality_test v1 vi) (fun b -> + let b = (strict_equality_test v1 vi) in if b then let%success (s2, rv2)= (run_block s1 c (rev ts)) in run_stat_switch_end s2 c rv2 scs_2 - else run_stat_switch_no_default s1 c vi rv scs_2) + else run_stat_switch_no_default s1 c vi rv scs_2 (** val run_stat_switch_with_default_default : state -> execution_ctx -> stat list -> switchclause list -> @@ -3514,11 +3513,11 @@ and run_stat_switch_with_default_B s c vi rv ts0 scs = match scs with | y :: scs_2 -> match y with Coq_switchclause_intro (e, ts) -> let%run (s1, v1) = (run_expr_get_value s c e) in - let_binding (strict_equality_test v1 vi) (fun b -> + let b = (strict_equality_test v1 vi) in if b then let%success (s2, rv2)= (run_block s1 c (rev ts)) in run_stat_switch_end s2 c rv2 scs_2 - else run_stat_switch_with_default_B s1 c vi rv ts0 scs_2) + else run_stat_switch_with_default_B s1 c vi rv ts0 scs_2 (** val run_stat_switch_with_default_A : state -> execution_ctx -> bool -> value -> resvalue -> @@ -3532,18 +3531,18 @@ and run_stat_switch_with_default_A s c found vi rv scs1 ts0 scs2 = else run_stat_switch_with_default_B s c vi rv ts0 scs2 | y :: scs_2 -> match y with Coq_switchclause_intro (e, ts) -> - let_binding (fun s0 -> + let + follow = (fun s0 -> ifx_success_state rv (run_block s0 c (rev ts)) (fun s1 rv0 -> - run_stat_switch_with_default_A s1 c true vi rv0 scs_2 ts0 scs2)) - (fun follow -> + run_stat_switch_with_default_A s1 c true vi rv0 scs_2 ts0 scs2)) in if found then follow s else let%run (s1, v1) = (run_expr_get_value s c e) in - let_binding (strict_equality_test v1 vi) (fun b -> + let b = (strict_equality_test v1 vi) in if b then follow s1 else run_stat_switch_with_default_A s1 c false vi rv - scs_2 ts0 scs2)) + scs_2 ts0 scs2 (** val run_stat_switch : state -> execution_ctx -> label_set -> expr -> switchbody -> @@ -3551,13 +3550,13 @@ and run_stat_switch_with_default_A s c found vi rv scs1 ts0 scs2 = and run_stat_switch s c labs e sb = let%run (s1, vi) = run_expr_get_value s c e in - let_binding (fun w -> + let follow = (fun w -> let%success (s0, r) = let%break (s2, r) = w in if res_label_in r labs then result_out (Coq_out_ter (s2, (res_normal r.res_value))) else result_out (Coq_out_ter (s2, r)) in - res_ter s0 (res_normal r)) (fun follow -> + res_ter s0 (res_normal r)) in match sb with | Coq_switchbody_nodefault scs -> follow @@ -3565,7 +3564,7 @@ and run_stat_switch s c labs e sb = | Coq_switchbody_withdefault (scs1, ts, scs2) -> follow (run_stat_switch_with_default_A s1 c false vi - Coq_resvalue_empty scs1 ts scs2)) + Coq_resvalue_empty scs1 ts scs2) (** val run_stat_do_while : state -> execution_ctx -> resvalue -> label_set -> expr -> @@ -3573,16 +3572,16 @@ and run_stat_switch s c labs e sb = and run_stat_do_while s c rv labs e1 t2 = let%ter (s1, r) = (run_stat s c t2) in - let_binding - (if resvalue_comparable r.res_value Coq_resvalue_empty + let + rv_2 = (if resvalue_comparable r.res_value Coq_resvalue_empty then rv - else r.res_value) (fun rv_2 -> - let_binding (fun x -> + else r.res_value) in + let loop = (fun x -> let%run (s2, v1) = (run_expr_get_value s1 c e1) in - let_binding (convert_value_to_boolean v1) (fun b -> + let b = (convert_value_to_boolean v1) in if b then run_stat_do_while s2 c rv_2 labs e1 t2 - else res_ter s2 (res_normal rv_2))) (fun loop -> + else res_ter s2 (res_normal rv_2)) in if and_decidable (restype_comparable r.res_type Coq_restype_continue) (bool_decidable (res_label_in r labs)) then loop () @@ -3593,24 +3592,24 @@ and run_stat_do_while s c rv labs e1 t2 = else if not_decidable (restype_comparable r.res_type Coq_restype_normal) then res_ter s1 r - else loop ())) + else loop () (** val run_stat_try : state -> execution_ctx -> stat -> (prop_name * stat) option -> stat option -> result **) and run_stat_try s c t1 t2o t3o = - let_binding (fun s1 r -> + let finallycont = (fun s1 r -> match t3o with | Some t3 -> let%success (s2, rv_2) = (run_stat s1 c t3) in res_ter s2 r - | None -> res_ter s1 r) (fun finallycont -> + | None -> res_ter s1 r) in ifx_any_or_throw (run_stat s c t1) finallycont (fun s1 v -> match t2o with | Some y -> let (x, t2) = y in - let_binding c.execution_ctx_lexical_env (fun lex -> - let_binding (lexical_env_alloc_decl s1 lex) (fun p -> + let lex = (c.execution_ctx_lexical_env) in + let p = (lexical_env_alloc_decl s1 lex) in let (lex_2, s_2) = p in (match lex_2 with | [] -> @@ -3622,8 +3621,8 @@ and run_stat_try s c t1 t2o t3o = s2= (env_record_create_set_mutable_binding s_2 c l x None v throw_irrelevant) in let c_2 = execution_ctx_with_lex c lex_2 in - let%ter (s3, r) = (run_stat s2 c_2 t2) in finallycont s3 r))) - | None -> finallycont s1 (res_throw (Coq_resvalue_value v)))) + let%ter (s3, r) = (run_stat s2 c_2 t2) in finallycont s3 r) + | None -> finallycont s1 (res_throw (Coq_resvalue_value v))) (** val run_stat_throw : state -> execution_ctx -> expr -> result **) @@ -3648,15 +3647,15 @@ and run_stat_return s c _foo_ = match _foo_ with option -> expr option -> stat -> result **) and run_stat_for_loop s c labs rv eo2 eo3 t = - let_binding (fun s0 -> + let follows = (fun s0 -> let%ter (s1, r) = (run_stat s0 c t) in - let_binding - (if not_decidable + let + rv_2 = (if not_decidable (resvalue_comparable r.res_value Coq_resvalue_empty) then r.res_value - else rv) (fun rv_2 -> - let_binding (fun s2 -> - run_stat_for_loop s2 c labs rv_2 eo2 eo3 t) (fun loop -> + else rv) in + let loop = (fun s2 -> + run_stat_for_loop s2 c labs rv_2 eo2 eo3 t) in if and_decidable (restype_comparable r.res_type Coq_restype_break) (bool_decidable (res_label_in r labs)) then res_ter s1 (res_normal rv_2) @@ -3670,13 +3669,13 @@ and run_stat_for_loop s c labs rv eo2 eo3 t = let%run (s2, v3) = (run_expr_get_value s1 c e3) in loop s2 | None -> loop s1) - else res_ter s1 r))) (fun follows -> + else res_ter s1 r) in match eo2 with | Some e2 -> let%run (s0, v2) = (run_expr_get_value s c e2) in - let_binding (convert_value_to_boolean v2) (fun b -> - if b then follows s0 else res_ter s0 (res_normal rv)) - | None -> follows s) + let b = (convert_value_to_boolean v2) in + if b then follows s0 else res_ter s0 (res_normal rv) + | None -> follows s (** val run_stat_for : state -> execution_ctx -> label_set -> expr option -> expr @@ -3787,7 +3786,7 @@ and run_prog s c _term_ = match _term_ with -> result **) and push s c l args ilen = - let_binding (of_int ilen) (fun vlen -> + let vlen = (of_int ilen) in match args with | [] -> let%not_throw @@ -3799,7 +3798,7 @@ and push s c l args ilen = let%string (s0, slen) = (to_string s c (Coq_value_prim (Coq_prim_number vlen))) in let%not_throw (s1, x) = (object_put s0 c l slen v throw_true) in - push s1 c l vs (ilen +. 1.)) + push s1 c l vs (ilen +. 1.) (** val run_object_is_sealed : state -> execution_ctx -> object_loc -> prop_name list -> @@ -3901,10 +3900,10 @@ and run_object_is_frozen s c l _foo_ = match _foo_ with res_ter s (res_val (Coq_value_prim (Coq_prim_bool (neg ext)))) | x :: xs_2 -> let%run (s0, d) = (run_object_get_own_prop s c l x) in - let_binding (fun a -> + let check_configurable = (fun a -> if attributes_configurable a then res_ter s0 (res_val (Coq_value_prim (Coq_prim_bool false))) - else run_object_is_frozen s0 c l xs_2) (fun check_configurable -> + else run_object_is_frozen s0 c l xs_2) in match d with | Coq_full_descriptor_undef -> (fun s m -> Debug.impossible_with_heap_because __LOC__ s m; Coq_result_impossible) @@ -3917,7 +3916,7 @@ and run_object_is_frozen s c l _foo_ = match _foo_ with then res_ter s0 (res_val (Coq_value_prim (Coq_prim_bool false))) else check_configurable (Coq_attributes_data_of ad) | Coq_attributes_accessor_of aa -> - check_configurable (Coq_attributes_accessor_of aa))) + check_configurable (Coq_attributes_accessor_of aa)) (** val run_get_args_for_apply : state -> execution_ctx -> object_loc -> float -> float -> @@ -3929,10 +3928,10 @@ and run_get_args_for_apply s c l index n = (s0, sindex) = (to_string s c (Coq_value_prim (Coq_prim_number (of_int index)))) in let%value (s1, v) = (run_object_get s0 c l sindex) in - let_binding - (run_get_args_for_apply s1 c l (index +. 1.) n) - (fun tail_args -> - let%run (s2, tail) = (tail_args) in res_spec s2 (v :: tail)) + let + + tail_args = (run_get_args_for_apply s1 c l (index +. 1.) n) in + let%run (s2, tail) = (tail_args) in res_spec s2 (v :: tail) else res_spec s [] (** val valueToStringForJoin : @@ -3964,12 +3963,12 @@ and valueToStringForJoin s c l k = and run_array_join_elements s c l k length0 sep sR = if k < length0 - then let_binding (strappend sR sep) (fun ss -> - let_binding (valueToStringForJoin s c l k) (fun sE -> + then let ss = (strappend sR sep) in + let sE = (valueToStringForJoin s c l k) in let%run (s0, element) = (sE) in - let_binding (strappend ss element) (fun sR0 -> + let sR0 = (strappend ss element) in run_array_join_elements s0 c l (k +. 1.) - length0 sep sR0))) + length0 sep sR0 else res_ter s (res_val (Coq_value_prim (Coq_prim_string sR))) (** val run_call_prealloc : @@ -3979,22 +3978,22 @@ and run_array_join_elements s c l k length0 sep sR = and run_call_prealloc s c b vthis args = match b with | Coq_prealloc_global_is_finite -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in let%number (s0, n) = (to_number s c v) in res_ter s0 (res_val (Coq_value_prim (Coq_prim_bool (neg (or_decidable (number_comparable n JsNumber.nan) (or_decidable (number_comparable n JsNumber.infinity) - (number_comparable n JsNumber.neg_infinity)))))))) + (number_comparable n JsNumber.neg_infinity))))))) | Coq_prealloc_global_is_nan -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in let%number (s0, n) = (to_number s c v) in res_ter s0 (res_val (Coq_value_prim (Coq_prim_bool - (number_comparable n JsNumber.nan))))) + (number_comparable n JsNumber.nan)))) | Coq_prealloc_object -> - let_binding (get_arg 0 args) (fun value0 -> + let value0 = (get_arg 0 args) in begin match value0 with | Coq_value_prim p -> (match p with @@ -4003,79 +4002,89 @@ and run_call_prealloc s c b vthis args = | Coq_prim_bool b0 -> to_object s value0 | Coq_prim_number n -> to_object s value0 | Coq_prim_string s0 -> to_object s value0) - | Coq_value_object o -> to_object s value0) + | Coq_value_object o -> to_object s value0 + end | Coq_prealloc_object_get_proto_of -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in begin match v with | Coq_value_prim p -> run_error s Coq_native_error_type | Coq_value_object l -> let%some proto = (run_object_method object_proto_ s l) in - res_ter s (res_val proto)) + res_ter s (res_val proto) + end | Coq_prealloc_object_get_own_prop_descriptor -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in begin match v with | Coq_value_prim p -> run_error s Coq_native_error_type | Coq_value_object l -> let%string (s1, x) = (to_string s c (get_arg 1 args)) in let%run (s2, d) = (run_object_get_own_prop s1 c l x) in - from_prop_descriptor s2 c d) + from_prop_descriptor s2 c d + end | Coq_prealloc_object_define_prop -> - let_binding (get_arg 0 args) (fun o -> - let_binding (get_arg 1 args) (fun p -> - let_binding (get_arg 2 args) - (fun attr -> + let o = (get_arg 0 args) in + let p = (get_arg 1 args) in + let + attr = (get_arg 2 args) in begin match o with | Coq_value_prim p0 -> run_error s Coq_native_error_type | Coq_value_object l -> let%string (s1, name) = (to_string s c p) in let%run (s2, desc) = (run_to_descriptor s1 c attr) in let%bool - (s3, x) = (object_define_own_prop s2 c l name desc true) in res_ter s3 (res_val (Coq_value_object l))))) + (s3, x) = (object_define_own_prop s2 c l name desc true) in res_ter s3 (res_val (Coq_value_object l)) + end | Coq_prealloc_object_seal -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in begin match v with | Coq_value_prim p -> run_error s Coq_native_error_type | Coq_value_object l -> let%some - _x_ = (object_properties_keys_as_list_pickable_option s l) in run_object_seal s c l _x_) + _x_ = (object_properties_keys_as_list_pickable_option s l) in run_object_seal s c l _x_ + end | Coq_prealloc_object_freeze -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in begin match v with | Coq_value_prim p -> run_error s Coq_native_error_type | Coq_value_object l -> let%some - _x_ = (object_properties_keys_as_list_pickable_option s l) in run_object_freeze s c l _x_) + _x_ = (object_properties_keys_as_list_pickable_option s l) in run_object_freeze s c l _x_ + end | Coq_prealloc_object_prevent_extensions -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in begin match v with | Coq_value_prim p -> run_error s Coq_native_error_type | Coq_value_object l -> let%some o = (object_binds_pickable_option s l) in let o1 = object_with_extension o false in let s_2 = object_write s l o1 in - res_ter s_2 (res_val (Coq_value_object l))) + res_ter s_2 (res_val (Coq_value_object l)) + end | Coq_prealloc_object_is_sealed -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in begin match v with | Coq_value_prim p -> run_error s Coq_native_error_type | Coq_value_object l -> let%some - _x_ = (object_properties_keys_as_list_pickable_option s l) in run_object_is_sealed s c l _x_) + _x_ = (object_properties_keys_as_list_pickable_option s l) in run_object_is_sealed s c l _x_ + end | Coq_prealloc_object_is_frozen -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in begin match v with | Coq_value_prim p -> run_error s Coq_native_error_type | Coq_value_object l -> let%some - _x_ = (object_properties_keys_as_list_pickable_option s l) in run_object_is_frozen s c l _x_) + _x_ = (object_properties_keys_as_list_pickable_option s l) in run_object_is_frozen s c l _x_ + end | Coq_prealloc_object_is_extensible -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in begin match v with | Coq_value_prim p -> run_error s Coq_native_error_type | Coq_value_object l -> let%some r = (run_object_method object_extensible_ s l) in - res_ter s (res_val (Coq_value_prim (Coq_prim_bool r)))) + res_ter s (res_val (Coq_value_prim (Coq_prim_bool r))) + end | Coq_prealloc_object_proto_to_string -> (match vthis with | Coq_value_prim p -> @@ -4122,36 +4131,39 @@ and run_call_prealloc s c b vthis args = (strappend s0 ("]"))))))) | Coq_prealloc_object_proto_value_of -> to_object s vthis | Coq_prealloc_object_proto_has_own_prop -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in let%string (s1, x) = (to_string s c v) in let%object (s2, l) = (to_object s1 vthis) in - let%run (s3, d) = (run_object_get_own_prop s2 c l x) in + let%run (s3, d) = (run_object_get_own_prop s2 c l x) in begin match d with | Coq_full_descriptor_undef -> res_ter s3 (res_val (Coq_value_prim (Coq_prim_bool false))) | Coq_full_descriptor_some a -> - res_ter s3 (res_val (Coq_value_prim (Coq_prim_bool true)))) + res_ter s3 (res_val (Coq_value_prim (Coq_prim_bool true))) + end | Coq_prealloc_object_proto_is_prototype_of -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in begin match v with | Coq_value_prim p -> result_out (Coq_out_ter (s, (res_val (Coq_value_prim (Coq_prim_bool false))))) | Coq_value_object l -> let%object (s1, lo) = (to_object s vthis) in - object_proto_is_prototype_of s1 lo l) + object_proto_is_prototype_of s1 lo l + end | Coq_prealloc_object_proto_prop_is_enumerable -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in let%string (s1, x) = (to_string s c v) in let%object (s2, l) = (to_object s1 vthis) in - let%run (s3, d) = (run_object_get_own_prop s2 c l x) in + let%run (s3, d) = (run_object_get_own_prop s2 c l x) in begin match d with | Coq_full_descriptor_undef -> res_ter s3 (res_val (Coq_value_prim (Coq_prim_bool false))) | Coq_full_descriptor_some a -> res_ter s3 (res_val (Coq_value_prim (Coq_prim_bool - (attributes_enumerable a))))) + (attributes_enumerable a)))) + end | Coq_prealloc_function_proto -> result_out (Coq_out_ter (s, (res_val (Coq_value_prim Coq_prim_undef)))) | Coq_prealloc_function_proto_to_string -> @@ -4160,8 +4172,8 @@ and run_call_prealloc s c b vthis args = ("Function.prototype.toString() is implementation dependent.") else run_error s Coq_native_error_type | Coq_prealloc_function_proto_apply -> - let_binding (get_arg 0 args) (fun thisArg -> - let_binding (get_arg 1 args) (fun argArray -> + let thisArg = (get_arg 0 args) in + let argArray = (get_arg 1 args) in if is_callable_dec s vthis then (match vthis with | Coq_value_prim p -> @@ -4187,7 +4199,7 @@ and run_call_prealloc s c b vthis args = let%run (s2, arguments_) = (run_get_args_for_apply s1 c array 0. ilen) in run_call s2 c thisobj thisArg arguments_)) - else run_error s Coq_native_error_type)) + else run_error s Coq_native_error_type | Coq_prealloc_function_proto_call -> if is_callable_dec s vthis then (match vthis with @@ -4208,33 +4220,33 @@ and run_call_prealloc s c b vthis args = ("Value is callable, but isn\'t an object.") | Coq_value_object thisobj -> let (vthisArg, a) = get_arg_first_and_rest args in - let_binding - (object_new (Coq_value_object (Coq_object_loc_prealloc + let + o1 = (object_new (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_object_proto)) - ("Object")) (fun o1 -> - let_binding (object_with_get o1 Coq_builtin_get_function) - (fun o2 -> - let_binding - (object_with_details o2 None None None (Some thisobj) (Some - vthisArg) (Some a) None) (fun o3 -> - let_binding - (object_set_class o3 - ("Function")) - (fun o4 -> - let_binding - (object_set_proto o4 (Coq_value_object + ("Object")) in + let + o2 = (object_with_get o1 Coq_builtin_get_function) in + let + o3 = (object_with_details o2 None None None (Some thisobj) (Some + vthisArg) (Some a) None) in + let + + o4 = (object_set_class o3 + ("Function")) in + let + o5 = (object_set_proto o4 (Coq_value_object (Coq_object_loc_prealloc - Coq_prealloc_function_proto))) (fun o5 -> - let_binding - (object_with_invokation o5 (Some + Coq_prealloc_function_proto))) in + let + o6 = (object_with_invokation o5 (Some Coq_construct_after_bind) (Some Coq_call_after_bind) (Some - Coq_builtin_has_instance_after_bind)) (fun o6 -> - let_binding (object_set_extensible o6 true) - (fun o7 -> + Coq_builtin_has_instance_after_bind)) in + let + o7 = (object_set_extensible o6 true) in let (l, s_2) = object_alloc s o7 in - let_binding - (let%some + let + vlength = (let%some class0 = (run_object_method object_class_ s_2 thisobj) in if string_comparable class0 ("Function") @@ -4250,31 +4262,31 @@ and run_call_prealloc s c b vthis args = else res_spec s11 (ilen -. (number_of_int (LibList.length a))) - else res_spec s_2 0.) (fun vlength -> + else res_spec s_2 0.) in let%run (s10, length0) = (vlength) in - let_binding { attributes_data_value = + let + a0 = ({ attributes_data_value = (Coq_value_prim (Coq_prim_number (of_int length0))); attributes_data_writable = false; attributes_data_enumerable = false; - attributes_data_configurable = false } - (fun a0 -> + attributes_data_configurable = false }) in let%some s11 = (object_heap_map_properties_pickable_option s10 l (fun p -> Heap.write p ("length") (Coq_attributes_data_of a0))) in - let_binding (Coq_value_object + let + vthrower = (Coq_value_object (Coq_object_loc_prealloc - Coq_prealloc_throw_type_error)) - (fun vthrower -> - let_binding { attributes_accessor_get = + Coq_prealloc_throw_type_error)) in + let a1 = ({ attributes_accessor_get = vthrower; attributes_accessor_set = vthrower; attributes_accessor_enumerable = false; attributes_accessor_configurable = - false } (fun a1 -> + false }) in let%bool (s12, x) = (object_define_own_prop s11 c l ("caller") @@ -4289,13 +4301,13 @@ and run_call_prealloc s c b vthis args = (Coq_attributes_accessor_of a1)) false) in res_ter s13 - (res_val (Coq_value_object l)))))))))))))) + (res_val (Coq_value_object l))) else run_error s Coq_native_error_type | Coq_prealloc_bool -> result_out - (let_binding (get_arg 0 args) (fun v -> Coq_out_ter (s, + (let v = (get_arg 0 args) in Coq_out_ter (s, (res_val (Coq_value_prim (Coq_prim_bool - (convert_value_to_boolean v))))))) + (convert_value_to_boolean v)))))) | Coq_prealloc_bool_proto_to_string -> (match vthis with | Coq_value_prim p -> @@ -4407,7 +4419,7 @@ and run_call_prealloc s c b vthis args = | Coq_prealloc_array -> run_construct_prealloc s c Coq_prealloc_array args | Coq_prealloc_array_is_array -> - let_binding (get_arg 0 args) (fun arg -> + let arg = (get_arg 0 args) in begin match arg with | Coq_value_prim p -> res_ter s (res_val (Coq_value_prim (Coq_prim_bool false))) @@ -4415,7 +4427,8 @@ and run_call_prealloc s c b vthis args = let%some class0= (run_object_method object_class_ s arg0) in if string_comparable class0 ("Array") then res_ter s (res_val (Coq_value_prim (Coq_prim_bool true))) - else res_ter s (res_val (Coq_value_prim (Coq_prim_bool false)))) + else res_ter s (res_val (Coq_value_prim (Coq_prim_bool false))) + end | Coq_prealloc_array_proto_to_string -> let%object (s0, array) = (to_object s vthis) in let%value @@ -4432,25 +4445,25 @@ and run_call_prealloc s c b vthis args = Coq_prealloc_object_proto_to_string (Coq_value_object array) [] | Coq_prealloc_array_proto_join -> - let_binding (get_arg 0 args) (fun vsep -> + let vsep = (get_arg 0 args) in let%object (s0, l) = (to_object s vthis) in let%value (s1, vlen) = (run_object_get s0 c l ("length")) in let%run (s2, ilen) = (to_uint32 s1 c vlen) in - let_binding - (if not_decidable + let + rsep = (if not_decidable (value_comparable vsep (Coq_value_prim Coq_prim_undef)) then vsep - else Coq_value_prim (Coq_prim_string (","))) (fun rsep -> + else Coq_value_prim (Coq_prim_string (","))) in let%string (s3, sep) = (to_string s2 c rsep) in if ilen = 0.0 then res_ter s3 (res_val (Coq_value_prim (Coq_prim_string ""))) - else let_binding (valueToStringForJoin s3 c l 0.) - (fun sR -> + else let + sR = (valueToStringForJoin s3 c l 0.) in let%run (s4, sR0) = (sR) in - run_array_join_elements s4 c l 1. ilen sep sR0))) + run_array_join_elements s4 c l 1. ilen sep sR0 | Coq_prealloc_array_proto_pop -> let%object (s0, l) = (to_object s vthis) in let%value @@ -4486,9 +4499,9 @@ and run_call_prealloc s c b vthis args = | Coq_prealloc_string -> if list_eq_nil_decidable args then res_ter s (res_val (Coq_value_prim (Coq_prim_string ""))) - else let_binding (get_arg 0 args) (fun value0 -> + else let value0 = (get_arg 0 args) in let%string (s0, s1) = (to_string s c value0) in - res_ter s0 (res_val (Coq_value_prim (Coq_prim_string s1)))) + res_ter s0 (res_val (Coq_value_prim (Coq_prim_string s1))) | Coq_prealloc_string_proto_to_string -> (match vthis with | Coq_value_prim p -> @@ -4512,13 +4525,13 @@ and run_call_prealloc s c b vthis args = then run_object_prim_value s l else run_error s Coq_native_error_type) | Coq_prealloc_error -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in build_error s (Coq_value_object (Coq_object_loc_prealloc - Coq_prealloc_error_proto)) v) + Coq_prealloc_error_proto)) v | Coq_prealloc_native_error ne -> - let_binding (get_arg 0 args) (fun v -> + let v = (get_arg 0 args) in build_error s (Coq_value_object (Coq_object_loc_prealloc - (Coq_prealloc_native_error_proto ne))) v) + (Coq_prealloc_native_error_proto ne))) v | Coq_prealloc_throw_type_error -> run_error s Coq_native_error_type | _ -> (fun s -> Debug.not_yet_implemented_because __LOC__ s; Coq_result_impossible) @@ -4543,8 +4556,8 @@ and run_call s c l vthis args = let%some boundThis = obnd in let%some otrg = run_object_method object_target_function_ s l in let%some target = otrg in - let_binding (LibList.append boundArgs args) - (fun arguments_ -> run_call s c target boundThis arguments_) + let + arguments_ = (LibList.append boundArgs args) in run_call s c target boundThis arguments_ | Coq_call_prealloc b -> run_call_prealloc s c b vthis args (** val run_javascript : prog -> result **) diff --git a/generator/tests/jsref/LibTactics.ml b/generator/tests/jsref/LibTactics.ml deleted file mode 100644 index 9baa5d56038bc563d916cbef4c41e8578bd2f0c2..0000000000000000000000000000000000000000 --- a/generator/tests/jsref/LibTactics.ml +++ /dev/null @@ -1,5 +0,0 @@ -(** val let_binding : 'a1 -> ('a1 -> 'a2) -> 'a2 **) - -let let_binding v k = - k v -