// RegExp.prototype[@@replace] always executes ToLength(regExp.lastIndex) for
// non-global RegExps.

for (var flag of ["", "g", "y", "gy"]) {
    var regExp = new RegExp("a", flag);

    var called = false;
    regExp.lastIndex = {
        valueOf() {
            assertEq(called, false);
            called = true;
            return 0;
        }
    };

    assertEq(called, false);
    regExp[Symbol.replace]("");
    assertEq(called, !flag.includes("g"));
}

if (typeof reportCompare === "function")
    reportCompare(true, true);