non-unicode-match.js (2166B)
1 // Copyright 2017 the V8 project authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 description: Basic matching cases with non-Unicode groups 6 esid: prod-GroupSpecifier 7 features: [regexp-named-groups] 8 includes: [compareArray.js] 9 ---*/ 10 11 assert.compareArray(["a", "a"], "bab".match(/(?<a>a)/)); 12 assert.compareArray(["a", "a"], "bab".match(/(?<a42>a)/)); 13 assert.compareArray(["a", "a"], "bab".match(/(?<_>a)/)); 14 assert.compareArray(["a", "a"], "bab".match(/(?<$>a)/)); 15 assert.compareArray(["bab", "a"], "bab".match(/.(?<$>a)./)); 16 assert.compareArray(["bab", "a", "b"], "bab".match(/.(?<a>a)(.)/)); 17 assert.compareArray(["bab", "a", "b"], "bab".match(/.(?<a>a)(?<b>.)/)); 18 assert.compareArray(["bab", "ab"], "bab".match(/.(?<a>\w\w)/)); 19 assert.compareArray(["bab", "bab"], "bab".match(/(?<a>\w\w\w)/)); 20 assert.compareArray(["bab", "ba", "b"], "bab".match(/(?<a>\w\w)(?<b>\w)/)); 21 22 let {a, b, c} = /(?<a>.)(?<b>.)(?<c>.)\k<c>\k<b>\k<a>/.exec("abccba").groups; 23 assert.sameValue(a, "a"); 24 assert.sameValue(b, "b"); 25 assert.sameValue(c, "c"); 26 27 assert.compareArray("bab".match(/(a)/), "bab".match(/(?<a>a)/)); 28 assert.compareArray("bab".match(/(a)/), "bab".match(/(?<a42>a)/)); 29 assert.compareArray("bab".match(/(a)/), "bab".match(/(?<_>a)/)); 30 assert.compareArray("bab".match(/(a)/), "bab".match(/(?<$>a)/)); 31 assert.compareArray("bab".match(/.(a)./), "bab".match(/.(?<$>a)./)); 32 assert.compareArray("bab".match(/.(a)(.)/), "bab".match(/.(?<a>a)(.)/)); 33 assert.compareArray("bab".match(/.(a)(.)/), "bab".match(/.(?<a>a)(?<b>.)/)); 34 assert.compareArray("bab".match(/.(\w\w)/), "bab".match(/.(?<a>\w\w)/)); 35 assert.compareArray("bab".match(/(\w\w\w)/), "bab".match(/(?<a>\w\w\w)/)); 36 assert.compareArray("bab".match(/(\w\w)(\w)/), "bab".match(/(?<a>\w\w)(?<b>\w)/)); 37 38 assert.compareArray(["bab", "b"], "bab".match(/(?<b>b).\1/)); 39 assert.compareArray(["baba", "b", "a"], "baba".match(/(.)(?<a>a)\1\2/)); 40 assert.compareArray(["baba", "b", "a", "b", "a"], "baba".match(/(.)(?<a>a)(?<b>\1)(\2)/)); 41 assert.compareArray(["<a", "<"], "<a".match(/(?<lt><)a/)); 42 assert.compareArray([">a", ">"], ">a".match(/(?<gt>>)a/)); 43 44 reportCompare(0, 0);