unicode_restricted_quantifiable_assertion.js (3064B)
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 - Production 'QuantifiableAssertion Quantifier' 6 info: | 7 The compatibility extensions defined in B.1.4 Regular Expressions Patterns 8 are not applied for Unicode RegExps. 9 Tested extension: "ExtendedTerm :: QuantifiableAssertion Quantifier" 10 es6id: 21.1.2 11 ---*/ 12 13 // Positive lookahead with quantifier. 14 assert.throws(SyntaxError, function() { 15 RegExp("(?=.)*", "u"); 16 }, 'RegExp("(?=.)*", "u"): '); 17 assert.throws(SyntaxError, function() { 18 RegExp("(?=.)+", "u"); 19 }, 'RegExp("(?=.)+", "u"): '); 20 assert.throws(SyntaxError, function() { 21 RegExp("(?=.)?", "u"); 22 }, 'RegExp("(?=.)?", "u"): '); 23 assert.throws(SyntaxError, function() { 24 RegExp("(?=.){1}", "u"); 25 }, 'RegExp("(?=.){1}", "u"): '); 26 assert.throws(SyntaxError, function() { 27 RegExp("(?=.){1,}", "u"); 28 }, 'RegExp("(?=.){1,}", "u"): '); 29 assert.throws(SyntaxError, function() { 30 RegExp("(?=.){1,2}", "u"); 31 }, 'RegExp("(?=.){1,2}", "u"): '); 32 33 34 // Positive lookahead with reluctant quantifier. 35 assert.throws(SyntaxError, function() { 36 RegExp("(?=.)*?", "u"); 37 }, 'RegExp("(?=.)*?", "u"): '); 38 assert.throws(SyntaxError, function() { 39 RegExp("(?=.)+?", "u"); 40 }, 'RegExp("(?=.)+?", "u"): '); 41 assert.throws(SyntaxError, function() { 42 RegExp("(?=.)??", "u"); 43 }, 'RegExp("(?=.)??", "u"): '); 44 assert.throws(SyntaxError, function() { 45 RegExp("(?=.){1}?", "u"); 46 }, 'RegExp("(?=.){1}?", "u"): '); 47 assert.throws(SyntaxError, function() { 48 RegExp("(?=.){1,}?", "u"); 49 }, 'RegExp("(?=.){1,}?", "u"): '); 50 assert.throws(SyntaxError, function() { 51 RegExp("(?=.){1,2}?", "u"); 52 }, 'RegExp("(?=.){1,2}?", "u"): '); 53 54 55 // Negative lookahead with quantifier. 56 assert.throws(SyntaxError, function() { 57 RegExp("(?!.)*", "u"); 58 }, 'RegExp("(?!.)*", "u"): '); 59 assert.throws(SyntaxError, function() { 60 RegExp("(?!.)+", "u"); 61 }, 'RegExp("(?!.)+", "u"): '); 62 assert.throws(SyntaxError, function() { 63 RegExp("(?!.)?", "u"); 64 }, 'RegExp("(?!.)?", "u"): '); 65 assert.throws(SyntaxError, function() { 66 RegExp("(?!.){1}", "u"); 67 }, 'RegExp("(?!.){1}", "u"): '); 68 assert.throws(SyntaxError, function() { 69 RegExp("(?!.){1,}", "u"); 70 }, 'RegExp("(?!.){1,}", "u"): '); 71 assert.throws(SyntaxError, function() { 72 RegExp("(?!.){1,2}", "u"); 73 }, 'RegExp("(?!.){1,2}", "u"): '); 74 75 76 // Negative lookahead with reluctant quantifier. 77 assert.throws(SyntaxError, function() { 78 RegExp("(?!.)*?", "u"); 79 }, 'RegExp("(?!.)*?", "u"): '); 80 assert.throws(SyntaxError, function() { 81 RegExp("(?!.)+?", "u"); 82 }, 'RegExp("(?!.)+?", "u"): '); 83 assert.throws(SyntaxError, function() { 84 RegExp("(?!.)??", "u"); 85 }, 'RegExp("(?!.)??", "u"): '); 86 assert.throws(SyntaxError, function() { 87 RegExp("(?!.){1}?", "u"); 88 }, 'RegExp("(?!.){1}?", "u"): '); 89 assert.throws(SyntaxError, function() { 90 RegExp("(?!.){1,}?", "u"); 91 }, 'RegExp("(?!.){1,}?", "u"): '); 92 assert.throws(SyntaxError, function() { 93 RegExp("(?!.){1,2}?", "u"); 94 }, 'RegExp("(?!.){1,2}?", "u"): '); 95 96 reportCompare(0, 0);