From cfa420153269b4674281412374c053d32508d0a4 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Mon, 23 Mar 2026 18:20:15 +0800 Subject: [PATCH] Add Image.currentSrc and Media.currentSrc --- src/browser/tests/element/html/image.html | 2 ++ src/browser/tests/element/html/media.html | 2 ++ src/browser/webapi/element/html/Image.zig | 1 + src/browser/webapi/element/html/Media.zig | 1 + 4 files changed, 6 insertions(+) diff --git a/src/browser/tests/element/html/image.html b/src/browser/tests/element/html/image.html index baa09918..8874bbfe 100644 --- a/src/browser/tests/element/html/image.html +++ b/src/browser/tests/element/html/image.html @@ -29,10 +29,12 @@ testing.expectEqual('', img.src); testing.expectEqual('', img.alt); + testing.expectEqual('', img.currentSrc); img.src = 'test.png'; // src property returns resolved absolute URL testing.expectEqual(testing.BASE_URL + 'element/html/test.png', img.src); + testing.expectEqual(testing.BASE_URL + 'element/html/test.png', img.currentSrc); // getAttribute returns the raw attribute value testing.expectEqual('test.png', img.getAttribute('src')); diff --git a/src/browser/tests/element/html/media.html b/src/browser/tests/element/html/media.html index 15cd9b33..e97a0d67 100644 --- a/src/browser/tests/element/html/media.html +++ b/src/browser/tests/element/html/media.html @@ -236,9 +236,11 @@ { const audio = document.createElement('audio'); testing.expectEqual('', audio.src); + testing.expectEqual('', audio.currentSrc); audio.src = 'test.mp3'; testing.expectEqual(testing.BASE_URL + 'element/html/test.mp3', audio.src); + testing.expectEqual(testing.BASE_URL + 'element/html/test.mp3', audio.currentSrc); } diff --git a/src/browser/webapi/element/html/Image.zig b/src/browser/webapi/element/html/Image.zig index c8fba91e..ad5c17f5 100644 --- a/src/browser/webapi/element/html/Image.zig +++ b/src/browser/webapi/element/html/Image.zig @@ -150,6 +150,7 @@ pub const JsApi = struct { pub const constructor = bridge.constructor(Image.constructor, .{}); pub const src = bridge.accessor(Image.getSrc, Image.setSrc, .{}); + pub const currentSrc = bridge.accessor(Image.getSrc, null, .{}); pub const alt = bridge.accessor(Image.getAlt, Image.setAlt, .{}); pub const width = bridge.accessor(Image.getWidth, Image.setWidth, .{}); pub const height = bridge.accessor(Image.getHeight, Image.setHeight, .{}); diff --git a/src/browser/webapi/element/html/Media.zig b/src/browser/webapi/element/html/Media.zig index 310e942b..71013e71 100644 --- a/src/browser/webapi/element/html/Media.zig +++ b/src/browser/webapi/element/html/Media.zig @@ -308,6 +308,7 @@ pub const JsApi = struct { pub const HAVE_ENOUGH_DATA = bridge.property(@intFromEnum(ReadyState.HAVE_ENOUGH_DATA), .{ .template = true }); pub const src = bridge.accessor(Media.getSrc, Media.setSrc, .{}); + pub const currentSrc = bridge.accessor(Media.getSrc, null, .{}); pub const autoplay = bridge.accessor(Media.getAutoplay, Media.setAutoplay, .{}); pub const controls = bridge.accessor(Media.getControls, Media.setControls, .{}); pub const loop = bridge.accessor(Media.getLoop, Media.setLoop, .{});