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