Skip to content

Forwardport v10.x fixes since 2026-03-25#5089

Merged
JoviDeCroock merged 5 commits into
mainfrom
chore/forwardport-v10x-since-2026-03-25
May 16, 2026
Merged

Forwardport v10.x fixes since 2026-03-25#5089
JoviDeCroock merged 5 commits into
mainfrom
chore/forwardport-v10x-since-2026-03-25

Conversation

@JoviDeCroock

Copy link
Copy Markdown
Member

Summary

Notes

  • I did not forwardport the v10-only release/versioning commits from this window (10.29.1, trusted publishing adjustments, and the Playwright postinstall change) because main already has the relevant publishing/test setup or those changes are branch-version specific.
  • I also dropped an unused Fragment import introduced by the backported test.

Test Plan

  • ./node_modules/.bin/vitest run test/browser/keys.test.jsx test/browser/hydrate.test.jsx
  • MINIFY=true ./node_modules/.bin/vitest run test/browser/keys.test.jsx test/browser/hydrate.test.jsx
  • npm run test:ts
  • npm run lint

…ys (#5065) (#5067)

When a VNode is moved via INSERT_VNODE during diffChildren, its old _dom
pointer becomes a stale positional reference. Nested diffs that call
getDomSibling would traverse the old VNode tree and find this stale _dom,
causing subsequent DOM insertions at the wrong position.

Clear the old VNode's _dom after insert so getDomSibling skips moved
VNodes and finds the correct insertion point.
@github-actions

github-actions Bot commented May 16, 2026

Copy link
Copy Markdown

📊 Tachometer Benchmark Results

Summary

duration

  • create10k: unsure 🔍 -1% - +1% (-5.92ms - +4.78ms)
    preact-local vs preact-main
  • filter-list: unsure 🔍 -1% - +1% (-0.15ms - +0.15ms)
    preact-local vs preact-main
  • hydrate1k: unsure 🔍 -1% - +1% (-0.69ms - +0.41ms)
    preact-local vs preact-main
  • many-updates: unsure 🔍 -1% - +4% (-0.10ms - +0.72ms)
    preact-local vs preact-main
  • replace1k: unsure 🔍 -2% - +0% (-1.36ms - +0.27ms)
    preact-local vs preact-main
  • text-update: unsure 🔍 -5% - +1% (-0.09ms - +0.03ms)
    preact-local vs preact-main
  • todo: unsure 🔍 -0% - +1% (-0.04ms - +0.28ms)
    preact-local vs preact-main
  • update10th1k: unsure 🔍 -3% - +4% (-1.03ms - +1.40ms)
    preact-local vs preact-main

usedJSHeapSize

  • create10k: unsure 🔍 +0% - +0% (+0.00ms - +0.00ms)
    preact-local vs preact-main
  • filter-list: slower ❌ 0% - 1% (0.00ms - 0.01ms)
    preact-local vs preact-main
  • hydrate1k: unsure 🔍 -2% - +4% (-0.12ms - +0.19ms)
    preact-local vs preact-main
  • many-updates: unsure 🔍 -0% - +0% (-0.00ms - +0.01ms)
    preact-local vs preact-main
  • replace1k: unsure 🔍 -0% - +0% (-0.01ms - +0.00ms)
    preact-local vs preact-main
  • text-update: unsure 🔍 -2% - +3% (-0.02ms - +0.03ms)
    preact-local vs preact-main
  • todo: unsure 🔍 +0% - +0% (+0.00ms - +0.00ms)
    preact-local vs preact-main
  • update10th1k: unsure 🔍 -0% - +0% (-0.00ms - +0.01ms)
    preact-local vs preact-main

Results

create10k

duration

VersionAvg timevs preact-localvs preact-main
preact-local865.53ms - 872.45ms-unsure 🔍
-1% - +1%
-5.92ms - +4.78ms
preact-main865.48ms - 873.65msunsure 🔍
-1% - +1%
-4.78ms - +5.92ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local19.05ms - 19.05ms-unsure 🔍
+0% - +0%
+0.00ms - +0.00ms
preact-main19.05ms - 19.05msunsure 🔍
-0% - -0%
-0.00ms - -0.00ms
-
filter-list

duration

VersionAvg timevs preact-localvs preact-main
preact-local16.53ms - 16.69ms-unsure 🔍
-1% - +1%
-0.15ms - +0.15ms
preact-main16.48ms - 16.73msunsure 🔍
-1% - +1%
-0.15ms - +0.15ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.55ms - 1.56ms-slower ❌
0% - 1%
0.00ms - 0.01ms
preact-main1.55ms - 1.55msfaster ✔
0% - 1%
0.00ms - 0.01ms
-
hydrate1k

duration

VersionAvg timevs preact-localvs preact-main
preact-local55.96ms - 56.61ms-unsure 🔍
-1% - +1%
-0.69ms - +0.41ms
preact-main55.98ms - 56.87msunsure 🔍
-1% - +1%
-0.41ms - +0.69ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local5.18ms - 5.41ms-unsure 🔍
-2% - +4%
-0.12ms - +0.19ms
preact-main5.15ms - 5.36msunsure 🔍
-4% - +2%
-0.19ms - +0.12ms
-
many-updates

duration

VersionAvg timevs preact-localvs preact-main
preact-local16.48ms - 17.24ms-unsure 🔍
-1% - +4%
-0.10ms - +0.72ms
preact-main16.39ms - 16.70msunsure 🔍
-4% - +1%
-0.72ms - +0.10ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local3.73ms - 3.74ms-unsure 🔍
-0% - +0%
-0.00ms - +0.01ms
preact-main3.73ms - 3.74msunsure 🔍
-0% - +0%
-0.01ms - +0.00ms
-
replace1k
  • Browser: chrome-headless
  • Sample size: 100
  • Built by: CI #5501
  • Commit: 5b9ada6

duration

VersionAvg timevs preact-localvs preact-main
preact-local56.34ms - 57.46ms-unsure 🔍
-2% - +0%
-1.36ms - +0.27ms
preact-main56.85ms - 58.04msunsure 🔍
-0% - +2%
-0.27ms - +1.36ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local3.00ms - 3.01ms-unsure 🔍
-0% - +0%
-0.01ms - +0.00ms
preact-main3.00ms - 3.01msunsure 🔍
-0% - +0%
-0.00ms - +0.01ms
-

run-warmup-0

VersionAvg timevs preact-localvs preact-main
preact-local27.59ms - 28.32ms-unsure 🔍
-2% - +1%
-0.69ms - +0.36ms
preact-main27.75ms - 28.50msunsure 🔍
-1% - +2%
-0.36ms - +0.69ms
-

run-warmup-1

VersionAvg timevs preact-localvs preact-main
preact-local31.74ms - 32.64ms-unsure 🔍
-1% - +3%
-0.35ms - +0.90ms
preact-main31.48ms - 32.35msunsure 🔍
-3% - +1%
-0.90ms - +0.35ms
-

run-warmup-2

VersionAvg timevs preact-localvs preact-main
preact-local32.93ms - 33.83ms-unsure 🔍
-1% - +3%
-0.37ms - +0.93ms
preact-main32.63ms - 33.57msunsure 🔍
-3% - +1%
-0.93ms - +0.37ms
-

run-warmup-3

VersionAvg timevs preact-localvs preact-main
preact-local25.63ms - 26.03ms-unsure 🔍
-2% - +1%
-0.52ms - +0.23ms
preact-main25.66ms - 26.29msunsure 🔍
-1% - +2%
-0.23ms - +0.52ms
-

run-warmup-4

VersionAvg timevs preact-localvs preact-main
preact-local24.39ms - 26.21ms-unsure 🔍
-2% - +8%
-0.51ms - +1.93ms
preact-main23.77ms - 25.41msunsure 🔍
-8% - +2%
-1.93ms - +0.51ms
-

run-final

VersionAvg timevs preact-localvs preact-main
preact-local20.97ms - 21.43ms-unsure 🔍
-2% - +1%
-0.38ms - +0.26ms
preact-main21.04ms - 21.48msunsure 🔍
-1% - +2%
-0.26ms - +0.38ms
-
text-update
  • Browser: chrome-headless
  • Sample size: 180
  • Built by: CI #5501
  • Commit: 5b9ada6

duration

VersionAvg timevs preact-localvs preact-main
preact-local1.80ms - 1.88ms-unsure 🔍
-5% - +1%
-0.09ms - +0.03ms
preact-main1.83ms - 1.91msunsure 🔍
-1% - +5%
-0.03ms - +0.09ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.00ms - 1.04ms-unsure 🔍
-2% - +3%
-0.02ms - +0.03ms
preact-main1.00ms - 1.03msunsure 🔍
-3% - +2%
-0.03ms - +0.02ms
-
todo

duration

VersionAvg timevs preact-localvs preact-main
preact-local29.87ms - 30.12ms-unsure 🔍
-0% - +1%
-0.04ms - +0.28ms
preact-main29.78ms - 29.98msunsure 🔍
-1% - +0%
-0.28ms - +0.04ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.26ms - 1.26ms-unsure 🔍
+0% - +0%
+0.00ms - +0.00ms
preact-main1.25ms - 1.25msunsure 🔍
-0% - -0%
-0.00ms - -0.00ms
-
update10th1k

duration

VersionAvg timevs preact-localvs preact-main
preact-local31.69ms - 33.49ms-unsure 🔍
-3% - +4%
-1.03ms - +1.40ms
preact-main31.59ms - 33.22msunsure 🔍
-4% - +3%
-1.40ms - +1.03ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local2.96ms - 2.97ms-unsure 🔍
-0% - +0%
-0.00ms - +0.01ms
preact-main2.96ms - 2.97msunsure 🔍
-0% - +0%
-0.01ms - +0.00ms
-

tachometer-reporter-action v2 for CI

@github-actions

Copy link
Copy Markdown

Size Change: +193 B (+0.41%)

Total Size: 47.7 kB

📦 View Changed
Filename Size Change
dist/preact.js 4.75 kB +65 B (+1.39%)
dist/preact.mjs 4.76 kB +65 B (+1.38%)
dist/preact.umd.js 4.81 kB +63 B (+1.33%)
ℹ️ View Unchanged
Filename Size
compat/dist/compat.js 3.93 kB
compat/dist/compat.mjs 3.87 kB
compat/dist/compat.umd.js 4 kB
debug/dist/debug.js 3.91 kB
debug/dist/debug.mjs 3.91 kB
debug/dist/debug.umd.js 3.99 kB
devtools/dist/devtools.js 263 B
devtools/dist/devtools.mjs 273 B
devtools/dist/devtools.umd.js 348 B
hooks/dist/hooks.js 1.52 kB
hooks/dist/hooks.mjs 1.55 kB
hooks/dist/hooks.umd.js 1.58 kB
jsx-runtime/dist/jsxRuntime.js 892 B
jsx-runtime/dist/jsxRuntime.mjs 861 B
jsx-runtime/dist/jsxRuntime.umd.js 966 B
test-utils/dist/testUtils.js 473 B
test-utils/dist/testUtils.mjs 473 B
test-utils/dist/testUtils.umd.js 555 B

compressed-size-action

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 98.528% (-0.1%) from 98.666% — chore/forwardport-v10x-since-2026-03-25 into main

@JoviDeCroock JoviDeCroock merged commit fb5bbda into main May 16, 2026
12 of 13 checks passed
@JoviDeCroock JoviDeCroock deleted the chore/forwardport-v10x-since-2026-03-25 branch May 16, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants