Conversation
Store qualified attribute names in a Map so V8 does not treat names such as `2539` as array indexes. Reconstructing formatting elements with those indexed properties could otherwise exhaust an Angular SSR worker's heap. Keep numeric names available through the standard attribute APIs, but do not mirror them onto NamedNodeMap because its numeric properties represent attribute positions. Add regression tests for parsing, mutation, cloning, and formatting reconstruction. Fixes angular/angular#70826
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.
Store qualified attribute names in a
Mapso V8 does not treat numeric names such as2539as array indexes. Reconstructing formatting elements with these properties could otherwise allocate large sparse backing stores and exhaust an Angular SSR worker's heap.Keep numeric names available through the standard attribute APIs while reserving
NamedNodeMapnumeric properties for attribute positions. Add regression coverage for parsing, mutation, cloning, namespaces, formatting reconstruction, and incremental parsing.Fixes angular/angular#70826
More context: https://issuetracker.google.com/issues/559856174