From 2e19e572d950a91b6862bf02faa6bb2a5375dd4f Mon Sep 17 00:00:00 2001 From: charguer <arthur@chargueraud.org> Date: Thu, 3 Mar 2016 18:39:30 +0100 Subject: [PATCH] jsnumber_cleanup --- generator/TODO | 26 ++++---- generator/lineof.ml | 2 +- generator/stdlib_ml/stdlib.mli | 10 +++ generator/tests/jsref/JsCommon.ml | 6 +- generator/tests/jsref/JsCommonAux.ml | 12 ++-- generator/tests/jsref/JsInit.ml | 24 ++++---- generator/tests/jsref/JsInterpreter.ml | 52 ++++++++-------- generator/tests/jsref/JsInterpreterMonads.ml | 2 +- generator/tests/jsref/JsNumber.ml | 24 +++----- generator/tests/jsref/JsPreliminary.ml | 64 ++++++++++---------- generator/tests/jsref/JsSyntax.ml | 8 +-- generator/tests/jsref/JsSyntaxAux.ml | 2 +- 12 files changed, 117 insertions(+), 115 deletions(-) diff --git a/generator/TODO b/generator/TODO index 8aae88f..f76fe9c 100644 --- a/generator/TODO +++ b/generator/TODO @@ -16,30 +16,32 @@ ARTHUR - remove "open JsNumber" to more easily trace occurences -- generate "type: " in smart contsructors +- generate "type: " in smart constructors [optional until display is needed] - generate the escaped source code - control which file should feature logging -- lineof_temp["5"] => 5 should be int -[arthur will do a first pass] -- clean up stdlib.ml + +========================================================= +NEXT + +[arthur did a first pass on JsNumber.ml to make explicit paths + and on stdlib.ml] +- continue cleaning up stdlib.ml - implement stdlib.js - remove unused functions - sort out remaining ones - need to have one function for each one of stdlib.ml - - number related functions are implemented with JS counterpart directly - JsNumber.ml should be replaced by JsNumber.mli (we might want to keep - JsNumber.ml for future use, though), and we implement by hand JsNumber.js, - which would then be included directly in assembly.js. - - Int32 and Int64 implem [alan] directly in JS + - replace JsNumber by a corresponding JsNumber.mli + (keep JsNumber saved somewhere else for future use) + - implement JsNumber.js by hand to match signature of JsNumber.mli, + by implementing number related functions using JS counterpart directly + (ask Alan for Int32 and Int64 implementation tricks) + - include JsNumber.js in assembly.js by modifying ASSEMBLY_JS in Makefile -========================================================= -NEXT - [thomas, biggest piece, ask if anything problematic] - fill in the "esprima-to-ast.js" file, following the template (throw an exception, caught and displayed as an alert message, diff --git a/generator/lineof.ml b/generator/lineof.ml index ebfe32c..3a9b947 100644 --- a/generator/lineof.ml +++ b/generator/lineof.ml @@ -155,7 +155,7 @@ let generate_lineof_function put = let pos_stop = try Hashtbl.find tokens_stop key with Not_found -> Printf.printf "Warning (error): unclosed token %d in file %s; using pos_start instead.\n" key filename; pos_start in - put (Printf.sprintf " lineof_temp[\"%d\"] = [%d,%d,%d,%d];" + put (Printf.sprintf " lineof_temp[%d] = [%d,%d,%d,%d];" key pos_start.pos_line pos_start.pos_col pos_stop.pos_line pos_stop.pos_col); ); diff --git a/generator/stdlib_ml/stdlib.mli b/generator/stdlib_ml/stdlib.mli index f34242f..6e28740 100644 --- a/generator/stdlib_ml/stdlib.mli +++ b/generator/stdlib_ml/stdlib.mli @@ -73,9 +73,19 @@ val float_eq : float -> float -> bool val float_lt : float -> float -> bool val float_le : float -> float -> bool val float_compare : float -> float -> int +(** val number_comparable : number coq_Comparable **) +val number_comparable : float -> float -> bool (* = (fun n1 n2 -> int_eq 0 (float_compare n1 n2)) *) + +(** val of_int : float -> number **) +val of_int : float -> float (* = fun x -> x *) + +val number_of_int : int -> float (* = fun x -> float_of_int x *) + val string_concat : string -> string -> string +val nat_eq : int -> int -> bool (* nat_eq x y = int_eq x y *) + val pi : float val e : float diff --git a/generator/tests/jsref/JsCommon.ml b/generator/tests/jsref/JsCommon.ml index de739b0..daf1621 100644 --- a/generator/tests/jsref/JsCommon.ml +++ b/generator/tests/jsref/JsCommon.ml @@ -1,6 +1,6 @@ open Datatypes -open JsNumber +(*open JsNumber*) open JsSyntax open JsSyntaxAux open LibList @@ -520,12 +520,12 @@ let throw_irrelevant = (** val add_one : number -> number **) let add_one n = - add n one + add n JsNumber.one (** val sub_one : number -> number **) let sub_one n = - sub n one + sub n JsNumber.one (** val is_syntactic_eval : expr -> bool **) diff --git a/generator/tests/jsref/JsCommonAux.ml b/generator/tests/jsref/JsCommonAux.ml index c8a5ef1..7214ae8 100644 --- a/generator/tests/jsref/JsCommonAux.ml +++ b/generator/tests/jsref/JsCommonAux.ml @@ -1,6 +1,6 @@ open Datatypes open JsCommon -open JsNumber +(*open JsNumber*) open JsSyntax open JsSyntaxAux open LibList @@ -43,7 +43,7 @@ let same_value_dec v1 v2 = let h2 = and_decidable (value_comparable v1 (Coq_value_prim (Coq_prim_number - nan))) + JsNumber.nan))) (value_comparable v2 (Coq_value_prim (Coq_prim_number nan))) in @@ -53,9 +53,9 @@ let same_value_dec v1 v2 = let h3 = and_decidable (value_comparable v1 (Coq_value_prim - (Coq_prim_number zero))) + (Coq_prim_number JsNumber.zero))) (value_comparable v2 (Coq_value_prim - (Coq_prim_number neg_zero))) + (Coq_prim_number JsNumber.neg_zero))) in (if h3 then (fun _ -> false_decidable) @@ -63,9 +63,9 @@ let same_value_dec v1 v2 = let h4 = and_decidable (value_comparable v1 (Coq_value_prim - (Coq_prim_number neg_zero))) + (Coq_prim_number JsNumber.neg_zero))) (value_comparable v2 (Coq_value_prim - (Coq_prim_number zero))) + (Coq_prim_number JsNumber.zero))) in (if h4 then (fun _ -> false_decidable) diff --git a/generator/tests/jsref/JsInit.ml b/generator/tests/jsref/JsInit.ml index 5b5d8c3..a399d9f 100644 --- a/generator/tests/jsref/JsInit.ml +++ b/generator/tests/jsref/JsInit.ml @@ -1,5 +1,5 @@ open JsCommon -open JsNumber +(*open JsNumber*) open JsPreliminary open JsSyntax open JsSyntaxAux @@ -79,12 +79,12 @@ let object_prealloc_global_class = "GlobalClass" let object_prealloc_global_properties = let p = write_constant Heap.empty ("NaN") (Coq_value_prim - (Coq_prim_number nan)) + (Coq_prim_number JsNumber.nan)) in let p0 = write_constant p ("Infinity") - (Coq_value_prim (Coq_prim_number infinity)) + (Coq_value_prim (Coq_prim_number JsNumber.infinity)) in let p1 = write_constant p0 @@ -601,27 +601,27 @@ let object_prealloc_number = in let p0 = write_constant p ("NaN") (Coq_value_prim (Coq_prim_number - nan)) + JsNumber.nan)) in let p1 = write_constant p0 ("NEGATIVE_INFINITY") - (Coq_value_prim (Coq_prim_number neg_infinity)) + (Coq_value_prim (Coq_prim_number JsNumber.neg_infinity)) in let p2 = write_constant p1 ("POSITIVE_INFINITY") - (Coq_value_prim (Coq_prim_number infinity)) + (Coq_value_prim (Coq_prim_number JsNumber.infinity)) in let p3 = write_constant p2 ("MAX_VALUE") - (Coq_value_prim (Coq_prim_number max_value)) + (Coq_value_prim (Coq_prim_number JsNumber.max_value)) in let p4 = write_constant p3 ("MIN_VALUE") - (Coq_value_prim (Coq_prim_number min_value)) + (Coq_value_prim (Coq_prim_number JsNumber.min_value)) in object_create_prealloc_constructor Coq_prealloc_number (Coq_value_prim (Coq_prim_number 1.0)) p4 @@ -649,7 +649,7 @@ let object_prealloc_number_proto = Coq_prealloc_object_proto)) ("Number") p1 in - object_with_primitive_value o (Coq_value_prim (Coq_prim_number zero)) + object_with_primitive_value o (Coq_value_prim (Coq_prim_number JsNumber.zero)) (** val number_proto_to_string_function_object : coq_object **) @@ -847,12 +847,12 @@ let bool_proto_value_of_function_object = let object_prealloc_math = let p = write_constant Heap.empty ("PI") (Coq_value_prim - (Coq_prim_number pi)) + (Coq_prim_number JsNumber.pi)) in - let p0 = write_constant p ("E") (Coq_value_prim (Coq_prim_number e)) in + let p0 = write_constant p ("E") (Coq_value_prim (Coq_prim_number JsNumber.e)) in let p1 = write_constant p0 ("LN2") (Coq_value_prim - (Coq_prim_number ln2)) + (Coq_prim_number JsNumber.ln2)) in object_create_builtin (Coq_value_object (Coq_object_loc_prealloc Coq_prealloc_object_proto)) ("Math") p1 diff --git a/generator/tests/jsref/JsInterpreter.ml b/generator/tests/jsref/JsInterpreter.ml index 6b81d97..672ee7d 100644 --- a/generator/tests/jsref/JsInterpreter.ml +++ b/generator/tests/jsref/JsInterpreter.ml @@ -3,7 +3,7 @@ open JsCommon open JsCommonAux open JsInit open JsInterpreterMonads -open JsNumber +(*open JsNumber*) open JsPreliminary open JsSyntax open JsSyntaxAux @@ -520,13 +520,13 @@ let to_integer runs0 s c v = runs_type -> state -> execution_ctx -> value -> float specres **) let to_int32 runs0 s c v = - if_number (to_number runs0 s c v) (fun s' n -> res_spec s' (to_int32 n)) + if_number (to_number runs0 s c v) (fun s' n -> res_spec s' (JsNumber.to_int32 n)) (** val to_uint32 : runs_type -> state -> execution_ctx -> value -> float specres **) let to_uint32 runs0 s c v = - if_number (to_number runs0 s c v) (fun s' n -> res_spec s' (to_uint32 n)) + if_number (to_number runs0 s c v) (fun s' n -> res_spec s' (JsNumber.to_uint32 n)) (** val to_string : runs_type -> state -> execution_ctx -> value -> result **) @@ -2150,7 +2150,7 @@ let run_construct_prealloc runs0 s c b args = result_out (Coq_out_ter (s1, (res_val (Coq_value_object l))))))) (fun follow -> if list_eq_nil_decidable args - then follow s (Coq_value_prim (Coq_prim_number zero)) + then follow s (Coq_value_prim (Coq_prim_number JsNumber.zero)) else let_binding (get_arg 0 args) (fun v -> if_number (to_number runs0 s c v) (fun x x0 -> follow x (Coq_value_prim (Coq_prim_number x0))))) @@ -3330,9 +3330,9 @@ let get_shift_op _foo_ = match _foo_ with | Coq_binary_op_mod -> None | Coq_binary_op_add -> None | Coq_binary_op_sub -> None -| Coq_binary_op_left_shift -> Some (false, int32_left_shift) -| Coq_binary_op_right_shift -> Some (false, int32_right_shift) -| Coq_binary_op_unsigned_right_shift -> Some (true, uint32_right_shift) +| Coq_binary_op_left_shift -> Some (false, JsNumber.int32_left_shift) +| Coq_binary_op_right_shift -> Some (false, JsNumber.int32_right_shift) +| Coq_binary_op_unsigned_right_shift -> Some (true, JsNumber.uint32_right_shift) | Coq_binary_op_lt -> None | Coq_binary_op_gt -> None | Coq_binary_op_le -> None @@ -3371,9 +3371,9 @@ let get_bitwise_op _foo_ = match _foo_ with | Coq_binary_op_disequal -> None | Coq_binary_op_strict_equal -> None | Coq_binary_op_strict_disequal -> None -| Coq_binary_op_bitwise_and -> Some int32_bitwise_and -| Coq_binary_op_bitwise_or -> Some int32_bitwise_or -| Coq_binary_op_bitwise_xor -> Some int32_bitwise_xor +| Coq_binary_op_bitwise_and -> Some JsNumber.int32_bitwise_and +| Coq_binary_op_bitwise_or -> Some JsNumber.int32_bitwise_or +| Coq_binary_op_bitwise_xor -> Some JsNumber.int32_bitwise_xor | Coq_binary_op_and -> None | Coq_binary_op_or -> None | Coq_binary_op_coma -> None @@ -3508,7 +3508,7 @@ let run_binary_op runs0 s c op v1 v2 = ((if b_unsigned then to_uint32 else to_int32) runs0 s c v1) (fun s1 k1 -> if_spec (to_uint32 runs0 s1 c v2) (fun s2 k2 -> - let k2' = modulo_32 k2 in + let k2' = JsNumber.modulo_32 k2 in res_ter s2 (res_val (Coq_value_prim (Coq_prim_number (of_int (f k1 k2')))))))) @@ -3740,7 +3740,7 @@ let run_unary_op runs0 s c op e = if_spec (to_int32 runs0 s1 c v) (fun s2 k -> res_ter s2 (res_val (Coq_value_prim (Coq_prim_number - (of_int (int32_bitwise_not k)))))) + (of_int (JsNumber.int32_bitwise_not k)))))) | Coq_unary_op_not -> res_ter s1 (res_val (Coq_value_prim (Coq_prim_bool @@ -3826,7 +3826,7 @@ let run_unary_op runs0 s c op e = if_spec (to_int32 runs0 s1 c v) (fun s2 k -> res_ter s2 (res_val (Coq_value_prim (Coq_prim_number - (of_int (int32_bitwise_not k)))))) + (of_int (JsNumber.int32_bitwise_not k)))))) | Coq_unary_op_not -> res_ter s1 (res_val (Coq_value_prim (Coq_prim_bool @@ -3888,7 +3888,7 @@ let run_unary_op runs0 s c op e = if_spec (to_int32 runs0 s1 c v) (fun s2 k -> res_ter s2 (res_val (Coq_value_prim (Coq_prim_number - (of_int (int32_bitwise_not k)))))) + (of_int (JsNumber.int32_bitwise_not k)))))) | Coq_unary_op_not -> res_ter s1 (res_val (Coq_value_prim (Coq_prim_bool @@ -3950,7 +3950,7 @@ let run_unary_op runs0 s c op e = if_spec (to_int32 runs0 s1 c v) (fun s2 k -> res_ter s2 (res_val (Coq_value_prim (Coq_prim_number - (of_int (int32_bitwise_not k)))))) + (of_int (JsNumber.int32_bitwise_not k)))))) | Coq_unary_op_not -> res_ter s1 (res_val (Coq_value_prim (Coq_prim_bool @@ -4012,7 +4012,7 @@ let run_unary_op runs0 s c op e = if_spec (to_int32 runs0 s1 c v) (fun s2 k -> res_ter s2 (res_val (Coq_value_prim (Coq_prim_number - (of_int (int32_bitwise_not k)))))) + (of_int (JsNumber.int32_bitwise_not k)))))) | Coq_unary_op_not -> res_ter s1 (res_val (Coq_value_prim (Coq_prim_bool @@ -4074,7 +4074,7 @@ let run_unary_op runs0 s c op e = if_spec (to_int32 runs0 s1 c v) (fun s2 k -> res_ter s2 (res_val (Coq_value_prim (Coq_prim_number - (of_int (int32_bitwise_not k)))))) + (of_int (JsNumber.int32_bitwise_not k)))))) | Coq_unary_op_not -> res_ter s1 (res_val (Coq_value_prim (Coq_prim_bool @@ -4136,7 +4136,7 @@ let run_unary_op runs0 s c op e = if_spec (to_int32 runs0 s1 c v) (fun s2 k -> res_ter s2 (res_val (Coq_value_prim (Coq_prim_number - (of_int (int32_bitwise_not k)))))) + (of_int (JsNumber.int32_bitwise_not k)))))) | Coq_unary_op_not -> res_ter s1 (res_val (Coq_value_prim (Coq_prim_bool @@ -4198,7 +4198,7 @@ let run_unary_op runs0 s c op e = if_spec (to_int32 runs0 s1 c v) (fun s2 k -> res_ter s2 (res_val (Coq_value_prim (Coq_prim_number - (of_int (int32_bitwise_not k)))))) + (of_int (JsNumber.int32_bitwise_not k)))))) | Coq_unary_op_not -> res_ter s1 (res_val (Coq_value_prim (Coq_prim_bool @@ -4260,7 +4260,7 @@ let run_unary_op runs0 s c op e = if_spec (to_int32 runs0 s1 c v) (fun s2 k -> res_ter s2 (res_val (Coq_value_prim (Coq_prim_number - (of_int (int32_bitwise_not k)))))) + (of_int (JsNumber.int32_bitwise_not k)))))) | Coq_unary_op_not -> res_ter s1 (res_val (Coq_value_prim (Coq_prim_bool @@ -5310,15 +5310,15 @@ let run_call_prealloc runs0 s c b vthis args = res_ter s0 (res_val (Coq_value_prim (Coq_prim_bool (neg - (or_decidable (number_comparable n nan) - (or_decidable (number_comparable n infinity) - (number_comparable n neg_infinity))))))))) + (or_decidable (number_comparable n JsNumber.nan) + (or_decidable (number_comparable n JsNumber.infinity) + (number_comparable n JsNumber.neg_infinity))))))))) | Coq_prealloc_global_is_nan -> let_binding (get_arg 0 args) (fun v -> if_number (to_number runs0 s c v) (fun s0 n -> res_ter s0 (res_val (Coq_value_prim (Coq_prim_bool - (number_comparable n nan)))))) + (number_comparable n JsNumber.nan)))))) | Coq_prealloc_global_decode_uri -> (fun s -> print_endline (__LOC__ ^ ": Not implemented because: " ^ Prheap.string_of_char_list s) ; @@ -5809,7 +5809,7 @@ let run_call_prealloc runs0 s c b vthis args = | Coq_prealloc_number -> if list_eq_nil_decidable args then result_out (Coq_out_ter (s, - (res_val (Coq_value_prim (Coq_prim_number zero))))) + (res_val (Coq_value_prim (Coq_prim_number JsNumber.zero))))) else let v = get_arg 0 args in to_number runs0 s c v | Coq_prealloc_number_proto -> (fun s -> @@ -5952,7 +5952,7 @@ let run_call_prealloc runs0 s c b vthis args = then if_not_throw (object_put runs0 s2 c l ("length") - (Coq_value_prim (Coq_prim_number zero)) throw_true) + (Coq_value_prim (Coq_prim_number JsNumber.zero)) throw_true) (fun s3 x -> result_out (Coq_out_ter (s3, (res_val (Coq_value_prim Coq_prim_undef))))) diff --git a/generator/tests/jsref/JsInterpreterMonads.ml b/generator/tests/jsref/JsInterpreterMonads.ml index 186f367..e4368fd 100644 --- a/generator/tests/jsref/JsInterpreterMonads.ml +++ b/generator/tests/jsref/JsInterpreterMonads.ml @@ -1,5 +1,5 @@ open JsCommon -open JsNumber +(*open JsNumber*) open JsSyntax open JsSyntaxAux open LibList diff --git a/generator/tests/jsref/JsNumber.ml b/generator/tests/jsref/JsNumber.ml index ddf3c9a..29383d1 100644 --- a/generator/tests/jsref/JsNumber.ml +++ b/generator/tests/jsref/JsNumber.ml @@ -1,8 +1,6 @@ open Fappli_IEEE_bits open LibReflect -let nat_eq x y = int_eq x y - type number = binary64 (** val nan : number **) @@ -37,20 +35,19 @@ let max_value = max_float let min_value = min_float (* (Int64.float_of_bits Int64.one) *) -(* - (** val pi : number **) - let pi = (4. *. atan 1.) +(** val pi : number **) - (** val e : number **) +let pi = 3.141592654 (* (4. *. atan 1.) *) - let e = (exp 1.) +(** val e : number **) - (** val ln2 : number **) +let e = 2.718281828 (* (exp 1.) *) - let ln2 = (log 2.) +(** val ln2 : number **) + +let ln2 = 0.693147181 (* (log 2.) *) -*) (** val from_string : string -> number **) @@ -129,15 +126,8 @@ let sign = (fun x -> float_of_int (float_compare x 0.)) *) -(** val number_comparable : number coq_Comparable **) - -let number_comparable = (fun n1 n2 -> int_eq 0 (float_compare n1 n2)) - -(** val of_int : float -> number **) -let of_int = fun x -> x -let number_of_int = fun x -> float_of_int x (** val to_int32 : number -> float **) diff --git a/generator/tests/jsref/JsPreliminary.ml b/generator/tests/jsref/JsPreliminary.ml index 2b060b8..e396aeb 100644 --- a/generator/tests/jsref/JsPreliminary.ml +++ b/generator/tests/jsref/JsPreliminary.ml @@ -1,5 +1,5 @@ open JsCommon -open JsNumber +(*open JsNumber*) open JsSyntax open JsSyntaxAux open LibReflect @@ -9,9 +9,9 @@ open Shared (** val convert_number_to_bool : number -> bool **) let convert_number_to_bool n = - if or_decidable (number_comparable n zero) - (or_decidable (number_comparable n neg_zero) - (number_comparable n nan)) + if or_decidable (number_comparable n JsNumber.zero) + (or_decidable (number_comparable n JsNumber.neg_zero) + (number_comparable n JsNumber.nan)) then false else true @@ -39,23 +39,23 @@ let convert_value_to_boolean _foo_ = match _foo_ with (** val convert_prim_to_number : prim -> number **) let convert_prim_to_number _foo_ = match _foo_ with -| Coq_prim_undef -> nan -| Coq_prim_null -> zero -| Coq_prim_bool b -> if b then one else zero +| Coq_prim_undef -> JsNumber.nan +| Coq_prim_null -> JsNumber.zero +| Coq_prim_bool b -> if b then JsNumber.one else JsNumber.zero | Coq_prim_number n -> n -| Coq_prim_string s -> from_string s +| Coq_prim_string s -> JsNumber.from_string s (** val convert_number_to_integer : number -> number **) let convert_number_to_integer n = - if number_comparable n nan - then zero - else if or_decidable (number_comparable n zero) - (or_decidable (number_comparable n neg_zero) - (or_decidable (number_comparable n infinity) - (number_comparable n neg_infinity))) + if number_comparable n JsNumber.nan + then JsNumber.zero + else if or_decidable (number_comparable n JsNumber.zero) + (or_decidable (number_comparable n JsNumber.neg_zero) + (or_decidable (number_comparable n JsNumber.infinity) + (number_comparable n JsNumber.neg_infinity))) then n - else mult (sign n) (floor (absolute n)) + else mult (JsNumber.sign n) (floor (JsNumber.absolute n)) (** val convert_bool_to_string : bool -> string **) @@ -70,7 +70,7 @@ let convert_prim_to_string _foo_ = match _foo_ with "undefined" | Coq_prim_null -> "null" | Coq_prim_bool b -> convert_bool_to_string b -| Coq_prim_number n -> to_string n +| Coq_prim_number n -> JsNumber.to_string n | Coq_prim_string s -> s (** val equality_test_for_same_type : coq_type -> value -> value -> bool **) @@ -95,16 +95,16 @@ let equality_test_for_same_type ty v1 v2 = | Coq_prim_null -> false | Coq_prim_bool b -> false | Coq_prim_number n2 -> - if number_comparable n1 nan + if number_comparable n1 JsNumber.nan then false - else if number_comparable n2 nan + else if number_comparable n2 JsNumber.nan then false - else if and_decidable (number_comparable n1 zero) - (number_comparable n2 neg_zero) + else if and_decidable (number_comparable n1 JsNumber.zero) + (number_comparable n2 JsNumber.neg_zero) then true else if and_decidable - (number_comparable n1 neg_zero) - (number_comparable n2 zero) + (number_comparable n1 JsNumber.neg_zero) + (number_comparable n2 JsNumber.zero) then true else number_comparable n1 n2 | Coq_prim_string s -> false) @@ -126,23 +126,23 @@ let strict_equality_test v1 v2 = (** val inequality_test_number : number -> number -> prim **) let inequality_test_number n1 n2 = - if or_decidable (number_comparable n1 nan) (number_comparable n2 nan) + if or_decidable (number_comparable n1 JsNumber.nan) (number_comparable n2 nan) then Coq_prim_undef else if number_comparable n1 n2 then Coq_prim_bool false - else if and_decidable (number_comparable n1 zero) - (number_comparable n2 neg_zero) + else if and_decidable (number_comparable n1 JsNumber.zero) + (number_comparable n2 JsNumber.neg_zero) then Coq_prim_bool false - else if and_decidable (number_comparable n1 neg_zero) - (number_comparable n2 zero) + else if and_decidable (number_comparable n1 JsNumber.neg_zero) + (number_comparable n2 JsNumber.zero) then Coq_prim_bool false - else if number_comparable n1 infinity + else if number_comparable n1 JsNumber.infinity then Coq_prim_bool false - else if number_comparable n2 infinity + else if number_comparable n2 JsNumber.infinity then Coq_prim_bool true - else if number_comparable n2 neg_infinity + else if number_comparable n2 JsNumber.neg_infinity then Coq_prim_bool false - else if number_comparable n1 neg_infinity + else if number_comparable n1 JsNumber.neg_infinity then Coq_prim_bool true else Coq_prim_bool (lt_bool n1 n2) @@ -213,7 +213,7 @@ let typeof_prim _foo_ = match _foo_ with let string_of_propname _foo_ = match _foo_ with | Coq_propname_identifier s -> s | Coq_propname_string s -> s -| Coq_propname_number n -> to_string n +| Coq_propname_number n -> JsNumber.to_string n (** val string_of_native_error : native_error -> string **) diff --git a/generator/tests/jsref/JsSyntax.ml b/generator/tests/jsref/JsSyntax.ml index 41c64f5..75aa477 100644 --- a/generator/tests/jsref/JsSyntax.ml +++ b/generator/tests/jsref/JsSyntax.ml @@ -1,4 +1,4 @@ -open JsNumber +(*open JsNumber*) open Heap open LibReflect open Shared @@ -45,7 +45,7 @@ type binary_op = type literal = | Coq_literal_null [@f] (** Auto Generated Attributes **) | Coq_literal_bool [@f value] of bool (** Auto Generated Attributes **) -| Coq_literal_number [@f value] of number (** Auto Generated Attributes **) +| Coq_literal_number [@f value] of JsNumber.number (** Auto Generated Attributes **) | Coq_literal_string [@f value] of string (** Auto Generated Attributes **) type label = @@ -64,7 +64,7 @@ let strictness_false = type propname = | Coq_propname_identifier [@f value] of string (** Auto Generated Attributes **) | Coq_propname_string [@f value] of string (** Auto Generated Attributes **) -| Coq_propname_number [@f value] of number (** Auto Generated Attributes **) +| Coq_propname_number [@f value] of JsNumber.number (** Auto Generated Attributes **) type expr = | Coq_expr_this [@f] (** Auto Generated Attributes **) @@ -279,7 +279,7 @@ type prim = | Coq_prim_undef [@f] (** Auto Generated Attributes **) | Coq_prim_null [@f] (** Auto Generated Attributes **) | Coq_prim_bool [@f value] of bool (** Auto Generated Attributes **) -| Coq_prim_number [@f value] of number (** Auto Generated Attributes **) +| Coq_prim_number [@f value] of JsNumber.number (** Auto Generated Attributes **) | Coq_prim_string [@f value] of string (** Auto Generated Attributes **) type value = diff --git a/generator/tests/jsref/JsSyntaxAux.ml b/generator/tests/jsref/JsSyntaxAux.ml index 4b5e221..81da2a8 100644 --- a/generator/tests/jsref/JsSyntaxAux.ml +++ b/generator/tests/jsref/JsSyntaxAux.ml @@ -1,4 +1,4 @@ -open JsNumber +(*open JsNumber*) open JsSyntax open LibList open LibReflect -- GitLab