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 |