• Martin Bidlingmaier's avatar
    [regexp] Add 'l' flag to force experimental engine · 5720d205
    Martin Bidlingmaier authored
    This commit adds the 'l' (linear) RegExp flag (as in e.g. /asdf|123/l)
    that forces execution in linear time.  These regexps are handled by the
    experimental engine.  If the experimental engine cannot handle the
    pattern, an exception is thrown on creation of the regexp.
    
    The commit also adds a new global V8 flag and changes an existing one:
    * --enable-experimental-engine, which turns on recognition of the RegExp
      'l' flag.  Previously this flag also caused all supported regexps to
      be executed by the experimental engine; this is not the case anymore.
    * --default-to-experimental-regexp-engine takes over the previous
      semantics of --enable-experimental-regexp-engine:  We execute all
      supported regexps with the experimental engine.
    
    Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
    Bug: v8:10765
    Change-Id: I5622a89b19404105e8be280d454e9fdd63c003b3
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461244Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Commit-Queue: Martin Bidlingmaier <mbid@google.com>
    Cr-Commit-Position: refs/heads/master@{#70892}
    5720d205
js-regexp.h 12.4 KB