forked from rescript-lang/rescript
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathint64.js
70 lines (55 loc) · 1.42 KB
/
int64.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
'use strict';
var Caml_int64 = require("./caml_int64.js");
var Caml_format = require("./caml_format.js");
var Caml_js_exceptions = require("./caml_js_exceptions.js");
var Caml_builtin_exceptions = require("./caml_builtin_exceptions.js");
function pred(n) {
return Caml_int64.sub(n, Caml_int64.one);
}
function abs(n) {
if (Caml_int64.ge(n, Caml_int64.zero)) {
return n;
} else {
return Caml_int64.neg(n);
}
}
function lognot(n) {
return Caml_int64.xor(n, Caml_int64.neg_one);
}
function of_string_opt(s) {
try {
return Caml_format.caml_int64_of_string(s);
}
catch (raw_exn){
var exn = Caml_js_exceptions.internalToOCamlException(raw_exn);
if (exn[0] === Caml_builtin_exceptions.failure) {
return ;
}
throw exn;
}
}
var compare = Caml_int64.compare;
function equal(x, y) {
return Caml_int64.compare(x, y) === 0;
}
var zero = Caml_int64.zero;
var one = Caml_int64.one;
var minus_one = Caml_int64.neg_one;
var succ = Caml_int64.succ;
var max_int = Caml_int64.max_int;
var min_int = Caml_int64.min_int;
var to_string = Caml_int64.to_string;
exports.zero = zero;
exports.one = one;
exports.minus_one = minus_one;
exports.succ = succ;
exports.pred = pred;
exports.abs = abs;
exports.max_int = max_int;
exports.min_int = min_int;
exports.lognot = lognot;
exports.of_string_opt = of_string_opt;
exports.to_string = to_string;
exports.compare = compare;
exports.equal = equal;
/* No side effect */