diff --git a/runtime/backtrace.js b/runtime/backtrace.js index 1c894c9885..be09b59740 100644 --- a/runtime/backtrace.js +++ b/runtime/backtrace.js @@ -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 diff --git a/runtime/jslib.js b/runtime/jslib.js index 59d954d91f..54ba52d344 100644 --- a/runtime/jslib.js +++ b/runtime/jslib.js @@ -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 }