Add exhaustive tests for RegExp Unicode property escapes (#971)

Proposal: https://github.com/tc39/proposal-regexp-unicode-property-escapes

These tests have been generated by the script at https://github.com/mathiasbynens/unicode-property-escapes-tests. They check all the properties and values that should be supported by implementations against the symbols they’re supposed to match. False positives are detected as well.

Ref. #950.
Ref. https://github.com/tc39/proposal-regexp-unicode-property-escapes/issues/4.
This commit is contained in:
Mathias Bynens 2017-04-13 17:22:49 +02:00 committed by Leo Balter
parent 89e15ce814
commit 44b40e083e
367 changed files with 62809 additions and 0 deletions

32
harness/regExpUtils.js Normal file
View File

@ -0,0 +1,32 @@
function buildString({ loneCodePoints, ranges }) {
const CHUNK_SIZE = 10000;
let result = String.fromCodePoint(...loneCodePoints);
for (const [start, end] of ranges) {
const codePoints = [];
for (let length = 0, codePoint = start; codePoint <= end; codePoint++) {
codePoints[length++] = codePoint;
if (length === CHUNK_SIZE) {
result += String.fromCodePoint(...codePoints);
codePoints.length = length = 0;
}
}
result += String.fromCodePoint(...codePoints);
}
return result;
}
function testPropertyEscapes(regex, string, expression) {
if (!regex.test(string)) {
for (const symbol of string) {
const hex = symbol
.codePointAt(0)
.toString(16)
.toUpperCase()
.padStart(6, "0");
assert(
regex.test(symbol),
`\`${ expression }\` should match U+${ hex } (\`${ symbol }\`)`
);
}
}
}

View File

@ -0,0 +1,40 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `ASCII`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x000000, 0x00007F]
]
});
testPropertyEscapes(
/^\p{ASCII}+$/u,
matchSymbols,
"\\p{ASCII}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000080, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{ASCII}+$/u,
nonMatchSymbols,
"\\P{ASCII}"
);

View File

@ -0,0 +1,55 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `ASCII_Hex_Digit`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x000030, 0x000039],
[0x000041, 0x000046],
[0x000061, 0x000066]
]
});
testPropertyEscapes(
/^\p{ASCII_Hex_Digit}+$/u,
matchSymbols,
"\\p{ASCII_Hex_Digit}"
);
testPropertyEscapes(
/^\p{AHex}+$/u,
matchSymbols,
"\\p{AHex}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00002F],
[0x00003A, 0x000040],
[0x000047, 0x000060],
[0x000067, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{ASCII_Hex_Digit}+$/u,
nonMatchSymbols,
"\\P{ASCII_Hex_Digit}"
);
testPropertyEscapes(
/^\P{AHex}+$/u,
nonMatchSymbols,
"\\P{AHex}"
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,33 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Any`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\p{Any}+$/u,
matchSymbols,
"\\p{Any}"
);
assert(
!/\P{Any}/u.test(""),
"`\\P{Any}` should match nothing (not even the empty string)"
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,58 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Bidi_Control`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00061C
],
ranges: [
[0x00200E, 0x00200F],
[0x00202A, 0x00202E],
[0x002066, 0x002069]
]
});
testPropertyEscapes(
/^\p{Bidi_Control}+$/u,
matchSymbols,
"\\p{Bidi_Control}"
);
testPropertyEscapes(
/^\p{Bidi_C}+$/u,
matchSymbols,
"\\p{Bidi_C}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00061B],
[0x00061D, 0x00200D],
[0x002010, 0x002029],
[0x00202F, 0x002065],
[0x00206A, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Bidi_Control}+$/u,
nonMatchSymbols,
"\\P{Bidi_Control}"
);
testPropertyEscapes(
/^\P{Bidi_C}+$/u,
nonMatchSymbols,
"\\P{Bidi_C}"
);

View File

@ -0,0 +1,273 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Bidi_Mirrored`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00003C,
0x00003E,
0x00005B,
0x00005D,
0x00007B,
0x00007D,
0x0000AB,
0x0000BB,
0x002140,
0x002211,
0x002224,
0x002226,
0x002239,
0x002262,
0x002298,
0x0027C0,
0x0029B8,
0x0029C9,
0x0029E1,
0x002A24,
0x002A26,
0x002A29,
0x002ADC,
0x002ADE,
0x002AF3,
0x002AFD,
0x00FF1C,
0x00FF1E,
0x00FF3B,
0x00FF3D,
0x00FF5B,
0x00FF5D,
0x01D6DB,
0x01D715,
0x01D74F,
0x01D789,
0x01D7C3
],
ranges: [
[0x000028, 0x000029],
[0x000F3A, 0x000F3D],
[0x00169B, 0x00169C],
[0x002039, 0x00203A],
[0x002045, 0x002046],
[0x00207D, 0x00207E],
[0x00208D, 0x00208E],
[0x002201, 0x002204],
[0x002208, 0x00220D],
[0x002215, 0x002216],
[0x00221A, 0x00221D],
[0x00221F, 0x002222],
[0x00222B, 0x002233],
[0x00223B, 0x00224C],
[0x002252, 0x002255],
[0x00225F, 0x002260],
[0x002264, 0x00226B],
[0x00226E, 0x00228C],
[0x00228F, 0x002292],
[0x0022A2, 0x0022A3],
[0x0022A6, 0x0022B8],
[0x0022BE, 0x0022BF],
[0x0022C9, 0x0022CD],
[0x0022D0, 0x0022D1],
[0x0022D6, 0x0022ED],
[0x0022F0, 0x0022FF],
[0x002308, 0x00230B],
[0x002320, 0x002321],
[0x002329, 0x00232A],
[0x002768, 0x002775],
[0x0027C3, 0x0027C6],
[0x0027C8, 0x0027C9],
[0x0027CB, 0x0027CD],
[0x0027D3, 0x0027D6],
[0x0027DC, 0x0027DE],
[0x0027E2, 0x0027EF],
[0x002983, 0x002998],
[0x00299B, 0x0029AF],
[0x0029C0, 0x0029C5],
[0x0029CE, 0x0029D2],
[0x0029D4, 0x0029D5],
[0x0029D8, 0x0029DC],
[0x0029E3, 0x0029E5],
[0x0029E8, 0x0029E9],
[0x0029F4, 0x0029F9],
[0x0029FC, 0x0029FD],
[0x002A0A, 0x002A1C],
[0x002A1E, 0x002A21],
[0x002A2B, 0x002A2E],
[0x002A34, 0x002A35],
[0x002A3C, 0x002A3E],
[0x002A57, 0x002A58],
[0x002A64, 0x002A65],
[0x002A6A, 0x002A6D],
[0x002A6F, 0x002A70],
[0x002A73, 0x002A74],
[0x002A79, 0x002AA3],
[0x002AA6, 0x002AAD],
[0x002AAF, 0x002AD6],
[0x002AE2, 0x002AE6],
[0x002AEC, 0x002AEE],
[0x002AF7, 0x002AFB],
[0x002E02, 0x002E05],
[0x002E09, 0x002E0A],
[0x002E0C, 0x002E0D],
[0x002E1C, 0x002E1D],
[0x002E20, 0x002E29],
[0x003008, 0x003011],
[0x003014, 0x00301B],
[0x00FE59, 0x00FE5E],
[0x00FE64, 0x00FE65],
[0x00FF08, 0x00FF09],
[0x00FF5F, 0x00FF60],
[0x00FF62, 0x00FF63]
]
});
testPropertyEscapes(
/^\p{Bidi_Mirrored}+$/u,
matchSymbols,
"\\p{Bidi_Mirrored}"
);
testPropertyEscapes(
/^\p{Bidi_M}+$/u,
matchSymbols,
"\\p{Bidi_M}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x00003D,
0x00005C,
0x00007C,
0x00221E,
0x002223,
0x002225,
0x00223A,
0x002261,
0x002263,
0x0027C7,
0x0027CA,
0x0029D3,
0x0029E2,
0x002A1D,
0x002A25,
0x002A2A,
0x002A6E,
0x002AAE,
0x002ADD,
0x002AFC,
0x002E0B,
0x00FF1D,
0x00FF3C,
0x00FF5C,
0x00FF5E,
0x00FF61
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000027],
[0x00002A, 0x00003B],
[0x00003F, 0x00005A],
[0x00005E, 0x00007A],
[0x00007E, 0x0000AA],
[0x0000AC, 0x0000BA],
[0x0000BC, 0x000F39],
[0x000F3E, 0x00169A],
[0x00169D, 0x002038],
[0x00203B, 0x002044],
[0x002047, 0x00207C],
[0x00207F, 0x00208C],
[0x00208F, 0x00213F],
[0x002141, 0x002200],
[0x002205, 0x002207],
[0x00220E, 0x002210],
[0x002212, 0x002214],
[0x002217, 0x002219],
[0x002227, 0x00222A],
[0x002234, 0x002238],
[0x00224D, 0x002251],
[0x002256, 0x00225E],
[0x00226C, 0x00226D],
[0x00228D, 0x00228E],
[0x002293, 0x002297],
[0x002299, 0x0022A1],
[0x0022A4, 0x0022A5],
[0x0022B9, 0x0022BD],
[0x0022C0, 0x0022C8],
[0x0022CE, 0x0022CF],
[0x0022D2, 0x0022D5],
[0x0022EE, 0x0022EF],
[0x002300, 0x002307],
[0x00230C, 0x00231F],
[0x002322, 0x002328],
[0x00232B, 0x002767],
[0x002776, 0x0027BF],
[0x0027C1, 0x0027C2],
[0x0027CE, 0x0027D2],
[0x0027D7, 0x0027DB],
[0x0027DF, 0x0027E1],
[0x0027F0, 0x002982],
[0x002999, 0x00299A],
[0x0029B0, 0x0029B7],
[0x0029B9, 0x0029BF],
[0x0029C6, 0x0029C8],
[0x0029CA, 0x0029CD],
[0x0029D6, 0x0029D7],
[0x0029DD, 0x0029E0],
[0x0029E6, 0x0029E7],
[0x0029EA, 0x0029F3],
[0x0029FA, 0x0029FB],
[0x0029FE, 0x002A09],
[0x002A22, 0x002A23],
[0x002A27, 0x002A28],
[0x002A2F, 0x002A33],
[0x002A36, 0x002A3B],
[0x002A3F, 0x002A56],
[0x002A59, 0x002A63],
[0x002A66, 0x002A69],
[0x002A71, 0x002A72],
[0x002A75, 0x002A78],
[0x002AA4, 0x002AA5],
[0x002AD7, 0x002ADB],
[0x002ADF, 0x002AE1],
[0x002AE7, 0x002AEB],
[0x002AEF, 0x002AF2],
[0x002AF4, 0x002AF6],
[0x002AFE, 0x002E01],
[0x002E06, 0x002E08],
[0x002E0E, 0x002E1B],
[0x002E1E, 0x002E1F],
[0x002E2A, 0x003007],
[0x003012, 0x003013],
[0x00301C, 0x00DBFF],
[0x00E000, 0x00FE58],
[0x00FE5F, 0x00FE63],
[0x00FE66, 0x00FF07],
[0x00FF0A, 0x00FF1B],
[0x00FF1F, 0x00FF3A],
[0x00FF3E, 0x00FF5A],
[0x00FF64, 0x01D6DA],
[0x01D6DC, 0x01D714],
[0x01D716, 0x01D74E],
[0x01D750, 0x01D788],
[0x01D78A, 0x01D7C2],
[0x01D7C4, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Bidi_Mirrored}+$/u,
nonMatchSymbols,
"\\P{Bidi_Mirrored}"
);
testPropertyEscapes(
/^\P{Bidi_M}+$/u,
nonMatchSymbols,
"\\P{Bidi_M}"
);

View File

@ -0,0 +1,781 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Case_Ignorable`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000027,
0x00002E,
0x00003A,
0x00005E,
0x000060,
0x0000A8,
0x0000AD,
0x0000AF,
0x0000B4,
0x00037A,
0x000387,
0x000559,
0x0005BF,
0x0005C7,
0x0005F4,
0x00061C,
0x000640,
0x000670,
0x00070F,
0x000711,
0x0007FA,
0x00093A,
0x00093C,
0x00094D,
0x000971,
0x000981,
0x0009BC,
0x0009CD,
0x000A3C,
0x000A51,
0x000A75,
0x000ABC,
0x000ACD,
0x000B01,
0x000B3C,
0x000B3F,
0x000B4D,
0x000B56,
0x000B82,
0x000BC0,
0x000BCD,
0x000C00,
0x000C81,
0x000CBC,
0x000CBF,
0x000CC6,
0x000D01,
0x000D4D,
0x000DCA,
0x000DD6,
0x000E31,
0x000EB1,
0x000EC6,
0x000F35,
0x000F37,
0x000F39,
0x000FC6,
0x001082,
0x00108D,
0x00109D,
0x0010FC,
0x0017C6,
0x0017D7,
0x0017DD,
0x001843,
0x0018A9,
0x001932,
0x001A1B,
0x001A56,
0x001A60,
0x001A62,
0x001A7F,
0x001AA7,
0x001B34,
0x001B3C,
0x001B42,
0x001BE6,
0x001BED,
0x001CED,
0x001CF4,
0x001D78,
0x001FBD,
0x002024,
0x002027,
0x002071,
0x00207F,
0x002D6F,
0x002D7F,
0x002E2F,
0x003005,
0x00303B,
0x00A015,
0x00A60C,
0x00A67F,
0x00A770,
0x00A802,
0x00A806,
0x00A80B,
0x00A9B3,
0x00A9BC,
0x00A9CF,
0x00AA43,
0x00AA4C,
0x00AA70,
0x00AA7C,
0x00AAB0,
0x00AAC1,
0x00AADD,
0x00AAF6,
0x00ABE5,
0x00ABE8,
0x00ABED,
0x00FB1E,
0x00FE13,
0x00FE52,
0x00FE55,
0x00FEFF,
0x00FF07,
0x00FF0E,
0x00FF1A,
0x00FF3E,
0x00FF40,
0x00FF70,
0x00FFE3,
0x0101FD,
0x0102E0,
0x010A3F,
0x011001,
0x0110BD,
0x011173,
0x011234,
0x01123E,
0x0112DF,
0x01133C,
0x011340,
0x011446,
0x0114BA,
0x01163D,
0x0116AB,
0x0116AD,
0x0116B7,
0x011C3F,
0x016FE0,
0x01DA75,
0x01DA84,
0x0E0001
],
ranges: [
[0x0000B7, 0x0000B8],
[0x0002B0, 0x00036F],
[0x000374, 0x000375],
[0x000384, 0x000385],
[0x000483, 0x000489],
[0x000591, 0x0005BD],
[0x0005C1, 0x0005C2],
[0x0005C4, 0x0005C5],
[0x000600, 0x000605],
[0x000610, 0x00061A],
[0x00064B, 0x00065F],
[0x0006D6, 0x0006DD],
[0x0006DF, 0x0006E8],
[0x0006EA, 0x0006ED],
[0x000730, 0x00074A],
[0x0007A6, 0x0007B0],
[0x0007EB, 0x0007F5],
[0x000816, 0x00082D],
[0x000859, 0x00085B],
[0x0008D4, 0x000902],
[0x000941, 0x000948],
[0x000951, 0x000957],
[0x000962, 0x000963],
[0x0009C1, 0x0009C4],
[0x0009E2, 0x0009E3],
[0x000A01, 0x000A02],
[0x000A41, 0x000A42],
[0x000A47, 0x000A48],
[0x000A4B, 0x000A4D],
[0x000A70, 0x000A71],
[0x000A81, 0x000A82],
[0x000AC1, 0x000AC5],
[0x000AC7, 0x000AC8],
[0x000AE2, 0x000AE3],
[0x000B41, 0x000B44],
[0x000B62, 0x000B63],
[0x000C3E, 0x000C40],
[0x000C46, 0x000C48],
[0x000C4A, 0x000C4D],
[0x000C55, 0x000C56],
[0x000C62, 0x000C63],
[0x000CCC, 0x000CCD],
[0x000CE2, 0x000CE3],
[0x000D41, 0x000D44],
[0x000D62, 0x000D63],
[0x000DD2, 0x000DD4],
[0x000E34, 0x000E3A],
[0x000E46, 0x000E4E],
[0x000EB4, 0x000EB9],
[0x000EBB, 0x000EBC],
[0x000EC8, 0x000ECD],
[0x000F18, 0x000F19],
[0x000F71, 0x000F7E],
[0x000F80, 0x000F84],
[0x000F86, 0x000F87],
[0x000F8D, 0x000F97],
[0x000F99, 0x000FBC],
[0x00102D, 0x001030],
[0x001032, 0x001037],
[0x001039, 0x00103A],
[0x00103D, 0x00103E],
[0x001058, 0x001059],
[0x00105E, 0x001060],
[0x001071, 0x001074],
[0x001085, 0x001086],
[0x00135D, 0x00135F],
[0x001712, 0x001714],
[0x001732, 0x001734],
[0x001752, 0x001753],
[0x001772, 0x001773],
[0x0017B4, 0x0017B5],
[0x0017B7, 0x0017BD],
[0x0017C9, 0x0017D3],
[0x00180B, 0x00180E],
[0x001885, 0x001886],
[0x001920, 0x001922],
[0x001927, 0x001928],
[0x001939, 0x00193B],
[0x001A17, 0x001A18],
[0x001A58, 0x001A5E],
[0x001A65, 0x001A6C],
[0x001A73, 0x001A7C],
[0x001AB0, 0x001ABE],
[0x001B00, 0x001B03],
[0x001B36, 0x001B3A],
[0x001B6B, 0x001B73],
[0x001B80, 0x001B81],
[0x001BA2, 0x001BA5],
[0x001BA8, 0x001BA9],
[0x001BAB, 0x001BAD],
[0x001BE8, 0x001BE9],
[0x001BEF, 0x001BF1],
[0x001C2C, 0x001C33],
[0x001C36, 0x001C37],
[0x001C78, 0x001C7D],
[0x001CD0, 0x001CD2],
[0x001CD4, 0x001CE0],
[0x001CE2, 0x001CE8],
[0x001CF8, 0x001CF9],
[0x001D2C, 0x001D6A],
[0x001D9B, 0x001DF5],
[0x001DFB, 0x001DFF],
[0x001FBF, 0x001FC1],
[0x001FCD, 0x001FCF],
[0x001FDD, 0x001FDF],
[0x001FED, 0x001FEF],
[0x001FFD, 0x001FFE],
[0x00200B, 0x00200F],
[0x002018, 0x002019],
[0x00202A, 0x00202E],
[0x002060, 0x002064],
[0x002066, 0x00206F],
[0x002090, 0x00209C],
[0x0020D0, 0x0020F0],
[0x002C7C, 0x002C7D],
[0x002CEF, 0x002CF1],
[0x002DE0, 0x002DFF],
[0x00302A, 0x00302D],
[0x003031, 0x003035],
[0x003099, 0x00309E],
[0x0030FC, 0x0030FE],
[0x00A4F8, 0x00A4FD],
[0x00A66F, 0x00A672],
[0x00A674, 0x00A67D],
[0x00A69C, 0x00A69F],
[0x00A6F0, 0x00A6F1],
[0x00A700, 0x00A721],
[0x00A788, 0x00A78A],
[0x00A7F8, 0x00A7F9],
[0x00A825, 0x00A826],
[0x00A8C4, 0x00A8C5],
[0x00A8E0, 0x00A8F1],
[0x00A926, 0x00A92D],
[0x00A947, 0x00A951],
[0x00A980, 0x00A982],
[0x00A9B6, 0x00A9B9],
[0x00A9E5, 0x00A9E6],
[0x00AA29, 0x00AA2E],
[0x00AA31, 0x00AA32],
[0x00AA35, 0x00AA36],
[0x00AAB2, 0x00AAB4],
[0x00AAB7, 0x00AAB8],
[0x00AABE, 0x00AABF],
[0x00AAEC, 0x00AAED],
[0x00AAF3, 0x00AAF4],
[0x00AB5B, 0x00AB5F],
[0x00FBB2, 0x00FBC1],
[0x00FE00, 0x00FE0F],
[0x00FE20, 0x00FE2F],
[0x00FF9E, 0x00FF9F],
[0x00FFF9, 0x00FFFB],
[0x010376, 0x01037A],
[0x010A01, 0x010A03],
[0x010A05, 0x010A06],
[0x010A0C, 0x010A0F],
[0x010A38, 0x010A3A],
[0x010AE5, 0x010AE6],
[0x011038, 0x011046],
[0x01107F, 0x011081],
[0x0110B3, 0x0110B6],
[0x0110B9, 0x0110BA],
[0x011100, 0x011102],
[0x011127, 0x01112B],
[0x01112D, 0x011134],
[0x011180, 0x011181],
[0x0111B6, 0x0111BE],
[0x0111CA, 0x0111CC],
[0x01122F, 0x011231],
[0x011236, 0x011237],
[0x0112E3, 0x0112EA],
[0x011300, 0x011301],
[0x011366, 0x01136C],
[0x011370, 0x011374],
[0x011438, 0x01143F],
[0x011442, 0x011444],
[0x0114B3, 0x0114B8],
[0x0114BF, 0x0114C0],
[0x0114C2, 0x0114C3],
[0x0115B2, 0x0115B5],
[0x0115BC, 0x0115BD],
[0x0115BF, 0x0115C0],
[0x0115DC, 0x0115DD],
[0x011633, 0x01163A],
[0x01163F, 0x011640],
[0x0116B0, 0x0116B5],
[0x01171D, 0x01171F],
[0x011722, 0x011725],
[0x011727, 0x01172B],
[0x011C30, 0x011C36],
[0x011C38, 0x011C3D],
[0x011C92, 0x011CA7],
[0x011CAA, 0x011CB0],
[0x011CB2, 0x011CB3],
[0x011CB5, 0x011CB6],
[0x016AF0, 0x016AF4],
[0x016B30, 0x016B36],
[0x016B40, 0x016B43],
[0x016F8F, 0x016F9F],
[0x01BC9D, 0x01BC9E],
[0x01BCA0, 0x01BCA3],
[0x01D167, 0x01D169],
[0x01D173, 0x01D182],
[0x01D185, 0x01D18B],
[0x01D1AA, 0x01D1AD],
[0x01D242, 0x01D244],
[0x01DA00, 0x01DA36],
[0x01DA3B, 0x01DA6C],
[0x01DA9B, 0x01DA9F],
[0x01DAA1, 0x01DAAF],
[0x01E000, 0x01E006],
[0x01E008, 0x01E018],
[0x01E01B, 0x01E021],
[0x01E023, 0x01E024],
[0x01E026, 0x01E02A],
[0x01E8D0, 0x01E8D6],
[0x01E944, 0x01E94A],
[0x01F3FB, 0x01F3FF],
[0x0E0020, 0x0E007F],
[0x0E0100, 0x0E01EF]
]
});
testPropertyEscapes(
/^\p{Case_Ignorable}+$/u,
matchSymbols,
"\\p{Case_Ignorable}"
);
testPropertyEscapes(
/^\p{CI}+$/u,
matchSymbols,
"\\p{CI}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x00005F,
0x0000AE,
0x000386,
0x0005BE,
0x0005C0,
0x0005C3,
0x0005C6,
0x00061B,
0x0006DE,
0x0006E9,
0x000710,
0x00093B,
0x000AC6,
0x000B40,
0x000C49,
0x000DD5,
0x000EBA,
0x000EC7,
0x000F36,
0x000F38,
0x000F7F,
0x000F85,
0x000F98,
0x001031,
0x001038,
0x0017B6,
0x001A57,
0x001A5F,
0x001A61,
0x001B35,
0x001B3B,
0x001BAA,
0x001BE7,
0x001BEE,
0x001CD3,
0x001CE1,
0x001FBE,
0x002065,
0x002070,
0x00A673,
0x00A67E,
0x00AAB1,
0x00AAC0,
0x00AAF5,
0x00FF3F,
0x010A04,
0x01112C,
0x011235,
0x011445,
0x0114B9,
0x0114C1,
0x0115BE,
0x01163E,
0x0116AC,
0x0116B6,
0x011726,
0x011C37,
0x011C3E,
0x011CB1,
0x011CB4,
0x01BC9F,
0x01DAA0,
0x01E007,
0x01E022,
0x01E025
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000026],
[0x000028, 0x00002D],
[0x00002F, 0x000039],
[0x00003B, 0x00005D],
[0x000061, 0x0000A7],
[0x0000A9, 0x0000AC],
[0x0000B0, 0x0000B3],
[0x0000B5, 0x0000B6],
[0x0000B9, 0x0002AF],
[0x000370, 0x000373],
[0x000376, 0x000379],
[0x00037B, 0x000383],
[0x000388, 0x000482],
[0x00048A, 0x000558],
[0x00055A, 0x000590],
[0x0005C8, 0x0005F3],
[0x0005F5, 0x0005FF],
[0x000606, 0x00060F],
[0x00061D, 0x00063F],
[0x000641, 0x00064A],
[0x000660, 0x00066F],
[0x000671, 0x0006D5],
[0x0006EE, 0x00070E],
[0x000712, 0x00072F],
[0x00074B, 0x0007A5],
[0x0007B1, 0x0007EA],
[0x0007F6, 0x0007F9],
[0x0007FB, 0x000815],
[0x00082E, 0x000858],
[0x00085C, 0x0008D3],
[0x000903, 0x000939],
[0x00093D, 0x000940],
[0x000949, 0x00094C],
[0x00094E, 0x000950],
[0x000958, 0x000961],
[0x000964, 0x000970],
[0x000972, 0x000980],
[0x000982, 0x0009BB],
[0x0009BD, 0x0009C0],
[0x0009C5, 0x0009CC],
[0x0009CE, 0x0009E1],
[0x0009E4, 0x000A00],
[0x000A03, 0x000A3B],
[0x000A3D, 0x000A40],
[0x000A43, 0x000A46],
[0x000A49, 0x000A4A],
[0x000A4E, 0x000A50],
[0x000A52, 0x000A6F],
[0x000A72, 0x000A74],
[0x000A76, 0x000A80],
[0x000A83, 0x000ABB],
[0x000ABD, 0x000AC0],
[0x000AC9, 0x000ACC],
[0x000ACE, 0x000AE1],
[0x000AE4, 0x000B00],
[0x000B02, 0x000B3B],
[0x000B3D, 0x000B3E],
[0x000B45, 0x000B4C],
[0x000B4E, 0x000B55],
[0x000B57, 0x000B61],
[0x000B64, 0x000B81],
[0x000B83, 0x000BBF],
[0x000BC1, 0x000BCC],
[0x000BCE, 0x000BFF],
[0x000C01, 0x000C3D],
[0x000C41, 0x000C45],
[0x000C4E, 0x000C54],
[0x000C57, 0x000C61],
[0x000C64, 0x000C80],
[0x000C82, 0x000CBB],
[0x000CBD, 0x000CBE],
[0x000CC0, 0x000CC5],
[0x000CC7, 0x000CCB],
[0x000CCE, 0x000CE1],
[0x000CE4, 0x000D00],
[0x000D02, 0x000D40],
[0x000D45, 0x000D4C],
[0x000D4E, 0x000D61],
[0x000D64, 0x000DC9],
[0x000DCB, 0x000DD1],
[0x000DD7, 0x000E30],
[0x000E32, 0x000E33],
[0x000E3B, 0x000E45],
[0x000E4F, 0x000EB0],
[0x000EB2, 0x000EB3],
[0x000EBD, 0x000EC5],
[0x000ECE, 0x000F17],
[0x000F1A, 0x000F34],
[0x000F3A, 0x000F70],
[0x000F88, 0x000F8C],
[0x000FBD, 0x000FC5],
[0x000FC7, 0x00102C],
[0x00103B, 0x00103C],
[0x00103F, 0x001057],
[0x00105A, 0x00105D],
[0x001061, 0x001070],
[0x001075, 0x001081],
[0x001083, 0x001084],
[0x001087, 0x00108C],
[0x00108E, 0x00109C],
[0x00109E, 0x0010FB],
[0x0010FD, 0x00135C],
[0x001360, 0x001711],
[0x001715, 0x001731],
[0x001735, 0x001751],
[0x001754, 0x001771],
[0x001774, 0x0017B3],
[0x0017BE, 0x0017C5],
[0x0017C7, 0x0017C8],
[0x0017D4, 0x0017D6],
[0x0017D8, 0x0017DC],
[0x0017DE, 0x00180A],
[0x00180F, 0x001842],
[0x001844, 0x001884],
[0x001887, 0x0018A8],
[0x0018AA, 0x00191F],
[0x001923, 0x001926],
[0x001929, 0x001931],
[0x001933, 0x001938],
[0x00193C, 0x001A16],
[0x001A19, 0x001A1A],
[0x001A1C, 0x001A55],
[0x001A63, 0x001A64],
[0x001A6D, 0x001A72],
[0x001A7D, 0x001A7E],
[0x001A80, 0x001AA6],
[0x001AA8, 0x001AAF],
[0x001ABF, 0x001AFF],
[0x001B04, 0x001B33],
[0x001B3D, 0x001B41],
[0x001B43, 0x001B6A],
[0x001B74, 0x001B7F],
[0x001B82, 0x001BA1],
[0x001BA6, 0x001BA7],
[0x001BAE, 0x001BE5],
[0x001BEA, 0x001BEC],
[0x001BF2, 0x001C2B],
[0x001C34, 0x001C35],
[0x001C38, 0x001C77],
[0x001C7E, 0x001CCF],
[0x001CE9, 0x001CEC],
[0x001CEE, 0x001CF3],
[0x001CF5, 0x001CF7],
[0x001CFA, 0x001D2B],
[0x001D6B, 0x001D77],
[0x001D79, 0x001D9A],
[0x001DF6, 0x001DFA],
[0x001E00, 0x001FBC],
[0x001FC2, 0x001FCC],
[0x001FD0, 0x001FDC],
[0x001FE0, 0x001FEC],
[0x001FF0, 0x001FFC],
[0x001FFF, 0x00200A],
[0x002010, 0x002017],
[0x00201A, 0x002023],
[0x002025, 0x002026],
[0x002028, 0x002029],
[0x00202F, 0x00205F],
[0x002072, 0x00207E],
[0x002080, 0x00208F],
[0x00209D, 0x0020CF],
[0x0020F1, 0x002C7B],
[0x002C7E, 0x002CEE],
[0x002CF2, 0x002D6E],
[0x002D70, 0x002D7E],
[0x002D80, 0x002DDF],
[0x002E00, 0x002E2E],
[0x002E30, 0x003004],
[0x003006, 0x003029],
[0x00302E, 0x003030],
[0x003036, 0x00303A],
[0x00303C, 0x003098],
[0x00309F, 0x0030FB],
[0x0030FF, 0x00A014],
[0x00A016, 0x00A4F7],
[0x00A4FE, 0x00A60B],
[0x00A60D, 0x00A66E],
[0x00A680, 0x00A69B],
[0x00A6A0, 0x00A6EF],
[0x00A6F2, 0x00A6FF],
[0x00A722, 0x00A76F],
[0x00A771, 0x00A787],
[0x00A78B, 0x00A7F7],
[0x00A7FA, 0x00A801],
[0x00A803, 0x00A805],
[0x00A807, 0x00A80A],
[0x00A80C, 0x00A824],
[0x00A827, 0x00A8C3],
[0x00A8C6, 0x00A8DF],
[0x00A8F2, 0x00A925],
[0x00A92E, 0x00A946],
[0x00A952, 0x00A97F],
[0x00A983, 0x00A9B2],
[0x00A9B4, 0x00A9B5],
[0x00A9BA, 0x00A9BB],
[0x00A9BD, 0x00A9CE],
[0x00A9D0, 0x00A9E4],
[0x00A9E7, 0x00AA28],
[0x00AA2F, 0x00AA30],
[0x00AA33, 0x00AA34],
[0x00AA37, 0x00AA42],
[0x00AA44, 0x00AA4B],
[0x00AA4D, 0x00AA6F],
[0x00AA71, 0x00AA7B],
[0x00AA7D, 0x00AAAF],
[0x00AAB5, 0x00AAB6],
[0x00AAB9, 0x00AABD],
[0x00AAC2, 0x00AADC],
[0x00AADE, 0x00AAEB],
[0x00AAEE, 0x00AAF2],
[0x00AAF7, 0x00AB5A],
[0x00AB60, 0x00ABE4],
[0x00ABE6, 0x00ABE7],
[0x00ABE9, 0x00ABEC],
[0x00ABEE, 0x00DBFF],
[0x00E000, 0x00FB1D],
[0x00FB1F, 0x00FBB1],
[0x00FBC2, 0x00FDFF],
[0x00FE10, 0x00FE12],
[0x00FE14, 0x00FE1F],
[0x00FE30, 0x00FE51],
[0x00FE53, 0x00FE54],
[0x00FE56, 0x00FEFE],
[0x00FF00, 0x00FF06],
[0x00FF08, 0x00FF0D],
[0x00FF0F, 0x00FF19],
[0x00FF1B, 0x00FF3D],
[0x00FF41, 0x00FF6F],
[0x00FF71, 0x00FF9D],
[0x00FFA0, 0x00FFE2],
[0x00FFE4, 0x00FFF8],
[0x00FFFC, 0x0101FC],
[0x0101FE, 0x0102DF],
[0x0102E1, 0x010375],
[0x01037B, 0x010A00],
[0x010A07, 0x010A0B],
[0x010A10, 0x010A37],
[0x010A3B, 0x010A3E],
[0x010A40, 0x010AE4],
[0x010AE7, 0x011000],
[0x011002, 0x011037],
[0x011047, 0x01107E],
[0x011082, 0x0110B2],
[0x0110B7, 0x0110B8],
[0x0110BB, 0x0110BC],
[0x0110BE, 0x0110FF],
[0x011103, 0x011126],
[0x011135, 0x011172],
[0x011174, 0x01117F],
[0x011182, 0x0111B5],
[0x0111BF, 0x0111C9],
[0x0111CD, 0x01122E],
[0x011232, 0x011233],
[0x011238, 0x01123D],
[0x01123F, 0x0112DE],
[0x0112E0, 0x0112E2],
[0x0112EB, 0x0112FF],
[0x011302, 0x01133B],
[0x01133D, 0x01133F],
[0x011341, 0x011365],
[0x01136D, 0x01136F],
[0x011375, 0x011437],
[0x011440, 0x011441],
[0x011447, 0x0114B2],
[0x0114BB, 0x0114BE],
[0x0114C4, 0x0115B1],
[0x0115B6, 0x0115BB],
[0x0115C1, 0x0115DB],
[0x0115DE, 0x011632],
[0x01163B, 0x01163C],
[0x011641, 0x0116AA],
[0x0116AE, 0x0116AF],
[0x0116B8, 0x01171C],
[0x011720, 0x011721],
[0x01172C, 0x011C2F],
[0x011C40, 0x011C91],
[0x011CA8, 0x011CA9],
[0x011CB7, 0x016AEF],
[0x016AF5, 0x016B2F],
[0x016B37, 0x016B3F],
[0x016B44, 0x016F8E],
[0x016FA0, 0x016FDF],
[0x016FE1, 0x01BC9C],
[0x01BCA4, 0x01D166],
[0x01D16A, 0x01D172],
[0x01D183, 0x01D184],
[0x01D18C, 0x01D1A9],
[0x01D1AE, 0x01D241],
[0x01D245, 0x01D9FF],
[0x01DA37, 0x01DA3A],
[0x01DA6D, 0x01DA74],
[0x01DA76, 0x01DA83],
[0x01DA85, 0x01DA9A],
[0x01DAB0, 0x01DFFF],
[0x01E019, 0x01E01A],
[0x01E02B, 0x01E8CF],
[0x01E8D7, 0x01E943],
[0x01E94B, 0x01F3FA],
[0x01F400, 0x0E0000],
[0x0E0002, 0x0E001F],
[0x0E0080, 0x0E00FF],
[0x0E01F0, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Case_Ignorable}+$/u,
nonMatchSymbols,
"\\P{Case_Ignorable}"
);
testPropertyEscapes(
/^\P{CI}+$/u,
nonMatchSymbols,
"\\P{CI}"
);

View File

@ -0,0 +1,311 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Cased`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000AA,
0x0000B5,
0x0000BA,
0x000345,
0x00037F,
0x000386,
0x00038C,
0x0010C7,
0x0010CD,
0x001F59,
0x001F5B,
0x001F5D,
0x001FBE,
0x002071,
0x00207F,
0x002102,
0x002107,
0x002115,
0x002124,
0x002126,
0x002128,
0x002139,
0x00214E,
0x002D27,
0x002D2D,
0x01D4A2,
0x01D4BB,
0x01D546
],
ranges: [
[0x000041, 0x00005A],
[0x000061, 0x00007A],
[0x0000C0, 0x0000D6],
[0x0000D8, 0x0000F6],
[0x0000F8, 0x0001BA],
[0x0001BC, 0x0001BF],
[0x0001C4, 0x000293],
[0x000295, 0x0002B8],
[0x0002C0, 0x0002C1],
[0x0002E0, 0x0002E4],
[0x000370, 0x000373],
[0x000376, 0x000377],
[0x00037A, 0x00037D],
[0x000388, 0x00038A],
[0x00038E, 0x0003A1],
[0x0003A3, 0x0003F5],
[0x0003F7, 0x000481],
[0x00048A, 0x00052F],
[0x000531, 0x000556],
[0x000561, 0x000587],
[0x0010A0, 0x0010C5],
[0x0013A0, 0x0013F5],
[0x0013F8, 0x0013FD],
[0x001C80, 0x001C88],
[0x001D00, 0x001DBF],
[0x001E00, 0x001F15],
[0x001F18, 0x001F1D],
[0x001F20, 0x001F45],
[0x001F48, 0x001F4D],
[0x001F50, 0x001F57],
[0x001F5F, 0x001F7D],
[0x001F80, 0x001FB4],
[0x001FB6, 0x001FBC],
[0x001FC2, 0x001FC4],
[0x001FC6, 0x001FCC],
[0x001FD0, 0x001FD3],
[0x001FD6, 0x001FDB],
[0x001FE0, 0x001FEC],
[0x001FF2, 0x001FF4],
[0x001FF6, 0x001FFC],
[0x002090, 0x00209C],
[0x00210A, 0x002113],
[0x002119, 0x00211D],
[0x00212A, 0x00212D],
[0x00212F, 0x002134],
[0x00213C, 0x00213F],
[0x002145, 0x002149],
[0x002160, 0x00217F],
[0x002183, 0x002184],
[0x0024B6, 0x0024E9],
[0x002C00, 0x002C2E],
[0x002C30, 0x002C5E],
[0x002C60, 0x002CE4],
[0x002CEB, 0x002CEE],
[0x002CF2, 0x002CF3],
[0x002D00, 0x002D25],
[0x00A640, 0x00A66D],
[0x00A680, 0x00A69D],
[0x00A722, 0x00A787],
[0x00A78B, 0x00A78E],
[0x00A790, 0x00A7AE],
[0x00A7B0, 0x00A7B7],
[0x00A7F8, 0x00A7FA],
[0x00AB30, 0x00AB5A],
[0x00AB5C, 0x00AB65],
[0x00AB70, 0x00ABBF],
[0x00FB00, 0x00FB06],
[0x00FB13, 0x00FB17],
[0x00FF21, 0x00FF3A],
[0x00FF41, 0x00FF5A],
[0x010400, 0x01044F],
[0x0104B0, 0x0104D3],
[0x0104D8, 0x0104FB],
[0x010C80, 0x010CB2],
[0x010CC0, 0x010CF2],
[0x0118A0, 0x0118DF],
[0x01D400, 0x01D454],
[0x01D456, 0x01D49C],
[0x01D49E, 0x01D49F],
[0x01D4A5, 0x01D4A6],
[0x01D4A9, 0x01D4AC],
[0x01D4AE, 0x01D4B9],
[0x01D4BD, 0x01D4C3],
[0x01D4C5, 0x01D505],
[0x01D507, 0x01D50A],
[0x01D50D, 0x01D514],
[0x01D516, 0x01D51C],
[0x01D51E, 0x01D539],
[0x01D53B, 0x01D53E],
[0x01D540, 0x01D544],
[0x01D54A, 0x01D550],
[0x01D552, 0x01D6A5],
[0x01D6A8, 0x01D6C0],
[0x01D6C2, 0x01D6DA],
[0x01D6DC, 0x01D6FA],
[0x01D6FC, 0x01D714],
[0x01D716, 0x01D734],
[0x01D736, 0x01D74E],
[0x01D750, 0x01D76E],
[0x01D770, 0x01D788],
[0x01D78A, 0x01D7A8],
[0x01D7AA, 0x01D7C2],
[0x01D7C4, 0x01D7CB],
[0x01E900, 0x01E943],
[0x01F130, 0x01F149],
[0x01F150, 0x01F169],
[0x01F170, 0x01F189]
]
});
testPropertyEscapes(
/^\p{Cased}+$/u,
matchSymbols,
"\\p{Cased}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0000D7,
0x0000F7,
0x0001BB,
0x000294,
0x00037E,
0x000387,
0x00038B,
0x00038D,
0x0003A2,
0x0003F6,
0x000530,
0x0010C6,
0x001F58,
0x001F5A,
0x001F5C,
0x001F5E,
0x001FB5,
0x001FBD,
0x001FC5,
0x001FF5,
0x002114,
0x002125,
0x002127,
0x002129,
0x00212E,
0x002C2F,
0x002C5F,
0x002D26,
0x00A78F,
0x00A7AF,
0x00AB5B,
0x01D455,
0x01D49D,
0x01D4AD,
0x01D4BA,
0x01D4BC,
0x01D4C4,
0x01D506,
0x01D515,
0x01D51D,
0x01D53A,
0x01D53F,
0x01D545,
0x01D551,
0x01D6C1,
0x01D6DB,
0x01D6FB,
0x01D715,
0x01D735,
0x01D74F,
0x01D76F,
0x01D789,
0x01D7A9,
0x01D7C3
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000040],
[0x00005B, 0x000060],
[0x00007B, 0x0000A9],
[0x0000AB, 0x0000B4],
[0x0000B6, 0x0000B9],
[0x0000BB, 0x0000BF],
[0x0001C0, 0x0001C3],
[0x0002B9, 0x0002BF],
[0x0002C2, 0x0002DF],
[0x0002E5, 0x000344],
[0x000346, 0x00036F],
[0x000374, 0x000375],
[0x000378, 0x000379],
[0x000380, 0x000385],
[0x000482, 0x000489],
[0x000557, 0x000560],
[0x000588, 0x00109F],
[0x0010C8, 0x0010CC],
[0x0010CE, 0x00139F],
[0x0013F6, 0x0013F7],
[0x0013FE, 0x001C7F],
[0x001C89, 0x001CFF],
[0x001DC0, 0x001DFF],
[0x001F16, 0x001F17],
[0x001F1E, 0x001F1F],
[0x001F46, 0x001F47],
[0x001F4E, 0x001F4F],
[0x001F7E, 0x001F7F],
[0x001FBF, 0x001FC1],
[0x001FCD, 0x001FCF],
[0x001FD4, 0x001FD5],
[0x001FDC, 0x001FDF],
[0x001FED, 0x001FF1],
[0x001FFD, 0x002070],
[0x002072, 0x00207E],
[0x002080, 0x00208F],
[0x00209D, 0x002101],
[0x002103, 0x002106],
[0x002108, 0x002109],
[0x002116, 0x002118],
[0x00211E, 0x002123],
[0x002135, 0x002138],
[0x00213A, 0x00213B],
[0x002140, 0x002144],
[0x00214A, 0x00214D],
[0x00214F, 0x00215F],
[0x002180, 0x002182],
[0x002185, 0x0024B5],
[0x0024EA, 0x002BFF],
[0x002CE5, 0x002CEA],
[0x002CEF, 0x002CF1],
[0x002CF4, 0x002CFF],
[0x002D28, 0x002D2C],
[0x002D2E, 0x00A63F],
[0x00A66E, 0x00A67F],
[0x00A69E, 0x00A721],
[0x00A788, 0x00A78A],
[0x00A7B8, 0x00A7F7],
[0x00A7FB, 0x00AB2F],
[0x00AB66, 0x00AB6F],
[0x00ABC0, 0x00DBFF],
[0x00E000, 0x00FAFF],
[0x00FB07, 0x00FB12],
[0x00FB18, 0x00FF20],
[0x00FF3B, 0x00FF40],
[0x00FF5B, 0x0103FF],
[0x010450, 0x0104AF],
[0x0104D4, 0x0104D7],
[0x0104FC, 0x010C7F],
[0x010CB3, 0x010CBF],
[0x010CF3, 0x01189F],
[0x0118E0, 0x01D3FF],
[0x01D4A0, 0x01D4A1],
[0x01D4A3, 0x01D4A4],
[0x01D4A7, 0x01D4A8],
[0x01D50B, 0x01D50C],
[0x01D547, 0x01D549],
[0x01D6A6, 0x01D6A7],
[0x01D7CC, 0x01E8FF],
[0x01E944, 0x01F12F],
[0x01F14A, 0x01F14F],
[0x01F16A, 0x01F16F],
[0x01F18A, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Cased}+$/u,
nonMatchSymbols,
"\\P{Cased}"
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,283 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Changes_When_Casemapped`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000B5,
0x0001BF,
0x000259,
0x000263,
0x00026F,
0x000275,
0x00027D,
0x000280,
0x000283,
0x000292,
0x000345,
0x00037F,
0x000386,
0x00038C,
0x0010C7,
0x0010CD,
0x001D79,
0x001D7D,
0x001E9E,
0x001F59,
0x001F5B,
0x001F5D,
0x001FBE,
0x002126,
0x002132,
0x00214E,
0x002D27,
0x002D2D,
0x00AB53
],
ranges: [
[0x000041, 0x00005A],
[0x000061, 0x00007A],
[0x0000C0, 0x0000D6],
[0x0000D8, 0x0000F6],
[0x0000F8, 0x000137],
[0x000139, 0x00018C],
[0x00018E, 0x00019A],
[0x00019C, 0x0001A9],
[0x0001AC, 0x0001B9],
[0x0001BC, 0x0001BD],
[0x0001C4, 0x000220],
[0x000222, 0x000233],
[0x00023A, 0x000254],
[0x000256, 0x000257],
[0x00025B, 0x00025C],
[0x000260, 0x000261],
[0x000265, 0x000266],
[0x000268, 0x00026C],
[0x000271, 0x000272],
[0x000287, 0x00028C],
[0x00029D, 0x00029E],
[0x000370, 0x000373],
[0x000376, 0x000377],
[0x00037B, 0x00037D],
[0x000388, 0x00038A],
[0x00038E, 0x0003A1],
[0x0003A3, 0x0003D1],
[0x0003D5, 0x0003F5],
[0x0003F7, 0x0003FB],
[0x0003FD, 0x000481],
[0x00048A, 0x00052F],
[0x000531, 0x000556],
[0x000561, 0x000587],
[0x0010A0, 0x0010C5],
[0x0013A0, 0x0013F5],
[0x0013F8, 0x0013FD],
[0x001C80, 0x001C88],
[0x001E00, 0x001E9B],
[0x001EA0, 0x001F15],
[0x001F18, 0x001F1D],
[0x001F20, 0x001F45],
[0x001F48, 0x001F4D],
[0x001F50, 0x001F57],
[0x001F5F, 0x001F7D],
[0x001F80, 0x001FB4],
[0x001FB6, 0x001FBC],
[0x001FC2, 0x001FC4],
[0x001FC6, 0x001FCC],
[0x001FD0, 0x001FD3],
[0x001FD6, 0x001FDB],
[0x001FE0, 0x001FEC],
[0x001FF2, 0x001FF4],
[0x001FF6, 0x001FFC],
[0x00212A, 0x00212B],
[0x002160, 0x00217F],
[0x002183, 0x002184],
[0x0024B6, 0x0024E9],
[0x002C00, 0x002C2E],
[0x002C30, 0x002C5E],
[0x002C60, 0x002C70],
[0x002C72, 0x002C73],
[0x002C75, 0x002C76],
[0x002C7E, 0x002CE3],
[0x002CEB, 0x002CEE],
[0x002CF2, 0x002CF3],
[0x002D00, 0x002D25],
[0x00A640, 0x00A66D],
[0x00A680, 0x00A69B],
[0x00A722, 0x00A72F],
[0x00A732, 0x00A76F],
[0x00A779, 0x00A787],
[0x00A78B, 0x00A78D],
[0x00A790, 0x00A793],
[0x00A796, 0x00A7AE],
[0x00A7B0, 0x00A7B7],
[0x00AB70, 0x00ABBF],
[0x00FB00, 0x00FB06],
[0x00FB13, 0x00FB17],
[0x00FF21, 0x00FF3A],
[0x00FF41, 0x00FF5A],
[0x010400, 0x01044F],
[0x0104B0, 0x0104D3],
[0x0104D8, 0x0104FB],
[0x010C80, 0x010CB2],
[0x010CC0, 0x010CF2],
[0x0118A0, 0x0118DF],
[0x01E900, 0x01E943]
]
});
testPropertyEscapes(
/^\p{Changes_When_Casemapped}+$/u,
matchSymbols,
"\\p{Changes_When_Casemapped}"
);
testPropertyEscapes(
/^\p{CWCM}+$/u,
matchSymbols,
"\\p{CWCM}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0000D7,
0x0000F7,
0x000138,
0x00018D,
0x00019B,
0x0001BE,
0x000221,
0x000255,
0x000258,
0x00025A,
0x000262,
0x000264,
0x000267,
0x000270,
0x00037E,
0x000387,
0x00038B,
0x00038D,
0x0003A2,
0x0003F6,
0x0003FC,
0x000530,
0x0010C6,
0x001E9F,
0x001F58,
0x001F5A,
0x001F5C,
0x001F5E,
0x001FB5,
0x001FBD,
0x001FC5,
0x001FF5,
0x002C2F,
0x002C5F,
0x002C71,
0x002C74,
0x002D26,
0x00A7AF
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000040],
[0x00005B, 0x000060],
[0x00007B, 0x0000B4],
[0x0000B6, 0x0000BF],
[0x0001AA, 0x0001AB],
[0x0001BA, 0x0001BB],
[0x0001C0, 0x0001C3],
[0x000234, 0x000239],
[0x00025D, 0x00025F],
[0x00026D, 0x00026E],
[0x000273, 0x000274],
[0x000276, 0x00027C],
[0x00027E, 0x00027F],
[0x000281, 0x000282],
[0x000284, 0x000286],
[0x00028D, 0x000291],
[0x000293, 0x00029C],
[0x00029F, 0x000344],
[0x000346, 0x00036F],
[0x000374, 0x000375],
[0x000378, 0x00037A],
[0x000380, 0x000385],
[0x0003D2, 0x0003D4],
[0x000482, 0x000489],
[0x000557, 0x000560],
[0x000588, 0x00109F],
[0x0010C8, 0x0010CC],
[0x0010CE, 0x00139F],
[0x0013F6, 0x0013F7],
[0x0013FE, 0x001C7F],
[0x001C89, 0x001D78],
[0x001D7A, 0x001D7C],
[0x001D7E, 0x001DFF],
[0x001E9C, 0x001E9D],
[0x001F16, 0x001F17],
[0x001F1E, 0x001F1F],
[0x001F46, 0x001F47],
[0x001F4E, 0x001F4F],
[0x001F7E, 0x001F7F],
[0x001FBF, 0x001FC1],
[0x001FCD, 0x001FCF],
[0x001FD4, 0x001FD5],
[0x001FDC, 0x001FDF],
[0x001FED, 0x001FF1],
[0x001FFD, 0x002125],
[0x002127, 0x002129],
[0x00212C, 0x002131],
[0x002133, 0x00214D],
[0x00214F, 0x00215F],
[0x002180, 0x002182],
[0x002185, 0x0024B5],
[0x0024EA, 0x002BFF],
[0x002C77, 0x002C7D],
[0x002CE4, 0x002CEA],
[0x002CEF, 0x002CF1],
[0x002CF4, 0x002CFF],
[0x002D28, 0x002D2C],
[0x002D2E, 0x00A63F],
[0x00A66E, 0x00A67F],
[0x00A69C, 0x00A721],
[0x00A730, 0x00A731],
[0x00A770, 0x00A778],
[0x00A788, 0x00A78A],
[0x00A78E, 0x00A78F],
[0x00A794, 0x00A795],
[0x00A7B8, 0x00AB52],
[0x00AB54, 0x00AB6F],
[0x00ABC0, 0x00DBFF],
[0x00E000, 0x00FAFF],
[0x00FB07, 0x00FB12],
[0x00FB18, 0x00FF20],
[0x00FF3B, 0x00FF40],
[0x00FF5B, 0x0103FF],
[0x010450, 0x0104AF],
[0x0104D4, 0x0104D7],
[0x0104FC, 0x010C7F],
[0x010CB3, 0x010CBF],
[0x010CF3, 0x01189F],
[0x0118E0, 0x01E8FF],
[0x01E944, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Changes_When_Casemapped}+$/u,
nonMatchSymbols,
"\\P{Changes_When_Casemapped}"
);
testPropertyEscapes(
/^\P{CWCM}+$/u,
nonMatchSymbols,
"\\P{CWCM}"
);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,117 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Composition_Exclusion`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0009DF,
0x000A33,
0x000A36,
0x000A5E,
0x000F43,
0x000F4D,
0x000F52,
0x000F57,
0x000F5C,
0x000F69,
0x000F76,
0x000F78,
0x000F93,
0x000F9D,
0x000FA2,
0x000FA7,
0x000FAC,
0x000FB9,
0x002ADC,
0x00FB1D,
0x00FB1F,
0x00FB3E
],
ranges: [
[0x000958, 0x00095F],
[0x0009DC, 0x0009DD],
[0x000A59, 0x000A5B],
[0x000B5C, 0x000B5D],
[0x00FB2A, 0x00FB36],
[0x00FB38, 0x00FB3C],
[0x00FB40, 0x00FB41],
[0x00FB43, 0x00FB44],
[0x00FB46, 0x00FB4E],
[0x01D15E, 0x01D164],
[0x01D1BB, 0x01D1C0]
]
});
testPropertyEscapes(
/^\p{Composition_Exclusion}+$/u,
matchSymbols,
"\\p{Composition_Exclusion}"
);
testPropertyEscapes(
/^\p{CE}+$/u,
matchSymbols,
"\\p{CE}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0009DE,
0x000F77,
0x00FB1E,
0x00FB37,
0x00FB3D,
0x00FB3F,
0x00FB42,
0x00FB45
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000957],
[0x000960, 0x0009DB],
[0x0009E0, 0x000A32],
[0x000A34, 0x000A35],
[0x000A37, 0x000A58],
[0x000A5C, 0x000A5D],
[0x000A5F, 0x000B5B],
[0x000B5E, 0x000F42],
[0x000F44, 0x000F4C],
[0x000F4E, 0x000F51],
[0x000F53, 0x000F56],
[0x000F58, 0x000F5B],
[0x000F5D, 0x000F68],
[0x000F6A, 0x000F75],
[0x000F79, 0x000F92],
[0x000F94, 0x000F9C],
[0x000F9E, 0x000FA1],
[0x000FA3, 0x000FA6],
[0x000FA8, 0x000FAB],
[0x000FAD, 0x000FB8],
[0x000FBA, 0x002ADB],
[0x002ADD, 0x00DBFF],
[0x00E000, 0x00FB1C],
[0x00FB20, 0x00FB29],
[0x00FB4F, 0x01D15D],
[0x01D165, 0x01D1BA],
[0x01D1C1, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Composition_Exclusion}+$/u,
nonMatchSymbols,
"\\P{Composition_Exclusion}"
);
testPropertyEscapes(
/^\P{CE}+$/u,
nonMatchSymbols,
"\\P{CE}"
);

View File

@ -0,0 +1,82 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Dash`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00002D,
0x00058A,
0x0005BE,
0x001400,
0x001806,
0x002053,
0x00207B,
0x00208B,
0x002212,
0x002E17,
0x002E1A,
0x002E40,
0x00301C,
0x003030,
0x0030A0,
0x00FE58,
0x00FE63,
0x00FF0D
],
ranges: [
[0x002010, 0x002015],
[0x002E3A, 0x002E3B],
[0x00FE31, 0x00FE32]
]
});
testPropertyEscapes(
/^\p{Dash}+$/u,
matchSymbols,
"\\p{Dash}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00002C],
[0x00002E, 0x000589],
[0x00058B, 0x0005BD],
[0x0005BF, 0x0013FF],
[0x001401, 0x001805],
[0x001807, 0x00200F],
[0x002016, 0x002052],
[0x002054, 0x00207A],
[0x00207C, 0x00208A],
[0x00208C, 0x002211],
[0x002213, 0x002E16],
[0x002E18, 0x002E19],
[0x002E1B, 0x002E39],
[0x002E3C, 0x002E3F],
[0x002E41, 0x00301B],
[0x00301D, 0x00302F],
[0x003031, 0x00309F],
[0x0030A1, 0x00DBFF],
[0x00E000, 0x00FE30],
[0x00FE33, 0x00FE57],
[0x00FE59, 0x00FE62],
[0x00FE64, 0x00FF0C],
[0x00FF0E, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Dash}+$/u,
nonMatchSymbols,
"\\P{Dash}"
);

View File

@ -0,0 +1,84 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Default_Ignorable_Code_Point`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000AD,
0x00034F,
0x00061C,
0x003164,
0x00FEFF,
0x00FFA0
],
ranges: [
[0x00115F, 0x001160],
[0x0017B4, 0x0017B5],
[0x00180B, 0x00180E],
[0x00200B, 0x00200F],
[0x00202A, 0x00202E],
[0x002060, 0x00206F],
[0x00FE00, 0x00FE0F],
[0x00FFF0, 0x00FFF8],
[0x01BCA0, 0x01BCA3],
[0x01D173, 0x01D17A],
[0x0E0000, 0x0E0FFF]
]
});
testPropertyEscapes(
/^\p{Default_Ignorable_Code_Point}+$/u,
matchSymbols,
"\\p{Default_Ignorable_Code_Point}"
);
testPropertyEscapes(
/^\p{DI}+$/u,
matchSymbols,
"\\p{DI}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0000AC],
[0x0000AE, 0x00034E],
[0x000350, 0x00061B],
[0x00061D, 0x00115E],
[0x001161, 0x0017B3],
[0x0017B6, 0x00180A],
[0x00180F, 0x00200A],
[0x002010, 0x002029],
[0x00202F, 0x00205F],
[0x002070, 0x003163],
[0x003165, 0x00DBFF],
[0x00E000, 0x00FDFF],
[0x00FE10, 0x00FEFE],
[0x00FF00, 0x00FF9F],
[0x00FFA1, 0x00FFEF],
[0x00FFF9, 0x01BC9F],
[0x01BCA4, 0x01D172],
[0x01D17B, 0x0DFFFF],
[0x0E1000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Default_Ignorable_Code_Point}+$/u,
nonMatchSymbols,
"\\P{Default_Ignorable_Code_Point}"
);
testPropertyEscapes(
/^\P{DI}+$/u,
nonMatchSymbols,
"\\P{DI}"
);

View File

@ -0,0 +1,67 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Deprecated`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000149,
0x000673,
0x000F77,
0x000F79,
0x0E0001
],
ranges: [
[0x0017A3, 0x0017A4],
[0x00206A, 0x00206F],
[0x002329, 0x00232A]
]
});
testPropertyEscapes(
/^\p{Deprecated}+$/u,
matchSymbols,
"\\p{Deprecated}"
);
testPropertyEscapes(
/^\p{Dep}+$/u,
matchSymbols,
"\\p{Dep}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x000F78
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000148],
[0x00014A, 0x000672],
[0x000674, 0x000F76],
[0x000F7A, 0x0017A2],
[0x0017A5, 0x002069],
[0x002070, 0x002328],
[0x00232B, 0x00DBFF],
[0x00E000, 0x0E0000],
[0x0E0002, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Deprecated}+$/u,
nonMatchSymbols,
"\\P{Deprecated}"
);
testPropertyEscapes(
/^\P{Dep}+$/u,
nonMatchSymbols,
"\\P{Dep}"
);

View File

@ -0,0 +1,355 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Diacritic`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00005E,
0x000060,
0x0000A8,
0x0000AF,
0x0000B4,
0x00037A,
0x000559,
0x0005BF,
0x0005C4,
0x00093C,
0x00094D,
0x000971,
0x0009BC,
0x0009CD,
0x000A3C,
0x000A4D,
0x000ABC,
0x000ACD,
0x000B3C,
0x000B4D,
0x000BCD,
0x000C4D,
0x000CBC,
0x000CCD,
0x000D4D,
0x000DCA,
0x000E4E,
0x000F35,
0x000F37,
0x000F39,
0x000FC6,
0x001037,
0x00108F,
0x0017DD,
0x001A7F,
0x001B34,
0x001B44,
0x001CED,
0x001CF4,
0x001DF5,
0x001FBD,
0x002E2F,
0x0030FC,
0x00A66F,
0x00A67F,
0x00A788,
0x00A8C4,
0x00A953,
0x00A9B3,
0x00A9C0,
0x00A9E5,
0x00AAF6,
0x00FB1E,
0x00FF3E,
0x00FF40,
0x00FF70,
0x00FFE3,
0x0102E0,
0x011173,
0x0111C0,
0x01133C,
0x01134D,
0x011442,
0x011446,
0x01163F,
0x01172B,
0x011C3F
],
ranges: [
[0x0000B7, 0x0000B8],
[0x0002B0, 0x00034E],
[0x000350, 0x000357],
[0x00035D, 0x000362],
[0x000374, 0x000375],
[0x000384, 0x000385],
[0x000483, 0x000487],
[0x000591, 0x0005A1],
[0x0005A3, 0x0005BD],
[0x0005C1, 0x0005C2],
[0x00064B, 0x000652],
[0x000657, 0x000658],
[0x0006DF, 0x0006E0],
[0x0006E5, 0x0006E6],
[0x0006EA, 0x0006EC],
[0x000730, 0x00074A],
[0x0007A6, 0x0007B0],
[0x0007EB, 0x0007F5],
[0x000818, 0x000819],
[0x0008E3, 0x0008FE],
[0x000951, 0x000954],
[0x000E47, 0x000E4C],
[0x000EC8, 0x000ECC],
[0x000F18, 0x000F19],
[0x000F3E, 0x000F3F],
[0x000F82, 0x000F84],
[0x000F86, 0x000F87],
[0x001039, 0x00103A],
[0x001087, 0x00108D],
[0x00109A, 0x00109B],
[0x0017C9, 0x0017D3],
[0x001939, 0x00193B],
[0x001A75, 0x001A7C],
[0x001AB0, 0x001ABD],
[0x001B6B, 0x001B73],
[0x001BAA, 0x001BAB],
[0x001C36, 0x001C37],
[0x001C78, 0x001C7D],
[0x001CD0, 0x001CE8],
[0x001CF8, 0x001CF9],
[0x001D2C, 0x001D6A],
[0x001DC4, 0x001DCF],
[0x001DFD, 0x001DFF],
[0x001FBF, 0x001FC1],
[0x001FCD, 0x001FCF],
[0x001FDD, 0x001FDF],
[0x001FED, 0x001FEF],
[0x001FFD, 0x001FFE],
[0x002CEF, 0x002CF1],
[0x00302A, 0x00302F],
[0x003099, 0x00309C],
[0x00A67C, 0x00A67D],
[0x00A69C, 0x00A69D],
[0x00A6F0, 0x00A6F1],
[0x00A717, 0x00A721],
[0x00A7F8, 0x00A7F9],
[0x00A8E0, 0x00A8F1],
[0x00A92B, 0x00A92E],
[0x00AA7B, 0x00AA7D],
[0x00AABF, 0x00AAC2],
[0x00AB5B, 0x00AB5F],
[0x00ABEC, 0x00ABED],
[0x00FE20, 0x00FE2F],
[0x00FF9E, 0x00FF9F],
[0x010AE5, 0x010AE6],
[0x0110B9, 0x0110BA],
[0x011133, 0x011134],
[0x0111CA, 0x0111CC],
[0x011235, 0x011236],
[0x0112E9, 0x0112EA],
[0x011366, 0x01136C],
[0x011370, 0x011374],
[0x0114C2, 0x0114C3],
[0x0115BF, 0x0115C0],
[0x0116B6, 0x0116B7],
[0x016AF0, 0x016AF4],
[0x016F8F, 0x016F9F],
[0x01D167, 0x01D169],
[0x01D16D, 0x01D172],
[0x01D17B, 0x01D182],
[0x01D185, 0x01D18B],
[0x01D1AA, 0x01D1AD],
[0x01E8D0, 0x01E8D6],
[0x01E944, 0x01E946],
[0x01E948, 0x01E94A]
]
});
testPropertyEscapes(
/^\p{Diacritic}+$/u,
matchSymbols,
"\\p{Diacritic}"
);
testPropertyEscapes(
/^\p{Dia}+$/u,
matchSymbols,
"\\p{Dia}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x00005F,
0x00034F,
0x0005A2,
0x0005BE,
0x0005C0,
0x0005C3,
0x000E4D,
0x000F36,
0x000F38,
0x000F85,
0x001038,
0x00108E,
0x001FBE,
0x00A67E,
0x00FF3F,
0x01E947
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00005D],
[0x000061, 0x0000A7],
[0x0000A9, 0x0000AE],
[0x0000B0, 0x0000B3],
[0x0000B5, 0x0000B6],
[0x0000B9, 0x0002AF],
[0x000358, 0x00035C],
[0x000363, 0x000373],
[0x000376, 0x000379],
[0x00037B, 0x000383],
[0x000386, 0x000482],
[0x000488, 0x000558],
[0x00055A, 0x000590],
[0x0005C5, 0x00064A],
[0x000653, 0x000656],
[0x000659, 0x0006DE],
[0x0006E1, 0x0006E4],
[0x0006E7, 0x0006E9],
[0x0006ED, 0x00072F],
[0x00074B, 0x0007A5],
[0x0007B1, 0x0007EA],
[0x0007F6, 0x000817],
[0x00081A, 0x0008E2],
[0x0008FF, 0x00093B],
[0x00093D, 0x00094C],
[0x00094E, 0x000950],
[0x000955, 0x000970],
[0x000972, 0x0009BB],
[0x0009BD, 0x0009CC],
[0x0009CE, 0x000A3B],
[0x000A3D, 0x000A4C],
[0x000A4E, 0x000ABB],
[0x000ABD, 0x000ACC],
[0x000ACE, 0x000B3B],
[0x000B3D, 0x000B4C],
[0x000B4E, 0x000BCC],
[0x000BCE, 0x000C4C],
[0x000C4E, 0x000CBB],
[0x000CBD, 0x000CCC],
[0x000CCE, 0x000D4C],
[0x000D4E, 0x000DC9],
[0x000DCB, 0x000E46],
[0x000E4F, 0x000EC7],
[0x000ECD, 0x000F17],
[0x000F1A, 0x000F34],
[0x000F3A, 0x000F3D],
[0x000F40, 0x000F81],
[0x000F88, 0x000FC5],
[0x000FC7, 0x001036],
[0x00103B, 0x001086],
[0x001090, 0x001099],
[0x00109C, 0x0017C8],
[0x0017D4, 0x0017DC],
[0x0017DE, 0x001938],
[0x00193C, 0x001A74],
[0x001A7D, 0x001A7E],
[0x001A80, 0x001AAF],
[0x001ABE, 0x001B33],
[0x001B35, 0x001B43],
[0x001B45, 0x001B6A],
[0x001B74, 0x001BA9],
[0x001BAC, 0x001C35],
[0x001C38, 0x001C77],
[0x001C7E, 0x001CCF],
[0x001CE9, 0x001CEC],
[0x001CEE, 0x001CF3],
[0x001CF5, 0x001CF7],
[0x001CFA, 0x001D2B],
[0x001D6B, 0x001DC3],
[0x001DD0, 0x001DF4],
[0x001DF6, 0x001DFC],
[0x001E00, 0x001FBC],
[0x001FC2, 0x001FCC],
[0x001FD0, 0x001FDC],
[0x001FE0, 0x001FEC],
[0x001FF0, 0x001FFC],
[0x001FFF, 0x002CEE],
[0x002CF2, 0x002E2E],
[0x002E30, 0x003029],
[0x003030, 0x003098],
[0x00309D, 0x0030FB],
[0x0030FD, 0x00A66E],
[0x00A670, 0x00A67B],
[0x00A680, 0x00A69B],
[0x00A69E, 0x00A6EF],
[0x00A6F2, 0x00A716],
[0x00A722, 0x00A787],
[0x00A789, 0x00A7F7],
[0x00A7FA, 0x00A8C3],
[0x00A8C5, 0x00A8DF],
[0x00A8F2, 0x00A92A],
[0x00A92F, 0x00A952],
[0x00A954, 0x00A9B2],
[0x00A9B4, 0x00A9BF],
[0x00A9C1, 0x00A9E4],
[0x00A9E6, 0x00AA7A],
[0x00AA7E, 0x00AABE],
[0x00AAC3, 0x00AAF5],
[0x00AAF7, 0x00AB5A],
[0x00AB60, 0x00ABEB],
[0x00ABEE, 0x00DBFF],
[0x00E000, 0x00FB1D],
[0x00FB1F, 0x00FE1F],
[0x00FE30, 0x00FF3D],
[0x00FF41, 0x00FF6F],
[0x00FF71, 0x00FF9D],
[0x00FFA0, 0x00FFE2],
[0x00FFE4, 0x0102DF],
[0x0102E1, 0x010AE4],
[0x010AE7, 0x0110B8],
[0x0110BB, 0x011132],
[0x011135, 0x011172],
[0x011174, 0x0111BF],
[0x0111C1, 0x0111C9],
[0x0111CD, 0x011234],
[0x011237, 0x0112E8],
[0x0112EB, 0x01133B],
[0x01133D, 0x01134C],
[0x01134E, 0x011365],
[0x01136D, 0x01136F],
[0x011375, 0x011441],
[0x011443, 0x011445],
[0x011447, 0x0114C1],
[0x0114C4, 0x0115BE],
[0x0115C1, 0x01163E],
[0x011640, 0x0116B5],
[0x0116B8, 0x01172A],
[0x01172C, 0x011C3E],
[0x011C40, 0x016AEF],
[0x016AF5, 0x016F8E],
[0x016FA0, 0x01D166],
[0x01D16A, 0x01D16C],
[0x01D173, 0x01D17A],
[0x01D183, 0x01D184],
[0x01D18C, 0x01D1A9],
[0x01D1AE, 0x01E8CF],
[0x01E8D7, 0x01E943],
[0x01E94B, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Diacritic}+$/u,
nonMatchSymbols,
"\\P{Diacritic}"
);
testPropertyEscapes(
/^\P{Dia}+$/u,
nonMatchSymbols,
"\\P{Dia}"
);

View File

@ -0,0 +1,331 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Emoji`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000023,
0x00002A,
0x0000A9,
0x0000AE,
0x00203C,
0x002049,
0x002122,
0x002139,
0x002328,
0x0023CF,
0x0024C2,
0x0025B6,
0x0025C0,
0x00260E,
0x002611,
0x002618,
0x00261D,
0x002620,
0x002626,
0x00262A,
0x002640,
0x002642,
0x002660,
0x002663,
0x002668,
0x00267B,
0x00267F,
0x002699,
0x0026C8,
0x0026D1,
0x0026FD,
0x002702,
0x002705,
0x00270F,
0x002712,
0x002714,
0x002716,
0x00271D,
0x002721,
0x002728,
0x002744,
0x002747,
0x00274C,
0x00274E,
0x002757,
0x0027A1,
0x0027B0,
0x0027BF,
0x002B50,
0x002B55,
0x003030,
0x00303D,
0x003297,
0x003299,
0x01F004,
0x01F0CF,
0x01F18E,
0x01F21A,
0x01F22F,
0x01F587,
0x01F590,
0x01F5A8,
0x01F5BC,
0x01F5E1,
0x01F5E3,
0x01F5E8,
0x01F5EF,
0x01F5F3,
0x01F6E9,
0x01F6F0,
0x01F9C0
],
ranges: [
[0x000030, 0x000039],
[0x002194, 0x002199],
[0x0021A9, 0x0021AA],
[0x00231A, 0x00231B],
[0x0023E9, 0x0023F3],
[0x0023F8, 0x0023FA],
[0x0025AA, 0x0025AB],
[0x0025FB, 0x0025FE],
[0x002600, 0x002604],
[0x002614, 0x002615],
[0x002622, 0x002623],
[0x00262E, 0x00262F],
[0x002638, 0x00263A],
[0x002648, 0x002653],
[0x002665, 0x002666],
[0x002692, 0x002697],
[0x00269B, 0x00269C],
[0x0026A0, 0x0026A1],
[0x0026AA, 0x0026AB],
[0x0026B0, 0x0026B1],
[0x0026BD, 0x0026BE],
[0x0026C4, 0x0026C5],
[0x0026CE, 0x0026CF],
[0x0026D3, 0x0026D4],
[0x0026E9, 0x0026EA],
[0x0026F0, 0x0026F5],
[0x0026F7, 0x0026FA],
[0x002708, 0x00270D],
[0x002733, 0x002734],
[0x002753, 0x002755],
[0x002763, 0x002764],
[0x002795, 0x002797],
[0x002934, 0x002935],
[0x002B05, 0x002B07],
[0x002B1B, 0x002B1C],
[0x01F170, 0x01F171],
[0x01F17E, 0x01F17F],
[0x01F191, 0x01F19A],
[0x01F1E6, 0x01F1FF],
[0x01F201, 0x01F202],
[0x01F232, 0x01F23A],
[0x01F250, 0x01F251],
[0x01F300, 0x01F321],
[0x01F324, 0x01F393],
[0x01F396, 0x01F397],
[0x01F399, 0x01F39B],
[0x01F39E, 0x01F3F0],
[0x01F3F3, 0x01F3F5],
[0x01F3F7, 0x01F4FD],
[0x01F4FF, 0x01F53D],
[0x01F549, 0x01F54E],
[0x01F550, 0x01F567],
[0x01F56F, 0x01F570],
[0x01F573, 0x01F57A],
[0x01F58A, 0x01F58D],
[0x01F595, 0x01F596],
[0x01F5A4, 0x01F5A5],
[0x01F5B1, 0x01F5B2],
[0x01F5C2, 0x01F5C4],
[0x01F5D1, 0x01F5D3],
[0x01F5DC, 0x01F5DE],
[0x01F5FA, 0x01F64F],
[0x01F680, 0x01F6C5],
[0x01F6CB, 0x01F6D2],
[0x01F6E0, 0x01F6E5],
[0x01F6EB, 0x01F6EC],
[0x01F6F3, 0x01F6F8],
[0x01F910, 0x01F93A],
[0x01F93C, 0x01F93E],
[0x01F940, 0x01F945],
[0x01F947, 0x01F94C],
[0x01F950, 0x01F96B],
[0x01F980, 0x01F997],
[0x01F9D0, 0x01F9E6]
]
});
testPropertyEscapes(
/^\p{Emoji}+$/u,
matchSymbols,
"\\p{Emoji}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0025FF,
0x002621,
0x002641,
0x002664,
0x002667,
0x002698,
0x00269A,
0x0026D0,
0x0026D2,
0x0026F6,
0x00270E,
0x002713,
0x002715,
0x00274D,
0x002756,
0x003298,
0x01F200,
0x01F398,
0x01F3F6,
0x01F4FE,
0x01F54F,
0x01F5E2,
0x01F6EA,
0x01F93B,
0x01F93F,
0x01F946
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000022],
[0x000024, 0x000029],
[0x00002B, 0x00002F],
[0x00003A, 0x0000A8],
[0x0000AA, 0x0000AD],
[0x0000AF, 0x00203B],
[0x00203D, 0x002048],
[0x00204A, 0x002121],
[0x002123, 0x002138],
[0x00213A, 0x002193],
[0x00219A, 0x0021A8],
[0x0021AB, 0x002319],
[0x00231C, 0x002327],
[0x002329, 0x0023CE],
[0x0023D0, 0x0023E8],
[0x0023F4, 0x0023F7],
[0x0023FB, 0x0024C1],
[0x0024C3, 0x0025A9],
[0x0025AC, 0x0025B5],
[0x0025B7, 0x0025BF],
[0x0025C1, 0x0025FA],
[0x002605, 0x00260D],
[0x00260F, 0x002610],
[0x002612, 0x002613],
[0x002616, 0x002617],
[0x002619, 0x00261C],
[0x00261E, 0x00261F],
[0x002624, 0x002625],
[0x002627, 0x002629],
[0x00262B, 0x00262D],
[0x002630, 0x002637],
[0x00263B, 0x00263F],
[0x002643, 0x002647],
[0x002654, 0x00265F],
[0x002661, 0x002662],
[0x002669, 0x00267A],
[0x00267C, 0x00267E],
[0x002680, 0x002691],
[0x00269D, 0x00269F],
[0x0026A2, 0x0026A9],
[0x0026AC, 0x0026AF],
[0x0026B2, 0x0026BC],
[0x0026BF, 0x0026C3],
[0x0026C6, 0x0026C7],
[0x0026C9, 0x0026CD],
[0x0026D5, 0x0026E8],
[0x0026EB, 0x0026EF],
[0x0026FB, 0x0026FC],
[0x0026FE, 0x002701],
[0x002703, 0x002704],
[0x002706, 0x002707],
[0x002710, 0x002711],
[0x002717, 0x00271C],
[0x00271E, 0x002720],
[0x002722, 0x002727],
[0x002729, 0x002732],
[0x002735, 0x002743],
[0x002745, 0x002746],
[0x002748, 0x00274B],
[0x00274F, 0x002752],
[0x002758, 0x002762],
[0x002765, 0x002794],
[0x002798, 0x0027A0],
[0x0027A2, 0x0027AF],
[0x0027B1, 0x0027BE],
[0x0027C0, 0x002933],
[0x002936, 0x002B04],
[0x002B08, 0x002B1A],
[0x002B1D, 0x002B4F],
[0x002B51, 0x002B54],
[0x002B56, 0x00302F],
[0x003031, 0x00303C],
[0x00303E, 0x003296],
[0x00329A, 0x00DBFF],
[0x00E000, 0x01F003],
[0x01F005, 0x01F0CE],
[0x01F0D0, 0x01F16F],
[0x01F172, 0x01F17D],
[0x01F180, 0x01F18D],
[0x01F18F, 0x01F190],
[0x01F19B, 0x01F1E5],
[0x01F203, 0x01F219],
[0x01F21B, 0x01F22E],
[0x01F230, 0x01F231],
[0x01F23B, 0x01F24F],
[0x01F252, 0x01F2FF],
[0x01F322, 0x01F323],
[0x01F394, 0x01F395],
[0x01F39C, 0x01F39D],
[0x01F3F1, 0x01F3F2],
[0x01F53E, 0x01F548],
[0x01F568, 0x01F56E],
[0x01F571, 0x01F572],
[0x01F57B, 0x01F586],
[0x01F588, 0x01F589],
[0x01F58E, 0x01F58F],
[0x01F591, 0x01F594],
[0x01F597, 0x01F5A3],
[0x01F5A6, 0x01F5A7],
[0x01F5A9, 0x01F5B0],
[0x01F5B3, 0x01F5BB],
[0x01F5BD, 0x01F5C1],
[0x01F5C5, 0x01F5D0],
[0x01F5D4, 0x01F5DB],
[0x01F5DF, 0x01F5E0],
[0x01F5E4, 0x01F5E7],
[0x01F5E9, 0x01F5EE],
[0x01F5F0, 0x01F5F2],
[0x01F5F4, 0x01F5F9],
[0x01F650, 0x01F67F],
[0x01F6C6, 0x01F6CA],
[0x01F6D3, 0x01F6DF],
[0x01F6E6, 0x01F6E8],
[0x01F6ED, 0x01F6EF],
[0x01F6F1, 0x01F6F2],
[0x01F6F9, 0x01F90F],
[0x01F94D, 0x01F94F],
[0x01F96C, 0x01F97F],
[0x01F998, 0x01F9BF],
[0x01F9C1, 0x01F9CF],
[0x01F9E7, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Emoji}+$/u,
nonMatchSymbols,
"\\P{Emoji}"
);

View File

@ -0,0 +1,50 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Emoji_Component`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000023,
0x00002A
],
ranges: [
[0x000030, 0x000039],
[0x01F1E6, 0x01F1FF],
[0x01F3FB, 0x01F3FF]
]
});
testPropertyEscapes(
/^\p{Emoji_Component}+$/u,
matchSymbols,
"\\p{Emoji_Component}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000022],
[0x000024, 0x000029],
[0x00002B, 0x00002F],
[0x00003A, 0x00DBFF],
[0x00E000, 0x01F1E5],
[0x01F200, 0x01F3FA],
[0x01F400, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Emoji_Component}+$/u,
nonMatchSymbols,
"\\P{Emoji_Component}"
);

View File

@ -0,0 +1,41 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Emoji_Modifier`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x01F3FB, 0x01F3FF]
]
});
testPropertyEscapes(
/^\p{Emoji_Modifier}+$/u,
matchSymbols,
"\\p{Emoji_Modifier}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00E000, 0x01F3FA],
[0x01F400, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Emoji_Modifier}+$/u,
nonMatchSymbols,
"\\P{Emoji_Modifier}"
);

View File

@ -0,0 +1,105 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Emoji_Modifier_Base`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00261D,
0x0026F9,
0x01F385,
0x01F3C7,
0x01F46E,
0x01F47C,
0x01F4AA,
0x01F57A,
0x01F590,
0x01F6A3,
0x01F6C0,
0x01F6CC,
0x01F926
],
ranges: [
[0x00270A, 0x00270D],
[0x01F3C2, 0x01F3C4],
[0x01F3CA, 0x01F3CC],
[0x01F442, 0x01F443],
[0x01F446, 0x01F450],
[0x01F466, 0x01F469],
[0x01F470, 0x01F478],
[0x01F481, 0x01F483],
[0x01F485, 0x01F487],
[0x01F574, 0x01F575],
[0x01F595, 0x01F596],
[0x01F645, 0x01F647],
[0x01F64B, 0x01F64F],
[0x01F6B4, 0x01F6B6],
[0x01F918, 0x01F91C],
[0x01F91E, 0x01F91F],
[0x01F930, 0x01F939],
[0x01F93D, 0x01F93E],
[0x01F9D1, 0x01F9DD]
]
});
testPropertyEscapes(
/^\p{Emoji_Modifier_Base}+$/u,
matchSymbols,
"\\p{Emoji_Modifier_Base}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x01F46F,
0x01F484,
0x01F91D
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00261C],
[0x00261E, 0x0026F8],
[0x0026FA, 0x002709],
[0x00270E, 0x00DBFF],
[0x00E000, 0x01F384],
[0x01F386, 0x01F3C1],
[0x01F3C5, 0x01F3C6],
[0x01F3C8, 0x01F3C9],
[0x01F3CD, 0x01F441],
[0x01F444, 0x01F445],
[0x01F451, 0x01F465],
[0x01F46A, 0x01F46D],
[0x01F479, 0x01F47B],
[0x01F47D, 0x01F480],
[0x01F488, 0x01F4A9],
[0x01F4AB, 0x01F573],
[0x01F576, 0x01F579],
[0x01F57B, 0x01F58F],
[0x01F591, 0x01F594],
[0x01F597, 0x01F644],
[0x01F648, 0x01F64A],
[0x01F650, 0x01F6A2],
[0x01F6A4, 0x01F6B3],
[0x01F6B7, 0x01F6BF],
[0x01F6C1, 0x01F6CB],
[0x01F6CD, 0x01F917],
[0x01F920, 0x01F925],
[0x01F927, 0x01F92F],
[0x01F93A, 0x01F93C],
[0x01F93F, 0x01F9D0],
[0x01F9DE, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Emoji_Modifier_Base}+$/u,
nonMatchSymbols,
"\\P{Emoji_Modifier_Base}"
);

View File

@ -0,0 +1,191 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Emoji_Presentation`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0023F0,
0x0023F3,
0x00267F,
0x002693,
0x0026A1,
0x0026CE,
0x0026D4,
0x0026EA,
0x0026F5,
0x0026FA,
0x0026FD,
0x002705,
0x002728,
0x00274C,
0x00274E,
0x002757,
0x0027B0,
0x0027BF,
0x002B50,
0x002B55,
0x01F004,
0x01F0CF,
0x01F18E,
0x01F201,
0x01F21A,
0x01F22F,
0x01F3F4,
0x01F440,
0x01F57A,
0x01F5A4,
0x01F6CC,
0x01F9C0
],
ranges: [
[0x00231A, 0x00231B],
[0x0023E9, 0x0023EC],
[0x0025FD, 0x0025FE],
[0x002614, 0x002615],
[0x002648, 0x002653],
[0x0026AA, 0x0026AB],
[0x0026BD, 0x0026BE],
[0x0026C4, 0x0026C5],
[0x0026F2, 0x0026F3],
[0x00270A, 0x00270B],
[0x002753, 0x002755],
[0x002795, 0x002797],
[0x002B1B, 0x002B1C],
[0x01F191, 0x01F19A],
[0x01F1E6, 0x01F1FF],
[0x01F232, 0x01F236],
[0x01F238, 0x01F23A],
[0x01F250, 0x01F251],
[0x01F300, 0x01F320],
[0x01F32D, 0x01F335],
[0x01F337, 0x01F37C],
[0x01F37E, 0x01F393],
[0x01F3A0, 0x01F3CA],
[0x01F3CF, 0x01F3D3],
[0x01F3E0, 0x01F3F0],
[0x01F3F8, 0x01F43E],
[0x01F442, 0x01F4FC],
[0x01F4FF, 0x01F53D],
[0x01F54B, 0x01F54E],
[0x01F550, 0x01F567],
[0x01F595, 0x01F596],
[0x01F5FB, 0x01F64F],
[0x01F680, 0x01F6C5],
[0x01F6D0, 0x01F6D2],
[0x01F6EB, 0x01F6EC],
[0x01F6F4, 0x01F6F8],
[0x01F910, 0x01F93A],
[0x01F93C, 0x01F93E],
[0x01F940, 0x01F945],
[0x01F947, 0x01F94C],
[0x01F950, 0x01F96B],
[0x01F980, 0x01F997],
[0x01F9D0, 0x01F9E6]
]
});
testPropertyEscapes(
/^\p{Emoji_Presentation}+$/u,
matchSymbols,
"\\p{Emoji_Presentation}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0026F4,
0x00274D,
0x002756,
0x01F200,
0x01F237,
0x01F336,
0x01F37D,
0x01F43F,
0x01F441,
0x01F54F,
0x01F93B,
0x01F93F,
0x01F946
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x002319],
[0x00231C, 0x0023E8],
[0x0023ED, 0x0023EF],
[0x0023F1, 0x0023F2],
[0x0023F4, 0x0025FC],
[0x0025FF, 0x002613],
[0x002616, 0x002647],
[0x002654, 0x00267E],
[0x002680, 0x002692],
[0x002694, 0x0026A0],
[0x0026A2, 0x0026A9],
[0x0026AC, 0x0026BC],
[0x0026BF, 0x0026C3],
[0x0026C6, 0x0026CD],
[0x0026CF, 0x0026D3],
[0x0026D5, 0x0026E9],
[0x0026EB, 0x0026F1],
[0x0026F6, 0x0026F9],
[0x0026FB, 0x0026FC],
[0x0026FE, 0x002704],
[0x002706, 0x002709],
[0x00270C, 0x002727],
[0x002729, 0x00274B],
[0x00274F, 0x002752],
[0x002758, 0x002794],
[0x002798, 0x0027AF],
[0x0027B1, 0x0027BE],
[0x0027C0, 0x002B1A],
[0x002B1D, 0x002B4F],
[0x002B51, 0x002B54],
[0x002B56, 0x00DBFF],
[0x00E000, 0x01F003],
[0x01F005, 0x01F0CE],
[0x01F0D0, 0x01F18D],
[0x01F18F, 0x01F190],
[0x01F19B, 0x01F1E5],
[0x01F202, 0x01F219],
[0x01F21B, 0x01F22E],
[0x01F230, 0x01F231],
[0x01F23B, 0x01F24F],
[0x01F252, 0x01F2FF],
[0x01F321, 0x01F32C],
[0x01F394, 0x01F39F],
[0x01F3CB, 0x01F3CE],
[0x01F3D4, 0x01F3DF],
[0x01F3F1, 0x01F3F3],
[0x01F3F5, 0x01F3F7],
[0x01F4FD, 0x01F4FE],
[0x01F53E, 0x01F54A],
[0x01F568, 0x01F579],
[0x01F57B, 0x01F594],
[0x01F597, 0x01F5A3],
[0x01F5A5, 0x01F5FA],
[0x01F650, 0x01F67F],
[0x01F6C6, 0x01F6CB],
[0x01F6CD, 0x01F6CF],
[0x01F6D3, 0x01F6EA],
[0x01F6ED, 0x01F6F3],
[0x01F6F9, 0x01F90F],
[0x01F94D, 0x01F94F],
[0x01F96C, 0x01F97F],
[0x01F998, 0x01F9BF],
[0x01F9C1, 0x01F9CF],
[0x01F9E7, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Emoji_Presentation}+$/u,
nonMatchSymbols,
"\\P{Emoji_Presentation}"
);

View File

@ -0,0 +1,106 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Extender`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000B7,
0x000640,
0x0007FA,
0x000E46,
0x000EC6,
0x00180A,
0x001843,
0x001AA7,
0x001C36,
0x001C7B,
0x003005,
0x00A015,
0x00A60C,
0x00A9CF,
0x00A9E6,
0x00AA70,
0x00AADD,
0x00FF70,
0x01135D,
0x016FE0
],
ranges: [
[0x0002D0, 0x0002D1],
[0x003031, 0x003035],
[0x00309D, 0x00309E],
[0x0030FC, 0x0030FE],
[0x00AAF3, 0x00AAF4],
[0x0115C6, 0x0115C8],
[0x016B42, 0x016B43],
[0x01E944, 0x01E946]
]
});
testPropertyEscapes(
/^\p{Extender}+$/u,
matchSymbols,
"\\p{Extender}"
);
testPropertyEscapes(
/^\p{Ext}+$/u,
matchSymbols,
"\\p{Ext}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0000B6],
[0x0000B8, 0x0002CF],
[0x0002D2, 0x00063F],
[0x000641, 0x0007F9],
[0x0007FB, 0x000E45],
[0x000E47, 0x000EC5],
[0x000EC7, 0x001809],
[0x00180B, 0x001842],
[0x001844, 0x001AA6],
[0x001AA8, 0x001C35],
[0x001C37, 0x001C7A],
[0x001C7C, 0x003004],
[0x003006, 0x003030],
[0x003036, 0x00309C],
[0x00309F, 0x0030FB],
[0x0030FF, 0x00A014],
[0x00A016, 0x00A60B],
[0x00A60D, 0x00A9CE],
[0x00A9D0, 0x00A9E5],
[0x00A9E7, 0x00AA6F],
[0x00AA71, 0x00AADC],
[0x00AADE, 0x00AAF2],
[0x00AAF5, 0x00DBFF],
[0x00E000, 0x00FF6F],
[0x00FF71, 0x01135C],
[0x01135E, 0x0115C5],
[0x0115C9, 0x016B41],
[0x016B44, 0x016FDF],
[0x016FE1, 0x01E943],
[0x01E947, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Extender}+$/u,
nonMatchSymbols,
"\\P{Extender}"
);
testPropertyEscapes(
/^\P{Ext}+$/u,
nonMatchSymbols,
"\\P{Ext}"
);

View File

@ -0,0 +1,197 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Full_Composition_Exclusion`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000374,
0x00037E,
0x000387,
0x0009DF,
0x000A33,
0x000A36,
0x000A5E,
0x000F43,
0x000F4D,
0x000F52,
0x000F57,
0x000F5C,
0x000F69,
0x000F73,
0x000F78,
0x000F81,
0x000F93,
0x000F9D,
0x000FA2,
0x000FA7,
0x000FAC,
0x000FB9,
0x001F71,
0x001F73,
0x001F75,
0x001F77,
0x001F79,
0x001F7B,
0x001F7D,
0x001FBB,
0x001FBE,
0x001FC9,
0x001FCB,
0x001FD3,
0x001FDB,
0x001FE3,
0x001FEB,
0x001FF9,
0x001FFB,
0x001FFD,
0x002126,
0x002ADC,
0x00FA10,
0x00FA12,
0x00FA20,
0x00FA22,
0x00FB1D,
0x00FB1F,
0x00FB3E
],
ranges: [
[0x000340, 0x000341],
[0x000343, 0x000344],
[0x000958, 0x00095F],
[0x0009DC, 0x0009DD],
[0x000A59, 0x000A5B],
[0x000B5C, 0x000B5D],
[0x000F75, 0x000F76],
[0x001FEE, 0x001FEF],
[0x002000, 0x002001],
[0x00212A, 0x00212B],
[0x002329, 0x00232A],
[0x00F900, 0x00FA0D],
[0x00FA15, 0x00FA1E],
[0x00FA25, 0x00FA26],
[0x00FA2A, 0x00FA6D],
[0x00FA70, 0x00FAD9],
[0x00FB2A, 0x00FB36],
[0x00FB38, 0x00FB3C],
[0x00FB40, 0x00FB41],
[0x00FB43, 0x00FB44],
[0x00FB46, 0x00FB4E],
[0x01D15E, 0x01D164],
[0x01D1BB, 0x01D1C0],
[0x02F800, 0x02FA1D]
]
});
testPropertyEscapes(
/^\p{Full_Composition_Exclusion}+$/u,
matchSymbols,
"\\p{Full_Composition_Exclusion}"
);
testPropertyEscapes(
/^\p{Comp_Ex}+$/u,
matchSymbols,
"\\p{Comp_Ex}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x000342,
0x0009DE,
0x000F74,
0x000F77,
0x001F72,
0x001F74,
0x001F76,
0x001F78,
0x001F7A,
0x001F7C,
0x001FCA,
0x001FFA,
0x001FFC,
0x00FA11,
0x00FA1F,
0x00FA21,
0x00FB1E,
0x00FB37,
0x00FB3D,
0x00FB3F,
0x00FB42,
0x00FB45
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00033F],
[0x000345, 0x000373],
[0x000375, 0x00037D],
[0x00037F, 0x000386],
[0x000388, 0x000957],
[0x000960, 0x0009DB],
[0x0009E0, 0x000A32],
[0x000A34, 0x000A35],
[0x000A37, 0x000A58],
[0x000A5C, 0x000A5D],
[0x000A5F, 0x000B5B],
[0x000B5E, 0x000F42],
[0x000F44, 0x000F4C],
[0x000F4E, 0x000F51],
[0x000F53, 0x000F56],
[0x000F58, 0x000F5B],
[0x000F5D, 0x000F68],
[0x000F6A, 0x000F72],
[0x000F79, 0x000F80],
[0x000F82, 0x000F92],
[0x000F94, 0x000F9C],
[0x000F9E, 0x000FA1],
[0x000FA3, 0x000FA6],
[0x000FA8, 0x000FAB],
[0x000FAD, 0x000FB8],
[0x000FBA, 0x001F70],
[0x001F7E, 0x001FBA],
[0x001FBC, 0x001FBD],
[0x001FBF, 0x001FC8],
[0x001FCC, 0x001FD2],
[0x001FD4, 0x001FDA],
[0x001FDC, 0x001FE2],
[0x001FE4, 0x001FEA],
[0x001FEC, 0x001FED],
[0x001FF0, 0x001FF8],
[0x001FFE, 0x001FFF],
[0x002002, 0x002125],
[0x002127, 0x002129],
[0x00212C, 0x002328],
[0x00232B, 0x002ADB],
[0x002ADD, 0x00DBFF],
[0x00E000, 0x00F8FF],
[0x00FA0E, 0x00FA0F],
[0x00FA13, 0x00FA14],
[0x00FA23, 0x00FA24],
[0x00FA27, 0x00FA29],
[0x00FA6E, 0x00FA6F],
[0x00FADA, 0x00FB1C],
[0x00FB20, 0x00FB29],
[0x00FB4F, 0x01D15D],
[0x01D165, 0x01D1BA],
[0x01D1C1, 0x02F7FF],
[0x02FA1E, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Full_Composition_Exclusion}+$/u,
nonMatchSymbols,
"\\P{Full_Composition_Exclusion}"
);
testPropertyEscapes(
/^\P{Comp_Ex}+$/u,
nonMatchSymbols,
"\\P{Comp_Ex}"
);

View File

@ -0,0 +1,343 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Cased_Letter`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000B5,
0x00037F,
0x000386,
0x00038C,
0x0010C7,
0x0010CD,
0x001F59,
0x001F5B,
0x001F5D,
0x001FBE,
0x002102,
0x002107,
0x002115,
0x002124,
0x002126,
0x002128,
0x002139,
0x00214E,
0x002D27,
0x002D2D,
0x00A7FA,
0x01D4A2,
0x01D4BB,
0x01D546
],
ranges: [
[0x000041, 0x00005A],
[0x000061, 0x00007A],
[0x0000C0, 0x0000D6],
[0x0000D8, 0x0000F6],
[0x0000F8, 0x0001BA],
[0x0001BC, 0x0001BF],
[0x0001C4, 0x000293],
[0x000295, 0x0002AF],
[0x000370, 0x000373],
[0x000376, 0x000377],
[0x00037B, 0x00037D],
[0x000388, 0x00038A],
[0x00038E, 0x0003A1],
[0x0003A3, 0x0003F5],
[0x0003F7, 0x000481],
[0x00048A, 0x00052F],
[0x000531, 0x000556],
[0x000561, 0x000587],
[0x0010A0, 0x0010C5],
[0x0013A0, 0x0013F5],
[0x0013F8, 0x0013FD],
[0x001C80, 0x001C88],
[0x001D00, 0x001D2B],
[0x001D6B, 0x001D77],
[0x001D79, 0x001D9A],
[0x001E00, 0x001F15],
[0x001F18, 0x001F1D],
[0x001F20, 0x001F45],
[0x001F48, 0x001F4D],
[0x001F50, 0x001F57],
[0x001F5F, 0x001F7D],
[0x001F80, 0x001FB4],
[0x001FB6, 0x001FBC],
[0x001FC2, 0x001FC4],
[0x001FC6, 0x001FCC],
[0x001FD0, 0x001FD3],
[0x001FD6, 0x001FDB],
[0x001FE0, 0x001FEC],
[0x001FF2, 0x001FF4],
[0x001FF6, 0x001FFC],
[0x00210A, 0x002113],
[0x002119, 0x00211D],
[0x00212A, 0x00212D],
[0x00212F, 0x002134],
[0x00213C, 0x00213F],
[0x002145, 0x002149],
[0x002183, 0x002184],
[0x002C00, 0x002C2E],
[0x002C30, 0x002C5E],
[0x002C60, 0x002C7B],
[0x002C7E, 0x002CE4],
[0x002CEB, 0x002CEE],
[0x002CF2, 0x002CF3],
[0x002D00, 0x002D25],
[0x00A640, 0x00A66D],
[0x00A680, 0x00A69B],
[0x00A722, 0x00A76F],
[0x00A771, 0x00A787],
[0x00A78B, 0x00A78E],
[0x00A790, 0x00A7AE],
[0x00A7B0, 0x00A7B7],
[0x00AB30, 0x00AB5A],
[0x00AB60, 0x00AB65],
[0x00AB70, 0x00ABBF],
[0x00FB00, 0x00FB06],
[0x00FB13, 0x00FB17],
[0x00FF21, 0x00FF3A],
[0x00FF41, 0x00FF5A],
[0x010400, 0x01044F],
[0x0104B0, 0x0104D3],
[0x0104D8, 0x0104FB],
[0x010C80, 0x010CB2],
[0x010CC0, 0x010CF2],
[0x0118A0, 0x0118DF],
[0x01D400, 0x01D454],
[0x01D456, 0x01D49C],
[0x01D49E, 0x01D49F],
[0x01D4A5, 0x01D4A6],
[0x01D4A9, 0x01D4AC],
[0x01D4AE, 0x01D4B9],
[0x01D4BD, 0x01D4C3],
[0x01D4C5, 0x01D505],
[0x01D507, 0x01D50A],
[0x01D50D, 0x01D514],
[0x01D516, 0x01D51C],
[0x01D51E, 0x01D539],
[0x01D53B, 0x01D53E],
[0x01D540, 0x01D544],
[0x01D54A, 0x01D550],
[0x01D552, 0x01D6A5],
[0x01D6A8, 0x01D6C0],
[0x01D6C2, 0x01D6DA],
[0x01D6DC, 0x01D6FA],
[0x01D6FC, 0x01D714],
[0x01D716, 0x01D734],
[0x01D736, 0x01D74E],
[0x01D750, 0x01D76E],
[0x01D770, 0x01D788],
[0x01D78A, 0x01D7A8],
[0x01D7AA, 0x01D7C2],
[0x01D7C4, 0x01D7CB],
[0x01E900, 0x01E943]
]
});
testPropertyEscapes(
/^\p{General_Category=Cased_Letter}+$/u,
matchSymbols,
"\\p{General_Category=Cased_Letter}"
);
testPropertyEscapes(
/^\p{General_Category=LC}+$/u,
matchSymbols,
"\\p{General_Category=LC}"
);
testPropertyEscapes(
/^\p{gc=Cased_Letter}+$/u,
matchSymbols,
"\\p{gc=Cased_Letter}"
);
testPropertyEscapes(
/^\p{gc=LC}+$/u,
matchSymbols,
"\\p{gc=LC}"
);
testPropertyEscapes(
/^\p{Cased_Letter}+$/u,
matchSymbols,
"\\p{Cased_Letter}"
);
testPropertyEscapes(
/^\p{LC}+$/u,
matchSymbols,
"\\p{LC}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0000D7,
0x0000F7,
0x0001BB,
0x000294,
0x00037E,
0x000387,
0x00038B,
0x00038D,
0x0003A2,
0x0003F6,
0x000530,
0x0010C6,
0x001D78,
0x001F58,
0x001F5A,
0x001F5C,
0x001F5E,
0x001FB5,
0x001FBD,
0x001FC5,
0x001FF5,
0x002114,
0x002125,
0x002127,
0x002129,
0x00212E,
0x002C2F,
0x002C5F,
0x002D26,
0x00A770,
0x00A78F,
0x00A7AF,
0x01D455,
0x01D49D,
0x01D4AD,
0x01D4BA,
0x01D4BC,
0x01D4C4,
0x01D506,
0x01D515,
0x01D51D,
0x01D53A,
0x01D53F,
0x01D545,
0x01D551,
0x01D6C1,
0x01D6DB,
0x01D6FB,
0x01D715,
0x01D735,
0x01D74F,
0x01D76F,
0x01D789,
0x01D7A9,
0x01D7C3
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000040],
[0x00005B, 0x000060],
[0x00007B, 0x0000B4],
[0x0000B6, 0x0000BF],
[0x0001C0, 0x0001C3],
[0x0002B0, 0x00036F],
[0x000374, 0x000375],
[0x000378, 0x00037A],
[0x000380, 0x000385],
[0x000482, 0x000489],
[0x000557, 0x000560],
[0x000588, 0x00109F],
[0x0010C8, 0x0010CC],
[0x0010CE, 0x00139F],
[0x0013F6, 0x0013F7],
[0x0013FE, 0x001C7F],
[0x001C89, 0x001CFF],
[0x001D2C, 0x001D6A],
[0x001D9B, 0x001DFF],
[0x001F16, 0x001F17],
[0x001F1E, 0x001F1F],
[0x001F46, 0x001F47],
[0x001F4E, 0x001F4F],
[0x001F7E, 0x001F7F],
[0x001FBF, 0x001FC1],
[0x001FCD, 0x001FCF],
[0x001FD4, 0x001FD5],
[0x001FDC, 0x001FDF],
[0x001FED, 0x001FF1],
[0x001FFD, 0x002101],
[0x002103, 0x002106],
[0x002108, 0x002109],
[0x002116, 0x002118],
[0x00211E, 0x002123],
[0x002135, 0x002138],
[0x00213A, 0x00213B],
[0x002140, 0x002144],
[0x00214A, 0x00214D],
[0x00214F, 0x002182],
[0x002185, 0x002BFF],
[0x002C7C, 0x002C7D],
[0x002CE5, 0x002CEA],
[0x002CEF, 0x002CF1],
[0x002CF4, 0x002CFF],
[0x002D28, 0x002D2C],
[0x002D2E, 0x00A63F],
[0x00A66E, 0x00A67F],
[0x00A69C, 0x00A721],
[0x00A788, 0x00A78A],
[0x00A7B8, 0x00A7F9],
[0x00A7FB, 0x00AB2F],
[0x00AB5B, 0x00AB5F],
[0x00AB66, 0x00AB6F],
[0x00ABC0, 0x00DBFF],
[0x00E000, 0x00FAFF],
[0x00FB07, 0x00FB12],
[0x00FB18, 0x00FF20],
[0x00FF3B, 0x00FF40],
[0x00FF5B, 0x0103FF],
[0x010450, 0x0104AF],
[0x0104D4, 0x0104D7],
[0x0104FC, 0x010C7F],
[0x010CB3, 0x010CBF],
[0x010CF3, 0x01189F],
[0x0118E0, 0x01D3FF],
[0x01D4A0, 0x01D4A1],
[0x01D4A3, 0x01D4A4],
[0x01D4A7, 0x01D4A8],
[0x01D50B, 0x01D50C],
[0x01D547, 0x01D549],
[0x01D6A6, 0x01D6A7],
[0x01D7CC, 0x01E8FF],
[0x01E944, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Cased_Letter}+$/u,
nonMatchSymbols,
"\\P{General_Category=Cased_Letter}"
);
testPropertyEscapes(
/^\P{General_Category=LC}+$/u,
nonMatchSymbols,
"\\P{General_Category=LC}"
);
testPropertyEscapes(
/^\P{gc=Cased_Letter}+$/u,
nonMatchSymbols,
"\\P{gc=Cased_Letter}"
);
testPropertyEscapes(
/^\P{gc=LC}+$/u,
nonMatchSymbols,
"\\P{gc=LC}"
);
testPropertyEscapes(
/^\P{Cased_Letter}+$/u,
nonMatchSymbols,
"\\P{Cased_Letter}"
);
testPropertyEscapes(
/^\P{LC}+$/u,
nonMatchSymbols,
"\\P{LC}"
);

View File

@ -0,0 +1,235 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Close_Punctuation`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000029,
0x00005D,
0x00007D,
0x000F3B,
0x000F3D,
0x00169C,
0x002046,
0x00207E,
0x00208E,
0x002309,
0x00230B,
0x00232A,
0x002769,
0x00276B,
0x00276D,
0x00276F,
0x002771,
0x002773,
0x002775,
0x0027C6,
0x0027E7,
0x0027E9,
0x0027EB,
0x0027ED,
0x0027EF,
0x002984,
0x002986,
0x002988,
0x00298A,
0x00298C,
0x00298E,
0x002990,
0x002992,
0x002994,
0x002996,
0x002998,
0x0029D9,
0x0029DB,
0x0029FD,
0x002E23,
0x002E25,
0x002E27,
0x002E29,
0x003009,
0x00300B,
0x00300D,
0x00300F,
0x003011,
0x003015,
0x003017,
0x003019,
0x00301B,
0x00FD3E,
0x00FE18,
0x00FE36,
0x00FE38,
0x00FE3A,
0x00FE3C,
0x00FE3E,
0x00FE40,
0x00FE42,
0x00FE44,
0x00FE48,
0x00FE5A,
0x00FE5C,
0x00FE5E,
0x00FF09,
0x00FF3D,
0x00FF5D,
0x00FF60,
0x00FF63
],
ranges: [
[0x00301E, 0x00301F]
]
});
testPropertyEscapes(
/^\p{General_Category=Close_Punctuation}+$/u,
matchSymbols,
"\\p{General_Category=Close_Punctuation}"
);
testPropertyEscapes(
/^\p{General_Category=Pe}+$/u,
matchSymbols,
"\\p{General_Category=Pe}"
);
testPropertyEscapes(
/^\p{gc=Close_Punctuation}+$/u,
matchSymbols,
"\\p{gc=Close_Punctuation}"
);
testPropertyEscapes(
/^\p{gc=Pe}+$/u,
matchSymbols,
"\\p{gc=Pe}"
);
testPropertyEscapes(
/^\p{Close_Punctuation}+$/u,
matchSymbols,
"\\p{Close_Punctuation}"
);
testPropertyEscapes(
/^\p{Pe}+$/u,
matchSymbols,
"\\p{Pe}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x000F3C,
0x00230A,
0x00276A,
0x00276C,
0x00276E,
0x002770,
0x002772,
0x002774,
0x0027E8,
0x0027EA,
0x0027EC,
0x0027EE,
0x002985,
0x002987,
0x002989,
0x00298B,
0x00298D,
0x00298F,
0x002991,
0x002993,
0x002995,
0x002997,
0x0029DA,
0x002E24,
0x002E26,
0x002E28,
0x00300A,
0x00300C,
0x00300E,
0x003010,
0x003016,
0x003018,
0x00301A,
0x00FE37,
0x00FE39,
0x00FE3B,
0x00FE3D,
0x00FE3F,
0x00FE41,
0x00FE43,
0x00FE5B,
0x00FE5D
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000028],
[0x00002A, 0x00005C],
[0x00005E, 0x00007C],
[0x00007E, 0x000F3A],
[0x000F3E, 0x00169B],
[0x00169D, 0x002045],
[0x002047, 0x00207D],
[0x00207F, 0x00208D],
[0x00208F, 0x002308],
[0x00230C, 0x002329],
[0x00232B, 0x002768],
[0x002776, 0x0027C5],
[0x0027C7, 0x0027E6],
[0x0027F0, 0x002983],
[0x002999, 0x0029D8],
[0x0029DC, 0x0029FC],
[0x0029FE, 0x002E22],
[0x002E2A, 0x003008],
[0x003012, 0x003014],
[0x00301C, 0x00301D],
[0x003020, 0x00DBFF],
[0x00E000, 0x00FD3D],
[0x00FD3F, 0x00FE17],
[0x00FE19, 0x00FE35],
[0x00FE45, 0x00FE47],
[0x00FE49, 0x00FE59],
[0x00FE5F, 0x00FF08],
[0x00FF0A, 0x00FF3C],
[0x00FF3E, 0x00FF5C],
[0x00FF5E, 0x00FF5F],
[0x00FF61, 0x00FF62],
[0x00FF64, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Close_Punctuation}+$/u,
nonMatchSymbols,
"\\P{General_Category=Close_Punctuation}"
);
testPropertyEscapes(
/^\P{General_Category=Pe}+$/u,
nonMatchSymbols,
"\\P{General_Category=Pe}"
);
testPropertyEscapes(
/^\P{gc=Close_Punctuation}+$/u,
nonMatchSymbols,
"\\P{gc=Close_Punctuation}"
);
testPropertyEscapes(
/^\P{gc=Pe}+$/u,
nonMatchSymbols,
"\\P{gc=Pe}"
);
testPropertyEscapes(
/^\P{Close_Punctuation}+$/u,
nonMatchSymbols,
"\\P{Close_Punctuation}"
);
testPropertyEscapes(
/^\P{Pe}+$/u,
nonMatchSymbols,
"\\P{Pe}"
);

View File

@ -0,0 +1,102 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Connector_Punctuation`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00005F,
0x002054,
0x00FF3F
],
ranges: [
[0x00203F, 0x002040],
[0x00FE33, 0x00FE34],
[0x00FE4D, 0x00FE4F]
]
});
testPropertyEscapes(
/^\p{General_Category=Connector_Punctuation}+$/u,
matchSymbols,
"\\p{General_Category=Connector_Punctuation}"
);
testPropertyEscapes(
/^\p{General_Category=Pc}+$/u,
matchSymbols,
"\\p{General_Category=Pc}"
);
testPropertyEscapes(
/^\p{gc=Connector_Punctuation}+$/u,
matchSymbols,
"\\p{gc=Connector_Punctuation}"
);
testPropertyEscapes(
/^\p{gc=Pc}+$/u,
matchSymbols,
"\\p{gc=Pc}"
);
testPropertyEscapes(
/^\p{Connector_Punctuation}+$/u,
matchSymbols,
"\\p{Connector_Punctuation}"
);
testPropertyEscapes(
/^\p{Pc}+$/u,
matchSymbols,
"\\p{Pc}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00005E],
[0x000060, 0x00203E],
[0x002041, 0x002053],
[0x002055, 0x00DBFF],
[0x00E000, 0x00FE32],
[0x00FE35, 0x00FE4C],
[0x00FE50, 0x00FF3E],
[0x00FF40, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Connector_Punctuation}+$/u,
nonMatchSymbols,
"\\P{General_Category=Connector_Punctuation}"
);
testPropertyEscapes(
/^\P{General_Category=Pc}+$/u,
nonMatchSymbols,
"\\P{General_Category=Pc}"
);
testPropertyEscapes(
/^\P{gc=Connector_Punctuation}+$/u,
nonMatchSymbols,
"\\P{gc=Connector_Punctuation}"
);
testPropertyEscapes(
/^\P{gc=Pc}+$/u,
nonMatchSymbols,
"\\P{gc=Pc}"
);
testPropertyEscapes(
/^\P{Connector_Punctuation}+$/u,
nonMatchSymbols,
"\\P{Connector_Punctuation}"
);
testPropertyEscapes(
/^\P{Pc}+$/u,
nonMatchSymbols,
"\\P{Pc}"
);

View File

@ -0,0 +1,122 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Control`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x000000, 0x00001F],
[0x00007F, 0x00009F]
]
});
testPropertyEscapes(
/^\p{General_Category=Control}+$/u,
matchSymbols,
"\\p{General_Category=Control}"
);
testPropertyEscapes(
/^\p{General_Category=Cc}+$/u,
matchSymbols,
"\\p{General_Category=Cc}"
);
testPropertyEscapes(
/^\p{General_Category=cntrl}+$/u,
matchSymbols,
"\\p{General_Category=cntrl}"
);
testPropertyEscapes(
/^\p{gc=Control}+$/u,
matchSymbols,
"\\p{gc=Control}"
);
testPropertyEscapes(
/^\p{gc=Cc}+$/u,
matchSymbols,
"\\p{gc=Cc}"
);
testPropertyEscapes(
/^\p{gc=cntrl}+$/u,
matchSymbols,
"\\p{gc=cntrl}"
);
testPropertyEscapes(
/^\p{Control}+$/u,
matchSymbols,
"\\p{Control}"
);
testPropertyEscapes(
/^\p{Cc}+$/u,
matchSymbols,
"\\p{Cc}"
);
testPropertyEscapes(
/^\p{cntrl}+$/u,
matchSymbols,
"\\p{cntrl}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000020, 0x00007E],
[0x0000A0, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Control}+$/u,
nonMatchSymbols,
"\\P{General_Category=Control}"
);
testPropertyEscapes(
/^\P{General_Category=Cc}+$/u,
nonMatchSymbols,
"\\P{General_Category=Cc}"
);
testPropertyEscapes(
/^\P{General_Category=cntrl}+$/u,
nonMatchSymbols,
"\\P{General_Category=cntrl}"
);
testPropertyEscapes(
/^\P{gc=Control}+$/u,
nonMatchSymbols,
"\\P{gc=Control}"
);
testPropertyEscapes(
/^\P{gc=Cc}+$/u,
nonMatchSymbols,
"\\P{gc=Cc}"
);
testPropertyEscapes(
/^\P{gc=cntrl}+$/u,
nonMatchSymbols,
"\\P{gc=cntrl}"
);
testPropertyEscapes(
/^\P{Control}+$/u,
nonMatchSymbols,
"\\P{Control}"
);
testPropertyEscapes(
/^\P{Cc}+$/u,
nonMatchSymbols,
"\\P{Cc}"
);
testPropertyEscapes(
/^\P{cntrl}+$/u,
nonMatchSymbols,
"\\P{cntrl}"
);

View File

@ -0,0 +1,124 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Currency_Symbol`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000024,
0x00058F,
0x00060B,
0x0009FB,
0x000AF1,
0x000BF9,
0x000E3F,
0x0017DB,
0x00A838,
0x00FDFC,
0x00FE69,
0x00FF04
],
ranges: [
[0x0000A2, 0x0000A5],
[0x0009F2, 0x0009F3],
[0x0020A0, 0x0020BE],
[0x00FFE0, 0x00FFE1],
[0x00FFE5, 0x00FFE6]
]
});
testPropertyEscapes(
/^\p{General_Category=Currency_Symbol}+$/u,
matchSymbols,
"\\p{General_Category=Currency_Symbol}"
);
testPropertyEscapes(
/^\p{General_Category=Sc}+$/u,
matchSymbols,
"\\p{General_Category=Sc}"
);
testPropertyEscapes(
/^\p{gc=Currency_Symbol}+$/u,
matchSymbols,
"\\p{gc=Currency_Symbol}"
);
testPropertyEscapes(
/^\p{gc=Sc}+$/u,
matchSymbols,
"\\p{gc=Sc}"
);
testPropertyEscapes(
/^\p{Currency_Symbol}+$/u,
matchSymbols,
"\\p{Currency_Symbol}"
);
testPropertyEscapes(
/^\p{Sc}+$/u,
matchSymbols,
"\\p{Sc}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000023],
[0x000025, 0x0000A1],
[0x0000A6, 0x00058E],
[0x000590, 0x00060A],
[0x00060C, 0x0009F1],
[0x0009F4, 0x0009FA],
[0x0009FC, 0x000AF0],
[0x000AF2, 0x000BF8],
[0x000BFA, 0x000E3E],
[0x000E40, 0x0017DA],
[0x0017DC, 0x00209F],
[0x0020BF, 0x00A837],
[0x00A839, 0x00DBFF],
[0x00E000, 0x00FDFB],
[0x00FDFD, 0x00FE68],
[0x00FE6A, 0x00FF03],
[0x00FF05, 0x00FFDF],
[0x00FFE2, 0x00FFE4],
[0x00FFE7, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Currency_Symbol}+$/u,
nonMatchSymbols,
"\\P{General_Category=Currency_Symbol}"
);
testPropertyEscapes(
/^\P{General_Category=Sc}+$/u,
nonMatchSymbols,
"\\P{General_Category=Sc}"
);
testPropertyEscapes(
/^\P{gc=Currency_Symbol}+$/u,
nonMatchSymbols,
"\\P{gc=Currency_Symbol}"
);
testPropertyEscapes(
/^\P{gc=Sc}+$/u,
nonMatchSymbols,
"\\P{gc=Sc}"
);
testPropertyEscapes(
/^\P{Currency_Symbol}+$/u,
nonMatchSymbols,
"\\P{Currency_Symbol}"
);
testPropertyEscapes(
/^\P{Sc}+$/u,
nonMatchSymbols,
"\\P{Sc}"
);

View File

@ -0,0 +1,124 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Dash_Punctuation`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00002D,
0x00058A,
0x0005BE,
0x001400,
0x001806,
0x002E17,
0x002E1A,
0x002E40,
0x00301C,
0x003030,
0x0030A0,
0x00FE58,
0x00FE63,
0x00FF0D
],
ranges: [
[0x002010, 0x002015],
[0x002E3A, 0x002E3B],
[0x00FE31, 0x00FE32]
]
});
testPropertyEscapes(
/^\p{General_Category=Dash_Punctuation}+$/u,
matchSymbols,
"\\p{General_Category=Dash_Punctuation}"
);
testPropertyEscapes(
/^\p{General_Category=Pd}+$/u,
matchSymbols,
"\\p{General_Category=Pd}"
);
testPropertyEscapes(
/^\p{gc=Dash_Punctuation}+$/u,
matchSymbols,
"\\p{gc=Dash_Punctuation}"
);
testPropertyEscapes(
/^\p{gc=Pd}+$/u,
matchSymbols,
"\\p{gc=Pd}"
);
testPropertyEscapes(
/^\p{Dash_Punctuation}+$/u,
matchSymbols,
"\\p{Dash_Punctuation}"
);
testPropertyEscapes(
/^\p{Pd}+$/u,
matchSymbols,
"\\p{Pd}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00002C],
[0x00002E, 0x000589],
[0x00058B, 0x0005BD],
[0x0005BF, 0x0013FF],
[0x001401, 0x001805],
[0x001807, 0x00200F],
[0x002016, 0x002E16],
[0x002E18, 0x002E19],
[0x002E1B, 0x002E39],
[0x002E3C, 0x002E3F],
[0x002E41, 0x00301B],
[0x00301D, 0x00302F],
[0x003031, 0x00309F],
[0x0030A1, 0x00DBFF],
[0x00E000, 0x00FE30],
[0x00FE33, 0x00FE57],
[0x00FE59, 0x00FE62],
[0x00FE64, 0x00FF0C],
[0x00FF0E, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Dash_Punctuation}+$/u,
nonMatchSymbols,
"\\P{General_Category=Dash_Punctuation}"
);
testPropertyEscapes(
/^\P{General_Category=Pd}+$/u,
nonMatchSymbols,
"\\P{General_Category=Pd}"
);
testPropertyEscapes(
/^\P{gc=Dash_Punctuation}+$/u,
nonMatchSymbols,
"\\P{gc=Dash_Punctuation}"
);
testPropertyEscapes(
/^\P{gc=Pd}+$/u,
nonMatchSymbols,
"\\P{gc=Pd}"
);
testPropertyEscapes(
/^\P{Dash_Punctuation}+$/u,
nonMatchSymbols,
"\\P{Dash_Punctuation}"
);
testPropertyEscapes(
/^\P{Pd}+$/u,
nonMatchSymbols,
"\\P{Pd}"
);

View File

@ -0,0 +1,227 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Decimal_Number`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x000030, 0x000039],
[0x000660, 0x000669],
[0x0006F0, 0x0006F9],
[0x0007C0, 0x0007C9],
[0x000966, 0x00096F],
[0x0009E6, 0x0009EF],
[0x000A66, 0x000A6F],
[0x000AE6, 0x000AEF],
[0x000B66, 0x000B6F],
[0x000BE6, 0x000BEF],
[0x000C66, 0x000C6F],
[0x000CE6, 0x000CEF],
[0x000D66, 0x000D6F],
[0x000DE6, 0x000DEF],
[0x000E50, 0x000E59],
[0x000ED0, 0x000ED9],
[0x000F20, 0x000F29],
[0x001040, 0x001049],
[0x001090, 0x001099],
[0x0017E0, 0x0017E9],
[0x001810, 0x001819],
[0x001946, 0x00194F],
[0x0019D0, 0x0019D9],
[0x001A80, 0x001A89],
[0x001A90, 0x001A99],
[0x001B50, 0x001B59],
[0x001BB0, 0x001BB9],
[0x001C40, 0x001C49],
[0x001C50, 0x001C59],
[0x00A620, 0x00A629],
[0x00A8D0, 0x00A8D9],
[0x00A900, 0x00A909],
[0x00A9D0, 0x00A9D9],
[0x00A9F0, 0x00A9F9],
[0x00AA50, 0x00AA59],
[0x00ABF0, 0x00ABF9],
[0x00FF10, 0x00FF19],
[0x0104A0, 0x0104A9],
[0x011066, 0x01106F],
[0x0110F0, 0x0110F9],
[0x011136, 0x01113F],
[0x0111D0, 0x0111D9],
[0x0112F0, 0x0112F9],
[0x011450, 0x011459],
[0x0114D0, 0x0114D9],
[0x011650, 0x011659],
[0x0116C0, 0x0116C9],
[0x011730, 0x011739],
[0x0118E0, 0x0118E9],
[0x011C50, 0x011C59],
[0x016A60, 0x016A69],
[0x016B50, 0x016B59],
[0x01D7CE, 0x01D7FF],
[0x01E950, 0x01E959]
]
});
testPropertyEscapes(
/^\p{General_Category=Decimal_Number}+$/u,
matchSymbols,
"\\p{General_Category=Decimal_Number}"
);
testPropertyEscapes(
/^\p{General_Category=Nd}+$/u,
matchSymbols,
"\\p{General_Category=Nd}"
);
testPropertyEscapes(
/^\p{General_Category=digit}+$/u,
matchSymbols,
"\\p{General_Category=digit}"
);
testPropertyEscapes(
/^\p{gc=Decimal_Number}+$/u,
matchSymbols,
"\\p{gc=Decimal_Number}"
);
testPropertyEscapes(
/^\p{gc=Nd}+$/u,
matchSymbols,
"\\p{gc=Nd}"
);
testPropertyEscapes(
/^\p{gc=digit}+$/u,
matchSymbols,
"\\p{gc=digit}"
);
testPropertyEscapes(
/^\p{Decimal_Number}+$/u,
matchSymbols,
"\\p{Decimal_Number}"
);
testPropertyEscapes(
/^\p{Nd}+$/u,
matchSymbols,
"\\p{Nd}"
);
testPropertyEscapes(
/^\p{digit}+$/u,
matchSymbols,
"\\p{digit}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00002F],
[0x00003A, 0x00065F],
[0x00066A, 0x0006EF],
[0x0006FA, 0x0007BF],
[0x0007CA, 0x000965],
[0x000970, 0x0009E5],
[0x0009F0, 0x000A65],
[0x000A70, 0x000AE5],
[0x000AF0, 0x000B65],
[0x000B70, 0x000BE5],
[0x000BF0, 0x000C65],
[0x000C70, 0x000CE5],
[0x000CF0, 0x000D65],
[0x000D70, 0x000DE5],
[0x000DF0, 0x000E4F],
[0x000E5A, 0x000ECF],
[0x000EDA, 0x000F1F],
[0x000F2A, 0x00103F],
[0x00104A, 0x00108F],
[0x00109A, 0x0017DF],
[0x0017EA, 0x00180F],
[0x00181A, 0x001945],
[0x001950, 0x0019CF],
[0x0019DA, 0x001A7F],
[0x001A8A, 0x001A8F],
[0x001A9A, 0x001B4F],
[0x001B5A, 0x001BAF],
[0x001BBA, 0x001C3F],
[0x001C4A, 0x001C4F],
[0x001C5A, 0x00A61F],
[0x00A62A, 0x00A8CF],
[0x00A8DA, 0x00A8FF],
[0x00A90A, 0x00A9CF],
[0x00A9DA, 0x00A9EF],
[0x00A9FA, 0x00AA4F],
[0x00AA5A, 0x00ABEF],
[0x00ABFA, 0x00DBFF],
[0x00E000, 0x00FF0F],
[0x00FF1A, 0x01049F],
[0x0104AA, 0x011065],
[0x011070, 0x0110EF],
[0x0110FA, 0x011135],
[0x011140, 0x0111CF],
[0x0111DA, 0x0112EF],
[0x0112FA, 0x01144F],
[0x01145A, 0x0114CF],
[0x0114DA, 0x01164F],
[0x01165A, 0x0116BF],
[0x0116CA, 0x01172F],
[0x01173A, 0x0118DF],
[0x0118EA, 0x011C4F],
[0x011C5A, 0x016A5F],
[0x016A6A, 0x016B4F],
[0x016B5A, 0x01D7CD],
[0x01D800, 0x01E94F],
[0x01E95A, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Decimal_Number}+$/u,
nonMatchSymbols,
"\\P{General_Category=Decimal_Number}"
);
testPropertyEscapes(
/^\P{General_Category=Nd}+$/u,
nonMatchSymbols,
"\\P{General_Category=Nd}"
);
testPropertyEscapes(
/^\P{General_Category=digit}+$/u,
nonMatchSymbols,
"\\P{General_Category=digit}"
);
testPropertyEscapes(
/^\P{gc=Decimal_Number}+$/u,
nonMatchSymbols,
"\\P{gc=Decimal_Number}"
);
testPropertyEscapes(
/^\P{gc=Nd}+$/u,
nonMatchSymbols,
"\\P{gc=Nd}"
);
testPropertyEscapes(
/^\P{gc=digit}+$/u,
nonMatchSymbols,
"\\P{gc=digit}"
);
testPropertyEscapes(
/^\P{Decimal_Number}+$/u,
nonMatchSymbols,
"\\P{Decimal_Number}"
);
testPropertyEscapes(
/^\P{Nd}+$/u,
nonMatchSymbols,
"\\P{Nd}"
);
testPropertyEscapes(
/^\P{digit}+$/u,
nonMatchSymbols,
"\\P{digit}"
);

View File

@ -0,0 +1,101 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Enclosing_Mark`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x001ABE
],
ranges: [
[0x000488, 0x000489],
[0x0020DD, 0x0020E0],
[0x0020E2, 0x0020E4],
[0x00A670, 0x00A672]
]
});
testPropertyEscapes(
/^\p{General_Category=Enclosing_Mark}+$/u,
matchSymbols,
"\\p{General_Category=Enclosing_Mark}"
);
testPropertyEscapes(
/^\p{General_Category=Me}+$/u,
matchSymbols,
"\\p{General_Category=Me}"
);
testPropertyEscapes(
/^\p{gc=Enclosing_Mark}+$/u,
matchSymbols,
"\\p{gc=Enclosing_Mark}"
);
testPropertyEscapes(
/^\p{gc=Me}+$/u,
matchSymbols,
"\\p{gc=Me}"
);
testPropertyEscapes(
/^\p{Enclosing_Mark}+$/u,
matchSymbols,
"\\p{Enclosing_Mark}"
);
testPropertyEscapes(
/^\p{Me}+$/u,
matchSymbols,
"\\p{Me}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0020E1
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000487],
[0x00048A, 0x001ABD],
[0x001ABF, 0x0020DC],
[0x0020E5, 0x00A66F],
[0x00A673, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Enclosing_Mark}+$/u,
nonMatchSymbols,
"\\P{General_Category=Enclosing_Mark}"
);
testPropertyEscapes(
/^\P{General_Category=Me}+$/u,
nonMatchSymbols,
"\\P{General_Category=Me}"
);
testPropertyEscapes(
/^\P{gc=Enclosing_Mark}+$/u,
nonMatchSymbols,
"\\P{gc=Enclosing_Mark}"
);
testPropertyEscapes(
/^\P{gc=Me}+$/u,
nonMatchSymbols,
"\\P{gc=Me}"
);
testPropertyEscapes(
/^\P{Enclosing_Mark}+$/u,
nonMatchSymbols,
"\\P{Enclosing_Mark}"
);
testPropertyEscapes(
/^\P{Me}+$/u,
nonMatchSymbols,
"\\P{Me}"
);

View File

@ -0,0 +1,110 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Final_Punctuation`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000BB,
0x002019,
0x00201D,
0x00203A,
0x002E03,
0x002E05,
0x002E0A,
0x002E0D,
0x002E1D,
0x002E21
],
ranges: []
});
testPropertyEscapes(
/^\p{General_Category=Final_Punctuation}+$/u,
matchSymbols,
"\\p{General_Category=Final_Punctuation}"
);
testPropertyEscapes(
/^\p{General_Category=Pf}+$/u,
matchSymbols,
"\\p{General_Category=Pf}"
);
testPropertyEscapes(
/^\p{gc=Final_Punctuation}+$/u,
matchSymbols,
"\\p{gc=Final_Punctuation}"
);
testPropertyEscapes(
/^\p{gc=Pf}+$/u,
matchSymbols,
"\\p{gc=Pf}"
);
testPropertyEscapes(
/^\p{Final_Punctuation}+$/u,
matchSymbols,
"\\p{Final_Punctuation}"
);
testPropertyEscapes(
/^\p{Pf}+$/u,
matchSymbols,
"\\p{Pf}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x002E04
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0000BA],
[0x0000BC, 0x002018],
[0x00201A, 0x00201C],
[0x00201E, 0x002039],
[0x00203B, 0x002E02],
[0x002E06, 0x002E09],
[0x002E0B, 0x002E0C],
[0x002E0E, 0x002E1C],
[0x002E1E, 0x002E20],
[0x002E22, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Final_Punctuation}+$/u,
nonMatchSymbols,
"\\P{General_Category=Final_Punctuation}"
);
testPropertyEscapes(
/^\P{General_Category=Pf}+$/u,
nonMatchSymbols,
"\\P{General_Category=Pf}"
);
testPropertyEscapes(
/^\P{gc=Final_Punctuation}+$/u,
nonMatchSymbols,
"\\P{gc=Final_Punctuation}"
);
testPropertyEscapes(
/^\P{gc=Pf}+$/u,
nonMatchSymbols,
"\\P{gc=Pf}"
);
testPropertyEscapes(
/^\P{Final_Punctuation}+$/u,
nonMatchSymbols,
"\\P{Final_Punctuation}"
);
testPropertyEscapes(
/^\P{Pf}+$/u,
nonMatchSymbols,
"\\P{Pf}"
);

View File

@ -0,0 +1,127 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Format`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000AD,
0x00061C,
0x0006DD,
0x00070F,
0x0008E2,
0x00180E,
0x00FEFF,
0x0110BD,
0x0E0001
],
ranges: [
[0x000600, 0x000605],
[0x00200B, 0x00200F],
[0x00202A, 0x00202E],
[0x002060, 0x002064],
[0x002066, 0x00206F],
[0x00FFF9, 0x00FFFB],
[0x01BCA0, 0x01BCA3],
[0x01D173, 0x01D17A],
[0x0E0020, 0x0E007F]
]
});
testPropertyEscapes(
/^\p{General_Category=Format}+$/u,
matchSymbols,
"\\p{General_Category=Format}"
);
testPropertyEscapes(
/^\p{General_Category=Cf}+$/u,
matchSymbols,
"\\p{General_Category=Cf}"
);
testPropertyEscapes(
/^\p{gc=Format}+$/u,
matchSymbols,
"\\p{gc=Format}"
);
testPropertyEscapes(
/^\p{gc=Cf}+$/u,
matchSymbols,
"\\p{gc=Cf}"
);
testPropertyEscapes(
/^\p{Format}+$/u,
matchSymbols,
"\\p{Format}"
);
testPropertyEscapes(
/^\p{Cf}+$/u,
matchSymbols,
"\\p{Cf}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x002065
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0000AC],
[0x0000AE, 0x0005FF],
[0x000606, 0x00061B],
[0x00061D, 0x0006DC],
[0x0006DE, 0x00070E],
[0x000710, 0x0008E1],
[0x0008E3, 0x00180D],
[0x00180F, 0x00200A],
[0x002010, 0x002029],
[0x00202F, 0x00205F],
[0x002070, 0x00DBFF],
[0x00E000, 0x00FEFE],
[0x00FF00, 0x00FFF8],
[0x00FFFC, 0x0110BC],
[0x0110BE, 0x01BC9F],
[0x01BCA4, 0x01D172],
[0x01D17B, 0x0E0000],
[0x0E0002, 0x0E001F],
[0x0E0080, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Format}+$/u,
nonMatchSymbols,
"\\P{General_Category=Format}"
);
testPropertyEscapes(
/^\P{General_Category=Cf}+$/u,
nonMatchSymbols,
"\\P{General_Category=Cf}"
);
testPropertyEscapes(
/^\P{gc=Format}+$/u,
nonMatchSymbols,
"\\P{gc=Format}"
);
testPropertyEscapes(
/^\P{gc=Cf}+$/u,
nonMatchSymbols,
"\\P{gc=Cf}"
);
testPropertyEscapes(
/^\P{Format}+$/u,
nonMatchSymbols,
"\\P{Format}"
);
testPropertyEscapes(
/^\P{Cf}+$/u,
nonMatchSymbols,
"\\P{Cf}"
);

View File

@ -0,0 +1,113 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Initial_Punctuation`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000AB,
0x002018,
0x00201F,
0x002039,
0x002E02,
0x002E04,
0x002E09,
0x002E0C,
0x002E1C,
0x002E20
],
ranges: [
[0x00201B, 0x00201C]
]
});
testPropertyEscapes(
/^\p{General_Category=Initial_Punctuation}+$/u,
matchSymbols,
"\\p{General_Category=Initial_Punctuation}"
);
testPropertyEscapes(
/^\p{General_Category=Pi}+$/u,
matchSymbols,
"\\p{General_Category=Pi}"
);
testPropertyEscapes(
/^\p{gc=Initial_Punctuation}+$/u,
matchSymbols,
"\\p{gc=Initial_Punctuation}"
);
testPropertyEscapes(
/^\p{gc=Pi}+$/u,
matchSymbols,
"\\p{gc=Pi}"
);
testPropertyEscapes(
/^\p{Initial_Punctuation}+$/u,
matchSymbols,
"\\p{Initial_Punctuation}"
);
testPropertyEscapes(
/^\p{Pi}+$/u,
matchSymbols,
"\\p{Pi}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x002E03
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0000AA],
[0x0000AC, 0x002017],
[0x002019, 0x00201A],
[0x00201D, 0x00201E],
[0x002020, 0x002038],
[0x00203A, 0x002E01],
[0x002E05, 0x002E08],
[0x002E0A, 0x002E0B],
[0x002E0D, 0x002E1B],
[0x002E1D, 0x002E1F],
[0x002E21, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Initial_Punctuation}+$/u,
nonMatchSymbols,
"\\P{General_Category=Initial_Punctuation}"
);
testPropertyEscapes(
/^\P{General_Category=Pi}+$/u,
nonMatchSymbols,
"\\P{General_Category=Pi}"
);
testPropertyEscapes(
/^\P{gc=Initial_Punctuation}+$/u,
nonMatchSymbols,
"\\P{gc=Initial_Punctuation}"
);
testPropertyEscapes(
/^\P{gc=Pi}+$/u,
nonMatchSymbols,
"\\P{gc=Pi}"
);
testPropertyEscapes(
/^\P{Initial_Punctuation}+$/u,
nonMatchSymbols,
"\\P{Initial_Punctuation}"
);
testPropertyEscapes(
/^\P{Pi}+$/u,
nonMatchSymbols,
"\\P{Pi}"
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,114 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Letter_Number`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x003007,
0x010341,
0x01034A
],
ranges: [
[0x0016EE, 0x0016F0],
[0x002160, 0x002182],
[0x002185, 0x002188],
[0x003021, 0x003029],
[0x003038, 0x00303A],
[0x00A6E6, 0x00A6EF],
[0x010140, 0x010174],
[0x0103D1, 0x0103D5],
[0x012400, 0x01246E]
]
});
testPropertyEscapes(
/^\p{General_Category=Letter_Number}+$/u,
matchSymbols,
"\\p{General_Category=Letter_Number}"
);
testPropertyEscapes(
/^\p{General_Category=Nl}+$/u,
matchSymbols,
"\\p{General_Category=Nl}"
);
testPropertyEscapes(
/^\p{gc=Letter_Number}+$/u,
matchSymbols,
"\\p{gc=Letter_Number}"
);
testPropertyEscapes(
/^\p{gc=Nl}+$/u,
matchSymbols,
"\\p{gc=Nl}"
);
testPropertyEscapes(
/^\p{Letter_Number}+$/u,
matchSymbols,
"\\p{Letter_Number}"
);
testPropertyEscapes(
/^\p{Nl}+$/u,
matchSymbols,
"\\p{Nl}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0016ED],
[0x0016F1, 0x00215F],
[0x002183, 0x002184],
[0x002189, 0x003006],
[0x003008, 0x003020],
[0x00302A, 0x003037],
[0x00303B, 0x00A6E5],
[0x00A6F0, 0x00DBFF],
[0x00E000, 0x01013F],
[0x010175, 0x010340],
[0x010342, 0x010349],
[0x01034B, 0x0103D0],
[0x0103D6, 0x0123FF],
[0x01246F, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Letter_Number}+$/u,
nonMatchSymbols,
"\\P{General_Category=Letter_Number}"
);
testPropertyEscapes(
/^\P{General_Category=Nl}+$/u,
nonMatchSymbols,
"\\P{General_Category=Nl}"
);
testPropertyEscapes(
/^\P{gc=Letter_Number}+$/u,
nonMatchSymbols,
"\\P{gc=Letter_Number}"
);
testPropertyEscapes(
/^\P{gc=Nl}+$/u,
nonMatchSymbols,
"\\P{gc=Nl}"
);
testPropertyEscapes(
/^\P{Letter_Number}+$/u,
nonMatchSymbols,
"\\P{Letter_Number}"
);
testPropertyEscapes(
/^\P{Nl}+$/u,
nonMatchSymbols,
"\\P{Nl}"
);

View File

@ -0,0 +1,91 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Line_Separator`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x002028
],
ranges: []
});
testPropertyEscapes(
/^\p{General_Category=Line_Separator}+$/u,
matchSymbols,
"\\p{General_Category=Line_Separator}"
);
testPropertyEscapes(
/^\p{General_Category=Zl}+$/u,
matchSymbols,
"\\p{General_Category=Zl}"
);
testPropertyEscapes(
/^\p{gc=Line_Separator}+$/u,
matchSymbols,
"\\p{gc=Line_Separator}"
);
testPropertyEscapes(
/^\p{gc=Zl}+$/u,
matchSymbols,
"\\p{gc=Zl}"
);
testPropertyEscapes(
/^\p{Line_Separator}+$/u,
matchSymbols,
"\\p{Line_Separator}"
);
testPropertyEscapes(
/^\p{Zl}+$/u,
matchSymbols,
"\\p{Zl}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x002027],
[0x002029, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Line_Separator}+$/u,
nonMatchSymbols,
"\\P{General_Category=Line_Separator}"
);
testPropertyEscapes(
/^\P{General_Category=Zl}+$/u,
nonMatchSymbols,
"\\P{General_Category=Zl}"
);
testPropertyEscapes(
/^\P{gc=Line_Separator}+$/u,
nonMatchSymbols,
"\\P{gc=Line_Separator}"
);
testPropertyEscapes(
/^\P{gc=Zl}+$/u,
nonMatchSymbols,
"\\P{gc=Zl}"
);
testPropertyEscapes(
/^\P{Line_Separator}+$/u,
nonMatchSymbols,
"\\P{Line_Separator}"
);
testPropertyEscapes(
/^\P{Zl}+$/u,
nonMatchSymbols,
"\\P{Zl}"
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,621 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Mark`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0005BF,
0x0005C7,
0x000670,
0x000711,
0x0009BC,
0x0009D7,
0x000A3C,
0x000A51,
0x000A75,
0x000ABC,
0x000B3C,
0x000B82,
0x000BD7,
0x000CBC,
0x000D57,
0x000DCA,
0x000DD6,
0x000E31,
0x000EB1,
0x000F35,
0x000F37,
0x000F39,
0x000FC6,
0x00108F,
0x0017DD,
0x0018A9,
0x001A7F,
0x001CED,
0x002D7F,
0x00A802,
0x00A806,
0x00A80B,
0x00A9E5,
0x00AA43,
0x00AAB0,
0x00AAC1,
0x00FB1E,
0x0101FD,
0x0102E0,
0x010A3F,
0x011173,
0x01123E,
0x01133C,
0x011357,
0x01DA75,
0x01DA84
],
ranges: [
[0x000300, 0x00036F],
[0x000483, 0x000489],
[0x000591, 0x0005BD],
[0x0005C1, 0x0005C2],
[0x0005C4, 0x0005C5],
[0x000610, 0x00061A],
[0x00064B, 0x00065F],
[0x0006D6, 0x0006DC],
[0x0006DF, 0x0006E4],
[0x0006E7, 0x0006E8],
[0x0006EA, 0x0006ED],
[0x000730, 0x00074A],
[0x0007A6, 0x0007B0],
[0x0007EB, 0x0007F3],
[0x000816, 0x000819],
[0x00081B, 0x000823],
[0x000825, 0x000827],
[0x000829, 0x00082D],
[0x000859, 0x00085B],
[0x0008D4, 0x0008E1],
[0x0008E3, 0x000903],
[0x00093A, 0x00093C],
[0x00093E, 0x00094F],
[0x000951, 0x000957],
[0x000962, 0x000963],
[0x000981, 0x000983],
[0x0009BE, 0x0009C4],
[0x0009C7, 0x0009C8],
[0x0009CB, 0x0009CD],
[0x0009E2, 0x0009E3],
[0x000A01, 0x000A03],
[0x000A3E, 0x000A42],
[0x000A47, 0x000A48],
[0x000A4B, 0x000A4D],
[0x000A70, 0x000A71],
[0x000A81, 0x000A83],
[0x000ABE, 0x000AC5],
[0x000AC7, 0x000AC9],
[0x000ACB, 0x000ACD],
[0x000AE2, 0x000AE3],
[0x000B01, 0x000B03],
[0x000B3E, 0x000B44],
[0x000B47, 0x000B48],
[0x000B4B, 0x000B4D],
[0x000B56, 0x000B57],
[0x000B62, 0x000B63],
[0x000BBE, 0x000BC2],
[0x000BC6, 0x000BC8],
[0x000BCA, 0x000BCD],
[0x000C00, 0x000C03],
[0x000C3E, 0x000C44],
[0x000C46, 0x000C48],
[0x000C4A, 0x000C4D],
[0x000C55, 0x000C56],
[0x000C62, 0x000C63],
[0x000C81, 0x000C83],
[0x000CBE, 0x000CC4],
[0x000CC6, 0x000CC8],
[0x000CCA, 0x000CCD],
[0x000CD5, 0x000CD6],
[0x000CE2, 0x000CE3],
[0x000D01, 0x000D03],
[0x000D3E, 0x000D44],
[0x000D46, 0x000D48],
[0x000D4A, 0x000D4D],
[0x000D62, 0x000D63],
[0x000D82, 0x000D83],
[0x000DCF, 0x000DD4],
[0x000DD8, 0x000DDF],
[0x000DF2, 0x000DF3],
[0x000E34, 0x000E3A],
[0x000E47, 0x000E4E],
[0x000EB4, 0x000EB9],
[0x000EBB, 0x000EBC],
[0x000EC8, 0x000ECD],
[0x000F18, 0x000F19],
[0x000F3E, 0x000F3F],
[0x000F71, 0x000F84],
[0x000F86, 0x000F87],
[0x000F8D, 0x000F97],
[0x000F99, 0x000FBC],
[0x00102B, 0x00103E],
[0x001056, 0x001059],
[0x00105E, 0x001060],
[0x001062, 0x001064],
[0x001067, 0x00106D],
[0x001071, 0x001074],
[0x001082, 0x00108D],
[0x00109A, 0x00109D],
[0x00135D, 0x00135F],
[0x001712, 0x001714],
[0x001732, 0x001734],
[0x001752, 0x001753],
[0x001772, 0x001773],
[0x0017B4, 0x0017D3],
[0x00180B, 0x00180D],
[0x001885, 0x001886],
[0x001920, 0x00192B],
[0x001930, 0x00193B],
[0x001A17, 0x001A1B],
[0x001A55, 0x001A5E],
[0x001A60, 0x001A7C],
[0x001AB0, 0x001ABE],
[0x001B00, 0x001B04],
[0x001B34, 0x001B44],
[0x001B6B, 0x001B73],
[0x001B80, 0x001B82],
[0x001BA1, 0x001BAD],
[0x001BE6, 0x001BF3],
[0x001C24, 0x001C37],
[0x001CD0, 0x001CD2],
[0x001CD4, 0x001CE8],
[0x001CF2, 0x001CF4],
[0x001CF8, 0x001CF9],
[0x001DC0, 0x001DF5],
[0x001DFB, 0x001DFF],
[0x0020D0, 0x0020F0],
[0x002CEF, 0x002CF1],
[0x002DE0, 0x002DFF],
[0x00302A, 0x00302F],
[0x003099, 0x00309A],
[0x00A66F, 0x00A672],
[0x00A674, 0x00A67D],
[0x00A69E, 0x00A69F],
[0x00A6F0, 0x00A6F1],
[0x00A823, 0x00A827],
[0x00A880, 0x00A881],
[0x00A8B4, 0x00A8C5],
[0x00A8E0, 0x00A8F1],
[0x00A926, 0x00A92D],
[0x00A947, 0x00A953],
[0x00A980, 0x00A983],
[0x00A9B3, 0x00A9C0],
[0x00AA29, 0x00AA36],
[0x00AA4C, 0x00AA4D],
[0x00AA7B, 0x00AA7D],
[0x00AAB2, 0x00AAB4],
[0x00AAB7, 0x00AAB8],
[0x00AABE, 0x00AABF],
[0x00AAEB, 0x00AAEF],
[0x00AAF5, 0x00AAF6],
[0x00ABE3, 0x00ABEA],
[0x00ABEC, 0x00ABED],
[0x00FE00, 0x00FE0F],
[0x00FE20, 0x00FE2F],
[0x010376, 0x01037A],
[0x010A01, 0x010A03],
[0x010A05, 0x010A06],
[0x010A0C, 0x010A0F],
[0x010A38, 0x010A3A],
[0x010AE5, 0x010AE6],
[0x011000, 0x011002],
[0x011038, 0x011046],
[0x01107F, 0x011082],
[0x0110B0, 0x0110BA],
[0x011100, 0x011102],
[0x011127, 0x011134],
[0x011180, 0x011182],
[0x0111B3, 0x0111C0],
[0x0111CA, 0x0111CC],
[0x01122C, 0x011237],
[0x0112DF, 0x0112EA],
[0x011300, 0x011303],
[0x01133E, 0x011344],
[0x011347, 0x011348],
[0x01134B, 0x01134D],
[0x011362, 0x011363],
[0x011366, 0x01136C],
[0x011370, 0x011374],
[0x011435, 0x011446],
[0x0114B0, 0x0114C3],
[0x0115AF, 0x0115B5],
[0x0115B8, 0x0115C0],
[0x0115DC, 0x0115DD],
[0x011630, 0x011640],
[0x0116AB, 0x0116B7],
[0x01171D, 0x01172B],
[0x011C2F, 0x011C36],
[0x011C38, 0x011C3F],
[0x011C92, 0x011CA7],
[0x011CA9, 0x011CB6],
[0x016AF0, 0x016AF4],
[0x016B30, 0x016B36],
[0x016F51, 0x016F7E],
[0x016F8F, 0x016F92],
[0x01BC9D, 0x01BC9E],
[0x01D165, 0x01D169],
[0x01D16D, 0x01D172],
[0x01D17B, 0x01D182],
[0x01D185, 0x01D18B],
[0x01D1AA, 0x01D1AD],
[0x01D242, 0x01D244],
[0x01DA00, 0x01DA36],
[0x01DA3B, 0x01DA6C],
[0x01DA9B, 0x01DA9F],
[0x01DAA1, 0x01DAAF],
[0x01E000, 0x01E006],
[0x01E008, 0x01E018],
[0x01E01B, 0x01E021],
[0x01E023, 0x01E024],
[0x01E026, 0x01E02A],
[0x01E8D0, 0x01E8D6],
[0x01E944, 0x01E94A],
[0x0E0100, 0x0E01EF]
]
});
testPropertyEscapes(
/^\p{General_Category=Mark}+$/u,
matchSymbols,
"\\p{General_Category=Mark}"
);
testPropertyEscapes(
/^\p{General_Category=M}+$/u,
matchSymbols,
"\\p{General_Category=M}"
);
testPropertyEscapes(
/^\p{General_Category=Combining_Mark}+$/u,
matchSymbols,
"\\p{General_Category=Combining_Mark}"
);
testPropertyEscapes(
/^\p{gc=Mark}+$/u,
matchSymbols,
"\\p{gc=Mark}"
);
testPropertyEscapes(
/^\p{gc=M}+$/u,
matchSymbols,
"\\p{gc=M}"
);
testPropertyEscapes(
/^\p{gc=Combining_Mark}+$/u,
matchSymbols,
"\\p{gc=Combining_Mark}"
);
testPropertyEscapes(
/^\p{Mark}+$/u,
matchSymbols,
"\\p{Mark}"
);
testPropertyEscapes(
/^\p{M}+$/u,
matchSymbols,
"\\p{M}"
);
testPropertyEscapes(
/^\p{Combining_Mark}+$/u,
matchSymbols,
"\\p{Combining_Mark}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0005BE,
0x0005C0,
0x0005C3,
0x0005C6,
0x0006E9,
0x00081A,
0x000824,
0x000828,
0x0008E2,
0x00093D,
0x000950,
0x0009BD,
0x000A3D,
0x000ABD,
0x000AC6,
0x000ACA,
0x000B3D,
0x000BC9,
0x000C45,
0x000C49,
0x000CBD,
0x000CC5,
0x000CC9,
0x000D45,
0x000D49,
0x000DD5,
0x000DD7,
0x000EBA,
0x000F36,
0x000F38,
0x000F85,
0x000F98,
0x001061,
0x00108E,
0x001A5F,
0x001CD3,
0x00A673,
0x00AAB1,
0x00AAC0,
0x00ABEB,
0x010A04,
0x01133D,
0x011C37,
0x011CA8,
0x01DAA0,
0x01E007,
0x01E022,
0x01E025
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0002FF],
[0x000370, 0x000482],
[0x00048A, 0x000590],
[0x0005C8, 0x00060F],
[0x00061B, 0x00064A],
[0x000660, 0x00066F],
[0x000671, 0x0006D5],
[0x0006DD, 0x0006DE],
[0x0006E5, 0x0006E6],
[0x0006EE, 0x000710],
[0x000712, 0x00072F],
[0x00074B, 0x0007A5],
[0x0007B1, 0x0007EA],
[0x0007F4, 0x000815],
[0x00082E, 0x000858],
[0x00085C, 0x0008D3],
[0x000904, 0x000939],
[0x000958, 0x000961],
[0x000964, 0x000980],
[0x000984, 0x0009BB],
[0x0009C5, 0x0009C6],
[0x0009C9, 0x0009CA],
[0x0009CE, 0x0009D6],
[0x0009D8, 0x0009E1],
[0x0009E4, 0x000A00],
[0x000A04, 0x000A3B],
[0x000A43, 0x000A46],
[0x000A49, 0x000A4A],
[0x000A4E, 0x000A50],
[0x000A52, 0x000A6F],
[0x000A72, 0x000A74],
[0x000A76, 0x000A80],
[0x000A84, 0x000ABB],
[0x000ACE, 0x000AE1],
[0x000AE4, 0x000B00],
[0x000B04, 0x000B3B],
[0x000B45, 0x000B46],
[0x000B49, 0x000B4A],
[0x000B4E, 0x000B55],
[0x000B58, 0x000B61],
[0x000B64, 0x000B81],
[0x000B83, 0x000BBD],
[0x000BC3, 0x000BC5],
[0x000BCE, 0x000BD6],
[0x000BD8, 0x000BFF],
[0x000C04, 0x000C3D],
[0x000C4E, 0x000C54],
[0x000C57, 0x000C61],
[0x000C64, 0x000C80],
[0x000C84, 0x000CBB],
[0x000CCE, 0x000CD4],
[0x000CD7, 0x000CE1],
[0x000CE4, 0x000D00],
[0x000D04, 0x000D3D],
[0x000D4E, 0x000D56],
[0x000D58, 0x000D61],
[0x000D64, 0x000D81],
[0x000D84, 0x000DC9],
[0x000DCB, 0x000DCE],
[0x000DE0, 0x000DF1],
[0x000DF4, 0x000E30],
[0x000E32, 0x000E33],
[0x000E3B, 0x000E46],
[0x000E4F, 0x000EB0],
[0x000EB2, 0x000EB3],
[0x000EBD, 0x000EC7],
[0x000ECE, 0x000F17],
[0x000F1A, 0x000F34],
[0x000F3A, 0x000F3D],
[0x000F40, 0x000F70],
[0x000F88, 0x000F8C],
[0x000FBD, 0x000FC5],
[0x000FC7, 0x00102A],
[0x00103F, 0x001055],
[0x00105A, 0x00105D],
[0x001065, 0x001066],
[0x00106E, 0x001070],
[0x001075, 0x001081],
[0x001090, 0x001099],
[0x00109E, 0x00135C],
[0x001360, 0x001711],
[0x001715, 0x001731],
[0x001735, 0x001751],
[0x001754, 0x001771],
[0x001774, 0x0017B3],
[0x0017D4, 0x0017DC],
[0x0017DE, 0x00180A],
[0x00180E, 0x001884],
[0x001887, 0x0018A8],
[0x0018AA, 0x00191F],
[0x00192C, 0x00192F],
[0x00193C, 0x001A16],
[0x001A1C, 0x001A54],
[0x001A7D, 0x001A7E],
[0x001A80, 0x001AAF],
[0x001ABF, 0x001AFF],
[0x001B05, 0x001B33],
[0x001B45, 0x001B6A],
[0x001B74, 0x001B7F],
[0x001B83, 0x001BA0],
[0x001BAE, 0x001BE5],
[0x001BF4, 0x001C23],
[0x001C38, 0x001CCF],
[0x001CE9, 0x001CEC],
[0x001CEE, 0x001CF1],
[0x001CF5, 0x001CF7],
[0x001CFA, 0x001DBF],
[0x001DF6, 0x001DFA],
[0x001E00, 0x0020CF],
[0x0020F1, 0x002CEE],
[0x002CF2, 0x002D7E],
[0x002D80, 0x002DDF],
[0x002E00, 0x003029],
[0x003030, 0x003098],
[0x00309B, 0x00A66E],
[0x00A67E, 0x00A69D],
[0x00A6A0, 0x00A6EF],
[0x00A6F2, 0x00A801],
[0x00A803, 0x00A805],
[0x00A807, 0x00A80A],
[0x00A80C, 0x00A822],
[0x00A828, 0x00A87F],
[0x00A882, 0x00A8B3],
[0x00A8C6, 0x00A8DF],
[0x00A8F2, 0x00A925],
[0x00A92E, 0x00A946],
[0x00A954, 0x00A97F],
[0x00A984, 0x00A9B2],
[0x00A9C1, 0x00A9E4],
[0x00A9E6, 0x00AA28],
[0x00AA37, 0x00AA42],
[0x00AA44, 0x00AA4B],
[0x00AA4E, 0x00AA7A],
[0x00AA7E, 0x00AAAF],
[0x00AAB5, 0x00AAB6],
[0x00AAB9, 0x00AABD],
[0x00AAC2, 0x00AAEA],
[0x00AAF0, 0x00AAF4],
[0x00AAF7, 0x00ABE2],
[0x00ABEE, 0x00DBFF],
[0x00E000, 0x00FB1D],
[0x00FB1F, 0x00FDFF],
[0x00FE10, 0x00FE1F],
[0x00FE30, 0x0101FC],
[0x0101FE, 0x0102DF],
[0x0102E1, 0x010375],
[0x01037B, 0x010A00],
[0x010A07, 0x010A0B],
[0x010A10, 0x010A37],
[0x010A3B, 0x010A3E],
[0x010A40, 0x010AE4],
[0x010AE7, 0x010FFF],
[0x011003, 0x011037],
[0x011047, 0x01107E],
[0x011083, 0x0110AF],
[0x0110BB, 0x0110FF],
[0x011103, 0x011126],
[0x011135, 0x011172],
[0x011174, 0x01117F],
[0x011183, 0x0111B2],
[0x0111C1, 0x0111C9],
[0x0111CD, 0x01122B],
[0x011238, 0x01123D],
[0x01123F, 0x0112DE],
[0x0112EB, 0x0112FF],
[0x011304, 0x01133B],
[0x011345, 0x011346],
[0x011349, 0x01134A],
[0x01134E, 0x011356],
[0x011358, 0x011361],
[0x011364, 0x011365],
[0x01136D, 0x01136F],
[0x011375, 0x011434],
[0x011447, 0x0114AF],
[0x0114C4, 0x0115AE],
[0x0115B6, 0x0115B7],
[0x0115C1, 0x0115DB],
[0x0115DE, 0x01162F],
[0x011641, 0x0116AA],
[0x0116B8, 0x01171C],
[0x01172C, 0x011C2E],
[0x011C40, 0x011C91],
[0x011CB7, 0x016AEF],
[0x016AF5, 0x016B2F],
[0x016B37, 0x016F50],
[0x016F7F, 0x016F8E],
[0x016F93, 0x01BC9C],
[0x01BC9F, 0x01D164],
[0x01D16A, 0x01D16C],
[0x01D173, 0x01D17A],
[0x01D183, 0x01D184],
[0x01D18C, 0x01D1A9],
[0x01D1AE, 0x01D241],
[0x01D245, 0x01D9FF],
[0x01DA37, 0x01DA3A],
[0x01DA6D, 0x01DA74],
[0x01DA76, 0x01DA83],
[0x01DA85, 0x01DA9A],
[0x01DAB0, 0x01DFFF],
[0x01E019, 0x01E01A],
[0x01E02B, 0x01E8CF],
[0x01E8D7, 0x01E943],
[0x01E94B, 0x0E00FF],
[0x0E01F0, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Mark}+$/u,
nonMatchSymbols,
"\\P{General_Category=Mark}"
);
testPropertyEscapes(
/^\P{General_Category=M}+$/u,
nonMatchSymbols,
"\\P{General_Category=M}"
);
testPropertyEscapes(
/^\P{General_Category=Combining_Mark}+$/u,
nonMatchSymbols,
"\\P{General_Category=Combining_Mark}"
);
testPropertyEscapes(
/^\P{gc=Mark}+$/u,
nonMatchSymbols,
"\\P{gc=Mark}"
);
testPropertyEscapes(
/^\P{gc=M}+$/u,
nonMatchSymbols,
"\\P{gc=M}"
);
testPropertyEscapes(
/^\P{gc=Combining_Mark}+$/u,
nonMatchSymbols,
"\\P{gc=Combining_Mark}"
);
testPropertyEscapes(
/^\P{Mark}+$/u,
nonMatchSymbols,
"\\P{Mark}"
);
testPropertyEscapes(
/^\P{M}+$/u,
nonMatchSymbols,
"\\P{M}"
);
testPropertyEscapes(
/^\P{Combining_Mark}+$/u,
nonMatchSymbols,
"\\P{Combining_Mark}"
);

View File

@ -0,0 +1,219 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Math_Symbol`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00002B,
0x00007C,
0x00007E,
0x0000AC,
0x0000B1,
0x0000D7,
0x0000F7,
0x0003F6,
0x002044,
0x002052,
0x002118,
0x00214B,
0x0021A0,
0x0021A3,
0x0021A6,
0x0021AE,
0x0021D2,
0x0021D4,
0x00237C,
0x0025B7,
0x0025C1,
0x00266F,
0x00FB29,
0x00FE62,
0x00FF0B,
0x00FF5C,
0x00FF5E,
0x00FFE2,
0x01D6C1,
0x01D6DB,
0x01D6FB,
0x01D715,
0x01D735,
0x01D74F,
0x01D76F,
0x01D789,
0x01D7A9,
0x01D7C3
],
ranges: [
[0x00003C, 0x00003E],
[0x000606, 0x000608],
[0x00207A, 0x00207C],
[0x00208A, 0x00208C],
[0x002140, 0x002144],
[0x002190, 0x002194],
[0x00219A, 0x00219B],
[0x0021CE, 0x0021CF],
[0x0021F4, 0x0022FF],
[0x002320, 0x002321],
[0x00239B, 0x0023B3],
[0x0023DC, 0x0023E1],
[0x0025F8, 0x0025FF],
[0x0027C0, 0x0027C4],
[0x0027C7, 0x0027E5],
[0x0027F0, 0x0027FF],
[0x002900, 0x002982],
[0x002999, 0x0029D7],
[0x0029DC, 0x0029FB],
[0x0029FE, 0x002AFF],
[0x002B30, 0x002B44],
[0x002B47, 0x002B4C],
[0x00FE64, 0x00FE66],
[0x00FF1C, 0x00FF1E],
[0x00FFE9, 0x00FFEC],
[0x01EEF0, 0x01EEF1]
]
});
testPropertyEscapes(
/^\p{General_Category=Math_Symbol}+$/u,
matchSymbols,
"\\p{General_Category=Math_Symbol}"
);
testPropertyEscapes(
/^\p{General_Category=Sm}+$/u,
matchSymbols,
"\\p{General_Category=Sm}"
);
testPropertyEscapes(
/^\p{gc=Math_Symbol}+$/u,
matchSymbols,
"\\p{gc=Math_Symbol}"
);
testPropertyEscapes(
/^\p{gc=Sm}+$/u,
matchSymbols,
"\\p{gc=Sm}"
);
testPropertyEscapes(
/^\p{Math_Symbol}+$/u,
matchSymbols,
"\\p{Math_Symbol}"
);
testPropertyEscapes(
/^\p{Sm}+$/u,
matchSymbols,
"\\p{Sm}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x00007D,
0x0021D3,
0x00FE63,
0x00FF5D
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00002A],
[0x00002C, 0x00003B],
[0x00003F, 0x00007B],
[0x00007F, 0x0000AB],
[0x0000AD, 0x0000B0],
[0x0000B2, 0x0000D6],
[0x0000D8, 0x0000F6],
[0x0000F8, 0x0003F5],
[0x0003F7, 0x000605],
[0x000609, 0x002043],
[0x002045, 0x002051],
[0x002053, 0x002079],
[0x00207D, 0x002089],
[0x00208D, 0x002117],
[0x002119, 0x00213F],
[0x002145, 0x00214A],
[0x00214C, 0x00218F],
[0x002195, 0x002199],
[0x00219C, 0x00219F],
[0x0021A1, 0x0021A2],
[0x0021A4, 0x0021A5],
[0x0021A7, 0x0021AD],
[0x0021AF, 0x0021CD],
[0x0021D0, 0x0021D1],
[0x0021D5, 0x0021F3],
[0x002300, 0x00231F],
[0x002322, 0x00237B],
[0x00237D, 0x00239A],
[0x0023B4, 0x0023DB],
[0x0023E2, 0x0025B6],
[0x0025B8, 0x0025C0],
[0x0025C2, 0x0025F7],
[0x002600, 0x00266E],
[0x002670, 0x0027BF],
[0x0027C5, 0x0027C6],
[0x0027E6, 0x0027EF],
[0x002800, 0x0028FF],
[0x002983, 0x002998],
[0x0029D8, 0x0029DB],
[0x0029FC, 0x0029FD],
[0x002B00, 0x002B2F],
[0x002B45, 0x002B46],
[0x002B4D, 0x00DBFF],
[0x00E000, 0x00FB28],
[0x00FB2A, 0x00FE61],
[0x00FE67, 0x00FF0A],
[0x00FF0C, 0x00FF1B],
[0x00FF1F, 0x00FF5B],
[0x00FF5F, 0x00FFE1],
[0x00FFE3, 0x00FFE8],
[0x00FFED, 0x01D6C0],
[0x01D6C2, 0x01D6DA],
[0x01D6DC, 0x01D6FA],
[0x01D6FC, 0x01D714],
[0x01D716, 0x01D734],
[0x01D736, 0x01D74E],
[0x01D750, 0x01D76E],
[0x01D770, 0x01D788],
[0x01D78A, 0x01D7A8],
[0x01D7AA, 0x01D7C2],
[0x01D7C4, 0x01EEEF],
[0x01EEF2, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Math_Symbol}+$/u,
nonMatchSymbols,
"\\P{General_Category=Math_Symbol}"
);
testPropertyEscapes(
/^\P{General_Category=Sm}+$/u,
nonMatchSymbols,
"\\P{General_Category=Sm}"
);
testPropertyEscapes(
/^\P{gc=Math_Symbol}+$/u,
nonMatchSymbols,
"\\P{gc=Math_Symbol}"
);
testPropertyEscapes(
/^\P{gc=Sm}+$/u,
nonMatchSymbols,
"\\P{gc=Sm}"
);
testPropertyEscapes(
/^\P{Math_Symbol}+$/u,
nonMatchSymbols,
"\\P{Math_Symbol}"
);
testPropertyEscapes(
/^\P{Sm}+$/u,
nonMatchSymbols,
"\\P{Sm}"
);

View File

@ -0,0 +1,205 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Modifier_Letter`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0002EC,
0x0002EE,
0x000374,
0x00037A,
0x000559,
0x000640,
0x0007FA,
0x00081A,
0x000824,
0x000828,
0x000971,
0x000E46,
0x000EC6,
0x0010FC,
0x0017D7,
0x001843,
0x001AA7,
0x001D78,
0x002071,
0x00207F,
0x002D6F,
0x002E2F,
0x003005,
0x00303B,
0x00A015,
0x00A60C,
0x00A67F,
0x00A770,
0x00A788,
0x00A9CF,
0x00A9E6,
0x00AA70,
0x00AADD,
0x00FF70,
0x016FE0
],
ranges: [
[0x0002B0, 0x0002C1],
[0x0002C6, 0x0002D1],
[0x0002E0, 0x0002E4],
[0x0006E5, 0x0006E6],
[0x0007F4, 0x0007F5],
[0x001C78, 0x001C7D],
[0x001D2C, 0x001D6A],
[0x001D9B, 0x001DBF],
[0x002090, 0x00209C],
[0x002C7C, 0x002C7D],
[0x003031, 0x003035],
[0x00309D, 0x00309E],
[0x0030FC, 0x0030FE],
[0x00A4F8, 0x00A4FD],
[0x00A69C, 0x00A69D],
[0x00A717, 0x00A71F],
[0x00A7F8, 0x00A7F9],
[0x00AAF3, 0x00AAF4],
[0x00AB5C, 0x00AB5F],
[0x00FF9E, 0x00FF9F],
[0x016B40, 0x016B43],
[0x016F93, 0x016F9F]
]
});
testPropertyEscapes(
/^\p{General_Category=Modifier_Letter}+$/u,
matchSymbols,
"\\p{General_Category=Modifier_Letter}"
);
testPropertyEscapes(
/^\p{General_Category=Lm}+$/u,
matchSymbols,
"\\p{General_Category=Lm}"
);
testPropertyEscapes(
/^\p{gc=Modifier_Letter}+$/u,
matchSymbols,
"\\p{gc=Modifier_Letter}"
);
testPropertyEscapes(
/^\p{gc=Lm}+$/u,
matchSymbols,
"\\p{gc=Lm}"
);
testPropertyEscapes(
/^\p{Modifier_Letter}+$/u,
matchSymbols,
"\\p{Modifier_Letter}"
);
testPropertyEscapes(
/^\p{Lm}+$/u,
matchSymbols,
"\\p{Lm}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0002ED
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0002AF],
[0x0002C2, 0x0002C5],
[0x0002D2, 0x0002DF],
[0x0002E5, 0x0002EB],
[0x0002EF, 0x000373],
[0x000375, 0x000379],
[0x00037B, 0x000558],
[0x00055A, 0x00063F],
[0x000641, 0x0006E4],
[0x0006E7, 0x0007F3],
[0x0007F6, 0x0007F9],
[0x0007FB, 0x000819],
[0x00081B, 0x000823],
[0x000825, 0x000827],
[0x000829, 0x000970],
[0x000972, 0x000E45],
[0x000E47, 0x000EC5],
[0x000EC7, 0x0010FB],
[0x0010FD, 0x0017D6],
[0x0017D8, 0x001842],
[0x001844, 0x001AA6],
[0x001AA8, 0x001C77],
[0x001C7E, 0x001D2B],
[0x001D6B, 0x001D77],
[0x001D79, 0x001D9A],
[0x001DC0, 0x002070],
[0x002072, 0x00207E],
[0x002080, 0x00208F],
[0x00209D, 0x002C7B],
[0x002C7E, 0x002D6E],
[0x002D70, 0x002E2E],
[0x002E30, 0x003004],
[0x003006, 0x003030],
[0x003036, 0x00303A],
[0x00303C, 0x00309C],
[0x00309F, 0x0030FB],
[0x0030FF, 0x00A014],
[0x00A016, 0x00A4F7],
[0x00A4FE, 0x00A60B],
[0x00A60D, 0x00A67E],
[0x00A680, 0x00A69B],
[0x00A69E, 0x00A716],
[0x00A720, 0x00A76F],
[0x00A771, 0x00A787],
[0x00A789, 0x00A7F7],
[0x00A7FA, 0x00A9CE],
[0x00A9D0, 0x00A9E5],
[0x00A9E7, 0x00AA6F],
[0x00AA71, 0x00AADC],
[0x00AADE, 0x00AAF2],
[0x00AAF5, 0x00AB5B],
[0x00AB60, 0x00DBFF],
[0x00E000, 0x00FF6F],
[0x00FF71, 0x00FF9D],
[0x00FFA0, 0x016B3F],
[0x016B44, 0x016F92],
[0x016FA0, 0x016FDF],
[0x016FE1, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Modifier_Letter}+$/u,
nonMatchSymbols,
"\\P{General_Category=Modifier_Letter}"
);
testPropertyEscapes(
/^\P{General_Category=Lm}+$/u,
nonMatchSymbols,
"\\P{General_Category=Lm}"
);
testPropertyEscapes(
/^\P{gc=Modifier_Letter}+$/u,
nonMatchSymbols,
"\\P{gc=Modifier_Letter}"
);
testPropertyEscapes(
/^\P{gc=Lm}+$/u,
nonMatchSymbols,
"\\P{gc=Lm}"
);
testPropertyEscapes(
/^\P{Modifier_Letter}+$/u,
nonMatchSymbols,
"\\P{Modifier_Letter}"
);
testPropertyEscapes(
/^\P{Lm}+$/u,
nonMatchSymbols,
"\\P{Lm}"
);

View File

@ -0,0 +1,149 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Modifier_Symbol`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00005E,
0x000060,
0x0000A8,
0x0000AF,
0x0000B4,
0x0000B8,
0x0002ED,
0x000375,
0x001FBD,
0x00AB5B,
0x00FF3E,
0x00FF40,
0x00FFE3
],
ranges: [
[0x0002C2, 0x0002C5],
[0x0002D2, 0x0002DF],
[0x0002E5, 0x0002EB],
[0x0002EF, 0x0002FF],
[0x000384, 0x000385],
[0x001FBF, 0x001FC1],
[0x001FCD, 0x001FCF],
[0x001FDD, 0x001FDF],
[0x001FED, 0x001FEF],
[0x001FFD, 0x001FFE],
[0x00309B, 0x00309C],
[0x00A700, 0x00A716],
[0x00A720, 0x00A721],
[0x00A789, 0x00A78A],
[0x00FBB2, 0x00FBC1],
[0x01F3FB, 0x01F3FF]
]
});
testPropertyEscapes(
/^\p{General_Category=Modifier_Symbol}+$/u,
matchSymbols,
"\\p{General_Category=Modifier_Symbol}"
);
testPropertyEscapes(
/^\p{General_Category=Sk}+$/u,
matchSymbols,
"\\p{General_Category=Sk}"
);
testPropertyEscapes(
/^\p{gc=Modifier_Symbol}+$/u,
matchSymbols,
"\\p{gc=Modifier_Symbol}"
);
testPropertyEscapes(
/^\p{gc=Sk}+$/u,
matchSymbols,
"\\p{gc=Sk}"
);
testPropertyEscapes(
/^\p{Modifier_Symbol}+$/u,
matchSymbols,
"\\p{Modifier_Symbol}"
);
testPropertyEscapes(
/^\p{Sk}+$/u,
matchSymbols,
"\\p{Sk}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x00005F,
0x0002EC,
0x0002EE,
0x001FBE,
0x00FF3F
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00005D],
[0x000061, 0x0000A7],
[0x0000A9, 0x0000AE],
[0x0000B0, 0x0000B3],
[0x0000B5, 0x0000B7],
[0x0000B9, 0x0002C1],
[0x0002C6, 0x0002D1],
[0x0002E0, 0x0002E4],
[0x000300, 0x000374],
[0x000376, 0x000383],
[0x000386, 0x001FBC],
[0x001FC2, 0x001FCC],
[0x001FD0, 0x001FDC],
[0x001FE0, 0x001FEC],
[0x001FF0, 0x001FFC],
[0x001FFF, 0x00309A],
[0x00309D, 0x00A6FF],
[0x00A717, 0x00A71F],
[0x00A722, 0x00A788],
[0x00A78B, 0x00AB5A],
[0x00AB5C, 0x00DBFF],
[0x00E000, 0x00FBB1],
[0x00FBC2, 0x00FF3D],
[0x00FF41, 0x00FFE2],
[0x00FFE4, 0x01F3FA],
[0x01F400, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Modifier_Symbol}+$/u,
nonMatchSymbols,
"\\P{General_Category=Modifier_Symbol}"
);
testPropertyEscapes(
/^\P{General_Category=Sk}+$/u,
nonMatchSymbols,
"\\P{General_Category=Sk}"
);
testPropertyEscapes(
/^\P{gc=Modifier_Symbol}+$/u,
nonMatchSymbols,
"\\P{gc=Modifier_Symbol}"
);
testPropertyEscapes(
/^\P{gc=Sk}+$/u,
nonMatchSymbols,
"\\P{gc=Sk}"
);
testPropertyEscapes(
/^\P{Modifier_Symbol}+$/u,
nonMatchSymbols,
"\\P{Modifier_Symbol}"
);
testPropertyEscapes(
/^\P{Sk}+$/u,
nonMatchSymbols,
"\\P{Sk}"
);

View File

@ -0,0 +1,661 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Nonspacing_Mark`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0005BF,
0x0005C7,
0x000670,
0x000711,
0x00093A,
0x00093C,
0x00094D,
0x000981,
0x0009BC,
0x0009CD,
0x000A3C,
0x000A51,
0x000A75,
0x000ABC,
0x000ACD,
0x000B01,
0x000B3C,
0x000B3F,
0x000B4D,
0x000B56,
0x000B82,
0x000BC0,
0x000BCD,
0x000C00,
0x000C81,
0x000CBC,
0x000CBF,
0x000CC6,
0x000D01,
0x000D4D,
0x000DCA,
0x000DD6,
0x000E31,
0x000EB1,
0x000F35,
0x000F37,
0x000F39,
0x000FC6,
0x001082,
0x00108D,
0x00109D,
0x0017C6,
0x0017DD,
0x0018A9,
0x001932,
0x001A1B,
0x001A56,
0x001A60,
0x001A62,
0x001A7F,
0x001B34,
0x001B3C,
0x001B42,
0x001BE6,
0x001BED,
0x001CED,
0x001CF4,
0x0020E1,
0x002D7F,
0x00A66F,
0x00A802,
0x00A806,
0x00A80B,
0x00A9B3,
0x00A9BC,
0x00A9E5,
0x00AA43,
0x00AA4C,
0x00AA7C,
0x00AAB0,
0x00AAC1,
0x00AAF6,
0x00ABE5,
0x00ABE8,
0x00ABED,
0x00FB1E,
0x0101FD,
0x0102E0,
0x010A3F,
0x011001,
0x011173,
0x011234,
0x01123E,
0x0112DF,
0x01133C,
0x011340,
0x011446,
0x0114BA,
0x01163D,
0x0116AB,
0x0116AD,
0x0116B7,
0x011C3F,
0x01DA75,
0x01DA84
],
ranges: [
[0x000300, 0x00036F],
[0x000483, 0x000487],
[0x000591, 0x0005BD],
[0x0005C1, 0x0005C2],
[0x0005C4, 0x0005C5],
[0x000610, 0x00061A],
[0x00064B, 0x00065F],
[0x0006D6, 0x0006DC],
[0x0006DF, 0x0006E4],
[0x0006E7, 0x0006E8],
[0x0006EA, 0x0006ED],
[0x000730, 0x00074A],
[0x0007A6, 0x0007B0],
[0x0007EB, 0x0007F3],
[0x000816, 0x000819],
[0x00081B, 0x000823],
[0x000825, 0x000827],
[0x000829, 0x00082D],
[0x000859, 0x00085B],
[0x0008D4, 0x0008E1],
[0x0008E3, 0x000902],
[0x000941, 0x000948],
[0x000951, 0x000957],
[0x000962, 0x000963],
[0x0009C1, 0x0009C4],
[0x0009E2, 0x0009E3],
[0x000A01, 0x000A02],
[0x000A41, 0x000A42],
[0x000A47, 0x000A48],
[0x000A4B, 0x000A4D],
[0x000A70, 0x000A71],
[0x000A81, 0x000A82],
[0x000AC1, 0x000AC5],
[0x000AC7, 0x000AC8],
[0x000AE2, 0x000AE3],
[0x000B41, 0x000B44],
[0x000B62, 0x000B63],
[0x000C3E, 0x000C40],
[0x000C46, 0x000C48],
[0x000C4A, 0x000C4D],
[0x000C55, 0x000C56],
[0x000C62, 0x000C63],
[0x000CCC, 0x000CCD],
[0x000CE2, 0x000CE3],
[0x000D41, 0x000D44],
[0x000D62, 0x000D63],
[0x000DD2, 0x000DD4],
[0x000E34, 0x000E3A],
[0x000E47, 0x000E4E],
[0x000EB4, 0x000EB9],
[0x000EBB, 0x000EBC],
[0x000EC8, 0x000ECD],
[0x000F18, 0x000F19],
[0x000F71, 0x000F7E],
[0x000F80, 0x000F84],
[0x000F86, 0x000F87],
[0x000F8D, 0x000F97],
[0x000F99, 0x000FBC],
[0x00102D, 0x001030],
[0x001032, 0x001037],
[0x001039, 0x00103A],
[0x00103D, 0x00103E],
[0x001058, 0x001059],
[0x00105E, 0x001060],
[0x001071, 0x001074],
[0x001085, 0x001086],
[0x00135D, 0x00135F],
[0x001712, 0x001714],
[0x001732, 0x001734],
[0x001752, 0x001753],
[0x001772, 0x001773],
[0x0017B4, 0x0017B5],
[0x0017B7, 0x0017BD],
[0x0017C9, 0x0017D3],
[0x00180B, 0x00180D],
[0x001885, 0x001886],
[0x001920, 0x001922],
[0x001927, 0x001928],
[0x001939, 0x00193B],
[0x001A17, 0x001A18],
[0x001A58, 0x001A5E],
[0x001A65, 0x001A6C],
[0x001A73, 0x001A7C],
[0x001AB0, 0x001ABD],
[0x001B00, 0x001B03],
[0x001B36, 0x001B3A],
[0x001B6B, 0x001B73],
[0x001B80, 0x001B81],
[0x001BA2, 0x001BA5],
[0x001BA8, 0x001BA9],
[0x001BAB, 0x001BAD],
[0x001BE8, 0x001BE9],
[0x001BEF, 0x001BF1],
[0x001C2C, 0x001C33],
[0x001C36, 0x001C37],
[0x001CD0, 0x001CD2],
[0x001CD4, 0x001CE0],
[0x001CE2, 0x001CE8],
[0x001CF8, 0x001CF9],
[0x001DC0, 0x001DF5],
[0x001DFB, 0x001DFF],
[0x0020D0, 0x0020DC],
[0x0020E5, 0x0020F0],
[0x002CEF, 0x002CF1],
[0x002DE0, 0x002DFF],
[0x00302A, 0x00302D],
[0x003099, 0x00309A],
[0x00A674, 0x00A67D],
[0x00A69E, 0x00A69F],
[0x00A6F0, 0x00A6F1],
[0x00A825, 0x00A826],
[0x00A8C4, 0x00A8C5],
[0x00A8E0, 0x00A8F1],
[0x00A926, 0x00A92D],
[0x00A947, 0x00A951],
[0x00A980, 0x00A982],
[0x00A9B6, 0x00A9B9],
[0x00AA29, 0x00AA2E],
[0x00AA31, 0x00AA32],
[0x00AA35, 0x00AA36],
[0x00AAB2, 0x00AAB4],
[0x00AAB7, 0x00AAB8],
[0x00AABE, 0x00AABF],
[0x00AAEC, 0x00AAED],
[0x00FE00, 0x00FE0F],
[0x00FE20, 0x00FE2F],
[0x010376, 0x01037A],
[0x010A01, 0x010A03],
[0x010A05, 0x010A06],
[0x010A0C, 0x010A0F],
[0x010A38, 0x010A3A],
[0x010AE5, 0x010AE6],
[0x011038, 0x011046],
[0x01107F, 0x011081],
[0x0110B3, 0x0110B6],
[0x0110B9, 0x0110BA],
[0x011100, 0x011102],
[0x011127, 0x01112B],
[0x01112D, 0x011134],
[0x011180, 0x011181],
[0x0111B6, 0x0111BE],
[0x0111CA, 0x0111CC],
[0x01122F, 0x011231],
[0x011236, 0x011237],
[0x0112E3, 0x0112EA],
[0x011300, 0x011301],
[0x011366, 0x01136C],
[0x011370, 0x011374],
[0x011438, 0x01143F],
[0x011442, 0x011444],
[0x0114B3, 0x0114B8],
[0x0114BF, 0x0114C0],
[0x0114C2, 0x0114C3],
[0x0115B2, 0x0115B5],
[0x0115BC, 0x0115BD],
[0x0115BF, 0x0115C0],
[0x0115DC, 0x0115DD],
[0x011633, 0x01163A],
[0x01163F, 0x011640],
[0x0116B0, 0x0116B5],
[0x01171D, 0x01171F],
[0x011722, 0x011725],
[0x011727, 0x01172B],
[0x011C30, 0x011C36],
[0x011C38, 0x011C3D],
[0x011C92, 0x011CA7],
[0x011CAA, 0x011CB0],
[0x011CB2, 0x011CB3],
[0x011CB5, 0x011CB6],
[0x016AF0, 0x016AF4],
[0x016B30, 0x016B36],
[0x016F8F, 0x016F92],
[0x01BC9D, 0x01BC9E],
[0x01D167, 0x01D169],
[0x01D17B, 0x01D182],
[0x01D185, 0x01D18B],
[0x01D1AA, 0x01D1AD],
[0x01D242, 0x01D244],
[0x01DA00, 0x01DA36],
[0x01DA3B, 0x01DA6C],
[0x01DA9B, 0x01DA9F],
[0x01DAA1, 0x01DAAF],
[0x01E000, 0x01E006],
[0x01E008, 0x01E018],
[0x01E01B, 0x01E021],
[0x01E023, 0x01E024],
[0x01E026, 0x01E02A],
[0x01E8D0, 0x01E8D6],
[0x01E944, 0x01E94A],
[0x0E0100, 0x0E01EF]
]
});
testPropertyEscapes(
/^\p{General_Category=Nonspacing_Mark}+$/u,
matchSymbols,
"\\p{General_Category=Nonspacing_Mark}"
);
testPropertyEscapes(
/^\p{General_Category=Mn}+$/u,
matchSymbols,
"\\p{General_Category=Mn}"
);
testPropertyEscapes(
/^\p{gc=Nonspacing_Mark}+$/u,
matchSymbols,
"\\p{gc=Nonspacing_Mark}"
);
testPropertyEscapes(
/^\p{gc=Mn}+$/u,
matchSymbols,
"\\p{gc=Mn}"
);
testPropertyEscapes(
/^\p{Nonspacing_Mark}+$/u,
matchSymbols,
"\\p{Nonspacing_Mark}"
);
testPropertyEscapes(
/^\p{Mn}+$/u,
matchSymbols,
"\\p{Mn}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0005BE,
0x0005C0,
0x0005C3,
0x0005C6,
0x0006E9,
0x00081A,
0x000824,
0x000828,
0x0008E2,
0x00093B,
0x000AC6,
0x000B40,
0x000C49,
0x000DD5,
0x000EBA,
0x000F36,
0x000F38,
0x000F7F,
0x000F85,
0x000F98,
0x001031,
0x001038,
0x0017B6,
0x001A57,
0x001A5F,
0x001A61,
0x001B35,
0x001B3B,
0x001BAA,
0x001BE7,
0x001BEE,
0x001CD3,
0x001CE1,
0x00AAB1,
0x00AAC0,
0x010A04,
0x01112C,
0x011235,
0x011445,
0x0114B9,
0x0114C1,
0x0115BE,
0x01163E,
0x0116AC,
0x0116B6,
0x011726,
0x011C37,
0x011C3E,
0x011CB1,
0x011CB4,
0x01DAA0,
0x01E007,
0x01E022,
0x01E025
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0002FF],
[0x000370, 0x000482],
[0x000488, 0x000590],
[0x0005C8, 0x00060F],
[0x00061B, 0x00064A],
[0x000660, 0x00066F],
[0x000671, 0x0006D5],
[0x0006DD, 0x0006DE],
[0x0006E5, 0x0006E6],
[0x0006EE, 0x000710],
[0x000712, 0x00072F],
[0x00074B, 0x0007A5],
[0x0007B1, 0x0007EA],
[0x0007F4, 0x000815],
[0x00082E, 0x000858],
[0x00085C, 0x0008D3],
[0x000903, 0x000939],
[0x00093D, 0x000940],
[0x000949, 0x00094C],
[0x00094E, 0x000950],
[0x000958, 0x000961],
[0x000964, 0x000980],
[0x000982, 0x0009BB],
[0x0009BD, 0x0009C0],
[0x0009C5, 0x0009CC],
[0x0009CE, 0x0009E1],
[0x0009E4, 0x000A00],
[0x000A03, 0x000A3B],
[0x000A3D, 0x000A40],
[0x000A43, 0x000A46],
[0x000A49, 0x000A4A],
[0x000A4E, 0x000A50],
[0x000A52, 0x000A6F],
[0x000A72, 0x000A74],
[0x000A76, 0x000A80],
[0x000A83, 0x000ABB],
[0x000ABD, 0x000AC0],
[0x000AC9, 0x000ACC],
[0x000ACE, 0x000AE1],
[0x000AE4, 0x000B00],
[0x000B02, 0x000B3B],
[0x000B3D, 0x000B3E],
[0x000B45, 0x000B4C],
[0x000B4E, 0x000B55],
[0x000B57, 0x000B61],
[0x000B64, 0x000B81],
[0x000B83, 0x000BBF],
[0x000BC1, 0x000BCC],
[0x000BCE, 0x000BFF],
[0x000C01, 0x000C3D],
[0x000C41, 0x000C45],
[0x000C4E, 0x000C54],
[0x000C57, 0x000C61],
[0x000C64, 0x000C80],
[0x000C82, 0x000CBB],
[0x000CBD, 0x000CBE],
[0x000CC0, 0x000CC5],
[0x000CC7, 0x000CCB],
[0x000CCE, 0x000CE1],
[0x000CE4, 0x000D00],
[0x000D02, 0x000D40],
[0x000D45, 0x000D4C],
[0x000D4E, 0x000D61],
[0x000D64, 0x000DC9],
[0x000DCB, 0x000DD1],
[0x000DD7, 0x000E30],
[0x000E32, 0x000E33],
[0x000E3B, 0x000E46],
[0x000E4F, 0x000EB0],
[0x000EB2, 0x000EB3],
[0x000EBD, 0x000EC7],
[0x000ECE, 0x000F17],
[0x000F1A, 0x000F34],
[0x000F3A, 0x000F70],
[0x000F88, 0x000F8C],
[0x000FBD, 0x000FC5],
[0x000FC7, 0x00102C],
[0x00103B, 0x00103C],
[0x00103F, 0x001057],
[0x00105A, 0x00105D],
[0x001061, 0x001070],
[0x001075, 0x001081],
[0x001083, 0x001084],
[0x001087, 0x00108C],
[0x00108E, 0x00109C],
[0x00109E, 0x00135C],
[0x001360, 0x001711],
[0x001715, 0x001731],
[0x001735, 0x001751],
[0x001754, 0x001771],
[0x001774, 0x0017B3],
[0x0017BE, 0x0017C5],
[0x0017C7, 0x0017C8],
[0x0017D4, 0x0017DC],
[0x0017DE, 0x00180A],
[0x00180E, 0x001884],
[0x001887, 0x0018A8],
[0x0018AA, 0x00191F],
[0x001923, 0x001926],
[0x001929, 0x001931],
[0x001933, 0x001938],
[0x00193C, 0x001A16],
[0x001A19, 0x001A1A],
[0x001A1C, 0x001A55],
[0x001A63, 0x001A64],
[0x001A6D, 0x001A72],
[0x001A7D, 0x001A7E],
[0x001A80, 0x001AAF],
[0x001ABE, 0x001AFF],
[0x001B04, 0x001B33],
[0x001B3D, 0x001B41],
[0x001B43, 0x001B6A],
[0x001B74, 0x001B7F],
[0x001B82, 0x001BA1],
[0x001BA6, 0x001BA7],
[0x001BAE, 0x001BE5],
[0x001BEA, 0x001BEC],
[0x001BF2, 0x001C2B],
[0x001C34, 0x001C35],
[0x001C38, 0x001CCF],
[0x001CE9, 0x001CEC],
[0x001CEE, 0x001CF3],
[0x001CF5, 0x001CF7],
[0x001CFA, 0x001DBF],
[0x001DF6, 0x001DFA],
[0x001E00, 0x0020CF],
[0x0020DD, 0x0020E0],
[0x0020E2, 0x0020E4],
[0x0020F1, 0x002CEE],
[0x002CF2, 0x002D7E],
[0x002D80, 0x002DDF],
[0x002E00, 0x003029],
[0x00302E, 0x003098],
[0x00309B, 0x00A66E],
[0x00A670, 0x00A673],
[0x00A67E, 0x00A69D],
[0x00A6A0, 0x00A6EF],
[0x00A6F2, 0x00A801],
[0x00A803, 0x00A805],
[0x00A807, 0x00A80A],
[0x00A80C, 0x00A824],
[0x00A827, 0x00A8C3],
[0x00A8C6, 0x00A8DF],
[0x00A8F2, 0x00A925],
[0x00A92E, 0x00A946],
[0x00A952, 0x00A97F],
[0x00A983, 0x00A9B2],
[0x00A9B4, 0x00A9B5],
[0x00A9BA, 0x00A9BB],
[0x00A9BD, 0x00A9E4],
[0x00A9E6, 0x00AA28],
[0x00AA2F, 0x00AA30],
[0x00AA33, 0x00AA34],
[0x00AA37, 0x00AA42],
[0x00AA44, 0x00AA4B],
[0x00AA4D, 0x00AA7B],
[0x00AA7D, 0x00AAAF],
[0x00AAB5, 0x00AAB6],
[0x00AAB9, 0x00AABD],
[0x00AAC2, 0x00AAEB],
[0x00AAEE, 0x00AAF5],
[0x00AAF7, 0x00ABE4],
[0x00ABE6, 0x00ABE7],
[0x00ABE9, 0x00ABEC],
[0x00ABEE, 0x00DBFF],
[0x00E000, 0x00FB1D],
[0x00FB1F, 0x00FDFF],
[0x00FE10, 0x00FE1F],
[0x00FE30, 0x0101FC],
[0x0101FE, 0x0102DF],
[0x0102E1, 0x010375],
[0x01037B, 0x010A00],
[0x010A07, 0x010A0B],
[0x010A10, 0x010A37],
[0x010A3B, 0x010A3E],
[0x010A40, 0x010AE4],
[0x010AE7, 0x011000],
[0x011002, 0x011037],
[0x011047, 0x01107E],
[0x011082, 0x0110B2],
[0x0110B7, 0x0110B8],
[0x0110BB, 0x0110FF],
[0x011103, 0x011126],
[0x011135, 0x011172],
[0x011174, 0x01117F],
[0x011182, 0x0111B5],
[0x0111BF, 0x0111C9],
[0x0111CD, 0x01122E],
[0x011232, 0x011233],
[0x011238, 0x01123D],
[0x01123F, 0x0112DE],
[0x0112E0, 0x0112E2],
[0x0112EB, 0x0112FF],
[0x011302, 0x01133B],
[0x01133D, 0x01133F],
[0x011341, 0x011365],
[0x01136D, 0x01136F],
[0x011375, 0x011437],
[0x011440, 0x011441],
[0x011447, 0x0114B2],
[0x0114BB, 0x0114BE],
[0x0114C4, 0x0115B1],
[0x0115B6, 0x0115BB],
[0x0115C1, 0x0115DB],
[0x0115DE, 0x011632],
[0x01163B, 0x01163C],
[0x011641, 0x0116AA],
[0x0116AE, 0x0116AF],
[0x0116B8, 0x01171C],
[0x011720, 0x011721],
[0x01172C, 0x011C2F],
[0x011C40, 0x011C91],
[0x011CA8, 0x011CA9],
[0x011CB7, 0x016AEF],
[0x016AF5, 0x016B2F],
[0x016B37, 0x016F8E],
[0x016F93, 0x01BC9C],
[0x01BC9F, 0x01D166],
[0x01D16A, 0x01D17A],
[0x01D183, 0x01D184],
[0x01D18C, 0x01D1A9],
[0x01D1AE, 0x01D241],
[0x01D245, 0x01D9FF],
[0x01DA37, 0x01DA3A],
[0x01DA6D, 0x01DA74],
[0x01DA76, 0x01DA83],
[0x01DA85, 0x01DA9A],
[0x01DAB0, 0x01DFFF],
[0x01E019, 0x01E01A],
[0x01E02B, 0x01E8CF],
[0x01E8D7, 0x01E943],
[0x01E94B, 0x0E00FF],
[0x0E01F0, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Nonspacing_Mark}+$/u,
nonMatchSymbols,
"\\P{General_Category=Nonspacing_Mark}"
);
testPropertyEscapes(
/^\P{General_Category=Mn}+$/u,
nonMatchSymbols,
"\\P{General_Category=Mn}"
);
testPropertyEscapes(
/^\P{gc=Nonspacing_Mark}+$/u,
nonMatchSymbols,
"\\P{gc=Nonspacing_Mark}"
);
testPropertyEscapes(
/^\P{gc=Mn}+$/u,
nonMatchSymbols,
"\\P{gc=Mn}"
);
testPropertyEscapes(
/^\P{Nonspacing_Mark}+$/u,
nonMatchSymbols,
"\\P{Nonspacing_Mark}"
);
testPropertyEscapes(
/^\P{Mn}+$/u,
nonMatchSymbols,
"\\P{Mn}"
);

View File

@ -0,0 +1,321 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Number`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000B9,
0x002070,
0x002CFD,
0x003007,
0x010341,
0x01034A
],
ranges: [
[0x000030, 0x000039],
[0x0000B2, 0x0000B3],
[0x0000BC, 0x0000BE],
[0x000660, 0x000669],
[0x0006F0, 0x0006F9],
[0x0007C0, 0x0007C9],
[0x000966, 0x00096F],
[0x0009E6, 0x0009EF],
[0x0009F4, 0x0009F9],
[0x000A66, 0x000A6F],
[0x000AE6, 0x000AEF],
[0x000B66, 0x000B6F],
[0x000B72, 0x000B77],
[0x000BE6, 0x000BF2],
[0x000C66, 0x000C6F],
[0x000C78, 0x000C7E],
[0x000CE6, 0x000CEF],
[0x000D58, 0x000D5E],
[0x000D66, 0x000D78],
[0x000DE6, 0x000DEF],
[0x000E50, 0x000E59],
[0x000ED0, 0x000ED9],
[0x000F20, 0x000F33],
[0x001040, 0x001049],
[0x001090, 0x001099],
[0x001369, 0x00137C],
[0x0016EE, 0x0016F0],
[0x0017E0, 0x0017E9],
[0x0017F0, 0x0017F9],
[0x001810, 0x001819],
[0x001946, 0x00194F],
[0x0019D0, 0x0019DA],
[0x001A80, 0x001A89],
[0x001A90, 0x001A99],
[0x001B50, 0x001B59],
[0x001BB0, 0x001BB9],
[0x001C40, 0x001C49],
[0x001C50, 0x001C59],
[0x002074, 0x002079],
[0x002080, 0x002089],
[0x002150, 0x002182],
[0x002185, 0x002189],
[0x002460, 0x00249B],
[0x0024EA, 0x0024FF],
[0x002776, 0x002793],
[0x003021, 0x003029],
[0x003038, 0x00303A],
[0x003192, 0x003195],
[0x003220, 0x003229],
[0x003248, 0x00324F],
[0x003251, 0x00325F],
[0x003280, 0x003289],
[0x0032B1, 0x0032BF],
[0x00A620, 0x00A629],
[0x00A6E6, 0x00A6EF],
[0x00A830, 0x00A835],
[0x00A8D0, 0x00A8D9],
[0x00A900, 0x00A909],
[0x00A9D0, 0x00A9D9],
[0x00A9F0, 0x00A9F9],
[0x00AA50, 0x00AA59],
[0x00ABF0, 0x00ABF9],
[0x00FF10, 0x00FF19],
[0x010107, 0x010133],
[0x010140, 0x010178],
[0x01018A, 0x01018B],
[0x0102E1, 0x0102FB],
[0x010320, 0x010323],
[0x0103D1, 0x0103D5],
[0x0104A0, 0x0104A9],
[0x010858, 0x01085F],
[0x010879, 0x01087F],
[0x0108A7, 0x0108AF],
[0x0108FB, 0x0108FF],
[0x010916, 0x01091B],
[0x0109BC, 0x0109BD],
[0x0109C0, 0x0109CF],
[0x0109D2, 0x0109FF],
[0x010A40, 0x010A47],
[0x010A7D, 0x010A7E],
[0x010A9D, 0x010A9F],
[0x010AEB, 0x010AEF],
[0x010B58, 0x010B5F],
[0x010B78, 0x010B7F],
[0x010BA9, 0x010BAF],
[0x010CFA, 0x010CFF],
[0x010E60, 0x010E7E],
[0x011052, 0x01106F],
[0x0110F0, 0x0110F9],
[0x011136, 0x01113F],
[0x0111D0, 0x0111D9],
[0x0111E1, 0x0111F4],
[0x0112F0, 0x0112F9],
[0x011450, 0x011459],
[0x0114D0, 0x0114D9],
[0x011650, 0x011659],
[0x0116C0, 0x0116C9],
[0x011730, 0x01173B],
[0x0118E0, 0x0118F2],
[0x011C50, 0x011C6C],
[0x012400, 0x01246E],
[0x016A60, 0x016A69],
[0x016B50, 0x016B59],
[0x016B5B, 0x016B61],
[0x01D360, 0x01D371],
[0x01D7CE, 0x01D7FF],
[0x01E8C7, 0x01E8CF],
[0x01E950, 0x01E959],
[0x01F100, 0x01F10C]
]
});
testPropertyEscapes(
/^\p{General_Category=Number}+$/u,
matchSymbols,
"\\p{General_Category=Number}"
);
testPropertyEscapes(
/^\p{General_Category=N}+$/u,
matchSymbols,
"\\p{General_Category=N}"
);
testPropertyEscapes(
/^\p{gc=Number}+$/u,
matchSymbols,
"\\p{gc=Number}"
);
testPropertyEscapes(
/^\p{gc=N}+$/u,
matchSymbols,
"\\p{gc=N}"
);
testPropertyEscapes(
/^\p{Number}+$/u,
matchSymbols,
"\\p{Number}"
);
testPropertyEscapes(
/^\p{N}+$/u,
matchSymbols,
"\\p{N}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x003250,
0x016B5A
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00002F],
[0x00003A, 0x0000B1],
[0x0000B4, 0x0000B8],
[0x0000BA, 0x0000BB],
[0x0000BF, 0x00065F],
[0x00066A, 0x0006EF],
[0x0006FA, 0x0007BF],
[0x0007CA, 0x000965],
[0x000970, 0x0009E5],
[0x0009F0, 0x0009F3],
[0x0009FA, 0x000A65],
[0x000A70, 0x000AE5],
[0x000AF0, 0x000B65],
[0x000B70, 0x000B71],
[0x000B78, 0x000BE5],
[0x000BF3, 0x000C65],
[0x000C70, 0x000C77],
[0x000C7F, 0x000CE5],
[0x000CF0, 0x000D57],
[0x000D5F, 0x000D65],
[0x000D79, 0x000DE5],
[0x000DF0, 0x000E4F],
[0x000E5A, 0x000ECF],
[0x000EDA, 0x000F1F],
[0x000F34, 0x00103F],
[0x00104A, 0x00108F],
[0x00109A, 0x001368],
[0x00137D, 0x0016ED],
[0x0016F1, 0x0017DF],
[0x0017EA, 0x0017EF],
[0x0017FA, 0x00180F],
[0x00181A, 0x001945],
[0x001950, 0x0019CF],
[0x0019DB, 0x001A7F],
[0x001A8A, 0x001A8F],
[0x001A9A, 0x001B4F],
[0x001B5A, 0x001BAF],
[0x001BBA, 0x001C3F],
[0x001C4A, 0x001C4F],
[0x001C5A, 0x00206F],
[0x002071, 0x002073],
[0x00207A, 0x00207F],
[0x00208A, 0x00214F],
[0x002183, 0x002184],
[0x00218A, 0x00245F],
[0x00249C, 0x0024E9],
[0x002500, 0x002775],
[0x002794, 0x002CFC],
[0x002CFE, 0x003006],
[0x003008, 0x003020],
[0x00302A, 0x003037],
[0x00303B, 0x003191],
[0x003196, 0x00321F],
[0x00322A, 0x003247],
[0x003260, 0x00327F],
[0x00328A, 0x0032B0],
[0x0032C0, 0x00A61F],
[0x00A62A, 0x00A6E5],
[0x00A6F0, 0x00A82F],
[0x00A836, 0x00A8CF],
[0x00A8DA, 0x00A8FF],
[0x00A90A, 0x00A9CF],
[0x00A9DA, 0x00A9EF],
[0x00A9FA, 0x00AA4F],
[0x00AA5A, 0x00ABEF],
[0x00ABFA, 0x00DBFF],
[0x00E000, 0x00FF0F],
[0x00FF1A, 0x010106],
[0x010134, 0x01013F],
[0x010179, 0x010189],
[0x01018C, 0x0102E0],
[0x0102FC, 0x01031F],
[0x010324, 0x010340],
[0x010342, 0x010349],
[0x01034B, 0x0103D0],
[0x0103D6, 0x01049F],
[0x0104AA, 0x010857],
[0x010860, 0x010878],
[0x010880, 0x0108A6],
[0x0108B0, 0x0108FA],
[0x010900, 0x010915],
[0x01091C, 0x0109BB],
[0x0109BE, 0x0109BF],
[0x0109D0, 0x0109D1],
[0x010A00, 0x010A3F],
[0x010A48, 0x010A7C],
[0x010A7F, 0x010A9C],
[0x010AA0, 0x010AEA],
[0x010AF0, 0x010B57],
[0x010B60, 0x010B77],
[0x010B80, 0x010BA8],
[0x010BB0, 0x010CF9],
[0x010D00, 0x010E5F],
[0x010E7F, 0x011051],
[0x011070, 0x0110EF],
[0x0110FA, 0x011135],
[0x011140, 0x0111CF],
[0x0111DA, 0x0111E0],
[0x0111F5, 0x0112EF],
[0x0112FA, 0x01144F],
[0x01145A, 0x0114CF],
[0x0114DA, 0x01164F],
[0x01165A, 0x0116BF],
[0x0116CA, 0x01172F],
[0x01173C, 0x0118DF],
[0x0118F3, 0x011C4F],
[0x011C6D, 0x0123FF],
[0x01246F, 0x016A5F],
[0x016A6A, 0x016B4F],
[0x016B62, 0x01D35F],
[0x01D372, 0x01D7CD],
[0x01D800, 0x01E8C6],
[0x01E8D0, 0x01E94F],
[0x01E95A, 0x01F0FF],
[0x01F10D, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Number}+$/u,
nonMatchSymbols,
"\\P{General_Category=Number}"
);
testPropertyEscapes(
/^\P{General_Category=N}+$/u,
nonMatchSymbols,
"\\P{General_Category=N}"
);
testPropertyEscapes(
/^\P{gc=Number}+$/u,
nonMatchSymbols,
"\\P{gc=Number}"
);
testPropertyEscapes(
/^\P{gc=N}+$/u,
nonMatchSymbols,
"\\P{gc=N}"
);
testPropertyEscapes(
/^\P{Number}+$/u,
nonMatchSymbols,
"\\P{Number}"
);
testPropertyEscapes(
/^\P{N}+$/u,
nonMatchSymbols,
"\\P{N}"
);

View File

@ -0,0 +1,240 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Open_Punctuation`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000028,
0x00005B,
0x00007B,
0x000F3A,
0x000F3C,
0x00169B,
0x00201A,
0x00201E,
0x002045,
0x00207D,
0x00208D,
0x002308,
0x00230A,
0x002329,
0x002768,
0x00276A,
0x00276C,
0x00276E,
0x002770,
0x002772,
0x002774,
0x0027C5,
0x0027E6,
0x0027E8,
0x0027EA,
0x0027EC,
0x0027EE,
0x002983,
0x002985,
0x002987,
0x002989,
0x00298B,
0x00298D,
0x00298F,
0x002991,
0x002993,
0x002995,
0x002997,
0x0029D8,
0x0029DA,
0x0029FC,
0x002E22,
0x002E24,
0x002E26,
0x002E28,
0x002E42,
0x003008,
0x00300A,
0x00300C,
0x00300E,
0x003010,
0x003014,
0x003016,
0x003018,
0x00301A,
0x00301D,
0x00FD3F,
0x00FE17,
0x00FE35,
0x00FE37,
0x00FE39,
0x00FE3B,
0x00FE3D,
0x00FE3F,
0x00FE41,
0x00FE43,
0x00FE47,
0x00FE59,
0x00FE5B,
0x00FE5D,
0x00FF08,
0x00FF3B,
0x00FF5B,
0x00FF5F,
0x00FF62
],
ranges: []
});
testPropertyEscapes(
/^\p{General_Category=Open_Punctuation}+$/u,
matchSymbols,
"\\p{General_Category=Open_Punctuation}"
);
testPropertyEscapes(
/^\p{General_Category=Ps}+$/u,
matchSymbols,
"\\p{General_Category=Ps}"
);
testPropertyEscapes(
/^\p{gc=Open_Punctuation}+$/u,
matchSymbols,
"\\p{gc=Open_Punctuation}"
);
testPropertyEscapes(
/^\p{gc=Ps}+$/u,
matchSymbols,
"\\p{gc=Ps}"
);
testPropertyEscapes(
/^\p{Open_Punctuation}+$/u,
matchSymbols,
"\\p{Open_Punctuation}"
);
testPropertyEscapes(
/^\p{Ps}+$/u,
matchSymbols,
"\\p{Ps}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x000F3B,
0x002309,
0x002769,
0x00276B,
0x00276D,
0x00276F,
0x002771,
0x002773,
0x0027E7,
0x0027E9,
0x0027EB,
0x0027ED,
0x002984,
0x002986,
0x002988,
0x00298A,
0x00298C,
0x00298E,
0x002990,
0x002992,
0x002994,
0x002996,
0x0029D9,
0x002E23,
0x002E25,
0x002E27,
0x003009,
0x00300B,
0x00300D,
0x00300F,
0x003015,
0x003017,
0x003019,
0x00FE36,
0x00FE38,
0x00FE3A,
0x00FE3C,
0x00FE3E,
0x00FE40,
0x00FE42,
0x00FE5A,
0x00FE5C
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000027],
[0x000029, 0x00005A],
[0x00005C, 0x00007A],
[0x00007C, 0x000F39],
[0x000F3D, 0x00169A],
[0x00169C, 0x002019],
[0x00201B, 0x00201D],
[0x00201F, 0x002044],
[0x002046, 0x00207C],
[0x00207E, 0x00208C],
[0x00208E, 0x002307],
[0x00230B, 0x002328],
[0x00232A, 0x002767],
[0x002775, 0x0027C4],
[0x0027C6, 0x0027E5],
[0x0027EF, 0x002982],
[0x002998, 0x0029D7],
[0x0029DB, 0x0029FB],
[0x0029FD, 0x002E21],
[0x002E29, 0x002E41],
[0x002E43, 0x003007],
[0x003011, 0x003013],
[0x00301B, 0x00301C],
[0x00301E, 0x00DBFF],
[0x00E000, 0x00FD3E],
[0x00FD40, 0x00FE16],
[0x00FE18, 0x00FE34],
[0x00FE44, 0x00FE46],
[0x00FE48, 0x00FE58],
[0x00FE5E, 0x00FF07],
[0x00FF09, 0x00FF3A],
[0x00FF3C, 0x00FF5A],
[0x00FF5C, 0x00FF5E],
[0x00FF60, 0x00FF61],
[0x00FF63, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Open_Punctuation}+$/u,
nonMatchSymbols,
"\\P{General_Category=Open_Punctuation}"
);
testPropertyEscapes(
/^\P{General_Category=Ps}+$/u,
nonMatchSymbols,
"\\P{General_Category=Ps}"
);
testPropertyEscapes(
/^\P{gc=Open_Punctuation}+$/u,
nonMatchSymbols,
"\\P{gc=Open_Punctuation}"
);
testPropertyEscapes(
/^\P{gc=Ps}+$/u,
nonMatchSymbols,
"\\P{gc=Ps}"
);
testPropertyEscapes(
/^\P{Open_Punctuation}+$/u,
nonMatchSymbols,
"\\P{Open_Punctuation}"
);
testPropertyEscapes(
/^\P{Ps}+$/u,
nonMatchSymbols,
"\\P{Ps}"
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,981 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Other_Letter`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000AA,
0x0000BA,
0x0001BB,
0x000294,
0x0006D5,
0x0006FF,
0x000710,
0x0007B1,
0x00093D,
0x000950,
0x0009B2,
0x0009BD,
0x0009CE,
0x000A5E,
0x000ABD,
0x000AD0,
0x000AF9,
0x000B3D,
0x000B71,
0x000B83,
0x000B9C,
0x000BD0,
0x000C3D,
0x000C80,
0x000CBD,
0x000CDE,
0x000D3D,
0x000D4E,
0x000DBD,
0x000E84,
0x000E8A,
0x000E8D,
0x000EA5,
0x000EA7,
0x000EBD,
0x000F00,
0x00103F,
0x001061,
0x00108E,
0x001258,
0x0012C0,
0x0017DC,
0x0018AA,
0x003006,
0x00303C,
0x00309F,
0x0030FF,
0x00A66E,
0x00A78F,
0x00A7F7,
0x00A8FB,
0x00A8FD,
0x00AA7A,
0x00AAB1,
0x00AAC0,
0x00AAC2,
0x00AAF2,
0x00FB1D,
0x00FB3E,
0x010808,
0x01083C,
0x010A00,
0x011176,
0x0111DA,
0x0111DC,
0x011288,
0x01133D,
0x011350,
0x0114C7,
0x011644,
0x0118FF,
0x011C40,
0x016F50,
0x01EE24,
0x01EE27,
0x01EE39,
0x01EE3B,
0x01EE42,
0x01EE47,
0x01EE49,
0x01EE4B,
0x01EE54,
0x01EE57,
0x01EE59,
0x01EE5B,
0x01EE5D,
0x01EE5F,
0x01EE64,
0x01EE7E
],
ranges: [
[0x0001C0, 0x0001C3],
[0x0005D0, 0x0005EA],
[0x0005F0, 0x0005F2],
[0x000620, 0x00063F],
[0x000641, 0x00064A],
[0x00066E, 0x00066F],
[0x000671, 0x0006D3],
[0x0006EE, 0x0006EF],
[0x0006FA, 0x0006FC],
[0x000712, 0x00072F],
[0x00074D, 0x0007A5],
[0x0007CA, 0x0007EA],
[0x000800, 0x000815],
[0x000840, 0x000858],
[0x0008A0, 0x0008B4],
[0x0008B6, 0x0008BD],
[0x000904, 0x000939],
[0x000958, 0x000961],
[0x000972, 0x000980],
[0x000985, 0x00098C],
[0x00098F, 0x000990],
[0x000993, 0x0009A8],
[0x0009AA, 0x0009B0],
[0x0009B6, 0x0009B9],
[0x0009DC, 0x0009DD],
[0x0009DF, 0x0009E1],
[0x0009F0, 0x0009F1],
[0x000A05, 0x000A0A],
[0x000A0F, 0x000A10],
[0x000A13, 0x000A28],
[0x000A2A, 0x000A30],
[0x000A32, 0x000A33],
[0x000A35, 0x000A36],
[0x000A38, 0x000A39],
[0x000A59, 0x000A5C],
[0x000A72, 0x000A74],
[0x000A85, 0x000A8D],
[0x000A8F, 0x000A91],
[0x000A93, 0x000AA8],
[0x000AAA, 0x000AB0],
[0x000AB2, 0x000AB3],
[0x000AB5, 0x000AB9],
[0x000AE0, 0x000AE1],
[0x000B05, 0x000B0C],
[0x000B0F, 0x000B10],
[0x000B13, 0x000B28],
[0x000B2A, 0x000B30],
[0x000B32, 0x000B33],
[0x000B35, 0x000B39],
[0x000B5C, 0x000B5D],
[0x000B5F, 0x000B61],
[0x000B85, 0x000B8A],
[0x000B8E, 0x000B90],
[0x000B92, 0x000B95],
[0x000B99, 0x000B9A],
[0x000B9E, 0x000B9F],
[0x000BA3, 0x000BA4],
[0x000BA8, 0x000BAA],
[0x000BAE, 0x000BB9],
[0x000C05, 0x000C0C],
[0x000C0E, 0x000C10],
[0x000C12, 0x000C28],
[0x000C2A, 0x000C39],
[0x000C58, 0x000C5A],
[0x000C60, 0x000C61],
[0x000C85, 0x000C8C],
[0x000C8E, 0x000C90],
[0x000C92, 0x000CA8],
[0x000CAA, 0x000CB3],
[0x000CB5, 0x000CB9],
[0x000CE0, 0x000CE1],
[0x000CF1, 0x000CF2],
[0x000D05, 0x000D0C],
[0x000D0E, 0x000D10],
[0x000D12, 0x000D3A],
[0x000D54, 0x000D56],
[0x000D5F, 0x000D61],
[0x000D7A, 0x000D7F],
[0x000D85, 0x000D96],
[0x000D9A, 0x000DB1],
[0x000DB3, 0x000DBB],
[0x000DC0, 0x000DC6],
[0x000E01, 0x000E30],
[0x000E32, 0x000E33],
[0x000E40, 0x000E45],
[0x000E81, 0x000E82],
[0x000E87, 0x000E88],
[0x000E94, 0x000E97],
[0x000E99, 0x000E9F],
[0x000EA1, 0x000EA3],
[0x000EAA, 0x000EAB],
[0x000EAD, 0x000EB0],
[0x000EB2, 0x000EB3],
[0x000EC0, 0x000EC4],
[0x000EDC, 0x000EDF],
[0x000F40, 0x000F47],
[0x000F49, 0x000F6C],
[0x000F88, 0x000F8C],
[0x001000, 0x00102A],
[0x001050, 0x001055],
[0x00105A, 0x00105D],
[0x001065, 0x001066],
[0x00106E, 0x001070],
[0x001075, 0x001081],
[0x0010D0, 0x0010FA],
[0x0010FD, 0x001248],
[0x00124A, 0x00124D],
[0x001250, 0x001256],
[0x00125A, 0x00125D],
[0x001260, 0x001288],
[0x00128A, 0x00128D],
[0x001290, 0x0012B0],
[0x0012B2, 0x0012B5],
[0x0012B8, 0x0012BE],
[0x0012C2, 0x0012C5],
[0x0012C8, 0x0012D6],
[0x0012D8, 0x001310],
[0x001312, 0x001315],
[0x001318, 0x00135A],
[0x001380, 0x00138F],
[0x001401, 0x00166C],
[0x00166F, 0x00167F],
[0x001681, 0x00169A],
[0x0016A0, 0x0016EA],
[0x0016F1, 0x0016F8],
[0x001700, 0x00170C],
[0x00170E, 0x001711],
[0x001720, 0x001731],
[0x001740, 0x001751],
[0x001760, 0x00176C],
[0x00176E, 0x001770],
[0x001780, 0x0017B3],
[0x001820, 0x001842],
[0x001844, 0x001877],
[0x001880, 0x001884],
[0x001887, 0x0018A8],
[0x0018B0, 0x0018F5],
[0x001900, 0x00191E],
[0x001950, 0x00196D],
[0x001970, 0x001974],
[0x001980, 0x0019AB],
[0x0019B0, 0x0019C9],
[0x001A00, 0x001A16],
[0x001A20, 0x001A54],
[0x001B05, 0x001B33],
[0x001B45, 0x001B4B],
[0x001B83, 0x001BA0],
[0x001BAE, 0x001BAF],
[0x001BBA, 0x001BE5],
[0x001C00, 0x001C23],
[0x001C4D, 0x001C4F],
[0x001C5A, 0x001C77],
[0x001CE9, 0x001CEC],
[0x001CEE, 0x001CF1],
[0x001CF5, 0x001CF6],
[0x002135, 0x002138],
[0x002D30, 0x002D67],
[0x002D80, 0x002D96],
[0x002DA0, 0x002DA6],
[0x002DA8, 0x002DAE],
[0x002DB0, 0x002DB6],
[0x002DB8, 0x002DBE],
[0x002DC0, 0x002DC6],
[0x002DC8, 0x002DCE],
[0x002DD0, 0x002DD6],
[0x002DD8, 0x002DDE],
[0x003041, 0x003096],
[0x0030A1, 0x0030FA],
[0x003105, 0x00312D],
[0x003131, 0x00318E],
[0x0031A0, 0x0031BA],
[0x0031F0, 0x0031FF],
[0x003400, 0x004DB5],
[0x004E00, 0x009FD5],
[0x00A000, 0x00A014],
[0x00A016, 0x00A48C],
[0x00A4D0, 0x00A4F7],
[0x00A500, 0x00A60B],
[0x00A610, 0x00A61F],
[0x00A62A, 0x00A62B],
[0x00A6A0, 0x00A6E5],
[0x00A7FB, 0x00A801],
[0x00A803, 0x00A805],
[0x00A807, 0x00A80A],
[0x00A80C, 0x00A822],
[0x00A840, 0x00A873],
[0x00A882, 0x00A8B3],
[0x00A8F2, 0x00A8F7],
[0x00A90A, 0x00A925],
[0x00A930, 0x00A946],
[0x00A960, 0x00A97C],
[0x00A984, 0x00A9B2],
[0x00A9E0, 0x00A9E4],
[0x00A9E7, 0x00A9EF],
[0x00A9FA, 0x00A9FE],
[0x00AA00, 0x00AA28],
[0x00AA40, 0x00AA42],
[0x00AA44, 0x00AA4B],
[0x00AA60, 0x00AA6F],
[0x00AA71, 0x00AA76],
[0x00AA7E, 0x00AAAF],
[0x00AAB5, 0x00AAB6],
[0x00AAB9, 0x00AABD],
[0x00AADB, 0x00AADC],
[0x00AAE0, 0x00AAEA],
[0x00AB01, 0x00AB06],
[0x00AB09, 0x00AB0E],
[0x00AB11, 0x00AB16],
[0x00AB20, 0x00AB26],
[0x00AB28, 0x00AB2E],
[0x00ABC0, 0x00ABE2],
[0x00AC00, 0x00D7A3],
[0x00D7B0, 0x00D7C6],
[0x00D7CB, 0x00D7FB],
[0x00F900, 0x00FA6D],
[0x00FA70, 0x00FAD9],
[0x00FB1F, 0x00FB28],
[0x00FB2A, 0x00FB36],
[0x00FB38, 0x00FB3C],
[0x00FB40, 0x00FB41],
[0x00FB43, 0x00FB44],
[0x00FB46, 0x00FBB1],
[0x00FBD3, 0x00FD3D],
[0x00FD50, 0x00FD8F],
[0x00FD92, 0x00FDC7],
[0x00FDF0, 0x00FDFB],
[0x00FE70, 0x00FE74],
[0x00FE76, 0x00FEFC],
[0x00FF66, 0x00FF6F],
[0x00FF71, 0x00FF9D],
[0x00FFA0, 0x00FFBE],
[0x00FFC2, 0x00FFC7],
[0x00FFCA, 0x00FFCF],
[0x00FFD2, 0x00FFD7],
[0x00FFDA, 0x00FFDC],
[0x010000, 0x01000B],
[0x01000D, 0x010026],
[0x010028, 0x01003A],
[0x01003C, 0x01003D],
[0x01003F, 0x01004D],
[0x010050, 0x01005D],
[0x010080, 0x0100FA],
[0x010280, 0x01029C],
[0x0102A0, 0x0102D0],
[0x010300, 0x01031F],
[0x010330, 0x010340],
[0x010342, 0x010349],
[0x010350, 0x010375],
[0x010380, 0x01039D],
[0x0103A0, 0x0103C3],
[0x0103C8, 0x0103CF],
[0x010450, 0x01049D],
[0x010500, 0x010527],
[0x010530, 0x010563],
[0x010600, 0x010736],
[0x010740, 0x010755],
[0x010760, 0x010767],
[0x010800, 0x010805],
[0x01080A, 0x010835],
[0x010837, 0x010838],
[0x01083F, 0x010855],
[0x010860, 0x010876],
[0x010880, 0x01089E],
[0x0108E0, 0x0108F2],
[0x0108F4, 0x0108F5],
[0x010900, 0x010915],
[0x010920, 0x010939],
[0x010980, 0x0109B7],
[0x0109BE, 0x0109BF],
[0x010A10, 0x010A13],
[0x010A15, 0x010A17],
[0x010A19, 0x010A33],
[0x010A60, 0x010A7C],
[0x010A80, 0x010A9C],
[0x010AC0, 0x010AC7],
[0x010AC9, 0x010AE4],
[0x010B00, 0x010B35],
[0x010B40, 0x010B55],
[0x010B60, 0x010B72],
[0x010B80, 0x010B91],
[0x010C00, 0x010C48],
[0x011003, 0x011037],
[0x011083, 0x0110AF],
[0x0110D0, 0x0110E8],
[0x011103, 0x011126],
[0x011150, 0x011172],
[0x011183, 0x0111B2],
[0x0111C1, 0x0111C4],
[0x011200, 0x011211],
[0x011213, 0x01122B],
[0x011280, 0x011286],
[0x01128A, 0x01128D],
[0x01128F, 0x01129D],
[0x01129F, 0x0112A8],
[0x0112B0, 0x0112DE],
[0x011305, 0x01130C],
[0x01130F, 0x011310],
[0x011313, 0x011328],
[0x01132A, 0x011330],
[0x011332, 0x011333],
[0x011335, 0x011339],
[0x01135D, 0x011361],
[0x011400, 0x011434],
[0x011447, 0x01144A],
[0x011480, 0x0114AF],
[0x0114C4, 0x0114C5],
[0x011580, 0x0115AE],
[0x0115D8, 0x0115DB],
[0x011600, 0x01162F],
[0x011680, 0x0116AA],
[0x011700, 0x011719],
[0x011AC0, 0x011AF8],
[0x011C00, 0x011C08],
[0x011C0A, 0x011C2E],
[0x011C72, 0x011C8F],
[0x012000, 0x012399],
[0x012480, 0x012543],
[0x013000, 0x01342E],
[0x014400, 0x014646],
[0x016800, 0x016A38],
[0x016A40, 0x016A5E],
[0x016AD0, 0x016AED],
[0x016B00, 0x016B2F],
[0x016B63, 0x016B77],
[0x016B7D, 0x016B8F],
[0x016F00, 0x016F44],
[0x017000, 0x0187EC],
[0x018800, 0x018AF2],
[0x01B000, 0x01B001],
[0x01BC00, 0x01BC6A],
[0x01BC70, 0x01BC7C],
[0x01BC80, 0x01BC88],
[0x01BC90, 0x01BC99],
[0x01E800, 0x01E8C4],
[0x01EE00, 0x01EE03],
[0x01EE05, 0x01EE1F],
[0x01EE21, 0x01EE22],
[0x01EE29, 0x01EE32],
[0x01EE34, 0x01EE37],
[0x01EE4D, 0x01EE4F],
[0x01EE51, 0x01EE52],
[0x01EE61, 0x01EE62],
[0x01EE67, 0x01EE6A],
[0x01EE6C, 0x01EE72],
[0x01EE74, 0x01EE77],
[0x01EE79, 0x01EE7C],
[0x01EE80, 0x01EE89],
[0x01EE8B, 0x01EE9B],
[0x01EEA1, 0x01EEA3],
[0x01EEA5, 0x01EEA9],
[0x01EEAB, 0x01EEBB],
[0x020000, 0x02A6D6],
[0x02A700, 0x02B734],
[0x02B740, 0x02B81D],
[0x02B820, 0x02CEA1],
[0x02F800, 0x02FA1D]
]
});
testPropertyEscapes(
/^\p{General_Category=Other_Letter}+$/u,
matchSymbols,
"\\p{General_Category=Other_Letter}"
);
testPropertyEscapes(
/^\p{General_Category=Lo}+$/u,
matchSymbols,
"\\p{General_Category=Lo}"
);
testPropertyEscapes(
/^\p{gc=Other_Letter}+$/u,
matchSymbols,
"\\p{gc=Other_Letter}"
);
testPropertyEscapes(
/^\p{gc=Lo}+$/u,
matchSymbols,
"\\p{gc=Lo}"
);
testPropertyEscapes(
/^\p{Other_Letter}+$/u,
matchSymbols,
"\\p{Other_Letter}"
);
testPropertyEscapes(
/^\p{Lo}+$/u,
matchSymbols,
"\\p{Lo}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x000640,
0x000670,
0x0006D4,
0x000711,
0x0008B5,
0x0009A9,
0x0009B1,
0x0009DE,
0x000A29,
0x000A31,
0x000A34,
0x000A37,
0x000A5D,
0x000A8E,
0x000A92,
0x000AA9,
0x000AB1,
0x000AB4,
0x000B29,
0x000B31,
0x000B34,
0x000B5E,
0x000B84,
0x000B91,
0x000B9B,
0x000B9D,
0x000C0D,
0x000C11,
0x000C29,
0x000C8D,
0x000C91,
0x000CA9,
0x000CB4,
0x000CDF,
0x000D0D,
0x000D11,
0x000DB2,
0x000DBC,
0x000E31,
0x000E83,
0x000E89,
0x000E98,
0x000EA0,
0x000EA4,
0x000EA6,
0x000EAC,
0x000EB1,
0x000F48,
0x001249,
0x001257,
0x001259,
0x001289,
0x0012B1,
0x0012BF,
0x0012C1,
0x0012D7,
0x001311,
0x001680,
0x00170D,
0x00176D,
0x001843,
0x0018A9,
0x001CED,
0x002DA7,
0x002DAF,
0x002DB7,
0x002DBF,
0x002DC7,
0x002DCF,
0x002DD7,
0x0030A0,
0x00A015,
0x00A802,
0x00A806,
0x00A80B,
0x00A8FC,
0x00A9FF,
0x00AA43,
0x00AA70,
0x00AAB0,
0x00AAC1,
0x00AB27,
0x00FB1E,
0x00FB29,
0x00FB37,
0x00FB3D,
0x00FB3F,
0x00FB42,
0x00FB45,
0x00FE75,
0x00FF70,
0x01000C,
0x010027,
0x01003B,
0x01003E,
0x010341,
0x010809,
0x010836,
0x0108F3,
0x010A14,
0x010A18,
0x010AC8,
0x0111DB,
0x011212,
0x011287,
0x011289,
0x01128E,
0x01129E,
0x011329,
0x011331,
0x011334,
0x0114C6,
0x011C09,
0x01EE04,
0x01EE20,
0x01EE23,
0x01EE28,
0x01EE33,
0x01EE38,
0x01EE3A,
0x01EE48,
0x01EE4A,
0x01EE4C,
0x01EE50,
0x01EE53,
0x01EE58,
0x01EE5A,
0x01EE5C,
0x01EE5E,
0x01EE60,
0x01EE63,
0x01EE6B,
0x01EE73,
0x01EE78,
0x01EE7D,
0x01EE7F,
0x01EE8A,
0x01EEA4,
0x01EEAA
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0000A9],
[0x0000AB, 0x0000B9],
[0x0000BB, 0x0001BA],
[0x0001BC, 0x0001BF],
[0x0001C4, 0x000293],
[0x000295, 0x0005CF],
[0x0005EB, 0x0005EF],
[0x0005F3, 0x00061F],
[0x00064B, 0x00066D],
[0x0006D6, 0x0006ED],
[0x0006F0, 0x0006F9],
[0x0006FD, 0x0006FE],
[0x000700, 0x00070F],
[0x000730, 0x00074C],
[0x0007A6, 0x0007B0],
[0x0007B2, 0x0007C9],
[0x0007EB, 0x0007FF],
[0x000816, 0x00083F],
[0x000859, 0x00089F],
[0x0008BE, 0x000903],
[0x00093A, 0x00093C],
[0x00093E, 0x00094F],
[0x000951, 0x000957],
[0x000962, 0x000971],
[0x000981, 0x000984],
[0x00098D, 0x00098E],
[0x000991, 0x000992],
[0x0009B3, 0x0009B5],
[0x0009BA, 0x0009BC],
[0x0009BE, 0x0009CD],
[0x0009CF, 0x0009DB],
[0x0009E2, 0x0009EF],
[0x0009F2, 0x000A04],
[0x000A0B, 0x000A0E],
[0x000A11, 0x000A12],
[0x000A3A, 0x000A58],
[0x000A5F, 0x000A71],
[0x000A75, 0x000A84],
[0x000ABA, 0x000ABC],
[0x000ABE, 0x000ACF],
[0x000AD1, 0x000ADF],
[0x000AE2, 0x000AF8],
[0x000AFA, 0x000B04],
[0x000B0D, 0x000B0E],
[0x000B11, 0x000B12],
[0x000B3A, 0x000B3C],
[0x000B3E, 0x000B5B],
[0x000B62, 0x000B70],
[0x000B72, 0x000B82],
[0x000B8B, 0x000B8D],
[0x000B96, 0x000B98],
[0x000BA0, 0x000BA2],
[0x000BA5, 0x000BA7],
[0x000BAB, 0x000BAD],
[0x000BBA, 0x000BCF],
[0x000BD1, 0x000C04],
[0x000C3A, 0x000C3C],
[0x000C3E, 0x000C57],
[0x000C5B, 0x000C5F],
[0x000C62, 0x000C7F],
[0x000C81, 0x000C84],
[0x000CBA, 0x000CBC],
[0x000CBE, 0x000CDD],
[0x000CE2, 0x000CF0],
[0x000CF3, 0x000D04],
[0x000D3B, 0x000D3C],
[0x000D3E, 0x000D4D],
[0x000D4F, 0x000D53],
[0x000D57, 0x000D5E],
[0x000D62, 0x000D79],
[0x000D80, 0x000D84],
[0x000D97, 0x000D99],
[0x000DBE, 0x000DBF],
[0x000DC7, 0x000E00],
[0x000E34, 0x000E3F],
[0x000E46, 0x000E80],
[0x000E85, 0x000E86],
[0x000E8B, 0x000E8C],
[0x000E8E, 0x000E93],
[0x000EA8, 0x000EA9],
[0x000EB4, 0x000EBC],
[0x000EBE, 0x000EBF],
[0x000EC5, 0x000EDB],
[0x000EE0, 0x000EFF],
[0x000F01, 0x000F3F],
[0x000F6D, 0x000F87],
[0x000F8D, 0x000FFF],
[0x00102B, 0x00103E],
[0x001040, 0x00104F],
[0x001056, 0x001059],
[0x00105E, 0x001060],
[0x001062, 0x001064],
[0x001067, 0x00106D],
[0x001071, 0x001074],
[0x001082, 0x00108D],
[0x00108F, 0x0010CF],
[0x0010FB, 0x0010FC],
[0x00124E, 0x00124F],
[0x00125E, 0x00125F],
[0x00128E, 0x00128F],
[0x0012B6, 0x0012B7],
[0x0012C6, 0x0012C7],
[0x001316, 0x001317],
[0x00135B, 0x00137F],
[0x001390, 0x001400],
[0x00166D, 0x00166E],
[0x00169B, 0x00169F],
[0x0016EB, 0x0016F0],
[0x0016F9, 0x0016FF],
[0x001712, 0x00171F],
[0x001732, 0x00173F],
[0x001752, 0x00175F],
[0x001771, 0x00177F],
[0x0017B4, 0x0017DB],
[0x0017DD, 0x00181F],
[0x001878, 0x00187F],
[0x001885, 0x001886],
[0x0018AB, 0x0018AF],
[0x0018F6, 0x0018FF],
[0x00191F, 0x00194F],
[0x00196E, 0x00196F],
[0x001975, 0x00197F],
[0x0019AC, 0x0019AF],
[0x0019CA, 0x0019FF],
[0x001A17, 0x001A1F],
[0x001A55, 0x001B04],
[0x001B34, 0x001B44],
[0x001B4C, 0x001B82],
[0x001BA1, 0x001BAD],
[0x001BB0, 0x001BB9],
[0x001BE6, 0x001BFF],
[0x001C24, 0x001C4C],
[0x001C50, 0x001C59],
[0x001C78, 0x001CE8],
[0x001CF2, 0x001CF4],
[0x001CF7, 0x002134],
[0x002139, 0x002D2F],
[0x002D68, 0x002D7F],
[0x002D97, 0x002D9F],
[0x002DDF, 0x003005],
[0x003007, 0x00303B],
[0x00303D, 0x003040],
[0x003097, 0x00309E],
[0x0030FB, 0x0030FE],
[0x003100, 0x003104],
[0x00312E, 0x003130],
[0x00318F, 0x00319F],
[0x0031BB, 0x0031EF],
[0x003200, 0x0033FF],
[0x004DB6, 0x004DFF],
[0x009FD6, 0x009FFF],
[0x00A48D, 0x00A4CF],
[0x00A4F8, 0x00A4FF],
[0x00A60C, 0x00A60F],
[0x00A620, 0x00A629],
[0x00A62C, 0x00A66D],
[0x00A66F, 0x00A69F],
[0x00A6E6, 0x00A78E],
[0x00A790, 0x00A7F6],
[0x00A7F8, 0x00A7FA],
[0x00A823, 0x00A83F],
[0x00A874, 0x00A881],
[0x00A8B4, 0x00A8F1],
[0x00A8F8, 0x00A8FA],
[0x00A8FE, 0x00A909],
[0x00A926, 0x00A92F],
[0x00A947, 0x00A95F],
[0x00A97D, 0x00A983],
[0x00A9B3, 0x00A9DF],
[0x00A9E5, 0x00A9E6],
[0x00A9F0, 0x00A9F9],
[0x00AA29, 0x00AA3F],
[0x00AA4C, 0x00AA5F],
[0x00AA77, 0x00AA79],
[0x00AA7B, 0x00AA7D],
[0x00AAB2, 0x00AAB4],
[0x00AAB7, 0x00AAB8],
[0x00AABE, 0x00AABF],
[0x00AAC3, 0x00AADA],
[0x00AADD, 0x00AADF],
[0x00AAEB, 0x00AAF1],
[0x00AAF3, 0x00AB00],
[0x00AB07, 0x00AB08],
[0x00AB0F, 0x00AB10],
[0x00AB17, 0x00AB1F],
[0x00AB2F, 0x00ABBF],
[0x00ABE3, 0x00ABFF],
[0x00D7A4, 0x00D7AF],
[0x00D7C7, 0x00D7CA],
[0x00D7FC, 0x00DBFF],
[0x00E000, 0x00F8FF],
[0x00FA6E, 0x00FA6F],
[0x00FADA, 0x00FB1C],
[0x00FBB2, 0x00FBD2],
[0x00FD3E, 0x00FD4F],
[0x00FD90, 0x00FD91],
[0x00FDC8, 0x00FDEF],
[0x00FDFC, 0x00FE6F],
[0x00FEFD, 0x00FF65],
[0x00FF9E, 0x00FF9F],
[0x00FFBF, 0x00FFC1],
[0x00FFC8, 0x00FFC9],
[0x00FFD0, 0x00FFD1],
[0x00FFD8, 0x00FFD9],
[0x00FFDD, 0x00FFFF],
[0x01004E, 0x01004F],
[0x01005E, 0x01007F],
[0x0100FB, 0x01027F],
[0x01029D, 0x01029F],
[0x0102D1, 0x0102FF],
[0x010320, 0x01032F],
[0x01034A, 0x01034F],
[0x010376, 0x01037F],
[0x01039E, 0x01039F],
[0x0103C4, 0x0103C7],
[0x0103D0, 0x01044F],
[0x01049E, 0x0104FF],
[0x010528, 0x01052F],
[0x010564, 0x0105FF],
[0x010737, 0x01073F],
[0x010756, 0x01075F],
[0x010768, 0x0107FF],
[0x010806, 0x010807],
[0x010839, 0x01083B],
[0x01083D, 0x01083E],
[0x010856, 0x01085F],
[0x010877, 0x01087F],
[0x01089F, 0x0108DF],
[0x0108F6, 0x0108FF],
[0x010916, 0x01091F],
[0x01093A, 0x01097F],
[0x0109B8, 0x0109BD],
[0x0109C0, 0x0109FF],
[0x010A01, 0x010A0F],
[0x010A34, 0x010A5F],
[0x010A7D, 0x010A7F],
[0x010A9D, 0x010ABF],
[0x010AE5, 0x010AFF],
[0x010B36, 0x010B3F],
[0x010B56, 0x010B5F],
[0x010B73, 0x010B7F],
[0x010B92, 0x010BFF],
[0x010C49, 0x011002],
[0x011038, 0x011082],
[0x0110B0, 0x0110CF],
[0x0110E9, 0x011102],
[0x011127, 0x01114F],
[0x011173, 0x011175],
[0x011177, 0x011182],
[0x0111B3, 0x0111C0],
[0x0111C5, 0x0111D9],
[0x0111DD, 0x0111FF],
[0x01122C, 0x01127F],
[0x0112A9, 0x0112AF],
[0x0112DF, 0x011304],
[0x01130D, 0x01130E],
[0x011311, 0x011312],
[0x01133A, 0x01133C],
[0x01133E, 0x01134F],
[0x011351, 0x01135C],
[0x011362, 0x0113FF],
[0x011435, 0x011446],
[0x01144B, 0x01147F],
[0x0114B0, 0x0114C3],
[0x0114C8, 0x01157F],
[0x0115AF, 0x0115D7],
[0x0115DC, 0x0115FF],
[0x011630, 0x011643],
[0x011645, 0x01167F],
[0x0116AB, 0x0116FF],
[0x01171A, 0x0118FE],
[0x011900, 0x011ABF],
[0x011AF9, 0x011BFF],
[0x011C2F, 0x011C3F],
[0x011C41, 0x011C71],
[0x011C90, 0x011FFF],
[0x01239A, 0x01247F],
[0x012544, 0x012FFF],
[0x01342F, 0x0143FF],
[0x014647, 0x0167FF],
[0x016A39, 0x016A3F],
[0x016A5F, 0x016ACF],
[0x016AEE, 0x016AFF],
[0x016B30, 0x016B62],
[0x016B78, 0x016B7C],
[0x016B90, 0x016EFF],
[0x016F45, 0x016F4F],
[0x016F51, 0x016FFF],
[0x0187ED, 0x0187FF],
[0x018AF3, 0x01AFFF],
[0x01B002, 0x01BBFF],
[0x01BC6B, 0x01BC6F],
[0x01BC7D, 0x01BC7F],
[0x01BC89, 0x01BC8F],
[0x01BC9A, 0x01E7FF],
[0x01E8C5, 0x01EDFF],
[0x01EE25, 0x01EE26],
[0x01EE3C, 0x01EE41],
[0x01EE43, 0x01EE46],
[0x01EE55, 0x01EE56],
[0x01EE65, 0x01EE66],
[0x01EE9C, 0x01EEA0],
[0x01EEBC, 0x01FFFF],
[0x02A6D7, 0x02A6FF],
[0x02B735, 0x02B73F],
[0x02B81E, 0x02B81F],
[0x02CEA2, 0x02F7FF],
[0x02FA1E, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Other_Letter}+$/u,
nonMatchSymbols,
"\\P{General_Category=Other_Letter}"
);
testPropertyEscapes(
/^\P{General_Category=Lo}+$/u,
nonMatchSymbols,
"\\P{General_Category=Lo}"
);
testPropertyEscapes(
/^\P{gc=Other_Letter}+$/u,
nonMatchSymbols,
"\\P{gc=Other_Letter}"
);
testPropertyEscapes(
/^\P{gc=Lo}+$/u,
nonMatchSymbols,
"\\P{gc=Lo}"
);
testPropertyEscapes(
/^\P{Other_Letter}+$/u,
nonMatchSymbols,
"\\P{Other_Letter}"
);
testPropertyEscapes(
/^\P{Lo}+$/u,
nonMatchSymbols,
"\\P{Lo}"
);

View File

@ -0,0 +1,211 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Other_Number`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000B9,
0x0019DA,
0x002070,
0x002189,
0x002CFD
],
ranges: [
[0x0000B2, 0x0000B3],
[0x0000BC, 0x0000BE],
[0x0009F4, 0x0009F9],
[0x000B72, 0x000B77],
[0x000BF0, 0x000BF2],
[0x000C78, 0x000C7E],
[0x000D58, 0x000D5E],
[0x000D70, 0x000D78],
[0x000F2A, 0x000F33],
[0x001369, 0x00137C],
[0x0017F0, 0x0017F9],
[0x002074, 0x002079],
[0x002080, 0x002089],
[0x002150, 0x00215F],
[0x002460, 0x00249B],
[0x0024EA, 0x0024FF],
[0x002776, 0x002793],
[0x003192, 0x003195],
[0x003220, 0x003229],
[0x003248, 0x00324F],
[0x003251, 0x00325F],
[0x003280, 0x003289],
[0x0032B1, 0x0032BF],
[0x00A830, 0x00A835],
[0x010107, 0x010133],
[0x010175, 0x010178],
[0x01018A, 0x01018B],
[0x0102E1, 0x0102FB],
[0x010320, 0x010323],
[0x010858, 0x01085F],
[0x010879, 0x01087F],
[0x0108A7, 0x0108AF],
[0x0108FB, 0x0108FF],
[0x010916, 0x01091B],
[0x0109BC, 0x0109BD],
[0x0109C0, 0x0109CF],
[0x0109D2, 0x0109FF],
[0x010A40, 0x010A47],
[0x010A7D, 0x010A7E],
[0x010A9D, 0x010A9F],
[0x010AEB, 0x010AEF],
[0x010B58, 0x010B5F],
[0x010B78, 0x010B7F],
[0x010BA9, 0x010BAF],
[0x010CFA, 0x010CFF],
[0x010E60, 0x010E7E],
[0x011052, 0x011065],
[0x0111E1, 0x0111F4],
[0x01173A, 0x01173B],
[0x0118EA, 0x0118F2],
[0x011C5A, 0x011C6C],
[0x016B5B, 0x016B61],
[0x01D360, 0x01D371],
[0x01E8C7, 0x01E8CF],
[0x01F100, 0x01F10C]
]
});
testPropertyEscapes(
/^\p{General_Category=Other_Number}+$/u,
matchSymbols,
"\\p{General_Category=Other_Number}"
);
testPropertyEscapes(
/^\p{General_Category=No}+$/u,
matchSymbols,
"\\p{General_Category=No}"
);
testPropertyEscapes(
/^\p{gc=Other_Number}+$/u,
matchSymbols,
"\\p{gc=Other_Number}"
);
testPropertyEscapes(
/^\p{gc=No}+$/u,
matchSymbols,
"\\p{gc=No}"
);
testPropertyEscapes(
/^\p{Other_Number}+$/u,
matchSymbols,
"\\p{Other_Number}"
);
testPropertyEscapes(
/^\p{No}+$/u,
matchSymbols,
"\\p{No}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x003250
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0000B1],
[0x0000B4, 0x0000B8],
[0x0000BA, 0x0000BB],
[0x0000BF, 0x0009F3],
[0x0009FA, 0x000B71],
[0x000B78, 0x000BEF],
[0x000BF3, 0x000C77],
[0x000C7F, 0x000D57],
[0x000D5F, 0x000D6F],
[0x000D79, 0x000F29],
[0x000F34, 0x001368],
[0x00137D, 0x0017EF],
[0x0017FA, 0x0019D9],
[0x0019DB, 0x00206F],
[0x002071, 0x002073],
[0x00207A, 0x00207F],
[0x00208A, 0x00214F],
[0x002160, 0x002188],
[0x00218A, 0x00245F],
[0x00249C, 0x0024E9],
[0x002500, 0x002775],
[0x002794, 0x002CFC],
[0x002CFE, 0x003191],
[0x003196, 0x00321F],
[0x00322A, 0x003247],
[0x003260, 0x00327F],
[0x00328A, 0x0032B0],
[0x0032C0, 0x00A82F],
[0x00A836, 0x00DBFF],
[0x00E000, 0x010106],
[0x010134, 0x010174],
[0x010179, 0x010189],
[0x01018C, 0x0102E0],
[0x0102FC, 0x01031F],
[0x010324, 0x010857],
[0x010860, 0x010878],
[0x010880, 0x0108A6],
[0x0108B0, 0x0108FA],
[0x010900, 0x010915],
[0x01091C, 0x0109BB],
[0x0109BE, 0x0109BF],
[0x0109D0, 0x0109D1],
[0x010A00, 0x010A3F],
[0x010A48, 0x010A7C],
[0x010A7F, 0x010A9C],
[0x010AA0, 0x010AEA],
[0x010AF0, 0x010B57],
[0x010B60, 0x010B77],
[0x010B80, 0x010BA8],
[0x010BB0, 0x010CF9],
[0x010D00, 0x010E5F],
[0x010E7F, 0x011051],
[0x011066, 0x0111E0],
[0x0111F5, 0x011739],
[0x01173C, 0x0118E9],
[0x0118F3, 0x011C59],
[0x011C6D, 0x016B5A],
[0x016B62, 0x01D35F],
[0x01D372, 0x01E8C6],
[0x01E8D0, 0x01F0FF],
[0x01F10D, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Other_Number}+$/u,
nonMatchSymbols,
"\\P{General_Category=Other_Number}"
);
testPropertyEscapes(
/^\P{General_Category=No}+$/u,
nonMatchSymbols,
"\\P{General_Category=No}"
);
testPropertyEscapes(
/^\P{gc=Other_Number}+$/u,
nonMatchSymbols,
"\\P{gc=Other_Number}"
);
testPropertyEscapes(
/^\P{gc=No}+$/u,
nonMatchSymbols,
"\\P{gc=No}"
);
testPropertyEscapes(
/^\P{Other_Number}+$/u,
nonMatchSymbols,
"\\P{Other_Number}"
);
testPropertyEscapes(
/^\P{No}+$/u,
nonMatchSymbols,
"\\P{No}"
);

View File

@ -0,0 +1,421 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Other_Punctuation`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00002A,
0x00002C,
0x00005C,
0x0000A1,
0x0000A7,
0x0000BF,
0x00037E,
0x000387,
0x000589,
0x0005C0,
0x0005C3,
0x0005C6,
0x00061B,
0x0006D4,
0x00085E,
0x000970,
0x000AF0,
0x000DF4,
0x000E4F,
0x000F14,
0x000F85,
0x0010FB,
0x001CD3,
0x002053,
0x002D70,
0x002E0B,
0x002E1B,
0x002E41,
0x00303D,
0x0030FB,
0x00A673,
0x00A67E,
0x00A8FC,
0x00A95F,
0x00ABEB,
0x00FE19,
0x00FE30,
0x00FE68,
0x00FF0A,
0x00FF0C,
0x00FF3C,
0x00FF61,
0x01039F,
0x0103D0,
0x01056F,
0x010857,
0x01091F,
0x01093F,
0x010A7F,
0x0111CD,
0x0111DB,
0x0112A9,
0x01145B,
0x01145D,
0x0114C6,
0x016AF5,
0x016B44,
0x01BC9F
],
ranges: [
[0x000021, 0x000023],
[0x000025, 0x000027],
[0x00002E, 0x00002F],
[0x00003A, 0x00003B],
[0x00003F, 0x000040],
[0x0000B6, 0x0000B7],
[0x00055A, 0x00055F],
[0x0005F3, 0x0005F4],
[0x000609, 0x00060A],
[0x00060C, 0x00060D],
[0x00061E, 0x00061F],
[0x00066A, 0x00066D],
[0x000700, 0x00070D],
[0x0007F7, 0x0007F9],
[0x000830, 0x00083E],
[0x000964, 0x000965],
[0x000E5A, 0x000E5B],
[0x000F04, 0x000F12],
[0x000FD0, 0x000FD4],
[0x000FD9, 0x000FDA],
[0x00104A, 0x00104F],
[0x001360, 0x001368],
[0x00166D, 0x00166E],
[0x0016EB, 0x0016ED],
[0x001735, 0x001736],
[0x0017D4, 0x0017D6],
[0x0017D8, 0x0017DA],
[0x001800, 0x001805],
[0x001807, 0x00180A],
[0x001944, 0x001945],
[0x001A1E, 0x001A1F],
[0x001AA0, 0x001AA6],
[0x001AA8, 0x001AAD],
[0x001B5A, 0x001B60],
[0x001BFC, 0x001BFF],
[0x001C3B, 0x001C3F],
[0x001C7E, 0x001C7F],
[0x001CC0, 0x001CC7],
[0x002016, 0x002017],
[0x002020, 0x002027],
[0x002030, 0x002038],
[0x00203B, 0x00203E],
[0x002041, 0x002043],
[0x002047, 0x002051],
[0x002055, 0x00205E],
[0x002CF9, 0x002CFC],
[0x002CFE, 0x002CFF],
[0x002E00, 0x002E01],
[0x002E06, 0x002E08],
[0x002E0E, 0x002E16],
[0x002E18, 0x002E19],
[0x002E1E, 0x002E1F],
[0x002E2A, 0x002E2E],
[0x002E30, 0x002E39],
[0x002E3C, 0x002E3F],
[0x002E43, 0x002E44],
[0x003001, 0x003003],
[0x00A4FE, 0x00A4FF],
[0x00A60D, 0x00A60F],
[0x00A6F2, 0x00A6F7],
[0x00A874, 0x00A877],
[0x00A8CE, 0x00A8CF],
[0x00A8F8, 0x00A8FA],
[0x00A92E, 0x00A92F],
[0x00A9C1, 0x00A9CD],
[0x00A9DE, 0x00A9DF],
[0x00AA5C, 0x00AA5F],
[0x00AADE, 0x00AADF],
[0x00AAF0, 0x00AAF1],
[0x00FE10, 0x00FE16],
[0x00FE45, 0x00FE46],
[0x00FE49, 0x00FE4C],
[0x00FE50, 0x00FE52],
[0x00FE54, 0x00FE57],
[0x00FE5F, 0x00FE61],
[0x00FE6A, 0x00FE6B],
[0x00FF01, 0x00FF03],
[0x00FF05, 0x00FF07],
[0x00FF0E, 0x00FF0F],
[0x00FF1A, 0x00FF1B],
[0x00FF1F, 0x00FF20],
[0x00FF64, 0x00FF65],
[0x010100, 0x010102],
[0x010A50, 0x010A58],
[0x010AF0, 0x010AF6],
[0x010B39, 0x010B3F],
[0x010B99, 0x010B9C],
[0x011047, 0x01104D],
[0x0110BB, 0x0110BC],
[0x0110BE, 0x0110C1],
[0x011140, 0x011143],
[0x011174, 0x011175],
[0x0111C5, 0x0111C9],
[0x0111DD, 0x0111DF],
[0x011238, 0x01123D],
[0x01144B, 0x01144F],
[0x0115C1, 0x0115D7],
[0x011641, 0x011643],
[0x011660, 0x01166C],
[0x01173C, 0x01173E],
[0x011C41, 0x011C45],
[0x011C70, 0x011C71],
[0x012470, 0x012474],
[0x016A6E, 0x016A6F],
[0x016B37, 0x016B3B],
[0x01DA87, 0x01DA8B],
[0x01E95E, 0x01E95F]
]
});
testPropertyEscapes(
/^\p{General_Category=Other_Punctuation}+$/u,
matchSymbols,
"\\p{General_Category=Other_Punctuation}"
);
testPropertyEscapes(
/^\p{General_Category=Po}+$/u,
matchSymbols,
"\\p{General_Category=Po}"
);
testPropertyEscapes(
/^\p{gc=Other_Punctuation}+$/u,
matchSymbols,
"\\p{gc=Other_Punctuation}"
);
testPropertyEscapes(
/^\p{gc=Po}+$/u,
matchSymbols,
"\\p{gc=Po}"
);
testPropertyEscapes(
/^\p{Other_Punctuation}+$/u,
matchSymbols,
"\\p{Other_Punctuation}"
);
testPropertyEscapes(
/^\p{Po}+$/u,
matchSymbols,
"\\p{Po}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x000024,
0x00002B,
0x00002D,
0x00060B,
0x000F13,
0x0017D7,
0x001806,
0x001AA7,
0x002052,
0x002054,
0x002CFD,
0x002E17,
0x002E1A,
0x002E2F,
0x002E40,
0x002E42,
0x00A8FB,
0x00FE53,
0x00FE69,
0x00FF04,
0x00FF0B,
0x00FF0D,
0x0110BD,
0x0111DC,
0x01145C
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000020],
[0x000028, 0x000029],
[0x000030, 0x000039],
[0x00003C, 0x00003E],
[0x000041, 0x00005B],
[0x00005D, 0x0000A0],
[0x0000A2, 0x0000A6],
[0x0000A8, 0x0000B5],
[0x0000B8, 0x0000BE],
[0x0000C0, 0x00037D],
[0x00037F, 0x000386],
[0x000388, 0x000559],
[0x000560, 0x000588],
[0x00058A, 0x0005BF],
[0x0005C1, 0x0005C2],
[0x0005C4, 0x0005C5],
[0x0005C7, 0x0005F2],
[0x0005F5, 0x000608],
[0x00060E, 0x00061A],
[0x00061C, 0x00061D],
[0x000620, 0x000669],
[0x00066E, 0x0006D3],
[0x0006D5, 0x0006FF],
[0x00070E, 0x0007F6],
[0x0007FA, 0x00082F],
[0x00083F, 0x00085D],
[0x00085F, 0x000963],
[0x000966, 0x00096F],
[0x000971, 0x000AEF],
[0x000AF1, 0x000DF3],
[0x000DF5, 0x000E4E],
[0x000E50, 0x000E59],
[0x000E5C, 0x000F03],
[0x000F15, 0x000F84],
[0x000F86, 0x000FCF],
[0x000FD5, 0x000FD8],
[0x000FDB, 0x001049],
[0x001050, 0x0010FA],
[0x0010FC, 0x00135F],
[0x001369, 0x00166C],
[0x00166F, 0x0016EA],
[0x0016EE, 0x001734],
[0x001737, 0x0017D3],
[0x0017DB, 0x0017FF],
[0x00180B, 0x001943],
[0x001946, 0x001A1D],
[0x001A20, 0x001A9F],
[0x001AAE, 0x001B59],
[0x001B61, 0x001BFB],
[0x001C00, 0x001C3A],
[0x001C40, 0x001C7D],
[0x001C80, 0x001CBF],
[0x001CC8, 0x001CD2],
[0x001CD4, 0x002015],
[0x002018, 0x00201F],
[0x002028, 0x00202F],
[0x002039, 0x00203A],
[0x00203F, 0x002040],
[0x002044, 0x002046],
[0x00205F, 0x002CF8],
[0x002D00, 0x002D6F],
[0x002D71, 0x002DFF],
[0x002E02, 0x002E05],
[0x002E09, 0x002E0A],
[0x002E0C, 0x002E0D],
[0x002E1C, 0x002E1D],
[0x002E20, 0x002E29],
[0x002E3A, 0x002E3B],
[0x002E45, 0x003000],
[0x003004, 0x00303C],
[0x00303E, 0x0030FA],
[0x0030FC, 0x00A4FD],
[0x00A500, 0x00A60C],
[0x00A610, 0x00A672],
[0x00A674, 0x00A67D],
[0x00A67F, 0x00A6F1],
[0x00A6F8, 0x00A873],
[0x00A878, 0x00A8CD],
[0x00A8D0, 0x00A8F7],
[0x00A8FD, 0x00A92D],
[0x00A930, 0x00A95E],
[0x00A960, 0x00A9C0],
[0x00A9CE, 0x00A9DD],
[0x00A9E0, 0x00AA5B],
[0x00AA60, 0x00AADD],
[0x00AAE0, 0x00AAEF],
[0x00AAF2, 0x00ABEA],
[0x00ABEC, 0x00DBFF],
[0x00E000, 0x00FE0F],
[0x00FE17, 0x00FE18],
[0x00FE1A, 0x00FE2F],
[0x00FE31, 0x00FE44],
[0x00FE47, 0x00FE48],
[0x00FE4D, 0x00FE4F],
[0x00FE58, 0x00FE5E],
[0x00FE62, 0x00FE67],
[0x00FE6C, 0x00FF00],
[0x00FF08, 0x00FF09],
[0x00FF10, 0x00FF19],
[0x00FF1C, 0x00FF1E],
[0x00FF21, 0x00FF3B],
[0x00FF3D, 0x00FF60],
[0x00FF62, 0x00FF63],
[0x00FF66, 0x0100FF],
[0x010103, 0x01039E],
[0x0103A0, 0x0103CF],
[0x0103D1, 0x01056E],
[0x010570, 0x010856],
[0x010858, 0x01091E],
[0x010920, 0x01093E],
[0x010940, 0x010A4F],
[0x010A59, 0x010A7E],
[0x010A80, 0x010AEF],
[0x010AF7, 0x010B38],
[0x010B40, 0x010B98],
[0x010B9D, 0x011046],
[0x01104E, 0x0110BA],
[0x0110C2, 0x01113F],
[0x011144, 0x011173],
[0x011176, 0x0111C4],
[0x0111CA, 0x0111CC],
[0x0111CE, 0x0111DA],
[0x0111E0, 0x011237],
[0x01123E, 0x0112A8],
[0x0112AA, 0x01144A],
[0x011450, 0x01145A],
[0x01145E, 0x0114C5],
[0x0114C7, 0x0115C0],
[0x0115D8, 0x011640],
[0x011644, 0x01165F],
[0x01166D, 0x01173B],
[0x01173F, 0x011C40],
[0x011C46, 0x011C6F],
[0x011C72, 0x01246F],
[0x012475, 0x016A6D],
[0x016A70, 0x016AF4],
[0x016AF6, 0x016B36],
[0x016B3C, 0x016B43],
[0x016B45, 0x01BC9E],
[0x01BCA0, 0x01DA86],
[0x01DA8C, 0x01E95D],
[0x01E960, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Other_Punctuation}+$/u,
nonMatchSymbols,
"\\P{General_Category=Other_Punctuation}"
);
testPropertyEscapes(
/^\P{General_Category=Po}+$/u,
nonMatchSymbols,
"\\P{General_Category=Po}"
);
testPropertyEscapes(
/^\P{gc=Other_Punctuation}+$/u,
nonMatchSymbols,
"\\P{gc=Other_Punctuation}"
);
testPropertyEscapes(
/^\P{gc=Po}+$/u,
nonMatchSymbols,
"\\P{gc=Po}"
);
testPropertyEscapes(
/^\P{Other_Punctuation}+$/u,
nonMatchSymbols,
"\\P{Other_Punctuation}"
);
testPropertyEscapes(
/^\P{Po}+$/u,
nonMatchSymbols,
"\\P{Po}"
);

View File

@ -0,0 +1,439 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Other_Symbol`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0000A6,
0x0000A9,
0x0000AE,
0x0000B0,
0x000482,
0x0006DE,
0x0006E9,
0x0007F6,
0x0009FA,
0x000B70,
0x000BFA,
0x000C7F,
0x000D4F,
0x000D79,
0x000F13,
0x000F34,
0x000F36,
0x000F38,
0x001940,
0x002114,
0x002125,
0x002127,
0x002129,
0x00212E,
0x00214A,
0x00214F,
0x0021D3,
0x003004,
0x003020,
0x003250,
0x00A839,
0x00FDFD,
0x00FFE4,
0x00FFE8,
0x0101A0,
0x010AC8,
0x01173F,
0x016B45,
0x01BC9C,
0x01D245,
0x01F930,
0x01F9C0
],
ranges: [
[0x00058D, 0x00058E],
[0x00060E, 0x00060F],
[0x0006FD, 0x0006FE],
[0x000BF3, 0x000BF8],
[0x000F01, 0x000F03],
[0x000F15, 0x000F17],
[0x000F1A, 0x000F1F],
[0x000FBE, 0x000FC5],
[0x000FC7, 0x000FCC],
[0x000FCE, 0x000FCF],
[0x000FD5, 0x000FD8],
[0x00109E, 0x00109F],
[0x001390, 0x001399],
[0x0019DE, 0x0019FF],
[0x001B61, 0x001B6A],
[0x001B74, 0x001B7C],
[0x002100, 0x002101],
[0x002103, 0x002106],
[0x002108, 0x002109],
[0x002116, 0x002117],
[0x00211E, 0x002123],
[0x00213A, 0x00213B],
[0x00214C, 0x00214D],
[0x00218A, 0x00218B],
[0x002195, 0x002199],
[0x00219C, 0x00219F],
[0x0021A1, 0x0021A2],
[0x0021A4, 0x0021A5],
[0x0021A7, 0x0021AD],
[0x0021AF, 0x0021CD],
[0x0021D0, 0x0021D1],
[0x0021D5, 0x0021F3],
[0x002300, 0x002307],
[0x00230C, 0x00231F],
[0x002322, 0x002328],
[0x00232B, 0x00237B],
[0x00237D, 0x00239A],
[0x0023B4, 0x0023DB],
[0x0023E2, 0x0023FE],
[0x002400, 0x002426],
[0x002440, 0x00244A],
[0x00249C, 0x0024E9],
[0x002500, 0x0025B6],
[0x0025B8, 0x0025C0],
[0x0025C2, 0x0025F7],
[0x002600, 0x00266E],
[0x002670, 0x002767],
[0x002794, 0x0027BF],
[0x002800, 0x0028FF],
[0x002B00, 0x002B2F],
[0x002B45, 0x002B46],
[0x002B4D, 0x002B73],
[0x002B76, 0x002B95],
[0x002B98, 0x002BB9],
[0x002BBD, 0x002BC8],
[0x002BCA, 0x002BD1],
[0x002BEC, 0x002BEF],
[0x002CE5, 0x002CEA],
[0x002E80, 0x002E99],
[0x002E9B, 0x002EF3],
[0x002F00, 0x002FD5],
[0x002FF0, 0x002FFB],
[0x003012, 0x003013],
[0x003036, 0x003037],
[0x00303E, 0x00303F],
[0x003190, 0x003191],
[0x003196, 0x00319F],
[0x0031C0, 0x0031E3],
[0x003200, 0x00321E],
[0x00322A, 0x003247],
[0x003260, 0x00327F],
[0x00328A, 0x0032B0],
[0x0032C0, 0x0032FE],
[0x003300, 0x0033FF],
[0x004DC0, 0x004DFF],
[0x00A490, 0x00A4C6],
[0x00A828, 0x00A82B],
[0x00A836, 0x00A837],
[0x00AA77, 0x00AA79],
[0x00FFED, 0x00FFEE],
[0x00FFFC, 0x00FFFD],
[0x010137, 0x01013F],
[0x010179, 0x010189],
[0x01018C, 0x01018E],
[0x010190, 0x01019B],
[0x0101D0, 0x0101FC],
[0x010877, 0x010878],
[0x016B3C, 0x016B3F],
[0x01D000, 0x01D0F5],
[0x01D100, 0x01D126],
[0x01D129, 0x01D164],
[0x01D16A, 0x01D16C],
[0x01D183, 0x01D184],
[0x01D18C, 0x01D1A9],
[0x01D1AE, 0x01D1E8],
[0x01D200, 0x01D241],
[0x01D300, 0x01D356],
[0x01D800, 0x01D9FF],
[0x01DA37, 0x01DA3A],
[0x01DA6D, 0x01DA74],
[0x01DA76, 0x01DA83],
[0x01DA85, 0x01DA86],
[0x01F000, 0x01F02B],
[0x01F030, 0x01F093],
[0x01F0A0, 0x01F0AE],
[0x01F0B1, 0x01F0BF],
[0x01F0C1, 0x01F0CF],
[0x01F0D1, 0x01F0F5],
[0x01F110, 0x01F12E],
[0x01F130, 0x01F16B],
[0x01F170, 0x01F1AC],
[0x01F1E6, 0x01F202],
[0x01F210, 0x01F23B],
[0x01F240, 0x01F248],
[0x01F250, 0x01F251],
[0x01F300, 0x01F3FA],
[0x01F400, 0x01F6D2],
[0x01F6E0, 0x01F6EC],
[0x01F6F0, 0x01F6F6],
[0x01F700, 0x01F773],
[0x01F780, 0x01F7D4],
[0x01F800, 0x01F80B],
[0x01F810, 0x01F847],
[0x01F850, 0x01F859],
[0x01F860, 0x01F887],
[0x01F890, 0x01F8AD],
[0x01F910, 0x01F91E],
[0x01F920, 0x01F927],
[0x01F933, 0x01F93E],
[0x01F940, 0x01F94B],
[0x01F950, 0x01F95E],
[0x01F980, 0x01F991]
]
});
testPropertyEscapes(
/^\p{General_Category=Other_Symbol}+$/u,
matchSymbols,
"\\p{General_Category=Other_Symbol}"
);
testPropertyEscapes(
/^\p{General_Category=So}+$/u,
matchSymbols,
"\\p{General_Category=So}"
);
testPropertyEscapes(
/^\p{gc=Other_Symbol}+$/u,
matchSymbols,
"\\p{gc=Other_Symbol}"
);
testPropertyEscapes(
/^\p{gc=So}+$/u,
matchSymbols,
"\\p{gc=So}"
);
testPropertyEscapes(
/^\p{Other_Symbol}+$/u,
matchSymbols,
"\\p{Other_Symbol}"
);
testPropertyEscapes(
/^\p{So}+$/u,
matchSymbols,
"\\p{So}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0000AF,
0x000BF9,
0x000F14,
0x000F35,
0x000F37,
0x000FC6,
0x000FCD,
0x002102,
0x002107,
0x002115,
0x002124,
0x002126,
0x002128,
0x00214B,
0x00214E,
0x0021A0,
0x0021A3,
0x0021A6,
0x0021AE,
0x0021D2,
0x0021D4,
0x00237C,
0x0023FF,
0x0025B7,
0x0025C1,
0x00266F,
0x002BC9,
0x002E9A,
0x0032FF,
0x00A838,
0x01018F,
0x01DA75,
0x01DA84,
0x01F0C0,
0x01F0D0,
0x01F12F,
0x01F91F,
0x01F93F
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0000A5],
[0x0000A7, 0x0000A8],
[0x0000AA, 0x0000AD],
[0x0000B1, 0x000481],
[0x000483, 0x00058C],
[0x00058F, 0x00060D],
[0x000610, 0x0006DD],
[0x0006DF, 0x0006E8],
[0x0006EA, 0x0006FC],
[0x0006FF, 0x0007F5],
[0x0007F7, 0x0009F9],
[0x0009FB, 0x000B6F],
[0x000B71, 0x000BF2],
[0x000BFB, 0x000C7E],
[0x000C80, 0x000D4E],
[0x000D50, 0x000D78],
[0x000D7A, 0x000F00],
[0x000F04, 0x000F12],
[0x000F18, 0x000F19],
[0x000F20, 0x000F33],
[0x000F39, 0x000FBD],
[0x000FD0, 0x000FD4],
[0x000FD9, 0x00109D],
[0x0010A0, 0x00138F],
[0x00139A, 0x00193F],
[0x001941, 0x0019DD],
[0x001A00, 0x001B60],
[0x001B6B, 0x001B73],
[0x001B7D, 0x0020FF],
[0x00210A, 0x002113],
[0x002118, 0x00211D],
[0x00212A, 0x00212D],
[0x00212F, 0x002139],
[0x00213C, 0x002149],
[0x002150, 0x002189],
[0x00218C, 0x002194],
[0x00219A, 0x00219B],
[0x0021CE, 0x0021CF],
[0x0021F4, 0x0022FF],
[0x002308, 0x00230B],
[0x002320, 0x002321],
[0x002329, 0x00232A],
[0x00239B, 0x0023B3],
[0x0023DC, 0x0023E1],
[0x002427, 0x00243F],
[0x00244B, 0x00249B],
[0x0024EA, 0x0024FF],
[0x0025F8, 0x0025FF],
[0x002768, 0x002793],
[0x0027C0, 0x0027FF],
[0x002900, 0x002AFF],
[0x002B30, 0x002B44],
[0x002B47, 0x002B4C],
[0x002B74, 0x002B75],
[0x002B96, 0x002B97],
[0x002BBA, 0x002BBC],
[0x002BD2, 0x002BEB],
[0x002BF0, 0x002CE4],
[0x002CEB, 0x002E7F],
[0x002EF4, 0x002EFF],
[0x002FD6, 0x002FEF],
[0x002FFC, 0x003003],
[0x003005, 0x003011],
[0x003014, 0x00301F],
[0x003021, 0x003035],
[0x003038, 0x00303D],
[0x003040, 0x00318F],
[0x003192, 0x003195],
[0x0031A0, 0x0031BF],
[0x0031E4, 0x0031FF],
[0x00321F, 0x003229],
[0x003248, 0x00324F],
[0x003251, 0x00325F],
[0x003280, 0x003289],
[0x0032B1, 0x0032BF],
[0x003400, 0x004DBF],
[0x004E00, 0x00A48F],
[0x00A4C7, 0x00A827],
[0x00A82C, 0x00A835],
[0x00A83A, 0x00AA76],
[0x00AA7A, 0x00DBFF],
[0x00E000, 0x00FDFC],
[0x00FDFE, 0x00FFE3],
[0x00FFE5, 0x00FFE7],
[0x00FFE9, 0x00FFEC],
[0x00FFEF, 0x00FFFB],
[0x00FFFE, 0x010136],
[0x010140, 0x010178],
[0x01018A, 0x01018B],
[0x01019C, 0x01019F],
[0x0101A1, 0x0101CF],
[0x0101FD, 0x010876],
[0x010879, 0x010AC7],
[0x010AC9, 0x01173E],
[0x011740, 0x016B3B],
[0x016B40, 0x016B44],
[0x016B46, 0x01BC9B],
[0x01BC9D, 0x01CFFF],
[0x01D0F6, 0x01D0FF],
[0x01D127, 0x01D128],
[0x01D165, 0x01D169],
[0x01D16D, 0x01D182],
[0x01D185, 0x01D18B],
[0x01D1AA, 0x01D1AD],
[0x01D1E9, 0x01D1FF],
[0x01D242, 0x01D244],
[0x01D246, 0x01D2FF],
[0x01D357, 0x01D7FF],
[0x01DA00, 0x01DA36],
[0x01DA3B, 0x01DA6C],
[0x01DA87, 0x01EFFF],
[0x01F02C, 0x01F02F],
[0x01F094, 0x01F09F],
[0x01F0AF, 0x01F0B0],
[0x01F0F6, 0x01F10F],
[0x01F16C, 0x01F16F],
[0x01F1AD, 0x01F1E5],
[0x01F203, 0x01F20F],
[0x01F23C, 0x01F23F],
[0x01F249, 0x01F24F],
[0x01F252, 0x01F2FF],
[0x01F3FB, 0x01F3FF],
[0x01F6D3, 0x01F6DF],
[0x01F6ED, 0x01F6EF],
[0x01F6F7, 0x01F6FF],
[0x01F774, 0x01F77F],
[0x01F7D5, 0x01F7FF],
[0x01F80C, 0x01F80F],
[0x01F848, 0x01F84F],
[0x01F85A, 0x01F85F],
[0x01F888, 0x01F88F],
[0x01F8AE, 0x01F90F],
[0x01F928, 0x01F92F],
[0x01F931, 0x01F932],
[0x01F94C, 0x01F94F],
[0x01F95F, 0x01F97F],
[0x01F992, 0x01F9BF],
[0x01F9C1, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Other_Symbol}+$/u,
nonMatchSymbols,
"\\P{General_Category=Other_Symbol}"
);
testPropertyEscapes(
/^\P{General_Category=So}+$/u,
nonMatchSymbols,
"\\P{General_Category=So}"
);
testPropertyEscapes(
/^\P{gc=Other_Symbol}+$/u,
nonMatchSymbols,
"\\P{gc=Other_Symbol}"
);
testPropertyEscapes(
/^\P{gc=So}+$/u,
nonMatchSymbols,
"\\P{gc=So}"
);
testPropertyEscapes(
/^\P{Other_Symbol}+$/u,
nonMatchSymbols,
"\\P{Other_Symbol}"
);
testPropertyEscapes(
/^\P{So}+$/u,
nonMatchSymbols,
"\\P{So}"
);

View File

@ -0,0 +1,91 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Paragraph_Separator`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x002029
],
ranges: []
});
testPropertyEscapes(
/^\p{General_Category=Paragraph_Separator}+$/u,
matchSymbols,
"\\p{General_Category=Paragraph_Separator}"
);
testPropertyEscapes(
/^\p{General_Category=Zp}+$/u,
matchSymbols,
"\\p{General_Category=Zp}"
);
testPropertyEscapes(
/^\p{gc=Paragraph_Separator}+$/u,
matchSymbols,
"\\p{gc=Paragraph_Separator}"
);
testPropertyEscapes(
/^\p{gc=Zp}+$/u,
matchSymbols,
"\\p{gc=Zp}"
);
testPropertyEscapes(
/^\p{Paragraph_Separator}+$/u,
matchSymbols,
"\\p{Paragraph_Separator}"
);
testPropertyEscapes(
/^\p{Zp}+$/u,
matchSymbols,
"\\p{Zp}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x002028],
[0x00202A, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Paragraph_Separator}+$/u,
nonMatchSymbols,
"\\P{General_Category=Paragraph_Separator}"
);
testPropertyEscapes(
/^\P{General_Category=Zp}+$/u,
nonMatchSymbols,
"\\P{General_Category=Zp}"
);
testPropertyEscapes(
/^\P{gc=Paragraph_Separator}+$/u,
nonMatchSymbols,
"\\P{gc=Paragraph_Separator}"
);
testPropertyEscapes(
/^\P{gc=Zp}+$/u,
nonMatchSymbols,
"\\P{gc=Zp}"
);
testPropertyEscapes(
/^\P{Paragraph_Separator}+$/u,
nonMatchSymbols,
"\\P{Paragraph_Separator}"
);
testPropertyEscapes(
/^\P{Zp}+$/u,
nonMatchSymbols,
"\\P{Zp}"
);

View File

@ -0,0 +1,94 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Private_Use`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00E000, 0x00F8FF],
[0x0F0000, 0x0FFFFD],
[0x100000, 0x10FFFD]
]
});
testPropertyEscapes(
/^\p{General_Category=Private_Use}+$/u,
matchSymbols,
"\\p{General_Category=Private_Use}"
);
testPropertyEscapes(
/^\p{General_Category=Co}+$/u,
matchSymbols,
"\\p{General_Category=Co}"
);
testPropertyEscapes(
/^\p{gc=Private_Use}+$/u,
matchSymbols,
"\\p{gc=Private_Use}"
);
testPropertyEscapes(
/^\p{gc=Co}+$/u,
matchSymbols,
"\\p{gc=Co}"
);
testPropertyEscapes(
/^\p{Private_Use}+$/u,
matchSymbols,
"\\p{Private_Use}"
);
testPropertyEscapes(
/^\p{Co}+$/u,
matchSymbols,
"\\p{Co}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00F900, 0x0EFFFF],
[0x0FFFFE, 0x0FFFFF],
[0x10FFFE, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Private_Use}+$/u,
nonMatchSymbols,
"\\P{General_Category=Private_Use}"
);
testPropertyEscapes(
/^\P{General_Category=Co}+$/u,
nonMatchSymbols,
"\\P{General_Category=Co}"
);
testPropertyEscapes(
/^\P{gc=Private_Use}+$/u,
nonMatchSymbols,
"\\P{gc=Private_Use}"
);
testPropertyEscapes(
/^\P{gc=Co}+$/u,
nonMatchSymbols,
"\\P{gc=Co}"
);
testPropertyEscapes(
/^\P{Private_Use}+$/u,
nonMatchSymbols,
"\\P{Private_Use}"
);
testPropertyEscapes(
/^\P{Co}+$/u,
nonMatchSymbols,
"\\P{Co}"
);

View File

@ -0,0 +1,457 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Punctuation`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00005F,
0x00007B,
0x00007D,
0x0000A1,
0x0000A7,
0x0000AB,
0x0000BB,
0x0000BF,
0x00037E,
0x000387,
0x0005BE,
0x0005C0,
0x0005C3,
0x0005C6,
0x00061B,
0x0006D4,
0x00085E,
0x000970,
0x000AF0,
0x000DF4,
0x000E4F,
0x000F14,
0x000F85,
0x0010FB,
0x001400,
0x001CD3,
0x002D70,
0x003030,
0x00303D,
0x0030A0,
0x0030FB,
0x00A673,
0x00A67E,
0x00A8FC,
0x00A95F,
0x00ABEB,
0x00FE63,
0x00FE68,
0x00FF3F,
0x00FF5B,
0x00FF5D,
0x01039F,
0x0103D0,
0x01056F,
0x010857,
0x01091F,
0x01093F,
0x010A7F,
0x0111CD,
0x0111DB,
0x0112A9,
0x01145B,
0x01145D,
0x0114C6,
0x016AF5,
0x016B44,
0x01BC9F
],
ranges: [
[0x000021, 0x000023],
[0x000025, 0x00002A],
[0x00002C, 0x00002F],
[0x00003A, 0x00003B],
[0x00003F, 0x000040],
[0x00005B, 0x00005D],
[0x0000B6, 0x0000B7],
[0x00055A, 0x00055F],
[0x000589, 0x00058A],
[0x0005F3, 0x0005F4],
[0x000609, 0x00060A],
[0x00060C, 0x00060D],
[0x00061E, 0x00061F],
[0x00066A, 0x00066D],
[0x000700, 0x00070D],
[0x0007F7, 0x0007F9],
[0x000830, 0x00083E],
[0x000964, 0x000965],
[0x000E5A, 0x000E5B],
[0x000F04, 0x000F12],
[0x000F3A, 0x000F3D],
[0x000FD0, 0x000FD4],
[0x000FD9, 0x000FDA],
[0x00104A, 0x00104F],
[0x001360, 0x001368],
[0x00166D, 0x00166E],
[0x00169B, 0x00169C],
[0x0016EB, 0x0016ED],
[0x001735, 0x001736],
[0x0017D4, 0x0017D6],
[0x0017D8, 0x0017DA],
[0x001800, 0x00180A],
[0x001944, 0x001945],
[0x001A1E, 0x001A1F],
[0x001AA0, 0x001AA6],
[0x001AA8, 0x001AAD],
[0x001B5A, 0x001B60],
[0x001BFC, 0x001BFF],
[0x001C3B, 0x001C3F],
[0x001C7E, 0x001C7F],
[0x001CC0, 0x001CC7],
[0x002010, 0x002027],
[0x002030, 0x002043],
[0x002045, 0x002051],
[0x002053, 0x00205E],
[0x00207D, 0x00207E],
[0x00208D, 0x00208E],
[0x002308, 0x00230B],
[0x002329, 0x00232A],
[0x002768, 0x002775],
[0x0027C5, 0x0027C6],
[0x0027E6, 0x0027EF],
[0x002983, 0x002998],
[0x0029D8, 0x0029DB],
[0x0029FC, 0x0029FD],
[0x002CF9, 0x002CFC],
[0x002CFE, 0x002CFF],
[0x002E00, 0x002E2E],
[0x002E30, 0x002E44],
[0x003001, 0x003003],
[0x003008, 0x003011],
[0x003014, 0x00301F],
[0x00A4FE, 0x00A4FF],
[0x00A60D, 0x00A60F],
[0x00A6F2, 0x00A6F7],
[0x00A874, 0x00A877],
[0x00A8CE, 0x00A8CF],
[0x00A8F8, 0x00A8FA],
[0x00A92E, 0x00A92F],
[0x00A9C1, 0x00A9CD],
[0x00A9DE, 0x00A9DF],
[0x00AA5C, 0x00AA5F],
[0x00AADE, 0x00AADF],
[0x00AAF0, 0x00AAF1],
[0x00FD3E, 0x00FD3F],
[0x00FE10, 0x00FE19],
[0x00FE30, 0x00FE52],
[0x00FE54, 0x00FE61],
[0x00FE6A, 0x00FE6B],
[0x00FF01, 0x00FF03],
[0x00FF05, 0x00FF0A],
[0x00FF0C, 0x00FF0F],
[0x00FF1A, 0x00FF1B],
[0x00FF1F, 0x00FF20],
[0x00FF3B, 0x00FF3D],
[0x00FF5F, 0x00FF65],
[0x010100, 0x010102],
[0x010A50, 0x010A58],
[0x010AF0, 0x010AF6],
[0x010B39, 0x010B3F],
[0x010B99, 0x010B9C],
[0x011047, 0x01104D],
[0x0110BB, 0x0110BC],
[0x0110BE, 0x0110C1],
[0x011140, 0x011143],
[0x011174, 0x011175],
[0x0111C5, 0x0111C9],
[0x0111DD, 0x0111DF],
[0x011238, 0x01123D],
[0x01144B, 0x01144F],
[0x0115C1, 0x0115D7],
[0x011641, 0x011643],
[0x011660, 0x01166C],
[0x01173C, 0x01173E],
[0x011C41, 0x011C45],
[0x011C70, 0x011C71],
[0x012470, 0x012474],
[0x016A6E, 0x016A6F],
[0x016B37, 0x016B3B],
[0x01DA87, 0x01DA8B],
[0x01E95E, 0x01E95F]
]
});
testPropertyEscapes(
/^\p{General_Category=Punctuation}+$/u,
matchSymbols,
"\\p{General_Category=Punctuation}"
);
testPropertyEscapes(
/^\p{General_Category=P}+$/u,
matchSymbols,
"\\p{General_Category=P}"
);
testPropertyEscapes(
/^\p{General_Category=punct}+$/u,
matchSymbols,
"\\p{General_Category=punct}"
);
testPropertyEscapes(
/^\p{gc=Punctuation}+$/u,
matchSymbols,
"\\p{gc=Punctuation}"
);
testPropertyEscapes(
/^\p{gc=P}+$/u,
matchSymbols,
"\\p{gc=P}"
);
testPropertyEscapes(
/^\p{gc=punct}+$/u,
matchSymbols,
"\\p{gc=punct}"
);
testPropertyEscapes(
/^\p{Punctuation}+$/u,
matchSymbols,
"\\p{Punctuation}"
);
testPropertyEscapes(
/^\p{P}+$/u,
matchSymbols,
"\\p{P}"
);
testPropertyEscapes(
/^\p{punct}+$/u,
matchSymbols,
"\\p{punct}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x000024,
0x00002B,
0x00005E,
0x00007C,
0x0005BF,
0x00060B,
0x000F13,
0x0017D7,
0x001AA7,
0x002044,
0x002052,
0x002CFD,
0x002E2F,
0x00A8FB,
0x00FE53,
0x00FE62,
0x00FE69,
0x00FF04,
0x00FF0B,
0x00FF3E,
0x00FF5C,
0x00FF5E,
0x0110BD,
0x0111DC,
0x01145C
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000020],
[0x000030, 0x000039],
[0x00003C, 0x00003E],
[0x000041, 0x00005A],
[0x000060, 0x00007A],
[0x00007E, 0x0000A0],
[0x0000A2, 0x0000A6],
[0x0000A8, 0x0000AA],
[0x0000AC, 0x0000B5],
[0x0000B8, 0x0000BA],
[0x0000BC, 0x0000BE],
[0x0000C0, 0x00037D],
[0x00037F, 0x000386],
[0x000388, 0x000559],
[0x000560, 0x000588],
[0x00058B, 0x0005BD],
[0x0005C1, 0x0005C2],
[0x0005C4, 0x0005C5],
[0x0005C7, 0x0005F2],
[0x0005F5, 0x000608],
[0x00060E, 0x00061A],
[0x00061C, 0x00061D],
[0x000620, 0x000669],
[0x00066E, 0x0006D3],
[0x0006D5, 0x0006FF],
[0x00070E, 0x0007F6],
[0x0007FA, 0x00082F],
[0x00083F, 0x00085D],
[0x00085F, 0x000963],
[0x000966, 0x00096F],
[0x000971, 0x000AEF],
[0x000AF1, 0x000DF3],
[0x000DF5, 0x000E4E],
[0x000E50, 0x000E59],
[0x000E5C, 0x000F03],
[0x000F15, 0x000F39],
[0x000F3E, 0x000F84],
[0x000F86, 0x000FCF],
[0x000FD5, 0x000FD8],
[0x000FDB, 0x001049],
[0x001050, 0x0010FA],
[0x0010FC, 0x00135F],
[0x001369, 0x0013FF],
[0x001401, 0x00166C],
[0x00166F, 0x00169A],
[0x00169D, 0x0016EA],
[0x0016EE, 0x001734],
[0x001737, 0x0017D3],
[0x0017DB, 0x0017FF],
[0x00180B, 0x001943],
[0x001946, 0x001A1D],
[0x001A20, 0x001A9F],
[0x001AAE, 0x001B59],
[0x001B61, 0x001BFB],
[0x001C00, 0x001C3A],
[0x001C40, 0x001C7D],
[0x001C80, 0x001CBF],
[0x001CC8, 0x001CD2],
[0x001CD4, 0x00200F],
[0x002028, 0x00202F],
[0x00205F, 0x00207C],
[0x00207F, 0x00208C],
[0x00208F, 0x002307],
[0x00230C, 0x002328],
[0x00232B, 0x002767],
[0x002776, 0x0027C4],
[0x0027C7, 0x0027E5],
[0x0027F0, 0x002982],
[0x002999, 0x0029D7],
[0x0029DC, 0x0029FB],
[0x0029FE, 0x002CF8],
[0x002D00, 0x002D6F],
[0x002D71, 0x002DFF],
[0x002E45, 0x003000],
[0x003004, 0x003007],
[0x003012, 0x003013],
[0x003020, 0x00302F],
[0x003031, 0x00303C],
[0x00303E, 0x00309F],
[0x0030A1, 0x0030FA],
[0x0030FC, 0x00A4FD],
[0x00A500, 0x00A60C],
[0x00A610, 0x00A672],
[0x00A674, 0x00A67D],
[0x00A67F, 0x00A6F1],
[0x00A6F8, 0x00A873],
[0x00A878, 0x00A8CD],
[0x00A8D0, 0x00A8F7],
[0x00A8FD, 0x00A92D],
[0x00A930, 0x00A95E],
[0x00A960, 0x00A9C0],
[0x00A9CE, 0x00A9DD],
[0x00A9E0, 0x00AA5B],
[0x00AA60, 0x00AADD],
[0x00AAE0, 0x00AAEF],
[0x00AAF2, 0x00ABEA],
[0x00ABEC, 0x00DBFF],
[0x00E000, 0x00FD3D],
[0x00FD40, 0x00FE0F],
[0x00FE1A, 0x00FE2F],
[0x00FE64, 0x00FE67],
[0x00FE6C, 0x00FF00],
[0x00FF10, 0x00FF19],
[0x00FF1C, 0x00FF1E],
[0x00FF21, 0x00FF3A],
[0x00FF40, 0x00FF5A],
[0x00FF66, 0x0100FF],
[0x010103, 0x01039E],
[0x0103A0, 0x0103CF],
[0x0103D1, 0x01056E],
[0x010570, 0x010856],
[0x010858, 0x01091E],
[0x010920, 0x01093E],
[0x010940, 0x010A4F],
[0x010A59, 0x010A7E],
[0x010A80, 0x010AEF],
[0x010AF7, 0x010B38],
[0x010B40, 0x010B98],
[0x010B9D, 0x011046],
[0x01104E, 0x0110BA],
[0x0110C2, 0x01113F],
[0x011144, 0x011173],
[0x011176, 0x0111C4],
[0x0111CA, 0x0111CC],
[0x0111CE, 0x0111DA],
[0x0111E0, 0x011237],
[0x01123E, 0x0112A8],
[0x0112AA, 0x01144A],
[0x011450, 0x01145A],
[0x01145E, 0x0114C5],
[0x0114C7, 0x0115C0],
[0x0115D8, 0x011640],
[0x011644, 0x01165F],
[0x01166D, 0x01173B],
[0x01173F, 0x011C40],
[0x011C46, 0x011C6F],
[0x011C72, 0x01246F],
[0x012475, 0x016A6D],
[0x016A70, 0x016AF4],
[0x016AF6, 0x016B36],
[0x016B3C, 0x016B43],
[0x016B45, 0x01BC9E],
[0x01BCA0, 0x01DA86],
[0x01DA8C, 0x01E95D],
[0x01E960, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Punctuation}+$/u,
nonMatchSymbols,
"\\P{General_Category=Punctuation}"
);
testPropertyEscapes(
/^\P{General_Category=P}+$/u,
nonMatchSymbols,
"\\P{General_Category=P}"
);
testPropertyEscapes(
/^\P{General_Category=punct}+$/u,
nonMatchSymbols,
"\\P{General_Category=punct}"
);
testPropertyEscapes(
/^\P{gc=Punctuation}+$/u,
nonMatchSymbols,
"\\P{gc=Punctuation}"
);
testPropertyEscapes(
/^\P{gc=P}+$/u,
nonMatchSymbols,
"\\P{gc=P}"
);
testPropertyEscapes(
/^\P{gc=punct}+$/u,
nonMatchSymbols,
"\\P{gc=punct}"
);
testPropertyEscapes(
/^\P{Punctuation}+$/u,
nonMatchSymbols,
"\\P{Punctuation}"
);
testPropertyEscapes(
/^\P{P}+$/u,
nonMatchSymbols,
"\\P{P}"
);
testPropertyEscapes(
/^\P{punct}+$/u,
nonMatchSymbols,
"\\P{punct}"
);

View File

@ -0,0 +1,106 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Separator`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000020,
0x0000A0,
0x001680,
0x00202F,
0x00205F,
0x003000
],
ranges: [
[0x002000, 0x00200A],
[0x002028, 0x002029]
]
});
testPropertyEscapes(
/^\p{General_Category=Separator}+$/u,
matchSymbols,
"\\p{General_Category=Separator}"
);
testPropertyEscapes(
/^\p{General_Category=Z}+$/u,
matchSymbols,
"\\p{General_Category=Z}"
);
testPropertyEscapes(
/^\p{gc=Separator}+$/u,
matchSymbols,
"\\p{gc=Separator}"
);
testPropertyEscapes(
/^\p{gc=Z}+$/u,
matchSymbols,
"\\p{gc=Z}"
);
testPropertyEscapes(
/^\p{Separator}+$/u,
matchSymbols,
"\\p{Separator}"
);
testPropertyEscapes(
/^\p{Z}+$/u,
matchSymbols,
"\\p{Z}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00001F],
[0x000021, 0x00009F],
[0x0000A1, 0x00167F],
[0x001681, 0x001FFF],
[0x00200B, 0x002027],
[0x00202A, 0x00202E],
[0x002030, 0x00205E],
[0x002060, 0x002FFF],
[0x003001, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Separator}+$/u,
nonMatchSymbols,
"\\P{General_Category=Separator}"
);
testPropertyEscapes(
/^\P{General_Category=Z}+$/u,
nonMatchSymbols,
"\\P{General_Category=Z}"
);
testPropertyEscapes(
/^\P{gc=Separator}+$/u,
nonMatchSymbols,
"\\P{gc=Separator}"
);
testPropertyEscapes(
/^\P{gc=Z}+$/u,
nonMatchSymbols,
"\\P{gc=Z}"
);
testPropertyEscapes(
/^\P{Separator}+$/u,
nonMatchSymbols,
"\\P{Separator}"
);
testPropertyEscapes(
/^\P{Z}+$/u,
nonMatchSymbols,
"\\P{Z}"
);

View File

@ -0,0 +1,104 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Space_Separator`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000020,
0x0000A0,
0x001680,
0x00202F,
0x00205F,
0x003000
],
ranges: [
[0x002000, 0x00200A]
]
});
testPropertyEscapes(
/^\p{General_Category=Space_Separator}+$/u,
matchSymbols,
"\\p{General_Category=Space_Separator}"
);
testPropertyEscapes(
/^\p{General_Category=Zs}+$/u,
matchSymbols,
"\\p{General_Category=Zs}"
);
testPropertyEscapes(
/^\p{gc=Space_Separator}+$/u,
matchSymbols,
"\\p{gc=Space_Separator}"
);
testPropertyEscapes(
/^\p{gc=Zs}+$/u,
matchSymbols,
"\\p{gc=Zs}"
);
testPropertyEscapes(
/^\p{Space_Separator}+$/u,
matchSymbols,
"\\p{Space_Separator}"
);
testPropertyEscapes(
/^\p{Zs}+$/u,
matchSymbols,
"\\p{Zs}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00001F],
[0x000021, 0x00009F],
[0x0000A1, 0x00167F],
[0x001681, 0x001FFF],
[0x00200B, 0x00202E],
[0x002030, 0x00205E],
[0x002060, 0x002FFF],
[0x003001, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Space_Separator}+$/u,
nonMatchSymbols,
"\\P{General_Category=Space_Separator}"
);
testPropertyEscapes(
/^\P{General_Category=Zs}+$/u,
nonMatchSymbols,
"\\P{General_Category=Zs}"
);
testPropertyEscapes(
/^\P{gc=Space_Separator}+$/u,
nonMatchSymbols,
"\\P{gc=Space_Separator}"
);
testPropertyEscapes(
/^\P{gc=Zs}+$/u,
nonMatchSymbols,
"\\P{gc=Zs}"
);
testPropertyEscapes(
/^\P{Space_Separator}+$/u,
nonMatchSymbols,
"\\P{Space_Separator}"
);
testPropertyEscapes(
/^\P{Zs}+$/u,
nonMatchSymbols,
"\\P{Zs}"
);

View File

@ -0,0 +1,401 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Spacing_Mark`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000903,
0x00093B,
0x0009D7,
0x000A03,
0x000A83,
0x000AC9,
0x000B3E,
0x000B40,
0x000B57,
0x000BD7,
0x000CBE,
0x000D57,
0x000F7F,
0x001031,
0x001038,
0x00108F,
0x0017B6,
0x001A55,
0x001A57,
0x001A61,
0x001B04,
0x001B35,
0x001B3B,
0x001B82,
0x001BA1,
0x001BAA,
0x001BE7,
0x001BEE,
0x001CE1,
0x00A827,
0x00A983,
0x00AA4D,
0x00AA7B,
0x00AA7D,
0x00AAEB,
0x00AAF5,
0x00ABEC,
0x011000,
0x011002,
0x011082,
0x01112C,
0x011182,
0x011235,
0x011357,
0x011445,
0x0114B9,
0x0114C1,
0x0115BE,
0x01163E,
0x0116AC,
0x0116B6,
0x011726,
0x011C2F,
0x011C3E,
0x011CA9,
0x011CB1,
0x011CB4
],
ranges: [
[0x00093E, 0x000940],
[0x000949, 0x00094C],
[0x00094E, 0x00094F],
[0x000982, 0x000983],
[0x0009BE, 0x0009C0],
[0x0009C7, 0x0009C8],
[0x0009CB, 0x0009CC],
[0x000A3E, 0x000A40],
[0x000ABE, 0x000AC0],
[0x000ACB, 0x000ACC],
[0x000B02, 0x000B03],
[0x000B47, 0x000B48],
[0x000B4B, 0x000B4C],
[0x000BBE, 0x000BBF],
[0x000BC1, 0x000BC2],
[0x000BC6, 0x000BC8],
[0x000BCA, 0x000BCC],
[0x000C01, 0x000C03],
[0x000C41, 0x000C44],
[0x000C82, 0x000C83],
[0x000CC0, 0x000CC4],
[0x000CC7, 0x000CC8],
[0x000CCA, 0x000CCB],
[0x000CD5, 0x000CD6],
[0x000D02, 0x000D03],
[0x000D3E, 0x000D40],
[0x000D46, 0x000D48],
[0x000D4A, 0x000D4C],
[0x000D82, 0x000D83],
[0x000DCF, 0x000DD1],
[0x000DD8, 0x000DDF],
[0x000DF2, 0x000DF3],
[0x000F3E, 0x000F3F],
[0x00102B, 0x00102C],
[0x00103B, 0x00103C],
[0x001056, 0x001057],
[0x001062, 0x001064],
[0x001067, 0x00106D],
[0x001083, 0x001084],
[0x001087, 0x00108C],
[0x00109A, 0x00109C],
[0x0017BE, 0x0017C5],
[0x0017C7, 0x0017C8],
[0x001923, 0x001926],
[0x001929, 0x00192B],
[0x001930, 0x001931],
[0x001933, 0x001938],
[0x001A19, 0x001A1A],
[0x001A63, 0x001A64],
[0x001A6D, 0x001A72],
[0x001B3D, 0x001B41],
[0x001B43, 0x001B44],
[0x001BA6, 0x001BA7],
[0x001BEA, 0x001BEC],
[0x001BF2, 0x001BF3],
[0x001C24, 0x001C2B],
[0x001C34, 0x001C35],
[0x001CF2, 0x001CF3],
[0x00302E, 0x00302F],
[0x00A823, 0x00A824],
[0x00A880, 0x00A881],
[0x00A8B4, 0x00A8C3],
[0x00A952, 0x00A953],
[0x00A9B4, 0x00A9B5],
[0x00A9BA, 0x00A9BB],
[0x00A9BD, 0x00A9C0],
[0x00AA2F, 0x00AA30],
[0x00AA33, 0x00AA34],
[0x00AAEE, 0x00AAEF],
[0x00ABE3, 0x00ABE4],
[0x00ABE6, 0x00ABE7],
[0x00ABE9, 0x00ABEA],
[0x0110B0, 0x0110B2],
[0x0110B7, 0x0110B8],
[0x0111B3, 0x0111B5],
[0x0111BF, 0x0111C0],
[0x01122C, 0x01122E],
[0x011232, 0x011233],
[0x0112E0, 0x0112E2],
[0x011302, 0x011303],
[0x01133E, 0x01133F],
[0x011341, 0x011344],
[0x011347, 0x011348],
[0x01134B, 0x01134D],
[0x011362, 0x011363],
[0x011435, 0x011437],
[0x011440, 0x011441],
[0x0114B0, 0x0114B2],
[0x0114BB, 0x0114BE],
[0x0115AF, 0x0115B1],
[0x0115B8, 0x0115BB],
[0x011630, 0x011632],
[0x01163B, 0x01163C],
[0x0116AE, 0x0116AF],
[0x011720, 0x011721],
[0x016F51, 0x016F7E],
[0x01D165, 0x01D166],
[0x01D16D, 0x01D172]
]
});
testPropertyEscapes(
/^\p{General_Category=Spacing_Mark}+$/u,
matchSymbols,
"\\p{General_Category=Spacing_Mark}"
);
testPropertyEscapes(
/^\p{General_Category=Mc}+$/u,
matchSymbols,
"\\p{General_Category=Mc}"
);
testPropertyEscapes(
/^\p{gc=Spacing_Mark}+$/u,
matchSymbols,
"\\p{gc=Spacing_Mark}"
);
testPropertyEscapes(
/^\p{gc=Mc}+$/u,
matchSymbols,
"\\p{gc=Mc}"
);
testPropertyEscapes(
/^\p{Spacing_Mark}+$/u,
matchSymbols,
"\\p{Spacing_Mark}"
);
testPropertyEscapes(
/^\p{Mc}+$/u,
matchSymbols,
"\\p{Mc}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x00094D,
0x000ACA,
0x000B3F,
0x000BC0,
0x000BC9,
0x000CBF,
0x000CC9,
0x000D49,
0x0017C6,
0x001932,
0x001A56,
0x001A62,
0x001B3C,
0x001B42,
0x001BED,
0x00A9BC,
0x00AA7C,
0x00ABE5,
0x00ABE8,
0x00ABEB,
0x011001,
0x011234,
0x011340,
0x0114BA,
0x01163D,
0x0116AD
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000902],
[0x000904, 0x00093A],
[0x00093C, 0x00093D],
[0x000941, 0x000948],
[0x000950, 0x000981],
[0x000984, 0x0009BD],
[0x0009C1, 0x0009C6],
[0x0009C9, 0x0009CA],
[0x0009CD, 0x0009D6],
[0x0009D8, 0x000A02],
[0x000A04, 0x000A3D],
[0x000A41, 0x000A82],
[0x000A84, 0x000ABD],
[0x000AC1, 0x000AC8],
[0x000ACD, 0x000B01],
[0x000B04, 0x000B3D],
[0x000B41, 0x000B46],
[0x000B49, 0x000B4A],
[0x000B4D, 0x000B56],
[0x000B58, 0x000BBD],
[0x000BC3, 0x000BC5],
[0x000BCD, 0x000BD6],
[0x000BD8, 0x000C00],
[0x000C04, 0x000C40],
[0x000C45, 0x000C81],
[0x000C84, 0x000CBD],
[0x000CC5, 0x000CC6],
[0x000CCC, 0x000CD4],
[0x000CD7, 0x000D01],
[0x000D04, 0x000D3D],
[0x000D41, 0x000D45],
[0x000D4D, 0x000D56],
[0x000D58, 0x000D81],
[0x000D84, 0x000DCE],
[0x000DD2, 0x000DD7],
[0x000DE0, 0x000DF1],
[0x000DF4, 0x000F3D],
[0x000F40, 0x000F7E],
[0x000F80, 0x00102A],
[0x00102D, 0x001030],
[0x001032, 0x001037],
[0x001039, 0x00103A],
[0x00103D, 0x001055],
[0x001058, 0x001061],
[0x001065, 0x001066],
[0x00106E, 0x001082],
[0x001085, 0x001086],
[0x00108D, 0x00108E],
[0x001090, 0x001099],
[0x00109D, 0x0017B5],
[0x0017B7, 0x0017BD],
[0x0017C9, 0x001922],
[0x001927, 0x001928],
[0x00192C, 0x00192F],
[0x001939, 0x001A18],
[0x001A1B, 0x001A54],
[0x001A58, 0x001A60],
[0x001A65, 0x001A6C],
[0x001A73, 0x001B03],
[0x001B05, 0x001B34],
[0x001B36, 0x001B3A],
[0x001B45, 0x001B81],
[0x001B83, 0x001BA0],
[0x001BA2, 0x001BA5],
[0x001BA8, 0x001BA9],
[0x001BAB, 0x001BE6],
[0x001BE8, 0x001BE9],
[0x001BEF, 0x001BF1],
[0x001BF4, 0x001C23],
[0x001C2C, 0x001C33],
[0x001C36, 0x001CE0],
[0x001CE2, 0x001CF1],
[0x001CF4, 0x00302D],
[0x003030, 0x00A822],
[0x00A825, 0x00A826],
[0x00A828, 0x00A87F],
[0x00A882, 0x00A8B3],
[0x00A8C4, 0x00A951],
[0x00A954, 0x00A982],
[0x00A984, 0x00A9B3],
[0x00A9B6, 0x00A9B9],
[0x00A9C1, 0x00AA2E],
[0x00AA31, 0x00AA32],
[0x00AA35, 0x00AA4C],
[0x00AA4E, 0x00AA7A],
[0x00AA7E, 0x00AAEA],
[0x00AAEC, 0x00AAED],
[0x00AAF0, 0x00AAF4],
[0x00AAF6, 0x00ABE2],
[0x00ABED, 0x00DBFF],
[0x00E000, 0x010FFF],
[0x011003, 0x011081],
[0x011083, 0x0110AF],
[0x0110B3, 0x0110B6],
[0x0110B9, 0x01112B],
[0x01112D, 0x011181],
[0x011183, 0x0111B2],
[0x0111B6, 0x0111BE],
[0x0111C1, 0x01122B],
[0x01122F, 0x011231],
[0x011236, 0x0112DF],
[0x0112E3, 0x011301],
[0x011304, 0x01133D],
[0x011345, 0x011346],
[0x011349, 0x01134A],
[0x01134E, 0x011356],
[0x011358, 0x011361],
[0x011364, 0x011434],
[0x011438, 0x01143F],
[0x011442, 0x011444],
[0x011446, 0x0114AF],
[0x0114B3, 0x0114B8],
[0x0114BF, 0x0114C0],
[0x0114C2, 0x0115AE],
[0x0115B2, 0x0115B7],
[0x0115BC, 0x0115BD],
[0x0115BF, 0x01162F],
[0x011633, 0x01163A],
[0x01163F, 0x0116AB],
[0x0116B0, 0x0116B5],
[0x0116B7, 0x01171F],
[0x011722, 0x011725],
[0x011727, 0x011C2E],
[0x011C30, 0x011C3D],
[0x011C3F, 0x011CA8],
[0x011CAA, 0x011CB0],
[0x011CB2, 0x011CB3],
[0x011CB5, 0x016F50],
[0x016F7F, 0x01D164],
[0x01D167, 0x01D16C],
[0x01D173, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Spacing_Mark}+$/u,
nonMatchSymbols,
"\\P{General_Category=Spacing_Mark}"
);
testPropertyEscapes(
/^\P{General_Category=Mc}+$/u,
nonMatchSymbols,
"\\P{General_Category=Mc}"
);
testPropertyEscapes(
/^\P{gc=Spacing_Mark}+$/u,
nonMatchSymbols,
"\\P{gc=Spacing_Mark}"
);
testPropertyEscapes(
/^\P{gc=Mc}+$/u,
nonMatchSymbols,
"\\P{gc=Mc}"
);
testPropertyEscapes(
/^\P{Spacing_Mark}+$/u,
nonMatchSymbols,
"\\P{Spacing_Mark}"
);
testPropertyEscapes(
/^\P{Mc}+$/u,
nonMatchSymbols,
"\\P{Mc}"
);

View File

@ -0,0 +1,91 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Surrogate`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x00D800, 0x00DBFF]
]
});
testPropertyEscapes(
/^\p{General_Category=Surrogate}+$/u,
matchSymbols,
"\\p{General_Category=Surrogate}"
);
testPropertyEscapes(
/^\p{General_Category=Cs}+$/u,
matchSymbols,
"\\p{General_Category=Cs}"
);
testPropertyEscapes(
/^\p{gc=Surrogate}+$/u,
matchSymbols,
"\\p{gc=Surrogate}"
);
testPropertyEscapes(
/^\p{gc=Cs}+$/u,
matchSymbols,
"\\p{gc=Cs}"
);
testPropertyEscapes(
/^\p{Surrogate}+$/u,
matchSymbols,
"\\p{Surrogate}"
);
testPropertyEscapes(
/^\p{Cs}+$/u,
matchSymbols,
"\\p{Cs}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00D7FF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Surrogate}+$/u,
nonMatchSymbols,
"\\P{General_Category=Surrogate}"
);
testPropertyEscapes(
/^\P{General_Category=Cs}+$/u,
nonMatchSymbols,
"\\P{General_Category=Cs}"
);
testPropertyEscapes(
/^\P{gc=Surrogate}+$/u,
nonMatchSymbols,
"\\P{gc=Surrogate}"
);
testPropertyEscapes(
/^\P{gc=Cs}+$/u,
nonMatchSymbols,
"\\P{gc=Cs}"
);
testPropertyEscapes(
/^\P{Surrogate}+$/u,
nonMatchSymbols,
"\\P{Surrogate}"
);
testPropertyEscapes(
/^\P{Cs}+$/u,
nonMatchSymbols,
"\\P{Cs}"
);

View File

@ -0,0 +1,527 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Symbol`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000024,
0x00002B,
0x00005E,
0x000060,
0x00007C,
0x00007E,
0x0000AC,
0x0000B4,
0x0000B8,
0x0000D7,
0x0000F7,
0x0002ED,
0x000375,
0x0003F6,
0x000482,
0x00060B,
0x0006DE,
0x0006E9,
0x0007F6,
0x000AF1,
0x000B70,
0x000C7F,
0x000D4F,
0x000D79,
0x000E3F,
0x000F13,
0x000F34,
0x000F36,
0x000F38,
0x0017DB,
0x001940,
0x001FBD,
0x002044,
0x002052,
0x002114,
0x002125,
0x002127,
0x002129,
0x00212E,
0x00214F,
0x003004,
0x003020,
0x003250,
0x00AB5B,
0x00FB29,
0x00FE62,
0x00FE69,
0x00FF04,
0x00FF0B,
0x00FF3E,
0x00FF40,
0x00FF5C,
0x00FF5E,
0x0101A0,
0x010AC8,
0x01173F,
0x016B45,
0x01BC9C,
0x01D245,
0x01D6C1,
0x01D6DB,
0x01D6FB,
0x01D715,
0x01D735,
0x01D74F,
0x01D76F,
0x01D789,
0x01D7A9,
0x01D7C3,
0x01F930,
0x01F9C0
],
ranges: [
[0x00003C, 0x00003E],
[0x0000A2, 0x0000A6],
[0x0000A8, 0x0000A9],
[0x0000AE, 0x0000B1],
[0x0002C2, 0x0002C5],
[0x0002D2, 0x0002DF],
[0x0002E5, 0x0002EB],
[0x0002EF, 0x0002FF],
[0x000384, 0x000385],
[0x00058D, 0x00058F],
[0x000606, 0x000608],
[0x00060E, 0x00060F],
[0x0006FD, 0x0006FE],
[0x0009F2, 0x0009F3],
[0x0009FA, 0x0009FB],
[0x000BF3, 0x000BFA],
[0x000F01, 0x000F03],
[0x000F15, 0x000F17],
[0x000F1A, 0x000F1F],
[0x000FBE, 0x000FC5],
[0x000FC7, 0x000FCC],
[0x000FCE, 0x000FCF],
[0x000FD5, 0x000FD8],
[0x00109E, 0x00109F],
[0x001390, 0x001399],
[0x0019DE, 0x0019FF],
[0x001B61, 0x001B6A],
[0x001B74, 0x001B7C],
[0x001FBF, 0x001FC1],
[0x001FCD, 0x001FCF],
[0x001FDD, 0x001FDF],
[0x001FED, 0x001FEF],
[0x001FFD, 0x001FFE],
[0x00207A, 0x00207C],
[0x00208A, 0x00208C],
[0x0020A0, 0x0020BE],
[0x002100, 0x002101],
[0x002103, 0x002106],
[0x002108, 0x002109],
[0x002116, 0x002118],
[0x00211E, 0x002123],
[0x00213A, 0x00213B],
[0x002140, 0x002144],
[0x00214A, 0x00214D],
[0x00218A, 0x00218B],
[0x002190, 0x002307],
[0x00230C, 0x002328],
[0x00232B, 0x0023FE],
[0x002400, 0x002426],
[0x002440, 0x00244A],
[0x00249C, 0x0024E9],
[0x002500, 0x002767],
[0x002794, 0x0027C4],
[0x0027C7, 0x0027E5],
[0x0027F0, 0x002982],
[0x002999, 0x0029D7],
[0x0029DC, 0x0029FB],
[0x0029FE, 0x002B73],
[0x002B76, 0x002B95],
[0x002B98, 0x002BB9],
[0x002BBD, 0x002BC8],
[0x002BCA, 0x002BD1],
[0x002BEC, 0x002BEF],
[0x002CE5, 0x002CEA],
[0x002E80, 0x002E99],
[0x002E9B, 0x002EF3],
[0x002F00, 0x002FD5],
[0x002FF0, 0x002FFB],
[0x003012, 0x003013],
[0x003036, 0x003037],
[0x00303E, 0x00303F],
[0x00309B, 0x00309C],
[0x003190, 0x003191],
[0x003196, 0x00319F],
[0x0031C0, 0x0031E3],
[0x003200, 0x00321E],
[0x00322A, 0x003247],
[0x003260, 0x00327F],
[0x00328A, 0x0032B0],
[0x0032C0, 0x0032FE],
[0x003300, 0x0033FF],
[0x004DC0, 0x004DFF],
[0x00A490, 0x00A4C6],
[0x00A700, 0x00A716],
[0x00A720, 0x00A721],
[0x00A789, 0x00A78A],
[0x00A828, 0x00A82B],
[0x00A836, 0x00A839],
[0x00AA77, 0x00AA79],
[0x00FBB2, 0x00FBC1],
[0x00FDFC, 0x00FDFD],
[0x00FE64, 0x00FE66],
[0x00FF1C, 0x00FF1E],
[0x00FFE0, 0x00FFE6],
[0x00FFE8, 0x00FFEE],
[0x00FFFC, 0x00FFFD],
[0x010137, 0x01013F],
[0x010179, 0x010189],
[0x01018C, 0x01018E],
[0x010190, 0x01019B],
[0x0101D0, 0x0101FC],
[0x010877, 0x010878],
[0x016B3C, 0x016B3F],
[0x01D000, 0x01D0F5],
[0x01D100, 0x01D126],
[0x01D129, 0x01D164],
[0x01D16A, 0x01D16C],
[0x01D183, 0x01D184],
[0x01D18C, 0x01D1A9],
[0x01D1AE, 0x01D1E8],
[0x01D200, 0x01D241],
[0x01D300, 0x01D356],
[0x01D800, 0x01D9FF],
[0x01DA37, 0x01DA3A],
[0x01DA6D, 0x01DA74],
[0x01DA76, 0x01DA83],
[0x01DA85, 0x01DA86],
[0x01EEF0, 0x01EEF1],
[0x01F000, 0x01F02B],
[0x01F030, 0x01F093],
[0x01F0A0, 0x01F0AE],
[0x01F0B1, 0x01F0BF],
[0x01F0C1, 0x01F0CF],
[0x01F0D1, 0x01F0F5],
[0x01F110, 0x01F12E],
[0x01F130, 0x01F16B],
[0x01F170, 0x01F1AC],
[0x01F1E6, 0x01F202],
[0x01F210, 0x01F23B],
[0x01F240, 0x01F248],
[0x01F250, 0x01F251],
[0x01F300, 0x01F6D2],
[0x01F6E0, 0x01F6EC],
[0x01F6F0, 0x01F6F6],
[0x01F700, 0x01F773],
[0x01F780, 0x01F7D4],
[0x01F800, 0x01F80B],
[0x01F810, 0x01F847],
[0x01F850, 0x01F859],
[0x01F860, 0x01F887],
[0x01F890, 0x01F8AD],
[0x01F910, 0x01F91E],
[0x01F920, 0x01F927],
[0x01F933, 0x01F93E],
[0x01F940, 0x01F94B],
[0x01F950, 0x01F95E],
[0x01F980, 0x01F991]
]
});
testPropertyEscapes(
/^\p{General_Category=Symbol}+$/u,
matchSymbols,
"\\p{General_Category=Symbol}"
);
testPropertyEscapes(
/^\p{General_Category=S}+$/u,
matchSymbols,
"\\p{General_Category=S}"
);
testPropertyEscapes(
/^\p{gc=Symbol}+$/u,
matchSymbols,
"\\p{gc=Symbol}"
);
testPropertyEscapes(
/^\p{gc=S}+$/u,
matchSymbols,
"\\p{gc=S}"
);
testPropertyEscapes(
/^\p{Symbol}+$/u,
matchSymbols,
"\\p{Symbol}"
);
testPropertyEscapes(
/^\p{S}+$/u,
matchSymbols,
"\\p{S}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x00005F,
0x00007D,
0x0000A7,
0x0000AD,
0x0002EC,
0x0002EE,
0x000F14,
0x000F35,
0x000F37,
0x000FC6,
0x000FCD,
0x001FBE,
0x002102,
0x002107,
0x002115,
0x002124,
0x002126,
0x002128,
0x00214E,
0x0023FF,
0x002BC9,
0x002E9A,
0x0032FF,
0x00FE63,
0x00FF3F,
0x00FF5D,
0x00FFE7,
0x01018F,
0x01DA75,
0x01DA84,
0x01F0C0,
0x01F0D0,
0x01F12F,
0x01F91F,
0x01F93F
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000023],
[0x000025, 0x00002A],
[0x00002C, 0x00003B],
[0x00003F, 0x00005D],
[0x000061, 0x00007B],
[0x00007F, 0x0000A1],
[0x0000AA, 0x0000AB],
[0x0000B2, 0x0000B3],
[0x0000B5, 0x0000B7],
[0x0000B9, 0x0000D6],
[0x0000D8, 0x0000F6],
[0x0000F8, 0x0002C1],
[0x0002C6, 0x0002D1],
[0x0002E0, 0x0002E4],
[0x000300, 0x000374],
[0x000376, 0x000383],
[0x000386, 0x0003F5],
[0x0003F7, 0x000481],
[0x000483, 0x00058C],
[0x000590, 0x000605],
[0x000609, 0x00060A],
[0x00060C, 0x00060D],
[0x000610, 0x0006DD],
[0x0006DF, 0x0006E8],
[0x0006EA, 0x0006FC],
[0x0006FF, 0x0007F5],
[0x0007F7, 0x0009F1],
[0x0009F4, 0x0009F9],
[0x0009FC, 0x000AF0],
[0x000AF2, 0x000B6F],
[0x000B71, 0x000BF2],
[0x000BFB, 0x000C7E],
[0x000C80, 0x000D4E],
[0x000D50, 0x000D78],
[0x000D7A, 0x000E3E],
[0x000E40, 0x000F00],
[0x000F04, 0x000F12],
[0x000F18, 0x000F19],
[0x000F20, 0x000F33],
[0x000F39, 0x000FBD],
[0x000FD0, 0x000FD4],
[0x000FD9, 0x00109D],
[0x0010A0, 0x00138F],
[0x00139A, 0x0017DA],
[0x0017DC, 0x00193F],
[0x001941, 0x0019DD],
[0x001A00, 0x001B60],
[0x001B6B, 0x001B73],
[0x001B7D, 0x001FBC],
[0x001FC2, 0x001FCC],
[0x001FD0, 0x001FDC],
[0x001FE0, 0x001FEC],
[0x001FF0, 0x001FFC],
[0x001FFF, 0x002043],
[0x002045, 0x002051],
[0x002053, 0x002079],
[0x00207D, 0x002089],
[0x00208D, 0x00209F],
[0x0020BF, 0x0020FF],
[0x00210A, 0x002113],
[0x002119, 0x00211D],
[0x00212A, 0x00212D],
[0x00212F, 0x002139],
[0x00213C, 0x00213F],
[0x002145, 0x002149],
[0x002150, 0x002189],
[0x00218C, 0x00218F],
[0x002308, 0x00230B],
[0x002329, 0x00232A],
[0x002427, 0x00243F],
[0x00244B, 0x00249B],
[0x0024EA, 0x0024FF],
[0x002768, 0x002793],
[0x0027C5, 0x0027C6],
[0x0027E6, 0x0027EF],
[0x002983, 0x002998],
[0x0029D8, 0x0029DB],
[0x0029FC, 0x0029FD],
[0x002B74, 0x002B75],
[0x002B96, 0x002B97],
[0x002BBA, 0x002BBC],
[0x002BD2, 0x002BEB],
[0x002BF0, 0x002CE4],
[0x002CEB, 0x002E7F],
[0x002EF4, 0x002EFF],
[0x002FD6, 0x002FEF],
[0x002FFC, 0x003003],
[0x003005, 0x003011],
[0x003014, 0x00301F],
[0x003021, 0x003035],
[0x003038, 0x00303D],
[0x003040, 0x00309A],
[0x00309D, 0x00318F],
[0x003192, 0x003195],
[0x0031A0, 0x0031BF],
[0x0031E4, 0x0031FF],
[0x00321F, 0x003229],
[0x003248, 0x00324F],
[0x003251, 0x00325F],
[0x003280, 0x003289],
[0x0032B1, 0x0032BF],
[0x003400, 0x004DBF],
[0x004E00, 0x00A48F],
[0x00A4C7, 0x00A6FF],
[0x00A717, 0x00A71F],
[0x00A722, 0x00A788],
[0x00A78B, 0x00A827],
[0x00A82C, 0x00A835],
[0x00A83A, 0x00AA76],
[0x00AA7A, 0x00AB5A],
[0x00AB5C, 0x00DBFF],
[0x00E000, 0x00FB28],
[0x00FB2A, 0x00FBB1],
[0x00FBC2, 0x00FDFB],
[0x00FDFE, 0x00FE61],
[0x00FE67, 0x00FE68],
[0x00FE6A, 0x00FF03],
[0x00FF05, 0x00FF0A],
[0x00FF0C, 0x00FF1B],
[0x00FF1F, 0x00FF3D],
[0x00FF41, 0x00FF5B],
[0x00FF5F, 0x00FFDF],
[0x00FFEF, 0x00FFFB],
[0x00FFFE, 0x010136],
[0x010140, 0x010178],
[0x01018A, 0x01018B],
[0x01019C, 0x01019F],
[0x0101A1, 0x0101CF],
[0x0101FD, 0x010876],
[0x010879, 0x010AC7],
[0x010AC9, 0x01173E],
[0x011740, 0x016B3B],
[0x016B40, 0x016B44],
[0x016B46, 0x01BC9B],
[0x01BC9D, 0x01CFFF],
[0x01D0F6, 0x01D0FF],
[0x01D127, 0x01D128],
[0x01D165, 0x01D169],
[0x01D16D, 0x01D182],
[0x01D185, 0x01D18B],
[0x01D1AA, 0x01D1AD],
[0x01D1E9, 0x01D1FF],
[0x01D242, 0x01D244],
[0x01D246, 0x01D2FF],
[0x01D357, 0x01D6C0],
[0x01D6C2, 0x01D6DA],
[0x01D6DC, 0x01D6FA],
[0x01D6FC, 0x01D714],
[0x01D716, 0x01D734],
[0x01D736, 0x01D74E],
[0x01D750, 0x01D76E],
[0x01D770, 0x01D788],
[0x01D78A, 0x01D7A8],
[0x01D7AA, 0x01D7C2],
[0x01D7C4, 0x01D7FF],
[0x01DA00, 0x01DA36],
[0x01DA3B, 0x01DA6C],
[0x01DA87, 0x01EEEF],
[0x01EEF2, 0x01EFFF],
[0x01F02C, 0x01F02F],
[0x01F094, 0x01F09F],
[0x01F0AF, 0x01F0B0],
[0x01F0F6, 0x01F10F],
[0x01F16C, 0x01F16F],
[0x01F1AD, 0x01F1E5],
[0x01F203, 0x01F20F],
[0x01F23C, 0x01F23F],
[0x01F249, 0x01F24F],
[0x01F252, 0x01F2FF],
[0x01F6D3, 0x01F6DF],
[0x01F6ED, 0x01F6EF],
[0x01F6F7, 0x01F6FF],
[0x01F774, 0x01F77F],
[0x01F7D5, 0x01F7FF],
[0x01F80C, 0x01F80F],
[0x01F848, 0x01F84F],
[0x01F85A, 0x01F85F],
[0x01F888, 0x01F88F],
[0x01F8AE, 0x01F90F],
[0x01F928, 0x01F92F],
[0x01F931, 0x01F932],
[0x01F94C, 0x01F94F],
[0x01F95F, 0x01F97F],
[0x01F992, 0x01F9BF],
[0x01F9C1, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Symbol}+$/u,
nonMatchSymbols,
"\\P{General_Category=Symbol}"
);
testPropertyEscapes(
/^\P{General_Category=S}+$/u,
nonMatchSymbols,
"\\P{General_Category=S}"
);
testPropertyEscapes(
/^\P{gc=Symbol}+$/u,
nonMatchSymbols,
"\\P{gc=Symbol}"
);
testPropertyEscapes(
/^\P{gc=S}+$/u,
nonMatchSymbols,
"\\P{gc=S}"
);
testPropertyEscapes(
/^\P{Symbol}+$/u,
nonMatchSymbols,
"\\P{Symbol}"
);
testPropertyEscapes(
/^\P{S}+$/u,
nonMatchSymbols,
"\\P{S}"
);

View File

@ -0,0 +1,110 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `General_Category=Titlecase_Letter`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0001C5,
0x0001C8,
0x0001CB,
0x0001F2,
0x001FBC,
0x001FCC,
0x001FFC
],
ranges: [
[0x001F88, 0x001F8F],
[0x001F98, 0x001F9F],
[0x001FA8, 0x001FAF]
]
});
testPropertyEscapes(
/^\p{General_Category=Titlecase_Letter}+$/u,
matchSymbols,
"\\p{General_Category=Titlecase_Letter}"
);
testPropertyEscapes(
/^\p{General_Category=Lt}+$/u,
matchSymbols,
"\\p{General_Category=Lt}"
);
testPropertyEscapes(
/^\p{gc=Titlecase_Letter}+$/u,
matchSymbols,
"\\p{gc=Titlecase_Letter}"
);
testPropertyEscapes(
/^\p{gc=Lt}+$/u,
matchSymbols,
"\\p{gc=Lt}"
);
testPropertyEscapes(
/^\p{Titlecase_Letter}+$/u,
matchSymbols,
"\\p{Titlecase_Letter}"
);
testPropertyEscapes(
/^\p{Lt}+$/u,
matchSymbols,
"\\p{Lt}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0001C4],
[0x0001C6, 0x0001C7],
[0x0001C9, 0x0001CA],
[0x0001CC, 0x0001F1],
[0x0001F3, 0x001F87],
[0x001F90, 0x001F97],
[0x001FA0, 0x001FA7],
[0x001FB0, 0x001FBB],
[0x001FBD, 0x001FCB],
[0x001FCD, 0x001FFB],
[0x001FFD, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{General_Category=Titlecase_Letter}+$/u,
nonMatchSymbols,
"\\P{General_Category=Titlecase_Letter}"
);
testPropertyEscapes(
/^\P{General_Category=Lt}+$/u,
nonMatchSymbols,
"\\P{General_Category=Lt}"
);
testPropertyEscapes(
/^\P{gc=Titlecase_Letter}+$/u,
nonMatchSymbols,
"\\P{gc=Titlecase_Letter}"
);
testPropertyEscapes(
/^\P{gc=Lt}+$/u,
nonMatchSymbols,
"\\P{gc=Lt}"
);
testPropertyEscapes(
/^\P{Titlecase_Letter}+$/u,
nonMatchSymbols,
"\\P{Titlecase_Letter}"
);
testPropertyEscapes(
/^\P{Lt}+$/u,
nonMatchSymbols,
"\\P{Lt}"
);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,657 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Grapheme_Extend`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0005BF,
0x0005C7,
0x000670,
0x000711,
0x00093A,
0x00093C,
0x00094D,
0x000981,
0x0009BC,
0x0009BE,
0x0009CD,
0x0009D7,
0x000A3C,
0x000A51,
0x000A75,
0x000ABC,
0x000ACD,
0x000B01,
0x000B3C,
0x000B4D,
0x000B82,
0x000BBE,
0x000BC0,
0x000BCD,
0x000BD7,
0x000C00,
0x000C81,
0x000CBC,
0x000CBF,
0x000CC2,
0x000CC6,
0x000D01,
0x000D3E,
0x000D4D,
0x000D57,
0x000DCA,
0x000DCF,
0x000DD6,
0x000DDF,
0x000E31,
0x000EB1,
0x000F35,
0x000F37,
0x000F39,
0x000FC6,
0x001082,
0x00108D,
0x00109D,
0x0017C6,
0x0017DD,
0x0018A9,
0x001932,
0x001A1B,
0x001A56,
0x001A60,
0x001A62,
0x001A7F,
0x001B34,
0x001B3C,
0x001B42,
0x001BE6,
0x001BED,
0x001CED,
0x001CF4,
0x00200C,
0x002D7F,
0x00A802,
0x00A806,
0x00A80B,
0x00A9B3,
0x00A9BC,
0x00A9E5,
0x00AA43,
0x00AA4C,
0x00AA7C,
0x00AAB0,
0x00AAC1,
0x00AAF6,
0x00ABE5,
0x00ABE8,
0x00ABED,
0x00FB1E,
0x0101FD,
0x0102E0,
0x010A3F,
0x011001,
0x011173,
0x011234,
0x01123E,
0x0112DF,
0x01133C,
0x01133E,
0x011340,
0x011357,
0x011446,
0x0114B0,
0x0114BA,
0x0114BD,
0x0115AF,
0x01163D,
0x0116AB,
0x0116AD,
0x0116B7,
0x011C3F,
0x01D165,
0x01DA75,
0x01DA84
],
ranges: [
[0x000300, 0x00036F],
[0x000483, 0x000489],
[0x000591, 0x0005BD],
[0x0005C1, 0x0005C2],
[0x0005C4, 0x0005C5],
[0x000610, 0x00061A],
[0x00064B, 0x00065F],
[0x0006D6, 0x0006DC],
[0x0006DF, 0x0006E4],
[0x0006E7, 0x0006E8],
[0x0006EA, 0x0006ED],
[0x000730, 0x00074A],
[0x0007A6, 0x0007B0],
[0x0007EB, 0x0007F3],
[0x000816, 0x000819],
[0x00081B, 0x000823],
[0x000825, 0x000827],
[0x000829, 0x00082D],
[0x000859, 0x00085B],
[0x0008D4, 0x0008E1],
[0x0008E3, 0x000902],
[0x000941, 0x000948],
[0x000951, 0x000957],
[0x000962, 0x000963],
[0x0009C1, 0x0009C4],
[0x0009E2, 0x0009E3],
[0x000A01, 0x000A02],
[0x000A41, 0x000A42],
[0x000A47, 0x000A48],
[0x000A4B, 0x000A4D],
[0x000A70, 0x000A71],
[0x000A81, 0x000A82],
[0x000AC1, 0x000AC5],
[0x000AC7, 0x000AC8],
[0x000AE2, 0x000AE3],
[0x000B3E, 0x000B3F],
[0x000B41, 0x000B44],
[0x000B56, 0x000B57],
[0x000B62, 0x000B63],
[0x000C3E, 0x000C40],
[0x000C46, 0x000C48],
[0x000C4A, 0x000C4D],
[0x000C55, 0x000C56],
[0x000C62, 0x000C63],
[0x000CCC, 0x000CCD],
[0x000CD5, 0x000CD6],
[0x000CE2, 0x000CE3],
[0x000D41, 0x000D44],
[0x000D62, 0x000D63],
[0x000DD2, 0x000DD4],
[0x000E34, 0x000E3A],
[0x000E47, 0x000E4E],
[0x000EB4, 0x000EB9],
[0x000EBB, 0x000EBC],
[0x000EC8, 0x000ECD],
[0x000F18, 0x000F19],
[0x000F71, 0x000F7E],
[0x000F80, 0x000F84],
[0x000F86, 0x000F87],
[0x000F8D, 0x000F97],
[0x000F99, 0x000FBC],
[0x00102D, 0x001030],
[0x001032, 0x001037],
[0x001039, 0x00103A],
[0x00103D, 0x00103E],
[0x001058, 0x001059],
[0x00105E, 0x001060],
[0x001071, 0x001074],
[0x001085, 0x001086],
[0x00135D, 0x00135F],
[0x001712, 0x001714],
[0x001732, 0x001734],
[0x001752, 0x001753],
[0x001772, 0x001773],
[0x0017B4, 0x0017B5],
[0x0017B7, 0x0017BD],
[0x0017C9, 0x0017D3],
[0x00180B, 0x00180D],
[0x001885, 0x001886],
[0x001920, 0x001922],
[0x001927, 0x001928],
[0x001939, 0x00193B],
[0x001A17, 0x001A18],
[0x001A58, 0x001A5E],
[0x001A65, 0x001A6C],
[0x001A73, 0x001A7C],
[0x001AB0, 0x001ABE],
[0x001B00, 0x001B03],
[0x001B36, 0x001B3A],
[0x001B6B, 0x001B73],
[0x001B80, 0x001B81],
[0x001BA2, 0x001BA5],
[0x001BA8, 0x001BA9],
[0x001BAB, 0x001BAD],
[0x001BE8, 0x001BE9],
[0x001BEF, 0x001BF1],
[0x001C2C, 0x001C33],
[0x001C36, 0x001C37],
[0x001CD0, 0x001CD2],
[0x001CD4, 0x001CE0],
[0x001CE2, 0x001CE8],
[0x001CF8, 0x001CF9],
[0x001DC0, 0x001DF5],
[0x001DFB, 0x001DFF],
[0x0020D0, 0x0020F0],
[0x002CEF, 0x002CF1],
[0x002DE0, 0x002DFF],
[0x00302A, 0x00302F],
[0x003099, 0x00309A],
[0x00A66F, 0x00A672],
[0x00A674, 0x00A67D],
[0x00A69E, 0x00A69F],
[0x00A6F0, 0x00A6F1],
[0x00A825, 0x00A826],
[0x00A8C4, 0x00A8C5],
[0x00A8E0, 0x00A8F1],
[0x00A926, 0x00A92D],
[0x00A947, 0x00A951],
[0x00A980, 0x00A982],
[0x00A9B6, 0x00A9B9],
[0x00AA29, 0x00AA2E],
[0x00AA31, 0x00AA32],
[0x00AA35, 0x00AA36],
[0x00AAB2, 0x00AAB4],
[0x00AAB7, 0x00AAB8],
[0x00AABE, 0x00AABF],
[0x00AAEC, 0x00AAED],
[0x00FE00, 0x00FE0F],
[0x00FE20, 0x00FE2F],
[0x00FF9E, 0x00FF9F],
[0x010376, 0x01037A],
[0x010A01, 0x010A03],
[0x010A05, 0x010A06],
[0x010A0C, 0x010A0F],
[0x010A38, 0x010A3A],
[0x010AE5, 0x010AE6],
[0x011038, 0x011046],
[0x01107F, 0x011081],
[0x0110B3, 0x0110B6],
[0x0110B9, 0x0110BA],
[0x011100, 0x011102],
[0x011127, 0x01112B],
[0x01112D, 0x011134],
[0x011180, 0x011181],
[0x0111B6, 0x0111BE],
[0x0111CA, 0x0111CC],
[0x01122F, 0x011231],
[0x011236, 0x011237],
[0x0112E3, 0x0112EA],
[0x011300, 0x011301],
[0x011366, 0x01136C],
[0x011370, 0x011374],
[0x011438, 0x01143F],
[0x011442, 0x011444],
[0x0114B3, 0x0114B8],
[0x0114BF, 0x0114C0],
[0x0114C2, 0x0114C3],
[0x0115B2, 0x0115B5],
[0x0115BC, 0x0115BD],
[0x0115BF, 0x0115C0],
[0x0115DC, 0x0115DD],
[0x011633, 0x01163A],
[0x01163F, 0x011640],
[0x0116B0, 0x0116B5],
[0x01171D, 0x01171F],
[0x011722, 0x011725],
[0x011727, 0x01172B],
[0x011C30, 0x011C36],
[0x011C38, 0x011C3D],
[0x011C92, 0x011CA7],
[0x011CAA, 0x011CB0],
[0x011CB2, 0x011CB3],
[0x011CB5, 0x011CB6],
[0x016AF0, 0x016AF4],
[0x016B30, 0x016B36],
[0x016F8F, 0x016F92],
[0x01BC9D, 0x01BC9E],
[0x01D167, 0x01D169],
[0x01D16E, 0x01D172],
[0x01D17B, 0x01D182],
[0x01D185, 0x01D18B],
[0x01D1AA, 0x01D1AD],
[0x01D242, 0x01D244],
[0x01DA00, 0x01DA36],
[0x01DA3B, 0x01DA6C],
[0x01DA9B, 0x01DA9F],
[0x01DAA1, 0x01DAAF],
[0x01E000, 0x01E006],
[0x01E008, 0x01E018],
[0x01E01B, 0x01E021],
[0x01E023, 0x01E024],
[0x01E026, 0x01E02A],
[0x01E8D0, 0x01E8D6],
[0x01E944, 0x01E94A],
[0x0E0020, 0x0E007F],
[0x0E0100, 0x0E01EF]
]
});
testPropertyEscapes(
/^\p{Grapheme_Extend}+$/u,
matchSymbols,
"\\p{Grapheme_Extend}"
);
testPropertyEscapes(
/^\p{Gr_Ext}+$/u,
matchSymbols,
"\\p{Gr_Ext}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x0005BE,
0x0005C0,
0x0005C3,
0x0005C6,
0x0006E9,
0x00081A,
0x000824,
0x000828,
0x0008E2,
0x00093B,
0x0009BD,
0x000AC6,
0x000B3D,
0x000B40,
0x000BBF,
0x000C49,
0x000DD5,
0x000EBA,
0x000F36,
0x000F38,
0x000F7F,
0x000F85,
0x000F98,
0x001031,
0x001038,
0x0017B6,
0x001A57,
0x001A5F,
0x001A61,
0x001B35,
0x001B3B,
0x001BAA,
0x001BE7,
0x001BEE,
0x001CD3,
0x001CE1,
0x00A673,
0x00AAB1,
0x00AAC0,
0x010A04,
0x01112C,
0x011235,
0x01133D,
0x01133F,
0x011445,
0x0114B9,
0x0114BE,
0x0114C1,
0x0115BE,
0x01163E,
0x0116AC,
0x0116B6,
0x011726,
0x011C37,
0x011C3E,
0x011CB1,
0x011CB4,
0x01D166,
0x01DAA0,
0x01E007,
0x01E022,
0x01E025
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0002FF],
[0x000370, 0x000482],
[0x00048A, 0x000590],
[0x0005C8, 0x00060F],
[0x00061B, 0x00064A],
[0x000660, 0x00066F],
[0x000671, 0x0006D5],
[0x0006DD, 0x0006DE],
[0x0006E5, 0x0006E6],
[0x0006EE, 0x000710],
[0x000712, 0x00072F],
[0x00074B, 0x0007A5],
[0x0007B1, 0x0007EA],
[0x0007F4, 0x000815],
[0x00082E, 0x000858],
[0x00085C, 0x0008D3],
[0x000903, 0x000939],
[0x00093D, 0x000940],
[0x000949, 0x00094C],
[0x00094E, 0x000950],
[0x000958, 0x000961],
[0x000964, 0x000980],
[0x000982, 0x0009BB],
[0x0009BF, 0x0009C0],
[0x0009C5, 0x0009CC],
[0x0009CE, 0x0009D6],
[0x0009D8, 0x0009E1],
[0x0009E4, 0x000A00],
[0x000A03, 0x000A3B],
[0x000A3D, 0x000A40],
[0x000A43, 0x000A46],
[0x000A49, 0x000A4A],
[0x000A4E, 0x000A50],
[0x000A52, 0x000A6F],
[0x000A72, 0x000A74],
[0x000A76, 0x000A80],
[0x000A83, 0x000ABB],
[0x000ABD, 0x000AC0],
[0x000AC9, 0x000ACC],
[0x000ACE, 0x000AE1],
[0x000AE4, 0x000B00],
[0x000B02, 0x000B3B],
[0x000B45, 0x000B4C],
[0x000B4E, 0x000B55],
[0x000B58, 0x000B61],
[0x000B64, 0x000B81],
[0x000B83, 0x000BBD],
[0x000BC1, 0x000BCC],
[0x000BCE, 0x000BD6],
[0x000BD8, 0x000BFF],
[0x000C01, 0x000C3D],
[0x000C41, 0x000C45],
[0x000C4E, 0x000C54],
[0x000C57, 0x000C61],
[0x000C64, 0x000C80],
[0x000C82, 0x000CBB],
[0x000CBD, 0x000CBE],
[0x000CC0, 0x000CC1],
[0x000CC3, 0x000CC5],
[0x000CC7, 0x000CCB],
[0x000CCE, 0x000CD4],
[0x000CD7, 0x000CE1],
[0x000CE4, 0x000D00],
[0x000D02, 0x000D3D],
[0x000D3F, 0x000D40],
[0x000D45, 0x000D4C],
[0x000D4E, 0x000D56],
[0x000D58, 0x000D61],
[0x000D64, 0x000DC9],
[0x000DCB, 0x000DCE],
[0x000DD0, 0x000DD1],
[0x000DD7, 0x000DDE],
[0x000DE0, 0x000E30],
[0x000E32, 0x000E33],
[0x000E3B, 0x000E46],
[0x000E4F, 0x000EB0],
[0x000EB2, 0x000EB3],
[0x000EBD, 0x000EC7],
[0x000ECE, 0x000F17],
[0x000F1A, 0x000F34],
[0x000F3A, 0x000F70],
[0x000F88, 0x000F8C],
[0x000FBD, 0x000FC5],
[0x000FC7, 0x00102C],
[0x00103B, 0x00103C],
[0x00103F, 0x001057],
[0x00105A, 0x00105D],
[0x001061, 0x001070],
[0x001075, 0x001081],
[0x001083, 0x001084],
[0x001087, 0x00108C],
[0x00108E, 0x00109C],
[0x00109E, 0x00135C],
[0x001360, 0x001711],
[0x001715, 0x001731],
[0x001735, 0x001751],
[0x001754, 0x001771],
[0x001774, 0x0017B3],
[0x0017BE, 0x0017C5],
[0x0017C7, 0x0017C8],
[0x0017D4, 0x0017DC],
[0x0017DE, 0x00180A],
[0x00180E, 0x001884],
[0x001887, 0x0018A8],
[0x0018AA, 0x00191F],
[0x001923, 0x001926],
[0x001929, 0x001931],
[0x001933, 0x001938],
[0x00193C, 0x001A16],
[0x001A19, 0x001A1A],
[0x001A1C, 0x001A55],
[0x001A63, 0x001A64],
[0x001A6D, 0x001A72],
[0x001A7D, 0x001A7E],
[0x001A80, 0x001AAF],
[0x001ABF, 0x001AFF],
[0x001B04, 0x001B33],
[0x001B3D, 0x001B41],
[0x001B43, 0x001B6A],
[0x001B74, 0x001B7F],
[0x001B82, 0x001BA1],
[0x001BA6, 0x001BA7],
[0x001BAE, 0x001BE5],
[0x001BEA, 0x001BEC],
[0x001BF2, 0x001C2B],
[0x001C34, 0x001C35],
[0x001C38, 0x001CCF],
[0x001CE9, 0x001CEC],
[0x001CEE, 0x001CF3],
[0x001CF5, 0x001CF7],
[0x001CFA, 0x001DBF],
[0x001DF6, 0x001DFA],
[0x001E00, 0x00200B],
[0x00200D, 0x0020CF],
[0x0020F1, 0x002CEE],
[0x002CF2, 0x002D7E],
[0x002D80, 0x002DDF],
[0x002E00, 0x003029],
[0x003030, 0x003098],
[0x00309B, 0x00A66E],
[0x00A67E, 0x00A69D],
[0x00A6A0, 0x00A6EF],
[0x00A6F2, 0x00A801],
[0x00A803, 0x00A805],
[0x00A807, 0x00A80A],
[0x00A80C, 0x00A824],
[0x00A827, 0x00A8C3],
[0x00A8C6, 0x00A8DF],
[0x00A8F2, 0x00A925],
[0x00A92E, 0x00A946],
[0x00A952, 0x00A97F],
[0x00A983, 0x00A9B2],
[0x00A9B4, 0x00A9B5],
[0x00A9BA, 0x00A9BB],
[0x00A9BD, 0x00A9E4],
[0x00A9E6, 0x00AA28],
[0x00AA2F, 0x00AA30],
[0x00AA33, 0x00AA34],
[0x00AA37, 0x00AA42],
[0x00AA44, 0x00AA4B],
[0x00AA4D, 0x00AA7B],
[0x00AA7D, 0x00AAAF],
[0x00AAB5, 0x00AAB6],
[0x00AAB9, 0x00AABD],
[0x00AAC2, 0x00AAEB],
[0x00AAEE, 0x00AAF5],
[0x00AAF7, 0x00ABE4],
[0x00ABE6, 0x00ABE7],
[0x00ABE9, 0x00ABEC],
[0x00ABEE, 0x00DBFF],
[0x00E000, 0x00FB1D],
[0x00FB1F, 0x00FDFF],
[0x00FE10, 0x00FE1F],
[0x00FE30, 0x00FF9D],
[0x00FFA0, 0x0101FC],
[0x0101FE, 0x0102DF],
[0x0102E1, 0x010375],
[0x01037B, 0x010A00],
[0x010A07, 0x010A0B],
[0x010A10, 0x010A37],
[0x010A3B, 0x010A3E],
[0x010A40, 0x010AE4],
[0x010AE7, 0x011000],
[0x011002, 0x011037],
[0x011047, 0x01107E],
[0x011082, 0x0110B2],
[0x0110B7, 0x0110B8],
[0x0110BB, 0x0110FF],
[0x011103, 0x011126],
[0x011135, 0x011172],
[0x011174, 0x01117F],
[0x011182, 0x0111B5],
[0x0111BF, 0x0111C9],
[0x0111CD, 0x01122E],
[0x011232, 0x011233],
[0x011238, 0x01123D],
[0x01123F, 0x0112DE],
[0x0112E0, 0x0112E2],
[0x0112EB, 0x0112FF],
[0x011302, 0x01133B],
[0x011341, 0x011356],
[0x011358, 0x011365],
[0x01136D, 0x01136F],
[0x011375, 0x011437],
[0x011440, 0x011441],
[0x011447, 0x0114AF],
[0x0114B1, 0x0114B2],
[0x0114BB, 0x0114BC],
[0x0114C4, 0x0115AE],
[0x0115B0, 0x0115B1],
[0x0115B6, 0x0115BB],
[0x0115C1, 0x0115DB],
[0x0115DE, 0x011632],
[0x01163B, 0x01163C],
[0x011641, 0x0116AA],
[0x0116AE, 0x0116AF],
[0x0116B8, 0x01171C],
[0x011720, 0x011721],
[0x01172C, 0x011C2F],
[0x011C40, 0x011C91],
[0x011CA8, 0x011CA9],
[0x011CB7, 0x016AEF],
[0x016AF5, 0x016B2F],
[0x016B37, 0x016F8E],
[0x016F93, 0x01BC9C],
[0x01BC9F, 0x01D164],
[0x01D16A, 0x01D16D],
[0x01D173, 0x01D17A],
[0x01D183, 0x01D184],
[0x01D18C, 0x01D1A9],
[0x01D1AE, 0x01D241],
[0x01D245, 0x01D9FF],
[0x01DA37, 0x01DA3A],
[0x01DA6D, 0x01DA74],
[0x01DA76, 0x01DA83],
[0x01DA85, 0x01DA9A],
[0x01DAB0, 0x01DFFF],
[0x01E019, 0x01E01A],
[0x01E02B, 0x01E8CF],
[0x01E8D7, 0x01E943],
[0x01E94B, 0x0E001F],
[0x0E0080, 0x0E00FF],
[0x0E01F0, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Grapheme_Extend}+$/u,
nonMatchSymbols,
"\\P{Grapheme_Extend}"
);
testPropertyEscapes(
/^\P{Gr_Ext}+$/u,
nonMatchSymbols,
"\\P{Gr_Ext}"
);

View File

@ -0,0 +1,61 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Hex_Digit`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x000030, 0x000039],
[0x000041, 0x000046],
[0x000061, 0x000066],
[0x00FF10, 0x00FF19],
[0x00FF21, 0x00FF26],
[0x00FF41, 0x00FF46]
]
});
testPropertyEscapes(
/^\p{Hex_Digit}+$/u,
matchSymbols,
"\\p{Hex_Digit}"
);
testPropertyEscapes(
/^\p{Hex}+$/u,
matchSymbols,
"\\p{Hex}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00002F],
[0x00003A, 0x000040],
[0x000047, 0x000060],
[0x000067, 0x00DBFF],
[0x00E000, 0x00FF0F],
[0x00FF1A, 0x00FF20],
[0x00FF27, 0x00FF40],
[0x00FF47, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Hex_Digit}+$/u,
nonMatchSymbols,
"\\P{Hex_Digit}"
);
testPropertyEscapes(
/^\P{Hex}+$/u,
nonMatchSymbols,
"\\P{Hex}"
);

View File

@ -0,0 +1,53 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `IDS_Binary_Operator`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x002FF0, 0x002FF1],
[0x002FF4, 0x002FFB]
]
});
testPropertyEscapes(
/^\p{IDS_Binary_Operator}+$/u,
matchSymbols,
"\\p{IDS_Binary_Operator}"
);
testPropertyEscapes(
/^\p{IDSB}+$/u,
matchSymbols,
"\\p{IDSB}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x002FEF],
[0x002FF2, 0x002FF3],
[0x002FFC, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{IDS_Binary_Operator}+$/u,
nonMatchSymbols,
"\\P{IDS_Binary_Operator}"
);
testPropertyEscapes(
/^\P{IDSB}+$/u,
nonMatchSymbols,
"\\P{IDSB}"
);

View File

@ -0,0 +1,51 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `IDS_Trinary_Operator`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x002FF2, 0x002FF3]
]
});
testPropertyEscapes(
/^\p{IDS_Trinary_Operator}+$/u,
matchSymbols,
"\\p{IDS_Trinary_Operator}"
);
testPropertyEscapes(
/^\p{IDST}+$/u,
matchSymbols,
"\\p{IDST}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x002FF1],
[0x002FF4, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{IDS_Trinary_Operator}+$/u,
nonMatchSymbols,
"\\P{IDS_Trinary_Operator}"
);
testPropertyEscapes(
/^\P{IDST}+$/u,
nonMatchSymbols,
"\\P{IDST}"
);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,77 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Ideographic`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x003006, 0x003007],
[0x003021, 0x003029],
[0x003038, 0x00303A],
[0x003400, 0x004DB5],
[0x004E00, 0x009FD5],
[0x00F900, 0x00FA6D],
[0x00FA70, 0x00FAD9],
[0x017000, 0x0187EC],
[0x018800, 0x018AF2],
[0x020000, 0x02A6D6],
[0x02A700, 0x02B734],
[0x02B740, 0x02B81D],
[0x02B820, 0x02CEA1],
[0x02F800, 0x02FA1D]
]
});
testPropertyEscapes(
/^\p{Ideographic}+$/u,
matchSymbols,
"\\p{Ideographic}"
);
testPropertyEscapes(
/^\p{Ideo}+$/u,
matchSymbols,
"\\p{Ideo}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x003005],
[0x003008, 0x003020],
[0x00302A, 0x003037],
[0x00303B, 0x0033FF],
[0x004DB6, 0x004DFF],
[0x009FD6, 0x00DBFF],
[0x00E000, 0x00F8FF],
[0x00FA6E, 0x00FA6F],
[0x00FADA, 0x016FFF],
[0x0187ED, 0x0187FF],
[0x018AF3, 0x01FFFF],
[0x02A6D7, 0x02A6FF],
[0x02B735, 0x02B73F],
[0x02B81E, 0x02B81F],
[0x02CEA2, 0x02F7FF],
[0x02FA1E, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Ideographic}+$/u,
nonMatchSymbols,
"\\P{Ideographic}"
);
testPropertyEscapes(
/^\P{Ideo}+$/u,
nonMatchSymbols,
"\\P{Ideo}"
);

View File

@ -0,0 +1,51 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Join_Control`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00200C, 0x00200D]
]
});
testPropertyEscapes(
/^\p{Join_Control}+$/u,
matchSymbols,
"\\p{Join_Control}"
);
testPropertyEscapes(
/^\p{Join_C}+$/u,
matchSymbols,
"\\p{Join_C}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00200B],
[0x00200E, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Join_Control}+$/u,
nonMatchSymbols,
"\\P{Join_Control}"
);
testPropertyEscapes(
/^\P{Join_C}+$/u,
nonMatchSymbols,
"\\P{Join_C}"
);

View File

@ -0,0 +1,65 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Logical_Order_Exception`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0019BA,
0x00AAB9
],
ranges: [
[0x000E40, 0x000E44],
[0x000EC0, 0x000EC4],
[0x0019B5, 0x0019B7],
[0x00AAB5, 0x00AAB6],
[0x00AABB, 0x00AABC]
]
});
testPropertyEscapes(
/^\p{Logical_Order_Exception}+$/u,
matchSymbols,
"\\p{Logical_Order_Exception}"
);
testPropertyEscapes(
/^\p{LOE}+$/u,
matchSymbols,
"\\p{LOE}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x00AABA
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000E3F],
[0x000E45, 0x000EBF],
[0x000EC5, 0x0019B4],
[0x0019B8, 0x0019B9],
[0x0019BB, 0x00AAB4],
[0x00AAB7, 0x00AAB8],
[0x00AABD, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Logical_Order_Exception}+$/u,
nonMatchSymbols,
"\\P{Logical_Order_Exception}"
);
testPropertyEscapes(
/^\P{LOE}+$/u,
nonMatchSymbols,
"\\P{LOE}"
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,317 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Math`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00002B,
0x00005E,
0x00007C,
0x00007E,
0x0000AC,
0x0000B1,
0x0000D7,
0x0000F7,
0x0003D5,
0x002016,
0x002040,
0x002044,
0x002052,
0x0020E1,
0x002102,
0x002107,
0x002115,
0x002124,
0x00214B,
0x0021DD,
0x00237C,
0x0023B7,
0x0023D0,
0x0025E2,
0x0025E4,
0x002640,
0x002642,
0x00FB29,
0x00FE68,
0x00FF0B,
0x00FF3C,
0x00FF3E,
0x00FF5C,
0x00FF5E,
0x00FFE2,
0x01D4A2,
0x01D4BB,
0x01D546,
0x01EE24,
0x01EE27,
0x01EE39,
0x01EE3B,
0x01EE42,
0x01EE47,
0x01EE49,
0x01EE4B,
0x01EE54,
0x01EE57,
0x01EE59,
0x01EE5B,
0x01EE5D,
0x01EE5F,
0x01EE64,
0x01EE7E
],
ranges: [
[0x00003C, 0x00003E],
[0x0003D0, 0x0003D2],
[0x0003F0, 0x0003F1],
[0x0003F4, 0x0003F6],
[0x000606, 0x000608],
[0x002032, 0x002034],
[0x002061, 0x002064],
[0x00207A, 0x00207E],
[0x00208A, 0x00208E],
[0x0020D0, 0x0020DC],
[0x0020E5, 0x0020E6],
[0x0020EB, 0x0020EF],
[0x00210A, 0x002113],
[0x002118, 0x00211D],
[0x002128, 0x002129],
[0x00212C, 0x00212D],
[0x00212F, 0x002131],
[0x002133, 0x002138],
[0x00213C, 0x002149],
[0x002190, 0x0021A7],
[0x0021A9, 0x0021AE],
[0x0021B0, 0x0021B1],
[0x0021B6, 0x0021B7],
[0x0021BC, 0x0021DB],
[0x0021E4, 0x0021E5],
[0x0021F4, 0x0022FF],
[0x002308, 0x00230B],
[0x002320, 0x002321],
[0x00239B, 0x0023B5],
[0x0023DC, 0x0023E2],
[0x0025A0, 0x0025A1],
[0x0025AE, 0x0025B7],
[0x0025BC, 0x0025C1],
[0x0025C6, 0x0025C7],
[0x0025CA, 0x0025CB],
[0x0025CF, 0x0025D3],
[0x0025E7, 0x0025EC],
[0x0025F8, 0x0025FF],
[0x002605, 0x002606],
[0x002660, 0x002663],
[0x00266D, 0x00266F],
[0x0027C0, 0x0027FF],
[0x002900, 0x002AFF],
[0x002B30, 0x002B44],
[0x002B47, 0x002B4C],
[0x00FE61, 0x00FE66],
[0x00FF1C, 0x00FF1E],
[0x00FFE9, 0x00FFEC],
[0x01D400, 0x01D454],
[0x01D456, 0x01D49C],
[0x01D49E, 0x01D49F],
[0x01D4A5, 0x01D4A6],
[0x01D4A9, 0x01D4AC],
[0x01D4AE, 0x01D4B9],
[0x01D4BD, 0x01D4C3],
[0x01D4C5, 0x01D505],
[0x01D507, 0x01D50A],
[0x01D50D, 0x01D514],
[0x01D516, 0x01D51C],
[0x01D51E, 0x01D539],
[0x01D53B, 0x01D53E],
[0x01D540, 0x01D544],
[0x01D54A, 0x01D550],
[0x01D552, 0x01D6A5],
[0x01D6A8, 0x01D7CB],
[0x01D7CE, 0x01D7FF],
[0x01EE00, 0x01EE03],
[0x01EE05, 0x01EE1F],
[0x01EE21, 0x01EE22],
[0x01EE29, 0x01EE32],
[0x01EE34, 0x01EE37],
[0x01EE4D, 0x01EE4F],
[0x01EE51, 0x01EE52],
[0x01EE61, 0x01EE62],
[0x01EE67, 0x01EE6A],
[0x01EE6C, 0x01EE72],
[0x01EE74, 0x01EE77],
[0x01EE79, 0x01EE7C],
[0x01EE80, 0x01EE89],
[0x01EE8B, 0x01EE9B],
[0x01EEA1, 0x01EEA3],
[0x01EEA5, 0x01EEA9],
[0x01EEAB, 0x01EEBB],
[0x01EEF0, 0x01EEF1]
]
});
testPropertyEscapes(
/^\p{Math}+$/u,
matchSymbols,
"\\p{Math}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x00007D,
0x002114,
0x00212E,
0x002132,
0x00214A,
0x0021A8,
0x0021AF,
0x0021DC,
0x0023B6,
0x0025E3,
0x002641,
0x00FE67,
0x00FF3D,
0x00FF5D,
0x01D455,
0x01D49D,
0x01D4AD,
0x01D4BA,
0x01D4BC,
0x01D4C4,
0x01D506,
0x01D515,
0x01D51D,
0x01D53A,
0x01D53F,
0x01D545,
0x01D551,
0x01EE04,
0x01EE20,
0x01EE23,
0x01EE28,
0x01EE33,
0x01EE38,
0x01EE3A,
0x01EE48,
0x01EE4A,
0x01EE4C,
0x01EE50,
0x01EE53,
0x01EE58,
0x01EE5A,
0x01EE5C,
0x01EE5E,
0x01EE60,
0x01EE63,
0x01EE6B,
0x01EE73,
0x01EE78,
0x01EE7D,
0x01EE7F,
0x01EE8A,
0x01EEA4,
0x01EEAA
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00002A],
[0x00002C, 0x00003B],
[0x00003F, 0x00005D],
[0x00005F, 0x00007B],
[0x00007F, 0x0000AB],
[0x0000AD, 0x0000B0],
[0x0000B2, 0x0000D6],
[0x0000D8, 0x0000F6],
[0x0000F8, 0x0003CF],
[0x0003D3, 0x0003D4],
[0x0003D6, 0x0003EF],
[0x0003F2, 0x0003F3],
[0x0003F7, 0x000605],
[0x000609, 0x002015],
[0x002017, 0x002031],
[0x002035, 0x00203F],
[0x002041, 0x002043],
[0x002045, 0x002051],
[0x002053, 0x002060],
[0x002065, 0x002079],
[0x00207F, 0x002089],
[0x00208F, 0x0020CF],
[0x0020DD, 0x0020E0],
[0x0020E2, 0x0020E4],
[0x0020E7, 0x0020EA],
[0x0020F0, 0x002101],
[0x002103, 0x002106],
[0x002108, 0x002109],
[0x002116, 0x002117],
[0x00211E, 0x002123],
[0x002125, 0x002127],
[0x00212A, 0x00212B],
[0x002139, 0x00213B],
[0x00214C, 0x00218F],
[0x0021B2, 0x0021B5],
[0x0021B8, 0x0021BB],
[0x0021DE, 0x0021E3],
[0x0021E6, 0x0021F3],
[0x002300, 0x002307],
[0x00230C, 0x00231F],
[0x002322, 0x00237B],
[0x00237D, 0x00239A],
[0x0023B8, 0x0023CF],
[0x0023D1, 0x0023DB],
[0x0023E3, 0x00259F],
[0x0025A2, 0x0025AD],
[0x0025B8, 0x0025BB],
[0x0025C2, 0x0025C5],
[0x0025C8, 0x0025C9],
[0x0025CC, 0x0025CE],
[0x0025D4, 0x0025E1],
[0x0025E5, 0x0025E6],
[0x0025ED, 0x0025F7],
[0x002600, 0x002604],
[0x002607, 0x00263F],
[0x002643, 0x00265F],
[0x002664, 0x00266C],
[0x002670, 0x0027BF],
[0x002800, 0x0028FF],
[0x002B00, 0x002B2F],
[0x002B45, 0x002B46],
[0x002B4D, 0x00DBFF],
[0x00E000, 0x00FB28],
[0x00FB2A, 0x00FE60],
[0x00FE69, 0x00FF0A],
[0x00FF0C, 0x00FF1B],
[0x00FF1F, 0x00FF3B],
[0x00FF3F, 0x00FF5B],
[0x00FF5F, 0x00FFE1],
[0x00FFE3, 0x00FFE8],
[0x00FFED, 0x01D3FF],
[0x01D4A0, 0x01D4A1],
[0x01D4A3, 0x01D4A4],
[0x01D4A7, 0x01D4A8],
[0x01D50B, 0x01D50C],
[0x01D547, 0x01D549],
[0x01D6A6, 0x01D6A7],
[0x01D7CC, 0x01D7CD],
[0x01D800, 0x01EDFF],
[0x01EE25, 0x01EE26],
[0x01EE3C, 0x01EE41],
[0x01EE43, 0x01EE46],
[0x01EE55, 0x01EE56],
[0x01EE65, 0x01EE66],
[0x01EE9C, 0x01EEA0],
[0x01EEBC, 0x01EEEF],
[0x01EEF2, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Math}+$/u,
nonMatchSymbols,
"\\P{Math}"
);

View File

@ -0,0 +1,84 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Noncharacter_Code_Point`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00FDD0, 0x00FDEF],
[0x00FFFE, 0x00FFFF],
[0x01FFFE, 0x01FFFF],
[0x02FFFE, 0x02FFFF],
[0x03FFFE, 0x03FFFF],
[0x04FFFE, 0x04FFFF],
[0x05FFFE, 0x05FFFF],
[0x06FFFE, 0x06FFFF],
[0x07FFFE, 0x07FFFF],
[0x08FFFE, 0x08FFFF],
[0x09FFFE, 0x09FFFF],
[0x0AFFFE, 0x0AFFFF],
[0x0BFFFE, 0x0BFFFF],
[0x0CFFFE, 0x0CFFFF],
[0x0DFFFE, 0x0DFFFF],
[0x0EFFFE, 0x0EFFFF],
[0x0FFFFE, 0x0FFFFF],
[0x10FFFE, 0x10FFFF]
]
});
testPropertyEscapes(
/^\p{Noncharacter_Code_Point}+$/u,
matchSymbols,
"\\p{Noncharacter_Code_Point}"
);
testPropertyEscapes(
/^\p{NChar}+$/u,
matchSymbols,
"\\p{NChar}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00E000, 0x00FDCF],
[0x00FDF0, 0x00FFFD],
[0x010000, 0x01FFFD],
[0x020000, 0x02FFFD],
[0x030000, 0x03FFFD],
[0x040000, 0x04FFFD],
[0x050000, 0x05FFFD],
[0x060000, 0x06FFFD],
[0x070000, 0x07FFFD],
[0x080000, 0x08FFFD],
[0x090000, 0x09FFFD],
[0x0A0000, 0x0AFFFD],
[0x0B0000, 0x0BFFFD],
[0x0C0000, 0x0CFFFD],
[0x0D0000, 0x0DFFFD],
[0x0E0000, 0x0EFFFD],
[0x0F0000, 0x0FFFFD],
[0x100000, 0x10FFFD]
]
});
testPropertyEscapes(
/^\P{Noncharacter_Code_Point}+$/u,
nonMatchSymbols,
"\\P{Noncharacter_Code_Point}"
);
testPropertyEscapes(
/^\P{NChar}+$/u,
nonMatchSymbols,
"\\P{NChar}"
);

View File

@ -0,0 +1,107 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Pattern_Syntax`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000060,
0x0000A9,
0x0000AE,
0x0000B6,
0x0000BB,
0x0000BF,
0x0000D7,
0x0000F7,
0x003030
],
ranges: [
[0x000021, 0x00002F],
[0x00003A, 0x000040],
[0x00005B, 0x00005E],
[0x00007B, 0x00007E],
[0x0000A1, 0x0000A7],
[0x0000AB, 0x0000AC],
[0x0000B0, 0x0000B1],
[0x002010, 0x002027],
[0x002030, 0x00203E],
[0x002041, 0x002053],
[0x002055, 0x00205E],
[0x002190, 0x00245F],
[0x002500, 0x002775],
[0x002794, 0x002BFF],
[0x002E00, 0x002E7F],
[0x003001, 0x003003],
[0x003008, 0x003020],
[0x00FD3E, 0x00FD3F],
[0x00FE45, 0x00FE46]
]
});
testPropertyEscapes(
/^\p{Pattern_Syntax}+$/u,
matchSymbols,
"\\p{Pattern_Syntax}"
);
testPropertyEscapes(
/^\p{Pat_Syn}+$/u,
matchSymbols,
"\\p{Pat_Syn}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x00005F,
0x0000A8,
0x0000AA,
0x0000AD,
0x0000AF,
0x002054
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000020],
[0x000030, 0x000039],
[0x000041, 0x00005A],
[0x000061, 0x00007A],
[0x00007F, 0x0000A0],
[0x0000B2, 0x0000B5],
[0x0000B7, 0x0000BA],
[0x0000BC, 0x0000BE],
[0x0000C0, 0x0000D6],
[0x0000D8, 0x0000F6],
[0x0000F8, 0x00200F],
[0x002028, 0x00202F],
[0x00203F, 0x002040],
[0x00205F, 0x00218F],
[0x002460, 0x0024FF],
[0x002776, 0x002793],
[0x002C00, 0x002DFF],
[0x002E80, 0x003000],
[0x003004, 0x003007],
[0x003021, 0x00302F],
[0x003031, 0x00DBFF],
[0x00E000, 0x00FD3D],
[0x00FD40, 0x00FE44],
[0x00FE47, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Pattern_Syntax}+$/u,
nonMatchSymbols,
"\\P{Pattern_Syntax}"
);
testPropertyEscapes(
/^\P{Pat_Syn}+$/u,
nonMatchSymbols,
"\\P{Pat_Syn}"
);

View File

@ -0,0 +1,60 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Pattern_White_Space`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000020,
0x000085
],
ranges: [
[0x000009, 0x00000D],
[0x00200E, 0x00200F],
[0x002028, 0x002029]
]
});
testPropertyEscapes(
/^\p{Pattern_White_Space}+$/u,
matchSymbols,
"\\p{Pattern_White_Space}"
);
testPropertyEscapes(
/^\p{Pat_WS}+$/u,
matchSymbols,
"\\p{Pat_WS}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000008],
[0x00000E, 0x00001F],
[0x000021, 0x000084],
[0x000086, 0x00200D],
[0x002010, 0x002027],
[0x00202A, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Pattern_White_Space}+$/u,
nonMatchSymbols,
"\\P{Pattern_White_Space}"
);
testPropertyEscapes(
/^\P{Pat_WS}+$/u,
nonMatchSymbols,
"\\P{Pat_WS}"
);

View File

@ -0,0 +1,60 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Prepended_Concatenation_Mark`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0006DD,
0x00070F,
0x0008E2,
0x0110BD
],
ranges: [
[0x000600, 0x000605]
]
});
testPropertyEscapes(
/^\p{Prepended_Concatenation_Mark}+$/u,
matchSymbols,
"\\p{Prepended_Concatenation_Mark}"
);
testPropertyEscapes(
/^\p{PCM}+$/u,
matchSymbols,
"\\p{PCM}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0005FF],
[0x000606, 0x0006DC],
[0x0006DE, 0x00070E],
[0x000710, 0x0008E1],
[0x0008E3, 0x00DBFF],
[0x00E000, 0x0110BC],
[0x0110BE, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Prepended_Concatenation_Mark}+$/u,
nonMatchSymbols,
"\\P{Prepended_Concatenation_Mark}"
);
testPropertyEscapes(
/^\P{PCM}+$/u,
nonMatchSymbols,
"\\P{PCM}"
);

View File

@ -0,0 +1,76 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Quotation_Mark`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x000022,
0x000027,
0x0000AB,
0x0000BB,
0x002E42,
0x00FF02,
0x00FF07
],
ranges: [
[0x002018, 0x00201F],
[0x002039, 0x00203A],
[0x00300C, 0x00300F],
[0x00301D, 0x00301F],
[0x00FE41, 0x00FE44],
[0x00FF62, 0x00FF63]
]
});
testPropertyEscapes(
/^\p{Quotation_Mark}+$/u,
matchSymbols,
"\\p{Quotation_Mark}"
);
testPropertyEscapes(
/^\p{QMark}+$/u,
matchSymbols,
"\\p{QMark}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000021],
[0x000023, 0x000026],
[0x000028, 0x0000AA],
[0x0000AC, 0x0000BA],
[0x0000BC, 0x002017],
[0x002020, 0x002038],
[0x00203B, 0x002E41],
[0x002E43, 0x00300B],
[0x003010, 0x00301C],
[0x003020, 0x00DBFF],
[0x00E000, 0x00FE40],
[0x00FE45, 0x00FF01],
[0x00FF03, 0x00FF06],
[0x00FF08, 0x00FF61],
[0x00FF64, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Quotation_Mark}+$/u,
nonMatchSymbols,
"\\P{Quotation_Mark}"
);
testPropertyEscapes(
/^\P{QMark}+$/u,
nonMatchSymbols,
"\\P{QMark}"
);

View File

@ -0,0 +1,46 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Radical`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x002E80, 0x002E99],
[0x002E9B, 0x002EF3],
[0x002F00, 0x002FD5]
]
});
testPropertyEscapes(
/^\p{Radical}+$/u,
matchSymbols,
"\\p{Radical}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x002E9A
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x002E7F],
[0x002EF4, 0x002EFF],
[0x002FD6, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Radical}+$/u,
nonMatchSymbols,
"\\P{Radical}"
);

View File

@ -0,0 +1,75 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Adlam`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x01E900, 0x01E94A],
[0x01E950, 0x01E959],
[0x01E95E, 0x01E95F]
]
});
testPropertyEscapes(
/^\p{Script=Adlam}+$/u,
matchSymbols,
"\\p{Script=Adlam}"
);
testPropertyEscapes(
/^\p{Script=Adlm}+$/u,
matchSymbols,
"\\p{Script=Adlm}"
);
testPropertyEscapes(
/^\p{sc=Adlam}+$/u,
matchSymbols,
"\\p{sc=Adlam}"
);
testPropertyEscapes(
/^\p{sc=Adlm}+$/u,
matchSymbols,
"\\p{sc=Adlm}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00E000, 0x01E8FF],
[0x01E94B, 0x01E94F],
[0x01E95A, 0x01E95D],
[0x01E960, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Adlam}+$/u,
nonMatchSymbols,
"\\P{Script=Adlam}"
);
testPropertyEscapes(
/^\P{Script=Adlm}+$/u,
nonMatchSymbols,
"\\P{Script=Adlm}"
);
testPropertyEscapes(
/^\P{sc=Adlam}+$/u,
nonMatchSymbols,
"\\P{sc=Adlam}"
);
testPropertyEscapes(
/^\P{sc=Adlm}+$/u,
nonMatchSymbols,
"\\P{sc=Adlm}"
);

View File

@ -0,0 +1,75 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Ahom`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x011700, 0x011719],
[0x01171D, 0x01172B],
[0x011730, 0x01173F]
]
});
testPropertyEscapes(
/^\p{Script=Ahom}+$/u,
matchSymbols,
"\\p{Script=Ahom}"
);
testPropertyEscapes(
/^\p{Script=Ahom}+$/u,
matchSymbols,
"\\p{Script=Ahom}"
);
testPropertyEscapes(
/^\p{sc=Ahom}+$/u,
matchSymbols,
"\\p{sc=Ahom}"
);
testPropertyEscapes(
/^\p{sc=Ahom}+$/u,
matchSymbols,
"\\p{sc=Ahom}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00E000, 0x0116FF],
[0x01171A, 0x01171C],
[0x01172C, 0x01172F],
[0x011740, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Ahom}+$/u,
nonMatchSymbols,
"\\P{Script=Ahom}"
);
testPropertyEscapes(
/^\P{Script=Ahom}+$/u,
nonMatchSymbols,
"\\P{Script=Ahom}"
);
testPropertyEscapes(
/^\P{sc=Ahom}+$/u,
nonMatchSymbols,
"\\P{sc=Ahom}"
);
testPropertyEscapes(
/^\P{sc=Ahom}+$/u,
nonMatchSymbols,
"\\P{sc=Ahom}"
);

View File

@ -0,0 +1,71 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Anatolian_Hieroglyphs`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x014400, 0x014646]
]
});
testPropertyEscapes(
/^\p{Script=Anatolian_Hieroglyphs}+$/u,
matchSymbols,
"\\p{Script=Anatolian_Hieroglyphs}"
);
testPropertyEscapes(
/^\p{Script=Hluw}+$/u,
matchSymbols,
"\\p{Script=Hluw}"
);
testPropertyEscapes(
/^\p{sc=Anatolian_Hieroglyphs}+$/u,
matchSymbols,
"\\p{sc=Anatolian_Hieroglyphs}"
);
testPropertyEscapes(
/^\p{sc=Hluw}+$/u,
matchSymbols,
"\\p{sc=Hluw}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00E000, 0x0143FF],
[0x014647, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Anatolian_Hieroglyphs}+$/u,
nonMatchSymbols,
"\\P{Script=Anatolian_Hieroglyphs}"
);
testPropertyEscapes(
/^\P{Script=Hluw}+$/u,
nonMatchSymbols,
"\\P{Script=Hluw}"
);
testPropertyEscapes(
/^\P{sc=Anatolian_Hieroglyphs}+$/u,
nonMatchSymbols,
"\\P{sc=Anatolian_Hieroglyphs}"
);
testPropertyEscapes(
/^\P{sc=Hluw}+$/u,
nonMatchSymbols,
"\\P{sc=Hluw}"
);

View File

@ -0,0 +1,183 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Arabic`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00061E,
0x01EE24,
0x01EE27,
0x01EE39,
0x01EE3B,
0x01EE42,
0x01EE47,
0x01EE49,
0x01EE4B,
0x01EE54,
0x01EE57,
0x01EE59,
0x01EE5B,
0x01EE5D,
0x01EE5F,
0x01EE64,
0x01EE7E
],
ranges: [
[0x000600, 0x000604],
[0x000606, 0x00060B],
[0x00060D, 0x00061A],
[0x000620, 0x00063F],
[0x000641, 0x00064A],
[0x000656, 0x00066F],
[0x000671, 0x0006DC],
[0x0006DE, 0x0006FF],
[0x000750, 0x00077F],
[0x0008A0, 0x0008B4],
[0x0008B6, 0x0008BD],
[0x0008D4, 0x0008E1],
[0x0008E3, 0x0008FF],
[0x00FB50, 0x00FBC1],
[0x00FBD3, 0x00FD3D],
[0x00FD50, 0x00FD8F],
[0x00FD92, 0x00FDC7],
[0x00FDF0, 0x00FDFD],
[0x00FE70, 0x00FE74],
[0x00FE76, 0x00FEFC],
[0x010E60, 0x010E7E],
[0x01EE00, 0x01EE03],
[0x01EE05, 0x01EE1F],
[0x01EE21, 0x01EE22],
[0x01EE29, 0x01EE32],
[0x01EE34, 0x01EE37],
[0x01EE4D, 0x01EE4F],
[0x01EE51, 0x01EE52],
[0x01EE61, 0x01EE62],
[0x01EE67, 0x01EE6A],
[0x01EE6C, 0x01EE72],
[0x01EE74, 0x01EE77],
[0x01EE79, 0x01EE7C],
[0x01EE80, 0x01EE89],
[0x01EE8B, 0x01EE9B],
[0x01EEA1, 0x01EEA3],
[0x01EEA5, 0x01EEA9],
[0x01EEAB, 0x01EEBB],
[0x01EEF0, 0x01EEF1]
]
});
testPropertyEscapes(
/^\p{Script=Arabic}+$/u,
matchSymbols,
"\\p{Script=Arabic}"
);
testPropertyEscapes(
/^\p{Script=Arab}+$/u,
matchSymbols,
"\\p{Script=Arab}"
);
testPropertyEscapes(
/^\p{sc=Arabic}+$/u,
matchSymbols,
"\\p{sc=Arabic}"
);
testPropertyEscapes(
/^\p{sc=Arab}+$/u,
matchSymbols,
"\\p{sc=Arab}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x000605,
0x00060C,
0x00061F,
0x000640,
0x000670,
0x0006DD,
0x0008B5,
0x0008E2,
0x00FE75,
0x01EE04,
0x01EE20,
0x01EE23,
0x01EE28,
0x01EE33,
0x01EE38,
0x01EE3A,
0x01EE48,
0x01EE4A,
0x01EE4C,
0x01EE50,
0x01EE53,
0x01EE58,
0x01EE5A,
0x01EE5C,
0x01EE5E,
0x01EE60,
0x01EE63,
0x01EE6B,
0x01EE73,
0x01EE78,
0x01EE7D,
0x01EE7F,
0x01EE8A,
0x01EEA4,
0x01EEAA
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0005FF],
[0x00061B, 0x00061D],
[0x00064B, 0x000655],
[0x000700, 0x00074F],
[0x000780, 0x00089F],
[0x0008BE, 0x0008D3],
[0x000900, 0x00DBFF],
[0x00E000, 0x00FB4F],
[0x00FBC2, 0x00FBD2],
[0x00FD3E, 0x00FD4F],
[0x00FD90, 0x00FD91],
[0x00FDC8, 0x00FDEF],
[0x00FDFE, 0x00FE6F],
[0x00FEFD, 0x010E5F],
[0x010E7F, 0x01EDFF],
[0x01EE25, 0x01EE26],
[0x01EE3C, 0x01EE41],
[0x01EE43, 0x01EE46],
[0x01EE55, 0x01EE56],
[0x01EE65, 0x01EE66],
[0x01EE9C, 0x01EEA0],
[0x01EEBC, 0x01EEEF],
[0x01EEF2, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Arabic}+$/u,
nonMatchSymbols,
"\\P{Script=Arabic}"
);
testPropertyEscapes(
/^\P{Script=Arab}+$/u,
nonMatchSymbols,
"\\P{Script=Arab}"
);
testPropertyEscapes(
/^\P{sc=Arabic}+$/u,
nonMatchSymbols,
"\\P{sc=Arabic}"
);
testPropertyEscapes(
/^\P{sc=Arab}+$/u,
nonMatchSymbols,
"\\P{sc=Arab}"
);

View File

@ -0,0 +1,83 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Armenian`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x00058A
],
ranges: [
[0x000531, 0x000556],
[0x000559, 0x00055F],
[0x000561, 0x000587],
[0x00058D, 0x00058F],
[0x00FB13, 0x00FB17]
]
});
testPropertyEscapes(
/^\p{Script=Armenian}+$/u,
matchSymbols,
"\\p{Script=Armenian}"
);
testPropertyEscapes(
/^\p{Script=Armn}+$/u,
matchSymbols,
"\\p{Script=Armn}"
);
testPropertyEscapes(
/^\p{sc=Armenian}+$/u,
matchSymbols,
"\\p{sc=Armenian}"
);
testPropertyEscapes(
/^\p{sc=Armn}+$/u,
matchSymbols,
"\\p{sc=Armn}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x000560
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x000530],
[0x000557, 0x000558],
[0x000588, 0x000589],
[0x00058B, 0x00058C],
[0x000590, 0x00DBFF],
[0x00E000, 0x00FB12],
[0x00FB18, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Armenian}+$/u,
nonMatchSymbols,
"\\P{Script=Armenian}"
);
testPropertyEscapes(
/^\P{Script=Armn}+$/u,
nonMatchSymbols,
"\\P{Script=Armn}"
);
testPropertyEscapes(
/^\P{sc=Armenian}+$/u,
nonMatchSymbols,
"\\P{sc=Armenian}"
);
testPropertyEscapes(
/^\P{sc=Armn}+$/u,
nonMatchSymbols,
"\\P{sc=Armn}"
);

View File

@ -0,0 +1,73 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Avestan`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x010B00, 0x010B35],
[0x010B39, 0x010B3F]
]
});
testPropertyEscapes(
/^\p{Script=Avestan}+$/u,
matchSymbols,
"\\p{Script=Avestan}"
);
testPropertyEscapes(
/^\p{Script=Avst}+$/u,
matchSymbols,
"\\p{Script=Avst}"
);
testPropertyEscapes(
/^\p{sc=Avestan}+$/u,
matchSymbols,
"\\p{sc=Avestan}"
);
testPropertyEscapes(
/^\p{sc=Avst}+$/u,
matchSymbols,
"\\p{sc=Avst}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00E000, 0x010AFF],
[0x010B36, 0x010B38],
[0x010B40, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Avestan}+$/u,
nonMatchSymbols,
"\\P{Script=Avestan}"
);
testPropertyEscapes(
/^\P{Script=Avst}+$/u,
nonMatchSymbols,
"\\P{Script=Avst}"
);
testPropertyEscapes(
/^\P{sc=Avestan}+$/u,
nonMatchSymbols,
"\\P{sc=Avestan}"
);
testPropertyEscapes(
/^\P{sc=Avst}+$/u,
nonMatchSymbols,
"\\P{sc=Avst}"
);

View File

@ -0,0 +1,73 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Balinese`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x001B00, 0x001B4B],
[0x001B50, 0x001B7C]
]
});
testPropertyEscapes(
/^\p{Script=Balinese}+$/u,
matchSymbols,
"\\p{Script=Balinese}"
);
testPropertyEscapes(
/^\p{Script=Bali}+$/u,
matchSymbols,
"\\p{Script=Bali}"
);
testPropertyEscapes(
/^\p{sc=Balinese}+$/u,
matchSymbols,
"\\p{sc=Balinese}"
);
testPropertyEscapes(
/^\p{sc=Bali}+$/u,
matchSymbols,
"\\p{sc=Bali}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x001AFF],
[0x001B4C, 0x001B4F],
[0x001B7D, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Balinese}+$/u,
nonMatchSymbols,
"\\P{Script=Balinese}"
);
testPropertyEscapes(
/^\P{Script=Bali}+$/u,
nonMatchSymbols,
"\\P{Script=Bali}"
);
testPropertyEscapes(
/^\P{sc=Balinese}+$/u,
nonMatchSymbols,
"\\P{sc=Balinese}"
);
testPropertyEscapes(
/^\P{sc=Bali}+$/u,
nonMatchSymbols,
"\\P{sc=Bali}"
);

View File

@ -0,0 +1,73 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Bamum`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00A6A0, 0x00A6F7],
[0x016800, 0x016A38]
]
});
testPropertyEscapes(
/^\p{Script=Bamum}+$/u,
matchSymbols,
"\\p{Script=Bamum}"
);
testPropertyEscapes(
/^\p{Script=Bamu}+$/u,
matchSymbols,
"\\p{Script=Bamu}"
);
testPropertyEscapes(
/^\p{sc=Bamum}+$/u,
matchSymbols,
"\\p{sc=Bamum}"
);
testPropertyEscapes(
/^\p{sc=Bamu}+$/u,
matchSymbols,
"\\p{sc=Bamu}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00A69F],
[0x00A6F8, 0x00DBFF],
[0x00E000, 0x0167FF],
[0x016A39, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Bamum}+$/u,
nonMatchSymbols,
"\\P{Script=Bamum}"
);
testPropertyEscapes(
/^\P{Script=Bamu}+$/u,
nonMatchSymbols,
"\\P{Script=Bamu}"
);
testPropertyEscapes(
/^\P{sc=Bamum}+$/u,
nonMatchSymbols,
"\\P{sc=Bamum}"
);
testPropertyEscapes(
/^\P{sc=Bamu}+$/u,
nonMatchSymbols,
"\\P{sc=Bamu}"
);

View File

@ -0,0 +1,73 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Bassa_Vah`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x016AD0, 0x016AED],
[0x016AF0, 0x016AF5]
]
});
testPropertyEscapes(
/^\p{Script=Bassa_Vah}+$/u,
matchSymbols,
"\\p{Script=Bassa_Vah}"
);
testPropertyEscapes(
/^\p{Script=Bass}+$/u,
matchSymbols,
"\\p{Script=Bass}"
);
testPropertyEscapes(
/^\p{sc=Bassa_Vah}+$/u,
matchSymbols,
"\\p{sc=Bassa_Vah}"
);
testPropertyEscapes(
/^\p{sc=Bass}+$/u,
matchSymbols,
"\\p{sc=Bass}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00E000, 0x016ACF],
[0x016AEE, 0x016AEF],
[0x016AF6, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Bassa_Vah}+$/u,
nonMatchSymbols,
"\\P{Script=Bassa_Vah}"
);
testPropertyEscapes(
/^\P{Script=Bass}+$/u,
nonMatchSymbols,
"\\P{Script=Bass}"
);
testPropertyEscapes(
/^\P{sc=Bassa_Vah}+$/u,
nonMatchSymbols,
"\\P{sc=Bassa_Vah}"
);
testPropertyEscapes(
/^\P{sc=Bass}+$/u,
nonMatchSymbols,
"\\P{sc=Bass}"
);

View File

@ -0,0 +1,73 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Batak`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x001BC0, 0x001BF3],
[0x001BFC, 0x001BFF]
]
});
testPropertyEscapes(
/^\p{Script=Batak}+$/u,
matchSymbols,
"\\p{Script=Batak}"
);
testPropertyEscapes(
/^\p{Script=Batk}+$/u,
matchSymbols,
"\\p{Script=Batk}"
);
testPropertyEscapes(
/^\p{sc=Batak}+$/u,
matchSymbols,
"\\p{sc=Batak}"
);
testPropertyEscapes(
/^\p{sc=Batk}+$/u,
matchSymbols,
"\\p{sc=Batk}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x001BBF],
[0x001BF4, 0x001BFB],
[0x001C00, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Batak}+$/u,
nonMatchSymbols,
"\\P{Script=Batak}"
);
testPropertyEscapes(
/^\P{Script=Batk}+$/u,
nonMatchSymbols,
"\\P{Script=Batk}"
);
testPropertyEscapes(
/^\P{sc=Batak}+$/u,
nonMatchSymbols,
"\\P{sc=Batak}"
);
testPropertyEscapes(
/^\P{sc=Batk}+$/u,
nonMatchSymbols,
"\\P{sc=Batk}"
);

View File

@ -0,0 +1,99 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Bengali`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x0009B2,
0x0009D7
],
ranges: [
[0x000980, 0x000983],
[0x000985, 0x00098C],
[0x00098F, 0x000990],
[0x000993, 0x0009A8],
[0x0009AA, 0x0009B0],
[0x0009B6, 0x0009B9],
[0x0009BC, 0x0009C4],
[0x0009C7, 0x0009C8],
[0x0009CB, 0x0009CE],
[0x0009DC, 0x0009DD],
[0x0009DF, 0x0009E3],
[0x0009E6, 0x0009FB]
]
});
testPropertyEscapes(
/^\p{Script=Bengali}+$/u,
matchSymbols,
"\\p{Script=Bengali}"
);
testPropertyEscapes(
/^\p{Script=Beng}+$/u,
matchSymbols,
"\\p{Script=Beng}"
);
testPropertyEscapes(
/^\p{sc=Bengali}+$/u,
matchSymbols,
"\\p{sc=Bengali}"
);
testPropertyEscapes(
/^\p{sc=Beng}+$/u,
matchSymbols,
"\\p{sc=Beng}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x000984,
0x0009A9,
0x0009B1,
0x0009DE
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00097F],
[0x00098D, 0x00098E],
[0x000991, 0x000992],
[0x0009B3, 0x0009B5],
[0x0009BA, 0x0009BB],
[0x0009C5, 0x0009C6],
[0x0009C9, 0x0009CA],
[0x0009CF, 0x0009D6],
[0x0009D8, 0x0009DB],
[0x0009E4, 0x0009E5],
[0x0009FC, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Bengali}+$/u,
nonMatchSymbols,
"\\P{Script=Bengali}"
);
testPropertyEscapes(
/^\P{Script=Beng}+$/u,
nonMatchSymbols,
"\\P{Script=Beng}"
);
testPropertyEscapes(
/^\P{sc=Bengali}+$/u,
nonMatchSymbols,
"\\P{sc=Bengali}"
);
testPropertyEscapes(
/^\P{sc=Beng}+$/u,
nonMatchSymbols,
"\\P{sc=Beng}"
);

View File

@ -0,0 +1,78 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Bhaiksuki`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x011C00, 0x011C08],
[0x011C0A, 0x011C36],
[0x011C38, 0x011C45],
[0x011C50, 0x011C6C]
]
});
testPropertyEscapes(
/^\p{Script=Bhaiksuki}+$/u,
matchSymbols,
"\\p{Script=Bhaiksuki}"
);
testPropertyEscapes(
/^\p{Script=Bhks}+$/u,
matchSymbols,
"\\p{Script=Bhks}"
);
testPropertyEscapes(
/^\p{sc=Bhaiksuki}+$/u,
matchSymbols,
"\\p{sc=Bhaiksuki}"
);
testPropertyEscapes(
/^\p{sc=Bhks}+$/u,
matchSymbols,
"\\p{sc=Bhks}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [
0x011C09,
0x011C37
],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00E000, 0x011BFF],
[0x011C46, 0x011C4F],
[0x011C6D, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Bhaiksuki}+$/u,
nonMatchSymbols,
"\\P{Script=Bhaiksuki}"
);
testPropertyEscapes(
/^\P{Script=Bhks}+$/u,
nonMatchSymbols,
"\\P{Script=Bhks}"
);
testPropertyEscapes(
/^\P{sc=Bhaiksuki}+$/u,
nonMatchSymbols,
"\\P{sc=Bhaiksuki}"
);
testPropertyEscapes(
/^\P{sc=Bhks}+$/u,
nonMatchSymbols,
"\\P{sc=Bhks}"
);

View File

@ -0,0 +1,75 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Bopomofo`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x0002EA, 0x0002EB],
[0x003105, 0x00312D],
[0x0031A0, 0x0031BA]
]
});
testPropertyEscapes(
/^\p{Script=Bopomofo}+$/u,
matchSymbols,
"\\p{Script=Bopomofo}"
);
testPropertyEscapes(
/^\p{Script=Bopo}+$/u,
matchSymbols,
"\\p{Script=Bopo}"
);
testPropertyEscapes(
/^\p{sc=Bopomofo}+$/u,
matchSymbols,
"\\p{sc=Bopomofo}"
);
testPropertyEscapes(
/^\p{sc=Bopo}+$/u,
matchSymbols,
"\\p{sc=Bopo}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0002E9],
[0x0002EC, 0x003104],
[0x00312E, 0x00319F],
[0x0031BB, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Bopomofo}+$/u,
nonMatchSymbols,
"\\P{Script=Bopomofo}"
);
testPropertyEscapes(
/^\P{Script=Bopo}+$/u,
nonMatchSymbols,
"\\P{Script=Bopo}"
);
testPropertyEscapes(
/^\P{sc=Bopomofo}+$/u,
nonMatchSymbols,
"\\P{sc=Bopomofo}"
);
testPropertyEscapes(
/^\P{sc=Bopo}+$/u,
nonMatchSymbols,
"\\P{sc=Bopo}"
);

View File

@ -0,0 +1,76 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Brahmi`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [
0x01107F
],
ranges: [
[0x011000, 0x01104D],
[0x011052, 0x01106F]
]
});
testPropertyEscapes(
/^\p{Script=Brahmi}+$/u,
matchSymbols,
"\\p{Script=Brahmi}"
);
testPropertyEscapes(
/^\p{Script=Brah}+$/u,
matchSymbols,
"\\p{Script=Brah}"
);
testPropertyEscapes(
/^\p{sc=Brahmi}+$/u,
matchSymbols,
"\\p{sc=Brahmi}"
);
testPropertyEscapes(
/^\p{sc=Brah}+$/u,
matchSymbols,
"\\p{sc=Brah}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x00DBFF],
[0x00E000, 0x010FFF],
[0x01104E, 0x011051],
[0x011070, 0x01107E],
[0x011080, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Brahmi}+$/u,
nonMatchSymbols,
"\\P{Script=Brahmi}"
);
testPropertyEscapes(
/^\P{Script=Brah}+$/u,
nonMatchSymbols,
"\\P{Script=Brah}"
);
testPropertyEscapes(
/^\P{sc=Brahmi}+$/u,
nonMatchSymbols,
"\\P{sc=Brahmi}"
);
testPropertyEscapes(
/^\P{sc=Brah}+$/u,
nonMatchSymbols,
"\\P{sc=Brah}"
);

View File

@ -0,0 +1,71 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Braille`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x002800, 0x0028FF]
]
});
testPropertyEscapes(
/^\p{Script=Braille}+$/u,
matchSymbols,
"\\p{Script=Braille}"
);
testPropertyEscapes(
/^\p{Script=Brai}+$/u,
matchSymbols,
"\\p{Script=Brai}"
);
testPropertyEscapes(
/^\p{sc=Braille}+$/u,
matchSymbols,
"\\p{sc=Braille}"
);
testPropertyEscapes(
/^\p{sc=Brai}+$/u,
matchSymbols,
"\\p{sc=Brai}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0027FF],
[0x002900, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Braille}+$/u,
nonMatchSymbols,
"\\P{Script=Braille}"
);
testPropertyEscapes(
/^\P{Script=Brai}+$/u,
nonMatchSymbols,
"\\P{Script=Brai}"
);
testPropertyEscapes(
/^\P{sc=Braille}+$/u,
nonMatchSymbols,
"\\P{sc=Braille}"
);
testPropertyEscapes(
/^\P{sc=Brai}+$/u,
nonMatchSymbols,
"\\P{sc=Brai}"
);

View File

@ -0,0 +1,73 @@
// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes for `Script=Buginese`
info: |
Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
Unicode v9.0.0
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
includes: [regExpUtils.js]
---*/
const matchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x001A00, 0x001A1B],
[0x001A1E, 0x001A1F]
]
});
testPropertyEscapes(
/^\p{Script=Buginese}+$/u,
matchSymbols,
"\\p{Script=Buginese}"
);
testPropertyEscapes(
/^\p{Script=Bugi}+$/u,
matchSymbols,
"\\p{Script=Bugi}"
);
testPropertyEscapes(
/^\p{sc=Buginese}+$/u,
matchSymbols,
"\\p{sc=Buginese}"
);
testPropertyEscapes(
/^\p{sc=Bugi}+$/u,
matchSymbols,
"\\p{sc=Bugi}"
);
const nonMatchSymbols = buildString({
loneCodePoints: [],
ranges: [
[0x00DC00, 0x00DFFF],
[0x000000, 0x0019FF],
[0x001A1C, 0x001A1D],
[0x001A20, 0x00DBFF],
[0x00E000, 0x10FFFF]
]
});
testPropertyEscapes(
/^\P{Script=Buginese}+$/u,
nonMatchSymbols,
"\\P{Script=Buginese}"
);
testPropertyEscapes(
/^\P{Script=Bugi}+$/u,
nonMatchSymbols,
"\\P{Script=Bugi}"
);
testPropertyEscapes(
/^\P{sc=Buginese}+$/u,
nonMatchSymbols,
"\\P{sc=Buginese}"
);
testPropertyEscapes(
/^\P{sc=Bugi}+$/u,
nonMatchSymbols,
"\\P{sc=Bugi}"
);

Some files were not shown because too many files have changed in this diff Show More