| OLD | NEW |
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Flags: --harmony-unicode-regexps | |
| 6 | |
| 7 var L = "\ud800"; | 5 var L = "\ud800"; |
| 8 var T = "\udc00"; | 6 var T = "\udc00"; |
| 9 var x = "x"; | 7 var x = "x"; |
| 10 | 8 |
| 11 var r = /()/g; // Global, but not unicode. | 9 var r = /()/g; // Global, but not unicode. |
| 12 // Zero-length matches do not advance lastIndex. | 10 // Zero-length matches do not advance lastIndex. |
| 13 assertEquals(["", ""], r.exec(L + T + L + T)); | 11 assertEquals(["", ""], r.exec(L + T + L + T)); |
| 14 assertEquals(0, r.lastIndex); | 12 assertEquals(0, r.lastIndex); |
| 15 r.lastIndex = 1; | 13 r.lastIndex = 1; |
| 16 assertEquals(["", ""], r.exec(L + T + L + T)); | 14 assertEquals(["", ""], r.exec(L + T + L + T)); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 assertEquals(["","",""], (L + T + L + T).match(u)); | 47 assertEquals(["","",""], (L + T + L + T).match(u)); |
| 50 u.lastIndex = 2; | 48 u.lastIndex = 2; |
| 51 assertEquals(["","",""], (L + T + L + T).match(u)); | 49 assertEquals(["","",""], (L + T + L + T).match(u)); |
| 52 | 50 |
| 53 var expected = []; | 51 var expected = []; |
| 54 for (var i = 0; i <= 1000; i++) expected.push(""); | 52 for (var i = 0; i <= 1000; i++) expected.push(""); |
| 55 assertEquals(expected, (L + T).repeat(1000).match(u)); | 53 assertEquals(expected, (L + T).repeat(1000).match(u)); |
| 56 | 54 |
| 57 // Also test RegExp.prototype.@@split. | 55 // Also test RegExp.prototype.@@split. |
| 58 assertEquals(["\u{12345}"], "\u{12345}".split(/(?:)/u)); | 56 assertEquals(["\u{12345}"], "\u{12345}".split(/(?:)/u)); |
| OLD | NEW |