const std = @import("std"); const bun = @import("root").bun; const string = bun.string; const Output = bun.Output; const Global = bun.Global; const Environment = bun.Environment; const strings = bun.strings; const MutableString = bun.MutableString; const stringZ = bun.stringZ; const default_allocator = bun.default_allocator; const C = bun.C; const CLI = @import("./cli.zig").Cli; const Features = @import("./analytics/analytics_thread.zig").Features; const HTTP = @import("root").bun.HTTP.AsyncHTTP; const Report = @import("./report.zig"); pub fn NewPanicHandler(comptime panic_func: fn ([]const u8, ?*std.builtin.StackTrace, ?usize) noreturn) type { return struct { panic_count: usize = 0, skip_next_panic: bool = false, log: *bun.logger.Log, pub var Singleton: ?*Handler = null; const Handler = @This(); pub fn init(log: *bun.logger.Log) Handler { return Handler{ .log = log, }; } pub inline fn handle_panic(msg: []const u8, error_return_type: ?*std.builtin.StackTrace, addr: ?usize) noreturn { // This exists to ensure we flush all buffered output before panicking. Output.flush(); Report.fatal(null, msg); Output.disableBuffering(); if (bun.auto_reload_on_crash) { // attempt to prevent a double panic bun.auto_reload_on_crash = false; Output.prettyErrorln("--- Bun is auto-restarting due to crash [time: {d}] ---", .{@max(std.time.milliTimestamp(), 0)}); Output.flush(); bun.reloadProcess(bun.default_allocator, false); } // // We want to always inline the panic handler so it doesn't show up in the stacktrace. @call(.always_inline, panic_func, .{ msg, error_return_type, addr }); } }; } t-signal-rebased'>ciro/spawn-abort-signal-rebased Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)AuthorFilesLines
2022-06-22Move builtins to src/javascript/jsc/builtinsGravatar Jarred Sumner 72-6/+2285
2022-06-22Tweak test runner outputGravatar Jarred Sumner 1-90/+44
2022-06-22Cleanup some testsGravatar Jarred Sumner 2-8/+46
2022-06-22Update Dockerfile.baseGravatar Jarred Sumner 1-1/+1
2022-06-22Update WebKitGravatar Jarred Sumner 1-0/+0
2022-06-22cleanup websocket testGravatar Jarred Sumner 1-3/+6
2022-06-22Fix `WebSocket` when HTTP server is not runningGravatar Jarred Sumner 14-38/+103
2022-06-22Update build-idGravatar Jarred Sumner 1-1/+1
2022-06-22cleanupGravatar Jarred Sumner 6-719/+3
2022-06-22Update index.d.tsGravatar Jarred Sumner 1-0/+1
2022-06-22types for `bun:jsc`Gravatar Jarred Sumner 2-1/+37
2022-06-22Slightly customize the `events` polyfill so it uses ESMGravatar Jarred Sumner 1-1/+522
2022-06-22Fix memory bugs in escapeHTML & arrayBufferToStringGravatar Jarred Sumner 1-65/+61