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