v8/test/mjsunit/regress/regress-698790.js
jgruber 5002a4a961 [regexp] Properly flatten string during initialization
This fixes an incorrect usage of String::Flatten in EscapeRegExpSource.

It also adds %ConstructConsString (to easily and reliably construct cons
strings in tests) and Factory::NewConsString (to enable guaranteed cons
string construction without preemptive flattening attempts).

BUG=chromium:698790

Review-Url: https://codereview.chromium.org/2736383003
Cr-Commit-Position: refs/heads/master@{#43686}
2017-03-09 12:25:19 +00:00

19 lines
574 B
JavaScript

// Copyright 2017 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.
// Flags: --allow-natives-syntax --turbo
// Call RegExp constructor with a cons string.
var cons_string = %ConstructConsString("", "aaaaaaaaaaaaaa");
new RegExp(cons_string);
// Same thing but using TF lowering.
function make_cons_string(s) { return s + "aaaaaaaaaaaaaa"; }
make_cons_string("");
%OptimizeFunctionOnNextCall(make_cons_string);
var cons_str = make_cons_string("");
new RegExp(cons_str);