diff options
author | 2022-11-09 00:37:57 -0800 | |
---|---|---|
committer | 2022-11-09 00:37:57 -0800 | |
commit | 047a8d3f0d39118ded97f693d4e4a7cb23e8c6a4 (patch) | |
tree | 47ed7e03743f2ca060c9c99b64d8ebb91b8118f2 /src/bun.js/javascript.zig | |
parent | 2c4777f579041d86b20e78ba6f519863ad3a6a13 (diff) | |
download | bun-047a8d3f0d39118ded97f693d4e4a7cb23e8c6a4.tar.gz bun-047a8d3f0d39118ded97f693d4e4a7cb23e8c6a4.tar.zst bun-047a8d3f0d39118ded97f693d4e4a7cb23e8c6a4.zip |
Error.captureStackTrace implementation (#1476)
* capture stack trace formatting, tests
* fix callsite methods, stack formatting or undefined
* isNative, tests for callsite methods
* Update src/bun.js/bindings/ZigGlobalObject.cpp
* Update src/bun.js/bindings/ZigGlobalObject.cpp
* template and macros for visitchildren
* static strings, handle infinity and clamp stacktracelimit
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Diffstat (limited to 'src/bun.js/javascript.zig')
-rw-r--r-- | src/bun.js/javascript.zig | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/bun.js/javascript.zig b/src/bun.js/javascript.zig index 1fd6783be..8768b3180 100644 --- a/src/bun.js/javascript.zig +++ b/src/bun.js/javascript.zig @@ -1551,6 +1551,25 @@ pub const VirtualMachine = struct { } } + pub export fn Bun__remapStackFramePositions(globalObject: *JSC.JSGlobalObject, frames: [*]JSC.ZigStackFrame, frames_count: usize) void { + globalObject.bunVM().remapStackFramePositions(frames, frames_count); + } + + pub fn remapStackFramePositions(this: *VirtualMachine, frames: [*]JSC.ZigStackFrame, frames_count: usize) void { + var i: usize = 0; + while (i < frames_count) : (i += 1) { + if (frames[i].position.isInvalid()) continue; + if (this.source_mappings.resolveMapping( + frames[i].source_url.slice(), + @maximum(frames[i].position.line, 0), + @maximum(frames[i].position.column_start, 0), + )) |mapping| { + frames[i].position.line = mapping.original.lines; + frames[i].position.column_start = mapping.original.columns; + } + } + } + pub fn remapZigException( this: *VirtualMachine, exception: *ZigException, @@ -1831,6 +1850,11 @@ pub const VirtualMachine = struct { try writer.print(comptime Output.prettyFmt("<r><red>error<r>\n", allow_ansi_color), .{}); } } + + comptime { + if (!JSC.is_bindgen) + _ = Bun__remapStackFramePositions; + } }; const GetterFn = fn ( |