Skip to content

Commit

Permalink
Use ->view and WTF::StringBuilder instead of creating a lot of tempor…
Browse files Browse the repository at this point in the history
…ary strings in errors
  • Loading branch information
Jarred-Sumner committed Feb 8, 2025
1 parent 584db03 commit 1445d4b
Show file tree
Hide file tree
Showing 2 changed files with 455 additions and 214 deletions.
9 changes: 5 additions & 4 deletions src/bun.js/api/BunObject.zig
Original file line number Diff line number Diff line change
Expand Up @@ -533,17 +533,18 @@ pub fn inspect(globalThis: *JSC.JSGlobalObject, callframe: *JSC.CallFrame) bun.J
return ret;
}

export fn Bun__inspect(globalThis: *JSGlobalObject, value: JSValue) ZigString {
export fn Bun__inspect(globalThis: *JSGlobalObject, value: JSValue) bun.String {
// very stable memory address
var array = MutableString.init(getAllocator(globalThis), 0) catch unreachable;
defer array.deinit();
var buffered_writer = MutableString.BufferedWriter{ .context = &array };
const writer = buffered_writer.writer();

var formatter = ConsoleObject.Formatter{ .globalThis = globalThis };
writer.print("{}", .{value.toFmt(&formatter)}) catch return ZigString.Empty;
buffered_writer.flush() catch return ZigString.Empty;
writer.print("{}", .{value.toFmt(&formatter)}) catch return .empty;
buffered_writer.flush() catch return .empty;

return ZigString.init(array.slice()).withEncoding();
return bun.String.createUTF8(array.slice());
}

pub fn getInspect(globalObject: *JSC.JSGlobalObject, _: *JSC.JSObject) JSC.JSValue {
Expand Down
Loading

0 comments on commit 1445d4b

Please sign in to comment.