diff options
Diffstat (limited to 'deps/v8/test/mjsunit/regress/regress-1404863.js')
-rw-r--r-- | deps/v8/test/mjsunit/regress/regress-1404863.js | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/regress/regress-1404863.js b/deps/v8/test/mjsunit/regress/regress-1404863.js new file mode 100644 index 0000000000..7c656a0be1 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-1404863.js @@ -0,0 +1,18 @@ +// Copyright 2022 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. + +const template = `class Foo { foo(){} }` + +// Keep recursively embedding the template inside itself until we stack +// overflow. This should not segfault. +let s = template; +while (true) { + try { + eval(s); + } catch (e) { + // A stack overflow exception eventually is expected. + break; + } + s = s.replace("foo(){}", `foo(){ ${s} }`); +} |