• Martin Bidlingmaier's avatar
    [regexp] Check capture_count before using experimental engine · bc4174cc
    Martin Bidlingmaier authored
    Sometimes the parser throws away redundant parts of the AST while
    parsing.  For example, the regexp /(?:(?=(f)o))?f/ is (almost)
    equivalent to just /f/ because the optional block (...)? is zero-length.
    The parser notices this and returns the same tree as for /f/.  However,
    there is a capture inside the (...)? block (which is never recorded
    because the quantifier containing it can only match zero-width, which is
    considered failure), so in this case it doesn't suffice to check that
    the regexp AST doesn't contain captures.
    
    Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
    Bug: v8:10765
    Change-Id: I6145849d95b3522a397eadd2bae63d1d8e880f28
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2397896Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Commit-Queue: Martin Bidlingmaier <mbid@google.com>
    Cr-Commit-Position: refs/heads/master@{#69733}
    bc4174cc
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
experimental Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
OWNERS Loading commit data...
gen-regexp-special-case.cc Loading commit data...
property-sequences.cc Loading commit data...
property-sequences.h Loading commit data...
regexp-ast.cc Loading commit data...
regexp-ast.h Loading commit data...
regexp-bytecode-generator-inl.h Loading commit data...
regexp-bytecode-generator.cc Loading commit data...
regexp-bytecode-generator.h Loading commit data...
regexp-bytecode-peephole.cc Loading commit data...
regexp-bytecode-peephole.h Loading commit data...
regexp-bytecodes.cc Loading commit data...
regexp-bytecodes.h Loading commit data...
regexp-compiler-tonode.cc Loading commit data...
regexp-compiler.cc Loading commit data...
regexp-compiler.h Loading commit data...
regexp-dotprinter.cc Loading commit data...
regexp-dotprinter.h Loading commit data...
regexp-error.cc Loading commit data...
regexp-error.h Loading commit data...
regexp-interpreter.cc Loading commit data...
regexp-interpreter.h Loading commit data...
regexp-macro-assembler-arch.h Loading commit data...
regexp-macro-assembler-tracer.cc Loading commit data...
regexp-macro-assembler-tracer.h Loading commit data...
regexp-macro-assembler.cc Loading commit data...
regexp-macro-assembler.h Loading commit data...
regexp-nodes.h Loading commit data...
regexp-parser.cc Loading commit data...
regexp-parser.h Loading commit data...
regexp-stack.cc Loading commit data...
regexp-stack.h Loading commit data...
regexp-utils.cc Loading commit data...
regexp-utils.h Loading commit data...
regexp.cc Loading commit data...
regexp.h Loading commit data...
special-case.h Loading commit data...