Skip to content

Commit

Permalink
Runtime: record backtraces should be explicit
Browse files Browse the repository at this point in the history
  • Loading branch information
hhugo committed Jul 22, 2024
1 parent a03f32c commit ad1514f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 10 deletions.
20 changes: 12 additions & 8 deletions runtime/backtrace.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,36 +16,40 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


//Provides: caml_record_backtrace_flag
//Provides: caml_record_backtrace_env_flag
//Requires: jsoo_sys_getenv
var caml_record_backtrace_flag = FLAG("with-js-error");
var caml_record_backtrace_env_flag = FLAG("with-js-error");

(function () {
var r = jsoo_sys_getenv("OCAMLRUNPARAM")
if(r !== undefined){
var l = r.split(",");
for(var i = 0; i < l.length; i++){
if(l[i] == "b") { caml_record_backtrace_flag = 1; break }
if(l[i] == "b") { caml_record_backtrace_env_flag = 1; break }
else if (l[i].startsWith("b=")) {
caml_record_backtrace_flag = +(l[i].slice(2))}
caml_record_backtrace_env_flag = +(l[i].slice(2)) }
else continue;
}
}
}) ()

//Provides: caml_record_backtrace_runtime_flag
//Requires: caml_record_backtrace_env_flag
var caml_record_backtrace_runtime_flag = caml_record_backtrace_env_flag;


//Provides: caml_ml_debug_info_status const
function caml_ml_debug_info_status () { return 0; }
//Provides: caml_backtrace_status
//Requires: caml_record_backtrace_flag
function caml_backtrace_status (_unit) { return caml_record_backtrace_flag ? 1 : 0; }
//Requires: caml_record_backtrace_runtime_flag
function caml_backtrace_status (_unit) { return caml_record_backtrace_runtime_flag ? 1 : 0; }
//Provides: caml_get_exception_backtrace const
function caml_get_exception_backtrace () { return 0; }
//Provides: caml_get_exception_raw_backtrace const
function caml_get_exception_raw_backtrace () { return [0]; }
//Provides: caml_record_backtrace
//Requires: caml_record_backtrace_flag
function caml_record_backtrace (b) { caml_record_backtrace_flag = b; return 0; }
//Requires: caml_record_backtrace_runtime_flag
function caml_record_backtrace (b) { caml_record_backtrace_runtime_flag = b; return 0; }
//Provides: caml_convert_raw_backtrace const
function caml_convert_raw_backtrace () { return [0]; }
//Provides: caml_raw_backtrace_length
Expand Down
5 changes: 3 additions & 2 deletions runtime/jslib.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,9 +161,10 @@ function caml_wrap_exception(e) {

//Provides: caml_maybe_attach_backtrace
//Requires: caml_exn_with_js_backtrace
//Requires: caml_record_backtrace_flag
//Requires: caml_record_backtrace_env_flag
//Requires: caml_record_backtrace_runtime_flag
function caml_maybe_attach_backtrace(exn, force) {
if(caml_record_backtrace_flag)
if(caml_record_backtrace_env_flag && caml_record_backtrace_runtime_flag)
return caml_exn_with_js_backtrace(exn, force);
else return exn
}
Expand Down

0 comments on commit ad1514f

Please sign in to comment.