Skip to content

Fix proxy invariant crash when produce draft is returned from a getter #2690

Open
brenelz wants to merge 1 commit intosolidjs:mainfrom
brenelz:fix/2668-leaked-produce-draft-proxy-invariant
Open

Fix proxy invariant crash when produce draft is returned from a getter #2690
brenelz wants to merge 1 commit intosolidjs:mainfrom
brenelz:fix/2668-leaked-produce-draft-proxy-invariant

Conversation

@brenelz
Copy link
Copy Markdown

@brenelz brenelz commented May 4, 2026

Used AI to create a fix for this.

Closes #2668

setterTraps.get in store/modifiers now bypasses internal store symbols ($PROXY, $TRACK, $NODE, $HAS) and proto, mirroring the main store proxy traps. Previously, reading $PROXY through the produce draft proxy returned a freshly wrapped draft instead of the underlying store proxy, violating the non-configurable data property invariant on the raw target.

solidjs#2668)

setterTraps.get in store/modifiers now bypasses internal store symbols
($PROXY, $TRACK, $NODE, $HAS) and __proto__, mirroring the main store
proxy traps. Previously, reading $PROXY through the produce draft proxy
returned a freshly wrapped draft instead of the underlying store proxy,
violating the non-configurable data property invariant on the raw target.
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 4, 2026

⚠️ No Changeset found

Latest commit: afeb508

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

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.

Browser store build can crash with a proxy invariant error when a getter returns a leaked produce draft proxy

1 participant