aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/javascript.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/javascript.zig')
-rw-r--r--src/bun.js/javascript.zig24
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 (