c977b65bb9
The eats_at_least (EAL) value is applied in forward-directions only. Two reasons for that which are relevant to this CL: - EAL's of neighboring nodes are combined additively, irrespective of their read_backward value. - EatsAtLeastPropagator::VisitText uses the successor's eats_at_least_from_not_start value, which doesn't work properly for read_backwards successors (which may end at the start). A symptom of this bug was that we applied an incorrect EAL of 255 starting at the initial 'x' of /x(?<=^x{4})/); for subject strings shorter than 255 chars, this would result in an incorrect failure result. Bug: v8:11616 Change-Id: I4b2b1b78f0cea8f59e4beb1037ee46035d83c927 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2807596 Reviewed-by: Seth Brenith <seth.brenith@microsoft.com> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#73848}
9 lines
398 B
JavaScript
9 lines
398 B
JavaScript
// Copyright 2021 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
assertEquals("x".repeat(3).match(/x(?<=^x{3})/), ["x"]);
|
|
assertEquals("x".repeat(4).match(/x(?<=^x{4})/), ["x"]);
|
|
assertEquals("x".repeat(7).match(/x(?<=^x{7})/), ["x"]);
|
|
assertEquals("x".repeat(17).match(/x(?<=^x{17})/), ["x"]);
|