Skip to content

Commit d526cc1

Browse files
committed
rename JsError to JsExn and create JsError and JsExn modules
1 parent 974674e commit d526cc1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+736
-787
lines changed

analysis/examples/workspace-project/myplugin/src/Promise.res

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
type t<+'a> = Js.Promise.t<'a>
22

3-
exception JsError(Js.Exn.t)
3+
exception JsExn(Js.Exn.t)
44
external unsafeToJsExn: exn => Js.Exn.t = "%identity"
55

66
@new

analysis/reanalyze/src/Exn.ml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ let endOfFile = "End_of_file"
88
let exit = "exit"
99
let failure = "Failure"
1010
let invalidArgument = "Invalid_argument"
11-
let jsExnError = "Exn.Error"
11+
let jsExn = "JsExn"
1212
let matchFailure = "Match_failure"
1313
let notFound = "Not_found"
1414
let sysError = "Sys_error"

analysis/reanalyze/src/Exn.mli

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ val failure : t
1010
val fromLid : Longident.t -> t
1111
val fromString : string -> t
1212
val invalidArgument : t
13-
val jsExnError : t
13+
val jsExn : t
1414
val matchFailure : t
1515
val notFound : t
1616
val sysError : t

analysis/reanalyze/src/ExnLib.ml

+21-21
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ let raisesLibTable : (Name.t, Exceptions.t) Hashtbl.t =
3838
in
3939
let stdlib =
4040
[
41-
("panic", [jsExnError]);
42-
("assertEqual", [jsExnError]);
41+
("panic", [jsExn]);
42+
("assertEqual", [jsExn]);
4343
("invalid_arg", [invalidArgument]);
4444
("failwith", [failure]);
4545
("/", [divisionByZero]);
@@ -50,38 +50,38 @@ let raisesLibTable : (Name.t, Exceptions.t) Hashtbl.t =
5050
("float_of_string", [failure]);
5151
]
5252
in
53-
let stdlibBigInt = [("fromStringExn", [jsExnError])] in
53+
let stdlibBigInt = [("fromStringExn", [jsExn])] in
5454
let stdlibBool = [("fromStringExn", [invalidArgument])] in
55-
let stdlibError = [("raise", [jsExnError])] in
55+
let stdlibError = [("raise", [jsExn])] in
5656
let stdlibExn =
5757
[
58-
("raiseError", [jsExnError]);
59-
("raiseEvalError", [jsExnError]);
60-
("raiseRangeError", [jsExnError]);
61-
("raiseReferenceError", [jsExnError]);
62-
("raiseSyntaxError", [jsExnError]);
63-
("raiseTypeError", [jsExnError]);
64-
("raiseUriError", [jsExnError]);
58+
("raiseError", [jsExn]);
59+
("raiseEvalError", [jsExn]);
60+
("raiseRangeError", [jsExn]);
61+
("raiseReferenceError", [jsExn]);
62+
("raiseSyntaxError", [jsExn]);
63+
("raiseTypeError", [jsExn]);
64+
("raiseUriError", [jsExn]);
6565
]
6666
in
6767
let stdlibJson =
6868
[
69-
("parseExn", [jsExnError]);
70-
("parseExnWithReviver", [jsExnError]);
71-
("stringifyAny", [jsExnError]);
72-
("stringifyAnyWithIndent", [jsExnError]);
73-
("stringifyAnyWithReplacer", [jsExnError]);
74-
("stringifyAnyWithReplacerAndIndent", [jsExnError]);
75-
("stringifyAnyWithFilter", [jsExnError]);
76-
("stringifyAnyWithFilterAndIndent", [jsExnError]);
69+
("parseExn", [jsExn]);
70+
("parseExnWithReviver", [jsExn]);
71+
("stringifyAny", [jsExn]);
72+
("stringifyAnyWithIndent", [jsExn]);
73+
("stringifyAnyWithReplacer", [jsExn]);
74+
("stringifyAnyWithReplacerAndIndent", [jsExn]);
75+
("stringifyAnyWithFilter", [jsExn]);
76+
("stringifyAnyWithFilterAndIndent", [jsExn]);
7777
]
7878
in
7979
let stdlibList =
8080
[("headExn", [notFound]); ("tailExn", [notFound]); ("getExn", [notFound])]
8181
in
8282
let stdlibNull = [("getExn", [invalidArgument])] in
8383
let stdlibNullable = [("getExn", [invalidArgument])] in
84-
let stdlibOption = [("getExn", [jsExnError])] in
84+
let stdlibOption = [("getExn", [jsExn])] in
8585
let stdlibResult = [("getExn", [notFound])] in
8686
let yojsonBasic = [("from_string", [yojsonJsonError])] in
8787
let yojsonBasicUtil =
@@ -144,7 +144,7 @@ let raisesLibTable : (Name.t, Exceptions.t) Hashtbl.t =
144144
("Bool", stdlibBool);
145145
("Error", stdlibError);
146146
("Exn", stdlibExn);
147-
("Js.Json", [("parseExn", [jsExnError])]);
147+
("Js.Json", [("parseExn", [jsExn])]);
148148
("JSON", stdlibJson);
149149
("Json_decode", bsJson);
150150
("Json.Decode", bsJson);

