Skip to content

undefined prototype#5041

Merged
JoviDeCroock merged 2 commits intov10.xfrom
account-for-undefined-prototype
Feb 25, 2026
Merged

undefined prototype#5041
JoviDeCroock merged 2 commits intov10.xfrom
account-for-undefined-prototype

Conversation

@JoviDeCroock
Copy link
Copy Markdown
Member

This could be faster/save bytes so doing a quick check before adding a test

Resolves #5011

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 25, 2026

📊 Tachometer Benchmark Results

Summary

duration

  • create10k: unsure 🔍 -0% - +1% (-3.47ms - +7.14ms)
    preact-local vs preact-main
  • filter-list: unsure 🔍 -0% - +1% (-0.07ms - +0.16ms)
    preact-local vs preact-main
  • hydrate1k: slower ❌ 1% - 3% (0.41ms - 2.06ms)
    preact-local vs preact-main
  • many-updates: unsure 🔍 -1% - +0% (-0.18ms - +0.01ms)
    preact-local vs preact-main
  • replace1k: unsure 🔍 -2% - +1% (-1.33ms - +0.62ms)
    preact-local vs preact-main
  • text-update: unsure 🔍 -7% - +4% (-0.15ms - +0.07ms)
    preact-local vs preact-main
  • todo: unsure 🔍 -0% - +2% (-0.02ms - +0.67ms)
    preact-local vs preact-main
  • update10th1k: unsure 🔍 -1% - +5% (-0.20ms - +1.48ms)
    preact-local vs preact-main

usedJSHeapSize

  • create10k: unsure 🔍 -0% - +0% (-0.00ms - +0.00ms)
    preact-local vs preact-main
  • filter-list: unsure 🔍 -0% - +0% (-0.00ms - +0.00ms)
    preact-local vs preact-main
  • hydrate1k: unsure 🔍 -2% - +10% (-0.13ms - +0.61ms)
    preact-local vs preact-main
  • many-updates: unsure 🔍 +0% - +0% (+0.00ms - +0.01ms)
    preact-local vs preact-main
  • replace1k: unsure 🔍 +0% - +0% (+0.00ms - +0.00ms)
    preact-local vs preact-main
  • text-update: unsure 🔍 -5% - +1% (-0.06ms - +0.01ms)
    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-local880.81ms - 888.29ms-unsure 🔍
-0% - +1%
-3.47ms - +7.14ms
preact-main878.95ms - 886.48msunsure 🔍
-1% - +0%
-7.14ms - +3.47ms
-

usedJSHeapSize

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

duration

VersionAvg timevs preact-localvs preact-main
preact-local16.53ms - 16.58ms-unsure 🔍
-0% - +1%
-0.07ms - +0.16ms
preact-main16.40ms - 16.62msunsure 🔍
-1% - +0%
-0.16ms - +0.07ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.55ms - 1.56ms-unsure 🔍
-0% - +0%
-0.00ms - +0.00ms
preact-main1.56ms - 1.56msunsure 🔍
-0% - +0%
-0.00ms - +0.00ms
-
hydrate1k

duration

VersionAvg timevs preact-localvs preact-main
preact-local60.22ms - 61.38ms-slower ❌
1% - 3%
0.41ms - 2.06ms
preact-main58.98ms - 60.15msfaster ✔
1% - 3%
0.41ms - 2.06ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local6.06ms - 6.64ms-unsure 🔍
-2% - +10%
-0.13ms - +0.61ms
preact-main5.88ms - 6.35msunsure 🔍
-9% - +2%
-0.61ms - +0.13ms
-
many-updates

duration

VersionAvg timevs preact-localvs preact-main
preact-local16.37ms - 16.55ms-unsure 🔍
-1% - +0%
-0.18ms - +0.01ms
preact-main16.52ms - 16.58msunsure 🔍
-0% - +1%
-0.01ms - +0.18ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local3.72ms - 3.72ms-unsure 🔍
+0% - +0%
+0.00ms - +0.01ms
preact-main3.71ms - 3.72msunsure 🔍
-0% - -0%
-0.01ms - -0.00ms
-
replace1k
  • Browser: chrome-headless
  • Sample size: 100
  • Built by: CI #5426
  • Commit: 90cf9d7

duration

VersionAvg timevs preact-localvs preact-main
preact-local59.94ms - 61.45ms-unsure 🔍
-2% - +1%
-1.33ms - +0.62ms
preact-main60.44ms - 61.67msunsure 🔍
-1% - +2%
-0.62ms - +1.33ms
-

usedJSHeapSize

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

run-warmup-0

VersionAvg timevs preact-localvs preact-main
preact-local26.92ms - 27.75ms-unsure 🔍
-3% - +1%
-0.84ms - +0.31ms
preact-main27.19ms - 28.00msunsure 🔍
-1% - +3%
-0.31ms - +0.84ms
-

run-warmup-1

VersionAvg timevs preact-localvs preact-main
preact-local33.73ms - 35.28ms-unsure 🔍
-1% - +5%
-0.35ms - +1.67ms
preact-main33.20ms - 34.49msunsure 🔍
-5% - +1%
-1.67ms - +0.35ms
-

run-warmup-2

VersionAvg timevs preact-localvs preact-main
preact-local34.22ms - 35.31ms-unsure 🔍
-2% - +2%
-0.71ms - +0.86ms
preact-main34.13ms - 35.26msunsure 🔍
-2% - +2%
-0.86ms - +0.71ms
-

run-warmup-3

VersionAvg timevs preact-localvs preact-main
preact-local27.11ms - 27.58ms-unsure 🔍
-2% - +1%
-0.42ms - +0.27ms
preact-main27.16ms - 27.67msunsure 🔍
-1% - +2%
-0.27ms - +0.42ms
-

