fix(utils): clone RegExp values with new RegExp instead of structuredClone (fix #19245, fix #18875)#19247
Merged
sapphi-red merged 1 commit intovitejs:mainfrom Jan 24, 2025
askoufis:fix/deep-clone-regexp
Merged
fix(utils): clone RegExp values with new RegExp instead of structuredClone (fix #19245, fix #18875)#19247sapphi-red merged 1 commit intovitejs:mainfrom askoufis:fix/deep-clone-regexp
RegExp values with new RegExp instead of structuredClone (fix #19245, fix #18875)#19247sapphi-red merged 1 commit intovitejs:mainfrom
askoufis:fix/deep-clone-regexp
Conversation
7 tasks
…turedClone` (fix #19245, fix #18875) - Jest appears to provide its own global `structuredClone` that modifies `RegExp`s in such a way that they fail `instanceof RegExp` checks, causing an error in a rollup plugin used by `vite` (and likely elsewhere). `new RegExp` seems to correctly clone `RegExp`s in Jest.
RegExp values with new RegExp instead of structuredClone (fix #19245, fix #18875)RegExp values with new RegExp instead of structuredClone (fix #19245, fix #18875)
patak-cat
approved these changes
Jan 21, 2025
moonlitusun
pushed a commit
to moonlitusun/vite
that referenced
this pull request
May 25, 2025
…turedClone` (fix vitejs#19245, fix vitejs#18875) (vitejs#19247)
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.
Fixes #19245. Fixes #18875.
Description
Jest appears to provide its own global
structuredClonethat modifiesRegExps in such a way that they failinstanceof RegExpchecks, causing an error in a rollup plugin used byvite(and likely other errors elsewhere). As suggested,new RegExpseems to correctly cloneRegExps in Jest.I thought about writing a test that modified the
structuredCloneglobal but decided against it as that's more like testing jest implementation detail rather than regexp cloning behaviour (which is already tested).