compiler/core/design.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ function packError(exn){
372372
}
373373
}
374374
```
375-
So whenever we raise an OCaml exception, we always wrapped it as a JS error.
375+
So whenever we raise an OCaml exception, we always wrapped it as a JS exception.
376376
Now we unpack it, it could be OCaml exception or JS exception, so we did
377377
a runtime dispatch.
378378

@@ -381,7 +381,7 @@ Some potential optimization
381381
```ocaml
382382
try f x with
383383
Not_found -> ..
384-
JsError e
384+
JsExn e
385385
```
386386

387387
currently it would be transalted as

compiler/frontend/ast_exp_extension.ml

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ let handle_extension e (self : Bs_ast_mapper.mapper)
4343
in
4444

4545
Exp.apply ~loc
46-
(Exp.ident ~loc {txt = Longident.parse "Js.Exn.raiseError"; loc})
46+
(Exp.ident ~loc {txt = Longident.parse "JsError.throwWithMessage"; loc})
4747
[
4848
( Nolabel,
4949
Exp.constant ~loc

compiler/ml/predef.ml

+4-4
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ and ident_error = ident_create_predef_exn "Error"
158158
and ident_dict_magic_field_name =
159159
ident_create Dict_type_helpers.dict_magic_field_name
160160

161-
and ident_js_error = ident_create_predef_exn "JsError"
161+
and ident_js_exn = ident_create_predef_exn "JsExn"
162162

163163
and ident_not_found = ident_create_predef_exn "Not_found"
164164

@@ -176,7 +176,7 @@ let all_predef_exns =
176176
ident_match_failure;
177177
ident_invalid_argument;
178178
ident_failure;
179-
ident_js_error;
179+
ident_js_exn;
180180
ident_not_found;
181181
ident_end_of_file;
182182
ident_division_by_zero;
@@ -412,7 +412,7 @@ let common_initial_env add_type add_extension empty_env =
412412
|> add_exception ident_end_of_file []
413413
|> add_exception ident_not_found []
414414
|> add_exception ident_failure [type_string]
415-
|> add_exception ident_js_error [type_unknown]
415+
|> add_exception ident_js_exn [type_unknown]
416416
|> add_exception ident_invalid_argument [type_string]
417417
|> add_exception ident_match_failure
418418
[newgenty (Ttuple [type_string; type_int; type_int])]
@@ -433,7 +433,7 @@ let builtin_values =
433433
ident_match_failure;
434434
ident_invalid_argument;
435435
ident_failure;
436-
ident_js_error;
436+
ident_js_exn;
437437
ident_not_found;
438438
ident_end_of_file;
439439
ident_division_by_zero;

lib/es6/Primitive_exceptions.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function internalToException(e) {
1414
return e;
1515
} else {
1616
return {
17-
RE_EXN_ID: "JsError",
17+
RE_EXN_ID: "JsExn",
1818
_1: e
1919
};
2020
}
@@ -33,7 +33,7 @@ function create(str) {
3333
return str;
3434
}
3535

36-
let $$Error = "JsError";
36+
let $$Error = "JsExn";
3737

3838
export {
3939
$$Error,

lib/es6/Stdlib.js

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22

3-
import * as Stdlib_Error from "./Stdlib_Error.js";
43
import * as Stdlib_Global from "./Stdlib_Global.js";
4+
import * as Stdlib_JsError from "./Stdlib_JsError.js";
55
import * as Primitive_object from "./Primitive_object.js";
66

77
function assertEqual(a, b) {
@@ -12,7 +12,7 @@ function assertEqual(a, b) {
1212
RE_EXN_ID: "Assert_failure",
1313
_1: [
1414
"Stdlib.res",
15-
120,
15+
122,
1616
4
1717
],
1818
Error: new Error()
@@ -47,6 +47,10 @@ let Int;
4747

4848
let $$Intl;
4949

50+
let JsError;
51+
52+
let JsExn;
53+
5054
let $$JSON;
5155

5256
let Lazy;
@@ -117,7 +121,7 @@ let $$BigInt64Array;
117121

118122
let $$BigUint64Array;
119123

120-
let panic = Stdlib_Error.panic;
124+
let panic = Stdlib_JsError.panic;
121125

122126
export {
123127
TimeoutId,
@@ -134,6 +138,8 @@ export {
134138
Float,
135139
Int,
136140
$$Intl,
141+
JsError,
142+
JsExn,
137143
$$JSON,
138144
Lazy,
139145
List,

lib/es6/Stdlib_Exn.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import * as Primitive_option from "./Primitive_option.js";
44

5-
let $$Error = "JsError";
5+
let $$Error = "JsExn";
66

77
function asJsExn(exn) {
88
if (exn.RE_EXN_ID === $$Error) {

lib/es6/Stdlib_JsError.js

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
2+
3+
4+
function throwWithMessage(str) {
5+
throw new Error(str);
6+
}
7+
8+
function throwWithMessage$1(s) {
9+
throw new EvalError(s);
10+
}
11+
12+
let $$EvalError$1 = {
13+
throwWithMessage: throwWithMessage$1
14+
};
15+
16+
function throwWithMessage$2(s) {
17+
throw new RangeError(s);
18+
}
19+
20+
let $$RangeError$1 = {
21+
throwWithMessage: throwWithMessage$2
22+
};
23+
24+
function throwWithMessage$3(s) {
25+
throw new ReferenceError(s);
26+
}
27+
28+
let $$ReferenceError$1 = {
29+
throwWithMessage: throwWithMessage$3
30+
};
31+
32+
function throwWithMessage$4(s) {
33+
throw new SyntaxError(s);
34+
}
35+
36+
let $$SyntaxError$1 = {
37+
throwWithMessage: throwWithMessage$4
38+
};
39+
40+
function throwWithMessage$5(s) {
41+
throw new TypeError(s);
42+
}
43+
44+
let $$TypeError$1 = {
45+
throwWithMessage: throwWithMessage$5
46+
};
47+
48+
function throwWithMessage$6(s) {
49+
throw new URIError(s);
50+
}
51+
52+
let $$URIError$1 = {
53+
throwWithMessage: throwWithMessage$6
54+
};
55+
56+
function panic(msg) {
57+
throw new Error("Panic! " + msg);
58+
}
59+
60+
export {
61+
$$EvalError$1 as $$EvalError,
62+
$$RangeError$1 as $$RangeError,
63+
$$ReferenceError$1 as $$ReferenceError,
64+
$$SyntaxError$1 as $$SyntaxError,
65+
$$TypeError$1 as $$TypeError,
66+
$$URIError$1 as $$URIError,
67+
throwWithMessage,
68+
panic,
69+
}
70+
/* No side effect */

lib/es6/Stdlib_JsExn.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
3+
import * as Primitive_option from "./Primitive_option.js";
4+
5+
function fromException(exn) {
6+
if (exn.RE_EXN_ID === "JsExn") {
7+
return Primitive_option.some(exn._1);
8+
}
9+
10+
}
11+
12+
export {
13+
fromException,
14+
}
15+
/* No side effect */

lib/js/Primitive_exceptions.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function internalToException(e) {
1414
return e;
1515
} else {
1616
return {
17-
RE_EXN_ID: "JsError",
17+
RE_EXN_ID: "JsExn",
1818
_1: e
1919
};
2020
}
@@ -33,7 +33,7 @@ function create(str) {
3333
return str;
3434
}
3535

36-
let $$Error = "JsError";
36+
let $$Error = "JsExn";
3737

3838
exports.$$Error = $$Error;
3939
exports.create = create;

lib/js/Stdlib.js

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

3-
let Stdlib_Error = require("./Stdlib_Error.js");
43
let Stdlib_Global = require("./Stdlib_Global.js");
4+
let Stdlib_JsError = require("./Stdlib_JsError.js");
55
let Primitive_object = require("./Primitive_object.js");
66

77
function assertEqual(a, b) {
@@ -12,7 +12,7 @@ function assertEqual(a, b) {
1212
RE_EXN_ID: "Assert_failure",
1313
_1: [
1414
"Stdlib.res",
15-
120,
15+
122,
1616
4
1717
],
1818
Error: new Error()
@@ -47,6 +47,10 @@ let Int;
4747

4848
let $$Intl;
4949

50+
let JsError;
51+
52+
let JsExn;
53+
5054
let $$JSON;
5155

5256
let Lazy;
@@ -117,7 +121,7 @@ let $$BigInt64Array;
117121

118122
let $$BigUint64Array;
119123

120-
let panic = Stdlib_Error.panic;
124+
let panic = Stdlib_JsError.panic;
121125

122126
exports.TimeoutId = TimeoutId;
123127
exports.IntervalId = IntervalId;
@@ -133,6 +137,8 @@ exports.$$Error = $$Error;
133137
exports.Float = Float;
134138
exports.Int = Int;
135139
exports.$$Intl = $$Intl;
140+
exports.JsError = JsError;
141+
exports.JsExn = JsExn;
136142
exports.$$JSON = $$JSON;
137143
exports.Lazy = Lazy;
138144
exports.List = List;

0 commit comments

Comments
 (0)