fix(core): Avoid functionToStringIntegration causing infinite recursions#22515
Open
Lms24 wants to merge 1 commit into
Open
fix(core): Avoid functionToStringIntegration causing infinite recursions#22515Lms24 wants to merge 1 commit into
functionToStringIntegration causing infinite recursions#22515Lms24 wants to merge 1 commit into
Conversation
Avoid delegating through mutable Reflect.apply, which can re-enter the FunctionToString patch when other libraries instrument native functions. Retain the cross-origin carrier fallback while using the plain wrapper. Co-Authored-By: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Lms24
marked this pull request as ready for review
July 22, 2026 17:05
functionToStringIntegration causing infinite recursions
Contributor
size-limit report 📦
|
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.
Prevent
FunctionToStringfrom delegating through mutableReflect.apply, which can re-enter the integration when another library performs function integrity checks.This PR restores the plain wrapper while retaining the cross-origin fallback from #2227 and adds a regression test for reentrant
Reflect.apply.To be clear, the repro for this seems extremely superficial. When inspecting the supplied stack trace of the customer reporting this issue, we found some evidence for another library mocking with the functino prototype's toString(). No concrete evidence though for re-entering via
Reflect.apply().Refs #21965
fixes https://linear.app/getsentry/issue/JS-3120/investigate-possible-functionprototypetostring-regression-causing