diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /js/src/tests/test262/built-ins/RegExp/unicodeSets | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/built-ins/RegExp/unicodeSets')
116 files changed, 5347 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/browser.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/browser.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/browser.js diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/browser.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/browser.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/browser.js diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character-class-escape.js new file mode 100644 index 0000000000..d8f74db909 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character-class-escape.js @@ -0,0 +1,41 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]--\d]+$/v, + expression: "[[0-9]--\d]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character-class.js new file mode 100644 index 0000000000..3b209decb3 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character-class.js @@ -0,0 +1,41 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]--[0-9]]+$/v, + expression: "[[0-9]--[0-9]]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character-property-escape.js new file mode 100644 index 0000000000..1f11986a68 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character-property-escape.js @@ -0,0 +1,41 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]--\p{ASCII_Hex_Digit}]+$/v, + expression: "[[0-9]--\p{ASCII_Hex_Digit}]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character.js new file mode 100644 index 0000000000..8e98a440ee --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-character.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]--_]+$/v, + expression: "[[0-9]--_]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-property-of-strings-escape.js new file mode 100644 index 0000000000..0496408b2d --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-property-of-strings-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]--\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[[0-9]--\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-string-literal.js new file mode 100644 index 0000000000..8754cf2c37 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-difference-string-literal.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]--\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[[0-9]--\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "1", + "3", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "0", + "2", + "4", + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-class-escape.js new file mode 100644 index 0000000000..c3bd770190 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-class-escape.js @@ -0,0 +1,41 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d--\d]+$/v, + expression: "[\d--\d]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-class.js new file mode 100644 index 0000000000..bdbdd0beda --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-class.js @@ -0,0 +1,41 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d--[0-9]]+$/v, + expression: "[\d--[0-9]]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-property-escape.js new file mode 100644 index 0000000000..a3f7473261 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-property-escape.js @@ -0,0 +1,41 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d--\p{ASCII_Hex_Digit}]+$/v, + expression: "[\d--\p{ASCII_Hex_Digit}]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character.js new file mode 100644 index 0000000000..da28fd8943 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d--_]+$/v, + expression: "[\d--_]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-property-of-strings-escape.js new file mode 100644 index 0000000000..66d4e67311 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-property-of-strings-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d--\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\d--\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-string-literal.js new file mode 100644 index 0000000000..94cd731fce --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-string-literal.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d--\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\d--\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "1", + "3", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "0", + "2", + "4", + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-class-escape.js new file mode 100644 index 0000000000..05b3e9ae32 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-class-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d&&\d]+$/v, + expression: "[\d&&\d]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-class.js new file mode 100644 index 0000000000..1c3e68be29 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-class.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d&&[0-9]]+$/v, + expression: "[\d&&[0-9]]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-property-escape.js new file mode 100644 index 0000000000..90bcb40be7 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-property-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d&&\p{ASCII_Hex_Digit}]+$/v, + expression: "[\d&&\p{ASCII_Hex_Digit}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character.js new file mode 100644 index 0000000000..1ceb380aa5 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character.js @@ -0,0 +1,41 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d&&_]+$/v, + expression: "[\d&&_]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-property-of-strings-escape.js new file mode 100644 index 0000000000..9e1d9f8a52 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-property-of-strings-escape.js @@ -0,0 +1,41 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d&&\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\d&&\p{Emoji_Keycap_Sequence}]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-string-literal.js new file mode 100644 index 0000000000..08b3b2532e --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-string-literal.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d&&\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\d&&\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "0", + "2", + "4" + ], + nonMatchStrings: [ + "1", + "3", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-class-escape.js new file mode 100644 index 0000000000..23a4d4a8db --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-class-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d\d]+$/v, + expression: "[\d\d]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-class.js new file mode 100644 index 0000000000..4a876061d5 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-class.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d[0-9]]+$/v, + expression: "[\d[0-9]]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-property-escape.js new file mode 100644 index 0000000000..208b9e0d9c --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-property-escape.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d\p{ASCII_Hex_Digit}]+$/v, + expression: "[\d\p{ASCII_Hex_Digit}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character.js new file mode 100644 index 0000000000..aa1e5ab90d --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d_]+$/v, + expression: "[\d_]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-property-of-strings-escape.js new file mode 100644 index 0000000000..b4f2da3da0 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-property-of-strings-escape.js @@ -0,0 +1,52 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\d\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0", + "0\uFE0F\u20E3", + "1", + "1\uFE0F\u20E3", + "2", + "2\uFE0F\u20E3", + "3", + "3\uFE0F\u20E3", + "4", + "4\uFE0F\u20E3", + "5", + "5\uFE0F\u20E3", + "6", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8", + "8\uFE0F\u20E3", + "9", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-string-literal.js new file mode 100644 index 0000000000..9430ef5419 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-escape-union-string-literal.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\d\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\d\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-class-escape.js new file mode 100644 index 0000000000..1f6a807fcb --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-class-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]&&\d]+$/v, + expression: "[[0-9]&&\d]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-class.js new file mode 100644 index 0000000000..d0b6d95381 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-class.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]&&[0-9]]+$/v, + expression: "[[0-9]&&[0-9]]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-property-escape.js new file mode 100644 index 0000000000..7ebc4c5fb5 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-property-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]&&\p{ASCII_Hex_Digit}]+$/v, + expression: "[[0-9]&&\p{ASCII_Hex_Digit}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character.js new file mode 100644 index 0000000000..042c1e1782 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-character.js @@ -0,0 +1,41 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]&&_]+$/v, + expression: "[[0-9]&&_]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-property-of-strings-escape.js new file mode 100644 index 0000000000..608401ff14 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-property-of-strings-escape.js @@ -0,0 +1,41 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]&&\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[[0-9]&&\p{Emoji_Keycap_Sequence}]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-string-literal.js new file mode 100644 index 0000000000..15a6d28147 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-intersection-string-literal.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]&&\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[[0-9]&&\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "0", + "2", + "4" + ], + nonMatchStrings: [ + "1", + "3", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character-class-escape.js new file mode 100644 index 0000000000..886993514d --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character-class-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]\d]+$/v, + expression: "[[0-9]\d]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character-class.js new file mode 100644 index 0000000000..e24a1d32f8 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character-class.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9][0-9]]+$/v, + expression: "[[0-9][0-9]]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character-property-escape.js new file mode 100644 index 0000000000..6d3159b3e0 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character-property-escape.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]\p{ASCII_Hex_Digit}]+$/v, + expression: "[[0-9]\p{ASCII_Hex_Digit}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character.js new file mode 100644 index 0000000000..9c86c50a7c --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-character.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]_]+$/v, + expression: "[[0-9]_]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-property-of-strings-escape.js new file mode 100644 index 0000000000..51d7208c33 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-property-of-strings-escape.js @@ -0,0 +1,52 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[[0-9]\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0", + "0\uFE0F\u20E3", + "1", + "1\uFE0F\u20E3", + "2", + "2\uFE0F\u20E3", + "3", + "3\uFE0F\u20E3", + "4", + "4\uFE0F\u20E3", + "5", + "5\uFE0F\u20E3", + "6", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8", + "8\uFE0F\u20E3", + "9", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-string-literal.js new file mode 100644 index 0000000000..9762968ceb --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-class-union-string-literal.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[[0-9]\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[[0-9]\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character-class-escape.js new file mode 100644 index 0000000000..03701e5e6e --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character-class-escape.js @@ -0,0 +1,34 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_--\d]+$/v, + expression: "[_--\d]", + matchStrings: [ + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character-class.js new file mode 100644 index 0000000000..be1fe8b83e --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character-class.js @@ -0,0 +1,34 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_--[0-9]]+$/v, + expression: "[_--[0-9]]", + matchStrings: [ + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character-property-escape.js new file mode 100644 index 0000000000..63f3f32d50 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character-property-escape.js @@ -0,0 +1,34 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_--\p{ASCII_Hex_Digit}]+$/v, + expression: "[_--\p{ASCII_Hex_Digit}]", + matchStrings: [ + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character.js new file mode 100644 index 0000000000..d8704742e1 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-character.js @@ -0,0 +1,33 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_--_]+$/v, + expression: "[_--_]", + matchStrings: [], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "_", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-property-of-strings-escape.js new file mode 100644 index 0000000000..1808274560 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-property-of-strings-escape.js @@ -0,0 +1,34 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_--\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[_--\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-string-literal.js new file mode 100644 index 0000000000..16adc0fa36 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-difference-string-literal.js @@ -0,0 +1,34 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_--\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[_--\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character-class-escape.js new file mode 100644 index 0000000000..32db0b5bd2 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character-class-escape.js @@ -0,0 +1,33 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_&&\d]+$/v, + expression: "[_&&\d]", + matchStrings: [], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "_", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character-class.js new file mode 100644 index 0000000000..4df9d43c39 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character-class.js @@ -0,0 +1,33 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_&&[0-9]]+$/v, + expression: "[_&&[0-9]]", + matchStrings: [], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "_", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character-property-escape.js new file mode 100644 index 0000000000..712352413b --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character-property-escape.js @@ -0,0 +1,33 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_&&\p{ASCII_Hex_Digit}]+$/v, + expression: "[_&&\p{ASCII_Hex_Digit}]", + matchStrings: [], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "_", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character.js new file mode 100644 index 0000000000..8578b51194 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-character.js @@ -0,0 +1,34 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_&&_]+$/v, + expression: "[_&&_]", + matchStrings: [ + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-property-of-strings-escape.js new file mode 100644 index 0000000000..740a5f3ac2 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-property-of-strings-escape.js @@ -0,0 +1,33 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_&&\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[_&&\p{Emoji_Keycap_Sequence}]", + matchStrings: [], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "_", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-string-literal.js new file mode 100644 index 0000000000..7aa02b544c --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-intersection-string-literal.js @@ -0,0 +1,33 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_&&\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[_&&\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "_", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class-escape.js new file mode 100644 index 0000000000..dc08e40e3d --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class-escape.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}--\d]+$/v, + expression: "[\p{ASCII_Hex_Digit}--\d]", + matchStrings: [ + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class.js new file mode 100644 index 0000000000..8f4210b125 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}--[0-9]]+$/v, + expression: "[\p{ASCII_Hex_Digit}--[0-9]]", + matchStrings: [ + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-property-escape.js new file mode 100644 index 0000000000..7be89eb510 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-property-escape.js @@ -0,0 +1,52 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}--\p{ASCII_Hex_Digit}]+$/v, + expression: "[\p{ASCII_Hex_Digit}--\p{ASCII_Hex_Digit}]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character.js new file mode 100644 index 0000000000..96ec7bb58e --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}--_]+$/v, + expression: "[\p{ASCII_Hex_Digit}--_]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-property-of-strings-escape.js new file mode 100644 index 0000000000..e39e83f26e --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-property-of-strings-escape.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}--\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\p{ASCII_Hex_Digit}--\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-string-literal.js new file mode 100644 index 0000000000..3e666325f9 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-string-literal.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}--\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\p{ASCII_Hex_Digit}--\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "1", + "3", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "0", + "2", + "4", + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class-escape.js new file mode 100644 index 0000000000..478534e826 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class-escape.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}&&\d]+$/v, + expression: "[\p{ASCII_Hex_Digit}&&\d]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class.js new file mode 100644 index 0000000000..9573ad7b47 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}&&[0-9]]+$/v, + expression: "[\p{ASCII_Hex_Digit}&&[0-9]]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-property-escape.js new file mode 100644 index 0000000000..4dbca1c803 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-property-escape.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}&&\p{ASCII_Hex_Digit}]+$/v, + expression: "[\p{ASCII_Hex_Digit}&&\p{ASCII_Hex_Digit}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character.js new file mode 100644 index 0000000000..d6b0c11257 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character.js @@ -0,0 +1,52 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}&&_]+$/v, + expression: "[\p{ASCII_Hex_Digit}&&_]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-property-of-strings-escape.js new file mode 100644 index 0000000000..42e1095769 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-property-of-strings-escape.js @@ -0,0 +1,52 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}&&\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\p{ASCII_Hex_Digit}&&\p{Emoji_Keycap_Sequence}]", + matchStrings: [], + nonMatchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-string-literal.js new file mode 100644 index 0000000000..13d31bfc37 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-string-literal.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}&&\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\p{ASCII_Hex_Digit}&&\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "0", + "2", + "4" + ], + nonMatchStrings: [ + "1", + "3", + "5", + "6", + "6\uFE0F\u20E3", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class-escape.js new file mode 100644 index 0000000000..ebf6293819 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class-escape.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}\d]+$/v, + expression: "[\p{ASCII_Hex_Digit}\d]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class.js new file mode 100644 index 0000000000..7d630307df --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}[0-9]]+$/v, + expression: "[\p{ASCII_Hex_Digit}[0-9]]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-property-escape.js new file mode 100644 index 0000000000..1bac43ea61 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-property-escape.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}\p{ASCII_Hex_Digit}]+$/v, + expression: "[\p{ASCII_Hex_Digit}\p{ASCII_Hex_Digit}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character.js new file mode 100644 index 0000000000..407534100c --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character.js @@ -0,0 +1,54 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}_]+$/v, + expression: "[\p{ASCII_Hex_Digit}_]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "_", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-property-of-strings-escape.js new file mode 100644 index 0000000000..5e4a70e916 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-property-of-strings-escape.js @@ -0,0 +1,63 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\p{ASCII_Hex_Digit}\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0", + "0\uFE0F\u20E3", + "1", + "1\uFE0F\u20E3", + "2", + "2\uFE0F\u20E3", + "3", + "3\uFE0F\u20E3", + "4", + "4\uFE0F\u20E3", + "5", + "5\uFE0F\u20E3", + "6", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8", + "8\uFE0F\u20E3", + "9", + "9\uFE0F\u20E3", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-string-literal.js new file mode 100644 index 0000000000..caa9f15f29 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-property-escape-union-string-literal.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{ASCII_Hex_Digit}\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\p{ASCII_Hex_Digit}\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character-class-escape.js new file mode 100644 index 0000000000..11961d19fb --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character-class-escape.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_\d]+$/v, + expression: "[_\d]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character-class.js new file mode 100644 index 0000000000..2207df07a0 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character-class.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_[0-9]]+$/v, + expression: "[_[0-9]]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character-property-escape.js new file mode 100644 index 0000000000..ac27fe22c5 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character-property-escape.js @@ -0,0 +1,54 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_\p{ASCII_Hex_Digit}]+$/v, + expression: "[_\p{ASCII_Hex_Digit}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", + "_", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "9\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character.js new file mode 100644 index 0000000000..d30bb97c4c --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-character.js @@ -0,0 +1,34 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[__]+$/v, + expression: "[__]", + matchStrings: [ + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-property-of-strings-escape.js new file mode 100644 index 0000000000..15294ce814 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-property-of-strings-escape.js @@ -0,0 +1,44 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[_\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3", + "_" + ], + nonMatchStrings: [ + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-string-literal.js new file mode 100644 index 0000000000..8de1295fdd --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/character-union-string-literal.js @@ -0,0 +1,37 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[_\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[_\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "0", + "2", + "4", + "9\uFE0F\u20E3", + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class-escape.js new file mode 100644 index 0000000000..de856512f5 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class-escape.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}--\d]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}--\d]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class.js new file mode 100644 index 0000000000..83a3877a9e --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}--[0-9]]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}--[0-9]]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-property-escape.js new file mode 100644 index 0000000000..935e52fab7 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-property-escape.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}--\p{ASCII_Hex_Digit}]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}--\p{ASCII_Hex_Digit}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character.js new file mode 100644 index 0000000000..6a2b3dbf22 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}--_]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}--_]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-property-of-strings-escape.js new file mode 100644 index 0000000000..2e0d4ba7bd --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-property-of-strings-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}--\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}--\p{Emoji_Keycap_Sequence}]", + matchStrings: [], + nonMatchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-string-literal.js new file mode 100644 index 0000000000..da68c78049 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-string-literal.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}--\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}--\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3" + ], + nonMatchStrings: [ + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class-escape.js new file mode 100644 index 0000000000..29e6302fbb --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}&&\d]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}&&\d]", + matchStrings: [], + nonMatchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class.js new file mode 100644 index 0000000000..da1469c0c1 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}&&[0-9]]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}&&[0-9]]", + matchStrings: [], + nonMatchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-property-escape.js new file mode 100644 index 0000000000..0fa89e14aa --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-property-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}&&\p{ASCII_Hex_Digit}]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}&&\p{ASCII_Hex_Digit}]", + matchStrings: [], + nonMatchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character.js new file mode 100644 index 0000000000..815ba85039 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}&&_]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}&&_]", + matchStrings: [], + nonMatchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-property-of-strings-escape.js new file mode 100644 index 0000000000..c5d769cb7c --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-property-of-strings-escape.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}&&\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}&&\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-string-literal.js new file mode 100644 index 0000000000..abbf43bb71 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-string-literal.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}&&\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}&&\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class-escape.js new file mode 100644 index 0000000000..551a1469d4 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class-escape.js @@ -0,0 +1,52 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}\d]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}\d]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0", + "0\uFE0F\u20E3", + "1", + "1\uFE0F\u20E3", + "2", + "2\uFE0F\u20E3", + "3", + "3\uFE0F\u20E3", + "4", + "4\uFE0F\u20E3", + "5", + "5\uFE0F\u20E3", + "6", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8", + "8\uFE0F\u20E3", + "9", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class.js new file mode 100644 index 0000000000..754d0cf66d --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class.js @@ -0,0 +1,52 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}[0-9]]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}[0-9]]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0", + "0\uFE0F\u20E3", + "1", + "1\uFE0F\u20E3", + "2", + "2\uFE0F\u20E3", + "3", + "3\uFE0F\u20E3", + "4", + "4\uFE0F\u20E3", + "5", + "5\uFE0F\u20E3", + "6", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8", + "8\uFE0F\u20E3", + "9", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-property-escape.js new file mode 100644 index 0000000000..f09ac6c225 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-property-escape.js @@ -0,0 +1,63 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}\p{ASCII_Hex_Digit}]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}\p{ASCII_Hex_Digit}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0", + "0\uFE0F\u20E3", + "1", + "1\uFE0F\u20E3", + "2", + "2\uFE0F\u20E3", + "3", + "3\uFE0F\u20E3", + "4", + "4\uFE0F\u20E3", + "5", + "5\uFE0F\u20E3", + "6", + "6\uFE0F\u20E3", + "7", + "7\uFE0F\u20E3", + "8", + "8\uFE0F\u20E3", + "9", + "9\uFE0F\u20E3", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character.js new file mode 100644 index 0000000000..15311dc344 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character.js @@ -0,0 +1,44 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}_]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}_]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3", + "_" + ], + nonMatchStrings: [ + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-property-of-strings-escape.js new file mode 100644 index 0000000000..52b4863f36 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-property-of-strings-escape.js @@ -0,0 +1,43 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-string-literal.js new file mode 100644 index 0000000000..bcdaebb4e1 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-string-literal.js @@ -0,0 +1,46 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\p{Emoji_Keycap_Sequence}\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\p{Emoji_Keycap_Sequence}\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-13.1.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-13.1.js new file mode 100644 index 0000000000..f7eeb369e4 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-13.1.js @@ -0,0 +1,240 @@ +// Copyright 2023 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Test that Unicode property escapes for `RGI_Emoji` (property of strings) + match Emoji 13.1 strings. +info: | + Generated by https://github.com/mathiasbynens/caniunicode +esid: sec-static-semantics-unicodematchproperty-p +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testPropertyOfStrings({ + regExp: /^\p{RGI_Emoji}+$/v, + expression: "\\p{RGI_Emoji}", + matchStrings: [ + "\u2764\uFE0F\u200D\u{1F525}", + "\u2764\uFE0F\u200D\u{1FA79}", + "\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}", + "\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}", + "\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}", + "\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}", + "\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}", + "\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}", + "\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}", + "\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}", + "\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}", + "\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}", + "\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}", + "\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}", + "\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}", + "\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}", + "\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}", + "\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}", + "\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}", + "\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}", + "\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}", + "\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}", + "\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}", + "\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}", + "\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}", + "\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}", + "\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}", + "\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}", + "\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}", + "\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}", + "\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}", + "\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}", + "\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}", + "\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}", + "\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}", + "\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}", + "\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}", + "\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}", + "\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}", + "\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}", + "\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}", + "\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}", + "\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}", + "\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}", + "\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}", + "\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}", + "\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}", + "\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}", + "\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}", + "\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}", + "\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}", + "\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}", + "\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}", + "\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}", + "\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}", + "\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}", + "\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}", + "\u{1F48F}\u{1F3FB}", + "\u{1F48F}\u{1F3FC}", + "\u{1F48F}\u{1F3FD}", + "\u{1F48F}\u{1F3FE}", + "\u{1F48F}\u{1F3FF}", + "\u{1F491}\u{1F3FB}", + "\u{1F491}\u{1F3FC}", + "\u{1F491}\u{1F3FD}", + "\u{1F491}\u{1F3FE}", + "\u{1F491}\u{1F3FF}", + "\u{1F62E}\u200D\u{1F4A8}", + "\u{1F635}\u200D\u{1F4AB}", + "\u{1F636}\u200D\u{1F32B}\uFE0F", + "\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}", + "\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}", + "\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}", + "\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}", + "\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}", + "\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}", + "\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}", + "\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}", + "\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}", + "\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}", + "\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}", + "\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}", + "\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}", + "\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}", + "\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}", + "\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}", + "\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}", + "\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}", + "\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}", + "\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}", + "\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}", + "\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}", + "\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}", + "\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}", + "\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}", + "\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}", + "\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}", + "\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}", + "\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}", + "\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}", + "\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}", + "\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}", + "\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}", + "\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}", + "\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}", + "\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}", + "\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}", + "\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}", + "\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}", + "\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}", + "\u{1F9D4}\u200D\u2640\uFE0F", + "\u{1F9D4}\u200D\u2642\uFE0F", + "\u{1F9D4}\u{1F3FB}\u200D\u2640\uFE0F", + "\u{1F9D4}\u{1F3FB}\u200D\u2642\uFE0F", + "\u{1F9D4}\u{1F3FC}\u200D\u2640\uFE0F", + "\u{1F9D4}\u{1F3FC}\u200D\u2642\uFE0F", + "\u{1F9D4}\u{1F3FD}\u200D\u2640\uFE0F", + "\u{1F9D4}\u{1F3FD}\u200D\u2642\uFE0F", + "\u{1F9D4}\u{1F3FE}\u200D\u2640\uFE0F", + "\u{1F9D4}\u{1F3FE}\u200D\u2642\uFE0F", + "\u{1F9D4}\u{1F3FF}\u200D\u2640\uFE0F", + "\u{1F9D4}\u{1F3FF}\u200D\u2642\uFE0F" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-14.0.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-14.0.js new file mode 100644 index 0000000000..066dbd9a94 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-14.0.js @@ -0,0 +1,135 @@ +// Copyright 2023 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Test that Unicode property escapes for `RGI_Emoji` (property of strings) + match Emoji 14.0 strings. +info: | + Generated by https://github.com/mathiasbynens/caniunicode +esid: sec-static-semantics-unicodematchproperty-p +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testPropertyOfStrings({ + regExp: /^\p{RGI_Emoji}+$/v, + expression: "\\p{RGI_Emoji}", + matchStrings: [ + "\u{1F6DD}", + "\u{1F6DE}", + "\u{1F6DF}", + "\u{1F7F0}", + "\u{1F91D}\u{1F3FB}", + "\u{1F91D}\u{1F3FC}", + "\u{1F91D}\u{1F3FD}", + "\u{1F91D}\u{1F3FE}", + "\u{1F91D}\u{1F3FF}", + "\u{1F979}", + "\u{1F9CC}", + "\u{1FA7B}", + "\u{1FA7C}", + "\u{1FAA9}", + "\u{1FAAA}", + "\u{1FAAB}", + "\u{1FAAC}", + "\u{1FAB7}", + "\u{1FAB8}", + "\u{1FAB9}", + "\u{1FABA}", + "\u{1FAC3}", + "\u{1FAC3}\u{1F3FB}", + "\u{1FAC3}\u{1F3FC}", + "\u{1FAC3}\u{1F3FD}", + "\u{1FAC3}\u{1F3FE}", + "\u{1FAC3}\u{1F3FF}", + "\u{1FAC4}", + "\u{1FAC4}\u{1F3FB}", + "\u{1FAC4}\u{1F3FC}", + "\u{1FAC4}\u{1F3FD}", + "\u{1FAC4}\u{1F3FE}", + "\u{1FAC4}\u{1F3FF}", + "\u{1FAC5}", + "\u{1FAC5}\u{1F3FB}", + "\u{1FAC5}\u{1F3FC}", + "\u{1FAC5}\u{1F3FD}", + "\u{1FAC5}\u{1F3FE}", + "\u{1FAC5}\u{1F3FF}", + "\u{1FAD7}", + "\u{1FAD8}", + "\u{1FAD9}", + "\u{1FAE0}", + "\u{1FAE1}", + "\u{1FAE2}", + "\u{1FAE3}", + "\u{1FAE4}", + "\u{1FAE5}", + "\u{1FAE6}", + "\u{1FAE7}", + "\u{1FAF0}", + "\u{1FAF0}\u{1F3FB}", + "\u{1FAF0}\u{1F3FC}", + "\u{1FAF0}\u{1F3FD}", + "\u{1FAF0}\u{1F3FE}", + "\u{1FAF0}\u{1F3FF}", + "\u{1FAF1}", + "\u{1FAF1}\u{1F3FB}", + "\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FC}", + "\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FD}", + "\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FE}", + "\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FF}", + "\u{1FAF1}\u{1F3FC}", + "\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FB}", + "\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FD}", + "\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FE}", + "\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FF}", + "\u{1FAF1}\u{1F3FD}", + "\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FB}", + "\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FC}", + "\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FE}", + "\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FF}", + "\u{1FAF1}\u{1F3FE}", + "\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FB}", + "\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FC}", + "\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FD}", + "\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FF}", + "\u{1FAF1}\u{1F3FF}", + "\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FB}", + "\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FC}", + "\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FD}", + "\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FE}", + "\u{1FAF2}", + "\u{1FAF2}\u{1F3FB}", + "\u{1FAF2}\u{1F3FC}", + "\u{1FAF2}\u{1F3FD}", + "\u{1FAF2}\u{1F3FE}", + "\u{1FAF2}\u{1F3FF}", + "\u{1FAF3}", + "\u{1FAF3}\u{1F3FB}", + "\u{1FAF3}\u{1F3FC}", + "\u{1FAF3}\u{1F3FD}", + "\u{1FAF3}\u{1F3FE}", + "\u{1FAF3}\u{1F3FF}", + "\u{1FAF4}", + "\u{1FAF4}\u{1F3FB}", + "\u{1FAF4}\u{1F3FC}", + "\u{1FAF4}\u{1F3FD}", + "\u{1FAF4}\u{1F3FE}", + "\u{1FAF4}\u{1F3FF}", + "\u{1FAF5}", + "\u{1FAF5}\u{1F3FB}", + "\u{1FAF5}\u{1F3FC}", + "\u{1FAF5}\u{1F3FD}", + "\u{1FAF5}\u{1F3FE}", + "\u{1FAF5}\u{1F3FF}", + "\u{1FAF6}", + "\u{1FAF6}\u{1F3FB}", + "\u{1FAF6}\u{1F3FC}", + "\u{1FAF6}\u{1F3FD}", + "\u{1FAF6}\u{1F3FE}", + "\u{1FAF6}\u{1F3FF}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-15.0.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-15.0.js new file mode 100644 index 0000000000..03c58e25c3 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-15.0.js @@ -0,0 +1,54 @@ +// Copyright 2023 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Test that Unicode property escapes for `RGI_Emoji` (property of strings) + match Emoji 15.0 strings. +info: | + Generated by https://github.com/mathiasbynens/caniunicode +esid: sec-static-semantics-unicodematchproperty-p +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testPropertyOfStrings({ + regExp: /^\p{RGI_Emoji}+$/v, + expression: "\\p{RGI_Emoji}", + matchStrings: [ + "\u{1F426}\u200D\u2B1B", + "\u{1F6DC}", + "\u{1FA75}", + "\u{1FA76}", + "\u{1FA77}", + "\u{1FA87}", + "\u{1FA88}", + "\u{1FAAD}", + "\u{1FAAE}", + "\u{1FAAF}", + "\u{1FABB}", + "\u{1FABC}", + "\u{1FABD}", + "\u{1FABF}", + "\u{1FACE}", + "\u{1FACF}", + "\u{1FADA}", + "\u{1FADB}", + "\u{1FAE8}", + "\u{1FAF7}", + "\u{1FAF7}\u{1F3FB}", + "\u{1FAF7}\u{1F3FC}", + "\u{1FAF7}\u{1F3FD}", + "\u{1FAF7}\u{1F3FE}", + "\u{1FAF7}\u{1F3FF}", + "\u{1FAF8}", + "\u{1FAF8}\u{1F3FB}", + "\u{1FAF8}\u{1F3FC}", + "\u{1FAF8}\u{1F3FD}", + "\u{1FAF8}\u{1F3FE}", + "\u{1FAF8}\u{1F3FF}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-15.1.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-15.1.js new file mode 100644 index 0000000000..c2ef032918 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/rgi-emoji-15.1.js @@ -0,0 +1,141 @@ +// Copyright 2023 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Test that Unicode property escapes for `RGI_Emoji` (property of strings) + match Emoji 15.1 strings. +info: | + Generated by https://github.com/mathiasbynens/caniunicode +esid: sec-static-semantics-unicodematchproperty-p +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testPropertyOfStrings({ + regExp: /^\p{RGI_Emoji}+$/v, + expression: "\\p{RGI_Emoji}", + matchStrings: [ + "\u26D3\uFE0F\u200D\u{1F4A5}", + "\u{1F344}\u200D\u{1F7EB}", + "\u{1F34B}\u200D\u{1F7E9}", + "\u{1F3C3}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FB}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FB}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FB}\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FC}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FC}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FC}\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FD}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FD}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FD}\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FE}\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FF}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FF}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F3C3}\u{1F3FF}\u200D\u27A1\uFE0F", + "\u{1F426}\u200D\u{1F525}", + "\u{1F468}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F468}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F468}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FB}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FB}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FB}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FC}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FC}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FC}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FD}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FD}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FD}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FE}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FE}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FE}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FF}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FF}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F468}\u{1F3FF}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F469}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F469}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F469}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FB}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FB}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FB}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FC}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FC}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FC}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FD}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FD}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FD}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FE}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FE}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FE}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FF}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FF}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F469}\u{1F3FF}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F642}\u200D\u2194\uFE0F", + "\u{1F642}\u200D\u2195\uFE0F", + "\u{1F6B6}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FB}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FB}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FB}\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FC}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FC}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FC}\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FD}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FD}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FD}\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FE}\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FF}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FF}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F6B6}\u{1F3FF}\u200D\u27A1\uFE0F", + "\u{1F9CE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FB}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FB}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FB}\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FC}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FC}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FC}\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FD}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FD}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FD}\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FE}\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FF}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FF}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F", + "\u{1F9CE}\u{1F3FF}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u200D\u{1F9D1}\u200D\u{1F9D2}", + "\u{1F9D1}\u200D\u{1F9D1}\u200D\u{1F9D2}\u200D\u{1F9D2}", + "\u{1F9D1}\u200D\u{1F9D2}", + "\u{1F9D1}\u200D\u{1F9D2}\u200D\u{1F9D2}", + "\u{1F9D1}\u{1F3FB}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FB}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FB}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FC}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FC}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FC}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FD}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FD}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FD}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FE}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FE}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FE}\u200D\u{1F9BD}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FF}\u200D\u{1F9AF}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FF}\u200D\u{1F9BC}\u200D\u27A1\uFE0F", + "\u{1F9D1}\u{1F3FF}\u200D\u{1F9BD}\u200D\u27A1\uFE0F" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/shell.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/shell.js new file mode 100644 index 0000000000..591d3924c3 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/shell.js @@ -0,0 +1,115 @@ +// GENERATED, DO NOT EDIT +// file: regExpUtils.js +// Copyright (C) 2017 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: | + Collection of functions used to assert the correctness of RegExp objects. +defines: [buildString, testPropertyEscapes, testPropertyOfStrings, testExtendedCharacterClass, matchValidator] +---*/ + +function buildString(args) { + // Use member expressions rather than destructuring `args` for improved + // compatibility with engines that only implement assignment patterns + // partially or not at all. + const loneCodePoints = args.loneCodePoints; + const ranges = args.ranges; + const CHUNK_SIZE = 10000; + let result = Reflect.apply(String.fromCodePoint, null, loneCodePoints); + for (let i = 0; i < ranges.length; i++) { + const range = ranges[i]; + const start = range[0]; + const end = range[1]; + const codePoints = []; + for (let length = 0, codePoint = start; codePoint <= end; codePoint++) { + codePoints[length++] = codePoint; + if (length === CHUNK_SIZE) { + result += Reflect.apply(String.fromCodePoint, null, codePoints); + codePoints.length = length = 0; + } + } + result += Reflect.apply(String.fromCodePoint, null, codePoints); + } + return result; +} + +function printCodePoint(codePoint) { + const hex = codePoint + .toString(16) + .toUpperCase() + .padStart(6, "0"); + return `U+${hex}`; +} + +function printStringCodePoints(string) { + const buf = []; + for (const symbol of string) { + const formatted = printCodePoint(symbol.codePointAt(0)); + buf.push(formatted); + } + return buf.join(' '); +} + +function testPropertyEscapes(regExp, string, expression) { + if (!regExp.test(string)) { + for (const symbol of string) { + const formatted = printCodePoint(symbol.codePointAt(0)); + assert( + regExp.test(symbol), + `\`${ expression }\` should match ${ formatted } (\`${ symbol }\`)` + ); + } + } +} + +function testPropertyOfStrings(args) { + // Use member expressions rather than destructuring `args` for improved + // compatibility with engines that only implement assignment patterns + // partially or not at all. + const regExp = args.regExp; + const expression = args.expression; + const matchStrings = args.matchStrings; + const nonMatchStrings = args.nonMatchStrings; + const allStrings = matchStrings.join(''); + if (!regExp.test(allStrings)) { + for (const string of matchStrings) { + assert( + regExp.test(string), + `\`${ expression }\` should match ${ string } (${ printStringCodePoints(string) })` + ); + } + } + + if (!nonMatchStrings) return; + + const allNonMatchStrings = nonMatchStrings.join(''); + if (regExp.test(allNonMatchStrings)) { + for (const string of nonMatchStrings) { + assert( + !regExp.test(string), + `\`${ expression }\` should not match ${ string } (${ printStringCodePoints(string) })` + ); + } + } +} + +// The exact same logic can be used to test extended character classes +// as enabled through the RegExp `v` flag. This is useful to test not +// just standalone properties of strings, but also string literals, and +// set operations. +const testExtendedCharacterClass = testPropertyOfStrings; + +// Returns a function that validates a RegExp match result. +// +// Example: +// +// var validate = matchValidator(['b'], 1, 'abc'); +// validate(/b/.exec('abc')); +// +function matchValidator(expectedEntries, expectedIndex, expectedInput) { + return function(match) { + assert.compareArray(match, expectedEntries, 'Match entries'); + assert.sameValue(match.index, expectedIndex, 'Match index'); + assert.sameValue(match.input, expectedInput, 'Match input'); + } +} diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-class-escape.js new file mode 100644 index 0000000000..02cf2f9e5b --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-class-escape.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}--\d]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}--\d]", + matchStrings: [ + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "0", + "2", + "4", + "6\uFE0F\u20E3", + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-class.js new file mode 100644 index 0000000000..96c4b87b38 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-class.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}--[0-9]]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}--[0-9]]", + matchStrings: [ + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "0", + "2", + "4", + "6\uFE0F\u20E3", + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-property-escape.js new file mode 100644 index 0000000000..1d337d37a7 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-property-escape.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}--\p{ASCII_Hex_Digit}]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}--\p{ASCII_Hex_Digit}]", + matchStrings: [ + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "0", + "2", + "4", + "6\uFE0F\u20E3", + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character.js new file mode 100644 index 0000000000..3e27211dc3 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-character.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}--_]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}--_]", + matchStrings: [ + "0", + "2", + "4", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-property-of-strings-escape.js new file mode 100644 index 0000000000..5ac2d64bc0 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-property-of-strings-escape.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}--\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}--\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "0", + "2", + "4" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-string-literal.js new file mode 100644 index 0000000000..ee83c8c1b0 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-difference-string-literal.js @@ -0,0 +1,35 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}--\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}--\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [], + nonMatchStrings: [ + "0", + "2", + "4", + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-class-escape.js new file mode 100644 index 0000000000..8b27faeb1e --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-class-escape.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}&&\d]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}&&\d]", + matchStrings: [ + "0", + "2", + "4" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-class.js new file mode 100644 index 0000000000..82dd8971f7 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-class.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}&&[0-9]]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}&&[0-9]]", + matchStrings: [ + "0", + "2", + "4" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-property-escape.js new file mode 100644 index 0000000000..91eb444cc6 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-property-escape.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}&&\p{ASCII_Hex_Digit}]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}&&\p{ASCII_Hex_Digit}]", + matchStrings: [ + "0", + "2", + "4" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character.js new file mode 100644 index 0000000000..87f8a8c182 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character.js @@ -0,0 +1,35 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}&&_]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}&&_]", + matchStrings: [], + nonMatchStrings: [ + "0", + "2", + "4", + "6\uFE0F\u20E3", + "7", + "9\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-property-of-strings-escape.js new file mode 100644 index 0000000000..fe4f943999 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-property-of-strings-escape.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}&&\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}&&\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "0", + "2", + "4", + "6\uFE0F\u20E3", + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-string-literal.js new file mode 100644 index 0000000000..f6314e94e7 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-intersection-string-literal.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}&&\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}&&\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "0", + "2", + "4", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character-class-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character-class-escape.js new file mode 100644 index 0000000000..5bbf70287c --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character-class-escape.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}\d]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}\d]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character-class.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character-class.js new file mode 100644 index 0000000000..28d3a42c68 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character-class.js @@ -0,0 +1,42 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}[0-9]]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}[0-9]]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character-property-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character-property-escape.js new file mode 100644 index 0000000000..707dd8047a --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character-property-escape.js @@ -0,0 +1,53 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}\p{ASCII_Hex_Digit}]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}\p{ASCII_Hex_Digit}]", + matchStrings: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "9\uFE0F\u20E3", + "A", + "B", + "C", + "D", + "E", + "F", + "a", + "b", + "c", + "d", + "e", + "f" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character.js new file mode 100644 index 0000000000..ddd9eeb7a6 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-character.js @@ -0,0 +1,37 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}_]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}_]", + matchStrings: [ + "0", + "2", + "4", + "9\uFE0F\u20E3", + "_" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-property-of-strings-escape.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-property-of-strings-escape.js new file mode 100644 index 0000000000..3596853330 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-property-of-strings-escape.js @@ -0,0 +1,46 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-unicode-property-escapes, regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}\p{Emoji_Keycap_Sequence}]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}\p{Emoji_Keycap_Sequence}]", + matchStrings: [ + "#\uFE0F\u20E3", + "*\uFE0F\u20E3", + "0", + "0\uFE0F\u20E3", + "1\uFE0F\u20E3", + "2", + "2\uFE0F\u20E3", + "3\uFE0F\u20E3", + "4", + "4\uFE0F\u20E3", + "5\uFE0F\u20E3", + "6\uFE0F\u20E3", + "7\uFE0F\u20E3", + "8\uFE0F\u20E3", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-string-literal.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-string-literal.js new file mode 100644 index 0000000000..8780335787 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/generated/string-literal-union-string-literal.js @@ -0,0 +1,36 @@ +// Copyright 2022 Mathias Bynens. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +author: Mathias Bynens +description: > + Extended character classes enabled by the RegExp `v` flag support + properties of strings, string literals, and set operations +info: | + Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests + Unicode v14.0.0 +esid: sec-patterns +features: [regexp-v-flag] +includes: [regExpUtils.js] +---*/ + +testExtendedCharacterClass({ + regExp: /^[\q{0|2|4|9\uFE0F\u20E3}\q{0|2|4|9\uFE0F\u20E3}]+$/v, + expression: "[\q{0|2|4|9\uFE0F\u20E3}\q{0|2|4|9\uFE0F\u20E3}]", + matchStrings: [ + "0", + "2", + "4", + "9\uFE0F\u20E3" + ], + nonMatchStrings: [ + "6\uFE0F\u20E3", + "7", + "C", + "\u2603", + "\u{1D306}", + "\u{1F1E7}\u{1F1EA}" + ], +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/built-ins/RegExp/unicodeSets/shell.js b/js/src/tests/test262/built-ins/RegExp/unicodeSets/shell.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/js/src/tests/test262/built-ins/RegExp/unicodeSets/shell.js |