lib: avoid unsafe String methods that depend on RegExp prototype methods #36593
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.
The string prototype methods that take
RegExp
arguments depend on the following properties not being mutated by user code:String.prototype
methodRegExp.prototype
methodString.prototype.match
RegExp.prototype[Symbol.match]
, which dependson
RegExp.prototype.exec
String.prototype.matchAll
RegExp.prototype[Symbol.matchAll]
, which dependson
%RegExpStringIteratorPrototype%
String.prototype.replace
RegExp.prototype[Symbol.replace]
String.prototype.replaceAll
RegExp.prototype[Symbol.replace]
String.prototype.search
RegExp.prototype[Symbol.search]
String.prototype.split
RegExp.prototype[Symbol.split]
Note that the string‑taking overloads are safe‑ish.
Alternatively, it might be a good idea to create
SafeRegExp
.Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes