// Copyright 2019 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. let cnt = 0; const re = /x/y; const replacement = { toString: () => { cnt++; if (cnt == 2) { re.lastIndex = { valueOf: () => { re.x = -1073741825; return 7; }}; } return 'y$'; } }; const str = re[Symbol.replace]("x", replacement); assertEquals(str, "y$");