TC39 Proposal Signals
- title
- TC39 Proposal Signals
- type
- concept
- summary
- Stage 1 proposal to add native Signal primitives to JavaScript
- tags
- javascript, tc39, signals, standards
- parent
- reactive-signals
- created
- 2026-04-06
- updated
- 2026-04-06
A Stage 1 TC39 proposal to add a native Signal primitive to JavaScript. The goal isn't to replace framework-specific APIs (Solid's createSignal, Vue's ref, Preact's signal) but to provide a shared reactive foundation underneath them. Frameworks would keep their surface APIs but share the subscription, invalidation, and dependency-tracking machinery.
If adopted, this would mean signals from different frameworks could interoperate โ a Solid signal could feed into a Vue computed, because both would be built on the same native primitive.
The proposal covers the core push-pull algorithm: eager invalidation on write, lazy re-evaluation on read, automatic dependency tracking via an execution context stack. See signal-push-pull-algorithm for how this algorithm works in practice.
Stage 1 means the committee thinks the problem is worth solving, but the API shape is still open. No browser has shipped an implementation yet.
Related
- reactive-signals โ the broader concept
- signal-push-pull-algorithm โ implementation walkthrough of the algorithm this proposal would standardize