Skip to content

Commit 6269d2b

Browse files
authored
[browser] only trace ExitStatus stack trace if diagnosticTracing is true (#89432)
1 parent 620deb8 commit 6269d2b

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

src/mono/wasm/runtime/loader/exit.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export function mono_exit(exit_code: number, reason?: any): void {
4949
mono_log_debug("abort_startup, reason: " + reason);
5050
abort_promises(reason);
5151
}
52-
logErrorOnExit(exit_code, reason);
52+
logOnExit(exit_code, reason);
5353
appendElementOnExit(exit_code);
5454
if (runtimeHelpers.jiterpreter_dump_stats) runtimeHelpers.jiterpreter_dump_stats(false);
5555
if (exit_code === 0 && loaderHelpers.config?.interopCleanupOnExit) {
@@ -146,19 +146,26 @@ function appendElementOnExit(exit_code: number) {
146146
}
147147
}
148148

149-
function logErrorOnExit(exit_code: number, reason: any) {
149+
function logOnExit(exit_code: number, reason: any) {
150150
if (exit_code !== 0 && reason) {
151-
if (reason instanceof Error) {
151+
// ExitStatus usually is not real JS error and so stack strace is not very useful.
152+
// We will use debug level for it, which will print only when diagnosticTracing is set.
153+
const mono_log = runtimeHelpers.ExitStatus && reason instanceof runtimeHelpers.ExitStatus
154+
? mono_log_debug
155+
: mono_log_error;
156+
if (typeof reason == "string") {
157+
mono_log(reason);
158+
}
159+
else if (reason.stack && reason.message) {
152160
if (runtimeHelpers.stringify_as_error_with_stack) {
153-
mono_log_error(runtimeHelpers.stringify_as_error_with_stack(reason));
161+
mono_log(runtimeHelpers.stringify_as_error_with_stack(reason));
154162
} else {
155-
mono_log_error(reason.message + "\n" + reason.stack);
163+
mono_log(reason.message + "\n" + reason.stack);
156164
}
157165
}
158-
else if (typeof reason == "string")
159-
mono_log_error(reason);
160-
else
161-
mono_log_error(JSON.stringify(reason));
166+
else {
167+
mono_log(JSON.stringify(reason));
168+
}
162169
}
163170
if (loaderHelpers.config && loaderHelpers.config.logExitCode) {
164171
if (consoleWebSocket) {

src/mono/wasm/runtime/logging.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ export function mono_wasm_symbolicate_string(message: string): string {
9191

9292
export function mono_wasm_stringify_as_error_with_stack(err: Error | string): string {
9393
let errObj: any = err;
94-
if (!errObj || !errObj.stack || !(errObj instanceof Error)) {
95-
errObj = new Error(errObj || "Unknown error");
94+
if (!errObj || !errObj.stack) {
95+
errObj = new Error(errObj ? ("" + errObj) : "Unknown error");
9696
}
9797

9898
// Error

0 commit comments

Comments
 (0)