diff --git a/src/compiler/compile/render_dom/wrappers/Element/index.ts b/src/compiler/compile/render_dom/wrappers/Element/index.ts index d26fb6b3b7..62a83a2fe0 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/index.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/index.ts @@ -554,7 +554,7 @@ export default class ElementWrapper extends Wrapper { if (renderer.options.dev) { block.chunks.mount.push( - b`${resize_observer} = @add_resize_observer_dev(${this.var}, ${callee}.bind(${this.var}), ${this.var.name});` + b`${resize_observer} = @add_resize_observer_dev(${this.var.name}, ${this.var}, ${callee}.bind(${this.var}));` ); } else { block.chunks.mount.push( diff --git a/src/runtime/internal/dev.ts b/src/runtime/internal/dev.ts index 16922086a3..3c5466e4d3 100644 --- a/src/runtime/internal/dev.ts +++ b/src/runtime/internal/dev.ts @@ -89,9 +89,9 @@ export function set_data_dev(text, data) { text.data = data; } -export function add_resize_observer_dev(node: HTMLElement, fn: (arg: any) => void, binding_name: string) { +export function add_resize_observer_dev(binding_name: string, node: HTMLElement, fn: (arg: any) => void, opts?: ResizeObserverOptions) { if ('ResizeObserver' in window) { - add_resize_observer(node, fn); + add_resize_observer(node, fn, opts); } else { throw new Error(`${binding_name} uses the ResizeObserver API, but it is not supported in this browser.`); } diff --git a/src/runtime/internal/dom.ts b/src/runtime/internal/dom.ts index f07da40412..5a2493b41c 100644 --- a/src/runtime/internal/dom.ts +++ b/src/runtime/internal/dom.ts @@ -630,10 +630,10 @@ export function add_resize_listener(node: HTMLElement, fn: () => void) { }; } -export function add_resize_observer(node: HTMLElement, fn: (arg: any) => void) { +export function add_resize_observer(node: HTMLElement, fn: (arg: any) => void, opts?: ResizeObserverOptions) { // @ts-ignore ResizeObserver is not available in current tsconfig lib const observer = new ResizeObserver(entries => fn(entries.values().next().value)); - observer.observe(node); + observer.observe(node, opts); return () => observer.disconnect(); }