OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 // followed by "0", $61 as $6, followed by "1" and so on. | 276 // followed by "0", $61 as $6, followed by "1" and so on. |
277 var tail = subject.substr(59); | 277 var tail = subject.substr(59); |
278 for (var i = 60; i < 100; i++) { | 278 for (var i = 60; i < 100; i++) { |
279 assertEquals(String.fromCharCode(i / 10 + 23) + (i % 10) + tail, | 279 assertEquals(String.fromCharCode(i / 10 + 23) + (i % 10) + tail, |
280 subject.replace(re, "$" + i)); | 280 subject.replace(re, "$" + i)); |
281 } | 281 } |
282 } | 282 } |
283 | 283 |
284 testIndices59(new RegExp(regexp59pattern)); | 284 testIndices59(new RegExp(regexp59pattern)); |
285 testIndices59(new RegExp(regexp59pattern, "g")); | 285 testIndices59(new RegExp(regexp59pattern, "g")); |
286 | |
287 // Test that ToString(replace) is called. | |
288 | |
289 let replace_tostring_count = 0; | |
290 const fake_replacer = { | |
291 [Symbol.toPrimitive]: () => { replace_tostring_count++; return "b"; } | |
292 }; | |
293 | |
294 "a".replace("x", fake_replacer); | |
295 assertEquals(1, replace_tostring_count); | |
296 | |
297 "a".replace("a", fake_replacer); | |
298 assertEquals(2, replace_tostring_count); | |
OLD | NEW |