Skip to content

[pull] main from mobxjs:main#51

Merged
pull[bot] merged 2 commits into
code:mainfrom
mobxjs:main
May 27, 2026
Merged

[pull] main from mobxjs:main#51
pull[bot] merged 2 commits into
code:mainfrom
mobxjs:main

Conversation

@pull

@pull pull Bot commented May 27, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

kubk and others added 2 commits May 27, 2026 10:23
* Replace lerna with npm / yarn

* Replace yarn 1 with npm

* Keep mobx-undecorate CLI diff focused

* Add changeset for mobx-undecorate CLI fix
* fix(mobx): make 2022.3 @computed decorator lazy

ComputedValue is now created on first read of the decorated getter
instead of eagerly during instance construction, so getters that are
never accessed on a given instance no longer allocate a ComputedValue.

Closes #4616

* perf(mobx): collapse lazy-computed read to one map lookup

Address review on #4639:

- getObservablePropValue_ / setObservablePropValue_ / getAtom now do
  values_.get(key) ?? materializeLazyComputed_(key), so the hot path
  (computed already materialised, plain observable, or non-lazy class)
  is a single Map lookup instead of two.
- materializeLazyComputed_ returns the freshly-built ComputedValue
  (or undefined when the key isn't lazy) so callers don't have to look
  it up again. Drops the unused boolean return.

* test(mobx): add @computed decorator perf benchmark

Adds a standalone perf benchmark for the lazy `@computed` decorator (#4639):
50k instances × 10 getters with 1 read/instance — the realistic "wide class,
sparse access" shape from #4616. Run with `yarn perf-decorator` (requires a
prior `yarn build`).

* chore(changeset): mark lazy @computed decorator as feat/minor

Per maintainer review on #4639: the lazy `@computed` decorator is a perf
improvement worth a minor bump rather than a patch. Reframes the entry as
`feat:` and notes the construction heap / time savings measured by the
benchmark added in the previous commit.

---------

Co-authored-by: Michel Weststrate <mweststrate@gmail.com>
@pull pull Bot locked and limited conversation to collaborators May 27, 2026
@pull pull Bot added the ⤵️ pull label May 27, 2026
@pull pull Bot merged commit 6b3fb0e into code:main May 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants