// Copyright (C) 2015 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- description: lastIndex is advanced according to width of astral symbols es6id: 21.2.5.8 info: | 21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue ) [...] 10. If global is true, then a. Let fullUnicode be ToBoolean(Get(rx, "unicode")). b. ReturnIfAbrupt(fullUnicode). [...] 13. Repeat, while done is false [...] d. Else result is not null, [...] iii. Else, [...] 3. If matchStr is the empty String, then [...] c. Let nextIndex be AdvanceStringIndex(S, thisIndex, fullUnicode). d. Let setStatus be Set(rx, "lastIndex", nextIndex, true). features: [Symbol.replace] ---*/ var str = /^|\udf06/ug[Symbol.replace]('\ud834\udf06', 'XXX'); assert.sameValue(str, 'XXX\ud834\udf06'); reportCompare(0, 0);