From 1cc9fb61356ca08b6411ed7fe3e69c952a79f944 Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Sun, 7 Sep 2025 16:59:08 +0200 Subject: [PATCH] LibWeb: Use ResizeObserver instance as `this` in callback function --- Libraries/LibWeb/ResizeObserver/ResizeObserver.cpp | 2 +- Tests/LibWeb/Text/input/ResizeObserver/observe.html | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Libraries/LibWeb/ResizeObserver/ResizeObserver.cpp b/Libraries/LibWeb/ResizeObserver/ResizeObserver.cpp index c8398e450fd..06f87fed1ff 100644 --- a/Libraries/LibWeb/ResizeObserver/ResizeObserver.cpp +++ b/Libraries/LibWeb/ResizeObserver/ResizeObserver.cpp @@ -116,7 +116,7 @@ void ResizeObserver::invoke_callback(ReadonlySpan> MUST(wrapped_records->create_data_property(property_index, record.ptr())); } - (void)WebIDL::invoke_callback(callback, JS::js_undefined(), WebIDL::ExceptionBehavior::Report, { { wrapped_records } }); + (void)WebIDL::invoke_callback(callback, this, WebIDL::ExceptionBehavior::Report, { { wrapped_records } }); } void ResizeObserver::unregister_observer_if_needed() diff --git a/Tests/LibWeb/Text/input/ResizeObserver/observe.html b/Tests/LibWeb/Text/input/ResizeObserver/observe.html index aab45650c4d..3f4128ddec6 100644 --- a/Tests/LibWeb/Text/input/ResizeObserver/observe.html +++ b/Tests/LibWeb/Text/input/ResizeObserver/observe.html @@ -23,7 +23,11 @@ }); } - const resizeObserver = new ResizeObserver(entries => { + const resizeObserver = new ResizeObserver(function (entries) { + if (this !== resizeObserver) { + println("this is not the ResizeObserver instance inside callback"); + } + for (let entry of entries) { const { width, height } = entry.contentRect; println(`Size changed: ${width}px x ${height}px`);