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 | 5 // Flags: --harmony-unicode-regexps |
6 | 6 |
7 // test262/data/test/language/literals/regexp/u-dec-esc | 7 // test262/data/test/language/literals/regexp/u-dec-esc |
8 assertThrows("/\\1/u"); | 8 assertThrows("/\\1/u", SyntaxError); |
9 // test262/language/literals/regexp/u-invalid-char-range-a | 9 // test262/language/literals/regexp/u-invalid-char-range-a |
10 assertThrows("/[\\w-a]/u"); | 10 assertThrows("/[\\w-a]/u", SyntaxError); |
11 // test262/language/literals/regexp/u-invalid-char-range-b | 11 // test262/language/literals/regexp/u-invalid-char-range-b |
12 assertThrows("/[a-\\w]/u"); | 12 assertThrows("/[a-\\w]/u", SyntaxError); |
13 // test262/language/literals/regexp/u-invalid-char-esc | 13 // test262/language/literals/regexp/u-invalid-char-esc |
14 assertThrows("/\\c/u"); | 14 assertThrows("/\\c/u", SyntaxError); |
15 assertThrows("/\\c0/u"); | 15 assertThrows("/\\c0/u", SyntaxError); |
16 // test262/built-ins/RegExp/unicode_restricted_quantifiable_assertion | 16 // test262/built-ins/RegExp/unicode_restricted_quantifiable_assertion |
17 assertThrows("/(?=.)*/u"); | 17 assertThrows("/(?=.)*/u", SyntaxError); |
18 // test262/built-ins/RegExp/unicode_restricted_octal_escape | 18 // test262/built-ins/RegExp/unicode_restricted_octal_escape |
19 assertThrows("/[\\1]/u"); | 19 assertThrows("/[\\1]/u", SyntaxError); |
20 assertThrows("/\\00/u"); | 20 assertThrows("/\\00/u", SyntaxError); |
21 assertThrows("/\\09/u"); | 21 assertThrows("/\\09/u", SyntaxError); |
22 // test262/built-ins/RegExp/unicode_restricted_identity_escape_alpha | 22 // test262/built-ins/RegExp/unicode_restricted_identity_escape_alpha |
23 assertThrows("/[\\c]/u"); | 23 assertThrows("/[\\c]/u", SyntaxError); |
24 // test262/built-ins/RegExp/unicode_restricted_identity_escape_c | 24 // test262/built-ins/RegExp/unicode_restricted_identity_escape_c |
25 assertThrows("/[\\c0]/u"); | 25 assertThrows("/[\\c0]/u", SyntaxError); |
26 // test262/built-ins/RegExp/unicode_restricted_incomple_quantifier | 26 // test262/built-ins/RegExp/unicode_restricted_incomple_quantifier |
27 assertThrows("/a{/u"); | 27 assertThrows("/a{/u", SyntaxError); |
28 assertThrows("/a{1,/u"); | 28 assertThrows("/a{1,/u", SyntaxError); |
29 assertThrows("/{/u"); | 29 assertThrows("/{/u", SyntaxError); |
30 assertThrows("/}/u"); | 30 assertThrows("/}/u", SyntaxError); |
31 // test262/data/test/built-ins/RegExp/unicode_restricted_brackets | 31 // test262/data/test/built-ins/RegExp/unicode_restricted_brackets |
32 assertThrows("/]/u"); | 32 assertThrows("/]/u", SyntaxError); |
33 // test262/built-ins/RegExp/unicode_identity_escape | 33 // test262/built-ins/RegExp/unicode_identity_escape |
34 /\//u; | 34 /\//u; |
| 35 |
| 36 // escaped \0 is allowed inside a character class. |
| 37 assertEquals(["\0"], /[\0]/u.exec("\0")); |
| 38 // unless it is followed by another digit. |
| 39 assertThrows("/[\\00]/u", SyntaxError); |
| 40 assertThrows("/[\\01]/u", SyntaxError); |
| 41 assertThrows("/[\\09]/u", SyntaxError); |
| 42 assertEquals(["\u{0}1\u{0}a\u{0}"], /[1\0a]+/u.exec("b\u{0}1\u{0}a\u{0}2")); |
| 43 // escaped \- is allowed inside a character class. |
| 44 assertEquals(["-"], /[a\-z]/u.exec("12-34")); |
OLD | NEW |