preact
preact copied to clipboard
Experiment: Remove conditional error bubbling
trafficstars
This fixes #3233 by making error bubbling/propagation stop at the first componentDidCatch boundary, regardless of whether calling the method happens to setState (or otherwise mark its component as dirty).
This will fail our two conditional error bubbling tests, as it changes the behavior those are verifying.
📊 Tachometer Benchmark Results
Summary
duration
- 02_replace1k: unsure 🔍 -2% - +3% (-2.19ms - +3.50ms)
preact-local vs preact-master - 03_update10th1k_x16: unsure 🔍 -5% - +2% (-1.99ms - +1.05ms)
preact-local vs preact-master - 07_create10k: unsure 🔍 -2% - +1% (-21.45ms - +12.54ms)
preact-local vs preact-master - filter_list: unsure 🔍 -3% - +1% (-0.92ms - +0.36ms)
preact-local vs preact-master - hydrate1k: unsure 🔍 -9% - +2% (-17.55ms - +4.25ms)
preact-local vs preact-master - many_updates: unsure 🔍 -5% - +3% (-1.58ms - +1.09ms)
preact-local vs preact-master - text_update: unsure 🔍 -5% - +3% (-0.17ms - +0.12ms)
preact-local vs preact-master
usedJSHeapSize
- 02_replace1k: unsure 🔍 -0% - +0% (-0.01ms - +0.00ms)
preact-local vs preact-master - 03_update10th1k_x16: unsure 🔍 -0% - +0% (-0.00ms - +0.01ms)
preact-local vs preact-master - 07_create10k: unsure 🔍 -0% - +0% (-0.00ms - +0.00ms)
preact-local vs preact-master - filter_list: unsure 🔍 -0% - +0% (-0.00ms - +0.00ms)
preact-local vs preact-master - hydrate1k: unsure 🔍 -1% - +0% (-0.08ms - +0.01ms)
preact-local vs preact-master - many_updates: unsure 🔍 -0% - +0% (-0.00ms - +0.00ms)
preact-local vs preact-master - text_update: unsure 🔍 -0% - -0% (-0.00ms - -0.00ms)
preact-local vs preact-master
Results
02_replace1k
- Browser: chrome-headless 96.0.4664.45
- Sample size: 80
- Built by: Benchmarks #560
-
Commit: 7e84169
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 117.04ms - 121.25ms | - | unsure 🔍 -3% - +2% -3.50ms - +2.19ms |
| preact-local | 117.89ms - 121.72ms | unsure 🔍 -2% - +3% -2.19ms - +3.50ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 3.47ms - 3.48ms | - | unsure 🔍 -0% - +0% -0.00ms - +0.01ms |
| preact-local | 3.47ms - 3.48ms | unsure 🔍 -0% - +0% -0.01ms - +0.00ms | - |
run-warmup-0
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 44.06ms - 45.55ms | - | unsure 🔍 -2% - +3% -0.79ms - +1.21ms |
| preact-local | 43.93ms - 45.26ms | unsure 🔍 -3% - +2% -1.21ms - +0.79ms | - |
run-warmup-1
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 66.77ms - 69.44ms | - | unsure 🔍 -3% - +3% -1.79ms - +1.97ms |
| preact-local | 66.69ms - 69.34ms | unsure 🔍 -3% - +3% -1.97ms - +1.79ms | - |
run-warmup-2
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 56.98ms - 63.19ms | - | unsure 🔍 -4% - +11% -2.48ms - +6.33ms |
| preact-local | 55.03ms - 61.29ms | unsure 🔍 -10% - +4% -6.33ms - +2.48ms | - |
run-warmup-3
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 45.59ms - 52.36ms | - | unsure 🔍 -12% - +6% -6.12ms - +3.21ms |
| preact-local | 47.21ms - 53.63ms | unsure 🔍 -7% - +13% -3.21ms - +6.12ms | - |
run-warmup-4
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 64.13ms - 67.43ms | - | unsure 🔍 -5% - +2% -3.39ms - +1.40ms |
| preact-local | 65.04ms - 68.50ms | unsure 🔍 -2% - +5% -1.40ms - +3.39ms | - |
run-final
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 38.23ms - 40.97ms | - | unsure 🔍 -7% - +3% -2.91ms - +1.09ms |
| preact-local | 39.06ms - 41.96ms | unsure 🔍 -3% - +7% -1.09ms - +2.91ms | - |
03_update10th1k_x16
- Browser: chrome-headless 96.0.4664.45
- Sample size: 110
- Built by: Benchmarks #560
-
Commit: 7e84169
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 41.73ms - 43.85ms | - | unsure 🔍 -3% - +5% -1.05ms - +1.99ms |
| preact-local | 41.23ms - 43.41ms | unsure 🔍 -5% - +2% -1.99ms - +1.05ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 3.40ms - 3.40ms | - | unsure 🔍 -0% - +0% -0.01ms - +0.00ms |
| preact-local | 3.40ms - 3.40ms | unsure 🔍 -0% - +0% -0.00ms - +0.01ms | - |
07_create10k
- Browser: chrome-headless 96.0.4664.45
- Sample size: 50
- Built by: Benchmarks #560
-
Commit: 7e84169
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 1250.08ms - 1273.23ms | - | unsure 🔍 -1% - +2% -12.54ms - +21.45ms |
| preact-local | 1244.75ms - 1269.64ms | unsure 🔍 -2% - +1% -21.45ms - +12.54ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 25.32ms - 25.32ms | - | unsure 🔍 -0% - +0% -0.00ms - +0.00ms |
| preact-local | 25.32ms - 25.33ms | unsure 🔍 -0% - +0% -0.00ms - +0.00ms | - |
filter_list
- Browser: chrome-headless 96.0.4664.45
- Sample size: 50
- Built by: Benchmarks #560
-
Commit: 7e84169
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 28.70ms - 29.58ms | - | unsure 🔍 -1% - +3% -0.36ms - +0.92ms |
| preact-local | 28.40ms - 29.32ms | unsure 🔍 -3% - +1% -0.92ms - +0.36ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 1.54ms - 1.55ms | - | unsure 🔍 -0% - +0% -0.00ms - +0.00ms |
| preact-local | 1.55ms - 1.55ms | unsure 🔍 -0% - +0% -0.00ms - +0.00ms | - |
hydrate1k
- Browser: chrome-headless 96.0.4664.45
- Sample size: 80
- Built by: Benchmarks #560
-
Commit: 7e84169
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 192.71ms - 206.26ms | - | unsure 🔍 -2% - +9% -4.25ms - +17.55ms |
| preact-local | 184.30ms - 201.37ms | unsure 🔍 -9% - +2% -17.55ms - +4.25ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 6.19ms - 6.25ms | - | unsure 🔍 -0% - +1% -0.01ms - +0.08ms |
| preact-local | 6.15ms - 6.22ms | unsure 🔍 -1% - +0% -0.08ms - +0.01ms | - |
many_updates
- Browser: chrome-headless 96.0.4664.45
- Sample size: 60
- Built by: Benchmarks #560
-
Commit: 7e84169
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 33.86ms - 35.78ms | - | unsure 🔍 -3% - +5% -1.09ms - +1.58ms |
| preact-local | 33.65ms - 35.51ms | unsure 🔍 -5% - +3% -1.58ms - +1.09ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 4.61ms - 4.61ms | - | unsure 🔍 -0% - +0% -0.00ms - +0.00ms |
| preact-local | 4.61ms - 4.61ms | unsure 🔍 -0% - +0% -0.00ms - +0.00ms | - |
text_update
- Browser: chrome-headless 96.0.4664.45
- Sample size: 60
- Built by: Benchmarks #560
-
Commit: 7e84169
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 3.47ms - 3.67ms | - | unsure 🔍 -3% - +5% -0.12ms - +0.17ms |
| preact-local | 3.43ms - 3.65ms | unsure 🔍 -5% - +3% -0.17ms - +0.12ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 0.78ms - 0.78ms | - | unsure 🔍 +0% - +0% +0.00ms - +0.00ms |
| preact-local | 0.78ms - 0.78ms | unsure 🔍 -0% - -0% -0.00ms - -0.00ms | - |
Size Change: -10 B (0%)
Total Size: 42.1 kB
| Filename | Size | Change | |
|---|---|---|---|
dist/preact.js |
3.96 kB | -2 B (0%) | |
dist/preact.min.js |
4 kB | -2 B (0%) | |
dist/preact.module.js |
3.99 kB | -3 B (0%) | |
dist/preact.umd.js |
4.03 kB | -3 B (0%) |
ℹ️ View Unchanged
| Filename | Size | Change | |
|---|---|---|---|
compat/dist/compat.js |
3.44 kB | 0 B | |
compat/dist/compat.module.js |
3.42 kB | 0 B | |
compat/dist/compat.umd.js |
3.49 kB | 0 B | |
debug/dist/debug.js |
2.99 kB | 0 B | |
debug/dist/debug.module.js |
2.98 kB | 0 B | |
debug/dist/debug.umd.js |
3.07 kB | 0 B | |
devtools/dist/devtools.js |
232 B | 0 B | |
devtools/dist/devtools.module.js |
240 B | 0 B | |
devtools/dist/devtools.umd.js |
308 B | 0 B | |
hooks/dist/hooks.js |
1.14 kB | 0 B | |
hooks/dist/hooks.module.js |
1.16 kB | 0 B | |
hooks/dist/hooks.umd.js |
1.22 kB | 0 B | |
jsx-runtime/dist/jsxRuntime.js |
317 B | 0 B | |
jsx-runtime/dist/jsxRuntime.module.js |
327 B | 0 B | |
jsx-runtime/dist/jsxRuntime.umd.js |
395 B | 0 B | |
test-utils/dist/testUtils.js |
437 B | 0 B | |
test-utils/dist/testUtils.module.js |
439 B | 0 B | |
test-utils/dist/testUtils.umd.js |
515 B | 0 B |