From 520a140c525fe79371fc61696d19e25c886336ce Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 3 Dec 2024 20:36:52 -0500 Subject: [PATCH 1/2] fix: respect the unidirectional nature of time --- .changeset/sixty-tables-fold.md | 5 +++++ packages/svelte/src/internal/client/loop.js | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .changeset/sixty-tables-fold.md diff --git a/.changeset/sixty-tables-fold.md b/.changeset/sixty-tables-fold.md new file mode 100644 index 000000000000..83182344cece --- /dev/null +++ b/.changeset/sixty-tables-fold.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: respect the unidirectional nature of time diff --git a/packages/svelte/src/internal/client/loop.js b/packages/svelte/src/internal/client/loop.js index d1c73e344fa3..768bfeefd615 100644 --- a/packages/svelte/src/internal/client/loop.js +++ b/packages/svelte/src/internal/client/loop.js @@ -4,10 +4,11 @@ import { raf } from './timing.js'; // TODO move this into timing.js where it probably belongs /** - * @param {number} now * @returns {void} */ -function run_tasks(now) { +function run_tasks() { + const now = raf.now(); + raf.tasks.forEach((task) => { if (!task.c(now)) { raf.tasks.delete(task); From 556eec994d6adc2da2294e45569d724ea636ef03 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 3 Dec 2024 20:43:51 -0500 Subject: [PATCH 2/2] note to our future selves --- packages/svelte/src/internal/client/loop.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/svelte/src/internal/client/loop.js b/packages/svelte/src/internal/client/loop.js index 768bfeefd615..9c1e972800fd 100644 --- a/packages/svelte/src/internal/client/loop.js +++ b/packages/svelte/src/internal/client/loop.js @@ -7,6 +7,8 @@ import { raf } from './timing.js'; * @returns {void} */ function run_tasks() { + // use `raf.now()` instead of the `requestAnimationFrame` callback argument, because + // otherwise things can get wonky https://github.com/sveltejs/svelte/pull/14541 const now = raf.now(); raf.tasks.forEach((task) => {