unicode_restricted_identity_escape_u.js (2578B)
1 // Copyright (C) 2015 André Bargull. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 description: B.1.4 is not applied for Unicode RegExp - Incomplete Unicode escape sequences 6 info: | 7 The compatibility extensions defined in B.1.4 Regular Expressions Patterns 8 are not applied for Unicode RegExp. 9 Tested extension: "IdentityEscape[U] :: [~U] SourceCharacter but not c" 10 es6id: 21.1.2 11 ---*/ 12 13 // Incomplete RegExpUnicodeEscapeSequence in AtomEscape not parsed as IdentityEscape. 14 // 15 // AtomEscape[U] :: CharacterEscape[?U] 16 // CharacterEscape[U] :: RegExpUnicodeEscapeSequence[?U] 17 assert.throws(SyntaxError, function() { 18 RegExp("\\u", "u"); 19 }, 'RegExp("\\u", "u"): '); 20 assert.throws(SyntaxError, function() { 21 RegExp("\\u1", "u"); 22 }, 'RegExp("\\u1", "u"): '); 23 assert.throws(SyntaxError, function() { 24 RegExp("\\u12", "u"); 25 }, 'RegExp("\\u12", "u"): '); 26 assert.throws(SyntaxError, function() { 27 RegExp("\\u123", "u"); 28 }, 'RegExp("\\u123", "u"): '); 29 assert.throws(SyntaxError, function() { 30 RegExp("\\u{", "u"); 31 }, 'RegExp("\\u{", "u"): '); 32 assert.throws(SyntaxError, function() { 33 RegExp("\\u{}", "u"); 34 }, 'RegExp("\\u{}", "u"): '); 35 assert.throws(SyntaxError, function() { 36 RegExp("\\u{1", "u"); 37 }, 'RegExp("\\u{1", "u"): '); 38 assert.throws(SyntaxError, function() { 39 RegExp("\\u{12", "u"); 40 }, 'RegExp("\\u{12", "u"): '); 41 assert.throws(SyntaxError, function() { 42 RegExp("\\u{123", "u"); 43 }, 'RegExp("\\u{123", "u"): '); 44 45 46 // Incomplete RegExpUnicodeEscapeSequence in ClassEscape not parsed as IdentityEscape. 47 // 48 // ClassEscape[U] :: CharacterEscape[?U] 49 // CharacterEscape[U] :: RegExpUnicodeEscapeSequence[?U] 50 assert.throws(SyntaxError, function() { 51 RegExp("[\\u]", "u"); 52 }, 'RegExp("[\\u]", "u"): '); 53 assert.throws(SyntaxError, function() { 54 RegExp("[\\u1]", "u"); 55 }, 'RegExp("[\\u1]", "u"): '); 56 assert.throws(SyntaxError, function() { 57 RegExp("[\\u12]", "u"); 58 }, 'RegExp("[\\u12]", "u"): '); 59 assert.throws(SyntaxError, function() { 60 RegExp("[\\u123]", "u"); 61 }, 'RegExp("[\\u123]", "u"): '); 62 assert.throws(SyntaxError, function() { 63 RegExp("[\\u{]", "u"); 64 }, 'RegExp("[\\u{]", "u"): '); 65 assert.throws(SyntaxError, function() { 66 RegExp("[\\u{}]", "u"); 67 }, 'RegExp("[\\u{}]", "u"): '); 68 assert.throws(SyntaxError, function() { 69 RegExp("[\\u{1]", "u"); 70 }, 'RegExp("[\\u{1]", "u"): '); 71 assert.throws(SyntaxError, function() { 72 RegExp("[\\u{12]", "u"); 73 }, 'RegExp("[\\u{12]", "u"): '); 74 assert.throws(SyntaxError, function() { 75 RegExp("[\\u{123]", "u"); 76 }, 'RegExp("[\\u{123]", "u"): '); 77 78 reportCompare(0, 0);