From 696cc72682c07e7ef3280dc142577fa5d3530fc6 Mon Sep 17 00:00:00 2001 From: sjorsdonkers <72333389+sjorsdonkers@users.noreply.github.com> Date: Thu, 10 Apr 2025 14:41:02 +0200 Subject: [PATCH 1/2] getValueByObjectId --- src/engines/v8/v8.zig | 16 ++++++++++++++++ vendor/zig-v8 | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/engines/v8/v8.zig b/src/engines/v8/v8.zig index 2bbf4da..ba77a15 100644 --- a/src/engines/v8/v8.zig +++ b/src/engines/v8/v8.zig @@ -625,6 +625,10 @@ pub const JSValue = struct { return error.JSValueTypeNotHandled; }; } + + pub fn externalEntry(self: JSValue) ?*ExternalEntry { + return getExternalEntry(self.value); + } }; pub const TryCatch = struct { @@ -750,6 +754,18 @@ pub const Inspector = struct { const generatePreview = false; // We do not want to expose this as a parameter for now return self.session.wrapObject(env.isolate, env.js_ctx.?, jsValue, groupName, generatePreview); } + + pub fn getValueByObjectId(self: Inspector, allocator: std.mem.Allocator, objectId: []const u8) !JSValue { + const result = try self.session.unwrapObject(allocator, objectId); + const unwrapped = switch (result) { + .err => |err| { + log.err("Unable to unwrap object {s}: {s}", .{ objectId, if (err) |e| e else "No error message" }); + return error.UnwrapObjectFailed; + }, + .ok => |value| value, + }; + return .{ .value = unwrapped.value }; // The values context and groupId are not used here + } }; // When we return a Zig instance to V8, we wrap it in a v8.Object. That wrapping diff --git a/vendor/zig-v8 b/vendor/zig-v8 index b6b5ed5..e006b47 160000 --- a/vendor/zig-v8 +++ b/vendor/zig-v8 @@ -1 +1 @@ -Subproject commit b6b5ed5bc6ef81474485bd9f0f8518216eaa9d78 +Subproject commit e006b47636847832362e73c1818b5378f00a59eb From b59ab4ec7b8ef6d73f8535fff04d3e99de46f09e Mon Sep 17 00:00:00 2001 From: sjorsdonkers <72333389+sjorsdonkers@users.noreply.github.com> Date: Fri, 11 Apr 2025 09:49:10 +0200 Subject: [PATCH 2/2] update to new v8 with simpler errors --- src/engines/v8/v8.zig | 11 ++--------- vendor/zig-v8 | 2 +- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/engines/v8/v8.zig b/src/engines/v8/v8.zig index ba77a15..80cd6ec 100644 --- a/src/engines/v8/v8.zig +++ b/src/engines/v8/v8.zig @@ -755,15 +755,8 @@ pub const Inspector = struct { return self.session.wrapObject(env.isolate, env.js_ctx.?, jsValue, groupName, generatePreview); } - pub fn getValueByObjectId(self: Inspector, allocator: std.mem.Allocator, objectId: []const u8) !JSValue { - const result = try self.session.unwrapObject(allocator, objectId); - const unwrapped = switch (result) { - .err => |err| { - log.err("Unable to unwrap object {s}: {s}", .{ objectId, if (err) |e| e else "No error message" }); - return error.UnwrapObjectFailed; - }, - .ok => |value| value, - }; + pub fn getValueByObjectId(self: Inspector, allocator: std.mem.Allocator, object_id: []const u8) !JSValue { + const unwrapped = try self.session.unwrapObject(allocator, object_id); return .{ .value = unwrapped.value }; // The values context and groupId are not used here } }; diff --git a/vendor/zig-v8 b/vendor/zig-v8 index e006b47..89538df 160000 --- a/vendor/zig-v8 +++ b/vendor/zig-v8 @@ -1 +1 @@ -Subproject commit e006b47636847832362e73c1818b5378f00a59eb +Subproject commit 89538df6f2b8eb3c97709c1118c395c8c04ebd3a