| Index: test/mjsunit/regress/regress-crbug-178790.js
|
| diff --git a/test/mjsunit/regress/regress-crbug-170856.js b/test/mjsunit/regress/regress-crbug-178790.js
|
| similarity index 72%
|
| copy from test/mjsunit/regress/regress-crbug-170856.js
|
| copy to test/mjsunit/regress/regress-crbug-178790.js
|
| index 2e73b12caaf78c8b070c243ee79d3b8e557ad97d..57071eaa087c3503c4d1ef56e0fd87000a364a29 100644
|
| --- a/test/mjsunit/regress/regress-crbug-170856.js
|
| +++ b/test/mjsunit/regress/regress-crbug-178790.js
|
| @@ -25,9 +25,28 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -r = new RegExp("a");
|
| +// Create a regexp in the form of a?a?...a? so that fully
|
| +// traversing the entire graph would be prohibitively expensive.
|
| +// This should not cause time out.
|
| +var r1 = "";
|
| +for (var i = 0; i < 1000; i++) {
|
| + r1 += "a?";
|
| +}
|
| +"test".match(RegExp(r1));
|
| +
|
| +var r2 = "";
|
| for (var i = 0; i < 100; i++) {
|
| - r["abc" + i] = i;
|
| + r2 += "(a?|b?|c?|d?|e?|f?|g?)";
|
| }
|
| -"zzzz".replace(r, "");
|
| -assertEquals(0, r.lastIndex);
|
| +"test".match(RegExp(r2));
|
| +
|
| +// Create a regexp in the form of ((..(a)a..)a.
|
| +// Compiling it causes EatsAtLeast to reach the maximum
|
| +// recursion depth possible with a given budget.
|
| +// This should not cause a stack overflow.
|
| +var r3 = "a";
|
| +for (var i = 0; i < 1000; i++) {
|
| + r3 = "(" + r3 + ")a";
|
| +}
|
| +"test".match(RegExp(r3));
|
| +
|
|
|