| Ben Murdoch | 097c5b2 | 2016-05-18 11:27:45 +0100 | [diff] [blame^] | 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 | 
|  | 3 | // found in the LICENSE file. | 
|  | 4 |  | 
|  | 5 | // Flags: --harmony-unicode-regexps | 
|  | 6 |  | 
|  | 7 | // test262/data/test/language/literals/regexp/u-dec-esc | 
|  | 8 | assertThrows("/\\1/u", SyntaxError); | 
|  | 9 | // test262/language/literals/regexp/u-invalid-char-range-a | 
|  | 10 | assertThrows("/[\\w-a]/u", SyntaxError); | 
|  | 11 | // test262/language/literals/regexp/u-invalid-char-range-b | 
|  | 12 | assertThrows("/[a-\\w]/u", SyntaxError); | 
|  | 13 | // test262/language/literals/regexp/u-invalid-char-esc | 
|  | 14 | assertThrows("/\\c/u", SyntaxError); | 
|  | 15 | assertThrows("/\\c0/u", SyntaxError); | 
|  | 16 | // test262/built-ins/RegExp/unicode_restricted_quantifiable_assertion | 
|  | 17 | assertThrows("/(?=.)*/u", SyntaxError); | 
|  | 18 | // test262/built-ins/RegExp/unicode_restricted_octal_escape | 
|  | 19 | assertThrows("/[\\1]/u", SyntaxError); | 
|  | 20 | assertThrows("/\\00/u", SyntaxError); | 
|  | 21 | assertThrows("/\\09/u", SyntaxError); | 
|  | 22 | // test262/built-ins/RegExp/unicode_restricted_identity_escape_alpha | 
|  | 23 | assertThrows("/[\\c]/u", SyntaxError); | 
|  | 24 | // test262/built-ins/RegExp/unicode_restricted_identity_escape_c | 
|  | 25 | assertThrows("/[\\c0]/u", SyntaxError); | 
|  | 26 | // test262/built-ins/RegExp/unicode_restricted_incomple_quantifier | 
|  | 27 | assertThrows("/a{/u", SyntaxError); | 
|  | 28 | assertThrows("/a{1,/u", SyntaxError); | 
|  | 29 | assertThrows("/{/u", SyntaxError); | 
|  | 30 | assertThrows("/}/u", SyntaxError); | 
|  | 31 | // test262/data/test/built-ins/RegExp/unicode_restricted_brackets | 
|  | 32 | assertThrows("/]/u", SyntaxError); | 
|  | 33 | // test262/built-ins/RegExp/unicode_identity_escape | 
|  | 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")); |