Repository navigation
Fix special values resolved by nested promises - #229
Open
mayankdhingra02 wants to merge 1 commit into
Open
mayankdhingra02 wants to merge 1 commit into
mayankdhingra02 wants to merge 1 commit into
Conversation
Resolve promise references after asynchronous serialization so nested special values retain their sentinel meaning. Remap references after omitting aliases, including promises that resolve to an existing value. Escape custom reducer names before emitting internal reference tokens. Cover container types, repeated references, typed-array metadata, and reducer names with regression tests. Signed-off-by: Mayank Dhingra <mayankdhingra02@gmail.com>
|
Install the latest version of pnpm add https://pkg.svelte.dev/devalue/c/a92297b6f8b1040cd6cf9243a3f4e7eecd9ff2b8Open in Note This PR is from a fork. A maintainer must approve approve each commit before it can be built and installed. |
🦋 Changeset detectedLatest commit: a92297b The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Nested promises resolving to
undefined,NaN, negative zero or infinities currently round-trip as the serializer's negative sentinel numbers.Resolve promise aliases after settlement, then compact the aliased slots and remap references before emitting JSON. The parser and wire format stay the same. Regressions cover objects, arrays, Sets, Maps, sparse arrays, custom payloads, shared references, cycles and typed-array offsets.
The reducer-name escaping overlaps #228. It is needed here to keep user-provided names separate from internal reference markers.
Closes #211
Validation: all 1,358 tests pass, along with type checks, build, repository formatting and publint. The new regression cases fail on the original serializer. Includes a patch changeset.