diff --git a/src/browser/Page.zig b/src/browser/Page.zig index c1350a0e..40b73618 100644 --- a/src/browser/Page.zig +++ b/src/browser/Page.zig @@ -1246,7 +1246,7 @@ pub fn notifyPerformanceObservers(self: *Page, entry: *Performance.Entry) !void try self.schedulePerformanceObserverDelivery(); } -/// Schedules async delivery of buffered performance observer records. +/// Schedules async delivery of performance observer records. pub fn schedulePerformanceObserverDelivery(self: *Page) !void { // Already scheduled. if (self._performance_delivery_scheduled) { diff --git a/src/browser/webapi/PerformanceObserver.zig b/src/browser/webapi/PerformanceObserver.zig index 38f2a028..cfabaebb 100644 --- a/src/browser/webapi/PerformanceObserver.zig +++ b/src/browser/webapi/PerformanceObserver.zig @@ -117,7 +117,7 @@ pub fn observe( // Deliver existing entries if buffered option is set. // Per spec, buffered is only valid with the type option, not entryTypes. // Delivery is async via a queued task, not synchronous. - if (options.buffered and options.type != null) { + if (options.buffered and options.type != null and !self.hasRecords()) { for (page.window._performance._entries.items) |entry| { if (self.interested(entry)) { try self._entries.append(page.arena, entry);