From 9b9d927f385b90329d8524e2487c1dd653a6704a Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Thu, 7 Dec 2023 17:02:14 +0100 Subject: [PATCH] dom: implement ProcessingIntruction.target --- src/dom/document.zig | 3 ++- src/dom/processing_instruction.zig | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/dom/document.zig b/src/dom/document.zig index e9a6903f..6a34c01b 100644 --- a/src/dom/document.zig +++ b/src/dom/document.zig @@ -258,7 +258,8 @@ pub fn testExecFn( try checkCases(js_env, &createComment); var createProcessingInstruction = [_]Case{ - .{ .src = "document.createProcessingInstruction('foo', 'bar')", .ex = "[object ProcessingInstruction]" }, + .{ .src = "let pi = document.createProcessingInstruction('foo', 'bar')", .ex = "undefined" }, + .{ .src = "pi.target", .ex = "foo" }, }; try checkCases(js_env, &createProcessingInstruction); diff --git a/src/dom/processing_instruction.zig b/src/dom/processing_instruction.zig index 2b2f8f2d..cb5cf29d 100644 --- a/src/dom/processing_instruction.zig +++ b/src/dom/processing_instruction.zig @@ -10,5 +10,8 @@ pub const ProcessingInstruction = struct { pub const prototype = *CharacterData; pub const mem_guarantied = true; - // TODO implement get_target + pub fn get_target(self: *parser.ProcessingInstruction) ![]const u8 { + // libdom stores the ProcessingInstruction target in the node's name. + return try parser.nodeName(@as(*parser.Node, @ptrCast(self))); + } };