Skip to content

Commit acb069f

Browse files
committed
Fix internalAnyToExn
1 parent 678b163 commit acb069f

File tree

4 files changed

+40
-45
lines changed

4 files changed

+40
-45
lines changed

jscomp/runtime/caml_js_exceptions.res

+9-10
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,6 @@
2424

2525
exception Error = JsError
2626

27-
let internalAnyToExn = (any: 'a): exn =>
28-
if Obj.magic(any) && Js.typeof(Obj.magic(any)["RE_EXN_ID"]) === "string" {
29-
any->Obj.magic
30-
} else {
31-
{
32-
"RE_EXN_ID": "JsError",
33-
"_1": any,
34-
}->Obj.magic
35-
}
36-
3727
%%raw(`class RescriptError extends Error {
3828
constructor(message) {
3929
super(message);
@@ -50,6 +40,15 @@ let internalFromExtension = (_ext: 'a): exn => {
5040
%raw(`Object.assign(new RescriptError(_ext.RE_EXN_ID), _ext)`)
5141
}
5242

43+
let internalAnyToExn = (any: 'a): exn =>
44+
if Obj.magic(any) && Js.typeof(Obj.magic(any)["RE_EXN_ID"]) === "string" {
45+
any->Obj.magic
46+
} else {
47+
let exn = internalMakeExn("JsError")
48+
Obj.magic(exn)["_1"] = any
49+
exn
50+
}
51+
5352
let as_js_exn = exn =>
5453
switch exn {
5554
| Error(t) => Some(t)

jscomp/runtime/release.ninja

+11-11
Original file line numberDiff line numberDiff line change
@@ -15,43 +15,43 @@ o runtime/js.cmj runtime/js.cmi : cc runtime/js.res
1515
bsc_flags = $bsc_no_open_flags
1616
o runtime/caml.cmj : cc_cmi runtime/caml.res | runtime/caml.cmi runtime/caml_int64_extern.cmj
1717
o runtime/caml.cmi : cc runtime/caml.resi | runtime/bs_stdlib_mini.cmi runtime/caml_int64_extern.cmj runtime/js.cmi runtime/js.cmj
18-
o runtime/caml_array.cmj : cc_cmi runtime/caml_array.res | runtime/caml_array.cmi runtime/caml_array_extern.cmj
18+
o runtime/caml_array.cmj : cc_cmi runtime/caml_array.res | runtime/caml_array.cmi runtime/caml_array_extern.cmj runtime/caml_js_exceptions.cmj
1919
o runtime/caml_array.cmi : cc runtime/caml_array.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
20-
o runtime/caml_bigint.cmj : cc_cmi runtime/caml_bigint.res | runtime/caml_bigint.cmi runtime/caml_bigint_extern.cmj
20+
o runtime/caml_bigint.cmj : cc_cmi runtime/caml_bigint.res | runtime/caml_bigint.cmi runtime/caml_bigint_extern.cmj runtime/caml_js_exceptions.cmj
2121
o runtime/caml_bigint.cmi : cc runtime/caml_bigint.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
22-
o runtime/caml_bytes.cmj : cc_cmi runtime/caml_bytes.res | runtime/caml_bytes.cmi
22+
o runtime/caml_bytes.cmj : cc_cmi runtime/caml_bytes.res | runtime/caml_bytes.cmi runtime/caml_js_exceptions.cmj
2323
o runtime/caml_bytes.cmi : cc runtime/caml_bytes.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
2424
o runtime/caml_exceptions.cmj : cc_cmi runtime/caml_exceptions.res | runtime/caml_exceptions.cmi
2525
o runtime/caml_exceptions.cmi : cc runtime/caml_exceptions.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
2626
o runtime/caml_float.cmj : cc_cmi runtime/caml_float.res | runtime/caml_float.cmi runtime/caml_float_extern.cmj
2727
o runtime/caml_float.cmi : cc runtime/caml_float.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
28-
o runtime/caml_format.cmj : cc_cmi runtime/caml_format.res | runtime/caml.cmj runtime/caml_float.cmj runtime/caml_float_extern.cmj runtime/caml_format.cmi runtime/caml_int64.cmj runtime/caml_int64_extern.cmj runtime/caml_nativeint_extern.cmj runtime/caml_string_extern.cmj
28+
o runtime/caml_format.cmj : cc_cmi runtime/caml_format.res | runtime/caml.cmj runtime/caml_float.cmj runtime/caml_float_extern.cmj runtime/caml_format.cmi runtime/caml_int64.cmj runtime/caml_int64_extern.cmj runtime/caml_js_exceptions.cmj runtime/caml_nativeint_extern.cmj runtime/caml_string_extern.cmj
2929
o runtime/caml_format.cmi : cc runtime/caml_format.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
3030
o runtime/caml_hash.cmj : cc_cmi runtime/caml_hash.res | runtime/caml_hash.cmi runtime/caml_hash_primitive.cmj runtime/caml_nativeint_extern.cmj
3131
o runtime/caml_hash.cmi : cc runtime/caml_hash.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
3232
o runtime/caml_hash_primitive.cmj : cc_cmi runtime/caml_hash_primitive.res | runtime/caml_hash_primitive.cmi runtime/caml_string_extern.cmj
3333
o runtime/caml_hash_primitive.cmi : cc runtime/caml_hash_primitive.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
34-
o runtime/caml_int32.cmj : cc_cmi runtime/caml_int32.res | runtime/caml_int32.cmi runtime/caml_nativeint_extern.cmj
34+
o runtime/caml_int32.cmj : cc_cmi runtime/caml_int32.res | runtime/caml_int32.cmi runtime/caml_js_exceptions.cmj runtime/caml_nativeint_extern.cmj
3535
o runtime/caml_int32.cmi : cc runtime/caml_int32.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
36-
o runtime/caml_int64.cmj : cc_cmi runtime/caml_int64.res | runtime/caml.cmj runtime/caml_float.cmj runtime/caml_float_extern.cmj runtime/caml_int64.cmi runtime/caml_int64_extern.cmj runtime/caml_nativeint_extern.cmj runtime/caml_string_extern.cmj
36+
o runtime/caml_int64.cmj : cc_cmi runtime/caml_int64.res | runtime/caml.cmj runtime/caml_float.cmj runtime/caml_float_extern.cmj runtime/caml_int64.cmi runtime/caml_int64_extern.cmj runtime/caml_js_exceptions.cmj runtime/caml_nativeint_extern.cmj runtime/caml_string_extern.cmj
3737
o runtime/caml_int64.cmi : cc runtime/caml_int64.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
38-
o runtime/caml_lexer.cmj : cc_cmi runtime/caml_lexer.res | runtime/caml_lexer.cmi
38+
o runtime/caml_lexer.cmj : cc_cmi runtime/caml_lexer.res | runtime/caml_js_exceptions.cmj runtime/caml_lexer.cmi
3939
o runtime/caml_lexer.cmi : cc runtime/caml_lexer.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
4040
o runtime/caml_md5.cmj : cc_cmi runtime/caml_md5.res | runtime/caml_array_extern.cmj runtime/caml_md5.cmi runtime/caml_string_extern.cmj
4141
o runtime/caml_md5.cmi : cc runtime/caml_md5.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
42-
o runtime/caml_module.cmj : cc_cmi runtime/caml_module.res | runtime/caml_array_extern.cmj runtime/caml_module.cmi runtime/caml_obj.cmj
42+
o runtime/caml_module.cmj : cc_cmi runtime/caml_module.res | runtime/caml_array_extern.cmj runtime/caml_js_exceptions.cmj runtime/caml_module.cmi runtime/caml_obj.cmj
4343
o runtime/caml_module.cmi : cc runtime/caml_module.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
44-
o runtime/caml_obj.cmj : cc_cmi runtime/caml_obj.res | runtime/caml.cmj runtime/caml_array_extern.cmj runtime/caml_obj.cmi runtime/caml_option.cmj
44+
o runtime/caml_obj.cmj : cc_cmi runtime/caml_obj.res | runtime/caml.cmj runtime/caml_array_extern.cmj runtime/caml_js_exceptions.cmj runtime/caml_obj.cmi runtime/caml_option.cmj
4545
o runtime/caml_obj.cmi : cc runtime/caml_obj.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
4646
o runtime/caml_option.cmj : cc_cmi runtime/caml_option.res | runtime/caml_option.cmi runtime/caml_undefined_extern.cmj
4747
o runtime/caml_option.cmi : cc runtime/caml_option.resi | runtime/bs_stdlib_mini.cmi runtime/caml_undefined_extern.cmj runtime/js.cmi runtime/js.cmj
4848
o runtime/caml_parser.cmj : cc_cmi runtime/caml_parser.res | runtime/caml_parser.cmi
4949
o runtime/caml_parser.cmi : cc runtime/caml_parser.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
5050
o runtime/caml_splice_call.cmj : cc_cmi runtime/caml_splice_call.res | runtime/caml_splice_call.cmi
5151
o runtime/caml_splice_call.cmi : cc runtime/caml_splice_call.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
52-
o runtime/caml_string.cmj : cc_cmi runtime/caml_string.res | runtime/caml_string.cmi runtime/caml_string_extern.cmj
52+
o runtime/caml_string.cmj : cc_cmi runtime/caml_string.res | runtime/caml_js_exceptions.cmj runtime/caml_string.cmi runtime/caml_string_extern.cmj
5353
o runtime/caml_string.cmi : cc runtime/caml_string.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
54-
o runtime/caml_sys.cmj : cc_cmi runtime/caml_sys.res | runtime/caml_array_extern.cmj runtime/caml_sys.cmi runtime/caml_undefined_extern.cmj
54+
o runtime/caml_sys.cmj : cc_cmi runtime/caml_sys.res | runtime/caml_array_extern.cmj runtime/caml_js_exceptions.cmj runtime/caml_sys.cmi runtime/caml_undefined_extern.cmj
5555
o runtime/caml_sys.cmi : cc runtime/caml_sys.resi | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
5656
o runtime/caml_array_extern.cmi runtime/caml_array_extern.cmj : cc runtime/caml_array_extern.res | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
5757
o runtime/caml_bigint_extern.cmi runtime/caml_bigint_extern.cmj : cc runtime/caml_bigint_extern.res | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj

lib/es6/caml_js_exceptions.js

+10-12
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,6 @@ import * as Caml_option from "./caml_option.js";
44

55
let $$Error = "JsError";
66

7-
function internalAnyToExn(any) {
8-
if (any && typeof any.RE_EXN_ID === "string") {
9-
return any;
10-
} else {
11-
return {
12-
RE_EXN_ID: "JsError",
13-
_1: any
14-
};
15-
}
16-
}
17-
187
class RescriptError extends Error {
198
constructor(message) {
209
super(message);
@@ -31,6 +20,15 @@ function internalFromExtension(_ext) {
3120
return (Object.assign(new RescriptError(_ext.RE_EXN_ID), _ext));
3221
}
3322

23+
function internalAnyToExn(any) {
24+
if (any && typeof any.RE_EXN_ID === "string") {
25+
return any;
26+
}
27+
let exn = new RescriptError("JsError");
28+
exn._1 = any;
29+
return exn;
30+
}
31+
3432
function as_js_exn(exn) {
3533
if (exn.RE_EXN_ID === $$Error) {
3634
return Caml_option.some(exn._1);
@@ -40,9 +38,9 @@ function as_js_exn(exn) {
4038

4139
export {
4240
$$Error,
43-
internalAnyToExn,
4441
internalMakeExn,
4542
internalFromExtension,
43+
internalAnyToExn,
4644
as_js_exn,
4745
}
4846
/* Not a pure module */

lib/js/caml_js_exceptions.js

+10-12
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,6 @@ let Caml_option = require("./caml_option.js");
44

55
let $$Error = "JsError";
66

7-
function internalAnyToExn(any) {
8-
if (any && typeof any.RE_EXN_ID === "string") {
9-
return any;
10-
} else {
11-
return {
12-
RE_EXN_ID: "JsError",
13-
_1: any
14-
};
15-
}
16-
}
17-
187
class RescriptError extends Error {
198
constructor(message) {
209
super(message);
@@ -31,6 +20,15 @@ function internalFromExtension(_ext) {
3120
return (Object.assign(new RescriptError(_ext.RE_EXN_ID), _ext));
3221
}
3322

23+
function internalAnyToExn(any) {
24+
if (any && typeof any.RE_EXN_ID === "string") {
25+
return any;
26+
}
27+
let exn = new RescriptError("JsError");
28+
exn._1 = any;
29+
return exn;
30+
}
31+
3432
function as_js_exn(exn) {
3533
if (exn.RE_EXN_ID === $$Error) {
3634
return Caml_option.some(exn._1);
@@ -39,8 +37,8 @@ function as_js_exn(exn) {
3937
}
4038

4139
exports.$$Error = $$Error;
42-
exports.internalAnyToExn = internalAnyToExn;
4340
exports.internalMakeExn = internalMakeExn;
4441
exports.internalFromExtension = internalFromExtension;
42+
exports.internalAnyToExn = internalAnyToExn;
4543
exports.as_js_exn = as_js_exn;
4644
/* Not a pure module */

0 commit comments

Comments
 (0)