Unreviewed changes
5 is the latest approved patch-set.
The change was submitted with unreviewed changes in the following files:
```
The name of the file: src/regexp/regexp-compiler.cc
Insertions: 2, Deletions: 1.
@@ -321,6 +321,7 @@
work_list_(nullptr),
recursion_depth_(0),
flags_(flags),
+ macro_assembler_(nullptr),
one_byte_(one_byte),
reg_exp_too_big_(false),
limiting_recursion_(false),
@@ -1768,7 +1769,7 @@
// Do not collect any quick check details if the text node reads backward,
// since it reads in the opposite direction than we use for quick checks.
if (read_backward()) return;
- Isolate* isolate = compiler->macro_assembler()->isolate();
+ Isolate* isolate = compiler->isolate();
DCHECK(characters_filled_in < details->characters());
int characters = details->characters();
const uint32_t char_mask = CharMask(compiler->one_byte());
```
Change information
Commit message:
[regexp] Improve QuickCheck for CharacterRanges
Previously a character was only considered to match perfectly by a
quickcheck mask compare if the differing bits form a number like
00011111 with one single block of trailing 1s.
This means that for multiple singleton ranges (e.g. [aA]) we would not
mark the quickcheck as determining the character perfectly, although it
does.
Instead we now check if the total number of characters represented by a
character range is equal to all possible matches given the computed mask
(total characters == 2^(zeroes in mask)).
Change-Id: Ibab0f0a08a1bb7ce25ca8db9f5eeabdb3f6823b4
Cr-Commit-Position: refs/heads/main@{#107858}
Files:
- M src/regexp/regexp-compiler.cc
- M src/regexp/regexp-compiler.h
- M src/regexp/regexp-nodes.h
- M src/regexp/regexp-printer.h
- M test/unittests/regexp/regexp-unittest.cc
Change size: M
Delta: 5 files changed, 113 insertions(+), 19 deletions(-)
Branch: refs/heads/main
Submit Requirements:
Code-Review: +1 by Jakob Linke