run-warmup-4

VersionAvg timevs preact-localvs preact-main
preact-local24.79ms - 26.02ms-unsure 🔍
-5% - +2%
-1.40ms - +0.45ms
preact-main25.19ms - 26.57msunsure 🔍
-2% - +6%
-0.45ms - +1.40ms
-

run-final

VersionAvg timevs preact-localvs preact-main
preact-local22.53ms - 23.01ms-unsure 🔍
-1% - +2%
-0.17ms - +0.46ms
preact-main22.41ms - 22.82msunsure 🔍
-2% - +1%
-0.46ms - +0.17ms
-
text-update
  • Browser: chrome-headless
  • Sample size: 240
  • Built by: CI #5426
  • Commit: 90cf9d7

duration

VersionAvg timevs preact-localvs preact-main
preact-local1.88ms - 2.03ms-unsure 🔍
-7% - +4%
-0.15ms - +0.07ms
preact-main1.91ms - 2.08msunsure 🔍
-4% - +8%
-0.07ms - +0.15ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.00ms - 1.04ms-unsure 🔍
-5% - +1%
-0.06ms - +0.01ms
preact-main1.02ms - 1.07msunsure 🔍
-1% - +5%
-0.01ms - +0.06ms
-
todo

duration

VersionAvg timevs preact-localvs preact-main
preact-local33.39ms - 33.95ms-unsure 🔍
-0% - +2%
-0.02ms - +0.67ms
preact-main33.14ms - 33.54msunsure 🔍
-2% - +0%
-0.67ms - +0.02ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.24ms - 1.25ms-unsure 🔍
-0% - +0%
-0.00ms - +0.00ms
preact-main1.24ms - 1.25msunsure 🔍
-0% - +0%
-0.00ms - +0.00ms
-
update10th1k
  • Browser: chrome-headless
  • Sample size: 120
  • Built by: CI #5426
  • Commit: 90cf9d7

duration

VersionAvg timevs preact-localvs preact-main
preact-local30.36ms - 31.62ms-unsure 🔍
-1% - +5%
-0.20ms - +1.48ms
preact-main29.79ms - 30.90msunsure 🔍
-5% - +1%
-1.48ms - +0.20ms
-

usedJSHeapSize

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

tachometer-reporter-action v2 for CI

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 25, 2026

Size Change: -44 B (-0.06%)

Total Size: 78.7 kB

Filename Size Change
dist/preact.js 4.71 kB -8 B (-0.17%)
dist/preact.min.js 4.72 kB -6 B (-0.13%)
dist/preact.min.module.js 4.74 kB -6 B (-0.13%)
dist/preact.min.umd.js 4.75 kB -6 B (-0.13%)
dist/preact.mjs 4.73 kB -6 B (-0.13%)
dist/preact.module.js 4.73 kB -6 B (-0.13%)
dist/preact.umd.js 4.75 kB -6 B (-0.13%)
ℹ️ View Unchanged
Filename Size
compat/dist/compat.js 4.19 kB
compat/dist/compat.mjs 4.11 kB
compat/dist/compat.module.js 4.11 kB
compat/dist/compat.umd.js 4.25 kB
debug/dist/debug.js 3.85 kB
debug/dist/debug.mjs 3.85 kB
debug/dist/debug.module.js 3.85 kB
debug/dist/debug.umd.js 3.93 kB
devtools/dist/devtools.js 260 B
devtools/dist/devtools.mjs 274 B
devtools/dist/devtools.module.js 274 B
devtools/dist/devtools.umd.js 346 B
hooks/dist/hooks.js 1.52 kB
hooks/dist/hooks.mjs 1.56 kB
hooks/dist/hooks.module.js 1.56 kB
hooks/dist/hooks.umd.js 1.59 kB
jsx-runtime/dist/jsxRuntime.js 1.01 kB
jsx-runtime/dist/jsxRuntime.mjs 985 B
jsx-runtime/dist/jsxRuntime.module.js 985 B
jsx-runtime/dist/jsxRuntime.umd.js 1.08 kB
test-utils/dist/testUtils.js 473 B
test-utils/dist/testUtils.mjs 477 B
test-utils/dist/testUtils.module.js 477 B
test-utils/dist/testUtils.umd.js 555 B

compressed-size-action

Copy link
Copy Markdown
Member

@rschristian rschristian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hope you're on vacation as you were also pushing a PR 4 hours ago and that'd be staggeringly little sleep otherwise 😅

@JoviDeCroock JoviDeCroock merged commit b341bfe into v10.x Feb 25, 2026
12 checks passed
@JoviDeCroock JoviDeCroock deleted the account-for-undefined-prototype branch February 25, 2026 07:14
@JoviDeCroock JoviDeCroock mentioned this pull request Mar 10, 2026
JoviDeCroock added a commit that referenced this pull request Mar 10, 2026
* undefined prototype

* Add test

(cherry picked from commit b341bfe)
JoviDeCroock added a commit that referenced this pull request Mar 15, 2026
* Fix crash where a synchronous effect render unmounts the tree (#5026)

(cherry picked from commit 8cbed5f)

* Golf down compat (#5025)

* Make useFlushSync do sync flushes

* Golf bytes to offset change

* Some more golfing

* Revert "Make useFlushSync do sync flushes"

This reverts commit 001bbce.

(cherry picked from commit af4c459)

* Implement flushSync (#5036)

(cherry picked from commit 978c0b9)

* undefined prototype (#5041)

* undefined prototype

* Add test

(cherry picked from commit b341bfe)

* Ensure we reset renderCount (#5017)

* Golf some bytes and ensure we reset renderCount

* Apply suggestion from @JoviDeCroock

* Add test

(cherry picked from commit 55254ef)

* fix(compat): export StrictMode directly
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.

2 participants