• Martin Bidlingmaier's avatar
    [regexp] Support the msy flags in experimental engine · e6e9cbac
    Martin Bidlingmaier authored
    The m (multiline) and s (dotall) flags just needed to be marked as
    allowed; the required logic was already in the regexp parser.
    
    A regexp /<x>/ without the y (sticky) flag is equivalent to the sticky
    regexp /.*?<x>/y.  The interpreter now assumes that every regexp is
    sticky, and the compiler appends a preamble corresponding to /.*?/
    before non-sticky regexps.  To reuse existing code for compiling this
    preamble, the logic for each kind of quantifier is now in a separate
    function and called from VisitQuantifier and for the preamble.
    
    The commit also includes some improvements/fixes for character ranges:
    - Empty character ranges/disjunctions should never match, but before
      this commit they would *always* match.
    - The check of the range bounds in CanBeHandledVisitor was unncessary;
      without the unicode flag this can't be a range that can't be specified
      in 2-byte codepoints, and once we support unicode we simply support
      all codepoints.
    - The capacity of the list containing the complementary intervals of a
      character range is now calculated more accurately.
    
    Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
    Bug: v8:10765
    Change-Id: I71a0e07279b4e1140c0ed1651b3714200c801de9
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2404766
    Commit-Queue: Martin Bidlingmaier <mbid@google.com>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70082}
    e6e9cbac
Name
Last commit
Last update
..
OWNERS Loading commit data...
runtime-array.cc Loading commit data...
runtime-atomics.cc Loading commit data...
runtime-bigint.cc Loading commit data...
runtime-classes.cc Loading commit data...
runtime-collections.cc Loading commit data...
runtime-compiler.cc Loading commit data...
runtime-date.cc Loading commit data...
runtime-debug.cc Loading commit data...
runtime-forin.cc Loading commit data...
runtime-function.cc Loading commit data...
runtime-futex.cc Loading commit data...
runtime-generator.cc Loading commit data...
runtime-internal.cc Loading commit data...
runtime-interpreter.cc Loading commit data...
runtime-intl.cc Loading commit data...
runtime-literals.cc Loading commit data...
runtime-module.cc Loading commit data...
runtime-numbers.cc Loading commit data...
runtime-object.cc Loading commit data...
runtime-operators.cc Loading commit data...
runtime-promise.cc Loading commit data...
runtime-proxy.cc Loading commit data...
runtime-regexp.cc Loading commit data...
runtime-scopes.cc Loading commit data...
runtime-strings.cc Loading commit data...
runtime-symbol.cc Loading commit data...
runtime-test.cc Loading commit data...
runtime-typedarray.cc Loading commit data...
runtime-utils.h Loading commit data...
runtime-wasm.cc Loading commit data...
runtime-weak-refs.cc Loading commit data...
runtime.cc Loading commit data...
runtime.h Loading commit data...