Commit 52dc1d79 authored by Mathias Bynens's avatar Mathias Bynens Committed by Commit Bot

[regexp] Update RegExp property sequence data to Unicode 12

Unicode v12 was released today:
https://unicode.org/versions/Unicode12.0.0/

This patch updates the following sequence property escapes per
Unicode 12:

- Emoji_Flag_Sequence (no changes)
- Emoji_Keycap_Sequence (no changes)
- Emoji_Tag_Sequence (no changes)
- Emoji_ZWJ_Sequence

Note that Emoji_Modifier_Sequence is still using Unicode 11 data. This
will be fixed automatically once a version of ICU with Unicode 12 support
rolls into V8, at which point I'll update the relevant tests.

Bug: v8:7467
Change-Id: Iba575a471382ba7b029da06c2868c368ff43c649
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1503764Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60052}
parent 4edcc860
...@@ -18,22 +18,22 @@ package.json ...@@ -18,22 +18,22 @@ package.json
{ {
"private": true, "private": true,
"dependencies": { "dependencies": {
"unicode-11.0.0": "^0.7.8" "unicode-12.0.0": "^0.7.9"
} }
} }
``` ```
generate-unicode-sequence-property-data.js generate-unicode-sequence-property-data.js
``` ```
const toHex = (symbol) => { const toHex = (symbol) => {
return '0x' + symbol.codePointAt(0).toString(16) return '0x' + symbol.codePointAt(0).toString(16)
.toUpperCase().padStart(6, '0'); .toUpperCase().padStart(6, '0');
}; };
```
const generateData = (property) => { const generateData = (property) => {
const sequences = const sequences =
require(`unicode-11.0.0/Sequence_Property/${ property }/index.js`); require(`unicode-12.0.0/Sequence_Property/${ property }/index.js`);
const id = property.replace(/_/g, '') + 's'; const id = property.replace(/_/g, '') + 's';
const buffer = []; const buffer = [];
for (const sequence of sequences) { for (const sequence of sequences) {
...@@ -43,7 +43,7 @@ const generateData = (property) => { ...@@ -43,7 +43,7 @@ const generateData = (property) => {
} }
const output = const output =
`const uc32 UnicodePropertySequences::k${ id }[] = {\n` + `const uc32 UnicodePropertySequences::k${ id }[] = {\n` +
`${ buffer.join('\n') }\n0 // null-terminating the list\n};\n`; `${ buffer.join('\n') }\n 0 // null-terminating the list\n};\n`;
return output; return output;
}; };
...@@ -59,6 +59,7 @@ for (const property of properties) { ...@@ -59,6 +59,7 @@ for (const property of properties) {
``` ```
*/ */
// clang-format off
const uc32 UnicodePropertySequences::kEmojiFlagSequences[] = { const uc32 UnicodePropertySequences::kEmojiFlagSequences[] = {
0x01F1E6, 0x01F1E8, 0, 0x01F1E6, 0x01F1E8, 0,
0x01F1FF, 0x01F1FC, 0, 0x01F1FF, 0x01F1FC, 0,
...@@ -329,94 +330,8 @@ const uc32 UnicodePropertySequences::kEmojiTagSequences[] = { ...@@ -329,94 +330,8 @@ const uc32 UnicodePropertySequences::kEmojiTagSequences[] = {
}; };
const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x0026F9, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3F3, 0x00FE0F, 0x00200D, 0x01F308, 0,
0x01F3F4, 0x00200D, 0x002620, 0x00FE0F, 0,
0x01F441, 0x00FE0F, 0x00200D, 0x01F5E8, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002708, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F468, 0, 0x01F468, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F468, 0,
0x01F468, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D, 0x01F441, 0x00FE0F, 0x00200D, 0x01F5E8, 0x00FE0F, 0,
0x01F468, 0,
0x01F468, 0x00200D, 0x01F33E, 0,
0x01F468, 0x00200D, 0x01F373, 0,
0x01F468, 0x00200D, 0x01F393, 0,
0x01F468, 0x00200D, 0x01F3A4, 0,
0x01F468, 0x00200D, 0x01F3A8, 0,
0x01F468, 0x00200D, 0x01F3EB, 0,
0x01F468, 0x00200D, 0x01F3ED, 0,
0x01F468, 0x00200D, 0x01F466, 0, 0x01F468, 0x00200D, 0x01F466, 0,
0x01F468, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0, 0x01F468, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0,
0x01F468, 0x00200D, 0x01F467, 0, 0x01F468, 0x00200D, 0x01F467, 0,
...@@ -432,16 +347,97 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -432,16 +347,97 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0, 0x01F468, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0,
0x01F468, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0, 0x01F468, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0,
0x01F468, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0, 0x01F468, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FE, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F468, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F469, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F468, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F469, 0,
0x01F469, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FE, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FF, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FE, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FF, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FB, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FE, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FF, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FB, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FC, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FF, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FB, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FC, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FD, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FE, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FB, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FC, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FD, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FE, 0,
0x01F9D1, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0,
0x01F9D1, 0x01F3FB, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FB, 0,
0x01F9D1, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FB, 0,
0x01F9D1, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FC, 0,
0x01F9D1, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FB, 0,
0x01F9D1, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FC, 0,
0x01F9D1, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FD, 0,
0x01F9D1, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FB, 0,
0x01F9D1, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FC, 0,
0x01F9D1, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FD, 0,
0x01F9D1, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FE, 0,
0x01F9D1, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FB, 0,
0x01F9D1, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FC, 0,
0x01F9D1, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FD, 0,
0x01F9D1, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FE, 0,
0x01F9D1, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FF, 0,
0x01F468, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002708, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x01F33E, 0,
0x01F468, 0x00200D, 0x01F373, 0,
0x01F468, 0x00200D, 0x01F393, 0,
0x01F468, 0x00200D, 0x01F3A4, 0,
0x01F468, 0x00200D, 0x01F3A8, 0,
0x01F468, 0x00200D, 0x01F3EB, 0,
0x01F468, 0x00200D, 0x01F3ED, 0,
0x01F468, 0x00200D, 0x01F4BB, 0, 0x01F468, 0x00200D, 0x01F4BB, 0,
0x01F468, 0x00200D, 0x01F4BC, 0, 0x01F468, 0x00200D, 0x01F4BC, 0,
0x01F468, 0x00200D, 0x01F527, 0, 0x01F468, 0x00200D, 0x01F527, 0,
0x01F468, 0x00200D, 0x01F52C, 0, 0x01F468, 0x00200D, 0x01F52C, 0,
0x01F468, 0x00200D, 0x01F680, 0, 0x01F468, 0x00200D, 0x01F680, 0,
0x01F468, 0x00200D, 0x01F692, 0, 0x01F468, 0x00200D, 0x01F692, 0,
0x01F468, 0x00200D, 0x01F9B0, 0, 0x01F468, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x00200D, 0x01F9B1, 0, 0x01F468, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x00200D, 0x01F9B2, 0, 0x01F468, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F468, 0x01F3FB, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F468, 0x01F3FB, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F468, 0x01F3FB, 0x00200D, 0x002708, 0x00FE0F, 0,
...@@ -458,10 +454,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -458,10 +454,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x01F3FB, 0x00200D, 0x01F52C, 0, 0x01F468, 0x01F3FB, 0x00200D, 0x01F52C, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F680, 0, 0x01F468, 0x01F3FB, 0x00200D, 0x01F680, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F692, 0, 0x01F468, 0x01F3FB, 0x00200D, 0x01F692, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B0, 0, 0x01F468, 0x01F3FB, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B1, 0, 0x01F468, 0x01F3FB, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B2, 0, 0x01F468, 0x01F3FB, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F468, 0x01F3FC, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F468, 0x01F3FC, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F468, 0x01F3FC, 0x00200D, 0x002708, 0x00FE0F, 0,
...@@ -478,10 +473,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -478,10 +473,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x01F3FC, 0x00200D, 0x01F52C, 0, 0x01F468, 0x01F3FC, 0x00200D, 0x01F52C, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F680, 0, 0x01F468, 0x01F3FC, 0x00200D, 0x01F680, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F692, 0, 0x01F468, 0x01F3FC, 0x00200D, 0x01F692, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B0, 0, 0x01F468, 0x01F3FC, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B1, 0, 0x01F468, 0x01F3FC, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B2, 0, 0x01F468, 0x01F3FC, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F468, 0x01F3FD, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F468, 0x01F3FD, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F468, 0x01F3FD, 0x00200D, 0x002708, 0x00FE0F, 0,
...@@ -498,10 +492,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -498,10 +492,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x01F3FD, 0x00200D, 0x01F52C, 0, 0x01F468, 0x01F3FD, 0x00200D, 0x01F52C, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F680, 0, 0x01F468, 0x01F3FD, 0x00200D, 0x01F680, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F692, 0, 0x01F468, 0x01F3FD, 0x00200D, 0x01F692, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B0, 0, 0x01F468, 0x01F3FD, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B1, 0, 0x01F468, 0x01F3FD, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B2, 0, 0x01F468, 0x01F3FD, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F468, 0x01F3FE, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F468, 0x01F3FE, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F468, 0x01F3FE, 0x00200D, 0x002708, 0x00FE0F, 0,
...@@ -518,10 +511,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -518,10 +511,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x01F3FE, 0x00200D, 0x01F52C, 0, 0x01F468, 0x01F3FE, 0x00200D, 0x01F52C, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F680, 0, 0x01F468, 0x01F3FE, 0x00200D, 0x01F680, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F692, 0, 0x01F468, 0x01F3FE, 0x00200D, 0x01F692, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B0, 0, 0x01F468, 0x01F3FE, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B1, 0, 0x01F468, 0x01F3FE, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B2, 0, 0x01F468, 0x01F3FE, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F468, 0x01F3FF, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F468, 0x01F3FF, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F468, 0x01F3FF, 0x00200D, 0x002708, 0x00FE0F, 0,
...@@ -538,19 +530,12 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -538,19 +530,12 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x01F3FF, 0x00200D, 0x01F52C, 0, 0x01F468, 0x01F3FF, 0x00200D, 0x01F52C, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F680, 0, 0x01F468, 0x01F3FF, 0x00200D, 0x01F680, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F692, 0, 0x01F468, 0x01F3FF, 0x00200D, 0x01F692, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B0, 0, 0x01F468, 0x01F3FF, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B1, 0, 0x01F468, 0x01F3FF, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B2, 0, 0x01F468, 0x01F3FF, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F469, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F469, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F469, 0x00200D, 0x002708, 0x00FE0F, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F468, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F469, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F468, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F469, 0,
0x01F469, 0x00200D, 0x01F33E, 0, 0x01F469, 0x00200D, 0x01F33E, 0,
0x01F469, 0x00200D, 0x01F373, 0, 0x01F469, 0x00200D, 0x01F373, 0,
0x01F469, 0x00200D, 0x01F393, 0, 0x01F469, 0x00200D, 0x01F393, 0,
...@@ -558,26 +543,15 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -558,26 +543,15 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x00200D, 0x01F3A8, 0, 0x01F469, 0x00200D, 0x01F3A8, 0,
0x01F469, 0x00200D, 0x01F3EB, 0, 0x01F469, 0x00200D, 0x01F3EB, 0,
0x01F469, 0x00200D, 0x01F3ED, 0, 0x01F469, 0x00200D, 0x01F3ED, 0,
0x01F469, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F4BB, 0, 0x01F469, 0x00200D, 0x01F4BB, 0,
0x01F469, 0x00200D, 0x01F4BC, 0, 0x01F469, 0x00200D, 0x01F4BC, 0,
0x01F469, 0x00200D, 0x01F527, 0, 0x01F469, 0x00200D, 0x01F527, 0,
0x01F469, 0x00200D, 0x01F52C, 0, 0x01F469, 0x00200D, 0x01F52C, 0,
0x01F469, 0x00200D, 0x01F680, 0, 0x01F469, 0x00200D, 0x01F680, 0,
0x01F469, 0x00200D, 0x01F692, 0, 0x01F469, 0x00200D, 0x01F692, 0,
0x01F469, 0x00200D, 0x01F9B0, 0, 0x01F469, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x00200D, 0x01F9B1, 0, 0x01F469, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x00200D, 0x01F9B2, 0, 0x01F469, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F469, 0x01F3FB, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F469, 0x01F3FB, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F469, 0x01F3FB, 0x00200D, 0x002708, 0x00FE0F, 0,
...@@ -594,10 +568,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -594,10 +568,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x01F3FB, 0x00200D, 0x01F52C, 0, 0x01F469, 0x01F3FB, 0x00200D, 0x01F52C, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F680, 0, 0x01F469, 0x01F3FB, 0x00200D, 0x01F680, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F692, 0, 0x01F469, 0x01F3FB, 0x00200D, 0x01F692, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B0, 0, 0x01F469, 0x01F3FB, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B1, 0, 0x01F469, 0x01F3FB, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B2, 0, 0x01F469, 0x01F3FB, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F469, 0x01F3FC, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F469, 0x01F3FC, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F469, 0x01F3FC, 0x00200D, 0x002708, 0x00FE0F, 0,
...@@ -614,10 +587,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -614,10 +587,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x01F3FC, 0x00200D, 0x01F52C, 0, 0x01F469, 0x01F3FC, 0x00200D, 0x01F52C, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F680, 0, 0x01F469, 0x01F3FC, 0x00200D, 0x01F680, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F692, 0, 0x01F469, 0x01F3FC, 0x00200D, 0x01F692, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B0, 0, 0x01F469, 0x01F3FC, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B1, 0, 0x01F469, 0x01F3FC, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B2, 0, 0x01F469, 0x01F3FC, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F469, 0x01F3FD, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F469, 0x01F3FD, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F469, 0x01F3FD, 0x00200D, 0x002708, 0x00FE0F, 0,
...@@ -634,10 +606,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -634,10 +606,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x01F3FD, 0x00200D, 0x01F52C, 0, 0x01F469, 0x01F3FD, 0x00200D, 0x01F52C, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F680, 0, 0x01F469, 0x01F3FD, 0x00200D, 0x01F680, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F692, 0, 0x01F469, 0x01F3FD, 0x00200D, 0x01F692, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B0, 0, 0x01F469, 0x01F3FD, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B1, 0, 0x01F469, 0x01F3FD, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B2, 0, 0x01F469, 0x01F3FD, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F469, 0x01F3FE, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F469, 0x01F3FE, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F469, 0x01F3FE, 0x00200D, 0x002708, 0x00FE0F, 0,
...@@ -654,10 +625,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -654,10 +625,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x01F3FE, 0x00200D, 0x01F52C, 0, 0x01F469, 0x01F3FE, 0x00200D, 0x01F52C, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F680, 0, 0x01F469, 0x01F3FE, 0x00200D, 0x01F680, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F692, 0, 0x01F469, 0x01F3FE, 0x00200D, 0x01F692, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B0, 0, 0x01F469, 0x01F3FE, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B1, 0, 0x01F469, 0x01F3FE, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B2, 0, 0x01F469, 0x01F3FE, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x002695, 0x00FE0F, 0, 0x01F469, 0x01F3FF, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x002696, 0x00FE0F, 0, 0x01F469, 0x01F3FF, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x002708, 0x00FE0F, 0, 0x01F469, 0x01F3FF, 0x00200D, 0x002708, 0x00FE0F, 0,
...@@ -674,10 +644,81 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -674,10 +644,81 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x01F3FF, 0x00200D, 0x01F52C, 0, 0x01F469, 0x01F3FF, 0x00200D, 0x01F52C, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F680, 0, 0x01F469, 0x01F3FF, 0x00200D, 0x01F680, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F692, 0, 0x01F469, 0x01F3FF, 0x00200D, 0x01F692, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B0, 0, 0x01F469, 0x01F3FF, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B1, 0, 0x01F469, 0x01F3FF, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B2, 0, 0x01F469, 0x01F3FF, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B3, 0, 0x0026F9, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F46E, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F46E, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F46E, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F46E, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F46E, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F46E, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
...@@ -742,7 +783,8 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -742,7 +783,8 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F481, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F481, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F482, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F482, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F482, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F482, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F482, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F468, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F468, 0,
0x01F482, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F482, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F482, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F482, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F482, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F482, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
...@@ -776,8 +818,6 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -776,8 +818,6 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F487, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F487, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F487, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F487, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F487, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F487, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F575, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F575, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F575, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F575, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F575, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F575, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F575, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F575, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
...@@ -788,6 +828,8 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -788,6 +828,8 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F575, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F575, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F575, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F575, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F575, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F575, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F575, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F575, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F645, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F645, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F645, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F645, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F645, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F645, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
...@@ -1006,6 +1048,42 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -1006,6 +1048,42 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F9B9, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F9B9, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9B9, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F9B9, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9B9, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F9B9, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9D6, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F9D6, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9D6, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F9D6, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9D6, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F9D6, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
...@@ -1106,8 +1184,61 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = { ...@@ -1106,8 +1184,61 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F9DE, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F9DE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9DF, 0x00200D, 0x002640, 0x00FE0F, 0, 0x01F9DF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9DF, 0x00200D, 0x002642, 0x00FE0F, 0, 0x01F9DF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B3, 0,
0x01F3F3, 0x00FE0F, 0x00200D, 0x01F308, 0,
0x01F3F4, 0x00200D, 0x002620, 0x00FE0F, 0,
0x01F415, 0x00200D, 0x01F9BA, 0,
0x01F482, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0 // null-terminating the list 0 // null-terminating the list
}; };
// clang-format on
} // namespace internal } // namespace internal
} // namespace v8 } // namespace v8
......
...@@ -15,7 +15,6 @@ namespace internal { ...@@ -15,7 +15,6 @@ namespace internal {
class UnicodePropertySequences : public AllStatic { class UnicodePropertySequences : public AllStatic {
public: public:
static const uc32 kEmojiFlagSequences[]; static const uc32 kEmojiFlagSequences[];
static const uc32 kEmojiTagSequences[]; static const uc32 kEmojiTagSequences[];
static const uc32 kEmojiZWJSequences[]; static const uc32 kEmojiZWJSequences[];
}; };
......
// Copyright 2018 the V8 project authors. All rights reserved. // Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --harmony-regexp-sequence // Flags: --harmony-regexp-sequence
// These tests have been generated by the script at
// https://gist.github.com/mathiasbynens/3b42c99a227521dabfe68d9e63f00f42.
// Do not modify this file directly!
const re = /\p{Emoji_Flag_Sequence}/u; const re = /\p{Emoji_Flag_Sequence}/u;
assertTrue(re.test('\u{1F1E6}\u{1F1E8}')); assertTrue(re.test('\u{1F1E6}\u{1F1E8}'));
......
// Copyright 2018 the V8 project authors. All rights reserved. // Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --harmony-regexp-sequence // Flags: --harmony-regexp-sequence
// These tests have been generated by the script at
// https://gist.github.com/mathiasbynens/3b42c99a227521dabfe68d9e63f00f42.
// Do not modify this file directly!
const re = /\p{Emoji_Keycap_Sequence}/u; const re = /\p{Emoji_Keycap_Sequence}/u;
assertTrue(re.test('#\uFE0F\u20E3')); assertTrue(re.test('#\uFE0F\u20E3'));
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
// Flags: --harmony-regexp-sequence // Flags: --harmony-regexp-sequence
// TODO(mathias): Update these tests once a Unicode 12-friendly ICU
// version rolls into V8.
const re = /\p{Emoji_Modifier_Sequence}/u; const re = /\p{Emoji_Modifier_Sequence}/u;
assertTrue(re.test('\u261D\u{1F3FB}')); assertTrue(re.test('\u261D\u{1F3FB}'));
......
// Copyright 2018 the V8 project authors. All rights reserved. // Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --harmony-regexp-sequence // Flags: --harmony-regexp-sequence
// These tests have been generated by the script at
// https://gist.github.com/mathiasbynens/3b42c99a227521dabfe68d9e63f00f42.
// Do not modify this file directly!
const re = /\p{Emoji_Tag_Sequence}/u; const re = /\p{Emoji_Tag_Sequence}/u;
assertTrue(re.test('\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}')); assertTrue(re.test('\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}'));
......
// Copyright 2018 the V8 project authors. All rights reserved. // Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// Flags: --harmony-regexp-sequence // Flags: --harmony-regexp-sequence
// These tests have been generated by the script at
// https://gist.github.com/mathiasbynens/3b42c99a227521dabfe68d9e63f00f42.
// Do not modify this file directly!
const re = /\p{Emoji_ZWJ_Sequence}/u; const re = /\p{Emoji_ZWJ_Sequence}/u;
assertTrue(re.test('\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F468}')); assertTrue(re.test('\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F468}'));
...@@ -23,6 +27,16 @@ assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}')); ...@@ -23,6 +27,16 @@ assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F467}')); assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F467}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}')); assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}')); assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}'));
assertTrue(re.test('\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F468}')); assertTrue(re.test('\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F468}'));
assertTrue(re.test('\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F469}')); assertTrue(re.test('\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F469}'));
assertTrue(re.test('\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}')); assertTrue(re.test('\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}'));
...@@ -37,6 +51,52 @@ assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}')); ...@@ -37,6 +51,52 @@ assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F467}')); assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F467}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}')); assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}')); assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}'));
assertTrue(re.test('\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}'));
assertTrue(re.test('\u{1F468}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F468}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F468}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F468}\u200D\u2708\uFE0F'));
...@@ -53,10 +113,9 @@ assertTrue(re.test('\u{1F468}\u200D\u{1F527}')); ...@@ -53,10 +113,9 @@ assertTrue(re.test('\u{1F468}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F468}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F680}')); assertTrue(re.test('\u{1F468}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F692}')); assertTrue(re.test('\u{1F468}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F468}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F468}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F468}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u2708\uFE0F'));
...@@ -73,10 +132,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F527}')); ...@@ -73,10 +132,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F680}')); assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F692}')); assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u2708\uFE0F'));
...@@ -93,10 +151,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F527}')); ...@@ -93,10 +151,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F680}')); assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F692}')); assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u2708\uFE0F'));
...@@ -113,10 +170,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F527}')); ...@@ -113,10 +170,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F680}')); assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F692}')); assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u2708\uFE0F'));
...@@ -133,10 +189,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F527}')); ...@@ -133,10 +189,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F680}')); assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F692}')); assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u2708\uFE0F'));
...@@ -153,10 +208,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F527}')); ...@@ -153,10 +208,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F680}')); assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F692}')); assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F469}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F469}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F469}\u200D\u2708\uFE0F'));
...@@ -173,10 +227,9 @@ assertTrue(re.test('\u{1F469}\u200D\u{1F527}')); ...@@ -173,10 +227,9 @@ assertTrue(re.test('\u{1F469}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F469}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F680}')); assertTrue(re.test('\u{1F469}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F692}')); assertTrue(re.test('\u{1F469}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F469}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F469}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F469}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u2708\uFE0F'));
...@@ -193,10 +246,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F527}')); ...@@ -193,10 +246,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F680}')); assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F692}')); assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u2708\uFE0F'));
...@@ -213,10 +265,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F527}')); ...@@ -213,10 +265,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F680}')); assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F692}')); assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u2708\uFE0F'));
...@@ -233,10 +284,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F527}')); ...@@ -233,10 +284,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F680}')); assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F692}')); assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u2708\uFE0F'));
...@@ -253,10 +303,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F527}')); ...@@ -253,10 +303,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F680}')); assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F692}')); assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u2695\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u2696\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u2708\uFE0F')); assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u2708\uFE0F'));
...@@ -273,146 +322,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F527}')); ...@@ -273,146 +322,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F52C}')); assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F680}')); assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F692}')); assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B0}')); assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B1}')); assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B2}')); assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F46E}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\uFE0F\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\uFE0F\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}'));
assertTrue(re.test('\u{1F9DC}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u26F9\u{1F3FB}\u200D\u2640\uFE0F')); assertTrue(re.test('\u26F9\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u26F9\u{1F3FB}\u200D\u2642\uFE0F')); assertTrue(re.test('\u26F9\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u26F9\u{1F3FC}\u200D\u2640\uFE0F')); assertTrue(re.test('\u26F9\u{1F3FC}\u200D\u2640\uFE0F'));
...@@ -485,166 +397,56 @@ assertTrue(re.test('\u{1F3CC}\u{1F3FF}\u200D\u2640\uFE0F')); ...@@ -485,166 +397,56 @@ assertTrue(re.test('\u{1F3CC}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F3CC}\u{1F3FF}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F3CC}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F3CC}\uFE0F\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F3CC}\uFE0F\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F3CC}\uFE0F\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F3CC}\uFE0F\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46F}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F46F}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46F}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F46F}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F471}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F471}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FB}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F471}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FB}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F471}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FC}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F471}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FC}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F471}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FD}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F471}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FD}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F471}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FE}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F471}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FE}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F471}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FF}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F471}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FF}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F471}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F473}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F473}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FB}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F473}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FB}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F473}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FC}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F473}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FC}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F473}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FD}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F473}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FD}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F473}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FE}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F473}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FE}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F473}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FF}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F473}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FF}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F473}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F477}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F477}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FB}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F477}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FB}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F477}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FC}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F477}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FC}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F477}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FD}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F477}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FD}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F477}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FE}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F477}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FE}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F477}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FF}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F477}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FF}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F477}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93C}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93C}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F481}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F481}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F481}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F481}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F481}\u{1F3FB}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F481}\u{1F3FB}\u200D\u2640\uFE0F'));
...@@ -657,6 +459,54 @@ assertTrue(re.test('\u{1F481}\u{1F3FE}\u200D\u2640\uFE0F')); ...@@ -657,6 +459,54 @@ assertTrue(re.test('\u{1F481}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F481}\u{1F3FE}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F481}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F481}\u{1F3FF}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F481}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F481}\u{1F3FF}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F481}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}'));
assertTrue(re.test('\u{1F482}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\uFE0F\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\uFE0F\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F645}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F645}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F645}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F645}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F645}\u{1F3FB}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F645}\u{1F3FB}\u200D\u2640\uFE0F'));
...@@ -729,6 +579,54 @@ assertTrue(re.test('\u{1F64E}\u{1F3FE}\u200D\u2640\uFE0F')); ...@@ -729,6 +579,54 @@ assertTrue(re.test('\u{1F64E}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F64E}\u{1F3FE}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F64E}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F64E}\u{1F3FF}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F64E}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F64E}\u{1F3FF}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F64E}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F926}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F926}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F926}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F926}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F926}\u{1F3FB}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F926}\u{1F3FB}\u200D\u2640\uFE0F'));
...@@ -753,6 +651,56 @@ assertTrue(re.test('\u{1F937}\u{1F3FE}\u200D\u2640\uFE0F')); ...@@ -753,6 +651,56 @@ assertTrue(re.test('\u{1F937}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F937}\u{1F3FE}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F937}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F937}\u{1F3FF}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F937}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F937}\u{1F3FF}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F937}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93C}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93C}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9B8}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F9B8}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9B8}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F9B8}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9B8}\u{1F3FB}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F9B8}\u{1F3FB}\u200D\u2640\uFE0F'));
...@@ -777,6 +725,191 @@ assertTrue(re.test('\u{1F9B9}\u{1F3FE}\u200D\u2640\uFE0F')); ...@@ -777,6 +725,191 @@ assertTrue(re.test('\u{1F9B9}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9B9}\u{1F3FE}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F9B9}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9B9}\u{1F3FF}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F9B9}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9B9}\u{1F3FF}\u200D\u2642\uFE0F')); assertTrue(re.test('\u{1F9B9}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F3F3}\uFE0F\u200D\u{1F308}')); assertTrue(re.test('\u{1F3F3}\uFE0F\u200D\u{1F308}'));
assertTrue(re.test('\u{1F3F4}\u200D\u2620\uFE0F')); assertTrue(re.test('\u{1F3F4}\u200D\u2620\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FE}\u200D\u2640\uFE0F')); assertTrue(re.test('\u{1F415}\u200D\u{1F9BA}'));
assertTrue(re.test('\u{1F482}\u{1F3FB}\u200D\u2640\uFE0F'));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment