summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/RegExp/property-escapes
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /js/src/tests/test262/built-ins/RegExp/property-escapes
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/built-ins/RegExp/property-escapes')
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/browser.js0
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-end.js21
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-no-dash-end.js21
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-no-dash-start.js21
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-start.js21
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/character-class.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ASCII.js42
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ASCII_Hex_Digit.js57
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Alphabetic.js1443
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Any.js35
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Assigned.js1396
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Bidi_Control.js60
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Bidi_Mirrored.js279
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Case_Ignorable.js873
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Cased.js325
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casefolded.js1281
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casemapped.js301
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Lowercased.js1255
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_NFKC_Casefolded.js1707
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Titlecased.js1289
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Uppercased.js1291
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Dash.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Default_Ignorable_Code_Point.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Deprecated.js69
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Diacritic.js405
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji.js347
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Component.js72
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Modifier.js53
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Modifier_Base.js129
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Presentation.js215
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Extended_Pictographic.js209
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Extender.js117
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js357
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Close_Punctuation.js237
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Connector_Punctuation.js104
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Control.js124
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Currency_Symbol.js134
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Dash_Punctuation.js128
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js243
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Enclosing_Mark.js103
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Final_Punctuation.js112
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Format.js133
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Initial_Punctuation.js115
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js1337
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter_Number.js116
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Line_Separator.js93
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js1383
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js703
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Math_Symbol.js221
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js215
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Symbol.js153
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js747
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js359
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Open_Punctuation.js242
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js1449
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js1071
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Number.js235
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js455
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js457
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Paragraph_Separator.js93
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Private_Use.js96
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js493
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Separator.js108
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Space_Separator.js106
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js443
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js92
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js551
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Titlecase_Letter.js112
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js1446
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Uppercase_Letter.js1369
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js1721
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Grapheme_Extend.js741
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Hex_Digit.js63
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/IDS_Binary_Operator.js55
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/IDS_Trinary_Operator.js53
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ID_Continue.js1513
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ID_Start.js1297
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Ideographic.js90
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Join_Control.js53
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Logical_Order_Exception.js67
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Lowercase.js1357
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Math.js319
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Noncharacter_Code_Point.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Pattern_Syntax.js109
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Pattern_White_Space.js62
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Quotation_Mark.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Radical.js48
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Regional_Indicator.js53
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Adlam.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ahom.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Anatolian_Hieroglyphs.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Arabic.js187
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Armenian.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Avestan.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Balinese.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bamum.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bassa_Vah.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Batak.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bengali.js101
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bhaiksuki.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bopomofo.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Brahmi.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Braille.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Buginese.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Buhid.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Canadian_Aboriginal.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Carian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Caucasian_Albanian.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Chakma.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cham.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cherokee.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Chorasmian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Common.js418
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Coptic.js97
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cuneiform.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cypriot.js85
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cyrillic.js88
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Deseret.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Devanagari.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Dives_Akuru.js89
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Dogra.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Duployan.js81
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Egyptian_Hieroglyphs.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Elbasan.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Elymaic.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ethiopic.js137
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Georgian.js93
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Glagolitic.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gothic.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Grantha.js103
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Greek.js145
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gujarati.js101
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gunjala_Gondi.js84
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gurmukhi.js105
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Han.js111
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hangul.js99
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hanifi_Rohingya.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hanunoo.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hatran.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hebrew.js91
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hiragana.js82
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Imperial_Aramaic.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inherited.js149
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Pahlavi.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Parthian.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Javanese.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kaithi.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kannada.js99
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Katakana.js91
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kayah_Li.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kharoshthi.js88
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khitan_Small_Script.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khmer.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khojki.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khudawadi.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lao.js95
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Latin.js137
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lepcha.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Limbu.js83
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Linear_A.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Linear_B.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lisu.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lydian.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mahajani.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Makasar.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Malayalam.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mandaic.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Manichaean.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Marchen.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Masaram_Gondi.js87
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Medefaidrin.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meetei_Mayek.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mende_Kikakui.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Cursive.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Hieroglyphs.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Miao.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Modi.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mongolian.js87
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mro.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Multani.js83
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Myanmar.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nabataean.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nandinagari.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_New_Tai_Lue.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Newa.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nko.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nushu.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nyiakeng_Puachue_Hmong.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ogham.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ol_Chiki.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Hungarian.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Italic.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_North_Arabian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Permic.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Persian.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Sogdian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_South_Arabian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Turkic.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Oriya.js100
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Osage.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Osmanya.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Pahawh_Hmong.js82
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Palmyrene.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Pau_Cin_Hau.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Phags_Pa.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Phoenician.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Psalter_Pahlavi.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Rejang.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Runic.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Samaritan.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Saurashtra.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sharada.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Shavian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Siddham.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_SignWriting.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sinhala.js99
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sogdian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sora_Sompeng.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Soyombo.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sundanese.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Syloti_Nagri.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Syriac.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tagalog.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tagbanwa.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Le.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Tham.js82
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Viet.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Takri.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tamil.js109
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tangut.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Telugu.js96
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Thaana.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Thai.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tibetan.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tifinagh.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tirhuta.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ugaritic.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Vai.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Wancho.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Warang_Citi.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Yezidi.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Yi.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Zanabazar_Square.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Adlam.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ahom.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Anatolian_Hieroglyphs.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Arabic.js177
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Armenian.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Avestan.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Balinese.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bamum.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bassa_Vah.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Batak.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bengali.js125
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bhaiksuki.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bopomofo.js97
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Brahmi.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Braille.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buginese.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buhid.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Canadian_Aboriginal.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Carian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Caucasian_Albanian.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chakma.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cham.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cherokee.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chorasmian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js368
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Coptic.js99
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cuneiform.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cypriot.js91
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cyrillic.js90
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Deseret.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Devanagari.js87
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Dives_Akuru.js89
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Dogra.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Duployan.js81
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Egyptian_Hieroglyphs.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elbasan.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elymaic.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ethiopic.js137
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Georgian.js91
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Glagolitic.js95
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gothic.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Grantha.js123
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Greek.js149
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gujarati.js107
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gunjala_Gondi.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gurmukhi.js111
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js145
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hangul.js115
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanifi_Rohingya.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanunoo.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hatran.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hebrew.js91
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hiragana.js105
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Imperial_Aramaic.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inherited.js129
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Pahlavi.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Parthian.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Javanese.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kaithi.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kannada.js115
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Katakana.js103
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kayah_Li.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kharoshthi.js88
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khitan_Small_Script.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khmer.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khojki.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khudawadi.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lao.js95
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Latin.js153
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lepcha.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Limbu.js85
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_A.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_B.js92
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lisu.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lycian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lydian.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mahajani.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Makasar.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Malayalam.js95
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mandaic.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Manichaean.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Marchen.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Masaram_Gondi.js89
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Medefaidrin.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meetei_Mayek.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mende_Kikakui.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Cursive.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Hieroglyphs.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Miao.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Modi.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mongolian.js85
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mro.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Multani.js85
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Myanmar.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nabataean.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nandinagari.js90
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_New_Tai_Lue.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Newa.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nko.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nushu.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nyiakeng_Puachue_Hmong.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ogham.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ol_Chiki.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Hungarian.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Italic.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_North_Arabian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Permic.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Persian.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Sogdian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_South_Arabian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Turkic.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Oriya.js109
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osage.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osmanya.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pahawh_Hmong.js82
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Palmyrene.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pau_Cin_Hau.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phags_Pa.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phoenician.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Psalter_Pahlavi.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Rejang.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Runic.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Samaritan.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Saurashtra.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js85
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Shavian.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Siddham.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_SignWriting.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js101
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sogdian.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sora_Sompeng.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Soyombo.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sundanese.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syloti_Nagri.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syriac.js95
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagalog.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagbanwa.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Le.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Tham.js82
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Viet.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Takri.js79
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tamil.js123
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tangut.js80
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Telugu.js105
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thaana.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thai.js75
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tibetan.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tifinagh.js78
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tirhuta.js84
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ugaritic.js77
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Vai.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Wancho.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Warang_Citi.js76
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yezidi.js87
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yi.js86
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Zanabazar_Square.js73
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js205
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Soft_Dotted.js115
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Terminal_Punctuation.js261
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js83
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Uppercase.js1339
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Variation_Selector.js57
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/White_Space.js72
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/XID_Continue.js1527
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/XID_Start.js1311
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/browser.js0
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/generated/shell.js60
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-empty-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-empty.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-invalid-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-invalid.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-value-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-value.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-only-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-only.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unclosed-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unclosed.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unopened-negated.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unopened.js22
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-01-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-01.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-02-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-02.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-03-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-03.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-04-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-04.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-05-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-05.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-06-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-06.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-07-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-07.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-08-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-08.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-09-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-09.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-10-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-10.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-11-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-11.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-12-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-12.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-13-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-13.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-14-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-14.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals-negated.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-negated.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals-negated.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-negated.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals-negated.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-negated.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-binary-property-negated.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-binary-property.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-and-value-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-and-value.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-existing-value-negated.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-existing-value.js18
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-General_Category-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-general-category.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/shell.js0
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Block-with-value-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Block-with-value.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value-negated.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value.js19
-rw-r--r--js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break.js19
550 files changed, 71369 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F-negated.js
new file mode 100644
index 0000000000..7331a3342e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ASCII=F}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F.js
new file mode 100644
index 0000000000..2e53e37be8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ASCII=F}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid-negated.js
new file mode 100644
index 0000000000..e398ae8f84
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ASCII=Invalid}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid.js
new file mode 100644
index 0000000000..f297a72424
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ASCII=Invalid}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N-negated.js
new file mode 100644
index 0000000000..3696bd4579
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ASCII=N}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N.js
new file mode 100644
index 0000000000..9275f4ffcc
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ASCII=N}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No-negated.js
new file mode 100644
index 0000000000..450bb142a1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ASCII=No}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No.js
new file mode 100644
index 0000000000..1342d0e3f7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ASCII=No}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T-negated.js
new file mode 100644
index 0000000000..c2bbe2db95
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ASCII=T}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T.js
new file mode 100644
index 0000000000..01c4ddcdc1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ASCII=T}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y-negated.js
new file mode 100644
index 0000000000..052799975a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ASCII=Y}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y.js
new file mode 100644
index 0000000000..921e2510c4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ASCII=Y}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes-negated.js
new file mode 100644
index 0000000000..94f4e523a2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ASCII=Yes}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes.js
new file mode 100644
index 0000000000..35370f890c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Binary properties with an explicit value must throw in Unicode property
+ escapes (even if the value is valid).
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ASCII=Yes}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/browser.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/browser.js
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/browser.js
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-end.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-end.js
new file mode 100644
index 0000000000..6233ff6a05
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-end.js
@@ -0,0 +1,21 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ NonemptyClassRanges :: ClassAtom - ClassAtom ClassRanges
+
+ It is a Syntax Error if IsCharacterClass of the first ClassAtom is
+ true or IsCharacterClass of the second ClassAtom is true.
+esid: sec-patterns-static-semantics-early-errors
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/[--\p{Hex}]/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-no-dash-end.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-no-dash-end.js
new file mode 100644
index 0000000000..16aafcce6a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-no-dash-end.js
@@ -0,0 +1,21 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ NonemptyClassRangesNoDash :: ClassAtomNoDash - ClassAtom ClassRanges
+
+ It is a Syntax Error if IsCharacterClass of ClassAtomNoDash is true or
+ IsCharacterClass of ClassAtom is true.
+esid: sec-patterns-static-semantics-early-errors
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/[\uFFFF-\p{Hex}]/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-no-dash-start.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-no-dash-start.js
new file mode 100644
index 0000000000..3db35ec9b7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-no-dash-start.js
@@ -0,0 +1,21 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ NonemptyClassRangesNoDash :: ClassAtomNoDash - ClassAtom ClassRanges
+
+ It is a Syntax Error if IsCharacterClass of ClassAtomNoDash is true or
+ IsCharacterClass of ClassAtom is true.
+esid: sec-patterns-static-semantics-early-errors
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/[\p{Hex}-\uFFFF]/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-start.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-start.js
new file mode 100644
index 0000000000..c430925a34
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class-range-start.js
@@ -0,0 +1,21 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ NonemptyClassRanges :: ClassAtom - ClassAtom ClassRanges
+
+ It is a Syntax Error if IsCharacterClass of the first ClassAtom is
+ true or IsCharacterClass of the second ClassAtom is true.
+esid: sec-patterns-static-semantics-early-errors
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/[\p{Hex}--]/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class.js
new file mode 100644
index 0000000000..f7bf696d4e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/character-class.js
@@ -0,0 +1,19 @@
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes must be supported in character classes.
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+---*/
+
+/[\p{Hex}]/u;
+
+assert(
+ /[\p{Hex}\P{Hex}]/u.test('\u{1D306}'),
+ 'multiple property escapes in a single character class should be supported'
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ASCII.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ASCII.js
new file mode 100644
index 0000000000..e217e15a4e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ASCII.js
@@ -0,0 +1,42 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `ASCII`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000000, 0x00007F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{ASCII}+$/u,
+ matchSymbols,
+ "\\p{ASCII}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000080, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{ASCII}+$/u,
+ nonMatchSymbols,
+ "\\P{ASCII}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ASCII_Hex_Digit.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ASCII_Hex_Digit.js
new file mode 100644
index 0000000000..9c5b712e61
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ASCII_Hex_Digit.js
@@ -0,0 +1,57 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `ASCII_Hex_Digit`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000030, 0x000039],
+ [0x000041, 0x000046],
+ [0x000061, 0x000066]
+ ]
+});
+testPropertyEscapes(
+ /^\p{ASCII_Hex_Digit}+$/u,
+ matchSymbols,
+ "\\p{ASCII_Hex_Digit}"
+);
+testPropertyEscapes(
+ /^\p{AHex}+$/u,
+ matchSymbols,
+ "\\p{AHex}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00002F],
+ [0x00003A, 0x000040],
+ [0x000047, 0x000060],
+ [0x000067, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{ASCII_Hex_Digit}+$/u,
+ nonMatchSymbols,
+ "\\P{ASCII_Hex_Digit}"
+);
+testPropertyEscapes(
+ /^\P{AHex}+$/u,
+ nonMatchSymbols,
+ "\\P{AHex}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Alphabetic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Alphabetic.js
new file mode 100644
index 0000000000..fbc3ccfeeb
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Alphabetic.js
@@ -0,0 +1,1443 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Alphabetic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000B5,
+ 0x0000BA,
+ 0x0002EC,
+ 0x0002EE,
+ 0x000345,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x000559,
+ 0x0005BF,
+ 0x0005C7,
+ 0x0006FF,
+ 0x0007FA,
+ 0x0009B2,
+ 0x0009CE,
+ 0x0009D7,
+ 0x0009FC,
+ 0x000A51,
+ 0x000A5E,
+ 0x000AD0,
+ 0x000B71,
+ 0x000B9C,
+ 0x000BD0,
+ 0x000BD7,
+ 0x000CDE,
+ 0x000D4E,
+ 0x000DBD,
+ 0x000DD6,
+ 0x000E4D,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EC6,
+ 0x000ECD,
+ 0x000F00,
+ 0x001038,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001258,
+ 0x0012C0,
+ 0x0017D7,
+ 0x0017DC,
+ 0x001AA7,
+ 0x001CFA,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001FBE,
+ 0x002071,
+ 0x00207F,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x00214E,
+ 0x002D27,
+ 0x002D2D,
+ 0x002D6F,
+ 0x002E2F,
+ 0x00A8C5,
+ 0x00A8FB,
+ 0x00A9CF,
+ 0x00AAC0,
+ 0x00AAC2,
+ 0x00FB3E,
+ 0x010808,
+ 0x01083C,
+ 0x010F27,
+ 0x011176,
+ 0x0111DA,
+ 0x0111DC,
+ 0x011237,
+ 0x01123E,
+ 0x011288,
+ 0x011350,
+ 0x011357,
+ 0x0114C7,
+ 0x011640,
+ 0x011644,
+ 0x0116B8,
+ 0x011909,
+ 0x0119E1,
+ 0x011A9D,
+ 0x011C40,
+ 0x011D3A,
+ 0x011D43,
+ 0x011D98,
+ 0x011FB0,
+ 0x016FE3,
+ 0x01BC9E,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01E14E,
+ 0x01E947,
+ 0x01E94B,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002C1],
+ [0x0002C6, 0x0002D1],
+ [0x0002E0, 0x0002E4],
+ [0x000370, 0x000374],
+ [0x000376, 0x000377],
+ [0x00037A, 0x00037D],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003F5],
+ [0x0003F7, 0x000481],
+ [0x00048A, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000560, 0x000588],
+ [0x0005B0, 0x0005BD],
+ [0x0005C1, 0x0005C2],
+ [0x0005C4, 0x0005C5],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F2],
+ [0x000610, 0x00061A],
+ [0x000620, 0x000657],
+ [0x000659, 0x00065F],
+ [0x00066E, 0x0006D3],
+ [0x0006D5, 0x0006DC],
+ [0x0006E1, 0x0006E8],
+ [0x0006ED, 0x0006EF],
+ [0x0006FA, 0x0006FC],
+ [0x000710, 0x00073F],
+ [0x00074D, 0x0007B1],
+ [0x0007CA, 0x0007EA],
+ [0x0007F4, 0x0007F5],
+ [0x000800, 0x000817],
+ [0x00081A, 0x00082C],
+ [0x000840, 0x000858],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x0008D4, 0x0008DF],
+ [0x0008E3, 0x0008E9],
+ [0x0008F0, 0x00093B],
+ [0x00093D, 0x00094C],
+ [0x00094E, 0x000950],
+ [0x000955, 0x000963],
+ [0x000971, 0x000983],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009BD, 0x0009C4],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CC],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E3],
+ [0x0009F0, 0x0009F1],
+ [0x000A01, 0x000A03],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A3E, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4C],
+ [0x000A59, 0x000A5C],
+ [0x000A70, 0x000A75],
+ [0x000A81, 0x000A83],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000ABD, 0x000AC5],
+ [0x000AC7, 0x000AC9],
+ [0x000ACB, 0x000ACC],
+ [0x000AE0, 0x000AE3],
+ [0x000AF9, 0x000AFC],
+ [0x000B01, 0x000B03],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B3D, 0x000B44],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4C],
+ [0x000B56, 0x000B57],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B63],
+ [0x000B82, 0x000B83],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000BBE, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCC],
+ [0x000C00, 0x000C03],
+ [0x000C05, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C3D, 0x000C44],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4C],
+ [0x000C55, 0x000C56],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C63],
+ [0x000C80, 0x000C83],
+ [0x000C85, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CBD, 0x000CC4],
+ [0x000CC6, 0x000CC8],
+ [0x000CCA, 0x000CCC],
+ [0x000CD5, 0x000CD6],
+ [0x000CE0, 0x000CE3],
+ [0x000CF1, 0x000CF2],
+ [0x000D00, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D3A],
+ [0x000D3D, 0x000D44],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4C],
+ [0x000D54, 0x000D57],
+ [0x000D5F, 0x000D63],
+ [0x000D7A, 0x000D7F],
+ [0x000D81, 0x000D83],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000DCF, 0x000DD4],
+ [0x000DD8, 0x000DDF],
+ [0x000DF2, 0x000DF3],
+ [0x000E01, 0x000E3A],
+ [0x000E40, 0x000E46],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EB9],
+ [0x000EBB, 0x000EBD],
+ [0x000EC0, 0x000EC4],
+ [0x000EDC, 0x000EDF],
+ [0x000F40, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F71, 0x000F81],
+ [0x000F88, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x001000, 0x001036],
+ [0x00103B, 0x00103F],
+ [0x001050, 0x00108F],
+ [0x00109A, 0x00109D],
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FA],
+ [0x0010FC, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x001380, 0x00138F],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001401, 0x00166C],
+ [0x00166F, 0x00167F],
+ [0x001681, 0x00169A],
+ [0x0016A0, 0x0016EA],
+ [0x0016EE, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001713],
+ [0x001720, 0x001733],
+ [0x001740, 0x001753],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001772, 0x001773],
+ [0x001780, 0x0017B3],
+ [0x0017B6, 0x0017C8],
+ [0x001820, 0x001878],
+ [0x001880, 0x0018AA],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001920, 0x00192B],
+ [0x001930, 0x001938],
+ [0x001950, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x001A00, 0x001A1B],
+ [0x001A20, 0x001A5E],
+ [0x001A61, 0x001A74],
+ [0x001ABF, 0x001AC0],
+ [0x001B00, 0x001B33],
+ [0x001B35, 0x001B43],
+ [0x001B45, 0x001B4B],
+ [0x001B80, 0x001BA9],
+ [0x001BAC, 0x001BAF],
+ [0x001BBA, 0x001BE5],
+ [0x001BE7, 0x001BF1],
+ [0x001C00, 0x001C36],
+ [0x001C4D, 0x001C4F],
+ [0x001C5A, 0x001C7D],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF6],
+ [0x001D00, 0x001DBF],
+ [0x001DE7, 0x001DF4],
+ [0x001E00, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FBC],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FCC],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FE0, 0x001FEC],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFC],
+ [0x002090, 0x00209C],
+ [0x00210A, 0x002113],
+ [0x002119, 0x00211D],
+ [0x00212A, 0x00212D],
+ [0x00212F, 0x002139],
+ [0x00213C, 0x00213F],
+ [0x002145, 0x002149],
+ [0x002160, 0x002188],
+ [0x0024B6, 0x0024E9],
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CE4],
+ [0x002CEB, 0x002CEE],
+ [0x002CF2, 0x002CF3],
+ [0x002D00, 0x002D25],
+ [0x002D30, 0x002D67],
+ [0x002D80, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x002DE0, 0x002DFF],
+ [0x003005, 0x003007],
+ [0x003021, 0x003029],
+ [0x003031, 0x003035],
+ [0x003038, 0x00303C],
+ [0x003041, 0x003096],
+ [0x00309D, 0x00309F],
+ [0x0030A1, 0x0030FA],
+ [0x0030FC, 0x0030FF],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x0031A0, 0x0031BF],
+ [0x0031F0, 0x0031FF],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00A000, 0x00A48C],
+ [0x00A4D0, 0x00A4FD],
+ [0x00A500, 0x00A60C],
+ [0x00A610, 0x00A61F],
+ [0x00A62A, 0x00A62B],
+ [0x00A640, 0x00A66E],
+ [0x00A674, 0x00A67B],
+ [0x00A67F, 0x00A6EF],
+ [0x00A717, 0x00A71F],
+ [0x00A722, 0x00A788],
+ [0x00A78B, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A805],
+ [0x00A807, 0x00A827],
+ [0x00A840, 0x00A873],
+ [0x00A880, 0x00A8C3],
+ [0x00A8F2, 0x00A8F7],
+ [0x00A8FD, 0x00A8FF],
+ [0x00A90A, 0x00A92A],
+ [0x00A930, 0x00A952],
+ [0x00A960, 0x00A97C],
+ [0x00A980, 0x00A9B2],
+ [0x00A9B4, 0x00A9BF],
+ [0x00A9E0, 0x00A9EF],
+ [0x00A9FA, 0x00A9FE],
+ [0x00AA00, 0x00AA36],
+ [0x00AA40, 0x00AA4D],
+ [0x00AA60, 0x00AA76],
+ [0x00AA7A, 0x00AABE],
+ [0x00AADB, 0x00AADD],
+ [0x00AAE0, 0x00AAEF],
+ [0x00AAF2, 0x00AAF5],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB5C, 0x00AB69],
+ [0x00AB70, 0x00ABEA],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1D, 0x00FB28],
+ [0x00FB2A, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBB1],
+ [0x00FBD3, 0x00FD3D],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFB],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x00FF66, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010140, 0x010174],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x010300, 0x01031F],
+ [0x01032D, 0x01034A],
+ [0x010350, 0x01037A],
+ [0x010380, 0x01039D],
+ [0x0103A0, 0x0103C3],
+ [0x0103C8, 0x0103CF],
+ [0x0103D1, 0x0103D5],
+ [0x010400, 0x01049D],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010860, 0x010876],
+ [0x010880, 0x01089E],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x010900, 0x010915],
+ [0x010920, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BE, 0x0109BF],
+ [0x010A00, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A60, 0x010A7C],
+ [0x010A80, 0x010A9C],
+ [0x010AC0, 0x010AC7],
+ [0x010AC9, 0x010AE4],
+ [0x010B00, 0x010B35],
+ [0x010B40, 0x010B55],
+ [0x010B60, 0x010B72],
+ [0x010B80, 0x010B91],
+ [0x010C00, 0x010C48],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010D00, 0x010D27],
+ [0x010E80, 0x010EA9],
+ [0x010EAB, 0x010EAC],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F1C],
+ [0x010F30, 0x010F45],
+ [0x010FB0, 0x010FC4],
+ [0x010FE0, 0x010FF6],
+ [0x011000, 0x011045],
+ [0x011082, 0x0110B8],
+ [0x0110D0, 0x0110E8],
+ [0x011100, 0x011132],
+ [0x011144, 0x011147],
+ [0x011150, 0x011172],
+ [0x011180, 0x0111BF],
+ [0x0111C1, 0x0111C4],
+ [0x0111CE, 0x0111CF],
+ [0x011200, 0x011211],
+ [0x011213, 0x011234],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A8],
+ [0x0112B0, 0x0112E8],
+ [0x011300, 0x011303],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01133D, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134C],
+ [0x01135D, 0x011363],
+ [0x011400, 0x011441],
+ [0x011443, 0x011445],
+ [0x011447, 0x01144A],
+ [0x01145F, 0x011461],
+ [0x011480, 0x0114C1],
+ [0x0114C4, 0x0114C5],
+ [0x011580, 0x0115B5],
+ [0x0115B8, 0x0115BE],
+ [0x0115D8, 0x0115DD],
+ [0x011600, 0x01163E],
+ [0x011680, 0x0116B5],
+ [0x011700, 0x01171A],
+ [0x01171D, 0x01172A],
+ [0x011800, 0x011838],
+ [0x0118A0, 0x0118DF],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x011935],
+ [0x011937, 0x011938],
+ [0x01193B, 0x01193C],
+ [0x01193F, 0x011942],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D7],
+ [0x0119DA, 0x0119DF],
+ [0x0119E3, 0x0119E4],
+ [0x011A00, 0x011A32],
+ [0x011A35, 0x011A3E],
+ [0x011A50, 0x011A97],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C36],
+ [0x011C38, 0x011C3E],
+ [0x011C72, 0x011C8F],
+ [0x011C92, 0x011CA7],
+ [0x011CA9, 0x011CB6],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D41],
+ [0x011D46, 0x011D47],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D8E],
+ [0x011D90, 0x011D91],
+ [0x011D93, 0x011D96],
+ [0x011EE0, 0x011EF6],
+ [0x012000, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016AD0, 0x016AED],
+ [0x016B00, 0x016B2F],
+ [0x016B40, 0x016B43],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016E40, 0x016E7F],
+ [0x016F00, 0x016F4A],
+ [0x016F4F, 0x016F87],
+ [0x016F8F, 0x016F9F],
+ [0x016FE0, 0x016FE1],
+ [0x016FF0, 0x016FF1],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D6C0],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6FA],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D734],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D76E],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D7A8],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7CB],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A],
+ [0x01E100, 0x01E12C],
+ [0x01E137, 0x01E13D],
+ [0x01E2C0, 0x01E2EB],
+ [0x01E800, 0x01E8C4],
+ [0x01E900, 0x01E943],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01F130, 0x01F149],
+ [0x01F150, 0x01F169],
+ [0x01F170, 0x01F189],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Alphabetic}+$/u,
+ matchSymbols,
+ "\\p{Alphabetic}"
+);
+testPropertyEscapes(
+ /^\p{Alpha}+$/u,
+ matchSymbols,
+ "\\p{Alpha}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x0002ED,
+ 0x000375,
+ 0x00037E,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x0003F6,
+ 0x000530,
+ 0x0005BE,
+ 0x0005C0,
+ 0x0005C3,
+ 0x0005C6,
+ 0x000658,
+ 0x0006D4,
+ 0x0008B5,
+ 0x00093C,
+ 0x00094D,
+ 0x000984,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009CD,
+ 0x0009DE,
+ 0x000A04,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A5D,
+ 0x000A84,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000AC6,
+ 0x000ACA,
+ 0x000B04,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000BC9,
+ 0x000C04,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C45,
+ 0x000C49,
+ 0x000C57,
+ 0x000C84,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CC5,
+ 0x000CC9,
+ 0x000CDF,
+ 0x000D0D,
+ 0x000D11,
+ 0x000D45,
+ 0x000D49,
+ 0x000D4D,
+ 0x000D80,
+ 0x000D84,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000DD5,
+ 0x000DD7,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EBA,
+ 0x000EC5,
+ 0x000F48,
+ 0x000F98,
+ 0x001037,
+ 0x0010C6,
+ 0x0010FB,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x001680,
+ 0x00170D,
+ 0x00176D,
+ 0x001771,
+ 0x00191F,
+ 0x001B34,
+ 0x001B44,
+ 0x001BE6,
+ 0x001CED,
+ 0x001CF4,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FBD,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002114,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x00212E,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x002DDF,
+ 0x0030A0,
+ 0x0030FB,
+ 0x003130,
+ 0x00A806,
+ 0x00A8C4,
+ 0x00A8FC,
+ 0x00A9B3,
+ 0x00A9FF,
+ 0x00AABF,
+ 0x00AAC1,
+ 0x00AB27,
+ 0x00AB2F,
+ 0x00AB5B,
+ 0x00FB29,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE75,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x0103D0,
+ 0x010809,
+ 0x010836,
+ 0x0108F3,
+ 0x010A04,
+ 0x010A14,
+ 0x010A18,
+ 0x010AC8,
+ 0x010EAA,
+ 0x0111C0,
+ 0x0111DB,
+ 0x011212,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x011304,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x011442,
+ 0x011446,
+ 0x0114C6,
+ 0x01163F,
+ 0x011914,
+ 0x011917,
+ 0x011936,
+ 0x0119E0,
+ 0x0119E2,
+ 0x011C09,
+ 0x011C37,
+ 0x011C3F,
+ 0x011CA8,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D3B,
+ 0x011D3E,
+ 0x011D42,
+ 0x011D66,
+ 0x011D69,
+ 0x011D8F,
+ 0x011D92,
+ 0x011D97,
+ 0x016FE2,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01D6C1,
+ 0x01D6DB,
+ 0x01D6FB,
+ 0x01D715,
+ 0x01D735,
+ 0x01D74F,
+ 0x01D76F,
+ 0x01D789,
+ 0x01D7A9,
+ 0x01D7C3,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B4],
+ [0x0000B6, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0002C2, 0x0002C5],
+ [0x0002D2, 0x0002DF],
+ [0x0002E5, 0x0002EB],
+ [0x0002EF, 0x000344],
+ [0x000346, 0x00036F],
+ [0x000378, 0x000379],
+ [0x000380, 0x000385],
+ [0x000482, 0x000489],
+ [0x000557, 0x000558],
+ [0x00055A, 0x00055F],
+ [0x000589, 0x0005AF],
+ [0x0005C8, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F3, 0x00060F],
+ [0x00061B, 0x00061F],
+ [0x000660, 0x00066D],
+ [0x0006DD, 0x0006E0],
+ [0x0006E9, 0x0006EC],
+ [0x0006F0, 0x0006F9],
+ [0x0006FD, 0x0006FE],
+ [0x000700, 0x00070F],
+ [0x000740, 0x00074C],
+ [0x0007B2, 0x0007C9],
+ [0x0007EB, 0x0007F3],
+ [0x0007F6, 0x0007F9],
+ [0x0007FB, 0x0007FF],
+ [0x000818, 0x000819],
+ [0x00082D, 0x00083F],
+ [0x000859, 0x00085F],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x0008D3],
+ [0x0008E0, 0x0008E2],
+ [0x0008EA, 0x0008EF],
+ [0x000951, 0x000954],
+ [0x000964, 0x000970],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BC],
+ [0x0009C5, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CF, 0x0009D6],
+ [0x0009D8, 0x0009DB],
+ [0x0009E4, 0x0009EF],
+ [0x0009F2, 0x0009FB],
+ [0x0009FD, 0x000A00],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A3D],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4D, 0x000A50],
+ [0x000A52, 0x000A58],
+ [0x000A5F, 0x000A6F],
+ [0x000A76, 0x000A80],
+ [0x000ABA, 0x000ABC],
+ [0x000ACD, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE4, 0x000AF8],
+ [0x000AFD, 0x000B00],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3C],
+ [0x000B45, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4D, 0x000B55],
+ [0x000B58, 0x000B5B],
+ [0x000B64, 0x000B70],
+ [0x000B72, 0x000B81],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BBD],
+ [0x000BC3, 0x000BC5],
+ [0x000BCD, 0x000BCF],
+ [0x000BD1, 0x000BD6],
+ [0x000BD8, 0x000BFF],
+ [0x000C3A, 0x000C3C],
+ [0x000C4D, 0x000C54],
+ [0x000C5B, 0x000C5F],
+ [0x000C64, 0x000C7F],
+ [0x000CBA, 0x000CBC],
+ [0x000CCD, 0x000CD4],
+ [0x000CD7, 0x000CDD],
+ [0x000CE4, 0x000CF0],
+ [0x000CF3, 0x000CFF],
+ [0x000D3B, 0x000D3C],
+ [0x000D4F, 0x000D53],
+ [0x000D58, 0x000D5E],
+ [0x000D64, 0x000D79],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000DCE],
+ [0x000DE0, 0x000DF1],
+ [0x000DF4, 0x000E00],
+ [0x000E3B, 0x000E3F],
+ [0x000E47, 0x000E4C],
+ [0x000E4E, 0x000E80],
+ [0x000EBE, 0x000EBF],
+ [0x000EC7, 0x000ECC],
+ [0x000ECE, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F01, 0x000F3F],
+ [0x000F6D, 0x000F70],
+ [0x000F82, 0x000F87],
+ [0x000FBD, 0x000FFF],
+ [0x001039, 0x00103A],
+ [0x001040, 0x00104F],
+ [0x001090, 0x001099],
+ [0x00109E, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00137F],
+ [0x001390, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x001400],
+ [0x00166D, 0x00166E],
+ [0x00169B, 0x00169F],
+ [0x0016EB, 0x0016ED],
+ [0x0016F9, 0x0016FF],
+ [0x001714, 0x00171F],
+ [0x001734, 0x00173F],
+ [0x001754, 0x00175F],
+ [0x001774, 0x00177F],
+ [0x0017B4, 0x0017B5],
+ [0x0017C9, 0x0017D6],
+ [0x0017D8, 0x0017DB],
+ [0x0017DD, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00192C, 0x00192F],
+ [0x001939, 0x00194F],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019FF],
+ [0x001A1C, 0x001A1F],
+ [0x001A5F, 0x001A60],
+ [0x001A75, 0x001AA6],
+ [0x001AA8, 0x001ABE],
+ [0x001AC1, 0x001AFF],
+ [0x001B4C, 0x001B7F],
+ [0x001BAA, 0x001BAB],
+ [0x001BB0, 0x001BB9],
+ [0x001BF2, 0x001BFF],
+ [0x001C37, 0x001C4C],
+ [0x001C50, 0x001C59],
+ [0x001C7E, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001CE8],
+ [0x001CF7, 0x001CF9],
+ [0x001CFB, 0x001CFF],
+ [0x001DC0, 0x001DE6],
+ [0x001DF5, 0x001DFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FDC, 0x001FDF],
+ [0x001FED, 0x001FF1],
+ [0x001FFD, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002118],
+ [0x00211E, 0x002123],
+ [0x00213A, 0x00213B],
+ [0x002140, 0x002144],
+ [0x00214A, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002189, 0x0024B5],
+ [0x0024EA, 0x002BFF],
+ [0x002CE5, 0x002CEA],
+ [0x002CEF, 0x002CF1],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D70, 0x002D7F],
+ [0x002D97, 0x002D9F],
+ [0x002E00, 0x002E2E],
+ [0x002E30, 0x003004],
+ [0x003008, 0x003020],
+ [0x00302A, 0x003030],
+ [0x003036, 0x003037],
+ [0x00303D, 0x003040],
+ [0x003097, 0x00309C],
+ [0x003100, 0x003104],
+ [0x00318F, 0x00319F],
+ [0x0031C0, 0x0031EF],
+ [0x003200, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A4CF],
+ [0x00A4FE, 0x00A4FF],
+ [0x00A60D, 0x00A60F],
+ [0x00A620, 0x00A629],
+ [0x00A62C, 0x00A63F],
+ [0x00A66F, 0x00A673],
+ [0x00A67C, 0x00A67E],
+ [0x00A6F0, 0x00A716],
+ [0x00A720, 0x00A721],
+ [0x00A789, 0x00A78A],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A828, 0x00A83F],
+ [0x00A874, 0x00A87F],
+ [0x00A8C6, 0x00A8F1],
+ [0x00A8F8, 0x00A8FA],
+ [0x00A900, 0x00A909],
+ [0x00A92B, 0x00A92F],
+ [0x00A953, 0x00A95F],
+ [0x00A97D, 0x00A97F],
+ [0x00A9C0, 0x00A9CE],
+ [0x00A9D0, 0x00A9DF],
+ [0x00A9F0, 0x00A9F9],
+ [0x00AA37, 0x00AA3F],
+ [0x00AA4E, 0x00AA5F],
+ [0x00AA77, 0x00AA79],
+ [0x00AAC3, 0x00AADA],
+ [0x00AADE, 0x00AADF],
+ [0x00AAF0, 0x00AAF1],
+ [0x00AAF6, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB6A, 0x00AB6F],
+ [0x00ABEB, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBB2, 0x00FBD2],
+ [0x00FD3E, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFC, 0x00FE6F],
+ [0x00FEFD, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x00FF65],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x01013F],
+ [0x010175, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102FF],
+ [0x010320, 0x01032C],
+ [0x01034B, 0x01034F],
+ [0x01037B, 0x01037F],
+ [0x01039E, 0x01039F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x0103FF],
+ [0x01049E, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x010856, 0x01085F],
+ [0x010877, 0x01087F],
+ [0x01089F, 0x0108DF],
+ [0x0108F6, 0x0108FF],
+ [0x010916, 0x01091F],
+ [0x01093A, 0x01097F],
+ [0x0109B8, 0x0109BD],
+ [0x0109C0, 0x0109FF],
+ [0x010A07, 0x010A0B],
+ [0x010A36, 0x010A5F],
+ [0x010A7D, 0x010A7F],
+ [0x010A9D, 0x010ABF],
+ [0x010AE5, 0x010AFF],
+ [0x010B36, 0x010B3F],
+ [0x010B56, 0x010B5F],
+ [0x010B73, 0x010B7F],
+ [0x010B92, 0x010BFF],
+ [0x010C49, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CFF],
+ [0x010D28, 0x010E7F],
+ [0x010EAD, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F1D, 0x010F26],
+ [0x010F28, 0x010F2F],
+ [0x010F46, 0x010FAF],
+ [0x010FC5, 0x010FDF],
+ [0x010FF7, 0x010FFF],
+ [0x011046, 0x011081],
+ [0x0110B9, 0x0110CF],
+ [0x0110E9, 0x0110FF],
+ [0x011133, 0x011143],
+ [0x011148, 0x01114F],
+ [0x011173, 0x011175],
+ [0x011177, 0x01117F],
+ [0x0111C5, 0x0111CD],
+ [0x0111D0, 0x0111D9],
+ [0x0111DD, 0x0111FF],
+ [0x011235, 0x011236],
+ [0x011238, 0x01123D],
+ [0x01123F, 0x01127F],
+ [0x0112A9, 0x0112AF],
+ [0x0112E9, 0x0112FF],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x01133A, 0x01133C],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134D, 0x01134F],
+ [0x011351, 0x011356],
+ [0x011358, 0x01135C],
+ [0x011364, 0x0113FF],
+ [0x01144B, 0x01145E],
+ [0x011462, 0x01147F],
+ [0x0114C2, 0x0114C3],
+ [0x0114C8, 0x01157F],
+ [0x0115B6, 0x0115B7],
+ [0x0115BF, 0x0115D7],
+ [0x0115DE, 0x0115FF],
+ [0x011641, 0x011643],
+ [0x011645, 0x01167F],
+ [0x0116B6, 0x0116B7],
+ [0x0116B9, 0x0116FF],
+ [0x01171B, 0x01171C],
+ [0x01172B, 0x0117FF],
+ [0x011839, 0x01189F],
+ [0x0118E0, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011939, 0x01193A],
+ [0x01193D, 0x01193E],
+ [0x011943, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D8, 0x0119D9],
+ [0x0119E5, 0x0119FF],
+ [0x011A33, 0x011A34],
+ [0x011A3F, 0x011A4F],
+ [0x011A98, 0x011A9C],
+ [0x011A9E, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C41, 0x011C71],
+ [0x011C90, 0x011C91],
+ [0x011CB7, 0x011CFF],
+ [0x011D37, 0x011D39],
+ [0x011D44, 0x011D45],
+ [0x011D48, 0x011D5F],
+ [0x011D99, 0x011EDF],
+ [0x011EF7, 0x011FAF],
+ [0x011FB1, 0x011FFF],
+ [0x01239A, 0x0123FF],
+ [0x01246F, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x01342F, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A5F, 0x016ACF],
+ [0x016AEE, 0x016AFF],
+ [0x016B30, 0x016B3F],
+ [0x016B44, 0x016B62],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016E3F],
+ [0x016E80, 0x016EFF],
+ [0x016F4B, 0x016F4E],
+ [0x016F88, 0x016F8E],
+ [0x016FA0, 0x016FDF],
+ [0x016FE4, 0x016FEF],
+ [0x016FF2, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01BC9D],
+ [0x01BC9F, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x01E0FF],
+ [0x01E12D, 0x01E136],
+ [0x01E13E, 0x01E14D],
+ [0x01E14F, 0x01E2BF],
+ [0x01E2EC, 0x01E7FF],
+ [0x01E8C5, 0x01E8FF],
+ [0x01E944, 0x01E946],
+ [0x01E948, 0x01E94A],
+ [0x01E94C, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01F12F],
+ [0x01F14A, 0x01F14F],
+ [0x01F16A, 0x01F16F],
+ [0x01F18A, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Alphabetic}+$/u,
+ nonMatchSymbols,
+ "\\P{Alphabetic}"
+);
+testPropertyEscapes(
+ /^\P{Alpha}+$/u,
+ nonMatchSymbols,
+ "\\P{Alpha}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Any.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Any.js
new file mode 100644
index 0000000000..67df69083f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Any.js
@@ -0,0 +1,35 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Any`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Any}+$/u,
+ matchSymbols,
+ "\\p{Any}"
+);
+
+assert(
+ !/\P{Any}/u.test(""),
+ "`\\P{Any}` should match nothing (not even the empty string)"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Assigned.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Assigned.js
new file mode 100644
index 0000000000..683e674a08
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Assigned.js
@@ -0,0 +1,1396 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Assigned`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00038C,
+ 0x00085E,
+ 0x0009B2,
+ 0x0009D7,
+ 0x000A3C,
+ 0x000A51,
+ 0x000A5E,
+ 0x000AD0,
+ 0x000B9C,
+ 0x000BD0,
+ 0x000BD7,
+ 0x000CDE,
+ 0x000DBD,
+ 0x000DCA,
+ 0x000DD6,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EC6,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001258,
+ 0x0012C0,
+ 0x001940,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x002D27,
+ 0x002D2D,
+ 0x00FB3E,
+ 0x00FEFF,
+ 0x0101A0,
+ 0x01056F,
+ 0x010808,
+ 0x01083C,
+ 0x01093F,
+ 0x0110CD,
+ 0x011288,
+ 0x011350,
+ 0x011357,
+ 0x011909,
+ 0x011D3A,
+ 0x011FB0,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01E2FF,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E,
+ 0x0E0001
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000377],
+ [0x00037A, 0x00037F],
+ [0x000384, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000559, 0x00058A],
+ [0x00058D, 0x00058F],
+ [0x000591, 0x0005C7],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F4],
+ [0x000600, 0x00061C],
+ [0x00061E, 0x00070D],
+ [0x00070F, 0x00074A],
+ [0x00074D, 0x0007B1],
+ [0x0007C0, 0x0007FA],
+ [0x0007FD, 0x00082D],
+ [0x000830, 0x00083E],
+ [0x000840, 0x00085B],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x0008D3, 0x000983],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009BC, 0x0009C4],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CE],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E3],
+ [0x0009E6, 0x0009FE],
+ [0x000A01, 0x000A03],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A3E, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A59, 0x000A5C],
+ [0x000A66, 0x000A76],
+ [0x000A81, 0x000A83],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000ABC, 0x000AC5],
+ [0x000AC7, 0x000AC9],
+ [0x000ACB, 0x000ACD],
+ [0x000AE0, 0x000AE3],
+ [0x000AE6, 0x000AF1],
+ [0x000AF9, 0x000AFF],
+ [0x000B01, 0x000B03],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B3C, 0x000B44],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4D],
+ [0x000B55, 0x000B57],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B63],
+ [0x000B66, 0x000B77],
+ [0x000B82, 0x000B83],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000BBE, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCD],
+ [0x000BE6, 0x000BFA],
+ [0x000C00, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C3D, 0x000C44],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C63],
+ [0x000C66, 0x000C6F],
+ [0x000C77, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CBC, 0x000CC4],
+ [0x000CC6, 0x000CC8],
+ [0x000CCA, 0x000CCD],
+ [0x000CD5, 0x000CD6],
+ [0x000CE0, 0x000CE3],
+ [0x000CE6, 0x000CEF],
+ [0x000CF1, 0x000CF2],
+ [0x000D00, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D44],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4F],
+ [0x000D54, 0x000D63],
+ [0x000D66, 0x000D7F],
+ [0x000D81, 0x000D83],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000DCF, 0x000DD4],
+ [0x000DD8, 0x000DDF],
+ [0x000DE6, 0x000DEF],
+ [0x000DF2, 0x000DF4],
+ [0x000E01, 0x000E3A],
+ [0x000E3F, 0x000E5B],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EBD],
+ [0x000EC0, 0x000EC4],
+ [0x000EC8, 0x000ECD],
+ [0x000ED0, 0x000ED9],
+ [0x000EDC, 0x000EDF],
+ [0x000F00, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F71, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x000FBE, 0x000FCC],
+ [0x000FCE, 0x000FDA],
+ [0x001000, 0x0010C5],
+ [0x0010D0, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x00135D, 0x00137C],
+ [0x001380, 0x001399],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001400, 0x00169C],
+ [0x0016A0, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001714],
+ [0x001720, 0x001736],
+ [0x001740, 0x001753],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001772, 0x001773],
+ [0x001780, 0x0017DD],
+ [0x0017E0, 0x0017E9],
+ [0x0017F0, 0x0017F9],
+ [0x001800, 0x00180E],
+ [0x001810, 0x001819],
+ [0x001820, 0x001878],
+ [0x001880, 0x0018AA],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001920, 0x00192B],
+ [0x001930, 0x00193B],
+ [0x001944, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x0019D0, 0x0019DA],
+ [0x0019DE, 0x001A1B],
+ [0x001A1E, 0x001A5E],
+ [0x001A60, 0x001A7C],
+ [0x001A7F, 0x001A89],
+ [0x001A90, 0x001A99],
+ [0x001AA0, 0x001AAD],
+ [0x001AB0, 0x001AC0],
+ [0x001B00, 0x001B4B],
+ [0x001B50, 0x001B7C],
+ [0x001B80, 0x001BF3],
+ [0x001BFC, 0x001C37],
+ [0x001C3B, 0x001C49],
+ [0x001C4D, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CC7],
+ [0x001CD0, 0x001CFA],
+ [0x001D00, 0x001DF9],
+ [0x001DFB, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FC4],
+ [0x001FC6, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FDD, 0x001FEF],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFE],
+ [0x002000, 0x002064],
+ [0x002066, 0x002071],
+ [0x002074, 0x00208E],
+ [0x002090, 0x00209C],
+ [0x0020A0, 0x0020BF],
+ [0x0020D0, 0x0020F0],
+ [0x002100, 0x00218B],
+ [0x002190, 0x002426],
+ [0x002440, 0x00244A],
+ [0x002460, 0x002B73],
+ [0x002B76, 0x002B95],
+ [0x002B97, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CF3],
+ [0x002CF9, 0x002D25],
+ [0x002D30, 0x002D67],
+ [0x002D6F, 0x002D70],
+ [0x002D7F, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x002DE0, 0x002E52],
+ [0x002E80, 0x002E99],
+ [0x002E9B, 0x002EF3],
+ [0x002F00, 0x002FD5],
+ [0x002FF0, 0x002FFB],
+ [0x003000, 0x00303F],
+ [0x003041, 0x003096],
+ [0x003099, 0x0030FF],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x003190, 0x0031E3],
+ [0x0031F0, 0x00321E],
+ [0x003220, 0x009FFC],
+ [0x00A000, 0x00A48C],
+ [0x00A490, 0x00A4C6],
+ [0x00A4D0, 0x00A62B],
+ [0x00A640, 0x00A6F7],
+ [0x00A700, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A82C],
+ [0x00A830, 0x00A839],
+ [0x00A840, 0x00A877],
+ [0x00A880, 0x00A8C5],
+ [0x00A8CE, 0x00A8D9],
+ [0x00A8E0, 0x00A953],
+ [0x00A95F, 0x00A97C],
+ [0x00A980, 0x00A9CD],
+ [0x00A9CF, 0x00A9D9],
+ [0x00A9DE, 0x00A9FE],
+ [0x00AA00, 0x00AA36],
+ [0x00AA40, 0x00AA4D],
+ [0x00AA50, 0x00AA59],
+ [0x00AA5C, 0x00AAC2],
+ [0x00AADB, 0x00AAF6],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00AB30, 0x00AB6B],
+ [0x00AB70, 0x00ABED],
+ [0x00ABF0, 0x00ABF9],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00D800, 0x00DBFF],
+ [0x00E000, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1D, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBC1],
+ [0x00FBD3, 0x00FD3F],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFD],
+ [0x00FE00, 0x00FE19],
+ [0x00FE20, 0x00FE52],
+ [0x00FE54, 0x00FE66],
+ [0x00FE68, 0x00FE6B],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x00FF01, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x00FFE0, 0x00FFE6],
+ [0x00FFE8, 0x00FFEE],
+ [0x00FFF9, 0x00FFFD],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010100, 0x010102],
+ [0x010107, 0x010133],
+ [0x010137, 0x01018E],
+ [0x010190, 0x01019C],
+ [0x0101D0, 0x0101FD],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x0102E0, 0x0102FB],
+ [0x010300, 0x010323],
+ [0x01032D, 0x01034A],
+ [0x010350, 0x01037A],
+ [0x010380, 0x01039D],
+ [0x01039F, 0x0103C3],
+ [0x0103C8, 0x0103D5],
+ [0x010400, 0x01049D],
+ [0x0104A0, 0x0104A9],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010857, 0x01089E],
+ [0x0108A7, 0x0108AF],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x0108FB, 0x01091B],
+ [0x01091F, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BC, 0x0109CF],
+ [0x0109D2, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A38, 0x010A3A],
+ [0x010A3F, 0x010A48],
+ [0x010A50, 0x010A58],
+ [0x010A60, 0x010A9F],
+ [0x010AC0, 0x010AE6],
+ [0x010AEB, 0x010AF6],
+ [0x010B00, 0x010B35],
+ [0x010B39, 0x010B55],
+ [0x010B58, 0x010B72],
+ [0x010B78, 0x010B91],
+ [0x010B99, 0x010B9C],
+ [0x010BA9, 0x010BAF],
+ [0x010C00, 0x010C48],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010CFA, 0x010D27],
+ [0x010D30, 0x010D39],
+ [0x010E60, 0x010E7E],
+ [0x010E80, 0x010EA9],
+ [0x010EAB, 0x010EAD],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F27],
+ [0x010F30, 0x010F59],
+ [0x010FB0, 0x010FCB],
+ [0x010FE0, 0x010FF6],
+ [0x011000, 0x01104D],
+ [0x011052, 0x01106F],
+ [0x01107F, 0x0110C1],
+ [0x0110D0, 0x0110E8],
+ [0x0110F0, 0x0110F9],
+ [0x011100, 0x011134],
+ [0x011136, 0x011147],
+ [0x011150, 0x011176],
+ [0x011180, 0x0111DF],
+ [0x0111E1, 0x0111F4],
+ [0x011200, 0x011211],
+ [0x011213, 0x01123E],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A9],
+ [0x0112B0, 0x0112EA],
+ [0x0112F0, 0x0112F9],
+ [0x011300, 0x011303],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01133B, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134D],
+ [0x01135D, 0x011363],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x011400, 0x01145B],
+ [0x01145D, 0x011461],
+ [0x011480, 0x0114C7],
+ [0x0114D0, 0x0114D9],
+ [0x011580, 0x0115B5],
+ [0x0115B8, 0x0115DD],
+ [0x011600, 0x011644],
+ [0x011650, 0x011659],
+ [0x011660, 0x01166C],
+ [0x011680, 0x0116B8],
+ [0x0116C0, 0x0116C9],
+ [0x011700, 0x01171A],
+ [0x01171D, 0x01172B],
+ [0x011730, 0x01173F],
+ [0x011800, 0x01183B],
+ [0x0118A0, 0x0118F2],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x011935],
+ [0x011937, 0x011938],
+ [0x01193B, 0x011946],
+ [0x011950, 0x011959],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D7],
+ [0x0119DA, 0x0119E4],
+ [0x011A00, 0x011A47],
+ [0x011A50, 0x011AA2],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C36],
+ [0x011C38, 0x011C45],
+ [0x011C50, 0x011C6C],
+ [0x011C70, 0x011C8F],
+ [0x011C92, 0x011CA7],
+ [0x011CA9, 0x011CB6],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D47],
+ [0x011D50, 0x011D59],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D8E],
+ [0x011D90, 0x011D91],
+ [0x011D93, 0x011D98],
+ [0x011DA0, 0x011DA9],
+ [0x011EE0, 0x011EF8],
+ [0x011FC0, 0x011FF1],
+ [0x011FFF, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012470, 0x012474],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x013430, 0x013438],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016A60, 0x016A69],
+ [0x016A6E, 0x016A6F],
+ [0x016AD0, 0x016AED],
+ [0x016AF0, 0x016AF5],
+ [0x016B00, 0x016B45],
+ [0x016B50, 0x016B59],
+ [0x016B5B, 0x016B61],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016E40, 0x016E9A],
+ [0x016F00, 0x016F4A],
+ [0x016F4F, 0x016F87],
+ [0x016F8F, 0x016F9F],
+ [0x016FE0, 0x016FE4],
+ [0x016FF0, 0x016FF1],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01BC9C, 0x01BCA3],
+ [0x01D000, 0x01D0F5],
+ [0x01D100, 0x01D126],
+ [0x01D129, 0x01D1E8],
+ [0x01D200, 0x01D245],
+ [0x01D2E0, 0x01D2F3],
+ [0x01D300, 0x01D356],
+ [0x01D360, 0x01D378],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D7CB],
+ [0x01D7CE, 0x01DA8B],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A],
+ [0x01E100, 0x01E12C],
+ [0x01E130, 0x01E13D],
+ [0x01E140, 0x01E149],
+ [0x01E14E, 0x01E14F],
+ [0x01E2C0, 0x01E2F9],
+ [0x01E800, 0x01E8C4],
+ [0x01E8C7, 0x01E8D6],
+ [0x01E900, 0x01E94B],
+ [0x01E950, 0x01E959],
+ [0x01E95E, 0x01E95F],
+ [0x01EC71, 0x01ECB4],
+ [0x01ED01, 0x01ED3D],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01EEF0, 0x01EEF1],
+ [0x01F000, 0x01F02B],
+ [0x01F030, 0x01F093],
+ [0x01F0A0, 0x01F0AE],
+ [0x01F0B1, 0x01F0BF],
+ [0x01F0C1, 0x01F0CF],
+ [0x01F0D1, 0x01F0F5],
+ [0x01F100, 0x01F1AD],
+ [0x01F1E6, 0x01F202],
+ [0x01F210, 0x01F23B],
+ [0x01F240, 0x01F248],
+ [0x01F250, 0x01F251],
+ [0x01F260, 0x01F265],
+ [0x01F300, 0x01F6D7],
+ [0x01F6E0, 0x01F6EC],
+ [0x01F6F0, 0x01F6FC],
+ [0x01F700, 0x01F773],
+ [0x01F780, 0x01F7D8],
+ [0x01F7E0, 0x01F7EB],
+ [0x01F800, 0x01F80B],
+ [0x01F810, 0x01F847],
+ [0x01F850, 0x01F859],
+ [0x01F860, 0x01F887],
+ [0x01F890, 0x01F8AD],
+ [0x01F8B0, 0x01F8B1],
+ [0x01F900, 0x01F978],
+ [0x01F97A, 0x01F9CB],
+ [0x01F9CD, 0x01FA53],
+ [0x01FA60, 0x01FA6D],
+ [0x01FA70, 0x01FA74],
+ [0x01FA78, 0x01FA7A],
+ [0x01FA80, 0x01FA86],
+ [0x01FA90, 0x01FAA8],
+ [0x01FAB0, 0x01FAB6],
+ [0x01FAC0, 0x01FAC2],
+ [0x01FAD0, 0x01FAD6],
+ [0x01FB00, 0x01FB92],
+ [0x01FB94, 0x01FBCA],
+ [0x01FBF0, 0x01FBF9],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A],
+ [0x0E0020, 0x0E007F],
+ [0x0E0100, 0x0E01EF],
+ [0x0F0000, 0x0FFFFD],
+ [0x100000, 0x10FFFD]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Assigned}+$/u,
+ matchSymbols,
+ "\\p{Assigned}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x000530,
+ 0x000590,
+ 0x00061D,
+ 0x00070E,
+ 0x00083F,
+ 0x00085F,
+ 0x0008B5,
+ 0x000984,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE,
+ 0x000A04,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A3D,
+ 0x000A5D,
+ 0x000A84,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000AC6,
+ 0x000ACA,
+ 0x000B00,
+ 0x000B04,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000BC9,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C45,
+ 0x000C49,
+ 0x000C57,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CC5,
+ 0x000CC9,
+ 0x000CDF,
+ 0x000CF0,
+ 0x000D0D,
+ 0x000D11,
+ 0x000D45,
+ 0x000D49,
+ 0x000D80,
+ 0x000D84,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000DD5,
+ 0x000DD7,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EC5,
+ 0x000EC7,
+ 0x000F48,
+ 0x000F98,
+ 0x000FBD,
+ 0x000FCD,
+ 0x0010C6,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x00170D,
+ 0x00176D,
+ 0x001771,
+ 0x00180F,
+ 0x00191F,
+ 0x001A5F,
+ 0x001DFA,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FC5,
+ 0x001FDC,
+ 0x001FF5,
+ 0x001FFF,
+ 0x002065,
+ 0x00208F,
+ 0x002B96,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x002DDF,
+ 0x002E9A,
+ 0x003040,
+ 0x003130,
+ 0x00318F,
+ 0x00321F,
+ 0x00A9CE,
+ 0x00A9FF,
+ 0x00AB27,
+ 0x00AB2F,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE53,
+ 0x00FE67,
+ 0x00FE75,
+ 0x00FF00,
+ 0x00FFE7,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x01018F,
+ 0x01039E,
+ 0x010809,
+ 0x010836,
+ 0x010856,
+ 0x0108F3,
+ 0x010A04,
+ 0x010A14,
+ 0x010A18,
+ 0x010E7F,
+ 0x010EAA,
+ 0x011135,
+ 0x0111E0,
+ 0x011212,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x011304,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x01133A,
+ 0x01145C,
+ 0x011914,
+ 0x011917,
+ 0x011936,
+ 0x011C09,
+ 0x011C37,
+ 0x011CA8,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D3B,
+ 0x011D3E,
+ 0x011D66,
+ 0x011D69,
+ 0x011D8F,
+ 0x011D92,
+ 0x01246F,
+ 0x01342F,
+ 0x016A5F,
+ 0x016B5A,
+ 0x016B62,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01DAA0,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA,
+ 0x01F0C0,
+ 0x01F0D0,
+ 0x01F979,
+ 0x01F9CC,
+ 0x01FB93
+ ],
+ ranges: [
+ [0x000378, 0x000379],
+ [0x000380, 0x000383],
+ [0x000557, 0x000558],
+ [0x00058B, 0x00058C],
+ [0x0005C8, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F5, 0x0005FF],
+ [0x00074B, 0x00074C],
+ [0x0007B2, 0x0007BF],
+ [0x0007FB, 0x0007FC],
+ [0x00082E, 0x00082F],
+ [0x00085C, 0x00085D],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x0008D2],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BB],
+ [0x0009C5, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CF, 0x0009D6],
+ [0x0009D8, 0x0009DB],
+ [0x0009E4, 0x0009E5],
+ [0x0009FF, 0x000A00],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A3B],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A58],
+ [0x000A5F, 0x000A65],
+ [0x000A77, 0x000A80],
+ [0x000ABA, 0x000ABB],
+ [0x000ACE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE4, 0x000AE5],
+ [0x000AF2, 0x000AF8],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3B],
+ [0x000B45, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4E, 0x000B54],
+ [0x000B58, 0x000B5B],
+ [0x000B64, 0x000B65],
+ [0x000B78, 0x000B81],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BBD],
+ [0x000BC3, 0x000BC5],
+ [0x000BCE, 0x000BCF],
+ [0x000BD1, 0x000BD6],
+ [0x000BD8, 0x000BE5],
+ [0x000BFB, 0x000BFF],
+ [0x000C3A, 0x000C3C],
+ [0x000C4E, 0x000C54],
+ [0x000C5B, 0x000C5F],
+ [0x000C64, 0x000C65],
+ [0x000C70, 0x000C76],
+ [0x000CBA, 0x000CBB],
+ [0x000CCE, 0x000CD4],
+ [0x000CD7, 0x000CDD],
+ [0x000CE4, 0x000CE5],
+ [0x000CF3, 0x000CFF],
+ [0x000D50, 0x000D53],
+ [0x000D64, 0x000D65],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000DC9],
+ [0x000DCB, 0x000DCE],
+ [0x000DE0, 0x000DE5],
+ [0x000DF0, 0x000DF1],
+ [0x000DF5, 0x000E00],
+ [0x000E3B, 0x000E3E],
+ [0x000E5C, 0x000E80],
+ [0x000EBE, 0x000EBF],
+ [0x000ECE, 0x000ECF],
+ [0x000EDA, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F6D, 0x000F70],
+ [0x000FDB, 0x000FFF],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00135C],
+ [0x00137D, 0x00137F],
+ [0x00139A, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x0013FF],
+ [0x00169D, 0x00169F],
+ [0x0016F9, 0x0016FF],
+ [0x001715, 0x00171F],
+ [0x001737, 0x00173F],
+ [0x001754, 0x00175F],
+ [0x001774, 0x00177F],
+ [0x0017DE, 0x0017DF],
+ [0x0017EA, 0x0017EF],
+ [0x0017FA, 0x0017FF],
+ [0x00181A, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00192C, 0x00192F],
+ [0x00193C, 0x00193F],
+ [0x001941, 0x001943],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019CF],
+ [0x0019DB, 0x0019DD],
+ [0x001A1C, 0x001A1D],
+ [0x001A7D, 0x001A7E],
+ [0x001A8A, 0x001A8F],
+ [0x001A9A, 0x001A9F],
+ [0x001AAE, 0x001AAF],
+ [0x001AC1, 0x001AFF],
+ [0x001B4C, 0x001B4F],
+ [0x001B7D, 0x001B7F],
+ [0x001BF4, 0x001BFB],
+ [0x001C38, 0x001C3A],
+ [0x001C4A, 0x001C4C],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC8, 0x001CCF],
+ [0x001CFB, 0x001CFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FD4, 0x001FD5],
+ [0x001FF0, 0x001FF1],
+ [0x002072, 0x002073],
+ [0x00209D, 0x00209F],
+ [0x0020C0, 0x0020CF],
+ [0x0020F1, 0x0020FF],
+ [0x00218C, 0x00218F],
+ [0x002427, 0x00243F],
+ [0x00244B, 0x00245F],
+ [0x002B74, 0x002B75],
+ [0x002CF4, 0x002CF8],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D71, 0x002D7E],
+ [0x002D97, 0x002D9F],
+ [0x002E53, 0x002E7F],
+ [0x002EF4, 0x002EFF],
+ [0x002FD6, 0x002FEF],
+ [0x002FFC, 0x002FFF],
+ [0x003097, 0x003098],
+ [0x003100, 0x003104],
+ [0x0031E4, 0x0031EF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A48F],
+ [0x00A4C7, 0x00A4CF],
+ [0x00A62C, 0x00A63F],
+ [0x00A6F8, 0x00A6FF],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A82D, 0x00A82F],
+ [0x00A83A, 0x00A83F],
+ [0x00A878, 0x00A87F],
+ [0x00A8C6, 0x00A8CD],
+ [0x00A8DA, 0x00A8DF],
+ [0x00A954, 0x00A95E],
+ [0x00A97D, 0x00A97F],
+ [0x00A9DA, 0x00A9DD],
+ [0x00AA37, 0x00AA3F],
+ [0x00AA4E, 0x00AA4F],
+ [0x00AA5A, 0x00AA5B],
+ [0x00AAC3, 0x00AADA],
+ [0x00AAF7, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB6C, 0x00AB6F],
+ [0x00ABEE, 0x00ABEF],
+ [0x00ABFA, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00D7FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBC2, 0x00FBD2],
+ [0x00FD40, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFE, 0x00FDFF],
+ [0x00FE1A, 0x00FE1F],
+ [0x00FE6C, 0x00FE6F],
+ [0x00FEFD, 0x00FEFE],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFDF],
+ [0x00FFEF, 0x00FFF8],
+ [0x00FFFE, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x0100FF],
+ [0x010103, 0x010106],
+ [0x010134, 0x010136],
+ [0x01019D, 0x01019F],
+ [0x0101A1, 0x0101CF],
+ [0x0101FE, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102DF],
+ [0x0102FC, 0x0102FF],
+ [0x010324, 0x01032C],
+ [0x01034B, 0x01034F],
+ [0x01037B, 0x01037F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x0103FF],
+ [0x01049E, 0x01049F],
+ [0x0104AA, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x01056E],
+ [0x010570, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x01089F, 0x0108A6],
+ [0x0108B0, 0x0108DF],
+ [0x0108F6, 0x0108FA],
+ [0x01091C, 0x01091E],
+ [0x01093A, 0x01093E],
+ [0x010940, 0x01097F],
+ [0x0109B8, 0x0109BB],
+ [0x0109D0, 0x0109D1],
+ [0x010A07, 0x010A0B],
+ [0x010A36, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A49, 0x010A4F],
+ [0x010A59, 0x010A5F],
+ [0x010AA0, 0x010ABF],
+ [0x010AE7, 0x010AEA],
+ [0x010AF7, 0x010AFF],
+ [0x010B36, 0x010B38],
+ [0x010B56, 0x010B57],
+ [0x010B73, 0x010B77],
+ [0x010B92, 0x010B98],
+ [0x010B9D, 0x010BA8],
+ [0x010BB0, 0x010BFF],
+ [0x010C49, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CF9],
+ [0x010D28, 0x010D2F],
+ [0x010D3A, 0x010E5F],
+ [0x010EAE, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F28, 0x010F2F],
+ [0x010F5A, 0x010FAF],
+ [0x010FCC, 0x010FDF],
+ [0x010FF7, 0x010FFF],
+ [0x01104E, 0x011051],
+ [0x011070, 0x01107E],
+ [0x0110C2, 0x0110CC],
+ [0x0110CE, 0x0110CF],
+ [0x0110E9, 0x0110EF],
+ [0x0110FA, 0x0110FF],
+ [0x011148, 0x01114F],
+ [0x011177, 0x01117F],
+ [0x0111F5, 0x0111FF],
+ [0x01123F, 0x01127F],
+ [0x0112AA, 0x0112AF],
+ [0x0112EB, 0x0112EF],
+ [0x0112FA, 0x0112FF],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134E, 0x01134F],
+ [0x011351, 0x011356],
+ [0x011358, 0x01135C],
+ [0x011364, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x0113FF],
+ [0x011462, 0x01147F],
+ [0x0114C8, 0x0114CF],
+ [0x0114DA, 0x01157F],
+ [0x0115B6, 0x0115B7],
+ [0x0115DE, 0x0115FF],
+ [0x011645, 0x01164F],
+ [0x01165A, 0x01165F],
+ [0x01166D, 0x01167F],
+ [0x0116B9, 0x0116BF],
+ [0x0116CA, 0x0116FF],
+ [0x01171B, 0x01171C],
+ [0x01172C, 0x01172F],
+ [0x011740, 0x0117FF],
+ [0x01183C, 0x01189F],
+ [0x0118F3, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011939, 0x01193A],
+ [0x011947, 0x01194F],
+ [0x01195A, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D8, 0x0119D9],
+ [0x0119E5, 0x0119FF],
+ [0x011A48, 0x011A4F],
+ [0x011AA3, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C46, 0x011C4F],
+ [0x011C6D, 0x011C6F],
+ [0x011C90, 0x011C91],
+ [0x011CB7, 0x011CFF],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D4F],
+ [0x011D5A, 0x011D5F],
+ [0x011D99, 0x011D9F],
+ [0x011DAA, 0x011EDF],
+ [0x011EF9, 0x011FAF],
+ [0x011FB1, 0x011FBF],
+ [0x011FF2, 0x011FFE],
+ [0x01239A, 0x0123FF],
+ [0x012475, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x013439, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A6A, 0x016A6D],
+ [0x016A70, 0x016ACF],
+ [0x016AEE, 0x016AEF],
+ [0x016AF6, 0x016AFF],
+ [0x016B46, 0x016B4F],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016E3F],
+ [0x016E9B, 0x016EFF],
+ [0x016F4B, 0x016F4E],
+ [0x016F88, 0x016F8E],
+ [0x016FA0, 0x016FDF],
+ [0x016FE5, 0x016FEF],
+ [0x016FF2, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01BC9B],
+ [0x01BCA4, 0x01CFFF],
+ [0x01D0F6, 0x01D0FF],
+ [0x01D127, 0x01D128],
+ [0x01D1E9, 0x01D1FF],
+ [0x01D246, 0x01D2DF],
+ [0x01D2F4, 0x01D2FF],
+ [0x01D357, 0x01D35F],
+ [0x01D379, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01D7CD],
+ [0x01DA8C, 0x01DA9A],
+ [0x01DAB0, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x01E0FF],
+ [0x01E12D, 0x01E12F],
+ [0x01E13E, 0x01E13F],
+ [0x01E14A, 0x01E14D],
+ [0x01E150, 0x01E2BF],
+ [0x01E2FA, 0x01E2FE],
+ [0x01E300, 0x01E7FF],
+ [0x01E8C5, 0x01E8C6],
+ [0x01E8D7, 0x01E8FF],
+ [0x01E94C, 0x01E94F],
+ [0x01E95A, 0x01E95D],
+ [0x01E960, 0x01EC70],
+ [0x01ECB5, 0x01ED00],
+ [0x01ED3E, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01EEEF],
+ [0x01EEF2, 0x01EFFF],
+ [0x01F02C, 0x01F02F],
+ [0x01F094, 0x01F09F],
+ [0x01F0AF, 0x01F0B0],
+ [0x01F0F6, 0x01F0FF],
+ [0x01F1AE, 0x01F1E5],
+ [0x01F203, 0x01F20F],
+ [0x01F23C, 0x01F23F],
+ [0x01F249, 0x01F24F],
+ [0x01F252, 0x01F25F],
+ [0x01F266, 0x01F2FF],
+ [0x01F6D8, 0x01F6DF],
+ [0x01F6ED, 0x01F6EF],
+ [0x01F6FD, 0x01F6FF],
+ [0x01F774, 0x01F77F],
+ [0x01F7D9, 0x01F7DF],
+ [0x01F7EC, 0x01F7FF],
+ [0x01F80C, 0x01F80F],
+ [0x01F848, 0x01F84F],
+ [0x01F85A, 0x01F85F],
+ [0x01F888, 0x01F88F],
+ [0x01F8AE, 0x01F8AF],
+ [0x01F8B2, 0x01F8FF],
+ [0x01FA54, 0x01FA5F],
+ [0x01FA6E, 0x01FA6F],
+ [0x01FA75, 0x01FA77],
+ [0x01FA7B, 0x01FA7F],
+ [0x01FA87, 0x01FA8F],
+ [0x01FAA9, 0x01FAAF],
+ [0x01FAB7, 0x01FABF],
+ [0x01FAC3, 0x01FACF],
+ [0x01FAD7, 0x01FAFF],
+ [0x01FBCB, 0x01FBEF],
+ [0x01FBFA, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x0E0000],
+ [0x0E0002, 0x0E001F],
+ [0x0E0080, 0x0E00FF],
+ [0x0E01F0, 0x0EFFFF],
+ [0x0FFFFE, 0x0FFFFF],
+ [0x10FFFE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Assigned}+$/u,
+ nonMatchSymbols,
+ "\\P{Assigned}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Bidi_Control.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Bidi_Control.js
new file mode 100644
index 0000000000..0d6ed8b693
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Bidi_Control.js
@@ -0,0 +1,60 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Bidi_Control`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00061C
+ ],
+ ranges: [
+ [0x00200E, 0x00200F],
+ [0x00202A, 0x00202E],
+ [0x002066, 0x002069]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Bidi_Control}+$/u,
+ matchSymbols,
+ "\\p{Bidi_Control}"
+);
+testPropertyEscapes(
+ /^\p{Bidi_C}+$/u,
+ matchSymbols,
+ "\\p{Bidi_C}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00061B],
+ [0x00061D, 0x00200D],
+ [0x002010, 0x002029],
+ [0x00202F, 0x002065],
+ [0x00206A, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Bidi_Control}+$/u,
+ nonMatchSymbols,
+ "\\P{Bidi_Control}"
+);
+testPropertyEscapes(
+ /^\P{Bidi_C}+$/u,
+ nonMatchSymbols,
+ "\\P{Bidi_C}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Bidi_Mirrored.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Bidi_Mirrored.js
new file mode 100644
index 0000000000..66e5bd635b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Bidi_Mirrored.js
@@ -0,0 +1,279 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Bidi_Mirrored`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00003C,
+ 0x00003E,
+ 0x00005B,
+ 0x00005D,
+ 0x00007B,
+ 0x00007D,
+ 0x0000AB,
+ 0x0000BB,
+ 0x002140,
+ 0x002211,
+ 0x002224,
+ 0x002226,
+ 0x002239,
+ 0x002262,
+ 0x002298,
+ 0x0027C0,
+ 0x0029B8,
+ 0x0029C9,
+ 0x0029E1,
+ 0x002A24,
+ 0x002A26,
+ 0x002A29,
+ 0x002ADC,
+ 0x002ADE,
+ 0x002AF3,
+ 0x002AFD,
+ 0x002BFE,
+ 0x00FF1C,
+ 0x00FF1E,
+ 0x00FF3B,
+ 0x00FF3D,
+ 0x00FF5B,
+ 0x00FF5D,
+ 0x01D6DB,
+ 0x01D715,
+ 0x01D74F,
+ 0x01D789,
+ 0x01D7C3
+ ],
+ ranges: [
+ [0x000028, 0x000029],
+ [0x000F3A, 0x000F3D],
+ [0x00169B, 0x00169C],
+ [0x002039, 0x00203A],
+ [0x002045, 0x002046],
+ [0x00207D, 0x00207E],
+ [0x00208D, 0x00208E],
+ [0x002201, 0x002204],
+ [0x002208, 0x00220D],
+ [0x002215, 0x002216],
+ [0x00221A, 0x00221D],
+ [0x00221F, 0x002222],
+ [0x00222B, 0x002233],
+ [0x00223B, 0x00224C],
+ [0x002252, 0x002255],
+ [0x00225F, 0x002260],
+ [0x002264, 0x00226B],
+ [0x00226E, 0x00228C],
+ [0x00228F, 0x002292],
+ [0x0022A2, 0x0022A3],
+ [0x0022A6, 0x0022B8],
+ [0x0022BE, 0x0022BF],
+ [0x0022C9, 0x0022CD],
+ [0x0022D0, 0x0022D1],
+ [0x0022D6, 0x0022ED],
+ [0x0022F0, 0x0022FF],
+ [0x002308, 0x00230B],
+ [0x002320, 0x002321],
+ [0x002329, 0x00232A],
+ [0x002768, 0x002775],
+ [0x0027C3, 0x0027C6],
+ [0x0027C8, 0x0027C9],
+ [0x0027CB, 0x0027CD],
+ [0x0027D3, 0x0027D6],
+ [0x0027DC, 0x0027DE],
+ [0x0027E2, 0x0027EF],
+ [0x002983, 0x002998],
+ [0x00299B, 0x0029A0],
+ [0x0029A2, 0x0029AF],
+ [0x0029C0, 0x0029C5],
+ [0x0029CE, 0x0029D2],
+ [0x0029D4, 0x0029D5],
+ [0x0029D8, 0x0029DC],
+ [0x0029E3, 0x0029E5],
+ [0x0029E8, 0x0029E9],
+ [0x0029F4, 0x0029F9],
+ [0x0029FC, 0x0029FD],
+ [0x002A0A, 0x002A1C],
+ [0x002A1E, 0x002A21],
+ [0x002A2B, 0x002A2E],
+ [0x002A34, 0x002A35],
+ [0x002A3C, 0x002A3E],
+ [0x002A57, 0x002A58],
+ [0x002A64, 0x002A65],
+ [0x002A6A, 0x002A6D],
+ [0x002A6F, 0x002A70],
+ [0x002A73, 0x002A74],
+ [0x002A79, 0x002AA3],
+ [0x002AA6, 0x002AAD],
+ [0x002AAF, 0x002AD6],
+ [0x002AE2, 0x002AE6],
+ [0x002AEC, 0x002AEE],
+ [0x002AF7, 0x002AFB],
+ [0x002E02, 0x002E05],
+ [0x002E09, 0x002E0A],
+ [0x002E0C, 0x002E0D],
+ [0x002E1C, 0x002E1D],
+ [0x002E20, 0x002E29],
+ [0x003008, 0x003011],
+ [0x003014, 0x00301B],
+ [0x00FE59, 0x00FE5E],
+ [0x00FE64, 0x00FE65],
+ [0x00FF08, 0x00FF09],
+ [0x00FF5F, 0x00FF60],
+ [0x00FF62, 0x00FF63]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Bidi_Mirrored}+$/u,
+ matchSymbols,
+ "\\p{Bidi_Mirrored}"
+);
+testPropertyEscapes(
+ /^\p{Bidi_M}+$/u,
+ matchSymbols,
+ "\\p{Bidi_M}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00003D,
+ 0x00005C,
+ 0x00007C,
+ 0x00221E,
+ 0x002223,
+ 0x002225,
+ 0x00223A,
+ 0x002261,
+ 0x002263,
+ 0x0027C7,
+ 0x0027CA,
+ 0x0029A1,
+ 0x0029D3,
+ 0x0029E2,
+ 0x002A1D,
+ 0x002A25,
+ 0x002A2A,
+ 0x002A6E,
+ 0x002AAE,
+ 0x002ADD,
+ 0x002AFC,
+ 0x002E0B,
+ 0x00FF1D,
+ 0x00FF3C,
+ 0x00FF5C,
+ 0x00FF5E,
+ 0x00FF61
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000027],
+ [0x00002A, 0x00003B],
+ [0x00003F, 0x00005A],
+ [0x00005E, 0x00007A],
+ [0x00007E, 0x0000AA],
+ [0x0000AC, 0x0000BA],
+ [0x0000BC, 0x000F39],
+ [0x000F3E, 0x00169A],
+ [0x00169D, 0x002038],
+ [0x00203B, 0x002044],
+ [0x002047, 0x00207C],
+ [0x00207F, 0x00208C],
+ [0x00208F, 0x00213F],
+ [0x002141, 0x002200],
+ [0x002205, 0x002207],
+ [0x00220E, 0x002210],
+ [0x002212, 0x002214],
+ [0x002217, 0x002219],
+ [0x002227, 0x00222A],
+ [0x002234, 0x002238],
+ [0x00224D, 0x002251],
+ [0x002256, 0x00225E],
+ [0x00226C, 0x00226D],
+ [0x00228D, 0x00228E],
+ [0x002293, 0x002297],
+ [0x002299, 0x0022A1],
+ [0x0022A4, 0x0022A5],
+ [0x0022B9, 0x0022BD],
+ [0x0022C0, 0x0022C8],
+ [0x0022CE, 0x0022CF],
+ [0x0022D2, 0x0022D5],
+ [0x0022EE, 0x0022EF],
+ [0x002300, 0x002307],
+ [0x00230C, 0x00231F],
+ [0x002322, 0x002328],
+ [0x00232B, 0x002767],
+ [0x002776, 0x0027BF],
+ [0x0027C1, 0x0027C2],
+ [0x0027CE, 0x0027D2],
+ [0x0027D7, 0x0027DB],
+ [0x0027DF, 0x0027E1],
+ [0x0027F0, 0x002982],
+ [0x002999, 0x00299A],
+ [0x0029B0, 0x0029B7],
+ [0x0029B9, 0x0029BF],
+ [0x0029C6, 0x0029C8],
+ [0x0029CA, 0x0029CD],
+ [0x0029D6, 0x0029D7],
+ [0x0029DD, 0x0029E0],
+ [0x0029E6, 0x0029E7],
+ [0x0029EA, 0x0029F3],
+ [0x0029FA, 0x0029FB],
+ [0x0029FE, 0x002A09],
+ [0x002A22, 0x002A23],
+ [0x002A27, 0x002A28],
+ [0x002A2F, 0x002A33],
+ [0x002A36, 0x002A3B],
+ [0x002A3F, 0x002A56],
+ [0x002A59, 0x002A63],
+ [0x002A66, 0x002A69],
+ [0x002A71, 0x002A72],
+ [0x002A75, 0x002A78],
+ [0x002AA4, 0x002AA5],
+ [0x002AD7, 0x002ADB],
+ [0x002ADF, 0x002AE1],
+ [0x002AE7, 0x002AEB],
+ [0x002AEF, 0x002AF2],
+ [0x002AF4, 0x002AF6],
+ [0x002AFE, 0x002BFD],
+ [0x002BFF, 0x002E01],
+ [0x002E06, 0x002E08],
+ [0x002E0E, 0x002E1B],
+ [0x002E1E, 0x002E1F],
+ [0x002E2A, 0x003007],
+ [0x003012, 0x003013],
+ [0x00301C, 0x00DBFF],
+ [0x00E000, 0x00FE58],
+ [0x00FE5F, 0x00FE63],
+ [0x00FE66, 0x00FF07],
+ [0x00FF0A, 0x00FF1B],
+ [0x00FF1F, 0x00FF3A],
+ [0x00FF3E, 0x00FF5A],
+ [0x00FF64, 0x01D6DA],
+ [0x01D6DC, 0x01D714],
+ [0x01D716, 0x01D74E],
+ [0x01D750, 0x01D788],
+ [0x01D78A, 0x01D7C2],
+ [0x01D7C4, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Bidi_Mirrored}+$/u,
+ nonMatchSymbols,
+ "\\P{Bidi_Mirrored}"
+);
+testPropertyEscapes(
+ /^\P{Bidi_M}+$/u,
+ nonMatchSymbols,
+ "\\P{Bidi_M}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Case_Ignorable.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Case_Ignorable.js
new file mode 100644
index 0000000000..00e22de646
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Case_Ignorable.js
@@ -0,0 +1,873 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Case_Ignorable`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000027,
+ 0x00002E,
+ 0x00003A,
+ 0x00005E,
+ 0x000060,
+ 0x0000A8,
+ 0x0000AD,
+ 0x0000AF,
+ 0x0000B4,
+ 0x00037A,
+ 0x000387,
+ 0x000559,
+ 0x00055F,
+ 0x0005BF,
+ 0x0005C7,
+ 0x0005F4,
+ 0x00061C,
+ 0x000640,
+ 0x000670,
+ 0x00070F,
+ 0x000711,
+ 0x0007FA,
+ 0x0007FD,
+ 0x00093A,
+ 0x00093C,
+ 0x00094D,
+ 0x000971,
+ 0x000981,
+ 0x0009BC,
+ 0x0009CD,
+ 0x0009FE,
+ 0x000A3C,
+ 0x000A51,
+ 0x000A75,
+ 0x000ABC,
+ 0x000ACD,
+ 0x000B01,
+ 0x000B3C,
+ 0x000B3F,
+ 0x000B4D,
+ 0x000B82,
+ 0x000BC0,
+ 0x000BCD,
+ 0x000C00,
+ 0x000C04,
+ 0x000C81,
+ 0x000CBC,
+ 0x000CBF,
+ 0x000CC6,
+ 0x000D4D,
+ 0x000D81,
+ 0x000DCA,
+ 0x000DD6,
+ 0x000E31,
+ 0x000EB1,
+ 0x000EC6,
+ 0x000F35,
+ 0x000F37,
+ 0x000F39,
+ 0x000FC6,
+ 0x001082,
+ 0x00108D,
+ 0x00109D,
+ 0x0010FC,
+ 0x0017C6,
+ 0x0017D7,
+ 0x0017DD,
+ 0x001843,
+ 0x0018A9,
+ 0x001932,
+ 0x001A1B,
+ 0x001A56,
+ 0x001A60,
+ 0x001A62,
+ 0x001A7F,
+ 0x001AA7,
+ 0x001B34,
+ 0x001B3C,
+ 0x001B42,
+ 0x001BE6,
+ 0x001BED,
+ 0x001CED,
+ 0x001CF4,
+ 0x001D78,
+ 0x001FBD,
+ 0x002024,
+ 0x002027,
+ 0x002071,
+ 0x00207F,
+ 0x002D6F,
+ 0x002D7F,
+ 0x002E2F,
+ 0x003005,
+ 0x00303B,
+ 0x00A015,
+ 0x00A60C,
+ 0x00A67F,
+ 0x00A770,
+ 0x00A802,
+ 0x00A806,
+ 0x00A80B,
+ 0x00A82C,
+ 0x00A8FF,
+ 0x00A9B3,
+ 0x00A9CF,
+ 0x00AA43,
+ 0x00AA4C,
+ 0x00AA70,
+ 0x00AA7C,
+ 0x00AAB0,
+ 0x00AAC1,
+ 0x00AADD,
+ 0x00AAF6,
+ 0x00ABE5,
+ 0x00ABE8,
+ 0x00ABED,
+ 0x00FB1E,
+ 0x00FE13,
+ 0x00FE52,
+ 0x00FE55,
+ 0x00FEFF,
+ 0x00FF07,
+ 0x00FF0E,
+ 0x00FF1A,
+ 0x00FF3E,
+ 0x00FF40,
+ 0x00FF70,
+ 0x00FFE3,
+ 0x0101FD,
+ 0x0102E0,
+ 0x010A3F,
+ 0x011001,
+ 0x0110BD,
+ 0x0110CD,
+ 0x011173,
+ 0x0111CF,
+ 0x011234,
+ 0x01123E,
+ 0x0112DF,
+ 0x011340,
+ 0x011446,
+ 0x01145E,
+ 0x0114BA,
+ 0x01163D,
+ 0x0116AB,
+ 0x0116AD,
+ 0x0116B7,
+ 0x01193E,
+ 0x011943,
+ 0x0119E0,
+ 0x011A47,
+ 0x011C3F,
+ 0x011D3A,
+ 0x011D47,
+ 0x011D95,
+ 0x011D97,
+ 0x016F4F,
+ 0x01DA75,
+ 0x01DA84,
+ 0x0E0001
+ ],
+ ranges: [
+ [0x0000B7, 0x0000B8],
+ [0x0002B0, 0x00036F],
+ [0x000374, 0x000375],
+ [0x000384, 0x000385],
+ [0x000483, 0x000489],
+ [0x000591, 0x0005BD],
+ [0x0005C1, 0x0005C2],
+ [0x0005C4, 0x0005C5],
+ [0x000600, 0x000605],
+ [0x000610, 0x00061A],
+ [0x00064B, 0x00065F],
+ [0x0006D6, 0x0006DD],
+ [0x0006DF, 0x0006E8],
+ [0x0006EA, 0x0006ED],
+ [0x000730, 0x00074A],
+ [0x0007A6, 0x0007B0],
+ [0x0007EB, 0x0007F5],
+ [0x000816, 0x00082D],
+ [0x000859, 0x00085B],
+ [0x0008D3, 0x000902],
+ [0x000941, 0x000948],
+ [0x000951, 0x000957],
+ [0x000962, 0x000963],
+ [0x0009C1, 0x0009C4],
+ [0x0009E2, 0x0009E3],
+ [0x000A01, 0x000A02],
+ [0x000A41, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A70, 0x000A71],
+ [0x000A81, 0x000A82],
+ [0x000AC1, 0x000AC5],
+ [0x000AC7, 0x000AC8],
+ [0x000AE2, 0x000AE3],
+ [0x000AFA, 0x000AFF],
+ [0x000B41, 0x000B44],
+ [0x000B55, 0x000B56],
+ [0x000B62, 0x000B63],
+ [0x000C3E, 0x000C40],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C62, 0x000C63],
+ [0x000CCC, 0x000CCD],
+ [0x000CE2, 0x000CE3],
+ [0x000D00, 0x000D01],
+ [0x000D3B, 0x000D3C],
+ [0x000D41, 0x000D44],
+ [0x000D62, 0x000D63],
+ [0x000DD2, 0x000DD4],
+ [0x000E34, 0x000E3A],
+ [0x000E46, 0x000E4E],
+ [0x000EB4, 0x000EBC],
+ [0x000EC8, 0x000ECD],
+ [0x000F18, 0x000F19],
+ [0x000F71, 0x000F7E],
+ [0x000F80, 0x000F84],
+ [0x000F86, 0x000F87],
+ [0x000F8D, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x00102D, 0x001030],
+ [0x001032, 0x001037],
+ [0x001039, 0x00103A],
+ [0x00103D, 0x00103E],
+ [0x001058, 0x001059],
+ [0x00105E, 0x001060],
+ [0x001071, 0x001074],
+ [0x001085, 0x001086],
+ [0x00135D, 0x00135F],
+ [0x001712, 0x001714],
+ [0x001732, 0x001734],
+ [0x001752, 0x001753],
+ [0x001772, 0x001773],
+ [0x0017B4, 0x0017B5],
+ [0x0017B7, 0x0017BD],
+ [0x0017C9, 0x0017D3],
+ [0x00180B, 0x00180E],
+ [0x001885, 0x001886],
+ [0x001920, 0x001922],
+ [0x001927, 0x001928],
+ [0x001939, 0x00193B],
+ [0x001A17, 0x001A18],
+ [0x001A58, 0x001A5E],
+ [0x001A65, 0x001A6C],
+ [0x001A73, 0x001A7C],
+ [0x001AB0, 0x001AC0],
+ [0x001B00, 0x001B03],
+ [0x001B36, 0x001B3A],
+ [0x001B6B, 0x001B73],
+ [0x001B80, 0x001B81],
+ [0x001BA2, 0x001BA5],
+ [0x001BA8, 0x001BA9],
+ [0x001BAB, 0x001BAD],
+ [0x001BE8, 0x001BE9],
+ [0x001BEF, 0x001BF1],
+ [0x001C2C, 0x001C33],
+ [0x001C36, 0x001C37],
+ [0x001C78, 0x001C7D],
+ [0x001CD0, 0x001CD2],
+ [0x001CD4, 0x001CE0],
+ [0x001CE2, 0x001CE8],
+ [0x001CF8, 0x001CF9],
+ [0x001D2C, 0x001D6A],
+ [0x001D9B, 0x001DF9],
+ [0x001DFB, 0x001DFF],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FDD, 0x001FDF],
+ [0x001FED, 0x001FEF],
+ [0x001FFD, 0x001FFE],
+ [0x00200B, 0x00200F],
+ [0x002018, 0x002019],
+ [0x00202A, 0x00202E],
+ [0x002060, 0x002064],
+ [0x002066, 0x00206F],
+ [0x002090, 0x00209C],
+ [0x0020D0, 0x0020F0],
+ [0x002C7C, 0x002C7D],
+ [0x002CEF, 0x002CF1],
+ [0x002DE0, 0x002DFF],
+ [0x00302A, 0x00302D],
+ [0x003031, 0x003035],
+ [0x003099, 0x00309E],
+ [0x0030FC, 0x0030FE],
+ [0x00A4F8, 0x00A4FD],
+ [0x00A66F, 0x00A672],
+ [0x00A674, 0x00A67D],
+ [0x00A69C, 0x00A69F],
+ [0x00A6F0, 0x00A6F1],
+ [0x00A700, 0x00A721],
+ [0x00A788, 0x00A78A],
+ [0x00A7F8, 0x00A7F9],
+ [0x00A825, 0x00A826],
+ [0x00A8C4, 0x00A8C5],
+ [0x00A8E0, 0x00A8F1],
+ [0x00A926, 0x00A92D],
+ [0x00A947, 0x00A951],
+ [0x00A980, 0x00A982],
+ [0x00A9B6, 0x00A9B9],
+ [0x00A9BC, 0x00A9BD],
+ [0x00A9E5, 0x00A9E6],
+ [0x00AA29, 0x00AA2E],
+ [0x00AA31, 0x00AA32],
+ [0x00AA35, 0x00AA36],
+ [0x00AAB2, 0x00AAB4],
+ [0x00AAB7, 0x00AAB8],
+ [0x00AABE, 0x00AABF],
+ [0x00AAEC, 0x00AAED],
+ [0x00AAF3, 0x00AAF4],
+ [0x00AB5B, 0x00AB5F],
+ [0x00AB69, 0x00AB6B],
+ [0x00FBB2, 0x00FBC1],
+ [0x00FE00, 0x00FE0F],
+ [0x00FE20, 0x00FE2F],
+ [0x00FF9E, 0x00FF9F],
+ [0x00FFF9, 0x00FFFB],
+ [0x010376, 0x01037A],
+ [0x010A01, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A0F],
+ [0x010A38, 0x010A3A],
+ [0x010AE5, 0x010AE6],
+ [0x010D24, 0x010D27],
+ [0x010EAB, 0x010EAC],
+ [0x010F46, 0x010F50],
+ [0x011038, 0x011046],
+ [0x01107F, 0x011081],
+ [0x0110B3, 0x0110B6],
+ [0x0110B9, 0x0110BA],
+ [0x011100, 0x011102],
+ [0x011127, 0x01112B],
+ [0x01112D, 0x011134],
+ [0x011180, 0x011181],
+ [0x0111B6, 0x0111BE],
+ [0x0111C9, 0x0111CC],
+ [0x01122F, 0x011231],
+ [0x011236, 0x011237],
+ [0x0112E3, 0x0112EA],
+ [0x011300, 0x011301],
+ [0x01133B, 0x01133C],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x011438, 0x01143F],
+ [0x011442, 0x011444],
+ [0x0114B3, 0x0114B8],
+ [0x0114BF, 0x0114C0],
+ [0x0114C2, 0x0114C3],
+ [0x0115B2, 0x0115B5],
+ [0x0115BC, 0x0115BD],
+ [0x0115BF, 0x0115C0],
+ [0x0115DC, 0x0115DD],
+ [0x011633, 0x01163A],
+ [0x01163F, 0x011640],
+ [0x0116B0, 0x0116B5],
+ [0x01171D, 0x01171F],
+ [0x011722, 0x011725],
+ [0x011727, 0x01172B],
+ [0x01182F, 0x011837],
+ [0x011839, 0x01183A],
+ [0x01193B, 0x01193C],
+ [0x0119D4, 0x0119D7],
+ [0x0119DA, 0x0119DB],
+ [0x011A01, 0x011A0A],
+ [0x011A33, 0x011A38],
+ [0x011A3B, 0x011A3E],
+ [0x011A51, 0x011A56],
+ [0x011A59, 0x011A5B],
+ [0x011A8A, 0x011A96],
+ [0x011A98, 0x011A99],
+ [0x011C30, 0x011C36],
+ [0x011C38, 0x011C3D],
+ [0x011C92, 0x011CA7],
+ [0x011CAA, 0x011CB0],
+ [0x011CB2, 0x011CB3],
+ [0x011CB5, 0x011CB6],
+ [0x011D31, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D45],
+ [0x011D90, 0x011D91],
+ [0x011EF3, 0x011EF4],
+ [0x013430, 0x013438],
+ [0x016AF0, 0x016AF4],
+ [0x016B30, 0x016B36],
+ [0x016B40, 0x016B43],
+ [0x016F8F, 0x016F9F],
+ [0x016FE0, 0x016FE1],
+ [0x016FE3, 0x016FE4],
+ [0x01BC9D, 0x01BC9E],
+ [0x01BCA0, 0x01BCA3],
+ [0x01D167, 0x01D169],
+ [0x01D173, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D242, 0x01D244],
+ [0x01DA00, 0x01DA36],
+ [0x01DA3B, 0x01DA6C],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A],
+ [0x01E130, 0x01E13D],
+ [0x01E2EC, 0x01E2EF],
+ [0x01E8D0, 0x01E8D6],
+ [0x01E944, 0x01E94B],
+ [0x01F3FB, 0x01F3FF],
+ [0x0E0020, 0x0E007F],
+ [0x0E0100, 0x0E01EF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Case_Ignorable}+$/u,
+ matchSymbols,
+ "\\p{Case_Ignorable}"
+);
+testPropertyEscapes(
+ /^\p{CI}+$/u,
+ matchSymbols,
+ "\\p{CI}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005F,
+ 0x0000AE,
+ 0x000386,
+ 0x0005BE,
+ 0x0005C0,
+ 0x0005C3,
+ 0x0005C6,
+ 0x00061B,
+ 0x0006DE,
+ 0x0006E9,
+ 0x000710,
+ 0x00093B,
+ 0x000AC6,
+ 0x000B00,
+ 0x000B40,
+ 0x000C49,
+ 0x000DD5,
+ 0x000EC7,
+ 0x000F36,
+ 0x000F38,
+ 0x000F7F,
+ 0x000F85,
+ 0x000F98,
+ 0x001031,
+ 0x001038,
+ 0x0017B6,
+ 0x001A57,
+ 0x001A5F,
+ 0x001A61,
+ 0x001B35,
+ 0x001B3B,
+ 0x001BAA,
+ 0x001BE7,
+ 0x001BEE,
+ 0x001CD3,
+ 0x001CE1,
+ 0x001DFA,
+ 0x001FBE,
+ 0x002065,
+ 0x002070,
+ 0x00A673,
+ 0x00A67E,
+ 0x00AAB1,
+ 0x00AAC0,
+ 0x00AAF5,
+ 0x00FF3F,
+ 0x010A04,
+ 0x01112C,
+ 0x011235,
+ 0x011445,
+ 0x0114B9,
+ 0x0114C1,
+ 0x0115BE,
+ 0x01163E,
+ 0x0116AC,
+ 0x0116B6,
+ 0x011726,
+ 0x011838,
+ 0x01193D,
+ 0x011A97,
+ 0x011C37,
+ 0x011C3E,
+ 0x011CB1,
+ 0x011CB4,
+ 0x011D3B,
+ 0x011D3E,
+ 0x011D46,
+ 0x011D96,
+ 0x016FE2,
+ 0x01BC9F,
+ 0x01DAA0,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000026],
+ [0x000028, 0x00002D],
+ [0x00002F, 0x000039],
+ [0x00003B, 0x00005D],
+ [0x000061, 0x0000A7],
+ [0x0000A9, 0x0000AC],
+ [0x0000B0, 0x0000B3],
+ [0x0000B5, 0x0000B6],
+ [0x0000B9, 0x0002AF],
+ [0x000370, 0x000373],
+ [0x000376, 0x000379],
+ [0x00037B, 0x000383],
+ [0x000388, 0x000482],
+ [0x00048A, 0x000558],
+ [0x00055A, 0x00055E],
+ [0x000560, 0x000590],
+ [0x0005C8, 0x0005F3],
+ [0x0005F5, 0x0005FF],
+ [0x000606, 0x00060F],
+ [0x00061D, 0x00063F],
+ [0x000641, 0x00064A],
+ [0x000660, 0x00066F],
+ [0x000671, 0x0006D5],
+ [0x0006EE, 0x00070E],
+ [0x000712, 0x00072F],
+ [0x00074B, 0x0007A5],
+ [0x0007B1, 0x0007EA],
+ [0x0007F6, 0x0007F9],
+ [0x0007FB, 0x0007FC],
+ [0x0007FE, 0x000815],
+ [0x00082E, 0x000858],
+ [0x00085C, 0x0008D2],
+ [0x000903, 0x000939],
+ [0x00093D, 0x000940],
+ [0x000949, 0x00094C],
+ [0x00094E, 0x000950],
+ [0x000958, 0x000961],
+ [0x000964, 0x000970],
+ [0x000972, 0x000980],
+ [0x000982, 0x0009BB],
+ [0x0009BD, 0x0009C0],
+ [0x0009C5, 0x0009CC],
+ [0x0009CE, 0x0009E1],
+ [0x0009E4, 0x0009FD],
+ [0x0009FF, 0x000A00],
+ [0x000A03, 0x000A3B],
+ [0x000A3D, 0x000A40],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A6F],
+ [0x000A72, 0x000A74],
+ [0x000A76, 0x000A80],
+ [0x000A83, 0x000ABB],
+ [0x000ABD, 0x000AC0],
+ [0x000AC9, 0x000ACC],
+ [0x000ACE, 0x000AE1],
+ [0x000AE4, 0x000AF9],
+ [0x000B02, 0x000B3B],
+ [0x000B3D, 0x000B3E],
+ [0x000B45, 0x000B4C],
+ [0x000B4E, 0x000B54],
+ [0x000B57, 0x000B61],
+ [0x000B64, 0x000B81],
+ [0x000B83, 0x000BBF],
+ [0x000BC1, 0x000BCC],
+ [0x000BCE, 0x000BFF],
+ [0x000C01, 0x000C03],
+ [0x000C05, 0x000C3D],
+ [0x000C41, 0x000C45],
+ [0x000C4E, 0x000C54],
+ [0x000C57, 0x000C61],
+ [0x000C64, 0x000C80],
+ [0x000C82, 0x000CBB],
+ [0x000CBD, 0x000CBE],
+ [0x000CC0, 0x000CC5],
+ [0x000CC7, 0x000CCB],
+ [0x000CCE, 0x000CE1],
+ [0x000CE4, 0x000CFF],
+ [0x000D02, 0x000D3A],
+ [0x000D3D, 0x000D40],
+ [0x000D45, 0x000D4C],
+ [0x000D4E, 0x000D61],
+ [0x000D64, 0x000D80],
+ [0x000D82, 0x000DC9],
+ [0x000DCB, 0x000DD1],
+ [0x000DD7, 0x000E30],
+ [0x000E32, 0x000E33],
+ [0x000E3B, 0x000E45],
+ [0x000E4F, 0x000EB0],
+ [0x000EB2, 0x000EB3],
+ [0x000EBD, 0x000EC5],
+ [0x000ECE, 0x000F17],
+ [0x000F1A, 0x000F34],
+ [0x000F3A, 0x000F70],
+ [0x000F88, 0x000F8C],
+ [0x000FBD, 0x000FC5],
+ [0x000FC7, 0x00102C],
+ [0x00103B, 0x00103C],
+ [0x00103F, 0x001057],
+ [0x00105A, 0x00105D],
+ [0x001061, 0x001070],
+ [0x001075, 0x001081],
+ [0x001083, 0x001084],
+ [0x001087, 0x00108C],
+ [0x00108E, 0x00109C],
+ [0x00109E, 0x0010FB],
+ [0x0010FD, 0x00135C],
+ [0x001360, 0x001711],
+ [0x001715, 0x001731],
+ [0x001735, 0x001751],
+ [0x001754, 0x001771],
+ [0x001774, 0x0017B3],
+ [0x0017BE, 0x0017C5],
+ [0x0017C7, 0x0017C8],
+ [0x0017D4, 0x0017D6],
+ [0x0017D8, 0x0017DC],
+ [0x0017DE, 0x00180A],
+ [0x00180F, 0x001842],
+ [0x001844, 0x001884],
+ [0x001887, 0x0018A8],
+ [0x0018AA, 0x00191F],
+ [0x001923, 0x001926],
+ [0x001929, 0x001931],
+ [0x001933, 0x001938],
+ [0x00193C, 0x001A16],
+ [0x001A19, 0x001A1A],
+ [0x001A1C, 0x001A55],
+ [0x001A63, 0x001A64],
+ [0x001A6D, 0x001A72],
+ [0x001A7D, 0x001A7E],
+ [0x001A80, 0x001AA6],
+ [0x001AA8, 0x001AAF],
+ [0x001AC1, 0x001AFF],
+ [0x001B04, 0x001B33],
+ [0x001B3D, 0x001B41],
+ [0x001B43, 0x001B6A],
+ [0x001B74, 0x001B7F],
+ [0x001B82, 0x001BA1],
+ [0x001BA6, 0x001BA7],
+ [0x001BAE, 0x001BE5],
+ [0x001BEA, 0x001BEC],
+ [0x001BF2, 0x001C2B],
+ [0x001C34, 0x001C35],
+ [0x001C38, 0x001C77],
+ [0x001C7E, 0x001CCF],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF7],
+ [0x001CFA, 0x001D2B],
+ [0x001D6B, 0x001D77],
+ [0x001D79, 0x001D9A],
+ [0x001E00, 0x001FBC],
+ [0x001FC2, 0x001FCC],
+ [0x001FD0, 0x001FDC],
+ [0x001FE0, 0x001FEC],
+ [0x001FF0, 0x001FFC],
+ [0x001FFF, 0x00200A],
+ [0x002010, 0x002017],
+ [0x00201A, 0x002023],
+ [0x002025, 0x002026],
+ [0x002028, 0x002029],
+ [0x00202F, 0x00205F],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x0020CF],
+ [0x0020F1, 0x002C7B],
+ [0x002C7E, 0x002CEE],
+ [0x002CF2, 0x002D6E],
+ [0x002D70, 0x002D7E],
+ [0x002D80, 0x002DDF],
+ [0x002E00, 0x002E2E],
+ [0x002E30, 0x003004],
+ [0x003006, 0x003029],
+ [0x00302E, 0x003030],
+ [0x003036, 0x00303A],
+ [0x00303C, 0x003098],
+ [0x00309F, 0x0030FB],
+ [0x0030FF, 0x00A014],
+ [0x00A016, 0x00A4F7],
+ [0x00A4FE, 0x00A60B],
+ [0x00A60D, 0x00A66E],
+ [0x00A680, 0x00A69B],
+ [0x00A6A0, 0x00A6EF],
+ [0x00A6F2, 0x00A6FF],
+ [0x00A722, 0x00A76F],
+ [0x00A771, 0x00A787],
+ [0x00A78B, 0x00A7F7],
+ [0x00A7FA, 0x00A801],
+ [0x00A803, 0x00A805],
+ [0x00A807, 0x00A80A],
+ [0x00A80C, 0x00A824],
+ [0x00A827, 0x00A82B],
+ [0x00A82D, 0x00A8C3],
+ [0x00A8C6, 0x00A8DF],
+ [0x00A8F2, 0x00A8FE],
+ [0x00A900, 0x00A925],
+ [0x00A92E, 0x00A946],
+ [0x00A952, 0x00A97F],
+ [0x00A983, 0x00A9B2],
+ [0x00A9B4, 0x00A9B5],
+ [0x00A9BA, 0x00A9BB],
+ [0x00A9BE, 0x00A9CE],
+ [0x00A9D0, 0x00A9E4],
+ [0x00A9E7, 0x00AA28],
+ [0x00AA2F, 0x00AA30],
+ [0x00AA33, 0x00AA34],
+ [0x00AA37, 0x00AA42],
+ [0x00AA44, 0x00AA4B],
+ [0x00AA4D, 0x00AA6F],
+ [0x00AA71, 0x00AA7B],
+ [0x00AA7D, 0x00AAAF],
+ [0x00AAB5, 0x00AAB6],
+ [0x00AAB9, 0x00AABD],
+ [0x00AAC2, 0x00AADC],
+ [0x00AADE, 0x00AAEB],
+ [0x00AAEE, 0x00AAF2],
+ [0x00AAF7, 0x00AB5A],
+ [0x00AB60, 0x00AB68],
+ [0x00AB6C, 0x00ABE4],
+ [0x00ABE6, 0x00ABE7],
+ [0x00ABE9, 0x00ABEC],
+ [0x00ABEE, 0x00DBFF],
+ [0x00E000, 0x00FB1D],
+ [0x00FB1F, 0x00FBB1],
+ [0x00FBC2, 0x00FDFF],
+ [0x00FE10, 0x00FE12],
+ [0x00FE14, 0x00FE1F],
+ [0x00FE30, 0x00FE51],
+ [0x00FE53, 0x00FE54],
+ [0x00FE56, 0x00FEFE],
+ [0x00FF00, 0x00FF06],
+ [0x00FF08, 0x00FF0D],
+ [0x00FF0F, 0x00FF19],
+ [0x00FF1B, 0x00FF3D],
+ [0x00FF41, 0x00FF6F],
+ [0x00FF71, 0x00FF9D],
+ [0x00FFA0, 0x00FFE2],
+ [0x00FFE4, 0x00FFF8],
+ [0x00FFFC, 0x0101FC],
+ [0x0101FE, 0x0102DF],
+ [0x0102E1, 0x010375],
+ [0x01037B, 0x010A00],
+ [0x010A07, 0x010A0B],
+ [0x010A10, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A40, 0x010AE4],
+ [0x010AE7, 0x010D23],
+ [0x010D28, 0x010EAA],
+ [0x010EAD, 0x010F45],
+ [0x010F51, 0x011000],
+ [0x011002, 0x011037],
+ [0x011047, 0x01107E],
+ [0x011082, 0x0110B2],
+ [0x0110B7, 0x0110B8],
+ [0x0110BB, 0x0110BC],
+ [0x0110BE, 0x0110CC],
+ [0x0110CE, 0x0110FF],
+ [0x011103, 0x011126],
+ [0x011135, 0x011172],
+ [0x011174, 0x01117F],
+ [0x011182, 0x0111B5],
+ [0x0111BF, 0x0111C8],
+ [0x0111CD, 0x0111CE],
+ [0x0111D0, 0x01122E],
+ [0x011232, 0x011233],
+ [0x011238, 0x01123D],
+ [0x01123F, 0x0112DE],
+ [0x0112E0, 0x0112E2],
+ [0x0112EB, 0x0112FF],
+ [0x011302, 0x01133A],
+ [0x01133D, 0x01133F],
+ [0x011341, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x011437],
+ [0x011440, 0x011441],
+ [0x011447, 0x01145D],
+ [0x01145F, 0x0114B2],
+ [0x0114BB, 0x0114BE],
+ [0x0114C4, 0x0115B1],
+ [0x0115B6, 0x0115BB],
+ [0x0115C1, 0x0115DB],
+ [0x0115DE, 0x011632],
+ [0x01163B, 0x01163C],
+ [0x011641, 0x0116AA],
+ [0x0116AE, 0x0116AF],
+ [0x0116B8, 0x01171C],
+ [0x011720, 0x011721],
+ [0x01172C, 0x01182E],
+ [0x01183B, 0x01193A],
+ [0x01193F, 0x011942],
+ [0x011944, 0x0119D3],
+ [0x0119D8, 0x0119D9],
+ [0x0119DC, 0x0119DF],
+ [0x0119E1, 0x011A00],
+ [0x011A0B, 0x011A32],
+ [0x011A39, 0x011A3A],
+ [0x011A3F, 0x011A46],
+ [0x011A48, 0x011A50],
+ [0x011A57, 0x011A58],
+ [0x011A5C, 0x011A89],
+ [0x011A9A, 0x011C2F],
+ [0x011C40, 0x011C91],
+ [0x011CA8, 0x011CA9],
+ [0x011CB7, 0x011D30],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D8F],
+ [0x011D92, 0x011D94],
+ [0x011D98, 0x011EF2],
+ [0x011EF5, 0x01342F],
+ [0x013439, 0x016AEF],
+ [0x016AF5, 0x016B2F],
+ [0x016B37, 0x016B3F],
+ [0x016B44, 0x016F4E],
+ [0x016F50, 0x016F8E],
+ [0x016FA0, 0x016FDF],
+ [0x016FE5, 0x01BC9C],
+ [0x01BCA4, 0x01D166],
+ [0x01D16A, 0x01D172],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D241],
+ [0x01D245, 0x01D9FF],
+ [0x01DA37, 0x01DA3A],
+ [0x01DA6D, 0x01DA74],
+ [0x01DA76, 0x01DA83],
+ [0x01DA85, 0x01DA9A],
+ [0x01DAB0, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x01E12F],
+ [0x01E13E, 0x01E2EB],
+ [0x01E2F0, 0x01E8CF],
+ [0x01E8D7, 0x01E943],
+ [0x01E94C, 0x01F3FA],
+ [0x01F400, 0x0E0000],
+ [0x0E0002, 0x0E001F],
+ [0x0E0080, 0x0E00FF],
+ [0x0E01F0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Case_Ignorable}+$/u,
+ nonMatchSymbols,
+ "\\P{Case_Ignorable}"
+);
+testPropertyEscapes(
+ /^\P{CI}+$/u,
+ nonMatchSymbols,
+ "\\P{CI}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Cased.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Cased.js
new file mode 100644
index 0000000000..3891f89ccf
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Cased.js
@@ -0,0 +1,325 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Cased`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000B5,
+ 0x0000BA,
+ 0x000345,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001FBE,
+ 0x002071,
+ 0x00207F,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x002139,
+ 0x00214E,
+ 0x002D27,
+ 0x002D2D,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0001BA],
+ [0x0001BC, 0x0001BF],
+ [0x0001C4, 0x000293],
+ [0x000295, 0x0002B8],
+ [0x0002C0, 0x0002C1],
+ [0x0002E0, 0x0002E4],
+ [0x000370, 0x000373],
+ [0x000376, 0x000377],
+ [0x00037A, 0x00037D],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003F5],
+ [0x0003F7, 0x000481],
+ [0x00048A, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000560, 0x000588],
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FA],
+ [0x0010FD, 0x0010FF],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001D00, 0x001DBF],
+ [0x001E00, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FBC],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FCC],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FE0, 0x001FEC],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFC],
+ [0x002090, 0x00209C],
+ [0x00210A, 0x002113],
+ [0x002119, 0x00211D],
+ [0x00212A, 0x00212D],
+ [0x00212F, 0x002134],
+ [0x00213C, 0x00213F],
+ [0x002145, 0x002149],
+ [0x002160, 0x00217F],
+ [0x002183, 0x002184],
+ [0x0024B6, 0x0024E9],
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CE4],
+ [0x002CEB, 0x002CEE],
+ [0x002CF2, 0x002CF3],
+ [0x002D00, 0x002D25],
+ [0x00A640, 0x00A66D],
+ [0x00A680, 0x00A69D],
+ [0x00A722, 0x00A787],
+ [0x00A78B, 0x00A78E],
+ [0x00A790, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A7F6],
+ [0x00A7F8, 0x00A7FA],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB5C, 0x00AB68],
+ [0x00AB70, 0x00ABBF],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x010400, 0x01044F],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x0118A0, 0x0118DF],
+ [0x016E40, 0x016E7F],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D6C0],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6FA],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D734],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D76E],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D7A8],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7CB],
+ [0x01E900, 0x01E943],
+ [0x01F130, 0x01F149],
+ [0x01F150, 0x01F169],
+ [0x01F170, 0x01F189]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Cased}+$/u,
+ matchSymbols,
+ "\\p{Cased}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x0001BB,
+ 0x000294,
+ 0x00037E,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x0003F6,
+ 0x000530,
+ 0x0010C6,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FBD,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002114,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x00212E,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x00A78F,
+ 0x00A7F7,
+ 0x00AB5B,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01D6C1,
+ 0x01D6DB,
+ 0x01D6FB,
+ 0x01D715,
+ 0x01D735,
+ 0x01D74F,
+ 0x01D76F,
+ 0x01D789,
+ 0x01D7A9,
+ 0x01D7C3
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B4],
+ [0x0000B6, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0001C0, 0x0001C3],
+ [0x0002B9, 0x0002BF],
+ [0x0002C2, 0x0002DF],
+ [0x0002E5, 0x000344],
+ [0x000346, 0x00036F],
+ [0x000374, 0x000375],
+ [0x000378, 0x000379],
+ [0x000380, 0x000385],
+ [0x000482, 0x000489],
+ [0x000557, 0x00055F],
+ [0x000589, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x0010FB, 0x0010FC],
+ [0x001100, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001CFF],
+ [0x001DC0, 0x001DFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FDC, 0x001FDF],
+ [0x001FED, 0x001FF1],
+ [0x001FFD, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002118],
+ [0x00211E, 0x002123],
+ [0x002135, 0x002138],
+ [0x00213A, 0x00213B],
+ [0x002140, 0x002144],
+ [0x00214A, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002180, 0x002182],
+ [0x002185, 0x0024B5],
+ [0x0024EA, 0x002BFF],
+ [0x002CE5, 0x002CEA],
+ [0x002CEF, 0x002CF1],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x00A63F],
+ [0x00A66E, 0x00A67F],
+ [0x00A69E, 0x00A721],
+ [0x00A788, 0x00A78A],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A7FB, 0x00AB2F],
+ [0x00AB69, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x0103FF],
+ [0x010450, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x01189F],
+ [0x0118E0, 0x016E3F],
+ [0x016E80, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01E8FF],
+ [0x01E944, 0x01F12F],
+ [0x01F14A, 0x01F14F],
+ [0x01F16A, 0x01F16F],
+ [0x01F18A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Cased}+$/u,
+ nonMatchSymbols,
+ "\\P{Cased}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casefolded.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casefolded.js
new file mode 100644
index 0000000000..b5bed20fe1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casefolded.js
@@ -0,0 +1,1281 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Changes_When_Casefolded`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000B5,
+ 0x000100,
+ 0x000102,
+ 0x000104,
+ 0x000106,
+ 0x000108,
+ 0x00010A,
+ 0x00010C,
+ 0x00010E,
+ 0x000110,
+ 0x000112,
+ 0x000114,
+ 0x000116,
+ 0x000118,
+ 0x00011A,
+ 0x00011C,
+ 0x00011E,
+ 0x000120,
+ 0x000122,
+ 0x000124,
+ 0x000126,
+ 0x000128,
+ 0x00012A,
+ 0x00012C,
+ 0x00012E,
+ 0x000130,
+ 0x000132,
+ 0x000134,
+ 0x000136,
+ 0x000139,
+ 0x00013B,
+ 0x00013D,
+ 0x00013F,
+ 0x000141,
+ 0x000143,
+ 0x000145,
+ 0x000147,
+ 0x00014C,
+ 0x00014E,
+ 0x000150,
+ 0x000152,
+ 0x000154,
+ 0x000156,
+ 0x000158,
+ 0x00015A,
+ 0x00015C,
+ 0x00015E,
+ 0x000160,
+ 0x000162,
+ 0x000164,
+ 0x000166,
+ 0x000168,
+ 0x00016A,
+ 0x00016C,
+ 0x00016E,
+ 0x000170,
+ 0x000172,
+ 0x000174,
+ 0x000176,
+ 0x00017B,
+ 0x00017D,
+ 0x00017F,
+ 0x000184,
+ 0x0001A2,
+ 0x0001A4,
+ 0x0001A9,
+ 0x0001AC,
+ 0x0001B5,
+ 0x0001BC,
+ 0x0001CD,
+ 0x0001CF,
+ 0x0001D1,
+ 0x0001D3,
+ 0x0001D5,
+ 0x0001D7,
+ 0x0001D9,
+ 0x0001DB,
+ 0x0001DE,
+ 0x0001E0,
+ 0x0001E2,
+ 0x0001E4,
+ 0x0001E6,
+ 0x0001E8,
+ 0x0001EA,
+ 0x0001EC,
+ 0x0001EE,
+ 0x0001F4,
+ 0x0001FA,
+ 0x0001FC,
+ 0x0001FE,
+ 0x000200,
+ 0x000202,
+ 0x000204,
+ 0x000206,
+ 0x000208,
+ 0x00020A,
+ 0x00020C,
+ 0x00020E,
+ 0x000210,
+ 0x000212,
+ 0x000214,
+ 0x000216,
+ 0x000218,
+ 0x00021A,
+ 0x00021C,
+ 0x00021E,
+ 0x000220,
+ 0x000222,
+ 0x000224,
+ 0x000226,
+ 0x000228,
+ 0x00022A,
+ 0x00022C,
+ 0x00022E,
+ 0x000230,
+ 0x000232,
+ 0x000241,
+ 0x000248,
+ 0x00024A,
+ 0x00024C,
+ 0x00024E,
+ 0x000345,
+ 0x000370,
+ 0x000372,
+ 0x000376,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x0003C2,
+ 0x0003D8,
+ 0x0003DA,
+ 0x0003DC,
+ 0x0003DE,
+ 0x0003E0,
+ 0x0003E2,
+ 0x0003E4,
+ 0x0003E6,
+ 0x0003E8,
+ 0x0003EA,
+ 0x0003EC,
+ 0x0003EE,
+ 0x0003F7,
+ 0x000460,
+ 0x000462,
+ 0x000464,
+ 0x000466,
+ 0x000468,
+ 0x00046A,
+ 0x00046C,
+ 0x00046E,
+ 0x000470,
+ 0x000472,
+ 0x000474,
+ 0x000476,
+ 0x000478,
+ 0x00047A,
+ 0x00047C,
+ 0x00047E,
+ 0x000480,
+ 0x00048A,
+ 0x00048C,
+ 0x00048E,
+ 0x000490,
+ 0x000492,
+ 0x000494,
+ 0x000496,
+ 0x000498,
+ 0x00049A,
+ 0x00049C,
+ 0x00049E,
+ 0x0004A0,
+ 0x0004A2,
+ 0x0004A4,
+ 0x0004A6,
+ 0x0004A8,
+ 0x0004AA,
+ 0x0004AC,
+ 0x0004AE,
+ 0x0004B0,
+ 0x0004B2,
+ 0x0004B4,
+ 0x0004B6,
+ 0x0004B8,
+ 0x0004BA,
+ 0x0004BC,
+ 0x0004BE,
+ 0x0004C3,
+ 0x0004C5,
+ 0x0004C7,
+ 0x0004C9,
+ 0x0004CB,
+ 0x0004CD,
+ 0x0004D0,
+ 0x0004D2,
+ 0x0004D4,
+ 0x0004D6,
+ 0x0004D8,
+ 0x0004DA,
+ 0x0004DC,
+ 0x0004DE,
+ 0x0004E0,
+ 0x0004E2,
+ 0x0004E4,
+ 0x0004E6,
+ 0x0004E8,
+ 0x0004EA,
+ 0x0004EC,
+ 0x0004EE,
+ 0x0004F0,
+ 0x0004F2,
+ 0x0004F4,
+ 0x0004F6,
+ 0x0004F8,
+ 0x0004FA,
+ 0x0004FC,
+ 0x0004FE,
+ 0x000500,
+ 0x000502,
+ 0x000504,
+ 0x000506,
+ 0x000508,
+ 0x00050A,
+ 0x00050C,
+ 0x00050E,
+ 0x000510,
+ 0x000512,
+ 0x000514,
+ 0x000516,
+ 0x000518,
+ 0x00051A,
+ 0x00051C,
+ 0x00051E,
+ 0x000520,
+ 0x000522,
+ 0x000524,
+ 0x000526,
+ 0x000528,
+ 0x00052A,
+ 0x00052C,
+ 0x00052E,
+ 0x000587,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001E00,
+ 0x001E02,
+ 0x001E04,
+ 0x001E06,
+ 0x001E08,
+ 0x001E0A,
+ 0x001E0C,
+ 0x001E0E,
+ 0x001E10,
+ 0x001E12,
+ 0x001E14,
+ 0x001E16,
+ 0x001E18,
+ 0x001E1A,
+ 0x001E1C,
+ 0x001E1E,
+ 0x001E20,
+ 0x001E22,
+ 0x001E24,
+ 0x001E26,
+ 0x001E28,
+ 0x001E2A,
+ 0x001E2C,
+ 0x001E2E,
+ 0x001E30,
+ 0x001E32,
+ 0x001E34,
+ 0x001E36,
+ 0x001E38,
+ 0x001E3A,
+ 0x001E3C,
+ 0x001E3E,
+ 0x001E40,
+ 0x001E42,
+ 0x001E44,
+ 0x001E46,
+ 0x001E48,
+ 0x001E4A,
+ 0x001E4C,
+ 0x001E4E,
+ 0x001E50,
+ 0x001E52,
+ 0x001E54,
+ 0x001E56,
+ 0x001E58,
+ 0x001E5A,
+ 0x001E5C,
+ 0x001E5E,
+ 0x001E60,
+ 0x001E62,
+ 0x001E64,
+ 0x001E66,
+ 0x001E68,
+ 0x001E6A,
+ 0x001E6C,
+ 0x001E6E,
+ 0x001E70,
+ 0x001E72,
+ 0x001E74,
+ 0x001E76,
+ 0x001E78,
+ 0x001E7A,
+ 0x001E7C,
+ 0x001E7E,
+ 0x001E80,
+ 0x001E82,
+ 0x001E84,
+ 0x001E86,
+ 0x001E88,
+ 0x001E8A,
+ 0x001E8C,
+ 0x001E8E,
+ 0x001E90,
+ 0x001E92,
+ 0x001E94,
+ 0x001E9E,
+ 0x001EA0,
+ 0x001EA2,
+ 0x001EA4,
+ 0x001EA6,
+ 0x001EA8,
+ 0x001EAA,
+ 0x001EAC,
+ 0x001EAE,
+ 0x001EB0,
+ 0x001EB2,
+ 0x001EB4,
+ 0x001EB6,
+ 0x001EB8,
+ 0x001EBA,
+ 0x001EBC,
+ 0x001EBE,
+ 0x001EC0,
+ 0x001EC2,
+ 0x001EC4,
+ 0x001EC6,
+ 0x001EC8,
+ 0x001ECA,
+ 0x001ECC,
+ 0x001ECE,
+ 0x001ED0,
+ 0x001ED2,
+ 0x001ED4,
+ 0x001ED6,
+ 0x001ED8,
+ 0x001EDA,
+ 0x001EDC,
+ 0x001EDE,
+ 0x001EE0,
+ 0x001EE2,
+ 0x001EE4,
+ 0x001EE6,
+ 0x001EE8,
+ 0x001EEA,
+ 0x001EEC,
+ 0x001EEE,
+ 0x001EF0,
+ 0x001EF2,
+ 0x001EF4,
+ 0x001EF6,
+ 0x001EF8,
+ 0x001EFA,
+ 0x001EFC,
+ 0x001EFE,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001F5F,
+ 0x002126,
+ 0x002132,
+ 0x002183,
+ 0x002C60,
+ 0x002C67,
+ 0x002C69,
+ 0x002C6B,
+ 0x002C72,
+ 0x002C75,
+ 0x002C82,
+ 0x002C84,
+ 0x002C86,
+ 0x002C88,
+ 0x002C8A,
+ 0x002C8C,
+ 0x002C8E,
+ 0x002C90,
+ 0x002C92,
+ 0x002C94,
+ 0x002C96,
+ 0x002C98,
+ 0x002C9A,
+ 0x002C9C,
+ 0x002C9E,
+ 0x002CA0,
+ 0x002CA2,
+ 0x002CA4,
+ 0x002CA6,
+ 0x002CA8,
+ 0x002CAA,
+ 0x002CAC,
+ 0x002CAE,
+ 0x002CB0,
+ 0x002CB2,
+ 0x002CB4,
+ 0x002CB6,
+ 0x002CB8,
+ 0x002CBA,
+ 0x002CBC,
+ 0x002CBE,
+ 0x002CC0,
+ 0x002CC2,
+ 0x002CC4,
+ 0x002CC6,
+ 0x002CC8,
+ 0x002CCA,
+ 0x002CCC,
+ 0x002CCE,
+ 0x002CD0,
+ 0x002CD2,
+ 0x002CD4,
+ 0x002CD6,
+ 0x002CD8,
+ 0x002CDA,
+ 0x002CDC,
+ 0x002CDE,
+ 0x002CE0,
+ 0x002CE2,
+ 0x002CEB,
+ 0x002CED,
+ 0x002CF2,
+ 0x00A640,
+ 0x00A642,
+ 0x00A644,
+ 0x00A646,
+ 0x00A648,
+ 0x00A64A,
+ 0x00A64C,
+ 0x00A64E,
+ 0x00A650,
+ 0x00A652,
+ 0x00A654,
+ 0x00A656,
+ 0x00A658,
+ 0x00A65A,
+ 0x00A65C,
+ 0x00A65E,
+ 0x00A660,
+ 0x00A662,
+ 0x00A664,
+ 0x00A666,
+ 0x00A668,
+ 0x00A66A,
+ 0x00A66C,
+ 0x00A680,
+ 0x00A682,
+ 0x00A684,
+ 0x00A686,
+ 0x00A688,
+ 0x00A68A,
+ 0x00A68C,
+ 0x00A68E,
+ 0x00A690,
+ 0x00A692,
+ 0x00A694,
+ 0x00A696,
+ 0x00A698,
+ 0x00A69A,
+ 0x00A722,
+ 0x00A724,
+ 0x00A726,
+ 0x00A728,
+ 0x00A72A,
+ 0x00A72C,
+ 0x00A72E,
+ 0x00A732,
+ 0x00A734,
+ 0x00A736,
+ 0x00A738,
+ 0x00A73A,
+ 0x00A73C,
+ 0x00A73E,
+ 0x00A740,
+ 0x00A742,
+ 0x00A744,
+ 0x00A746,
+ 0x00A748,
+ 0x00A74A,
+ 0x00A74C,
+ 0x00A74E,
+ 0x00A750,
+ 0x00A752,
+ 0x00A754,
+ 0x00A756,
+ 0x00A758,
+ 0x00A75A,
+ 0x00A75C,
+ 0x00A75E,
+ 0x00A760,
+ 0x00A762,
+ 0x00A764,
+ 0x00A766,
+ 0x00A768,
+ 0x00A76A,
+ 0x00A76C,
+ 0x00A76E,
+ 0x00A779,
+ 0x00A77B,
+ 0x00A780,
+ 0x00A782,
+ 0x00A784,
+ 0x00A786,
+ 0x00A78B,
+ 0x00A78D,
+ 0x00A790,
+ 0x00A792,
+ 0x00A796,
+ 0x00A798,
+ 0x00A79A,
+ 0x00A79C,
+ 0x00A79E,
+ 0x00A7A0,
+ 0x00A7A2,
+ 0x00A7A4,
+ 0x00A7A6,
+ 0x00A7A8,
+ 0x00A7B6,
+ 0x00A7B8,
+ 0x00A7BA,
+ 0x00A7BC,
+ 0x00A7BE,
+ 0x00A7C2,
+ 0x00A7C9,
+ 0x00A7F5
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000DF],
+ [0x000149, 0x00014A],
+ [0x000178, 0x000179],
+ [0x000181, 0x000182],
+ [0x000186, 0x000187],
+ [0x000189, 0x00018B],
+ [0x00018E, 0x000191],
+ [0x000193, 0x000194],
+ [0x000196, 0x000198],
+ [0x00019C, 0x00019D],
+ [0x00019F, 0x0001A0],
+ [0x0001A6, 0x0001A7],
+ [0x0001AE, 0x0001AF],
+ [0x0001B1, 0x0001B3],
+ [0x0001B7, 0x0001B8],
+ [0x0001C4, 0x0001C5],
+ [0x0001C7, 0x0001C8],
+ [0x0001CA, 0x0001CB],
+ [0x0001F1, 0x0001F2],
+ [0x0001F6, 0x0001F8],
+ [0x00023A, 0x00023B],
+ [0x00023D, 0x00023E],
+ [0x000243, 0x000246],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x00038F],
+ [0x000391, 0x0003A1],
+ [0x0003A3, 0x0003AB],
+ [0x0003CF, 0x0003D1],
+ [0x0003D5, 0x0003D6],
+ [0x0003F0, 0x0003F1],
+ [0x0003F4, 0x0003F5],
+ [0x0003F9, 0x0003FA],
+ [0x0003FD, 0x00042F],
+ [0x0004C0, 0x0004C1],
+ [0x000531, 0x000556],
+ [0x0010A0, 0x0010C5],
+ [0x0013F8, 0x0013FD],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001E9A, 0x001E9B],
+ [0x001F08, 0x001F0F],
+ [0x001F18, 0x001F1D],
+ [0x001F28, 0x001F2F],
+ [0x001F38, 0x001F3F],
+ [0x001F48, 0x001F4D],
+ [0x001F68, 0x001F6F],
+ [0x001F80, 0x001FAF],
+ [0x001FB2, 0x001FB4],
+ [0x001FB7, 0x001FBC],
+ [0x001FC2, 0x001FC4],
+ [0x001FC7, 0x001FCC],
+ [0x001FD8, 0x001FDB],
+ [0x001FE8, 0x001FEC],
+ [0x001FF2, 0x001FF4],
+ [0x001FF7, 0x001FFC],
+ [0x00212A, 0x00212B],
+ [0x002160, 0x00216F],
+ [0x0024B6, 0x0024CF],
+ [0x002C00, 0x002C2E],
+ [0x002C62, 0x002C64],
+ [0x002C6D, 0x002C70],
+ [0x002C7E, 0x002C80],
+ [0x00A77D, 0x00A77E],
+ [0x00A7AA, 0x00A7AE],
+ [0x00A7B0, 0x00A7B4],
+ [0x00A7C4, 0x00A7C7],
+ [0x00AB70, 0x00ABBF],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FF21, 0x00FF3A],
+ [0x010400, 0x010427],
+ [0x0104B0, 0x0104D3],
+ [0x010C80, 0x010CB2],
+ [0x0118A0, 0x0118BF],
+ [0x016E40, 0x016E5F],
+ [0x01E900, 0x01E921]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Changes_When_Casefolded}+$/u,
+ matchSymbols,
+ "\\p{Changes_When_Casefolded}"
+);
+testPropertyEscapes(
+ /^\p{CWCF}+$/u,
+ matchSymbols,
+ "\\p{CWCF}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x000101,
+ 0x000103,
+ 0x000105,
+ 0x000107,
+ 0x000109,
+ 0x00010B,
+ 0x00010D,
+ 0x00010F,
+ 0x000111,
+ 0x000113,
+ 0x000115,
+ 0x000117,
+ 0x000119,
+ 0x00011B,
+ 0x00011D,
+ 0x00011F,
+ 0x000121,
+ 0x000123,
+ 0x000125,
+ 0x000127,
+ 0x000129,
+ 0x00012B,
+ 0x00012D,
+ 0x00012F,
+ 0x000131,
+ 0x000133,
+ 0x000135,
+ 0x00013A,
+ 0x00013C,
+ 0x00013E,
+ 0x000140,
+ 0x000142,
+ 0x000144,
+ 0x000146,
+ 0x000148,
+ 0x00014B,
+ 0x00014D,
+ 0x00014F,
+ 0x000151,
+ 0x000153,
+ 0x000155,
+ 0x000157,
+ 0x000159,
+ 0x00015B,
+ 0x00015D,
+ 0x00015F,
+ 0x000161,
+ 0x000163,
+ 0x000165,
+ 0x000167,
+ 0x000169,
+ 0x00016B,
+ 0x00016D,
+ 0x00016F,
+ 0x000171,
+ 0x000173,
+ 0x000175,
+ 0x000177,
+ 0x00017A,
+ 0x00017C,
+ 0x00017E,
+ 0x000180,
+ 0x000183,
+ 0x000185,
+ 0x000188,
+ 0x000192,
+ 0x000195,
+ 0x00019E,
+ 0x0001A1,
+ 0x0001A3,
+ 0x0001A5,
+ 0x0001A8,
+ 0x0001AD,
+ 0x0001B0,
+ 0x0001B4,
+ 0x0001B6,
+ 0x0001C6,
+ 0x0001C9,
+ 0x0001CC,
+ 0x0001CE,
+ 0x0001D0,
+ 0x0001D2,
+ 0x0001D4,
+ 0x0001D6,
+ 0x0001D8,
+ 0x0001DA,
+ 0x0001DF,
+ 0x0001E1,
+ 0x0001E3,
+ 0x0001E5,
+ 0x0001E7,
+ 0x0001E9,
+ 0x0001EB,
+ 0x0001ED,
+ 0x0001F3,
+ 0x0001F5,
+ 0x0001F9,
+ 0x0001FB,
+ 0x0001FD,
+ 0x0001FF,
+ 0x000201,
+ 0x000203,
+ 0x000205,
+ 0x000207,
+ 0x000209,
+ 0x00020B,
+ 0x00020D,
+ 0x00020F,
+ 0x000211,
+ 0x000213,
+ 0x000215,
+ 0x000217,
+ 0x000219,
+ 0x00021B,
+ 0x00021D,
+ 0x00021F,
+ 0x000221,
+ 0x000223,
+ 0x000225,
+ 0x000227,
+ 0x000229,
+ 0x00022B,
+ 0x00022D,
+ 0x00022F,
+ 0x000231,
+ 0x00023C,
+ 0x000242,
+ 0x000247,
+ 0x000249,
+ 0x00024B,
+ 0x00024D,
+ 0x000371,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x000390,
+ 0x0003A2,
+ 0x0003D7,
+ 0x0003D9,
+ 0x0003DB,
+ 0x0003DD,
+ 0x0003DF,
+ 0x0003E1,
+ 0x0003E3,
+ 0x0003E5,
+ 0x0003E7,
+ 0x0003E9,
+ 0x0003EB,
+ 0x0003ED,
+ 0x0003EF,
+ 0x0003F6,
+ 0x0003F8,
+ 0x000461,
+ 0x000463,
+ 0x000465,
+ 0x000467,
+ 0x000469,
+ 0x00046B,
+ 0x00046D,
+ 0x00046F,
+ 0x000471,
+ 0x000473,
+ 0x000475,
+ 0x000477,
+ 0x000479,
+ 0x00047B,
+ 0x00047D,
+ 0x00047F,
+ 0x00048B,
+ 0x00048D,
+ 0x00048F,
+ 0x000491,
+ 0x000493,
+ 0x000495,
+ 0x000497,
+ 0x000499,
+ 0x00049B,
+ 0x00049D,
+ 0x00049F,
+ 0x0004A1,
+ 0x0004A3,
+ 0x0004A5,
+ 0x0004A7,
+ 0x0004A9,
+ 0x0004AB,
+ 0x0004AD,
+ 0x0004AF,
+ 0x0004B1,
+ 0x0004B3,
+ 0x0004B5,
+ 0x0004B7,
+ 0x0004B9,
+ 0x0004BB,
+ 0x0004BD,
+ 0x0004BF,
+ 0x0004C2,
+ 0x0004C4,
+ 0x0004C6,
+ 0x0004C8,
+ 0x0004CA,
+ 0x0004CC,
+ 0x0004D1,
+ 0x0004D3,
+ 0x0004D5,
+ 0x0004D7,
+ 0x0004D9,
+ 0x0004DB,
+ 0x0004DD,
+ 0x0004DF,
+ 0x0004E1,
+ 0x0004E3,
+ 0x0004E5,
+ 0x0004E7,
+ 0x0004E9,
+ 0x0004EB,
+ 0x0004ED,
+ 0x0004EF,
+ 0x0004F1,
+ 0x0004F3,
+ 0x0004F5,
+ 0x0004F7,
+ 0x0004F9,
+ 0x0004FB,
+ 0x0004FD,
+ 0x0004FF,
+ 0x000501,
+ 0x000503,
+ 0x000505,
+ 0x000507,
+ 0x000509,
+ 0x00050B,
+ 0x00050D,
+ 0x00050F,
+ 0x000511,
+ 0x000513,
+ 0x000515,
+ 0x000517,
+ 0x000519,
+ 0x00051B,
+ 0x00051D,
+ 0x00051F,
+ 0x000521,
+ 0x000523,
+ 0x000525,
+ 0x000527,
+ 0x000529,
+ 0x00052B,
+ 0x00052D,
+ 0x0010C6,
+ 0x001E01,
+ 0x001E03,
+ 0x001E05,
+ 0x001E07,
+ 0x001E09,
+ 0x001E0B,
+ 0x001E0D,
+ 0x001E0F,
+ 0x001E11,
+ 0x001E13,
+ 0x001E15,
+ 0x001E17,
+ 0x001E19,
+ 0x001E1B,
+ 0x001E1D,
+ 0x001E1F,
+ 0x001E21,
+ 0x001E23,
+ 0x001E25,
+ 0x001E27,
+ 0x001E29,
+ 0x001E2B,
+ 0x001E2D,
+ 0x001E2F,
+ 0x001E31,
+ 0x001E33,
+ 0x001E35,
+ 0x001E37,
+ 0x001E39,
+ 0x001E3B,
+ 0x001E3D,
+ 0x001E3F,
+ 0x001E41,
+ 0x001E43,
+ 0x001E45,
+ 0x001E47,
+ 0x001E49,
+ 0x001E4B,
+ 0x001E4D,
+ 0x001E4F,
+ 0x001E51,
+ 0x001E53,
+ 0x001E55,
+ 0x001E57,
+ 0x001E59,
+ 0x001E5B,
+ 0x001E5D,
+ 0x001E5F,
+ 0x001E61,
+ 0x001E63,
+ 0x001E65,
+ 0x001E67,
+ 0x001E69,
+ 0x001E6B,
+ 0x001E6D,
+ 0x001E6F,
+ 0x001E71,
+ 0x001E73,
+ 0x001E75,
+ 0x001E77,
+ 0x001E79,
+ 0x001E7B,
+ 0x001E7D,
+ 0x001E7F,
+ 0x001E81,
+ 0x001E83,
+ 0x001E85,
+ 0x001E87,
+ 0x001E89,
+ 0x001E8B,
+ 0x001E8D,
+ 0x001E8F,
+ 0x001E91,
+ 0x001E93,
+ 0x001E9F,
+ 0x001EA1,
+ 0x001EA3,
+ 0x001EA5,
+ 0x001EA7,
+ 0x001EA9,
+ 0x001EAB,
+ 0x001EAD,
+ 0x001EAF,
+ 0x001EB1,
+ 0x001EB3,
+ 0x001EB5,
+ 0x001EB7,
+ 0x001EB9,
+ 0x001EBB,
+ 0x001EBD,
+ 0x001EBF,
+ 0x001EC1,
+ 0x001EC3,
+ 0x001EC5,
+ 0x001EC7,
+ 0x001EC9,
+ 0x001ECB,
+ 0x001ECD,
+ 0x001ECF,
+ 0x001ED1,
+ 0x001ED3,
+ 0x001ED5,
+ 0x001ED7,
+ 0x001ED9,
+ 0x001EDB,
+ 0x001EDD,
+ 0x001EDF,
+ 0x001EE1,
+ 0x001EE3,
+ 0x001EE5,
+ 0x001EE7,
+ 0x001EE9,
+ 0x001EEB,
+ 0x001EED,
+ 0x001EEF,
+ 0x001EF1,
+ 0x001EF3,
+ 0x001EF5,
+ 0x001EF7,
+ 0x001EF9,
+ 0x001EFB,
+ 0x001EFD,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x002C61,
+ 0x002C68,
+ 0x002C6A,
+ 0x002C6C,
+ 0x002C71,
+ 0x002C81,
+ 0x002C83,
+ 0x002C85,
+ 0x002C87,
+ 0x002C89,
+ 0x002C8B,
+ 0x002C8D,
+ 0x002C8F,
+ 0x002C91,
+ 0x002C93,
+ 0x002C95,
+ 0x002C97,
+ 0x002C99,
+ 0x002C9B,
+ 0x002C9D,
+ 0x002C9F,
+ 0x002CA1,
+ 0x002CA3,
+ 0x002CA5,
+ 0x002CA7,
+ 0x002CA9,
+ 0x002CAB,
+ 0x002CAD,
+ 0x002CAF,
+ 0x002CB1,
+ 0x002CB3,
+ 0x002CB5,
+ 0x002CB7,
+ 0x002CB9,
+ 0x002CBB,
+ 0x002CBD,
+ 0x002CBF,
+ 0x002CC1,
+ 0x002CC3,
+ 0x002CC5,
+ 0x002CC7,
+ 0x002CC9,
+ 0x002CCB,
+ 0x002CCD,
+ 0x002CCF,
+ 0x002CD1,
+ 0x002CD3,
+ 0x002CD5,
+ 0x002CD7,
+ 0x002CD9,
+ 0x002CDB,
+ 0x002CDD,
+ 0x002CDF,
+ 0x002CE1,
+ 0x002CEC,
+ 0x00A641,
+ 0x00A643,
+ 0x00A645,
+ 0x00A647,
+ 0x00A649,
+ 0x00A64B,
+ 0x00A64D,
+ 0x00A64F,
+ 0x00A651,
+ 0x00A653,
+ 0x00A655,
+ 0x00A657,
+ 0x00A659,
+ 0x00A65B,
+ 0x00A65D,
+ 0x00A65F,
+ 0x00A661,
+ 0x00A663,
+ 0x00A665,
+ 0x00A667,
+ 0x00A669,
+ 0x00A66B,
+ 0x00A681,
+ 0x00A683,
+ 0x00A685,
+ 0x00A687,
+ 0x00A689,
+ 0x00A68B,
+ 0x00A68D,
+ 0x00A68F,
+ 0x00A691,
+ 0x00A693,
+ 0x00A695,
+ 0x00A697,
+ 0x00A699,
+ 0x00A723,
+ 0x00A725,
+ 0x00A727,
+ 0x00A729,
+ 0x00A72B,
+ 0x00A72D,
+ 0x00A733,
+ 0x00A735,
+ 0x00A737,
+ 0x00A739,
+ 0x00A73B,
+ 0x00A73D,
+ 0x00A73F,
+ 0x00A741,
+ 0x00A743,
+ 0x00A745,
+ 0x00A747,
+ 0x00A749,
+ 0x00A74B,
+ 0x00A74D,
+ 0x00A74F,
+ 0x00A751,
+ 0x00A753,
+ 0x00A755,
+ 0x00A757,
+ 0x00A759,
+ 0x00A75B,
+ 0x00A75D,
+ 0x00A75F,
+ 0x00A761,
+ 0x00A763,
+ 0x00A765,
+ 0x00A767,
+ 0x00A769,
+ 0x00A76B,
+ 0x00A76D,
+ 0x00A77A,
+ 0x00A77C,
+ 0x00A77F,
+ 0x00A781,
+ 0x00A783,
+ 0x00A785,
+ 0x00A78C,
+ 0x00A791,
+ 0x00A797,
+ 0x00A799,
+ 0x00A79B,
+ 0x00A79D,
+ 0x00A79F,
+ 0x00A7A1,
+ 0x00A7A3,
+ 0x00A7A5,
+ 0x00A7A7,
+ 0x00A7A9,
+ 0x00A7AF,
+ 0x00A7B5,
+ 0x00A7B7,
+ 0x00A7B9,
+ 0x00A7BB,
+ 0x00A7BD,
+ 0x00A7C3,
+ 0x00A7C8
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x0000B4],
+ [0x0000B6, 0x0000BF],
+ [0x0000E0, 0x0000FF],
+ [0x000137, 0x000138],
+ [0x00018C, 0x00018D],
+ [0x000199, 0x00019B],
+ [0x0001AA, 0x0001AB],
+ [0x0001B9, 0x0001BB],
+ [0x0001BD, 0x0001C3],
+ [0x0001DC, 0x0001DD],
+ [0x0001EF, 0x0001F0],
+ [0x000233, 0x000239],
+ [0x00023F, 0x000240],
+ [0x00024F, 0x000344],
+ [0x000346, 0x00036F],
+ [0x000373, 0x000375],
+ [0x000377, 0x00037E],
+ [0x000380, 0x000385],
+ [0x0003AC, 0x0003C1],
+ [0x0003C3, 0x0003CE],
+ [0x0003D2, 0x0003D4],
+ [0x0003F2, 0x0003F3],
+ [0x0003FB, 0x0003FC],
+ [0x000430, 0x00045F],
+ [0x000481, 0x000489],
+ [0x0004CE, 0x0004CF],
+ [0x00052F, 0x000530],
+ [0x000557, 0x000586],
+ [0x000588, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0013F7],
+ [0x0013FE, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001DFF],
+ [0x001E95, 0x001E99],
+ [0x001E9C, 0x001E9D],
+ [0x001EFF, 0x001F07],
+ [0x001F10, 0x001F17],
+ [0x001F1E, 0x001F27],
+ [0x001F30, 0x001F37],
+ [0x001F40, 0x001F47],
+ [0x001F4E, 0x001F58],
+ [0x001F60, 0x001F67],
+ [0x001F70, 0x001F7F],
+ [0x001FB0, 0x001FB1],
+ [0x001FB5, 0x001FB6],
+ [0x001FBD, 0x001FC1],
+ [0x001FC5, 0x001FC6],
+ [0x001FCD, 0x001FD7],
+ [0x001FDC, 0x001FE7],
+ [0x001FED, 0x001FF1],
+ [0x001FF5, 0x001FF6],
+ [0x001FFD, 0x002125],
+ [0x002127, 0x002129],
+ [0x00212C, 0x002131],
+ [0x002133, 0x00215F],
+ [0x002170, 0x002182],
+ [0x002184, 0x0024B5],
+ [0x0024D0, 0x002BFF],
+ [0x002C2F, 0x002C5F],
+ [0x002C65, 0x002C66],
+ [0x002C73, 0x002C74],
+ [0x002C76, 0x002C7D],
+ [0x002CE3, 0x002CEA],
+ [0x002CEE, 0x002CF1],
+ [0x002CF3, 0x00A63F],
+ [0x00A66D, 0x00A67F],
+ [0x00A69B, 0x00A721],
+ [0x00A72F, 0x00A731],
+ [0x00A76F, 0x00A778],
+ [0x00A787, 0x00A78A],
+ [0x00A78E, 0x00A78F],
+ [0x00A793, 0x00A795],
+ [0x00A7BF, 0x00A7C1],
+ [0x00A7CA, 0x00A7F4],
+ [0x00A7F6, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FF20],
+ [0x00FF3B, 0x0103FF],
+ [0x010428, 0x0104AF],
+ [0x0104D4, 0x010C7F],
+ [0x010CB3, 0x01189F],
+ [0x0118C0, 0x016E3F],
+ [0x016E60, 0x01E8FF],
+ [0x01E922, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Changes_When_Casefolded}+$/u,
+ nonMatchSymbols,
+ "\\P{Changes_When_Casefolded}"
+);
+testPropertyEscapes(
+ /^\P{CWCF}+$/u,
+ nonMatchSymbols,
+ "\\P{CWCF}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casemapped.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casemapped.js
new file mode 100644
index 0000000000..166d831e5f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casemapped.js
@@ -0,0 +1,301 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Changes_When_Casemapped`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000B5,
+ 0x0001BF,
+ 0x000259,
+ 0x000263,
+ 0x00026F,
+ 0x000275,
+ 0x00027D,
+ 0x000280,
+ 0x000292,
+ 0x000345,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001D79,
+ 0x001D7D,
+ 0x001D8E,
+ 0x001E9E,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001FBE,
+ 0x002126,
+ 0x002132,
+ 0x00214E,
+ 0x002D27,
+ 0x002D2D,
+ 0x00AB53
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x000137],
+ [0x000139, 0x00018C],
+ [0x00018E, 0x00019A],
+ [0x00019C, 0x0001A9],
+ [0x0001AC, 0x0001B9],
+ [0x0001BC, 0x0001BD],
+ [0x0001C4, 0x000220],
+ [0x000222, 0x000233],
+ [0x00023A, 0x000254],
+ [0x000256, 0x000257],
+ [0x00025B, 0x00025C],
+ [0x000260, 0x000261],
+ [0x000265, 0x000266],
+ [0x000268, 0x00026C],
+ [0x000271, 0x000272],
+ [0x000282, 0x000283],
+ [0x000287, 0x00028C],
+ [0x00029D, 0x00029E],
+ [0x000370, 0x000373],
+ [0x000376, 0x000377],
+ [0x00037B, 0x00037D],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003D1],
+ [0x0003D5, 0x0003F5],
+ [0x0003F7, 0x0003FB],
+ [0x0003FD, 0x000481],
+ [0x00048A, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000561, 0x000587],
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FA],
+ [0x0010FD, 0x0010FF],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001E00, 0x001E9B],
+ [0x001EA0, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FBC],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FCC],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FE0, 0x001FEC],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFC],
+ [0x00212A, 0x00212B],
+ [0x002160, 0x00217F],
+ [0x002183, 0x002184],
+ [0x0024B6, 0x0024E9],
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002C70],
+ [0x002C72, 0x002C73],
+ [0x002C75, 0x002C76],
+ [0x002C7E, 0x002CE3],
+ [0x002CEB, 0x002CEE],
+ [0x002CF2, 0x002CF3],
+ [0x002D00, 0x002D25],
+ [0x00A640, 0x00A66D],
+ [0x00A680, 0x00A69B],
+ [0x00A722, 0x00A72F],
+ [0x00A732, 0x00A76F],
+ [0x00A779, 0x00A787],
+ [0x00A78B, 0x00A78D],
+ [0x00A790, 0x00A794],
+ [0x00A796, 0x00A7AE],
+ [0x00A7B0, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A7F6],
+ [0x00AB70, 0x00ABBF],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x010400, 0x01044F],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x0118A0, 0x0118DF],
+ [0x016E40, 0x016E7F],
+ [0x01E900, 0x01E943]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Changes_When_Casemapped}+$/u,
+ matchSymbols,
+ "\\p{Changes_When_Casemapped}"
+);
+testPropertyEscapes(
+ /^\p{CWCM}+$/u,
+ matchSymbols,
+ "\\p{CWCM}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x000138,
+ 0x00018D,
+ 0x00019B,
+ 0x0001BE,
+ 0x000221,
+ 0x000255,
+ 0x000258,
+ 0x00025A,
+ 0x000262,
+ 0x000264,
+ 0x000267,
+ 0x000270,
+ 0x000281,
+ 0x00037E,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x0003F6,
+ 0x0003FC,
+ 0x000530,
+ 0x0010C6,
+ 0x001E9F,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FBD,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002C71,
+ 0x002C74,
+ 0x002D26,
+ 0x00A795,
+ 0x00A7AF
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000B4],
+ [0x0000B6, 0x0000BF],
+ [0x0001AA, 0x0001AB],
+ [0x0001BA, 0x0001BB],
+ [0x0001C0, 0x0001C3],
+ [0x000234, 0x000239],
+ [0x00025D, 0x00025F],
+ [0x00026D, 0x00026E],
+ [0x000273, 0x000274],
+ [0x000276, 0x00027C],
+ [0x00027E, 0x00027F],
+ [0x000284, 0x000286],
+ [0x00028D, 0x000291],
+ [0x000293, 0x00029C],
+ [0x00029F, 0x000344],
+ [0x000346, 0x00036F],
+ [0x000374, 0x000375],
+ [0x000378, 0x00037A],
+ [0x000380, 0x000385],
+ [0x0003D2, 0x0003D4],
+ [0x000482, 0x000489],
+ [0x000557, 0x000560],
+ [0x000588, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x0010FB, 0x0010FC],
+ [0x001100, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001D78],
+ [0x001D7A, 0x001D7C],
+ [0x001D7E, 0x001D8D],
+ [0x001D8F, 0x001DFF],
+ [0x001E9C, 0x001E9D],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FDC, 0x001FDF],
+ [0x001FED, 0x001FF1],
+ [0x001FFD, 0x002125],
+ [0x002127, 0x002129],
+ [0x00212C, 0x002131],
+ [0x002133, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002180, 0x002182],
+ [0x002185, 0x0024B5],
+ [0x0024EA, 0x002BFF],
+ [0x002C77, 0x002C7D],
+ [0x002CE4, 0x002CEA],
+ [0x002CEF, 0x002CF1],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x00A63F],
+ [0x00A66E, 0x00A67F],
+ [0x00A69C, 0x00A721],
+ [0x00A730, 0x00A731],
+ [0x00A770, 0x00A778],
+ [0x00A788, 0x00A78A],
+ [0x00A78E, 0x00A78F],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A7F7, 0x00AB52],
+ [0x00AB54, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x0103FF],
+ [0x010450, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x01189F],
+ [0x0118E0, 0x016E3F],
+ [0x016E80, 0x01E8FF],
+ [0x01E944, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Changes_When_Casemapped}+$/u,
+ nonMatchSymbols,
+ "\\P{Changes_When_Casemapped}"
+);
+testPropertyEscapes(
+ /^\P{CWCM}+$/u,
+ nonMatchSymbols,
+ "\\P{CWCM}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Lowercased.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Lowercased.js
new file mode 100644
index 0000000000..ed9169d23a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Lowercased.js
@@ -0,0 +1,1255 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Changes_When_Lowercased`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000100,
+ 0x000102,
+ 0x000104,
+ 0x000106,
+ 0x000108,
+ 0x00010A,
+ 0x00010C,
+ 0x00010E,
+ 0x000110,
+ 0x000112,
+ 0x000114,
+ 0x000116,
+ 0x000118,
+ 0x00011A,
+ 0x00011C,
+ 0x00011E,
+ 0x000120,
+ 0x000122,
+ 0x000124,
+ 0x000126,
+ 0x000128,
+ 0x00012A,
+ 0x00012C,
+ 0x00012E,
+ 0x000130,
+ 0x000132,
+ 0x000134,
+ 0x000136,
+ 0x000139,
+ 0x00013B,
+ 0x00013D,
+ 0x00013F,
+ 0x000141,
+ 0x000143,
+ 0x000145,
+ 0x000147,
+ 0x00014A,
+ 0x00014C,
+ 0x00014E,
+ 0x000150,
+ 0x000152,
+ 0x000154,
+ 0x000156,
+ 0x000158,
+ 0x00015A,
+ 0x00015C,
+ 0x00015E,
+ 0x000160,
+ 0x000162,
+ 0x000164,
+ 0x000166,
+ 0x000168,
+ 0x00016A,
+ 0x00016C,
+ 0x00016E,
+ 0x000170,
+ 0x000172,
+ 0x000174,
+ 0x000176,
+ 0x00017B,
+ 0x00017D,
+ 0x000184,
+ 0x0001A2,
+ 0x0001A4,
+ 0x0001A9,
+ 0x0001AC,
+ 0x0001B5,
+ 0x0001BC,
+ 0x0001CD,
+ 0x0001CF,
+ 0x0001D1,
+ 0x0001D3,
+ 0x0001D5,
+ 0x0001D7,
+ 0x0001D9,
+ 0x0001DB,
+ 0x0001DE,
+ 0x0001E0,
+ 0x0001E2,
+ 0x0001E4,
+ 0x0001E6,
+ 0x0001E8,
+ 0x0001EA,
+ 0x0001EC,
+ 0x0001EE,
+ 0x0001F4,
+ 0x0001FA,
+ 0x0001FC,
+ 0x0001FE,
+ 0x000200,
+ 0x000202,
+ 0x000204,
+ 0x000206,
+ 0x000208,
+ 0x00020A,
+ 0x00020C,
+ 0x00020E,
+ 0x000210,
+ 0x000212,
+ 0x000214,
+ 0x000216,
+ 0x000218,
+ 0x00021A,
+ 0x00021C,
+ 0x00021E,
+ 0x000220,
+ 0x000222,
+ 0x000224,
+ 0x000226,
+ 0x000228,
+ 0x00022A,
+ 0x00022C,
+ 0x00022E,
+ 0x000230,
+ 0x000232,
+ 0x000241,
+ 0x000248,
+ 0x00024A,
+ 0x00024C,
+ 0x00024E,
+ 0x000370,
+ 0x000372,
+ 0x000376,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x0003CF,
+ 0x0003D8,
+ 0x0003DA,
+ 0x0003DC,
+ 0x0003DE,
+ 0x0003E0,
+ 0x0003E2,
+ 0x0003E4,
+ 0x0003E6,
+ 0x0003E8,
+ 0x0003EA,
+ 0x0003EC,
+ 0x0003EE,
+ 0x0003F4,
+ 0x0003F7,
+ 0x000460,
+ 0x000462,
+ 0x000464,
+ 0x000466,
+ 0x000468,
+ 0x00046A,
+ 0x00046C,
+ 0x00046E,
+ 0x000470,
+ 0x000472,
+ 0x000474,
+ 0x000476,
+ 0x000478,
+ 0x00047A,
+ 0x00047C,
+ 0x00047E,
+ 0x000480,
+ 0x00048A,
+ 0x00048C,
+ 0x00048E,
+ 0x000490,
+ 0x000492,
+ 0x000494,
+ 0x000496,
+ 0x000498,
+ 0x00049A,
+ 0x00049C,
+ 0x00049E,
+ 0x0004A0,
+ 0x0004A2,
+ 0x0004A4,
+ 0x0004A6,
+ 0x0004A8,
+ 0x0004AA,
+ 0x0004AC,
+ 0x0004AE,
+ 0x0004B0,
+ 0x0004B2,
+ 0x0004B4,
+ 0x0004B6,
+ 0x0004B8,
+ 0x0004BA,
+ 0x0004BC,
+ 0x0004BE,
+ 0x0004C3,
+ 0x0004C5,
+ 0x0004C7,
+ 0x0004C9,
+ 0x0004CB,
+ 0x0004CD,
+ 0x0004D0,
+ 0x0004D2,
+ 0x0004D4,
+ 0x0004D6,
+ 0x0004D8,
+ 0x0004DA,
+ 0x0004DC,
+ 0x0004DE,
+ 0x0004E0,
+ 0x0004E2,
+ 0x0004E4,
+ 0x0004E6,
+ 0x0004E8,
+ 0x0004EA,
+ 0x0004EC,
+ 0x0004EE,
+ 0x0004F0,
+ 0x0004F2,
+ 0x0004F4,
+ 0x0004F6,
+ 0x0004F8,
+ 0x0004FA,
+ 0x0004FC,
+ 0x0004FE,
+ 0x000500,
+ 0x000502,
+ 0x000504,
+ 0x000506,
+ 0x000508,
+ 0x00050A,
+ 0x00050C,
+ 0x00050E,
+ 0x000510,
+ 0x000512,
+ 0x000514,
+ 0x000516,
+ 0x000518,
+ 0x00051A,
+ 0x00051C,
+ 0x00051E,
+ 0x000520,
+ 0x000522,
+ 0x000524,
+ 0x000526,
+ 0x000528,
+ 0x00052A,
+ 0x00052C,
+ 0x00052E,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001E00,
+ 0x001E02,
+ 0x001E04,
+ 0x001E06,
+ 0x001E08,
+ 0x001E0A,
+ 0x001E0C,
+ 0x001E0E,
+ 0x001E10,
+ 0x001E12,
+ 0x001E14,
+ 0x001E16,
+ 0x001E18,
+ 0x001E1A,
+ 0x001E1C,
+ 0x001E1E,
+ 0x001E20,
+ 0x001E22,
+ 0x001E24,
+ 0x001E26,
+ 0x001E28,
+ 0x001E2A,
+ 0x001E2C,
+ 0x001E2E,
+ 0x001E30,
+ 0x001E32,
+ 0x001E34,
+ 0x001E36,
+ 0x001E38,
+ 0x001E3A,
+ 0x001E3C,
+ 0x001E3E,
+ 0x001E40,
+ 0x001E42,
+ 0x001E44,
+ 0x001E46,
+ 0x001E48,
+ 0x001E4A,
+ 0x001E4C,
+ 0x001E4E,
+ 0x001E50,
+ 0x001E52,
+ 0x001E54,
+ 0x001E56,
+ 0x001E58,
+ 0x001E5A,
+ 0x001E5C,
+ 0x001E5E,
+ 0x001E60,
+ 0x001E62,
+ 0x001E64,
+ 0x001E66,
+ 0x001E68,
+ 0x001E6A,
+ 0x001E6C,
+ 0x001E6E,
+ 0x001E70,
+ 0x001E72,
+ 0x001E74,
+ 0x001E76,
+ 0x001E78,
+ 0x001E7A,
+ 0x001E7C,
+ 0x001E7E,
+ 0x001E80,
+ 0x001E82,
+ 0x001E84,
+ 0x001E86,
+ 0x001E88,
+ 0x001E8A,
+ 0x001E8C,
+ 0x001E8E,
+ 0x001E90,
+ 0x001E92,
+ 0x001E94,
+ 0x001E9E,
+ 0x001EA0,
+ 0x001EA2,
+ 0x001EA4,
+ 0x001EA6,
+ 0x001EA8,
+ 0x001EAA,
+ 0x001EAC,
+ 0x001EAE,
+ 0x001EB0,
+ 0x001EB2,
+ 0x001EB4,
+ 0x001EB6,
+ 0x001EB8,
+ 0x001EBA,
+ 0x001EBC,
+ 0x001EBE,
+ 0x001EC0,
+ 0x001EC2,
+ 0x001EC4,
+ 0x001EC6,
+ 0x001EC8,
+ 0x001ECA,
+ 0x001ECC,
+ 0x001ECE,
+ 0x001ED0,
+ 0x001ED2,
+ 0x001ED4,
+ 0x001ED6,
+ 0x001ED8,
+ 0x001EDA,
+ 0x001EDC,
+ 0x001EDE,
+ 0x001EE0,
+ 0x001EE2,
+ 0x001EE4,
+ 0x001EE6,
+ 0x001EE8,
+ 0x001EEA,
+ 0x001EEC,
+ 0x001EEE,
+ 0x001EF0,
+ 0x001EF2,
+ 0x001EF4,
+ 0x001EF6,
+ 0x001EF8,
+ 0x001EFA,
+ 0x001EFC,
+ 0x001EFE,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001F5F,
+ 0x002126,
+ 0x002132,
+ 0x002183,
+ 0x002C60,
+ 0x002C67,
+ 0x002C69,
+ 0x002C6B,
+ 0x002C72,
+ 0x002C75,
+ 0x002C82,
+ 0x002C84,
+ 0x002C86,
+ 0x002C88,
+ 0x002C8A,
+ 0x002C8C,
+ 0x002C8E,
+ 0x002C90,
+ 0x002C92,
+ 0x002C94,
+ 0x002C96,
+ 0x002C98,
+ 0x002C9A,
+ 0x002C9C,
+ 0x002C9E,
+ 0x002CA0,
+ 0x002CA2,
+ 0x002CA4,
+ 0x002CA6,
+ 0x002CA8,
+ 0x002CAA,
+ 0x002CAC,
+ 0x002CAE,
+ 0x002CB0,
+ 0x002CB2,
+ 0x002CB4,
+ 0x002CB6,
+ 0x002CB8,
+ 0x002CBA,
+ 0x002CBC,
+ 0x002CBE,
+ 0x002CC0,
+ 0x002CC2,
+ 0x002CC4,
+ 0x002CC6,
+ 0x002CC8,
+ 0x002CCA,
+ 0x002CCC,
+ 0x002CCE,
+ 0x002CD0,
+ 0x002CD2,
+ 0x002CD4,
+ 0x002CD6,
+ 0x002CD8,
+ 0x002CDA,
+ 0x002CDC,
+ 0x002CDE,
+ 0x002CE0,
+ 0x002CE2,
+ 0x002CEB,
+ 0x002CED,
+ 0x002CF2,
+ 0x00A640,
+ 0x00A642,
+ 0x00A644,
+ 0x00A646,
+ 0x00A648,
+ 0x00A64A,
+ 0x00A64C,
+ 0x00A64E,
+ 0x00A650,
+ 0x00A652,
+ 0x00A654,
+ 0x00A656,
+ 0x00A658,
+ 0x00A65A,
+ 0x00A65C,
+ 0x00A65E,
+ 0x00A660,
+ 0x00A662,
+ 0x00A664,
+ 0x00A666,
+ 0x00A668,
+ 0x00A66A,
+ 0x00A66C,
+ 0x00A680,
+ 0x00A682,
+ 0x00A684,
+ 0x00A686,
+ 0x00A688,
+ 0x00A68A,
+ 0x00A68C,
+ 0x00A68E,
+ 0x00A690,
+ 0x00A692,
+ 0x00A694,
+ 0x00A696,
+ 0x00A698,
+ 0x00A69A,
+ 0x00A722,
+ 0x00A724,
+ 0x00A726,
+ 0x00A728,
+ 0x00A72A,
+ 0x00A72C,
+ 0x00A72E,
+ 0x00A732,
+ 0x00A734,
+ 0x00A736,
+ 0x00A738,
+ 0x00A73A,
+ 0x00A73C,
+ 0x00A73E,
+ 0x00A740,
+ 0x00A742,
+ 0x00A744,
+ 0x00A746,
+ 0x00A748,
+ 0x00A74A,
+ 0x00A74C,
+ 0x00A74E,
+ 0x00A750,
+ 0x00A752,
+ 0x00A754,
+ 0x00A756,
+ 0x00A758,
+ 0x00A75A,
+ 0x00A75C,
+ 0x00A75E,
+ 0x00A760,
+ 0x00A762,
+ 0x00A764,
+ 0x00A766,
+ 0x00A768,
+ 0x00A76A,
+ 0x00A76C,
+ 0x00A76E,
+ 0x00A779,
+ 0x00A77B,
+ 0x00A780,
+ 0x00A782,
+ 0x00A784,
+ 0x00A786,
+ 0x00A78B,
+ 0x00A78D,
+ 0x00A790,
+ 0x00A792,
+ 0x00A796,
+ 0x00A798,
+ 0x00A79A,
+ 0x00A79C,
+ 0x00A79E,
+ 0x00A7A0,
+ 0x00A7A2,
+ 0x00A7A4,
+ 0x00A7A6,
+ 0x00A7A8,
+ 0x00A7B6,
+ 0x00A7B8,
+ 0x00A7BA,
+ 0x00A7BC,
+ 0x00A7BE,
+ 0x00A7C2,
+ 0x00A7C9,
+ 0x00A7F5
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000DE],
+ [0x000178, 0x000179],
+ [0x000181, 0x000182],
+ [0x000186, 0x000187],
+ [0x000189, 0x00018B],
+ [0x00018E, 0x000191],
+ [0x000193, 0x000194],
+ [0x000196, 0x000198],
+ [0x00019C, 0x00019D],
+ [0x00019F, 0x0001A0],
+ [0x0001A6, 0x0001A7],
+ [0x0001AE, 0x0001AF],
+ [0x0001B1, 0x0001B3],
+ [0x0001B7, 0x0001B8],
+ [0x0001C4, 0x0001C5],
+ [0x0001C7, 0x0001C8],
+ [0x0001CA, 0x0001CB],
+ [0x0001F1, 0x0001F2],
+ [0x0001F6, 0x0001F8],
+ [0x00023A, 0x00023B],
+ [0x00023D, 0x00023E],
+ [0x000243, 0x000246],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x00038F],
+ [0x000391, 0x0003A1],
+ [0x0003A3, 0x0003AB],
+ [0x0003F9, 0x0003FA],
+ [0x0003FD, 0x00042F],
+ [0x0004C0, 0x0004C1],
+ [0x000531, 0x000556],
+ [0x0010A0, 0x0010C5],
+ [0x0013A0, 0x0013F5],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001F08, 0x001F0F],
+ [0x001F18, 0x001F1D],
+ [0x001F28, 0x001F2F],
+ [0x001F38, 0x001F3F],
+ [0x001F48, 0x001F4D],
+ [0x001F68, 0x001F6F],
+ [0x001F88, 0x001F8F],
+ [0x001F98, 0x001F9F],
+ [0x001FA8, 0x001FAF],
+ [0x001FB8, 0x001FBC],
+ [0x001FC8, 0x001FCC],
+ [0x001FD8, 0x001FDB],
+ [0x001FE8, 0x001FEC],
+ [0x001FF8, 0x001FFC],
+ [0x00212A, 0x00212B],
+ [0x002160, 0x00216F],
+ [0x0024B6, 0x0024CF],
+ [0x002C00, 0x002C2E],
+ [0x002C62, 0x002C64],
+ [0x002C6D, 0x002C70],
+ [0x002C7E, 0x002C80],
+ [0x00A77D, 0x00A77E],
+ [0x00A7AA, 0x00A7AE],
+ [0x00A7B0, 0x00A7B4],
+ [0x00A7C4, 0x00A7C7],
+ [0x00FF21, 0x00FF3A],
+ [0x010400, 0x010427],
+ [0x0104B0, 0x0104D3],
+ [0x010C80, 0x010CB2],
+ [0x0118A0, 0x0118BF],
+ [0x016E40, 0x016E5F],
+ [0x01E900, 0x01E921]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Changes_When_Lowercased}+$/u,
+ matchSymbols,
+ "\\p{Changes_When_Lowercased}"
+);
+testPropertyEscapes(
+ /^\p{CWL}+$/u,
+ matchSymbols,
+ "\\p{CWL}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x000101,
+ 0x000103,
+ 0x000105,
+ 0x000107,
+ 0x000109,
+ 0x00010B,
+ 0x00010D,
+ 0x00010F,
+ 0x000111,
+ 0x000113,
+ 0x000115,
+ 0x000117,
+ 0x000119,
+ 0x00011B,
+ 0x00011D,
+ 0x00011F,
+ 0x000121,
+ 0x000123,
+ 0x000125,
+ 0x000127,
+ 0x000129,
+ 0x00012B,
+ 0x00012D,
+ 0x00012F,
+ 0x000131,
+ 0x000133,
+ 0x000135,
+ 0x00013A,
+ 0x00013C,
+ 0x00013E,
+ 0x000140,
+ 0x000142,
+ 0x000144,
+ 0x000146,
+ 0x00014B,
+ 0x00014D,
+ 0x00014F,
+ 0x000151,
+ 0x000153,
+ 0x000155,
+ 0x000157,
+ 0x000159,
+ 0x00015B,
+ 0x00015D,
+ 0x00015F,
+ 0x000161,
+ 0x000163,
+ 0x000165,
+ 0x000167,
+ 0x000169,
+ 0x00016B,
+ 0x00016D,
+ 0x00016F,
+ 0x000171,
+ 0x000173,
+ 0x000175,
+ 0x000177,
+ 0x00017A,
+ 0x00017C,
+ 0x000183,
+ 0x000185,
+ 0x000188,
+ 0x000192,
+ 0x000195,
+ 0x00019E,
+ 0x0001A1,
+ 0x0001A3,
+ 0x0001A5,
+ 0x0001A8,
+ 0x0001AD,
+ 0x0001B0,
+ 0x0001B4,
+ 0x0001B6,
+ 0x0001C6,
+ 0x0001C9,
+ 0x0001CC,
+ 0x0001CE,
+ 0x0001D0,
+ 0x0001D2,
+ 0x0001D4,
+ 0x0001D6,
+ 0x0001D8,
+ 0x0001DA,
+ 0x0001DF,
+ 0x0001E1,
+ 0x0001E3,
+ 0x0001E5,
+ 0x0001E7,
+ 0x0001E9,
+ 0x0001EB,
+ 0x0001ED,
+ 0x0001F3,
+ 0x0001F5,
+ 0x0001F9,
+ 0x0001FB,
+ 0x0001FD,
+ 0x0001FF,
+ 0x000201,
+ 0x000203,
+ 0x000205,
+ 0x000207,
+ 0x000209,
+ 0x00020B,
+ 0x00020D,
+ 0x00020F,
+ 0x000211,
+ 0x000213,
+ 0x000215,
+ 0x000217,
+ 0x000219,
+ 0x00021B,
+ 0x00021D,
+ 0x00021F,
+ 0x000221,
+ 0x000223,
+ 0x000225,
+ 0x000227,
+ 0x000229,
+ 0x00022B,
+ 0x00022D,
+ 0x00022F,
+ 0x000231,
+ 0x00023C,
+ 0x000242,
+ 0x000247,
+ 0x000249,
+ 0x00024B,
+ 0x00024D,
+ 0x000371,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x000390,
+ 0x0003A2,
+ 0x0003D9,
+ 0x0003DB,
+ 0x0003DD,
+ 0x0003DF,
+ 0x0003E1,
+ 0x0003E3,
+ 0x0003E5,
+ 0x0003E7,
+ 0x0003E9,
+ 0x0003EB,
+ 0x0003ED,
+ 0x0003F8,
+ 0x000461,
+ 0x000463,
+ 0x000465,
+ 0x000467,
+ 0x000469,
+ 0x00046B,
+ 0x00046D,
+ 0x00046F,
+ 0x000471,
+ 0x000473,
+ 0x000475,
+ 0x000477,
+ 0x000479,
+ 0x00047B,
+ 0x00047D,
+ 0x00047F,
+ 0x00048B,
+ 0x00048D,
+ 0x00048F,
+ 0x000491,
+ 0x000493,
+ 0x000495,
+ 0x000497,
+ 0x000499,
+ 0x00049B,
+ 0x00049D,
+ 0x00049F,
+ 0x0004A1,
+ 0x0004A3,
+ 0x0004A5,
+ 0x0004A7,
+ 0x0004A9,
+ 0x0004AB,
+ 0x0004AD,
+ 0x0004AF,
+ 0x0004B1,
+ 0x0004B3,
+ 0x0004B5,
+ 0x0004B7,
+ 0x0004B9,
+ 0x0004BB,
+ 0x0004BD,
+ 0x0004BF,
+ 0x0004C2,
+ 0x0004C4,
+ 0x0004C6,
+ 0x0004C8,
+ 0x0004CA,
+ 0x0004CC,
+ 0x0004D1,
+ 0x0004D3,
+ 0x0004D5,
+ 0x0004D7,
+ 0x0004D9,
+ 0x0004DB,
+ 0x0004DD,
+ 0x0004DF,
+ 0x0004E1,
+ 0x0004E3,
+ 0x0004E5,
+ 0x0004E7,
+ 0x0004E9,
+ 0x0004EB,
+ 0x0004ED,
+ 0x0004EF,
+ 0x0004F1,
+ 0x0004F3,
+ 0x0004F5,
+ 0x0004F7,
+ 0x0004F9,
+ 0x0004FB,
+ 0x0004FD,
+ 0x0004FF,
+ 0x000501,
+ 0x000503,
+ 0x000505,
+ 0x000507,
+ 0x000509,
+ 0x00050B,
+ 0x00050D,
+ 0x00050F,
+ 0x000511,
+ 0x000513,
+ 0x000515,
+ 0x000517,
+ 0x000519,
+ 0x00051B,
+ 0x00051D,
+ 0x00051F,
+ 0x000521,
+ 0x000523,
+ 0x000525,
+ 0x000527,
+ 0x000529,
+ 0x00052B,
+ 0x00052D,
+ 0x0010C6,
+ 0x001E01,
+ 0x001E03,
+ 0x001E05,
+ 0x001E07,
+ 0x001E09,
+ 0x001E0B,
+ 0x001E0D,
+ 0x001E0F,
+ 0x001E11,
+ 0x001E13,
+ 0x001E15,
+ 0x001E17,
+ 0x001E19,
+ 0x001E1B,
+ 0x001E1D,
+ 0x001E1F,
+ 0x001E21,
+ 0x001E23,
+ 0x001E25,
+ 0x001E27,
+ 0x001E29,
+ 0x001E2B,
+ 0x001E2D,
+ 0x001E2F,
+ 0x001E31,
+ 0x001E33,
+ 0x001E35,
+ 0x001E37,
+ 0x001E39,
+ 0x001E3B,
+ 0x001E3D,
+ 0x001E3F,
+ 0x001E41,
+ 0x001E43,
+ 0x001E45,
+ 0x001E47,
+ 0x001E49,
+ 0x001E4B,
+ 0x001E4D,
+ 0x001E4F,
+ 0x001E51,
+ 0x001E53,
+ 0x001E55,
+ 0x001E57,
+ 0x001E59,
+ 0x001E5B,
+ 0x001E5D,
+ 0x001E5F,
+ 0x001E61,
+ 0x001E63,
+ 0x001E65,
+ 0x001E67,
+ 0x001E69,
+ 0x001E6B,
+ 0x001E6D,
+ 0x001E6F,
+ 0x001E71,
+ 0x001E73,
+ 0x001E75,
+ 0x001E77,
+ 0x001E79,
+ 0x001E7B,
+ 0x001E7D,
+ 0x001E7F,
+ 0x001E81,
+ 0x001E83,
+ 0x001E85,
+ 0x001E87,
+ 0x001E89,
+ 0x001E8B,
+ 0x001E8D,
+ 0x001E8F,
+ 0x001E91,
+ 0x001E93,
+ 0x001E9F,
+ 0x001EA1,
+ 0x001EA3,
+ 0x001EA5,
+ 0x001EA7,
+ 0x001EA9,
+ 0x001EAB,
+ 0x001EAD,
+ 0x001EAF,
+ 0x001EB1,
+ 0x001EB3,
+ 0x001EB5,
+ 0x001EB7,
+ 0x001EB9,
+ 0x001EBB,
+ 0x001EBD,
+ 0x001EBF,
+ 0x001EC1,
+ 0x001EC3,
+ 0x001EC5,
+ 0x001EC7,
+ 0x001EC9,
+ 0x001ECB,
+ 0x001ECD,
+ 0x001ECF,
+ 0x001ED1,
+ 0x001ED3,
+ 0x001ED5,
+ 0x001ED7,
+ 0x001ED9,
+ 0x001EDB,
+ 0x001EDD,
+ 0x001EDF,
+ 0x001EE1,
+ 0x001EE3,
+ 0x001EE5,
+ 0x001EE7,
+ 0x001EE9,
+ 0x001EEB,
+ 0x001EED,
+ 0x001EEF,
+ 0x001EF1,
+ 0x001EF3,
+ 0x001EF5,
+ 0x001EF7,
+ 0x001EF9,
+ 0x001EFB,
+ 0x001EFD,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x002C61,
+ 0x002C68,
+ 0x002C6A,
+ 0x002C6C,
+ 0x002C71,
+ 0x002C81,
+ 0x002C83,
+ 0x002C85,
+ 0x002C87,
+ 0x002C89,
+ 0x002C8B,
+ 0x002C8D,
+ 0x002C8F,
+ 0x002C91,
+ 0x002C93,
+ 0x002C95,
+ 0x002C97,
+ 0x002C99,
+ 0x002C9B,
+ 0x002C9D,
+ 0x002C9F,
+ 0x002CA1,
+ 0x002CA3,
+ 0x002CA5,
+ 0x002CA7,
+ 0x002CA9,
+ 0x002CAB,
+ 0x002CAD,
+ 0x002CAF,
+ 0x002CB1,
+ 0x002CB3,
+ 0x002CB5,
+ 0x002CB7,
+ 0x002CB9,
+ 0x002CBB,
+ 0x002CBD,
+ 0x002CBF,
+ 0x002CC1,
+ 0x002CC3,
+ 0x002CC5,
+ 0x002CC7,
+ 0x002CC9,
+ 0x002CCB,
+ 0x002CCD,
+ 0x002CCF,
+ 0x002CD1,
+ 0x002CD3,
+ 0x002CD5,
+ 0x002CD7,
+ 0x002CD9,
+ 0x002CDB,
+ 0x002CDD,
+ 0x002CDF,
+ 0x002CE1,
+ 0x002CEC,
+ 0x00A641,
+ 0x00A643,
+ 0x00A645,
+ 0x00A647,
+ 0x00A649,
+ 0x00A64B,
+ 0x00A64D,
+ 0x00A64F,
+ 0x00A651,
+ 0x00A653,
+ 0x00A655,
+ 0x00A657,
+ 0x00A659,
+ 0x00A65B,
+ 0x00A65D,
+ 0x00A65F,
+ 0x00A661,
+ 0x00A663,
+ 0x00A665,
+ 0x00A667,
+ 0x00A669,
+ 0x00A66B,
+ 0x00A681,
+ 0x00A683,
+ 0x00A685,
+ 0x00A687,
+ 0x00A689,
+ 0x00A68B,
+ 0x00A68D,
+ 0x00A68F,
+ 0x00A691,
+ 0x00A693,
+ 0x00A695,
+ 0x00A697,
+ 0x00A699,
+ 0x00A723,
+ 0x00A725,
+ 0x00A727,
+ 0x00A729,
+ 0x00A72B,
+ 0x00A72D,
+ 0x00A733,
+ 0x00A735,
+ 0x00A737,
+ 0x00A739,
+ 0x00A73B,
+ 0x00A73D,
+ 0x00A73F,
+ 0x00A741,
+ 0x00A743,
+ 0x00A745,
+ 0x00A747,
+ 0x00A749,
+ 0x00A74B,
+ 0x00A74D,
+ 0x00A74F,
+ 0x00A751,
+ 0x00A753,
+ 0x00A755,
+ 0x00A757,
+ 0x00A759,
+ 0x00A75B,
+ 0x00A75D,
+ 0x00A75F,
+ 0x00A761,
+ 0x00A763,
+ 0x00A765,
+ 0x00A767,
+ 0x00A769,
+ 0x00A76B,
+ 0x00A76D,
+ 0x00A77A,
+ 0x00A77C,
+ 0x00A77F,
+ 0x00A781,
+ 0x00A783,
+ 0x00A785,
+ 0x00A78C,
+ 0x00A791,
+ 0x00A797,
+ 0x00A799,
+ 0x00A79B,
+ 0x00A79D,
+ 0x00A79F,
+ 0x00A7A1,
+ 0x00A7A3,
+ 0x00A7A5,
+ 0x00A7A7,
+ 0x00A7A9,
+ 0x00A7AF,
+ 0x00A7B5,
+ 0x00A7B7,
+ 0x00A7B9,
+ 0x00A7BB,
+ 0x00A7BD,
+ 0x00A7C3,
+ 0x00A7C8
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x0000BF],
+ [0x0000DF, 0x0000FF],
+ [0x000137, 0x000138],
+ [0x000148, 0x000149],
+ [0x00017E, 0x000180],
+ [0x00018C, 0x00018D],
+ [0x000199, 0x00019B],
+ [0x0001AA, 0x0001AB],
+ [0x0001B9, 0x0001BB],
+ [0x0001BD, 0x0001C3],
+ [0x0001DC, 0x0001DD],
+ [0x0001EF, 0x0001F0],
+ [0x000233, 0x000239],
+ [0x00023F, 0x000240],
+ [0x00024F, 0x00036F],
+ [0x000373, 0x000375],
+ [0x000377, 0x00037E],
+ [0x000380, 0x000385],
+ [0x0003AC, 0x0003CE],
+ [0x0003D0, 0x0003D7],
+ [0x0003EF, 0x0003F3],
+ [0x0003F5, 0x0003F6],
+ [0x0003FB, 0x0003FC],
+ [0x000430, 0x00045F],
+ [0x000481, 0x000489],
+ [0x0004CE, 0x0004CF],
+ [0x00052F, 0x000530],
+ [0x000557, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x00139F],
+ [0x0013F6, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001DFF],
+ [0x001E95, 0x001E9D],
+ [0x001EFF, 0x001F07],
+ [0x001F10, 0x001F17],
+ [0x001F1E, 0x001F27],
+ [0x001F30, 0x001F37],
+ [0x001F40, 0x001F47],
+ [0x001F4E, 0x001F58],
+ [0x001F60, 0x001F67],
+ [0x001F70, 0x001F87],
+ [0x001F90, 0x001F97],
+ [0x001FA0, 0x001FA7],
+ [0x001FB0, 0x001FB7],
+ [0x001FBD, 0x001FC7],
+ [0x001FCD, 0x001FD7],
+ [0x001FDC, 0x001FE7],
+ [0x001FED, 0x001FF7],
+ [0x001FFD, 0x002125],
+ [0x002127, 0x002129],
+ [0x00212C, 0x002131],
+ [0x002133, 0x00215F],
+ [0x002170, 0x002182],
+ [0x002184, 0x0024B5],
+ [0x0024D0, 0x002BFF],
+ [0x002C2F, 0x002C5F],
+ [0x002C65, 0x002C66],
+ [0x002C73, 0x002C74],
+ [0x002C76, 0x002C7D],
+ [0x002CE3, 0x002CEA],
+ [0x002CEE, 0x002CF1],
+ [0x002CF3, 0x00A63F],
+ [0x00A66D, 0x00A67F],
+ [0x00A69B, 0x00A721],
+ [0x00A72F, 0x00A731],
+ [0x00A76F, 0x00A778],
+ [0x00A787, 0x00A78A],
+ [0x00A78E, 0x00A78F],
+ [0x00A793, 0x00A795],
+ [0x00A7BF, 0x00A7C1],
+ [0x00A7CA, 0x00A7F4],
+ [0x00A7F6, 0x00DBFF],
+ [0x00E000, 0x00FF20],
+ [0x00FF3B, 0x0103FF],
+ [0x010428, 0x0104AF],
+ [0x0104D4, 0x010C7F],
+ [0x010CB3, 0x01189F],
+ [0x0118C0, 0x016E3F],
+ [0x016E60, 0x01E8FF],
+ [0x01E922, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Changes_When_Lowercased}+$/u,
+ nonMatchSymbols,
+ "\\P{Changes_When_Lowercased}"
+);
+testPropertyEscapes(
+ /^\P{CWL}+$/u,
+ nonMatchSymbols,
+ "\\P{CWL}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_NFKC_Casefolded.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_NFKC_Casefolded.js
new file mode 100644
index 0000000000..96ee771f12
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_NFKC_Casefolded.js
@@ -0,0 +1,1707 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Changes_When_NFKC_Casefolded`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000A0,
+ 0x0000A8,
+ 0x0000AA,
+ 0x0000AD,
+ 0x0000AF,
+ 0x000100,
+ 0x000102,
+ 0x000104,
+ 0x000106,
+ 0x000108,
+ 0x00010A,
+ 0x00010C,
+ 0x00010E,
+ 0x000110,
+ 0x000112,
+ 0x000114,
+ 0x000116,
+ 0x000118,
+ 0x00011A,
+ 0x00011C,
+ 0x00011E,
+ 0x000120,
+ 0x000122,
+ 0x000124,
+ 0x000126,
+ 0x000128,
+ 0x00012A,
+ 0x00012C,
+ 0x00012E,
+ 0x000130,
+ 0x000136,
+ 0x000139,
+ 0x00013B,
+ 0x00013D,
+ 0x000143,
+ 0x000145,
+ 0x000147,
+ 0x00014C,
+ 0x00014E,
+ 0x000150,
+ 0x000152,
+ 0x000154,
+ 0x000156,
+ 0x000158,
+ 0x00015A,
+ 0x00015C,
+ 0x00015E,
+ 0x000160,
+ 0x000162,
+ 0x000164,
+ 0x000166,
+ 0x000168,
+ 0x00016A,
+ 0x00016C,
+ 0x00016E,
+ 0x000170,
+ 0x000172,
+ 0x000174,
+ 0x000176,
+ 0x00017B,
+ 0x00017D,
+ 0x00017F,
+ 0x000184,
+ 0x0001A2,
+ 0x0001A4,
+ 0x0001A9,
+ 0x0001AC,
+ 0x0001B5,
+ 0x0001BC,
+ 0x0001CF,
+ 0x0001D1,
+ 0x0001D3,
+ 0x0001D5,
+ 0x0001D7,
+ 0x0001D9,
+ 0x0001DB,
+ 0x0001DE,
+ 0x0001E0,
+ 0x0001E2,
+ 0x0001E4,
+ 0x0001E6,
+ 0x0001E8,
+ 0x0001EA,
+ 0x0001EC,
+ 0x0001EE,
+ 0x0001FA,
+ 0x0001FC,
+ 0x0001FE,
+ 0x000200,
+ 0x000202,
+ 0x000204,
+ 0x000206,
+ 0x000208,
+ 0x00020A,
+ 0x00020C,
+ 0x00020E,
+ 0x000210,
+ 0x000212,
+ 0x000214,
+ 0x000216,
+ 0x000218,
+ 0x00021A,
+ 0x00021C,
+ 0x00021E,
+ 0x000220,
+ 0x000222,
+ 0x000224,
+ 0x000226,
+ 0x000228,
+ 0x00022A,
+ 0x00022C,
+ 0x00022E,
+ 0x000230,
+ 0x000232,
+ 0x000241,
+ 0x000248,
+ 0x00024A,
+ 0x00024C,
+ 0x00024E,
+ 0x00034F,
+ 0x000370,
+ 0x000372,
+ 0x000374,
+ 0x000376,
+ 0x00037A,
+ 0x00038C,
+ 0x0003C2,
+ 0x0003D8,
+ 0x0003DA,
+ 0x0003DC,
+ 0x0003DE,
+ 0x0003E0,
+ 0x0003E2,
+ 0x0003E4,
+ 0x0003E6,
+ 0x0003E8,
+ 0x0003EA,
+ 0x0003EC,
+ 0x0003EE,
+ 0x0003F7,
+ 0x000460,
+ 0x000462,
+ 0x000464,
+ 0x000466,
+ 0x000468,
+ 0x00046A,
+ 0x00046C,
+ 0x00046E,
+ 0x000470,
+ 0x000472,
+ 0x000474,
+ 0x000476,
+ 0x000478,
+ 0x00047A,
+ 0x00047C,
+ 0x00047E,
+ 0x000480,
+ 0x00048A,
+ 0x00048C,
+ 0x00048E,
+ 0x000490,
+ 0x000492,
+ 0x000494,
+ 0x000496,
+ 0x000498,
+ 0x00049A,
+ 0x00049C,
+ 0x00049E,
+ 0x0004A0,
+ 0x0004A2,
+ 0x0004A4,
+ 0x0004A6,
+ 0x0004A8,
+ 0x0004AA,
+ 0x0004AC,
+ 0x0004AE,
+ 0x0004B0,
+ 0x0004B2,
+ 0x0004B4,
+ 0x0004B6,
+ 0x0004B8,
+ 0x0004BA,
+ 0x0004BC,
+ 0x0004BE,
+ 0x0004C3,
+ 0x0004C5,
+ 0x0004C7,
+ 0x0004C9,
+ 0x0004CB,
+ 0x0004CD,
+ 0x0004D0,
+ 0x0004D2,
+ 0x0004D4,
+ 0x0004D6,
+ 0x0004D8,
+ 0x0004DA,
+ 0x0004DC,
+ 0x0004DE,
+ 0x0004E0,
+ 0x0004E2,
+ 0x0004E4,
+ 0x0004E6,
+ 0x0004E8,
+ 0x0004EA,
+ 0x0004EC,
+ 0x0004EE,
+ 0x0004F0,
+ 0x0004F2,
+ 0x0004F4,
+ 0x0004F6,
+ 0x0004F8,
+ 0x0004FA,
+ 0x0004FC,
+ 0x0004FE,
+ 0x000500,
+ 0x000502,
+ 0x000504,
+ 0x000506,
+ 0x000508,
+ 0x00050A,
+ 0x00050C,
+ 0x00050E,
+ 0x000510,
+ 0x000512,
+ 0x000514,
+ 0x000516,
+ 0x000518,
+ 0x00051A,
+ 0x00051C,
+ 0x00051E,
+ 0x000520,
+ 0x000522,
+ 0x000524,
+ 0x000526,
+ 0x000528,
+ 0x00052A,
+ 0x00052C,
+ 0x00052E,
+ 0x000587,
+ 0x00061C,
+ 0x0009DF,
+ 0x000A33,
+ 0x000A36,
+ 0x000A5E,
+ 0x000E33,
+ 0x000EB3,
+ 0x000F0C,
+ 0x000F43,
+ 0x000F4D,
+ 0x000F52,
+ 0x000F57,
+ 0x000F5C,
+ 0x000F69,
+ 0x000F73,
+ 0x000F81,
+ 0x000F93,
+ 0x000F9D,
+ 0x000FA2,
+ 0x000FA7,
+ 0x000FAC,
+ 0x000FB9,
+ 0x0010C7,
+ 0x0010CD,
+ 0x0010FC,
+ 0x001D78,
+ 0x001E00,
+ 0x001E02,
+ 0x001E04,
+ 0x001E06,
+ 0x001E08,
+ 0x001E0A,
+ 0x001E0C,
+ 0x001E0E,
+ 0x001E10,
+ 0x001E12,
+ 0x001E14,
+ 0x001E16,
+ 0x001E18,
+ 0x001E1A,
+ 0x001E1C,
+ 0x001E1E,
+ 0x001E20,
+ 0x001E22,
+ 0x001E24,
+ 0x001E26,
+ 0x001E28,
+ 0x001E2A,
+ 0x001E2C,
+ 0x001E2E,
+ 0x001E30,
+ 0x001E32,
+ 0x001E34,
+ 0x001E36,
+ 0x001E38,
+ 0x001E3A,
+ 0x001E3C,
+ 0x001E3E,
+ 0x001E40,
+ 0x001E42,
+ 0x001E44,
+ 0x001E46,
+ 0x001E48,
+ 0x001E4A,
+ 0x001E4C,
+ 0x001E4E,
+ 0x001E50,
+ 0x001E52,
+ 0x001E54,
+ 0x001E56,
+ 0x001E58,
+ 0x001E5A,
+ 0x001E5C,
+ 0x001E5E,
+ 0x001E60,
+ 0x001E62,
+ 0x001E64,
+ 0x001E66,
+ 0x001E68,
+ 0x001E6A,
+ 0x001E6C,
+ 0x001E6E,
+ 0x001E70,
+ 0x001E72,
+ 0x001E74,
+ 0x001E76,
+ 0x001E78,
+ 0x001E7A,
+ 0x001E7C,
+ 0x001E7E,
+ 0x001E80,
+ 0x001E82,
+ 0x001E84,
+ 0x001E86,
+ 0x001E88,
+ 0x001E8A,
+ 0x001E8C,
+ 0x001E8E,
+ 0x001E90,
+ 0x001E92,
+ 0x001E94,
+ 0x001E9E,
+ 0x001EA0,
+ 0x001EA2,
+ 0x001EA4,
+ 0x001EA6,
+ 0x001EA8,
+ 0x001EAA,
+ 0x001EAC,
+ 0x001EAE,
+ 0x001EB0,
+ 0x001EB2,
+ 0x001EB4,
+ 0x001EB6,
+ 0x001EB8,
+ 0x001EBA,
+ 0x001EBC,
+ 0x001EBE,
+ 0x001EC0,
+ 0x001EC2,
+ 0x001EC4,
+ 0x001EC6,
+ 0x001EC8,
+ 0x001ECA,
+ 0x001ECC,
+ 0x001ECE,
+ 0x001ED0,
+ 0x001ED2,
+ 0x001ED4,
+ 0x001ED6,
+ 0x001ED8,
+ 0x001EDA,
+ 0x001EDC,
+ 0x001EDE,
+ 0x001EE0,
+ 0x001EE2,
+ 0x001EE4,
+ 0x001EE6,
+ 0x001EE8,
+ 0x001EEA,
+ 0x001EEC,
+ 0x001EEE,
+ 0x001EF0,
+ 0x001EF2,
+ 0x001EF4,
+ 0x001EF6,
+ 0x001EF8,
+ 0x001EFA,
+ 0x001EFC,
+ 0x001EFE,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001F5F,
+ 0x001F71,
+ 0x001F73,
+ 0x001F75,
+ 0x001F77,
+ 0x001F79,
+ 0x001F7B,
+ 0x001F7D,
+ 0x001FD3,
+ 0x001FE3,
+ 0x002011,
+ 0x002017,
+ 0x00203C,
+ 0x00203E,
+ 0x002057,
+ 0x0020A8,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x002183,
+ 0x002189,
+ 0x002A0C,
+ 0x002ADC,
+ 0x002C60,
+ 0x002C67,
+ 0x002C69,
+ 0x002C6B,
+ 0x002C72,
+ 0x002C75,
+ 0x002C82,
+ 0x002C84,
+ 0x002C86,
+ 0x002C88,
+ 0x002C8A,
+ 0x002C8C,
+ 0x002C8E,
+ 0x002C90,
+ 0x002C92,
+ 0x002C94,
+ 0x002C96,
+ 0x002C98,
+ 0x002C9A,
+ 0x002C9C,
+ 0x002C9E,
+ 0x002CA0,
+ 0x002CA2,
+ 0x002CA4,
+ 0x002CA6,
+ 0x002CA8,
+ 0x002CAA,
+ 0x002CAC,
+ 0x002CAE,
+ 0x002CB0,
+ 0x002CB2,
+ 0x002CB4,
+ 0x002CB6,
+ 0x002CB8,
+ 0x002CBA,
+ 0x002CBC,
+ 0x002CBE,
+ 0x002CC0,
+ 0x002CC2,
+ 0x002CC4,
+ 0x002CC6,
+ 0x002CC8,
+ 0x002CCA,
+ 0x002CCC,
+ 0x002CCE,
+ 0x002CD0,
+ 0x002CD2,
+ 0x002CD4,
+ 0x002CD6,
+ 0x002CD8,
+ 0x002CDA,
+ 0x002CDC,
+ 0x002CDE,
+ 0x002CE0,
+ 0x002CE2,
+ 0x002CEB,
+ 0x002CED,
+ 0x002CF2,
+ 0x002D6F,
+ 0x002E9F,
+ 0x002EF3,
+ 0x003000,
+ 0x003036,
+ 0x00309F,
+ 0x0030FF,
+ 0x00A640,
+ 0x00A642,
+ 0x00A644,
+ 0x00A646,
+ 0x00A648,
+ 0x00A64A,
+ 0x00A64C,
+ 0x00A64E,
+ 0x00A650,
+ 0x00A652,
+ 0x00A654,
+ 0x00A656,
+ 0x00A658,
+ 0x00A65A,
+ 0x00A65C,
+ 0x00A65E,
+ 0x00A660,
+ 0x00A662,
+ 0x00A664,
+ 0x00A666,
+ 0x00A668,
+ 0x00A66A,
+ 0x00A66C,
+ 0x00A680,
+ 0x00A682,
+ 0x00A684,
+ 0x00A686,
+ 0x00A688,
+ 0x00A68A,
+ 0x00A68C,
+ 0x00A68E,
+ 0x00A690,
+ 0x00A692,
+ 0x00A694,
+ 0x00A696,
+ 0x00A698,
+ 0x00A69A,
+ 0x00A722,
+ 0x00A724,
+ 0x00A726,
+ 0x00A728,
+ 0x00A72A,
+ 0x00A72C,
+ 0x00A72E,
+ 0x00A732,
+ 0x00A734,
+ 0x00A736,
+ 0x00A738,
+ 0x00A73A,
+ 0x00A73C,
+ 0x00A73E,
+ 0x00A740,
+ 0x00A742,
+ 0x00A744,
+ 0x00A746,
+ 0x00A748,
+ 0x00A74A,
+ 0x00A74C,
+ 0x00A74E,
+ 0x00A750,
+ 0x00A752,
+ 0x00A754,
+ 0x00A756,
+ 0x00A758,
+ 0x00A75A,
+ 0x00A75C,
+ 0x00A75E,
+ 0x00A760,
+ 0x00A762,
+ 0x00A764,
+ 0x00A766,
+ 0x00A768,
+ 0x00A76A,
+ 0x00A76C,
+ 0x00A76E,
+ 0x00A770,
+ 0x00A779,
+ 0x00A77B,
+ 0x00A780,
+ 0x00A782,
+ 0x00A784,
+ 0x00A786,
+ 0x00A78B,
+ 0x00A78D,
+ 0x00A790,
+ 0x00A792,
+ 0x00A796,
+ 0x00A798,
+ 0x00A79A,
+ 0x00A79C,
+ 0x00A79E,
+ 0x00A7A0,
+ 0x00A7A2,
+ 0x00A7A4,
+ 0x00A7A6,
+ 0x00A7A8,
+ 0x00A7B6,
+ 0x00A7B8,
+ 0x00A7BA,
+ 0x00A7BC,
+ 0x00A7BE,
+ 0x00A7C2,
+ 0x00A7C9,
+ 0x00A7F5,
+ 0x00AB69,
+ 0x00FA10,
+ 0x00FA12,
+ 0x00FA20,
+ 0x00FA22,
+ 0x00FB1D,
+ 0x00FB3E,
+ 0x00FE74,
+ 0x00FEFF,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E,
+ 0x01F190
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x0000B2, 0x0000B5],
+ [0x0000B8, 0x0000BA],
+ [0x0000BC, 0x0000BE],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000DF],
+ [0x000132, 0x000134],
+ [0x00013F, 0x000141],
+ [0x000149, 0x00014A],
+ [0x000178, 0x000179],
+ [0x000181, 0x000182],
+ [0x000186, 0x000187],
+ [0x000189, 0x00018B],
+ [0x00018E, 0x000191],
+ [0x000193, 0x000194],
+ [0x000196, 0x000198],
+ [0x00019C, 0x00019D],
+ [0x00019F, 0x0001A0],
+ [0x0001A6, 0x0001A7],
+ [0x0001AE, 0x0001AF],
+ [0x0001B1, 0x0001B3],
+ [0x0001B7, 0x0001B8],
+ [0x0001C4, 0x0001CD],
+ [0x0001F1, 0x0001F4],
+ [0x0001F6, 0x0001F8],
+ [0x00023A, 0x00023B],
+ [0x00023D, 0x00023E],
+ [0x000243, 0x000246],
+ [0x0002B0, 0x0002B8],
+ [0x0002D8, 0x0002DD],
+ [0x0002E0, 0x0002E4],
+ [0x000340, 0x000341],
+ [0x000343, 0x000345],
+ [0x00037E, 0x00037F],
+ [0x000384, 0x00038A],
+ [0x00038E, 0x00038F],
+ [0x000391, 0x0003A1],
+ [0x0003A3, 0x0003AB],
+ [0x0003CF, 0x0003D6],
+ [0x0003F0, 0x0003F2],
+ [0x0003F4, 0x0003F5],
+ [0x0003F9, 0x0003FA],
+ [0x0003FD, 0x00042F],
+ [0x0004C0, 0x0004C1],
+ [0x000531, 0x000556],
+ [0x000675, 0x000678],
+ [0x000958, 0x00095F],
+ [0x0009DC, 0x0009DD],
+ [0x000A59, 0x000A5B],
+ [0x000B5C, 0x000B5D],
+ [0x000EDC, 0x000EDD],
+ [0x000F75, 0x000F79],
+ [0x0010A0, 0x0010C5],
+ [0x00115F, 0x001160],
+ [0x0013F8, 0x0013FD],
+ [0x0017B4, 0x0017B5],
+ [0x00180B, 0x00180E],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001D2C, 0x001D2E],
+ [0x001D30, 0x001D3A],
+ [0x001D3C, 0x001D4D],
+ [0x001D4F, 0x001D6A],
+ [0x001D9B, 0x001DBF],
+ [0x001E9A, 0x001E9B],
+ [0x001F08, 0x001F0F],
+ [0x001F18, 0x001F1D],
+ [0x001F28, 0x001F2F],
+ [0x001F38, 0x001F3F],
+ [0x001F48, 0x001F4D],
+ [0x001F68, 0x001F6F],
+ [0x001F80, 0x001FAF],
+ [0x001FB2, 0x001FB4],
+ [0x001FB7, 0x001FC4],
+ [0x001FC7, 0x001FCF],
+ [0x001FD8, 0x001FDB],
+ [0x001FDD, 0x001FDF],
+ [0x001FE8, 0x001FEF],
+ [0x001FF2, 0x001FF4],
+ [0x001FF7, 0x001FFE],
+ [0x002000, 0x00200F],
+ [0x002024, 0x002026],
+ [0x00202A, 0x00202F],
+ [0x002033, 0x002034],
+ [0x002036, 0x002037],
+ [0x002047, 0x002049],
+ [0x00205F, 0x002071],
+ [0x002074, 0x00208E],
+ [0x002090, 0x00209C],
+ [0x002100, 0x002103],
+ [0x002105, 0x002107],
+ [0x002109, 0x002113],
+ [0x002115, 0x002116],
+ [0x002119, 0x00211D],
+ [0x002120, 0x002122],
+ [0x00212A, 0x00212D],
+ [0x00212F, 0x002139],
+ [0x00213B, 0x002140],
+ [0x002145, 0x002149],
+ [0x002150, 0x00217F],
+ [0x00222C, 0x00222D],
+ [0x00222F, 0x002230],
+ [0x002329, 0x00232A],
+ [0x002460, 0x0024EA],
+ [0x002A74, 0x002A76],
+ [0x002C00, 0x002C2E],
+ [0x002C62, 0x002C64],
+ [0x002C6D, 0x002C70],
+ [0x002C7C, 0x002C80],
+ [0x002F00, 0x002FD5],
+ [0x003038, 0x00303A],
+ [0x00309B, 0x00309C],
+ [0x003131, 0x00318E],
+ [0x003192, 0x00319F],
+ [0x003200, 0x00321E],
+ [0x003220, 0x003247],
+ [0x003250, 0x00327E],
+ [0x003280, 0x0033FF],
+ [0x00A69C, 0x00A69D],
+ [0x00A77D, 0x00A77E],
+ [0x00A7AA, 0x00A7AE],
+ [0x00A7B0, 0x00A7B4],
+ [0x00A7C4, 0x00A7C7],
+ [0x00A7F8, 0x00A7F9],
+ [0x00AB5C, 0x00AB5F],
+ [0x00AB70, 0x00ABBF],
+ [0x00F900, 0x00FA0D],
+ [0x00FA15, 0x00FA1E],
+ [0x00FA25, 0x00FA26],
+ [0x00FA2A, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1F, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBB1],
+ [0x00FBD3, 0x00FD3D],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFC],
+ [0x00FE00, 0x00FE19],
+ [0x00FE30, 0x00FE44],
+ [0x00FE47, 0x00FE52],
+ [0x00FE54, 0x00FE66],
+ [0x00FE68, 0x00FE6B],
+ [0x00FE70, 0x00FE72],
+ [0x00FE76, 0x00FEFC],
+ [0x00FF01, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x00FFE0, 0x00FFE6],
+ [0x00FFE8, 0x00FFEE],
+ [0x00FFF0, 0x00FFF8],
+ [0x010400, 0x010427],
+ [0x0104B0, 0x0104D3],
+ [0x010C80, 0x010CB2],
+ [0x0118A0, 0x0118BF],
+ [0x016E40, 0x016E5F],
+ [0x01BCA0, 0x01BCA3],
+ [0x01D15E, 0x01D164],
+ [0x01D173, 0x01D17A],
+ [0x01D1BB, 0x01D1C0],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D7CB],
+ [0x01D7CE, 0x01D7FF],
+ [0x01E900, 0x01E921],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01F100, 0x01F10A],
+ [0x01F110, 0x01F12E],
+ [0x01F130, 0x01F14F],
+ [0x01F16A, 0x01F16C],
+ [0x01F200, 0x01F202],
+ [0x01F210, 0x01F23B],
+ [0x01F240, 0x01F248],
+ [0x01F250, 0x01F251],
+ [0x01FBF0, 0x01FBF9],
+ [0x02F800, 0x02FA1D],
+ [0x0E0000, 0x0E0FFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Changes_When_NFKC_Casefolded}+$/u,
+ matchSymbols,
+ "\\p{Changes_When_NFKC_Casefolded}"
+);
+testPropertyEscapes(
+ /^\p{CWKCF}+$/u,
+ matchSymbols,
+ "\\p{CWKCF}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000A9,
+ 0x0000AE,
+ 0x0000BB,
+ 0x0000BF,
+ 0x0000D7,
+ 0x000101,
+ 0x000103,
+ 0x000105,
+ 0x000107,
+ 0x000109,
+ 0x00010B,
+ 0x00010D,
+ 0x00010F,
+ 0x000111,
+ 0x000113,
+ 0x000115,
+ 0x000117,
+ 0x000119,
+ 0x00011B,
+ 0x00011D,
+ 0x00011F,
+ 0x000121,
+ 0x000123,
+ 0x000125,
+ 0x000127,
+ 0x000129,
+ 0x00012B,
+ 0x00012D,
+ 0x00012F,
+ 0x000131,
+ 0x000135,
+ 0x00013A,
+ 0x00013C,
+ 0x00013E,
+ 0x000142,
+ 0x000144,
+ 0x000146,
+ 0x000148,
+ 0x00014B,
+ 0x00014D,
+ 0x00014F,
+ 0x000151,
+ 0x000153,
+ 0x000155,
+ 0x000157,
+ 0x000159,
+ 0x00015B,
+ 0x00015D,
+ 0x00015F,
+ 0x000161,
+ 0x000163,
+ 0x000165,
+ 0x000167,
+ 0x000169,
+ 0x00016B,
+ 0x00016D,
+ 0x00016F,
+ 0x000171,
+ 0x000173,
+ 0x000175,
+ 0x000177,
+ 0x00017A,
+ 0x00017C,
+ 0x00017E,
+ 0x000180,
+ 0x000183,
+ 0x000185,
+ 0x000188,
+ 0x000192,
+ 0x000195,
+ 0x00019E,
+ 0x0001A1,
+ 0x0001A3,
+ 0x0001A5,
+ 0x0001A8,
+ 0x0001AD,
+ 0x0001B0,
+ 0x0001B4,
+ 0x0001B6,
+ 0x0001CE,
+ 0x0001D0,
+ 0x0001D2,
+ 0x0001D4,
+ 0x0001D6,
+ 0x0001D8,
+ 0x0001DA,
+ 0x0001DF,
+ 0x0001E1,
+ 0x0001E3,
+ 0x0001E5,
+ 0x0001E7,
+ 0x0001E9,
+ 0x0001EB,
+ 0x0001ED,
+ 0x0001F5,
+ 0x0001F9,
+ 0x0001FB,
+ 0x0001FD,
+ 0x0001FF,
+ 0x000201,
+ 0x000203,
+ 0x000205,
+ 0x000207,
+ 0x000209,
+ 0x00020B,
+ 0x00020D,
+ 0x00020F,
+ 0x000211,
+ 0x000213,
+ 0x000215,
+ 0x000217,
+ 0x000219,
+ 0x00021B,
+ 0x00021D,
+ 0x00021F,
+ 0x000221,
+ 0x000223,
+ 0x000225,
+ 0x000227,
+ 0x000229,
+ 0x00022B,
+ 0x00022D,
+ 0x00022F,
+ 0x000231,
+ 0x00023C,
+ 0x000242,
+ 0x000247,
+ 0x000249,
+ 0x00024B,
+ 0x00024D,
+ 0x000342,
+ 0x000371,
+ 0x000373,
+ 0x000375,
+ 0x00038B,
+ 0x00038D,
+ 0x000390,
+ 0x0003A2,
+ 0x0003D7,
+ 0x0003D9,
+ 0x0003DB,
+ 0x0003DD,
+ 0x0003DF,
+ 0x0003E1,
+ 0x0003E3,
+ 0x0003E5,
+ 0x0003E7,
+ 0x0003E9,
+ 0x0003EB,
+ 0x0003ED,
+ 0x0003EF,
+ 0x0003F3,
+ 0x0003F6,
+ 0x0003F8,
+ 0x000461,
+ 0x000463,
+ 0x000465,
+ 0x000467,
+ 0x000469,
+ 0x00046B,
+ 0x00046D,
+ 0x00046F,
+ 0x000471,
+ 0x000473,
+ 0x000475,
+ 0x000477,
+ 0x000479,
+ 0x00047B,
+ 0x00047D,
+ 0x00047F,
+ 0x00048B,
+ 0x00048D,
+ 0x00048F,
+ 0x000491,
+ 0x000493,
+ 0x000495,
+ 0x000497,
+ 0x000499,
+ 0x00049B,
+ 0x00049D,
+ 0x00049F,
+ 0x0004A1,
+ 0x0004A3,
+ 0x0004A5,
+ 0x0004A7,
+ 0x0004A9,
+ 0x0004AB,
+ 0x0004AD,
+ 0x0004AF,
+ 0x0004B1,
+ 0x0004B3,
+ 0x0004B5,
+ 0x0004B7,
+ 0x0004B9,
+ 0x0004BB,
+ 0x0004BD,
+ 0x0004BF,
+ 0x0004C2,
+ 0x0004C4,
+ 0x0004C6,
+ 0x0004C8,
+ 0x0004CA,
+ 0x0004CC,
+ 0x0004D1,
+ 0x0004D3,
+ 0x0004D5,
+ 0x0004D7,
+ 0x0004D9,
+ 0x0004DB,
+ 0x0004DD,
+ 0x0004DF,
+ 0x0004E1,
+ 0x0004E3,
+ 0x0004E5,
+ 0x0004E7,
+ 0x0004E9,
+ 0x0004EB,
+ 0x0004ED,
+ 0x0004EF,
+ 0x0004F1,
+ 0x0004F3,
+ 0x0004F5,
+ 0x0004F7,
+ 0x0004F9,
+ 0x0004FB,
+ 0x0004FD,
+ 0x0004FF,
+ 0x000501,
+ 0x000503,
+ 0x000505,
+ 0x000507,
+ 0x000509,
+ 0x00050B,
+ 0x00050D,
+ 0x00050F,
+ 0x000511,
+ 0x000513,
+ 0x000515,
+ 0x000517,
+ 0x000519,
+ 0x00051B,
+ 0x00051D,
+ 0x00051F,
+ 0x000521,
+ 0x000523,
+ 0x000525,
+ 0x000527,
+ 0x000529,
+ 0x00052B,
+ 0x00052D,
+ 0x0009DE,
+ 0x000F74,
+ 0x0010C6,
+ 0x001D2F,
+ 0x001D3B,
+ 0x001D4E,
+ 0x001E01,
+ 0x001E03,
+ 0x001E05,
+ 0x001E07,
+ 0x001E09,
+ 0x001E0B,
+ 0x001E0D,
+ 0x001E0F,
+ 0x001E11,
+ 0x001E13,
+ 0x001E15,
+ 0x001E17,
+ 0x001E19,
+ 0x001E1B,
+ 0x001E1D,
+ 0x001E1F,
+ 0x001E21,
+ 0x001E23,
+ 0x001E25,
+ 0x001E27,
+ 0x001E29,
+ 0x001E2B,
+ 0x001E2D,
+ 0x001E2F,
+ 0x001E31,
+ 0x001E33,
+ 0x001E35,
+ 0x001E37,
+ 0x001E39,
+ 0x001E3B,
+ 0x001E3D,
+ 0x001E3F,
+ 0x001E41,
+ 0x001E43,
+ 0x001E45,
+ 0x001E47,
+ 0x001E49,
+ 0x001E4B,
+ 0x001E4D,
+ 0x001E4F,
+ 0x001E51,
+ 0x001E53,
+ 0x001E55,
+ 0x001E57,
+ 0x001E59,
+ 0x001E5B,
+ 0x001E5D,
+ 0x001E5F,
+ 0x001E61,
+ 0x001E63,
+ 0x001E65,
+ 0x001E67,
+ 0x001E69,
+ 0x001E6B,
+ 0x001E6D,
+ 0x001E6F,
+ 0x001E71,
+ 0x001E73,
+ 0x001E75,
+ 0x001E77,
+ 0x001E79,
+ 0x001E7B,
+ 0x001E7D,
+ 0x001E7F,
+ 0x001E81,
+ 0x001E83,
+ 0x001E85,
+ 0x001E87,
+ 0x001E89,
+ 0x001E8B,
+ 0x001E8D,
+ 0x001E8F,
+ 0x001E91,
+ 0x001E93,
+ 0x001E9F,
+ 0x001EA1,
+ 0x001EA3,
+ 0x001EA5,
+ 0x001EA7,
+ 0x001EA9,
+ 0x001EAB,
+ 0x001EAD,
+ 0x001EAF,
+ 0x001EB1,
+ 0x001EB3,
+ 0x001EB5,
+ 0x001EB7,
+ 0x001EB9,
+ 0x001EBB,
+ 0x001EBD,
+ 0x001EBF,
+ 0x001EC1,
+ 0x001EC3,
+ 0x001EC5,
+ 0x001EC7,
+ 0x001EC9,
+ 0x001ECB,
+ 0x001ECD,
+ 0x001ECF,
+ 0x001ED1,
+ 0x001ED3,
+ 0x001ED5,
+ 0x001ED7,
+ 0x001ED9,
+ 0x001EDB,
+ 0x001EDD,
+ 0x001EDF,
+ 0x001EE1,
+ 0x001EE3,
+ 0x001EE5,
+ 0x001EE7,
+ 0x001EE9,
+ 0x001EEB,
+ 0x001EED,
+ 0x001EEF,
+ 0x001EF1,
+ 0x001EF3,
+ 0x001EF5,
+ 0x001EF7,
+ 0x001EF9,
+ 0x001EFB,
+ 0x001EFD,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001F70,
+ 0x001F72,
+ 0x001F74,
+ 0x001F76,
+ 0x001F78,
+ 0x001F7A,
+ 0x001F7C,
+ 0x001FDC,
+ 0x001FFF,
+ 0x002010,
+ 0x002035,
+ 0x00203D,
+ 0x00208F,
+ 0x002104,
+ 0x002108,
+ 0x002114,
+ 0x002123,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x00212E,
+ 0x00213A,
+ 0x00222E,
+ 0x002C61,
+ 0x002C68,
+ 0x002C6A,
+ 0x002C6C,
+ 0x002C71,
+ 0x002C81,
+ 0x002C83,
+ 0x002C85,
+ 0x002C87,
+ 0x002C89,
+ 0x002C8B,
+ 0x002C8D,
+ 0x002C8F,
+ 0x002C91,
+ 0x002C93,
+ 0x002C95,
+ 0x002C97,
+ 0x002C99,
+ 0x002C9B,
+ 0x002C9D,
+ 0x002C9F,
+ 0x002CA1,
+ 0x002CA3,
+ 0x002CA5,
+ 0x002CA7,
+ 0x002CA9,
+ 0x002CAB,
+ 0x002CAD,
+ 0x002CAF,
+ 0x002CB1,
+ 0x002CB3,
+ 0x002CB5,
+ 0x002CB7,
+ 0x002CB9,
+ 0x002CBB,
+ 0x002CBD,
+ 0x002CBF,
+ 0x002CC1,
+ 0x002CC3,
+ 0x002CC5,
+ 0x002CC7,
+ 0x002CC9,
+ 0x002CCB,
+ 0x002CCD,
+ 0x002CCF,
+ 0x002CD1,
+ 0x002CD3,
+ 0x002CD5,
+ 0x002CD7,
+ 0x002CD9,
+ 0x002CDB,
+ 0x002CDD,
+ 0x002CDF,
+ 0x002CE1,
+ 0x002CEC,
+ 0x003037,
+ 0x00321F,
+ 0x00327F,
+ 0x00A641,
+ 0x00A643,
+ 0x00A645,
+ 0x00A647,
+ 0x00A649,
+ 0x00A64B,
+ 0x00A64D,
+ 0x00A64F,
+ 0x00A651,
+ 0x00A653,
+ 0x00A655,
+ 0x00A657,
+ 0x00A659,
+ 0x00A65B,
+ 0x00A65D,
+ 0x00A65F,
+ 0x00A661,
+ 0x00A663,
+ 0x00A665,
+ 0x00A667,
+ 0x00A669,
+ 0x00A66B,
+ 0x00A681,
+ 0x00A683,
+ 0x00A685,
+ 0x00A687,
+ 0x00A689,
+ 0x00A68B,
+ 0x00A68D,
+ 0x00A68F,
+ 0x00A691,
+ 0x00A693,
+ 0x00A695,
+ 0x00A697,
+ 0x00A699,
+ 0x00A69B,
+ 0x00A723,
+ 0x00A725,
+ 0x00A727,
+ 0x00A729,
+ 0x00A72B,
+ 0x00A72D,
+ 0x00A733,
+ 0x00A735,
+ 0x00A737,
+ 0x00A739,
+ 0x00A73B,
+ 0x00A73D,
+ 0x00A73F,
+ 0x00A741,
+ 0x00A743,
+ 0x00A745,
+ 0x00A747,
+ 0x00A749,
+ 0x00A74B,
+ 0x00A74D,
+ 0x00A74F,
+ 0x00A751,
+ 0x00A753,
+ 0x00A755,
+ 0x00A757,
+ 0x00A759,
+ 0x00A75B,
+ 0x00A75D,
+ 0x00A75F,
+ 0x00A761,
+ 0x00A763,
+ 0x00A765,
+ 0x00A767,
+ 0x00A769,
+ 0x00A76B,
+ 0x00A76D,
+ 0x00A76F,
+ 0x00A77A,
+ 0x00A77C,
+ 0x00A77F,
+ 0x00A781,
+ 0x00A783,
+ 0x00A785,
+ 0x00A78C,
+ 0x00A791,
+ 0x00A797,
+ 0x00A799,
+ 0x00A79B,
+ 0x00A79D,
+ 0x00A79F,
+ 0x00A7A1,
+ 0x00A7A3,
+ 0x00A7A5,
+ 0x00A7A7,
+ 0x00A7A9,
+ 0x00A7AF,
+ 0x00A7B5,
+ 0x00A7B7,
+ 0x00A7B9,
+ 0x00A7BB,
+ 0x00A7BD,
+ 0x00A7C3,
+ 0x00A7C8,
+ 0x00FA11,
+ 0x00FA1F,
+ 0x00FA21,
+ 0x00FB1E,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE53,
+ 0x00FE67,
+ 0x00FE73,
+ 0x00FE75,
+ 0x00FF00,
+ 0x00FFE7,
+ 0x00FFEF,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA,
+ 0x01F12F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x00009F],
+ [0x0000A1, 0x0000A7],
+ [0x0000AB, 0x0000AC],
+ [0x0000B0, 0x0000B1],
+ [0x0000B6, 0x0000B7],
+ [0x0000E0, 0x0000FF],
+ [0x000137, 0x000138],
+ [0x00018C, 0x00018D],
+ [0x000199, 0x00019B],
+ [0x0001AA, 0x0001AB],
+ [0x0001B9, 0x0001BB],
+ [0x0001BD, 0x0001C3],
+ [0x0001DC, 0x0001DD],
+ [0x0001EF, 0x0001F0],
+ [0x000233, 0x000239],
+ [0x00023F, 0x000240],
+ [0x00024F, 0x0002AF],
+ [0x0002B9, 0x0002D7],
+ [0x0002DE, 0x0002DF],
+ [0x0002E5, 0x00033F],
+ [0x000346, 0x00034E],
+ [0x000350, 0x00036F],
+ [0x000377, 0x000379],
+ [0x00037B, 0x00037D],
+ [0x000380, 0x000383],
+ [0x0003AC, 0x0003C1],
+ [0x0003C3, 0x0003CE],
+ [0x0003FB, 0x0003FC],
+ [0x000430, 0x00045F],
+ [0x000481, 0x000489],
+ [0x0004CE, 0x0004CF],
+ [0x00052F, 0x000530],
+ [0x000557, 0x000586],
+ [0x000588, 0x00061B],
+ [0x00061D, 0x000674],
+ [0x000679, 0x000957],
+ [0x000960, 0x0009DB],
+ [0x0009E0, 0x000A32],
+ [0x000A34, 0x000A35],
+ [0x000A37, 0x000A58],
+ [0x000A5C, 0x000A5D],
+ [0x000A5F, 0x000B5B],
+ [0x000B5E, 0x000E32],
+ [0x000E34, 0x000EB2],
+ [0x000EB4, 0x000EDB],
+ [0x000EDE, 0x000F0B],
+ [0x000F0D, 0x000F42],
+ [0x000F44, 0x000F4C],
+ [0x000F4E, 0x000F51],
+ [0x000F53, 0x000F56],
+ [0x000F58, 0x000F5B],
+ [0x000F5D, 0x000F68],
+ [0x000F6A, 0x000F72],
+ [0x000F7A, 0x000F80],
+ [0x000F82, 0x000F92],
+ [0x000F94, 0x000F9C],
+ [0x000F9E, 0x000FA1],
+ [0x000FA3, 0x000FA6],
+ [0x000FA8, 0x000FAB],
+ [0x000FAD, 0x000FB8],
+ [0x000FBA, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010FB],
+ [0x0010FD, 0x00115E],
+ [0x001161, 0x0013F7],
+ [0x0013FE, 0x0017B3],
+ [0x0017B6, 0x00180A],
+ [0x00180F, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001D2B],
+ [0x001D6B, 0x001D77],
+ [0x001D79, 0x001D9A],
+ [0x001DC0, 0x001DFF],
+ [0x001E95, 0x001E99],
+ [0x001E9C, 0x001E9D],
+ [0x001EFF, 0x001F07],
+ [0x001F10, 0x001F17],
+ [0x001F1E, 0x001F27],
+ [0x001F30, 0x001F37],
+ [0x001F40, 0x001F47],
+ [0x001F4E, 0x001F58],
+ [0x001F60, 0x001F67],
+ [0x001F7E, 0x001F7F],
+ [0x001FB0, 0x001FB1],
+ [0x001FB5, 0x001FB6],
+ [0x001FC5, 0x001FC6],
+ [0x001FD0, 0x001FD2],
+ [0x001FD4, 0x001FD7],
+ [0x001FE0, 0x001FE2],
+ [0x001FE4, 0x001FE7],
+ [0x001FF0, 0x001FF1],
+ [0x001FF5, 0x001FF6],
+ [0x002012, 0x002016],
+ [0x002018, 0x002023],
+ [0x002027, 0x002029],
+ [0x002030, 0x002032],
+ [0x002038, 0x00203B],
+ [0x00203F, 0x002046],
+ [0x00204A, 0x002056],
+ [0x002058, 0x00205E],
+ [0x002072, 0x002073],
+ [0x00209D, 0x0020A7],
+ [0x0020A9, 0x0020FF],
+ [0x002117, 0x002118],
+ [0x00211E, 0x00211F],
+ [0x002141, 0x002144],
+ [0x00214A, 0x00214F],
+ [0x002180, 0x002182],
+ [0x002184, 0x002188],
+ [0x00218A, 0x00222B],
+ [0x002231, 0x002328],
+ [0x00232B, 0x00245F],
+ [0x0024EB, 0x002A0B],
+ [0x002A0D, 0x002A73],
+ [0x002A77, 0x002ADB],
+ [0x002ADD, 0x002BFF],
+ [0x002C2F, 0x002C5F],
+ [0x002C65, 0x002C66],
+ [0x002C73, 0x002C74],
+ [0x002C76, 0x002C7B],
+ [0x002CE3, 0x002CEA],
+ [0x002CEE, 0x002CF1],
+ [0x002CF3, 0x002D6E],
+ [0x002D70, 0x002E9E],
+ [0x002EA0, 0x002EF2],
+ [0x002EF4, 0x002EFF],
+ [0x002FD6, 0x002FFF],
+ [0x003001, 0x003035],
+ [0x00303B, 0x00309A],
+ [0x00309D, 0x00309E],
+ [0x0030A0, 0x0030FE],
+ [0x003100, 0x003130],
+ [0x00318F, 0x003191],
+ [0x0031A0, 0x0031FF],
+ [0x003248, 0x00324F],
+ [0x003400, 0x00A63F],
+ [0x00A66D, 0x00A67F],
+ [0x00A69E, 0x00A721],
+ [0x00A72F, 0x00A731],
+ [0x00A771, 0x00A778],
+ [0x00A787, 0x00A78A],
+ [0x00A78E, 0x00A78F],
+ [0x00A793, 0x00A795],
+ [0x00A7BF, 0x00A7C1],
+ [0x00A7CA, 0x00A7F4],
+ [0x00A7F6, 0x00A7F7],
+ [0x00A7FA, 0x00AB5B],
+ [0x00AB60, 0x00AB68],
+ [0x00AB6A, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA0E, 0x00FA0F],
+ [0x00FA13, 0x00FA14],
+ [0x00FA23, 0x00FA24],
+ [0x00FA27, 0x00FA29],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBB2, 0x00FBD2],
+ [0x00FD3E, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFD, 0x00FDFF],
+ [0x00FE1A, 0x00FE2F],
+ [0x00FE45, 0x00FE46],
+ [0x00FE6C, 0x00FE6F],
+ [0x00FEFD, 0x00FEFE],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFDF],
+ [0x00FFF9, 0x0103FF],
+ [0x010428, 0x0104AF],
+ [0x0104D4, 0x010C7F],
+ [0x010CB3, 0x01189F],
+ [0x0118C0, 0x016E3F],
+ [0x016E60, 0x01BC9F],
+ [0x01BCA4, 0x01D15D],
+ [0x01D165, 0x01D172],
+ [0x01D17B, 0x01D1BA],
+ [0x01D1C1, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01D7CD],
+ [0x01D800, 0x01E8FF],
+ [0x01E922, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01F0FF],
+ [0x01F10B, 0x01F10F],
+ [0x01F150, 0x01F169],
+ [0x01F16D, 0x01F18F],
+ [0x01F191, 0x01F1FF],
+ [0x01F203, 0x01F20F],
+ [0x01F23C, 0x01F23F],
+ [0x01F249, 0x01F24F],
+ [0x01F252, 0x01FBEF],
+ [0x01FBFA, 0x02F7FF],
+ [0x02FA1E, 0x0DFFFF],
+ [0x0E1000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Changes_When_NFKC_Casefolded}+$/u,
+ nonMatchSymbols,
+ "\\P{Changes_When_NFKC_Casefolded}"
+);
+testPropertyEscapes(
+ /^\P{CWKCF}+$/u,
+ nonMatchSymbols,
+ "\\P{CWKCF}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Titlecased.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Titlecased.js
new file mode 100644
index 0000000000..0db60b5a6b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Titlecased.js
@@ -0,0 +1,1289 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Changes_When_Titlecased`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000B5,
+ 0x000101,
+ 0x000103,
+ 0x000105,
+ 0x000107,
+ 0x000109,
+ 0x00010B,
+ 0x00010D,
+ 0x00010F,
+ 0x000111,
+ 0x000113,
+ 0x000115,
+ 0x000117,
+ 0x000119,
+ 0x00011B,
+ 0x00011D,
+ 0x00011F,
+ 0x000121,
+ 0x000123,
+ 0x000125,
+ 0x000127,
+ 0x000129,
+ 0x00012B,
+ 0x00012D,
+ 0x00012F,
+ 0x000131,
+ 0x000133,
+ 0x000135,
+ 0x000137,
+ 0x00013A,
+ 0x00013C,
+ 0x00013E,
+ 0x000140,
+ 0x000142,
+ 0x000144,
+ 0x000146,
+ 0x00014B,
+ 0x00014D,
+ 0x00014F,
+ 0x000151,
+ 0x000153,
+ 0x000155,
+ 0x000157,
+ 0x000159,
+ 0x00015B,
+ 0x00015D,
+ 0x00015F,
+ 0x000161,
+ 0x000163,
+ 0x000165,
+ 0x000167,
+ 0x000169,
+ 0x00016B,
+ 0x00016D,
+ 0x00016F,
+ 0x000171,
+ 0x000173,
+ 0x000175,
+ 0x000177,
+ 0x00017A,
+ 0x00017C,
+ 0x000183,
+ 0x000185,
+ 0x000188,
+ 0x00018C,
+ 0x000192,
+ 0x000195,
+ 0x00019E,
+ 0x0001A1,
+ 0x0001A3,
+ 0x0001A5,
+ 0x0001A8,
+ 0x0001AD,
+ 0x0001B0,
+ 0x0001B4,
+ 0x0001B6,
+ 0x0001B9,
+ 0x0001BD,
+ 0x0001BF,
+ 0x0001C4,
+ 0x0001CC,
+ 0x0001CE,
+ 0x0001D0,
+ 0x0001D2,
+ 0x0001D4,
+ 0x0001D6,
+ 0x0001D8,
+ 0x0001DA,
+ 0x0001DF,
+ 0x0001E1,
+ 0x0001E3,
+ 0x0001E5,
+ 0x0001E7,
+ 0x0001E9,
+ 0x0001EB,
+ 0x0001ED,
+ 0x0001F3,
+ 0x0001F5,
+ 0x0001F9,
+ 0x0001FB,
+ 0x0001FD,
+ 0x0001FF,
+ 0x000201,
+ 0x000203,
+ 0x000205,
+ 0x000207,
+ 0x000209,
+ 0x00020B,
+ 0x00020D,
+ 0x00020F,
+ 0x000211,
+ 0x000213,
+ 0x000215,
+ 0x000217,
+ 0x000219,
+ 0x00021B,
+ 0x00021D,
+ 0x00021F,
+ 0x000223,
+ 0x000225,
+ 0x000227,
+ 0x000229,
+ 0x00022B,
+ 0x00022D,
+ 0x00022F,
+ 0x000231,
+ 0x000233,
+ 0x00023C,
+ 0x000242,
+ 0x000247,
+ 0x000249,
+ 0x00024B,
+ 0x00024D,
+ 0x000259,
+ 0x000263,
+ 0x00026F,
+ 0x000275,
+ 0x00027D,
+ 0x000280,
+ 0x000292,
+ 0x000345,
+ 0x000371,
+ 0x000373,
+ 0x000377,
+ 0x000390,
+ 0x0003D9,
+ 0x0003DB,
+ 0x0003DD,
+ 0x0003DF,
+ 0x0003E1,
+ 0x0003E3,
+ 0x0003E5,
+ 0x0003E7,
+ 0x0003E9,
+ 0x0003EB,
+ 0x0003ED,
+ 0x0003F5,
+ 0x0003F8,
+ 0x0003FB,
+ 0x000461,
+ 0x000463,
+ 0x000465,
+ 0x000467,
+ 0x000469,
+ 0x00046B,
+ 0x00046D,
+ 0x00046F,
+ 0x000471,
+ 0x000473,
+ 0x000475,
+ 0x000477,
+ 0x000479,
+ 0x00047B,
+ 0x00047D,
+ 0x00047F,
+ 0x000481,
+ 0x00048B,
+ 0x00048D,
+ 0x00048F,
+ 0x000491,
+ 0x000493,
+ 0x000495,
+ 0x000497,
+ 0x000499,
+ 0x00049B,
+ 0x00049D,
+ 0x00049F,
+ 0x0004A1,
+ 0x0004A3,
+ 0x0004A5,
+ 0x0004A7,
+ 0x0004A9,
+ 0x0004AB,
+ 0x0004AD,
+ 0x0004AF,
+ 0x0004B1,
+ 0x0004B3,
+ 0x0004B5,
+ 0x0004B7,
+ 0x0004B9,
+ 0x0004BB,
+ 0x0004BD,
+ 0x0004BF,
+ 0x0004C2,
+ 0x0004C4,
+ 0x0004C6,
+ 0x0004C8,
+ 0x0004CA,
+ 0x0004CC,
+ 0x0004D1,
+ 0x0004D3,
+ 0x0004D5,
+ 0x0004D7,
+ 0x0004D9,
+ 0x0004DB,
+ 0x0004DD,
+ 0x0004DF,
+ 0x0004E1,
+ 0x0004E3,
+ 0x0004E5,
+ 0x0004E7,
+ 0x0004E9,
+ 0x0004EB,
+ 0x0004ED,
+ 0x0004EF,
+ 0x0004F1,
+ 0x0004F3,
+ 0x0004F5,
+ 0x0004F7,
+ 0x0004F9,
+ 0x0004FB,
+ 0x0004FD,
+ 0x0004FF,
+ 0x000501,
+ 0x000503,
+ 0x000505,
+ 0x000507,
+ 0x000509,
+ 0x00050B,
+ 0x00050D,
+ 0x00050F,
+ 0x000511,
+ 0x000513,
+ 0x000515,
+ 0x000517,
+ 0x000519,
+ 0x00051B,
+ 0x00051D,
+ 0x00051F,
+ 0x000521,
+ 0x000523,
+ 0x000525,
+ 0x000527,
+ 0x000529,
+ 0x00052B,
+ 0x00052D,
+ 0x00052F,
+ 0x001D79,
+ 0x001D7D,
+ 0x001D8E,
+ 0x001E01,
+ 0x001E03,
+ 0x001E05,
+ 0x001E07,
+ 0x001E09,
+ 0x001E0B,
+ 0x001E0D,
+ 0x001E0F,
+ 0x001E11,
+ 0x001E13,
+ 0x001E15,
+ 0x001E17,
+ 0x001E19,
+ 0x001E1B,
+ 0x001E1D,
+ 0x001E1F,
+ 0x001E21,
+ 0x001E23,
+ 0x001E25,
+ 0x001E27,
+ 0x001E29,
+ 0x001E2B,
+ 0x001E2D,
+ 0x001E2F,
+ 0x001E31,
+ 0x001E33,
+ 0x001E35,
+ 0x001E37,
+ 0x001E39,
+ 0x001E3B,
+ 0x001E3D,
+ 0x001E3F,
+ 0x001E41,
+ 0x001E43,
+ 0x001E45,
+ 0x001E47,
+ 0x001E49,
+ 0x001E4B,
+ 0x001E4D,
+ 0x001E4F,
+ 0x001E51,
+ 0x001E53,
+ 0x001E55,
+ 0x001E57,
+ 0x001E59,
+ 0x001E5B,
+ 0x001E5D,
+ 0x001E5F,
+ 0x001E61,
+ 0x001E63,
+ 0x001E65,
+ 0x001E67,
+ 0x001E69,
+ 0x001E6B,
+ 0x001E6D,
+ 0x001E6F,
+ 0x001E71,
+ 0x001E73,
+ 0x001E75,
+ 0x001E77,
+ 0x001E79,
+ 0x001E7B,
+ 0x001E7D,
+ 0x001E7F,
+ 0x001E81,
+ 0x001E83,
+ 0x001E85,
+ 0x001E87,
+ 0x001E89,
+ 0x001E8B,
+ 0x001E8D,
+ 0x001E8F,
+ 0x001E91,
+ 0x001E93,
+ 0x001EA1,
+ 0x001EA3,
+ 0x001EA5,
+ 0x001EA7,
+ 0x001EA9,
+ 0x001EAB,
+ 0x001EAD,
+ 0x001EAF,
+ 0x001EB1,
+ 0x001EB3,
+ 0x001EB5,
+ 0x001EB7,
+ 0x001EB9,
+ 0x001EBB,
+ 0x001EBD,
+ 0x001EBF,
+ 0x001EC1,
+ 0x001EC3,
+ 0x001EC5,
+ 0x001EC7,
+ 0x001EC9,
+ 0x001ECB,
+ 0x001ECD,
+ 0x001ECF,
+ 0x001ED1,
+ 0x001ED3,
+ 0x001ED5,
+ 0x001ED7,
+ 0x001ED9,
+ 0x001EDB,
+ 0x001EDD,
+ 0x001EDF,
+ 0x001EE1,
+ 0x001EE3,
+ 0x001EE5,
+ 0x001EE7,
+ 0x001EE9,
+ 0x001EEB,
+ 0x001EED,
+ 0x001EEF,
+ 0x001EF1,
+ 0x001EF3,
+ 0x001EF5,
+ 0x001EF7,
+ 0x001EF9,
+ 0x001EFB,
+ 0x001EFD,
+ 0x001FBE,
+ 0x00214E,
+ 0x002184,
+ 0x002C61,
+ 0x002C68,
+ 0x002C6A,
+ 0x002C6C,
+ 0x002C73,
+ 0x002C76,
+ 0x002C81,
+ 0x002C83,
+ 0x002C85,
+ 0x002C87,
+ 0x002C89,
+ 0x002C8B,
+ 0x002C8D,
+ 0x002C8F,
+ 0x002C91,
+ 0x002C93,
+ 0x002C95,
+ 0x002C97,
+ 0x002C99,
+ 0x002C9B,
+ 0x002C9D,
+ 0x002C9F,
+ 0x002CA1,
+ 0x002CA3,
+ 0x002CA5,
+ 0x002CA7,
+ 0x002CA9,
+ 0x002CAB,
+ 0x002CAD,
+ 0x002CAF,
+ 0x002CB1,
+ 0x002CB3,
+ 0x002CB5,
+ 0x002CB7,
+ 0x002CB9,
+ 0x002CBB,
+ 0x002CBD,
+ 0x002CBF,
+ 0x002CC1,
+ 0x002CC3,
+ 0x002CC5,
+ 0x002CC7,
+ 0x002CC9,
+ 0x002CCB,
+ 0x002CCD,
+ 0x002CCF,
+ 0x002CD1,
+ 0x002CD3,
+ 0x002CD5,
+ 0x002CD7,
+ 0x002CD9,
+ 0x002CDB,
+ 0x002CDD,
+ 0x002CDF,
+ 0x002CE1,
+ 0x002CE3,
+ 0x002CEC,
+ 0x002CEE,
+ 0x002CF3,
+ 0x002D27,
+ 0x002D2D,
+ 0x00A641,
+ 0x00A643,
+ 0x00A645,
+ 0x00A647,
+ 0x00A649,
+ 0x00A64B,
+ 0x00A64D,
+ 0x00A64F,
+ 0x00A651,
+ 0x00A653,
+ 0x00A655,
+ 0x00A657,
+ 0x00A659,
+ 0x00A65B,
+ 0x00A65D,
+ 0x00A65F,
+ 0x00A661,
+ 0x00A663,
+ 0x00A665,
+ 0x00A667,
+ 0x00A669,
+ 0x00A66B,
+ 0x00A66D,
+ 0x00A681,
+ 0x00A683,
+ 0x00A685,
+ 0x00A687,
+ 0x00A689,
+ 0x00A68B,
+ 0x00A68D,
+ 0x00A68F,
+ 0x00A691,
+ 0x00A693,
+ 0x00A695,
+ 0x00A697,
+ 0x00A699,
+ 0x00A69B,
+ 0x00A723,
+ 0x00A725,
+ 0x00A727,
+ 0x00A729,
+ 0x00A72B,
+ 0x00A72D,
+ 0x00A72F,
+ 0x00A733,
+ 0x00A735,
+ 0x00A737,
+ 0x00A739,
+ 0x00A73B,
+ 0x00A73D,
+ 0x00A73F,
+ 0x00A741,
+ 0x00A743,
+ 0x00A745,
+ 0x00A747,
+ 0x00A749,
+ 0x00A74B,
+ 0x00A74D,
+ 0x00A74F,
+ 0x00A751,
+ 0x00A753,
+ 0x00A755,
+ 0x00A757,
+ 0x00A759,
+ 0x00A75B,
+ 0x00A75D,
+ 0x00A75F,
+ 0x00A761,
+ 0x00A763,
+ 0x00A765,
+ 0x00A767,
+ 0x00A769,
+ 0x00A76B,
+ 0x00A76D,
+ 0x00A76F,
+ 0x00A77A,
+ 0x00A77C,
+ 0x00A77F,
+ 0x00A781,
+ 0x00A783,
+ 0x00A785,
+ 0x00A787,
+ 0x00A78C,
+ 0x00A791,
+ 0x00A797,
+ 0x00A799,
+ 0x00A79B,
+ 0x00A79D,
+ 0x00A79F,
+ 0x00A7A1,
+ 0x00A7A3,
+ 0x00A7A5,
+ 0x00A7A7,
+ 0x00A7A9,
+ 0x00A7B5,
+ 0x00A7B7,
+ 0x00A7B9,
+ 0x00A7BB,
+ 0x00A7BD,
+ 0x00A7BF,
+ 0x00A7C3,
+ 0x00A7C8,
+ 0x00A7CA,
+ 0x00A7F6,
+ 0x00AB53
+ ],
+ ranges: [
+ [0x000061, 0x00007A],
+ [0x0000DF, 0x0000F6],
+ [0x0000F8, 0x0000FF],
+ [0x000148, 0x000149],
+ [0x00017E, 0x000180],
+ [0x000199, 0x00019A],
+ [0x0001C6, 0x0001C7],
+ [0x0001C9, 0x0001CA],
+ [0x0001DC, 0x0001DD],
+ [0x0001EF, 0x0001F1],
+ [0x00023F, 0x000240],
+ [0x00024F, 0x000254],
+ [0x000256, 0x000257],
+ [0x00025B, 0x00025C],
+ [0x000260, 0x000261],
+ [0x000265, 0x000266],
+ [0x000268, 0x00026C],
+ [0x000271, 0x000272],
+ [0x000282, 0x000283],
+ [0x000287, 0x00028C],
+ [0x00029D, 0x00029E],
+ [0x00037B, 0x00037D],
+ [0x0003AC, 0x0003CE],
+ [0x0003D0, 0x0003D1],
+ [0x0003D5, 0x0003D7],
+ [0x0003EF, 0x0003F3],
+ [0x000430, 0x00045F],
+ [0x0004CE, 0x0004CF],
+ [0x000561, 0x000587],
+ [0x0013F8, 0x0013FD],
+ [0x001C80, 0x001C88],
+ [0x001E95, 0x001E9B],
+ [0x001EFF, 0x001F07],
+ [0x001F10, 0x001F15],
+ [0x001F20, 0x001F27],
+ [0x001F30, 0x001F37],
+ [0x001F40, 0x001F45],
+ [0x001F50, 0x001F57],
+ [0x001F60, 0x001F67],
+ [0x001F70, 0x001F7D],
+ [0x001F80, 0x001F87],
+ [0x001F90, 0x001F97],
+ [0x001FA0, 0x001FA7],
+ [0x001FB0, 0x001FB4],
+ [0x001FB6, 0x001FB7],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FC7],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FD7],
+ [0x001FE0, 0x001FE7],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FF7],
+ [0x002170, 0x00217F],
+ [0x0024D0, 0x0024E9],
+ [0x002C30, 0x002C5E],
+ [0x002C65, 0x002C66],
+ [0x002D00, 0x002D25],
+ [0x00A793, 0x00A794],
+ [0x00AB70, 0x00ABBF],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FF41, 0x00FF5A],
+ [0x010428, 0x01044F],
+ [0x0104D8, 0x0104FB],
+ [0x010CC0, 0x010CF2],
+ [0x0118C0, 0x0118DF],
+ [0x016E60, 0x016E7F],
+ [0x01E922, 0x01E943]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Changes_When_Titlecased}+$/u,
+ matchSymbols,
+ "\\p{Changes_When_Titlecased}"
+);
+testPropertyEscapes(
+ /^\p{CWT}+$/u,
+ matchSymbols,
+ "\\p{CWT}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000F7,
+ 0x000100,
+ 0x000102,
+ 0x000104,
+ 0x000106,
+ 0x000108,
+ 0x00010A,
+ 0x00010C,
+ 0x00010E,
+ 0x000110,
+ 0x000112,
+ 0x000114,
+ 0x000116,
+ 0x000118,
+ 0x00011A,
+ 0x00011C,
+ 0x00011E,
+ 0x000120,
+ 0x000122,
+ 0x000124,
+ 0x000126,
+ 0x000128,
+ 0x00012A,
+ 0x00012C,
+ 0x00012E,
+ 0x000130,
+ 0x000132,
+ 0x000134,
+ 0x000136,
+ 0x00013B,
+ 0x00013D,
+ 0x00013F,
+ 0x000141,
+ 0x000143,
+ 0x000145,
+ 0x000147,
+ 0x00014A,
+ 0x00014C,
+ 0x00014E,
+ 0x000150,
+ 0x000152,
+ 0x000154,
+ 0x000156,
+ 0x000158,
+ 0x00015A,
+ 0x00015C,
+ 0x00015E,
+ 0x000160,
+ 0x000162,
+ 0x000164,
+ 0x000166,
+ 0x000168,
+ 0x00016A,
+ 0x00016C,
+ 0x00016E,
+ 0x000170,
+ 0x000172,
+ 0x000174,
+ 0x000176,
+ 0x00017B,
+ 0x00017D,
+ 0x000184,
+ 0x0001A2,
+ 0x0001A4,
+ 0x0001B5,
+ 0x0001BE,
+ 0x0001C5,
+ 0x0001C8,
+ 0x0001CB,
+ 0x0001CD,
+ 0x0001CF,
+ 0x0001D1,
+ 0x0001D3,
+ 0x0001D5,
+ 0x0001D7,
+ 0x0001D9,
+ 0x0001DB,
+ 0x0001DE,
+ 0x0001E0,
+ 0x0001E2,
+ 0x0001E4,
+ 0x0001E6,
+ 0x0001E8,
+ 0x0001EA,
+ 0x0001EC,
+ 0x0001EE,
+ 0x0001F2,
+ 0x0001F4,
+ 0x0001FA,
+ 0x0001FC,
+ 0x0001FE,
+ 0x000200,
+ 0x000202,
+ 0x000204,
+ 0x000206,
+ 0x000208,
+ 0x00020A,
+ 0x00020C,
+ 0x00020E,
+ 0x000210,
+ 0x000212,
+ 0x000214,
+ 0x000216,
+ 0x000218,
+ 0x00021A,
+ 0x00021C,
+ 0x00021E,
+ 0x000224,
+ 0x000226,
+ 0x000228,
+ 0x00022A,
+ 0x00022C,
+ 0x00022E,
+ 0x000230,
+ 0x000232,
+ 0x000241,
+ 0x000248,
+ 0x00024A,
+ 0x00024C,
+ 0x00024E,
+ 0x000255,
+ 0x000258,
+ 0x00025A,
+ 0x000262,
+ 0x000264,
+ 0x000267,
+ 0x000270,
+ 0x000281,
+ 0x000372,
+ 0x0003CF,
+ 0x0003D8,
+ 0x0003DA,
+ 0x0003DC,
+ 0x0003DE,
+ 0x0003E0,
+ 0x0003E2,
+ 0x0003E4,
+ 0x0003E6,
+ 0x0003E8,
+ 0x0003EA,
+ 0x0003EC,
+ 0x0003EE,
+ 0x0003F4,
+ 0x000460,
+ 0x000462,
+ 0x000464,
+ 0x000466,
+ 0x000468,
+ 0x00046A,
+ 0x00046C,
+ 0x00046E,
+ 0x000470,
+ 0x000472,
+ 0x000474,
+ 0x000476,
+ 0x000478,
+ 0x00047A,
+ 0x00047C,
+ 0x00047E,
+ 0x000480,
+ 0x00048C,
+ 0x00048E,
+ 0x000490,
+ 0x000492,
+ 0x000494,
+ 0x000496,
+ 0x000498,
+ 0x00049A,
+ 0x00049C,
+ 0x00049E,
+ 0x0004A0,
+ 0x0004A2,
+ 0x0004A4,
+ 0x0004A6,
+ 0x0004A8,
+ 0x0004AA,
+ 0x0004AC,
+ 0x0004AE,
+ 0x0004B0,
+ 0x0004B2,
+ 0x0004B4,
+ 0x0004B6,
+ 0x0004B8,
+ 0x0004BA,
+ 0x0004BC,
+ 0x0004BE,
+ 0x0004C3,
+ 0x0004C5,
+ 0x0004C7,
+ 0x0004C9,
+ 0x0004CB,
+ 0x0004CD,
+ 0x0004D0,
+ 0x0004D2,
+ 0x0004D4,
+ 0x0004D6,
+ 0x0004D8,
+ 0x0004DA,
+ 0x0004DC,
+ 0x0004DE,
+ 0x0004E0,
+ 0x0004E2,
+ 0x0004E4,
+ 0x0004E6,
+ 0x0004E8,
+ 0x0004EA,
+ 0x0004EC,
+ 0x0004EE,
+ 0x0004F0,
+ 0x0004F2,
+ 0x0004F4,
+ 0x0004F6,
+ 0x0004F8,
+ 0x0004FA,
+ 0x0004FC,
+ 0x0004FE,
+ 0x000500,
+ 0x000502,
+ 0x000504,
+ 0x000506,
+ 0x000508,
+ 0x00050A,
+ 0x00050C,
+ 0x00050E,
+ 0x000510,
+ 0x000512,
+ 0x000514,
+ 0x000516,
+ 0x000518,
+ 0x00051A,
+ 0x00051C,
+ 0x00051E,
+ 0x000520,
+ 0x000522,
+ 0x000524,
+ 0x000526,
+ 0x000528,
+ 0x00052A,
+ 0x00052C,
+ 0x00052E,
+ 0x001E02,
+ 0x001E04,
+ 0x001E06,
+ 0x001E08,
+ 0x001E0A,
+ 0x001E0C,
+ 0x001E0E,
+ 0x001E10,
+ 0x001E12,
+ 0x001E14,
+ 0x001E16,
+ 0x001E18,
+ 0x001E1A,
+ 0x001E1C,
+ 0x001E1E,
+ 0x001E20,
+ 0x001E22,
+ 0x001E24,
+ 0x001E26,
+ 0x001E28,
+ 0x001E2A,
+ 0x001E2C,
+ 0x001E2E,
+ 0x001E30,
+ 0x001E32,
+ 0x001E34,
+ 0x001E36,
+ 0x001E38,
+ 0x001E3A,
+ 0x001E3C,
+ 0x001E3E,
+ 0x001E40,
+ 0x001E42,
+ 0x001E44,
+ 0x001E46,
+ 0x001E48,
+ 0x001E4A,
+ 0x001E4C,
+ 0x001E4E,
+ 0x001E50,
+ 0x001E52,
+ 0x001E54,
+ 0x001E56,
+ 0x001E58,
+ 0x001E5A,
+ 0x001E5C,
+ 0x001E5E,
+ 0x001E60,
+ 0x001E62,
+ 0x001E64,
+ 0x001E66,
+ 0x001E68,
+ 0x001E6A,
+ 0x001E6C,
+ 0x001E6E,
+ 0x001E70,
+ 0x001E72,
+ 0x001E74,
+ 0x001E76,
+ 0x001E78,
+ 0x001E7A,
+ 0x001E7C,
+ 0x001E7E,
+ 0x001E80,
+ 0x001E82,
+ 0x001E84,
+ 0x001E86,
+ 0x001E88,
+ 0x001E8A,
+ 0x001E8C,
+ 0x001E8E,
+ 0x001E90,
+ 0x001E92,
+ 0x001E94,
+ 0x001EA2,
+ 0x001EA4,
+ 0x001EA6,
+ 0x001EA8,
+ 0x001EAA,
+ 0x001EAC,
+ 0x001EAE,
+ 0x001EB0,
+ 0x001EB2,
+ 0x001EB4,
+ 0x001EB6,
+ 0x001EB8,
+ 0x001EBA,
+ 0x001EBC,
+ 0x001EBE,
+ 0x001EC0,
+ 0x001EC2,
+ 0x001EC4,
+ 0x001EC6,
+ 0x001EC8,
+ 0x001ECA,
+ 0x001ECC,
+ 0x001ECE,
+ 0x001ED0,
+ 0x001ED2,
+ 0x001ED4,
+ 0x001ED6,
+ 0x001ED8,
+ 0x001EDA,
+ 0x001EDC,
+ 0x001EDE,
+ 0x001EE0,
+ 0x001EE2,
+ 0x001EE4,
+ 0x001EE6,
+ 0x001EE8,
+ 0x001EEA,
+ 0x001EEC,
+ 0x001EEE,
+ 0x001EF0,
+ 0x001EF2,
+ 0x001EF4,
+ 0x001EF6,
+ 0x001EF8,
+ 0x001EFA,
+ 0x001EFC,
+ 0x001EFE,
+ 0x001FB5,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002C67,
+ 0x002C69,
+ 0x002C6B,
+ 0x002C82,
+ 0x002C84,
+ 0x002C86,
+ 0x002C88,
+ 0x002C8A,
+ 0x002C8C,
+ 0x002C8E,
+ 0x002C90,
+ 0x002C92,
+ 0x002C94,
+ 0x002C96,
+ 0x002C98,
+ 0x002C9A,
+ 0x002C9C,
+ 0x002C9E,
+ 0x002CA0,
+ 0x002CA2,
+ 0x002CA4,
+ 0x002CA6,
+ 0x002CA8,
+ 0x002CAA,
+ 0x002CAC,
+ 0x002CAE,
+ 0x002CB0,
+ 0x002CB2,
+ 0x002CB4,
+ 0x002CB6,
+ 0x002CB8,
+ 0x002CBA,
+ 0x002CBC,
+ 0x002CBE,
+ 0x002CC0,
+ 0x002CC2,
+ 0x002CC4,
+ 0x002CC6,
+ 0x002CC8,
+ 0x002CCA,
+ 0x002CCC,
+ 0x002CCE,
+ 0x002CD0,
+ 0x002CD2,
+ 0x002CD4,
+ 0x002CD6,
+ 0x002CD8,
+ 0x002CDA,
+ 0x002CDC,
+ 0x002CDE,
+ 0x002CE0,
+ 0x002CE2,
+ 0x002CED,
+ 0x002D26,
+ 0x00A642,
+ 0x00A644,
+ 0x00A646,
+ 0x00A648,
+ 0x00A64A,
+ 0x00A64C,
+ 0x00A64E,
+ 0x00A650,
+ 0x00A652,
+ 0x00A654,
+ 0x00A656,
+ 0x00A658,
+ 0x00A65A,
+ 0x00A65C,
+ 0x00A65E,
+ 0x00A660,
+ 0x00A662,
+ 0x00A664,
+ 0x00A666,
+ 0x00A668,
+ 0x00A66A,
+ 0x00A66C,
+ 0x00A682,
+ 0x00A684,
+ 0x00A686,
+ 0x00A688,
+ 0x00A68A,
+ 0x00A68C,
+ 0x00A68E,
+ 0x00A690,
+ 0x00A692,
+ 0x00A694,
+ 0x00A696,
+ 0x00A698,
+ 0x00A69A,
+ 0x00A724,
+ 0x00A726,
+ 0x00A728,
+ 0x00A72A,
+ 0x00A72C,
+ 0x00A72E,
+ 0x00A734,
+ 0x00A736,
+ 0x00A738,
+ 0x00A73A,
+ 0x00A73C,
+ 0x00A73E,
+ 0x00A740,
+ 0x00A742,
+ 0x00A744,
+ 0x00A746,
+ 0x00A748,
+ 0x00A74A,
+ 0x00A74C,
+ 0x00A74E,
+ 0x00A750,
+ 0x00A752,
+ 0x00A754,
+ 0x00A756,
+ 0x00A758,
+ 0x00A75A,
+ 0x00A75C,
+ 0x00A75E,
+ 0x00A760,
+ 0x00A762,
+ 0x00A764,
+ 0x00A766,
+ 0x00A768,
+ 0x00A76A,
+ 0x00A76C,
+ 0x00A76E,
+ 0x00A77B,
+ 0x00A780,
+ 0x00A782,
+ 0x00A784,
+ 0x00A786,
+ 0x00A792,
+ 0x00A798,
+ 0x00A79A,
+ 0x00A79C,
+ 0x00A79E,
+ 0x00A7A0,
+ 0x00A7A2,
+ 0x00A7A4,
+ 0x00A7A6,
+ 0x00A7A8,
+ 0x00A7B6,
+ 0x00A7B8,
+ 0x00A7BA,
+ 0x00A7BC,
+ 0x00A7BE,
+ 0x00A7C9
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000060],
+ [0x00007B, 0x0000B4],
+ [0x0000B6, 0x0000DE],
+ [0x000138, 0x000139],
+ [0x000178, 0x000179],
+ [0x000181, 0x000182],
+ [0x000186, 0x000187],
+ [0x000189, 0x00018B],
+ [0x00018D, 0x000191],
+ [0x000193, 0x000194],
+ [0x000196, 0x000198],
+ [0x00019B, 0x00019D],
+ [0x00019F, 0x0001A0],
+ [0x0001A6, 0x0001A7],
+ [0x0001A9, 0x0001AC],
+ [0x0001AE, 0x0001AF],
+ [0x0001B1, 0x0001B3],
+ [0x0001B7, 0x0001B8],
+ [0x0001BA, 0x0001BC],
+ [0x0001C0, 0x0001C3],
+ [0x0001F6, 0x0001F8],
+ [0x000220, 0x000222],
+ [0x000234, 0x00023B],
+ [0x00023D, 0x00023E],
+ [0x000243, 0x000246],
+ [0x00025D, 0x00025F],
+ [0x00026D, 0x00026E],
+ [0x000273, 0x000274],
+ [0x000276, 0x00027C],
+ [0x00027E, 0x00027F],
+ [0x000284, 0x000286],
+ [0x00028D, 0x000291],
+ [0x000293, 0x00029C],
+ [0x00029F, 0x000344],
+ [0x000346, 0x000370],
+ [0x000374, 0x000376],
+ [0x000378, 0x00037A],
+ [0x00037E, 0x00038F],
+ [0x000391, 0x0003AB],
+ [0x0003D2, 0x0003D4],
+ [0x0003F6, 0x0003F7],
+ [0x0003F9, 0x0003FA],
+ [0x0003FC, 0x00042F],
+ [0x000482, 0x00048A],
+ [0x0004C0, 0x0004C1],
+ [0x000530, 0x000560],
+ [0x000588, 0x0013F7],
+ [0x0013FE, 0x001C7F],
+ [0x001C89, 0x001D78],
+ [0x001D7A, 0x001D7C],
+ [0x001D7E, 0x001D8D],
+ [0x001D8F, 0x001E00],
+ [0x001E9C, 0x001EA0],
+ [0x001F08, 0x001F0F],
+ [0x001F16, 0x001F1F],
+ [0x001F28, 0x001F2F],
+ [0x001F38, 0x001F3F],
+ [0x001F46, 0x001F4F],
+ [0x001F58, 0x001F5F],
+ [0x001F68, 0x001F6F],
+ [0x001F7E, 0x001F7F],
+ [0x001F88, 0x001F8F],
+ [0x001F98, 0x001F9F],
+ [0x001FA8, 0x001FAF],
+ [0x001FB8, 0x001FBD],
+ [0x001FBF, 0x001FC1],
+ [0x001FC8, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FD8, 0x001FDF],
+ [0x001FE8, 0x001FF1],
+ [0x001FF8, 0x00214D],
+ [0x00214F, 0x00216F],
+ [0x002180, 0x002183],
+ [0x002185, 0x0024CF],
+ [0x0024EA, 0x002C2F],
+ [0x002C5F, 0x002C60],
+ [0x002C62, 0x002C64],
+ [0x002C6D, 0x002C72],
+ [0x002C74, 0x002C75],
+ [0x002C77, 0x002C80],
+ [0x002CE4, 0x002CEB],
+ [0x002CEF, 0x002CF2],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x00A640],
+ [0x00A66E, 0x00A680],
+ [0x00A69C, 0x00A722],
+ [0x00A730, 0x00A732],
+ [0x00A770, 0x00A779],
+ [0x00A77D, 0x00A77E],
+ [0x00A788, 0x00A78B],
+ [0x00A78D, 0x00A790],
+ [0x00A795, 0x00A796],
+ [0x00A7AA, 0x00A7B4],
+ [0x00A7C0, 0x00A7C2],
+ [0x00A7C4, 0x00A7C7],
+ [0x00A7CB, 0x00A7F5],
+ [0x00A7F7, 0x00AB52],
+ [0x00AB54, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FF40],
+ [0x00FF5B, 0x010427],
+ [0x010450, 0x0104D7],
+ [0x0104FC, 0x010CBF],
+ [0x010CF3, 0x0118BF],
+ [0x0118E0, 0x016E5F],
+ [0x016E80, 0x01E921],
+ [0x01E944, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Changes_When_Titlecased}+$/u,
+ nonMatchSymbols,
+ "\\P{Changes_When_Titlecased}"
+);
+testPropertyEscapes(
+ /^\P{CWT}+$/u,
+ nonMatchSymbols,
+ "\\P{CWT}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Uppercased.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Uppercased.js
new file mode 100644
index 0000000000..8f4deb9764
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Changes_When_Uppercased.js
@@ -0,0 +1,1291 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Changes_When_Uppercased`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000B5,
+ 0x000101,
+ 0x000103,
+ 0x000105,
+ 0x000107,
+ 0x000109,
+ 0x00010B,
+ 0x00010D,
+ 0x00010F,
+ 0x000111,
+ 0x000113,
+ 0x000115,
+ 0x000117,
+ 0x000119,
+ 0x00011B,
+ 0x00011D,
+ 0x00011F,
+ 0x000121,
+ 0x000123,
+ 0x000125,
+ 0x000127,
+ 0x000129,
+ 0x00012B,
+ 0x00012D,
+ 0x00012F,
+ 0x000131,
+ 0x000133,
+ 0x000135,
+ 0x000137,
+ 0x00013A,
+ 0x00013C,
+ 0x00013E,
+ 0x000140,
+ 0x000142,
+ 0x000144,
+ 0x000146,
+ 0x00014B,
+ 0x00014D,
+ 0x00014F,
+ 0x000151,
+ 0x000153,
+ 0x000155,
+ 0x000157,
+ 0x000159,
+ 0x00015B,
+ 0x00015D,
+ 0x00015F,
+ 0x000161,
+ 0x000163,
+ 0x000165,
+ 0x000167,
+ 0x000169,
+ 0x00016B,
+ 0x00016D,
+ 0x00016F,
+ 0x000171,
+ 0x000173,
+ 0x000175,
+ 0x000177,
+ 0x00017A,
+ 0x00017C,
+ 0x000183,
+ 0x000185,
+ 0x000188,
+ 0x00018C,
+ 0x000192,
+ 0x000195,
+ 0x00019E,
+ 0x0001A1,
+ 0x0001A3,
+ 0x0001A5,
+ 0x0001A8,
+ 0x0001AD,
+ 0x0001B0,
+ 0x0001B4,
+ 0x0001B6,
+ 0x0001B9,
+ 0x0001BD,
+ 0x0001BF,
+ 0x0001CE,
+ 0x0001D0,
+ 0x0001D2,
+ 0x0001D4,
+ 0x0001D6,
+ 0x0001D8,
+ 0x0001DA,
+ 0x0001DF,
+ 0x0001E1,
+ 0x0001E3,
+ 0x0001E5,
+ 0x0001E7,
+ 0x0001E9,
+ 0x0001EB,
+ 0x0001ED,
+ 0x0001F5,
+ 0x0001F9,
+ 0x0001FB,
+ 0x0001FD,
+ 0x0001FF,
+ 0x000201,
+ 0x000203,
+ 0x000205,
+ 0x000207,
+ 0x000209,
+ 0x00020B,
+ 0x00020D,
+ 0x00020F,
+ 0x000211,
+ 0x000213,
+ 0x000215,
+ 0x000217,
+ 0x000219,
+ 0x00021B,
+ 0x00021D,
+ 0x00021F,
+ 0x000223,
+ 0x000225,
+ 0x000227,
+ 0x000229,
+ 0x00022B,
+ 0x00022D,
+ 0x00022F,
+ 0x000231,
+ 0x000233,
+ 0x00023C,
+ 0x000242,
+ 0x000247,
+ 0x000249,
+ 0x00024B,
+ 0x00024D,
+ 0x000259,
+ 0x000263,
+ 0x00026F,
+ 0x000275,
+ 0x00027D,
+ 0x000280,
+ 0x000292,
+ 0x000345,
+ 0x000371,
+ 0x000373,
+ 0x000377,
+ 0x000390,
+ 0x0003D9,
+ 0x0003DB,
+ 0x0003DD,
+ 0x0003DF,
+ 0x0003E1,
+ 0x0003E3,
+ 0x0003E5,
+ 0x0003E7,
+ 0x0003E9,
+ 0x0003EB,
+ 0x0003ED,
+ 0x0003F5,
+ 0x0003F8,
+ 0x0003FB,
+ 0x000461,
+ 0x000463,
+ 0x000465,
+ 0x000467,
+ 0x000469,
+ 0x00046B,
+ 0x00046D,
+ 0x00046F,
+ 0x000471,
+ 0x000473,
+ 0x000475,
+ 0x000477,
+ 0x000479,
+ 0x00047B,
+ 0x00047D,
+ 0x00047F,
+ 0x000481,
+ 0x00048B,
+ 0x00048D,
+ 0x00048F,
+ 0x000491,
+ 0x000493,
+ 0x000495,
+ 0x000497,
+ 0x000499,
+ 0x00049B,
+ 0x00049D,
+ 0x00049F,
+ 0x0004A1,
+ 0x0004A3,
+ 0x0004A5,
+ 0x0004A7,
+ 0x0004A9,
+ 0x0004AB,
+ 0x0004AD,
+ 0x0004AF,
+ 0x0004B1,
+ 0x0004B3,
+ 0x0004B5,
+ 0x0004B7,
+ 0x0004B9,
+ 0x0004BB,
+ 0x0004BD,
+ 0x0004BF,
+ 0x0004C2,
+ 0x0004C4,
+ 0x0004C6,
+ 0x0004C8,
+ 0x0004CA,
+ 0x0004CC,
+ 0x0004D1,
+ 0x0004D3,
+ 0x0004D5,
+ 0x0004D7,
+ 0x0004D9,
+ 0x0004DB,
+ 0x0004DD,
+ 0x0004DF,
+ 0x0004E1,
+ 0x0004E3,
+ 0x0004E5,
+ 0x0004E7,
+ 0x0004E9,
+ 0x0004EB,
+ 0x0004ED,
+ 0x0004EF,
+ 0x0004F1,
+ 0x0004F3,
+ 0x0004F5,
+ 0x0004F7,
+ 0x0004F9,
+ 0x0004FB,
+ 0x0004FD,
+ 0x0004FF,
+ 0x000501,
+ 0x000503,
+ 0x000505,
+ 0x000507,
+ 0x000509,
+ 0x00050B,
+ 0x00050D,
+ 0x00050F,
+ 0x000511,
+ 0x000513,
+ 0x000515,
+ 0x000517,
+ 0x000519,
+ 0x00051B,
+ 0x00051D,
+ 0x00051F,
+ 0x000521,
+ 0x000523,
+ 0x000525,
+ 0x000527,
+ 0x000529,
+ 0x00052B,
+ 0x00052D,
+ 0x00052F,
+ 0x001D79,
+ 0x001D7D,
+ 0x001D8E,
+ 0x001E01,
+ 0x001E03,
+ 0x001E05,
+ 0x001E07,
+ 0x001E09,
+ 0x001E0B,
+ 0x001E0D,
+ 0x001E0F,
+ 0x001E11,
+ 0x001E13,
+ 0x001E15,
+ 0x001E17,
+ 0x001E19,
+ 0x001E1B,
+ 0x001E1D,
+ 0x001E1F,
+ 0x001E21,
+ 0x001E23,
+ 0x001E25,
+ 0x001E27,
+ 0x001E29,
+ 0x001E2B,
+ 0x001E2D,
+ 0x001E2F,
+ 0x001E31,
+ 0x001E33,
+ 0x001E35,
+ 0x001E37,
+ 0x001E39,
+ 0x001E3B,
+ 0x001E3D,
+ 0x001E3F,
+ 0x001E41,
+ 0x001E43,
+ 0x001E45,
+ 0x001E47,
+ 0x001E49,
+ 0x001E4B,
+ 0x001E4D,
+ 0x001E4F,
+ 0x001E51,
+ 0x001E53,
+ 0x001E55,
+ 0x001E57,
+ 0x001E59,
+ 0x001E5B,
+ 0x001E5D,
+ 0x001E5F,
+ 0x001E61,
+ 0x001E63,
+ 0x001E65,
+ 0x001E67,
+ 0x001E69,
+ 0x001E6B,
+ 0x001E6D,
+ 0x001E6F,
+ 0x001E71,
+ 0x001E73,
+ 0x001E75,
+ 0x001E77,
+ 0x001E79,
+ 0x001E7B,
+ 0x001E7D,
+ 0x001E7F,
+ 0x001E81,
+ 0x001E83,
+ 0x001E85,
+ 0x001E87,
+ 0x001E89,
+ 0x001E8B,
+ 0x001E8D,
+ 0x001E8F,
+ 0x001E91,
+ 0x001E93,
+ 0x001EA1,
+ 0x001EA3,
+ 0x001EA5,
+ 0x001EA7,
+ 0x001EA9,
+ 0x001EAB,
+ 0x001EAD,
+ 0x001EAF,
+ 0x001EB1,
+ 0x001EB3,
+ 0x001EB5,
+ 0x001EB7,
+ 0x001EB9,
+ 0x001EBB,
+ 0x001EBD,
+ 0x001EBF,
+ 0x001EC1,
+ 0x001EC3,
+ 0x001EC5,
+ 0x001EC7,
+ 0x001EC9,
+ 0x001ECB,
+ 0x001ECD,
+ 0x001ECF,
+ 0x001ED1,
+ 0x001ED3,
+ 0x001ED5,
+ 0x001ED7,
+ 0x001ED9,
+ 0x001EDB,
+ 0x001EDD,
+ 0x001EDF,
+ 0x001EE1,
+ 0x001EE3,
+ 0x001EE5,
+ 0x001EE7,
+ 0x001EE9,
+ 0x001EEB,
+ 0x001EED,
+ 0x001EEF,
+ 0x001EF1,
+ 0x001EF3,
+ 0x001EF5,
+ 0x001EF7,
+ 0x001EF9,
+ 0x001EFB,
+ 0x001EFD,
+ 0x001FBC,
+ 0x001FBE,
+ 0x001FCC,
+ 0x001FFC,
+ 0x00214E,
+ 0x002184,
+ 0x002C61,
+ 0x002C68,
+ 0x002C6A,
+ 0x002C6C,
+ 0x002C73,
+ 0x002C76,
+ 0x002C81,
+ 0x002C83,
+ 0x002C85,
+ 0x002C87,
+ 0x002C89,
+ 0x002C8B,
+ 0x002C8D,
+ 0x002C8F,
+ 0x002C91,
+ 0x002C93,
+ 0x002C95,
+ 0x002C97,
+ 0x002C99,
+ 0x002C9B,
+ 0x002C9D,
+ 0x002C9F,
+ 0x002CA1,
+ 0x002CA3,
+ 0x002CA5,
+ 0x002CA7,
+ 0x002CA9,
+ 0x002CAB,
+ 0x002CAD,
+ 0x002CAF,
+ 0x002CB1,
+ 0x002CB3,
+ 0x002CB5,
+ 0x002CB7,
+ 0x002CB9,
+ 0x002CBB,
+ 0x002CBD,
+ 0x002CBF,
+ 0x002CC1,
+ 0x002CC3,
+ 0x002CC5,
+ 0x002CC7,
+ 0x002CC9,
+ 0x002CCB,
+ 0x002CCD,
+ 0x002CCF,
+ 0x002CD1,
+ 0x002CD3,
+ 0x002CD5,
+ 0x002CD7,
+ 0x002CD9,
+ 0x002CDB,
+ 0x002CDD,
+ 0x002CDF,
+ 0x002CE1,
+ 0x002CE3,
+ 0x002CEC,
+ 0x002CEE,
+ 0x002CF3,
+ 0x002D27,
+ 0x002D2D,
+ 0x00A641,
+ 0x00A643,
+ 0x00A645,
+ 0x00A647,
+ 0x00A649,
+ 0x00A64B,
+ 0x00A64D,
+ 0x00A64F,
+ 0x00A651,
+ 0x00A653,
+ 0x00A655,
+ 0x00A657,
+ 0x00A659,
+ 0x00A65B,
+ 0x00A65D,
+ 0x00A65F,
+ 0x00A661,
+ 0x00A663,
+ 0x00A665,
+ 0x00A667,
+ 0x00A669,
+ 0x00A66B,
+ 0x00A66D,
+ 0x00A681,
+ 0x00A683,
+ 0x00A685,
+ 0x00A687,
+ 0x00A689,
+ 0x00A68B,
+ 0x00A68D,
+ 0x00A68F,
+ 0x00A691,
+ 0x00A693,
+ 0x00A695,
+ 0x00A697,
+ 0x00A699,
+ 0x00A69B,
+ 0x00A723,
+ 0x00A725,
+ 0x00A727,
+ 0x00A729,
+ 0x00A72B,
+ 0x00A72D,
+ 0x00A72F,
+ 0x00A733,
+ 0x00A735,
+ 0x00A737,
+ 0x00A739,
+ 0x00A73B,
+ 0x00A73D,
+ 0x00A73F,
+ 0x00A741,
+ 0x00A743,
+ 0x00A745,
+ 0x00A747,
+ 0x00A749,
+ 0x00A74B,
+ 0x00A74D,
+ 0x00A74F,
+ 0x00A751,
+ 0x00A753,
+ 0x00A755,
+ 0x00A757,
+ 0x00A759,
+ 0x00A75B,
+ 0x00A75D,
+ 0x00A75F,
+ 0x00A761,
+ 0x00A763,
+ 0x00A765,
+ 0x00A767,
+ 0x00A769,
+ 0x00A76B,
+ 0x00A76D,
+ 0x00A76F,
+ 0x00A77A,
+ 0x00A77C,
+ 0x00A77F,
+ 0x00A781,
+ 0x00A783,
+ 0x00A785,
+ 0x00A787,
+ 0x00A78C,
+ 0x00A791,
+ 0x00A797,
+ 0x00A799,
+ 0x00A79B,
+ 0x00A79D,
+ 0x00A79F,
+ 0x00A7A1,
+ 0x00A7A3,
+ 0x00A7A5,
+ 0x00A7A7,
+ 0x00A7A9,
+ 0x00A7B5,
+ 0x00A7B7,
+ 0x00A7B9,
+ 0x00A7BB,
+ 0x00A7BD,
+ 0x00A7BF,
+ 0x00A7C3,
+ 0x00A7C8,
+ 0x00A7CA,
+ 0x00A7F6,
+ 0x00AB53
+ ],
+ ranges: [
+ [0x000061, 0x00007A],
+ [0x0000DF, 0x0000F6],
+ [0x0000F8, 0x0000FF],
+ [0x000148, 0x000149],
+ [0x00017E, 0x000180],
+ [0x000199, 0x00019A],
+ [0x0001C5, 0x0001C6],
+ [0x0001C8, 0x0001C9],
+ [0x0001CB, 0x0001CC],
+ [0x0001DC, 0x0001DD],
+ [0x0001EF, 0x0001F0],
+ [0x0001F2, 0x0001F3],
+ [0x00023F, 0x000240],
+ [0x00024F, 0x000254],
+ [0x000256, 0x000257],
+ [0x00025B, 0x00025C],
+ [0x000260, 0x000261],
+ [0x000265, 0x000266],
+ [0x000268, 0x00026C],
+ [0x000271, 0x000272],
+ [0x000282, 0x000283],
+ [0x000287, 0x00028C],
+ [0x00029D, 0x00029E],
+ [0x00037B, 0x00037D],
+ [0x0003AC, 0x0003CE],
+ [0x0003D0, 0x0003D1],
+ [0x0003D5, 0x0003D7],
+ [0x0003EF, 0x0003F3],
+ [0x000430, 0x00045F],
+ [0x0004CE, 0x0004CF],
+ [0x000561, 0x000587],
+ [0x0010D0, 0x0010FA],
+ [0x0010FD, 0x0010FF],
+ [0x0013F8, 0x0013FD],
+ [0x001C80, 0x001C88],
+ [0x001E95, 0x001E9B],
+ [0x001EFF, 0x001F07],
+ [0x001F10, 0x001F15],
+ [0x001F20, 0x001F27],
+ [0x001F30, 0x001F37],
+ [0x001F40, 0x001F45],
+ [0x001F50, 0x001F57],
+ [0x001F60, 0x001F67],
+ [0x001F70, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FB7],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FC7],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FD7],
+ [0x001FE0, 0x001FE7],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FF7],
+ [0x002170, 0x00217F],
+ [0x0024D0, 0x0024E9],
+ [0x002C30, 0x002C5E],
+ [0x002C65, 0x002C66],
+ [0x002D00, 0x002D25],
+ [0x00A793, 0x00A794],
+ [0x00AB70, 0x00ABBF],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FF41, 0x00FF5A],
+ [0x010428, 0x01044F],
+ [0x0104D8, 0x0104FB],
+ [0x010CC0, 0x010CF2],
+ [0x0118C0, 0x0118DF],
+ [0x016E60, 0x016E7F],
+ [0x01E922, 0x01E943]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Changes_When_Uppercased}+$/u,
+ matchSymbols,
+ "\\p{Changes_When_Uppercased}"
+);
+testPropertyEscapes(
+ /^\p{CWU}+$/u,
+ matchSymbols,
+ "\\p{CWU}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000F7,
+ 0x000100,
+ 0x000102,
+ 0x000104,
+ 0x000106,
+ 0x000108,
+ 0x00010A,
+ 0x00010C,
+ 0x00010E,
+ 0x000110,
+ 0x000112,
+ 0x000114,
+ 0x000116,
+ 0x000118,
+ 0x00011A,
+ 0x00011C,
+ 0x00011E,
+ 0x000120,
+ 0x000122,
+ 0x000124,
+ 0x000126,
+ 0x000128,
+ 0x00012A,
+ 0x00012C,
+ 0x00012E,
+ 0x000130,
+ 0x000132,
+ 0x000134,
+ 0x000136,
+ 0x00013B,
+ 0x00013D,
+ 0x00013F,
+ 0x000141,
+ 0x000143,
+ 0x000145,
+ 0x000147,
+ 0x00014A,
+ 0x00014C,
+ 0x00014E,
+ 0x000150,
+ 0x000152,
+ 0x000154,
+ 0x000156,
+ 0x000158,
+ 0x00015A,
+ 0x00015C,
+ 0x00015E,
+ 0x000160,
+ 0x000162,
+ 0x000164,
+ 0x000166,
+ 0x000168,
+ 0x00016A,
+ 0x00016C,
+ 0x00016E,
+ 0x000170,
+ 0x000172,
+ 0x000174,
+ 0x000176,
+ 0x00017B,
+ 0x00017D,
+ 0x000184,
+ 0x0001A2,
+ 0x0001A4,
+ 0x0001B5,
+ 0x0001BE,
+ 0x0001C7,
+ 0x0001CA,
+ 0x0001CD,
+ 0x0001CF,
+ 0x0001D1,
+ 0x0001D3,
+ 0x0001D5,
+ 0x0001D7,
+ 0x0001D9,
+ 0x0001DB,
+ 0x0001DE,
+ 0x0001E0,
+ 0x0001E2,
+ 0x0001E4,
+ 0x0001E6,
+ 0x0001E8,
+ 0x0001EA,
+ 0x0001EC,
+ 0x0001EE,
+ 0x0001F1,
+ 0x0001F4,
+ 0x0001FA,
+ 0x0001FC,
+ 0x0001FE,
+ 0x000200,
+ 0x000202,
+ 0x000204,
+ 0x000206,
+ 0x000208,
+ 0x00020A,
+ 0x00020C,
+ 0x00020E,
+ 0x000210,
+ 0x000212,
+ 0x000214,
+ 0x000216,
+ 0x000218,
+ 0x00021A,
+ 0x00021C,
+ 0x00021E,
+ 0x000224,
+ 0x000226,
+ 0x000228,
+ 0x00022A,
+ 0x00022C,
+ 0x00022E,
+ 0x000230,
+ 0x000232,
+ 0x000241,
+ 0x000248,
+ 0x00024A,
+ 0x00024C,
+ 0x00024E,
+ 0x000255,
+ 0x000258,
+ 0x00025A,
+ 0x000262,
+ 0x000264,
+ 0x000267,
+ 0x000270,
+ 0x000281,
+ 0x000372,
+ 0x0003CF,
+ 0x0003D8,
+ 0x0003DA,
+ 0x0003DC,
+ 0x0003DE,
+ 0x0003E0,
+ 0x0003E2,
+ 0x0003E4,
+ 0x0003E6,
+ 0x0003E8,
+ 0x0003EA,
+ 0x0003EC,
+ 0x0003EE,
+ 0x0003F4,
+ 0x000460,
+ 0x000462,
+ 0x000464,
+ 0x000466,
+ 0x000468,
+ 0x00046A,
+ 0x00046C,
+ 0x00046E,
+ 0x000470,
+ 0x000472,
+ 0x000474,
+ 0x000476,
+ 0x000478,
+ 0x00047A,
+ 0x00047C,
+ 0x00047E,
+ 0x000480,
+ 0x00048C,
+ 0x00048E,
+ 0x000490,
+ 0x000492,
+ 0x000494,
+ 0x000496,
+ 0x000498,
+ 0x00049A,
+ 0x00049C,
+ 0x00049E,
+ 0x0004A0,
+ 0x0004A2,
+ 0x0004A4,
+ 0x0004A6,
+ 0x0004A8,
+ 0x0004AA,
+ 0x0004AC,
+ 0x0004AE,
+ 0x0004B0,
+ 0x0004B2,
+ 0x0004B4,
+ 0x0004B6,
+ 0x0004B8,
+ 0x0004BA,
+ 0x0004BC,
+ 0x0004BE,
+ 0x0004C3,
+ 0x0004C5,
+ 0x0004C7,
+ 0x0004C9,
+ 0x0004CB,
+ 0x0004CD,
+ 0x0004D0,
+ 0x0004D2,
+ 0x0004D4,
+ 0x0004D6,
+ 0x0004D8,
+ 0x0004DA,
+ 0x0004DC,
+ 0x0004DE,
+ 0x0004E0,
+ 0x0004E2,
+ 0x0004E4,
+ 0x0004E6,
+ 0x0004E8,
+ 0x0004EA,
+ 0x0004EC,
+ 0x0004EE,
+ 0x0004F0,
+ 0x0004F2,
+ 0x0004F4,
+ 0x0004F6,
+ 0x0004F8,
+ 0x0004FA,
+ 0x0004FC,
+ 0x0004FE,
+ 0x000500,
+ 0x000502,
+ 0x000504,
+ 0x000506,
+ 0x000508,
+ 0x00050A,
+ 0x00050C,
+ 0x00050E,
+ 0x000510,
+ 0x000512,
+ 0x000514,
+ 0x000516,
+ 0x000518,
+ 0x00051A,
+ 0x00051C,
+ 0x00051E,
+ 0x000520,
+ 0x000522,
+ 0x000524,
+ 0x000526,
+ 0x000528,
+ 0x00052A,
+ 0x00052C,
+ 0x00052E,
+ 0x001E02,
+ 0x001E04,
+ 0x001E06,
+ 0x001E08,
+ 0x001E0A,
+ 0x001E0C,
+ 0x001E0E,
+ 0x001E10,
+ 0x001E12,
+ 0x001E14,
+ 0x001E16,
+ 0x001E18,
+ 0x001E1A,
+ 0x001E1C,
+ 0x001E1E,
+ 0x001E20,
+ 0x001E22,
+ 0x001E24,
+ 0x001E26,
+ 0x001E28,
+ 0x001E2A,
+ 0x001E2C,
+ 0x001E2E,
+ 0x001E30,
+ 0x001E32,
+ 0x001E34,
+ 0x001E36,
+ 0x001E38,
+ 0x001E3A,
+ 0x001E3C,
+ 0x001E3E,
+ 0x001E40,
+ 0x001E42,
+ 0x001E44,
+ 0x001E46,
+ 0x001E48,
+ 0x001E4A,
+ 0x001E4C,
+ 0x001E4E,
+ 0x001E50,
+ 0x001E52,
+ 0x001E54,
+ 0x001E56,
+ 0x001E58,
+ 0x001E5A,
+ 0x001E5C,
+ 0x001E5E,
+ 0x001E60,
+ 0x001E62,
+ 0x001E64,
+ 0x001E66,
+ 0x001E68,
+ 0x001E6A,
+ 0x001E6C,
+ 0x001E6E,
+ 0x001E70,
+ 0x001E72,
+ 0x001E74,
+ 0x001E76,
+ 0x001E78,
+ 0x001E7A,
+ 0x001E7C,
+ 0x001E7E,
+ 0x001E80,
+ 0x001E82,
+ 0x001E84,
+ 0x001E86,
+ 0x001E88,
+ 0x001E8A,
+ 0x001E8C,
+ 0x001E8E,
+ 0x001E90,
+ 0x001E92,
+ 0x001E94,
+ 0x001EA2,
+ 0x001EA4,
+ 0x001EA6,
+ 0x001EA8,
+ 0x001EAA,
+ 0x001EAC,
+ 0x001EAE,
+ 0x001EB0,
+ 0x001EB2,
+ 0x001EB4,
+ 0x001EB6,
+ 0x001EB8,
+ 0x001EBA,
+ 0x001EBC,
+ 0x001EBE,
+ 0x001EC0,
+ 0x001EC2,
+ 0x001EC4,
+ 0x001EC6,
+ 0x001EC8,
+ 0x001ECA,
+ 0x001ECC,
+ 0x001ECE,
+ 0x001ED0,
+ 0x001ED2,
+ 0x001ED4,
+ 0x001ED6,
+ 0x001ED8,
+ 0x001EDA,
+ 0x001EDC,
+ 0x001EDE,
+ 0x001EE0,
+ 0x001EE2,
+ 0x001EE4,
+ 0x001EE6,
+ 0x001EE8,
+ 0x001EEA,
+ 0x001EEC,
+ 0x001EEE,
+ 0x001EF0,
+ 0x001EF2,
+ 0x001EF4,
+ 0x001EF6,
+ 0x001EF8,
+ 0x001EFA,
+ 0x001EFC,
+ 0x001EFE,
+ 0x001FB5,
+ 0x001FBD,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002C67,
+ 0x002C69,
+ 0x002C6B,
+ 0x002C82,
+ 0x002C84,
+ 0x002C86,
+ 0x002C88,
+ 0x002C8A,
+ 0x002C8C,
+ 0x002C8E,
+ 0x002C90,
+ 0x002C92,
+ 0x002C94,
+ 0x002C96,
+ 0x002C98,
+ 0x002C9A,
+ 0x002C9C,
+ 0x002C9E,
+ 0x002CA0,
+ 0x002CA2,
+ 0x002CA4,
+ 0x002CA6,
+ 0x002CA8,
+ 0x002CAA,
+ 0x002CAC,
+ 0x002CAE,
+ 0x002CB0,
+ 0x002CB2,
+ 0x002CB4,
+ 0x002CB6,
+ 0x002CB8,
+ 0x002CBA,
+ 0x002CBC,
+ 0x002CBE,
+ 0x002CC0,
+ 0x002CC2,
+ 0x002CC4,
+ 0x002CC6,
+ 0x002CC8,
+ 0x002CCA,
+ 0x002CCC,
+ 0x002CCE,
+ 0x002CD0,
+ 0x002CD2,
+ 0x002CD4,
+ 0x002CD6,
+ 0x002CD8,
+ 0x002CDA,
+ 0x002CDC,
+ 0x002CDE,
+ 0x002CE0,
+ 0x002CE2,
+ 0x002CED,
+ 0x002D26,
+ 0x00A642,
+ 0x00A644,
+ 0x00A646,
+ 0x00A648,
+ 0x00A64A,
+ 0x00A64C,
+ 0x00A64E,
+ 0x00A650,
+ 0x00A652,
+ 0x00A654,
+ 0x00A656,
+ 0x00A658,
+ 0x00A65A,
+ 0x00A65C,
+ 0x00A65E,
+ 0x00A660,
+ 0x00A662,
+ 0x00A664,
+ 0x00A666,
+ 0x00A668,
+ 0x00A66A,
+ 0x00A66C,
+ 0x00A682,
+ 0x00A684,
+ 0x00A686,
+ 0x00A688,
+ 0x00A68A,
+ 0x00A68C,
+ 0x00A68E,
+ 0x00A690,
+ 0x00A692,
+ 0x00A694,
+ 0x00A696,
+ 0x00A698,
+ 0x00A69A,
+ 0x00A724,
+ 0x00A726,
+ 0x00A728,
+ 0x00A72A,
+ 0x00A72C,
+ 0x00A72E,
+ 0x00A734,
+ 0x00A736,
+ 0x00A738,
+ 0x00A73A,
+ 0x00A73C,
+ 0x00A73E,
+ 0x00A740,
+ 0x00A742,
+ 0x00A744,
+ 0x00A746,
+ 0x00A748,
+ 0x00A74A,
+ 0x00A74C,
+ 0x00A74E,
+ 0x00A750,
+ 0x00A752,
+ 0x00A754,
+ 0x00A756,
+ 0x00A758,
+ 0x00A75A,
+ 0x00A75C,
+ 0x00A75E,
+ 0x00A760,
+ 0x00A762,
+ 0x00A764,
+ 0x00A766,
+ 0x00A768,
+ 0x00A76A,
+ 0x00A76C,
+ 0x00A76E,
+ 0x00A77B,
+ 0x00A780,
+ 0x00A782,
+ 0x00A784,
+ 0x00A786,
+ 0x00A792,
+ 0x00A798,
+ 0x00A79A,
+ 0x00A79C,
+ 0x00A79E,
+ 0x00A7A0,
+ 0x00A7A2,
+ 0x00A7A4,
+ 0x00A7A6,
+ 0x00A7A8,
+ 0x00A7B6,
+ 0x00A7B8,
+ 0x00A7BA,
+ 0x00A7BC,
+ 0x00A7BE,
+ 0x00A7C9
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000060],
+ [0x00007B, 0x0000B4],
+ [0x0000B6, 0x0000DE],
+ [0x000138, 0x000139],
+ [0x000178, 0x000179],
+ [0x000181, 0x000182],
+ [0x000186, 0x000187],
+ [0x000189, 0x00018B],
+ [0x00018D, 0x000191],
+ [0x000193, 0x000194],
+ [0x000196, 0x000198],
+ [0x00019B, 0x00019D],
+ [0x00019F, 0x0001A0],
+ [0x0001A6, 0x0001A7],
+ [0x0001A9, 0x0001AC],
+ [0x0001AE, 0x0001AF],
+ [0x0001B1, 0x0001B3],
+ [0x0001B7, 0x0001B8],
+ [0x0001BA, 0x0001BC],
+ [0x0001C0, 0x0001C4],
+ [0x0001F6, 0x0001F8],
+ [0x000220, 0x000222],
+ [0x000234, 0x00023B],
+ [0x00023D, 0x00023E],
+ [0x000243, 0x000246],
+ [0x00025D, 0x00025F],
+ [0x00026D, 0x00026E],
+ [0x000273, 0x000274],
+ [0x000276, 0x00027C],
+ [0x00027E, 0x00027F],
+ [0x000284, 0x000286],
+ [0x00028D, 0x000291],
+ [0x000293, 0x00029C],
+ [0x00029F, 0x000344],
+ [0x000346, 0x000370],
+ [0x000374, 0x000376],
+ [0x000378, 0x00037A],
+ [0x00037E, 0x00038F],
+ [0x000391, 0x0003AB],
+ [0x0003D2, 0x0003D4],
+ [0x0003F6, 0x0003F7],
+ [0x0003F9, 0x0003FA],
+ [0x0003FC, 0x00042F],
+ [0x000482, 0x00048A],
+ [0x0004C0, 0x0004C1],
+ [0x000530, 0x000560],
+ [0x000588, 0x0010CF],
+ [0x0010FB, 0x0010FC],
+ [0x001100, 0x0013F7],
+ [0x0013FE, 0x001C7F],
+ [0x001C89, 0x001D78],
+ [0x001D7A, 0x001D7C],
+ [0x001D7E, 0x001D8D],
+ [0x001D8F, 0x001E00],
+ [0x001E9C, 0x001EA0],
+ [0x001F08, 0x001F0F],
+ [0x001F16, 0x001F1F],
+ [0x001F28, 0x001F2F],
+ [0x001F38, 0x001F3F],
+ [0x001F46, 0x001F4F],
+ [0x001F58, 0x001F5F],
+ [0x001F68, 0x001F6F],
+ [0x001F7E, 0x001F7F],
+ [0x001FB8, 0x001FBB],
+ [0x001FBF, 0x001FC1],
+ [0x001FC8, 0x001FCB],
+ [0x001FCD, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FD8, 0x001FDF],
+ [0x001FE8, 0x001FF1],
+ [0x001FF8, 0x001FFB],
+ [0x001FFD, 0x00214D],
+ [0x00214F, 0x00216F],
+ [0x002180, 0x002183],
+ [0x002185, 0x0024CF],
+ [0x0024EA, 0x002C2F],
+ [0x002C5F, 0x002C60],
+ [0x002C62, 0x002C64],
+ [0x002C6D, 0x002C72],
+ [0x002C74, 0x002C75],
+ [0x002C77, 0x002C80],
+ [0x002CE4, 0x002CEB],
+ [0x002CEF, 0x002CF2],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x00A640],
+ [0x00A66E, 0x00A680],
+ [0x00A69C, 0x00A722],
+ [0x00A730, 0x00A732],
+ [0x00A770, 0x00A779],
+ [0x00A77D, 0x00A77E],
+ [0x00A788, 0x00A78B],
+ [0x00A78D, 0x00A790],
+ [0x00A795, 0x00A796],
+ [0x00A7AA, 0x00A7B4],
+ [0x00A7C0, 0x00A7C2],
+ [0x00A7C4, 0x00A7C7],
+ [0x00A7CB, 0x00A7F5],
+ [0x00A7F7, 0x00AB52],
+ [0x00AB54, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FF40],
+ [0x00FF5B, 0x010427],
+ [0x010450, 0x0104D7],
+ [0x0104FC, 0x010CBF],
+ [0x010CF3, 0x0118BF],
+ [0x0118E0, 0x016E5F],
+ [0x016E80, 0x01E921],
+ [0x01E944, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Changes_When_Uppercased}+$/u,
+ nonMatchSymbols,
+ "\\P{Changes_When_Uppercased}"
+);
+testPropertyEscapes(
+ /^\P{CWU}+$/u,
+ nonMatchSymbols,
+ "\\P{CWU}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Dash.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Dash.js
new file mode 100644
index 0000000000..f3d8d30203
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Dash.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Dash`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00002D,
+ 0x00058A,
+ 0x0005BE,
+ 0x001400,
+ 0x001806,
+ 0x002053,
+ 0x00207B,
+ 0x00208B,
+ 0x002212,
+ 0x002E17,
+ 0x002E1A,
+ 0x002E40,
+ 0x00301C,
+ 0x003030,
+ 0x0030A0,
+ 0x00FE58,
+ 0x00FE63,
+ 0x00FF0D,
+ 0x010EAD
+ ],
+ ranges: [
+ [0x002010, 0x002015],
+ [0x002E3A, 0x002E3B],
+ [0x00FE31, 0x00FE32]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Dash}+$/u,
+ matchSymbols,
+ "\\p{Dash}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00002C],
+ [0x00002E, 0x000589],
+ [0x00058B, 0x0005BD],
+ [0x0005BF, 0x0013FF],
+ [0x001401, 0x001805],
+ [0x001807, 0x00200F],
+ [0x002016, 0x002052],
+ [0x002054, 0x00207A],
+ [0x00207C, 0x00208A],
+ [0x00208C, 0x002211],
+ [0x002213, 0x002E16],
+ [0x002E18, 0x002E19],
+ [0x002E1B, 0x002E39],
+ [0x002E3C, 0x002E3F],
+ [0x002E41, 0x00301B],
+ [0x00301D, 0x00302F],
+ [0x003031, 0x00309F],
+ [0x0030A1, 0x00DBFF],
+ [0x00E000, 0x00FE30],
+ [0x00FE33, 0x00FE57],
+ [0x00FE59, 0x00FE62],
+ [0x00FE64, 0x00FF0C],
+ [0x00FF0E, 0x010EAC],
+ [0x010EAE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Dash}+$/u,
+ nonMatchSymbols,
+ "\\P{Dash}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Default_Ignorable_Code_Point.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Default_Ignorable_Code_Point.js
new file mode 100644
index 0000000000..34967377af
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Default_Ignorable_Code_Point.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Default_Ignorable_Code_Point`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AD,
+ 0x00034F,
+ 0x00061C,
+ 0x003164,
+ 0x00FEFF,
+ 0x00FFA0
+ ],
+ ranges: [
+ [0x00115F, 0x001160],
+ [0x0017B4, 0x0017B5],
+ [0x00180B, 0x00180E],
+ [0x00200B, 0x00200F],
+ [0x00202A, 0x00202E],
+ [0x002060, 0x00206F],
+ [0x00FE00, 0x00FE0F],
+ [0x00FFF0, 0x00FFF8],
+ [0x01BCA0, 0x01BCA3],
+ [0x01D173, 0x01D17A],
+ [0x0E0000, 0x0E0FFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Default_Ignorable_Code_Point}+$/u,
+ matchSymbols,
+ "\\p{Default_Ignorable_Code_Point}"
+);
+testPropertyEscapes(
+ /^\p{DI}+$/u,
+ matchSymbols,
+ "\\p{DI}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0000AC],
+ [0x0000AE, 0x00034E],
+ [0x000350, 0x00061B],
+ [0x00061D, 0x00115E],
+ [0x001161, 0x0017B3],
+ [0x0017B6, 0x00180A],
+ [0x00180F, 0x00200A],
+ [0x002010, 0x002029],
+ [0x00202F, 0x00205F],
+ [0x002070, 0x003163],
+ [0x003165, 0x00DBFF],
+ [0x00E000, 0x00FDFF],
+ [0x00FE10, 0x00FEFE],
+ [0x00FF00, 0x00FF9F],
+ [0x00FFA1, 0x00FFEF],
+ [0x00FFF9, 0x01BC9F],
+ [0x01BCA4, 0x01D172],
+ [0x01D17B, 0x0DFFFF],
+ [0x0E1000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Default_Ignorable_Code_Point}+$/u,
+ nonMatchSymbols,
+ "\\P{Default_Ignorable_Code_Point}"
+);
+testPropertyEscapes(
+ /^\P{DI}+$/u,
+ nonMatchSymbols,
+ "\\P{DI}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Deprecated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Deprecated.js
new file mode 100644
index 0000000000..6d61282eb2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Deprecated.js
@@ -0,0 +1,69 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Deprecated`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000149,
+ 0x000673,
+ 0x000F77,
+ 0x000F79,
+ 0x0E0001
+ ],
+ ranges: [
+ [0x0017A3, 0x0017A4],
+ [0x00206A, 0x00206F],
+ [0x002329, 0x00232A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Deprecated}+$/u,
+ matchSymbols,
+ "\\p{Deprecated}"
+);
+testPropertyEscapes(
+ /^\p{Dep}+$/u,
+ matchSymbols,
+ "\\p{Dep}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000F78
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000148],
+ [0x00014A, 0x000672],
+ [0x000674, 0x000F76],
+ [0x000F7A, 0x0017A2],
+ [0x0017A5, 0x002069],
+ [0x002070, 0x002328],
+ [0x00232B, 0x00DBFF],
+ [0x00E000, 0x0E0000],
+ [0x0E0002, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Deprecated}+$/u,
+ nonMatchSymbols,
+ "\\P{Deprecated}"
+);
+testPropertyEscapes(
+ /^\P{Dep}+$/u,
+ nonMatchSymbols,
+ "\\P{Dep}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Diacritic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Diacritic.js
new file mode 100644
index 0000000000..e8ec927911
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Diacritic.js
@@ -0,0 +1,405 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Diacritic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005E,
+ 0x000060,
+ 0x0000A8,
+ 0x0000AF,
+ 0x0000B4,
+ 0x00037A,
+ 0x000559,
+ 0x0005BF,
+ 0x0005C4,
+ 0x00093C,
+ 0x00094D,
+ 0x000971,
+ 0x0009BC,
+ 0x0009CD,
+ 0x000A3C,
+ 0x000A4D,
+ 0x000ABC,
+ 0x000ACD,
+ 0x000B3C,
+ 0x000B4D,
+ 0x000B55,
+ 0x000BCD,
+ 0x000C4D,
+ 0x000CBC,
+ 0x000CCD,
+ 0x000D4D,
+ 0x000DCA,
+ 0x000E4E,
+ 0x000EBA,
+ 0x000F35,
+ 0x000F37,
+ 0x000F39,
+ 0x000FC6,
+ 0x001037,
+ 0x00108F,
+ 0x0017DD,
+ 0x001A7F,
+ 0x001B34,
+ 0x001B44,
+ 0x001CED,
+ 0x001CF4,
+ 0x001FBD,
+ 0x002E2F,
+ 0x0030FC,
+ 0x00A66F,
+ 0x00A67F,
+ 0x00A8C4,
+ 0x00A953,
+ 0x00A9B3,
+ 0x00A9C0,
+ 0x00A9E5,
+ 0x00AAF6,
+ 0x00FB1E,
+ 0x00FF3E,
+ 0x00FF40,
+ 0x00FF70,
+ 0x00FFE3,
+ 0x0102E0,
+ 0x011173,
+ 0x0111C0,
+ 0x01133C,
+ 0x01134D,
+ 0x011442,
+ 0x011446,
+ 0x01163F,
+ 0x01172B,
+ 0x011943,
+ 0x0119E0,
+ 0x011A34,
+ 0x011A47,
+ 0x011A99,
+ 0x011C3F,
+ 0x011D42,
+ 0x011D97
+ ],
+ ranges: [
+ [0x0000B7, 0x0000B8],
+ [0x0002B0, 0x00034E],
+ [0x000350, 0x000357],
+ [0x00035D, 0x000362],
+ [0x000374, 0x000375],
+ [0x000384, 0x000385],
+ [0x000483, 0x000487],
+ [0x000591, 0x0005A1],
+ [0x0005A3, 0x0005BD],
+ [0x0005C1, 0x0005C2],
+ [0x00064B, 0x000652],
+ [0x000657, 0x000658],
+ [0x0006DF, 0x0006E0],
+ [0x0006E5, 0x0006E6],
+ [0x0006EA, 0x0006EC],
+ [0x000730, 0x00074A],
+ [0x0007A6, 0x0007B0],
+ [0x0007EB, 0x0007F5],
+ [0x000818, 0x000819],
+ [0x0008E3, 0x0008FE],
+ [0x000951, 0x000954],
+ [0x000AFD, 0x000AFF],
+ [0x000D3B, 0x000D3C],
+ [0x000E47, 0x000E4C],
+ [0x000EC8, 0x000ECC],
+ [0x000F18, 0x000F19],
+ [0x000F3E, 0x000F3F],
+ [0x000F82, 0x000F84],
+ [0x000F86, 0x000F87],
+ [0x001039, 0x00103A],
+ [0x001063, 0x001064],
+ [0x001069, 0x00106D],
+ [0x001087, 0x00108D],
+ [0x00109A, 0x00109B],
+ [0x00135D, 0x00135F],
+ [0x0017C9, 0x0017D3],
+ [0x001939, 0x00193B],
+ [0x001A75, 0x001A7C],
+ [0x001AB0, 0x001ABD],
+ [0x001B6B, 0x001B73],
+ [0x001BAA, 0x001BAB],
+ [0x001C36, 0x001C37],
+ [0x001C78, 0x001C7D],
+ [0x001CD0, 0x001CE8],
+ [0x001CF7, 0x001CF9],
+ [0x001D2C, 0x001D6A],
+ [0x001DC4, 0x001DCF],
+ [0x001DF5, 0x001DF9],
+ [0x001DFD, 0x001DFF],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FDD, 0x001FDF],
+ [0x001FED, 0x001FEF],
+ [0x001FFD, 0x001FFE],
+ [0x002CEF, 0x002CF1],
+ [0x00302A, 0x00302F],
+ [0x003099, 0x00309C],
+ [0x00A67C, 0x00A67D],
+ [0x00A69C, 0x00A69D],
+ [0x00A6F0, 0x00A6F1],
+ [0x00A700, 0x00A721],
+ [0x00A788, 0x00A78A],
+ [0x00A7F8, 0x00A7F9],
+ [0x00A8E0, 0x00A8F1],
+ [0x00A92B, 0x00A92E],
+ [0x00AA7B, 0x00AA7D],
+ [0x00AABF, 0x00AAC2],
+ [0x00AB5B, 0x00AB5F],
+ [0x00AB69, 0x00AB6B],
+ [0x00ABEC, 0x00ABED],
+ [0x00FE20, 0x00FE2F],
+ [0x00FF9E, 0x00FF9F],
+ [0x010AE5, 0x010AE6],
+ [0x010D22, 0x010D27],
+ [0x010F46, 0x010F50],
+ [0x0110B9, 0x0110BA],
+ [0x011133, 0x011134],
+ [0x0111CA, 0x0111CC],
+ [0x011235, 0x011236],
+ [0x0112E9, 0x0112EA],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x0114C2, 0x0114C3],
+ [0x0115BF, 0x0115C0],
+ [0x0116B6, 0x0116B7],
+ [0x011839, 0x01183A],
+ [0x01193D, 0x01193E],
+ [0x011D44, 0x011D45],
+ [0x016AF0, 0x016AF4],
+ [0x016B30, 0x016B36],
+ [0x016F8F, 0x016F9F],
+ [0x016FF0, 0x016FF1],
+ [0x01D167, 0x01D169],
+ [0x01D16D, 0x01D172],
+ [0x01D17B, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01E130, 0x01E136],
+ [0x01E2EC, 0x01E2EF],
+ [0x01E8D0, 0x01E8D6],
+ [0x01E944, 0x01E946],
+ [0x01E948, 0x01E94A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Diacritic}+$/u,
+ matchSymbols,
+ "\\p{Diacritic}"
+);
+testPropertyEscapes(
+ /^\p{Dia}+$/u,
+ matchSymbols,
+ "\\p{Dia}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005F,
+ 0x00034F,
+ 0x0005A2,
+ 0x0005BE,
+ 0x0005C0,
+ 0x0005C3,
+ 0x000E4D,
+ 0x000F36,
+ 0x000F38,
+ 0x000F85,
+ 0x001038,
+ 0x00108E,
+ 0x001FBE,
+ 0x00A67E,
+ 0x00FF3F,
+ 0x011D43,
+ 0x01E947
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00005D],
+ [0x000061, 0x0000A7],
+ [0x0000A9, 0x0000AE],
+ [0x0000B0, 0x0000B3],
+ [0x0000B5, 0x0000B6],
+ [0x0000B9, 0x0002AF],
+ [0x000358, 0x00035C],
+ [0x000363, 0x000373],
+ [0x000376, 0x000379],
+ [0x00037B, 0x000383],
+ [0x000386, 0x000482],
+ [0x000488, 0x000558],
+ [0x00055A, 0x000590],
+ [0x0005C5, 0x00064A],
+ [0x000653, 0x000656],
+ [0x000659, 0x0006DE],
+ [0x0006E1, 0x0006E4],
+ [0x0006E7, 0x0006E9],
+ [0x0006ED, 0x00072F],
+ [0x00074B, 0x0007A5],
+ [0x0007B1, 0x0007EA],
+ [0x0007F6, 0x000817],
+ [0x00081A, 0x0008E2],
+ [0x0008FF, 0x00093B],
+ [0x00093D, 0x00094C],
+ [0x00094E, 0x000950],
+ [0x000955, 0x000970],
+ [0x000972, 0x0009BB],
+ [0x0009BD, 0x0009CC],
+ [0x0009CE, 0x000A3B],
+ [0x000A3D, 0x000A4C],
+ [0x000A4E, 0x000ABB],
+ [0x000ABD, 0x000ACC],
+ [0x000ACE, 0x000AFC],
+ [0x000B00, 0x000B3B],
+ [0x000B3D, 0x000B4C],
+ [0x000B4E, 0x000B54],
+ [0x000B56, 0x000BCC],
+ [0x000BCE, 0x000C4C],
+ [0x000C4E, 0x000CBB],
+ [0x000CBD, 0x000CCC],
+ [0x000CCE, 0x000D3A],
+ [0x000D3D, 0x000D4C],
+ [0x000D4E, 0x000DC9],
+ [0x000DCB, 0x000E46],
+ [0x000E4F, 0x000EB9],
+ [0x000EBB, 0x000EC7],
+ [0x000ECD, 0x000F17],
+ [0x000F1A, 0x000F34],
+ [0x000F3A, 0x000F3D],
+ [0x000F40, 0x000F81],
+ [0x000F88, 0x000FC5],
+ [0x000FC7, 0x001036],
+ [0x00103B, 0x001062],
+ [0x001065, 0x001068],
+ [0x00106E, 0x001086],
+ [0x001090, 0x001099],
+ [0x00109C, 0x00135C],
+ [0x001360, 0x0017C8],
+ [0x0017D4, 0x0017DC],
+ [0x0017DE, 0x001938],
+ [0x00193C, 0x001A74],
+ [0x001A7D, 0x001A7E],
+ [0x001A80, 0x001AAF],
+ [0x001ABE, 0x001B33],
+ [0x001B35, 0x001B43],
+ [0x001B45, 0x001B6A],
+ [0x001B74, 0x001BA9],
+ [0x001BAC, 0x001C35],
+ [0x001C38, 0x001C77],
+ [0x001C7E, 0x001CCF],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF6],
+ [0x001CFA, 0x001D2B],
+ [0x001D6B, 0x001DC3],
+ [0x001DD0, 0x001DF4],
+ [0x001DFA, 0x001DFC],
+ [0x001E00, 0x001FBC],
+ [0x001FC2, 0x001FCC],
+ [0x001FD0, 0x001FDC],
+ [0x001FE0, 0x001FEC],
+ [0x001FF0, 0x001FFC],
+ [0x001FFF, 0x002CEE],
+ [0x002CF2, 0x002E2E],
+ [0x002E30, 0x003029],
+ [0x003030, 0x003098],
+ [0x00309D, 0x0030FB],
+ [0x0030FD, 0x00A66E],
+ [0x00A670, 0x00A67B],
+ [0x00A680, 0x00A69B],
+ [0x00A69E, 0x00A6EF],
+ [0x00A6F2, 0x00A6FF],
+ [0x00A722, 0x00A787],
+ [0x00A78B, 0x00A7F7],
+ [0x00A7FA, 0x00A8C3],
+ [0x00A8C5, 0x00A8DF],
+ [0x00A8F2, 0x00A92A],
+ [0x00A92F, 0x00A952],
+ [0x00A954, 0x00A9B2],
+ [0x00A9B4, 0x00A9BF],
+ [0x00A9C1, 0x00A9E4],
+ [0x00A9E6, 0x00AA7A],
+ [0x00AA7E, 0x00AABE],
+ [0x00AAC3, 0x00AAF5],
+ [0x00AAF7, 0x00AB5A],
+ [0x00AB60, 0x00AB68],
+ [0x00AB6C, 0x00ABEB],
+ [0x00ABEE, 0x00DBFF],
+ [0x00E000, 0x00FB1D],
+ [0x00FB1F, 0x00FE1F],
+ [0x00FE30, 0x00FF3D],
+ [0x00FF41, 0x00FF6F],
+ [0x00FF71, 0x00FF9D],
+ [0x00FFA0, 0x00FFE2],
+ [0x00FFE4, 0x0102DF],
+ [0x0102E1, 0x010AE4],
+ [0x010AE7, 0x010D21],
+ [0x010D28, 0x010F45],
+ [0x010F51, 0x0110B8],
+ [0x0110BB, 0x011132],
+ [0x011135, 0x011172],
+ [0x011174, 0x0111BF],
+ [0x0111C1, 0x0111C9],
+ [0x0111CD, 0x011234],
+ [0x011237, 0x0112E8],
+ [0x0112EB, 0x01133B],
+ [0x01133D, 0x01134C],
+ [0x01134E, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x011441],
+ [0x011443, 0x011445],
+ [0x011447, 0x0114C1],
+ [0x0114C4, 0x0115BE],
+ [0x0115C1, 0x01163E],
+ [0x011640, 0x0116B5],
+ [0x0116B8, 0x01172A],
+ [0x01172C, 0x011838],
+ [0x01183B, 0x01193C],
+ [0x01193F, 0x011942],
+ [0x011944, 0x0119DF],
+ [0x0119E1, 0x011A33],
+ [0x011A35, 0x011A46],
+ [0x011A48, 0x011A98],
+ [0x011A9A, 0x011C3E],
+ [0x011C40, 0x011D41],
+ [0x011D46, 0x011D96],
+ [0x011D98, 0x016AEF],
+ [0x016AF5, 0x016B2F],
+ [0x016B37, 0x016F8E],
+ [0x016FA0, 0x016FEF],
+ [0x016FF2, 0x01D166],
+ [0x01D16A, 0x01D16C],
+ [0x01D173, 0x01D17A],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01E12F],
+ [0x01E137, 0x01E2EB],
+ [0x01E2F0, 0x01E8CF],
+ [0x01E8D7, 0x01E943],
+ [0x01E94B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Diacritic}+$/u,
+ nonMatchSymbols,
+ "\\P{Diacritic}"
+);
+testPropertyEscapes(
+ /^\P{Dia}+$/u,
+ nonMatchSymbols,
+ "\\P{Dia}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji.js
new file mode 100644
index 0000000000..0bf6f9f8ec
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji.js
@@ -0,0 +1,347 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Emoji`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000023,
+ 0x00002A,
+ 0x0000A9,
+ 0x0000AE,
+ 0x00203C,
+ 0x002049,
+ 0x002122,
+ 0x002139,
+ 0x002328,
+ 0x0023CF,
+ 0x0024C2,
+ 0x0025B6,
+ 0x0025C0,
+ 0x00260E,
+ 0x002611,
+ 0x002618,
+ 0x00261D,
+ 0x002620,
+ 0x002626,
+ 0x00262A,
+ 0x002640,
+ 0x002642,
+ 0x002663,
+ 0x002668,
+ 0x00267B,
+ 0x002699,
+ 0x0026A7,
+ 0x0026C8,
+ 0x0026D1,
+ 0x0026FD,
+ 0x002702,
+ 0x002705,
+ 0x00270F,
+ 0x002712,
+ 0x002714,
+ 0x002716,
+ 0x00271D,
+ 0x002721,
+ 0x002728,
+ 0x002744,
+ 0x002747,
+ 0x00274C,
+ 0x00274E,
+ 0x002757,
+ 0x0027A1,
+ 0x0027B0,
+ 0x0027BF,
+ 0x002B50,
+ 0x002B55,
+ 0x003030,
+ 0x00303D,
+ 0x003297,
+ 0x003299,
+ 0x01F004,
+ 0x01F0CF,
+ 0x01F18E,
+ 0x01F21A,
+ 0x01F22F,
+ 0x01F587,
+ 0x01F590,
+ 0x01F5A8,
+ 0x01F5BC,
+ 0x01F5E1,
+ 0x01F5E3,
+ 0x01F5E8,
+ 0x01F5EF,
+ 0x01F5F3,
+ 0x01F6E9,
+ 0x01F6F0
+ ],
+ ranges: [
+ [0x000030, 0x000039],
+ [0x002194, 0x002199],
+ [0x0021A9, 0x0021AA],
+ [0x00231A, 0x00231B],
+ [0x0023E9, 0x0023F3],
+ [0x0023F8, 0x0023FA],
+ [0x0025AA, 0x0025AB],
+ [0x0025FB, 0x0025FE],
+ [0x002600, 0x002604],
+ [0x002614, 0x002615],
+ [0x002622, 0x002623],
+ [0x00262E, 0x00262F],
+ [0x002638, 0x00263A],
+ [0x002648, 0x002653],
+ [0x00265F, 0x002660],
+ [0x002665, 0x002666],
+ [0x00267E, 0x00267F],
+ [0x002692, 0x002697],
+ [0x00269B, 0x00269C],
+ [0x0026A0, 0x0026A1],
+ [0x0026AA, 0x0026AB],
+ [0x0026B0, 0x0026B1],
+ [0x0026BD, 0x0026BE],
+ [0x0026C4, 0x0026C5],
+ [0x0026CE, 0x0026CF],
+ [0x0026D3, 0x0026D4],
+ [0x0026E9, 0x0026EA],
+ [0x0026F0, 0x0026F5],
+ [0x0026F7, 0x0026FA],
+ [0x002708, 0x00270D],
+ [0x002733, 0x002734],
+ [0x002753, 0x002755],
+ [0x002763, 0x002764],
+ [0x002795, 0x002797],
+ [0x002934, 0x002935],
+ [0x002B05, 0x002B07],
+ [0x002B1B, 0x002B1C],
+ [0x01F170, 0x01F171],
+ [0x01F17E, 0x01F17F],
+ [0x01F191, 0x01F19A],
+ [0x01F1E6, 0x01F1FF],
+ [0x01F201, 0x01F202],
+ [0x01F232, 0x01F23A],
+ [0x01F250, 0x01F251],
+ [0x01F300, 0x01F321],
+ [0x01F324, 0x01F393],
+ [0x01F396, 0x01F397],
+ [0x01F399, 0x01F39B],
+ [0x01F39E, 0x01F3F0],
+ [0x01F3F3, 0x01F3F5],
+ [0x01F3F7, 0x01F4FD],
+ [0x01F4FF, 0x01F53D],
+ [0x01F549, 0x01F54E],
+ [0x01F550, 0x01F567],
+ [0x01F56F, 0x01F570],
+ [0x01F573, 0x01F57A],
+ [0x01F58A, 0x01F58D],
+ [0x01F595, 0x01F596],
+ [0x01F5A4, 0x01F5A5],
+ [0x01F5B1, 0x01F5B2],
+ [0x01F5C2, 0x01F5C4],
+ [0x01F5D1, 0x01F5D3],
+ [0x01F5DC, 0x01F5DE],
+ [0x01F5FA, 0x01F64F],
+ [0x01F680, 0x01F6C5],
+ [0x01F6CB, 0x01F6D2],
+ [0x01F6D5, 0x01F6D7],
+ [0x01F6E0, 0x01F6E5],
+ [0x01F6EB, 0x01F6EC],
+ [0x01F6F3, 0x01F6FC],
+ [0x01F7E0, 0x01F7EB],
+ [0x01F90C, 0x01F93A],
+ [0x01F93C, 0x01F945],
+ [0x01F947, 0x01F978],
+ [0x01F97A, 0x01F9CB],
+ [0x01F9CD, 0x01F9FF],
+ [0x01FA70, 0x01FA74],
+ [0x01FA78, 0x01FA7A],
+ [0x01FA80, 0x01FA86],
+ [0x01FA90, 0x01FAA8],
+ [0x01FAB0, 0x01FAB6],
+ [0x01FAC0, 0x01FAC2],
+ [0x01FAD0, 0x01FAD6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Emoji}+$/u,
+ matchSymbols,
+ "\\p{Emoji}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0025FF,
+ 0x002621,
+ 0x002641,
+ 0x002664,
+ 0x002667,
+ 0x002698,
+ 0x00269A,
+ 0x0026D0,
+ 0x0026D2,
+ 0x0026F6,
+ 0x00270E,
+ 0x002713,
+ 0x002715,
+ 0x00274D,
+ 0x002756,
+ 0x003298,
+ 0x01F200,
+ 0x01F398,
+ 0x01F3F6,
+ 0x01F4FE,
+ 0x01F54F,
+ 0x01F5E2,
+ 0x01F6EA,
+ 0x01F93B,
+ 0x01F946,
+ 0x01F979,
+ 0x01F9CC
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000022],
+ [0x000024, 0x000029],
+ [0x00002B, 0x00002F],
+ [0x00003A, 0x0000A8],
+ [0x0000AA, 0x0000AD],
+ [0x0000AF, 0x00203B],
+ [0x00203D, 0x002048],
+ [0x00204A, 0x002121],
+ [0x002123, 0x002138],
+ [0x00213A, 0x002193],
+ [0x00219A, 0x0021A8],
+ [0x0021AB, 0x002319],
+ [0x00231C, 0x002327],
+ [0x002329, 0x0023CE],
+ [0x0023D0, 0x0023E8],
+ [0x0023F4, 0x0023F7],
+ [0x0023FB, 0x0024C1],
+ [0x0024C3, 0x0025A9],
+ [0x0025AC, 0x0025B5],
+ [0x0025B7, 0x0025BF],
+ [0x0025C1, 0x0025FA],
+ [0x002605, 0x00260D],
+ [0x00260F, 0x002610],
+ [0x002612, 0x002613],
+ [0x002616, 0x002617],
+ [0x002619, 0x00261C],
+ [0x00261E, 0x00261F],
+ [0x002624, 0x002625],
+ [0x002627, 0x002629],
+ [0x00262B, 0x00262D],
+ [0x002630, 0x002637],
+ [0x00263B, 0x00263F],
+ [0x002643, 0x002647],
+ [0x002654, 0x00265E],
+ [0x002661, 0x002662],
+ [0x002669, 0x00267A],
+ [0x00267C, 0x00267D],
+ [0x002680, 0x002691],
+ [0x00269D, 0x00269F],
+ [0x0026A2, 0x0026A6],
+ [0x0026A8, 0x0026A9],
+ [0x0026AC, 0x0026AF],
+ [0x0026B2, 0x0026BC],
+ [0x0026BF, 0x0026C3],
+ [0x0026C6, 0x0026C7],
+ [0x0026C9, 0x0026CD],
+ [0x0026D5, 0x0026E8],
+ [0x0026EB, 0x0026EF],
+ [0x0026FB, 0x0026FC],
+ [0x0026FE, 0x002701],
+ [0x002703, 0x002704],
+ [0x002706, 0x002707],
+ [0x002710, 0x002711],
+ [0x002717, 0x00271C],
+ [0x00271E, 0x002720],
+ [0x002722, 0x002727],
+ [0x002729, 0x002732],
+ [0x002735, 0x002743],
+ [0x002745, 0x002746],
+ [0x002748, 0x00274B],
+ [0x00274F, 0x002752],
+ [0x002758, 0x002762],
+ [0x002765, 0x002794],
+ [0x002798, 0x0027A0],
+ [0x0027A2, 0x0027AF],
+ [0x0027B1, 0x0027BE],
+ [0x0027C0, 0x002933],
+ [0x002936, 0x002B04],
+ [0x002B08, 0x002B1A],
+ [0x002B1D, 0x002B4F],
+ [0x002B51, 0x002B54],
+ [0x002B56, 0x00302F],
+ [0x003031, 0x00303C],
+ [0x00303E, 0x003296],
+ [0x00329A, 0x00DBFF],
+ [0x00E000, 0x01F003],
+ [0x01F005, 0x01F0CE],
+ [0x01F0D0, 0x01F16F],
+ [0x01F172, 0x01F17D],
+ [0x01F180, 0x01F18D],
+ [0x01F18F, 0x01F190],
+ [0x01F19B, 0x01F1E5],
+ [0x01F203, 0x01F219],
+ [0x01F21B, 0x01F22E],
+ [0x01F230, 0x01F231],
+ [0x01F23B, 0x01F24F],
+ [0x01F252, 0x01F2FF],
+ [0x01F322, 0x01F323],
+ [0x01F394, 0x01F395],
+ [0x01F39C, 0x01F39D],
+ [0x01F3F1, 0x01F3F2],
+ [0x01F53E, 0x01F548],
+ [0x01F568, 0x01F56E],
+ [0x01F571, 0x01F572],
+ [0x01F57B, 0x01F586],
+ [0x01F588, 0x01F589],
+ [0x01F58E, 0x01F58F],
+ [0x01F591, 0x01F594],
+ [0x01F597, 0x01F5A3],
+ [0x01F5A6, 0x01F5A7],
+ [0x01F5A9, 0x01F5B0],
+ [0x01F5B3, 0x01F5BB],
+ [0x01F5BD, 0x01F5C1],
+ [0x01F5C5, 0x01F5D0],
+ [0x01F5D4, 0x01F5DB],
+ [0x01F5DF, 0x01F5E0],
+ [0x01F5E4, 0x01F5E7],
+ [0x01F5E9, 0x01F5EE],
+ [0x01F5F0, 0x01F5F2],
+ [0x01F5F4, 0x01F5F9],
+ [0x01F650, 0x01F67F],
+ [0x01F6C6, 0x01F6CA],
+ [0x01F6D3, 0x01F6D4],
+ [0x01F6D8, 0x01F6DF],
+ [0x01F6E6, 0x01F6E8],
+ [0x01F6ED, 0x01F6EF],
+ [0x01F6F1, 0x01F6F2],
+ [0x01F6FD, 0x01F7DF],
+ [0x01F7EC, 0x01F90B],
+ [0x01FA00, 0x01FA6F],
+ [0x01FA75, 0x01FA77],
+ [0x01FA7B, 0x01FA7F],
+ [0x01FA87, 0x01FA8F],
+ [0x01FAA9, 0x01FAAF],
+ [0x01FAB7, 0x01FABF],
+ [0x01FAC3, 0x01FACF],
+ [0x01FAD7, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Emoji}+$/u,
+ nonMatchSymbols,
+ "\\P{Emoji}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Component.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Component.js
new file mode 100644
index 0000000000..a10b3037b4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Component.js
@@ -0,0 +1,72 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Emoji_Component`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000023,
+ 0x00002A,
+ 0x00200D,
+ 0x0020E3,
+ 0x00FE0F
+ ],
+ ranges: [
+ [0x000030, 0x000039],
+ [0x01F1E6, 0x01F1FF],
+ [0x01F3FB, 0x01F3FF],
+ [0x01F9B0, 0x01F9B3],
+ [0x0E0020, 0x0E007F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Emoji_Component}+$/u,
+ matchSymbols,
+ "\\p{Emoji_Component}"
+);
+testPropertyEscapes(
+ /^\p{EComp}+$/u,
+ matchSymbols,
+ "\\p{EComp}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000022],
+ [0x000024, 0x000029],
+ [0x00002B, 0x00002F],
+ [0x00003A, 0x00200C],
+ [0x00200E, 0x0020E2],
+ [0x0020E4, 0x00DBFF],
+ [0x00E000, 0x00FE0E],
+ [0x00FE10, 0x01F1E5],
+ [0x01F200, 0x01F3FA],
+ [0x01F400, 0x01F9AF],
+ [0x01F9B4, 0x0E001F],
+ [0x0E0080, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Emoji_Component}+$/u,
+ nonMatchSymbols,
+ "\\P{Emoji_Component}"
+);
+testPropertyEscapes(
+ /^\P{EComp}+$/u,
+ nonMatchSymbols,
+ "\\P{EComp}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Modifier.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Modifier.js
new file mode 100644
index 0000000000..6b6cd916ba
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Modifier.js
@@ -0,0 +1,53 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Emoji_Modifier`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01F3FB, 0x01F3FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Emoji_Modifier}+$/u,
+ matchSymbols,
+ "\\p{Emoji_Modifier}"
+);
+testPropertyEscapes(
+ /^\p{EMod}+$/u,
+ matchSymbols,
+ "\\p{EMod}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01F3FA],
+ [0x01F400, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Emoji_Modifier}+$/u,
+ nonMatchSymbols,
+ "\\P{Emoji_Modifier}"
+);
+testPropertyEscapes(
+ /^\P{EMod}+$/u,
+ nonMatchSymbols,
+ "\\P{EMod}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Modifier_Base.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Modifier_Base.js
new file mode 100644
index 0000000000..203f6ef8e0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Modifier_Base.js
@@ -0,0 +1,129 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Emoji_Modifier_Base`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00261D,
+ 0x0026F9,
+ 0x01F385,
+ 0x01F3C7,
+ 0x01F47C,
+ 0x01F48F,
+ 0x01F491,
+ 0x01F4AA,
+ 0x01F57A,
+ 0x01F590,
+ 0x01F6A3,
+ 0x01F6C0,
+ 0x01F6CC,
+ 0x01F90C,
+ 0x01F90F,
+ 0x01F926,
+ 0x01F977,
+ 0x01F9BB
+ ],
+ ranges: [
+ [0x00270A, 0x00270D],
+ [0x01F3C2, 0x01F3C4],
+ [0x01F3CA, 0x01F3CC],
+ [0x01F442, 0x01F443],
+ [0x01F446, 0x01F450],
+ [0x01F466, 0x01F478],
+ [0x01F481, 0x01F483],
+ [0x01F485, 0x01F487],
+ [0x01F574, 0x01F575],
+ [0x01F595, 0x01F596],
+ [0x01F645, 0x01F647],
+ [0x01F64B, 0x01F64F],
+ [0x01F6B4, 0x01F6B6],
+ [0x01F918, 0x01F91F],
+ [0x01F930, 0x01F939],
+ [0x01F93C, 0x01F93E],
+ [0x01F9B5, 0x01F9B6],
+ [0x01F9B8, 0x01F9B9],
+ [0x01F9CD, 0x01F9CF],
+ [0x01F9D1, 0x01F9DD]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Emoji_Modifier_Base}+$/u,
+ matchSymbols,
+ "\\p{Emoji_Modifier_Base}"
+);
+testPropertyEscapes(
+ /^\p{EBase}+$/u,
+ matchSymbols,
+ "\\p{EBase}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01F484,
+ 0x01F490,
+ 0x01F9B7,
+ 0x01F9BA,
+ 0x01F9D0
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00261C],
+ [0x00261E, 0x0026F8],
+ [0x0026FA, 0x002709],
+ [0x00270E, 0x00DBFF],
+ [0x00E000, 0x01F384],
+ [0x01F386, 0x01F3C1],
+ [0x01F3C5, 0x01F3C6],
+ [0x01F3C8, 0x01F3C9],
+ [0x01F3CD, 0x01F441],
+ [0x01F444, 0x01F445],
+ [0x01F451, 0x01F465],
+ [0x01F479, 0x01F47B],
+ [0x01F47D, 0x01F480],
+ [0x01F488, 0x01F48E],
+ [0x01F492, 0x01F4A9],
+ [0x01F4AB, 0x01F573],
+ [0x01F576, 0x01F579],
+ [0x01F57B, 0x01F58F],
+ [0x01F591, 0x01F594],
+ [0x01F597, 0x01F644],
+ [0x01F648, 0x01F64A],
+ [0x01F650, 0x01F6A2],
+ [0x01F6A4, 0x01F6B3],
+ [0x01F6B7, 0x01F6BF],
+ [0x01F6C1, 0x01F6CB],
+ [0x01F6CD, 0x01F90B],
+ [0x01F90D, 0x01F90E],
+ [0x01F910, 0x01F917],
+ [0x01F920, 0x01F925],
+ [0x01F927, 0x01F92F],
+ [0x01F93A, 0x01F93B],
+ [0x01F93F, 0x01F976],
+ [0x01F978, 0x01F9B4],
+ [0x01F9BC, 0x01F9CC],
+ [0x01F9DE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Emoji_Modifier_Base}+$/u,
+ nonMatchSymbols,
+ "\\P{Emoji_Modifier_Base}"
+);
+testPropertyEscapes(
+ /^\P{EBase}+$/u,
+ nonMatchSymbols,
+ "\\P{EBase}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Presentation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Presentation.js
new file mode 100644
index 0000000000..b1c14220e4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Emoji_Presentation.js
@@ -0,0 +1,215 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Emoji_Presentation`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0023F0,
+ 0x0023F3,
+ 0x00267F,
+ 0x002693,
+ 0x0026A1,
+ 0x0026CE,
+ 0x0026D4,
+ 0x0026EA,
+ 0x0026F5,
+ 0x0026FA,
+ 0x0026FD,
+ 0x002705,
+ 0x002728,
+ 0x00274C,
+ 0x00274E,
+ 0x002757,
+ 0x0027B0,
+ 0x0027BF,
+ 0x002B50,
+ 0x002B55,
+ 0x01F004,
+ 0x01F0CF,
+ 0x01F18E,
+ 0x01F201,
+ 0x01F21A,
+ 0x01F22F,
+ 0x01F3F4,
+ 0x01F440,
+ 0x01F57A,
+ 0x01F5A4,
+ 0x01F6CC
+ ],
+ ranges: [
+ [0x00231A, 0x00231B],
+ [0x0023E9, 0x0023EC],
+ [0x0025FD, 0x0025FE],
+ [0x002614, 0x002615],
+ [0x002648, 0x002653],
+ [0x0026AA, 0x0026AB],
+ [0x0026BD, 0x0026BE],
+ [0x0026C4, 0x0026C5],
+ [0x0026F2, 0x0026F3],
+ [0x00270A, 0x00270B],
+ [0x002753, 0x002755],
+ [0x002795, 0x002797],
+ [0x002B1B, 0x002B1C],
+ [0x01F191, 0x01F19A],
+ [0x01F1E6, 0x01F1FF],
+ [0x01F232, 0x01F236],
+ [0x01F238, 0x01F23A],
+ [0x01F250, 0x01F251],
+ [0x01F300, 0x01F320],
+ [0x01F32D, 0x01F335],
+ [0x01F337, 0x01F37C],
+ [0x01F37E, 0x01F393],
+ [0x01F3A0, 0x01F3CA],
+ [0x01F3CF, 0x01F3D3],
+ [0x01F3E0, 0x01F3F0],
+ [0x01F3F8, 0x01F43E],
+ [0x01F442, 0x01F4FC],
+ [0x01F4FF, 0x01F53D],
+ [0x01F54B, 0x01F54E],
+ [0x01F550, 0x01F567],
+ [0x01F595, 0x01F596],
+ [0x01F5FB, 0x01F64F],
+ [0x01F680, 0x01F6C5],
+ [0x01F6D0, 0x01F6D2],
+ [0x01F6D5, 0x01F6D7],
+ [0x01F6EB, 0x01F6EC],
+ [0x01F6F4, 0x01F6FC],
+ [0x01F7E0, 0x01F7EB],
+ [0x01F90C, 0x01F93A],
+ [0x01F93C, 0x01F945],
+ [0x01F947, 0x01F978],
+ [0x01F97A, 0x01F9CB],
+ [0x01F9CD, 0x01F9FF],
+ [0x01FA70, 0x01FA74],
+ [0x01FA78, 0x01FA7A],
+ [0x01FA80, 0x01FA86],
+ [0x01FA90, 0x01FAA8],
+ [0x01FAB0, 0x01FAB6],
+ [0x01FAC0, 0x01FAC2],
+ [0x01FAD0, 0x01FAD6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Emoji_Presentation}+$/u,
+ matchSymbols,
+ "\\p{Emoji_Presentation}"
+);
+testPropertyEscapes(
+ /^\p{EPres}+$/u,
+ matchSymbols,
+ "\\p{EPres}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0026F4,
+ 0x00274D,
+ 0x002756,
+ 0x01F200,
+ 0x01F237,
+ 0x01F336,
+ 0x01F37D,
+ 0x01F43F,
+ 0x01F441,
+ 0x01F54F,
+ 0x01F93B,
+ 0x01F946,
+ 0x01F979,
+ 0x01F9CC
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002319],
+ [0x00231C, 0x0023E8],
+ [0x0023ED, 0x0023EF],
+ [0x0023F1, 0x0023F2],
+ [0x0023F4, 0x0025FC],
+ [0x0025FF, 0x002613],
+ [0x002616, 0x002647],
+ [0x002654, 0x00267E],
+ [0x002680, 0x002692],
+ [0x002694, 0x0026A0],
+ [0x0026A2, 0x0026A9],
+ [0x0026AC, 0x0026BC],
+ [0x0026BF, 0x0026C3],
+ [0x0026C6, 0x0026CD],
+ [0x0026CF, 0x0026D3],
+ [0x0026D5, 0x0026E9],
+ [0x0026EB, 0x0026F1],
+ [0x0026F6, 0x0026F9],
+ [0x0026FB, 0x0026FC],
+ [0x0026FE, 0x002704],
+ [0x002706, 0x002709],
+ [0x00270C, 0x002727],
+ [0x002729, 0x00274B],
+ [0x00274F, 0x002752],
+ [0x002758, 0x002794],
+ [0x002798, 0x0027AF],
+ [0x0027B1, 0x0027BE],
+ [0x0027C0, 0x002B1A],
+ [0x002B1D, 0x002B4F],
+ [0x002B51, 0x002B54],
+ [0x002B56, 0x00DBFF],
+ [0x00E000, 0x01F003],
+ [0x01F005, 0x01F0CE],
+ [0x01F0D0, 0x01F18D],
+ [0x01F18F, 0x01F190],
+ [0x01F19B, 0x01F1E5],
+ [0x01F202, 0x01F219],
+ [0x01F21B, 0x01F22E],
+ [0x01F230, 0x01F231],
+ [0x01F23B, 0x01F24F],
+ [0x01F252, 0x01F2FF],
+ [0x01F321, 0x01F32C],
+ [0x01F394, 0x01F39F],
+ [0x01F3CB, 0x01F3CE],
+ [0x01F3D4, 0x01F3DF],
+ [0x01F3F1, 0x01F3F3],
+ [0x01F3F5, 0x01F3F7],
+ [0x01F4FD, 0x01F4FE],
+ [0x01F53E, 0x01F54A],
+ [0x01F568, 0x01F579],
+ [0x01F57B, 0x01F594],
+ [0x01F597, 0x01F5A3],
+ [0x01F5A5, 0x01F5FA],
+ [0x01F650, 0x01F67F],
+ [0x01F6C6, 0x01F6CB],
+ [0x01F6CD, 0x01F6CF],
+ [0x01F6D3, 0x01F6D4],
+ [0x01F6D8, 0x01F6EA],
+ [0x01F6ED, 0x01F6F3],
+ [0x01F6FD, 0x01F7DF],
+ [0x01F7EC, 0x01F90B],
+ [0x01FA00, 0x01FA6F],
+ [0x01FA75, 0x01FA77],
+ [0x01FA7B, 0x01FA7F],
+ [0x01FA87, 0x01FA8F],
+ [0x01FAA9, 0x01FAAF],
+ [0x01FAB7, 0x01FABF],
+ [0x01FAC3, 0x01FACF],
+ [0x01FAD7, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Emoji_Presentation}+$/u,
+ nonMatchSymbols,
+ "\\P{Emoji_Presentation}"
+);
+testPropertyEscapes(
+ /^\P{EPres}+$/u,
+ nonMatchSymbols,
+ "\\P{EPres}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Extended_Pictographic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Extended_Pictographic.js
new file mode 100644
index 0000000000..f004987a61
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Extended_Pictographic.js
@@ -0,0 +1,209 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Extended_Pictographic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000A9,
+ 0x0000AE,
+ 0x00203C,
+ 0x002049,
+ 0x002122,
+ 0x002139,
+ 0x002328,
+ 0x002388,
+ 0x0023CF,
+ 0x0024C2,
+ 0x0025B6,
+ 0x0025C0,
+ 0x002714,
+ 0x002716,
+ 0x00271D,
+ 0x002721,
+ 0x002728,
+ 0x002744,
+ 0x002747,
+ 0x00274C,
+ 0x00274E,
+ 0x002757,
+ 0x0027A1,
+ 0x0027B0,
+ 0x0027BF,
+ 0x002B50,
+ 0x002B55,
+ 0x003030,
+ 0x00303D,
+ 0x003297,
+ 0x003299,
+ 0x01F12F,
+ 0x01F18E,
+ 0x01F21A,
+ 0x01F22F
+ ],
+ ranges: [
+ [0x002194, 0x002199],
+ [0x0021A9, 0x0021AA],
+ [0x00231A, 0x00231B],
+ [0x0023E9, 0x0023F3],
+ [0x0023F8, 0x0023FA],
+ [0x0025AA, 0x0025AB],
+ [0x0025FB, 0x0025FE],
+ [0x002600, 0x002605],
+ [0x002607, 0x002612],
+ [0x002614, 0x002685],
+ [0x002690, 0x002705],
+ [0x002708, 0x002712],
+ [0x002733, 0x002734],
+ [0x002753, 0x002755],
+ [0x002763, 0x002767],
+ [0x002795, 0x002797],
+ [0x002934, 0x002935],
+ [0x002B05, 0x002B07],
+ [0x002B1B, 0x002B1C],
+ [0x01F000, 0x01F0FF],
+ [0x01F10D, 0x01F10F],
+ [0x01F16C, 0x01F171],
+ [0x01F17E, 0x01F17F],
+ [0x01F191, 0x01F19A],
+ [0x01F1AD, 0x01F1E5],
+ [0x01F201, 0x01F20F],
+ [0x01F232, 0x01F23A],
+ [0x01F23C, 0x01F23F],
+ [0x01F249, 0x01F3FA],
+ [0x01F400, 0x01F53D],
+ [0x01F546, 0x01F64F],
+ [0x01F680, 0x01F6FF],
+ [0x01F774, 0x01F77F],
+ [0x01F7D5, 0x01F7FF],
+ [0x01F80C, 0x01F80F],
+ [0x01F848, 0x01F84F],
+ [0x01F85A, 0x01F85F],
+ [0x01F888, 0x01F88F],
+ [0x01F8AE, 0x01F8FF],
+ [0x01F90C, 0x01F93A],
+ [0x01F93C, 0x01F945],
+ [0x01F947, 0x01FAFF],
+ [0x01FC00, 0x01FFFD]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Extended_Pictographic}+$/u,
+ matchSymbols,
+ "\\p{Extended_Pictographic}"
+);
+testPropertyEscapes(
+ /^\p{ExtPict}+$/u,
+ matchSymbols,
+ "\\p{ExtPict}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0025FF,
+ 0x002606,
+ 0x002613,
+ 0x002713,
+ 0x002715,
+ 0x00274D,
+ 0x002756,
+ 0x003298,
+ 0x01F23B,
+ 0x01F93B,
+ 0x01F946
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0000A8],
+ [0x0000AA, 0x0000AD],
+ [0x0000AF, 0x00203B],
+ [0x00203D, 0x002048],
+ [0x00204A, 0x002121],
+ [0x002123, 0x002138],
+ [0x00213A, 0x002193],
+ [0x00219A, 0x0021A8],
+ [0x0021AB, 0x002319],
+ [0x00231C, 0x002327],
+ [0x002329, 0x002387],
+ [0x002389, 0x0023CE],
+ [0x0023D0, 0x0023E8],
+ [0x0023F4, 0x0023F7],
+ [0x0023FB, 0x0024C1],
+ [0x0024C3, 0x0025A9],
+ [0x0025AC, 0x0025B5],
+ [0x0025B7, 0x0025BF],
+ [0x0025C1, 0x0025FA],
+ [0x002686, 0x00268F],
+ [0x002706, 0x002707],
+ [0x002717, 0x00271C],
+ [0x00271E, 0x002720],
+ [0x002722, 0x002727],
+ [0x002729, 0x002732],
+ [0x002735, 0x002743],
+ [0x002745, 0x002746],
+ [0x002748, 0x00274B],
+ [0x00274F, 0x002752],
+ [0x002758, 0x002762],
+ [0x002768, 0x002794],
+ [0x002798, 0x0027A0],
+ [0x0027A2, 0x0027AF],
+ [0x0027B1, 0x0027BE],
+ [0x0027C0, 0x002933],
+ [0x002936, 0x002B04],
+ [0x002B08, 0x002B1A],
+ [0x002B1D, 0x002B4F],
+ [0x002B51, 0x002B54],
+ [0x002B56, 0x00302F],
+ [0x003031, 0x00303C],
+ [0x00303E, 0x003296],
+ [0x00329A, 0x00DBFF],
+ [0x00E000, 0x01EFFF],
+ [0x01F100, 0x01F10C],
+ [0x01F110, 0x01F12E],
+ [0x01F130, 0x01F16B],
+ [0x01F172, 0x01F17D],
+ [0x01F180, 0x01F18D],
+ [0x01F18F, 0x01F190],
+ [0x01F19B, 0x01F1AC],
+ [0x01F1E6, 0x01F200],
+ [0x01F210, 0x01F219],
+ [0x01F21B, 0x01F22E],
+ [0x01F230, 0x01F231],
+ [0x01F240, 0x01F248],
+ [0x01F3FB, 0x01F3FF],
+ [0x01F53E, 0x01F545],
+ [0x01F650, 0x01F67F],
+ [0x01F700, 0x01F773],
+ [0x01F780, 0x01F7D4],
+ [0x01F800, 0x01F80B],
+ [0x01F810, 0x01F847],
+ [0x01F850, 0x01F859],
+ [0x01F860, 0x01F887],
+ [0x01F890, 0x01F8AD],
+ [0x01F900, 0x01F90B],
+ [0x01FB00, 0x01FBFF],
+ [0x01FFFE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Extended_Pictographic}+$/u,
+ nonMatchSymbols,
+ "\\P{Extended_Pictographic}"
+);
+testPropertyEscapes(
+ /^\P{ExtPict}+$/u,
+ nonMatchSymbols,
+ "\\P{ExtPict}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Extender.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Extender.js
new file mode 100644
index 0000000000..8aefb5fb19
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Extender.js
@@ -0,0 +1,117 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Extender`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000B7,
+ 0x000640,
+ 0x0007FA,
+ 0x000B55,
+ 0x000E46,
+ 0x000EC6,
+ 0x00180A,
+ 0x001843,
+ 0x001AA7,
+ 0x001C36,
+ 0x001C7B,
+ 0x003005,
+ 0x00A015,
+ 0x00A60C,
+ 0x00A9CF,
+ 0x00A9E6,
+ 0x00AA70,
+ 0x00AADD,
+ 0x00FF70,
+ 0x01135D,
+ 0x011A98,
+ 0x016FE3
+ ],
+ ranges: [
+ [0x0002D0, 0x0002D1],
+ [0x003031, 0x003035],
+ [0x00309D, 0x00309E],
+ [0x0030FC, 0x0030FE],
+ [0x00AAF3, 0x00AAF4],
+ [0x0115C6, 0x0115C8],
+ [0x016B42, 0x016B43],
+ [0x016FE0, 0x016FE1],
+ [0x01E13C, 0x01E13D],
+ [0x01E944, 0x01E946]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Extender}+$/u,
+ matchSymbols,
+ "\\p{Extender}"
+);
+testPropertyEscapes(
+ /^\p{Ext}+$/u,
+ matchSymbols,
+ "\\p{Ext}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x016FE2
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0000B6],
+ [0x0000B8, 0x0002CF],
+ [0x0002D2, 0x00063F],
+ [0x000641, 0x0007F9],
+ [0x0007FB, 0x000B54],
+ [0x000B56, 0x000E45],
+ [0x000E47, 0x000EC5],
+ [0x000EC7, 0x001809],
+ [0x00180B, 0x001842],
+ [0x001844, 0x001AA6],
+ [0x001AA8, 0x001C35],
+ [0x001C37, 0x001C7A],
+ [0x001C7C, 0x003004],
+ [0x003006, 0x003030],
+ [0x003036, 0x00309C],
+ [0x00309F, 0x0030FB],
+ [0x0030FF, 0x00A014],
+ [0x00A016, 0x00A60B],
+ [0x00A60D, 0x00A9CE],
+ [0x00A9D0, 0x00A9E5],
+ [0x00A9E7, 0x00AA6F],
+ [0x00AA71, 0x00AADC],
+ [0x00AADE, 0x00AAF2],
+ [0x00AAF5, 0x00DBFF],
+ [0x00E000, 0x00FF6F],
+ [0x00FF71, 0x01135C],
+ [0x01135E, 0x0115C5],
+ [0x0115C9, 0x011A97],
+ [0x011A99, 0x016B41],
+ [0x016B44, 0x016FDF],
+ [0x016FE4, 0x01E13B],
+ [0x01E13E, 0x01E943],
+ [0x01E947, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Extender}+$/u,
+ nonMatchSymbols,
+ "\\P{Extender}"
+);
+testPropertyEscapes(
+ /^\P{Ext}+$/u,
+ nonMatchSymbols,
+ "\\P{Ext}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js
new file mode 100644
index 0000000000..e0c098f7ca
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js
@@ -0,0 +1,357 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Cased_Letter`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000B5,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001FBE,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x002139,
+ 0x00214E,
+ 0x002D27,
+ 0x002D2D,
+ 0x00A7FA,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0001BA],
+ [0x0001BC, 0x0001BF],
+ [0x0001C4, 0x000293],
+ [0x000295, 0x0002AF],
+ [0x000370, 0x000373],
+ [0x000376, 0x000377],
+ [0x00037B, 0x00037D],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003F5],
+ [0x0003F7, 0x000481],
+ [0x00048A, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000560, 0x000588],
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FA],
+ [0x0010FD, 0x0010FF],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001D00, 0x001D2B],
+ [0x001D6B, 0x001D77],
+ [0x001D79, 0x001D9A],
+ [0x001E00, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FBC],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FCC],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FE0, 0x001FEC],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFC],
+ [0x00210A, 0x002113],
+ [0x002119, 0x00211D],
+ [0x00212A, 0x00212D],
+ [0x00212F, 0x002134],
+ [0x00213C, 0x00213F],
+ [0x002145, 0x002149],
+ [0x002183, 0x002184],
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002C7B],
+ [0x002C7E, 0x002CE4],
+ [0x002CEB, 0x002CEE],
+ [0x002CF2, 0x002CF3],
+ [0x002D00, 0x002D25],
+ [0x00A640, 0x00A66D],
+ [0x00A680, 0x00A69B],
+ [0x00A722, 0x00A76F],
+ [0x00A771, 0x00A787],
+ [0x00A78B, 0x00A78E],
+ [0x00A790, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A7F6],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB60, 0x00AB68],
+ [0x00AB70, 0x00ABBF],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x010400, 0x01044F],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x0118A0, 0x0118DF],
+ [0x016E40, 0x016E7F],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D6C0],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6FA],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D734],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D76E],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D7A8],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7CB],
+ [0x01E900, 0x01E943]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Cased_Letter}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Cased_Letter}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=LC}+$/u,
+ matchSymbols,
+ "\\p{General_Category=LC}"
+);
+testPropertyEscapes(
+ /^\p{gc=Cased_Letter}+$/u,
+ matchSymbols,
+ "\\p{gc=Cased_Letter}"
+);
+testPropertyEscapes(
+ /^\p{gc=LC}+$/u,
+ matchSymbols,
+ "\\p{gc=LC}"
+);
+testPropertyEscapes(
+ /^\p{Cased_Letter}+$/u,
+ matchSymbols,
+ "\\p{Cased_Letter}"
+);
+testPropertyEscapes(
+ /^\p{LC}+$/u,
+ matchSymbols,
+ "\\p{LC}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x0001BB,
+ 0x000294,
+ 0x00037E,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x0003F6,
+ 0x000530,
+ 0x0010C6,
+ 0x001D78,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FBD,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002114,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x00212E,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x00A770,
+ 0x00A78F,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01D6C1,
+ 0x01D6DB,
+ 0x01D6FB,
+ 0x01D715,
+ 0x01D735,
+ 0x01D74F,
+ 0x01D76F,
+ 0x01D789,
+ 0x01D7A9,
+ 0x01D7C3
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000B4],
+ [0x0000B6, 0x0000BF],
+ [0x0001C0, 0x0001C3],
+ [0x0002B0, 0x00036F],
+ [0x000374, 0x000375],
+ [0x000378, 0x00037A],
+ [0x000380, 0x000385],
+ [0x000482, 0x000489],
+ [0x000557, 0x00055F],
+ [0x000589, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x0010FB, 0x0010FC],
+ [0x001100, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001CFF],
+ [0x001D2C, 0x001D6A],
+ [0x001D9B, 0x001DFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FDC, 0x001FDF],
+ [0x001FED, 0x001FF1],
+ [0x001FFD, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002118],
+ [0x00211E, 0x002123],
+ [0x002135, 0x002138],
+ [0x00213A, 0x00213B],
+ [0x002140, 0x002144],
+ [0x00214A, 0x00214D],
+ [0x00214F, 0x002182],
+ [0x002185, 0x002BFF],
+ [0x002C7C, 0x002C7D],
+ [0x002CE5, 0x002CEA],
+ [0x002CEF, 0x002CF1],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x00A63F],
+ [0x00A66E, 0x00A67F],
+ [0x00A69C, 0x00A721],
+ [0x00A788, 0x00A78A],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A7F7, 0x00A7F9],
+ [0x00A7FB, 0x00AB2F],
+ [0x00AB5B, 0x00AB5F],
+ [0x00AB69, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x0103FF],
+ [0x010450, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x01189F],
+ [0x0118E0, 0x016E3F],
+ [0x016E80, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01E8FF],
+ [0x01E944, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Cased_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Cased_Letter}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=LC}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=LC}"
+);
+testPropertyEscapes(
+ /^\P{gc=Cased_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Cased_Letter}"
+);
+testPropertyEscapes(
+ /^\P{gc=LC}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=LC}"
+);
+testPropertyEscapes(
+ /^\P{Cased_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{Cased_Letter}"
+);
+testPropertyEscapes(
+ /^\P{LC}+$/u,
+ nonMatchSymbols,
+ "\\P{LC}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Close_Punctuation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Close_Punctuation.js
new file mode 100644
index 0000000000..5904aada17
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Close_Punctuation.js
@@ -0,0 +1,237 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Close_Punctuation`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000029,
+ 0x00005D,
+ 0x00007D,
+ 0x000F3B,
+ 0x000F3D,
+ 0x00169C,
+ 0x002046,
+ 0x00207E,
+ 0x00208E,
+ 0x002309,
+ 0x00230B,
+ 0x00232A,
+ 0x002769,
+ 0x00276B,
+ 0x00276D,
+ 0x00276F,
+ 0x002771,
+ 0x002773,
+ 0x002775,
+ 0x0027C6,
+ 0x0027E7,
+ 0x0027E9,
+ 0x0027EB,
+ 0x0027ED,
+ 0x0027EF,
+ 0x002984,
+ 0x002986,
+ 0x002988,
+ 0x00298A,
+ 0x00298C,
+ 0x00298E,
+ 0x002990,
+ 0x002992,
+ 0x002994,
+ 0x002996,
+ 0x002998,
+ 0x0029D9,
+ 0x0029DB,
+ 0x0029FD,
+ 0x002E23,
+ 0x002E25,
+ 0x002E27,
+ 0x002E29,
+ 0x003009,
+ 0x00300B,
+ 0x00300D,
+ 0x00300F,
+ 0x003011,
+ 0x003015,
+ 0x003017,
+ 0x003019,
+ 0x00301B,
+ 0x00FD3E,
+ 0x00FE18,
+ 0x00FE36,
+ 0x00FE38,
+ 0x00FE3A,
+ 0x00FE3C,
+ 0x00FE3E,
+ 0x00FE40,
+ 0x00FE42,
+ 0x00FE44,
+ 0x00FE48,
+ 0x00FE5A,
+ 0x00FE5C,
+ 0x00FE5E,
+ 0x00FF09,
+ 0x00FF3D,
+ 0x00FF5D,
+ 0x00FF60,
+ 0x00FF63
+ ],
+ ranges: [
+ [0x00301E, 0x00301F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Close_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Close_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Pe}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Pe}"
+);
+testPropertyEscapes(
+ /^\p{gc=Close_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{gc=Close_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{gc=Pe}+$/u,
+ matchSymbols,
+ "\\p{gc=Pe}"
+);
+testPropertyEscapes(
+ /^\p{Close_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{Close_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{Pe}+$/u,
+ matchSymbols,
+ "\\p{Pe}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000F3C,
+ 0x00230A,
+ 0x00276A,
+ 0x00276C,
+ 0x00276E,
+ 0x002770,
+ 0x002772,
+ 0x002774,
+ 0x0027E8,
+ 0x0027EA,
+ 0x0027EC,
+ 0x0027EE,
+ 0x002985,
+ 0x002987,
+ 0x002989,
+ 0x00298B,
+ 0x00298D,
+ 0x00298F,
+ 0x002991,
+ 0x002993,
+ 0x002995,
+ 0x002997,
+ 0x0029DA,
+ 0x002E24,
+ 0x002E26,
+ 0x002E28,
+ 0x00300A,
+ 0x00300C,
+ 0x00300E,
+ 0x003010,
+ 0x003016,
+ 0x003018,
+ 0x00301A,
+ 0x00FE37,
+ 0x00FE39,
+ 0x00FE3B,
+ 0x00FE3D,
+ 0x00FE3F,
+ 0x00FE41,
+ 0x00FE43,
+ 0x00FE5B,
+ 0x00FE5D
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000028],
+ [0x00002A, 0x00005C],
+ [0x00005E, 0x00007C],
+ [0x00007E, 0x000F3A],
+ [0x000F3E, 0x00169B],
+ [0x00169D, 0x002045],
+ [0x002047, 0x00207D],
+ [0x00207F, 0x00208D],
+ [0x00208F, 0x002308],
+ [0x00230C, 0x002329],
+ [0x00232B, 0x002768],
+ [0x002776, 0x0027C5],
+ [0x0027C7, 0x0027E6],
+ [0x0027F0, 0x002983],
+ [0x002999, 0x0029D8],
+ [0x0029DC, 0x0029FC],
+ [0x0029FE, 0x002E22],
+ [0x002E2A, 0x003008],
+ [0x003012, 0x003014],
+ [0x00301C, 0x00301D],
+ [0x003020, 0x00DBFF],
+ [0x00E000, 0x00FD3D],
+ [0x00FD3F, 0x00FE17],
+ [0x00FE19, 0x00FE35],
+ [0x00FE45, 0x00FE47],
+ [0x00FE49, 0x00FE59],
+ [0x00FE5F, 0x00FF08],
+ [0x00FF0A, 0x00FF3C],
+ [0x00FF3E, 0x00FF5C],
+ [0x00FF5E, 0x00FF5F],
+ [0x00FF61, 0x00FF62],
+ [0x00FF64, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Close_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Close_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Pe}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Pe}"
+);
+testPropertyEscapes(
+ /^\P{gc=Close_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Close_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{gc=Pe}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Pe}"
+);
+testPropertyEscapes(
+ /^\P{Close_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{Close_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{Pe}+$/u,
+ nonMatchSymbols,
+ "\\P{Pe}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Connector_Punctuation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Connector_Punctuation.js
new file mode 100644
index 0000000000..8967644bcc
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Connector_Punctuation.js
@@ -0,0 +1,104 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Connector_Punctuation`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005F,
+ 0x002054,
+ 0x00FF3F
+ ],
+ ranges: [
+ [0x00203F, 0x002040],
+ [0x00FE33, 0x00FE34],
+ [0x00FE4D, 0x00FE4F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Connector_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Connector_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Pc}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Pc}"
+);
+testPropertyEscapes(
+ /^\p{gc=Connector_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{gc=Connector_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{gc=Pc}+$/u,
+ matchSymbols,
+ "\\p{gc=Pc}"
+);
+testPropertyEscapes(
+ /^\p{Connector_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{Connector_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{Pc}+$/u,
+ matchSymbols,
+ "\\p{Pc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00005E],
+ [0x000060, 0x00203E],
+ [0x002041, 0x002053],
+ [0x002055, 0x00DBFF],
+ [0x00E000, 0x00FE32],
+ [0x00FE35, 0x00FE4C],
+ [0x00FE50, 0x00FF3E],
+ [0x00FF40, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Connector_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Connector_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Pc}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Pc}"
+);
+testPropertyEscapes(
+ /^\P{gc=Connector_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Connector_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{gc=Pc}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Pc}"
+);
+testPropertyEscapes(
+ /^\P{Connector_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{Connector_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{Pc}+$/u,
+ nonMatchSymbols,
+ "\\P{Pc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Control.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Control.js
new file mode 100644
index 0000000000..cc3814a0a5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Control.js
@@ -0,0 +1,124 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Control`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000000, 0x00001F],
+ [0x00007F, 0x00009F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Control}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Control}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Cc}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Cc}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=cntrl}+$/u,
+ matchSymbols,
+ "\\p{General_Category=cntrl}"
+);
+testPropertyEscapes(
+ /^\p{gc=Control}+$/u,
+ matchSymbols,
+ "\\p{gc=Control}"
+);
+testPropertyEscapes(
+ /^\p{gc=Cc}+$/u,
+ matchSymbols,
+ "\\p{gc=Cc}"
+);
+testPropertyEscapes(
+ /^\p{gc=cntrl}+$/u,
+ matchSymbols,
+ "\\p{gc=cntrl}"
+);
+testPropertyEscapes(
+ /^\p{Control}+$/u,
+ matchSymbols,
+ "\\p{Control}"
+);
+testPropertyEscapes(
+ /^\p{Cc}+$/u,
+ matchSymbols,
+ "\\p{Cc}"
+);
+testPropertyEscapes(
+ /^\p{cntrl}+$/u,
+ matchSymbols,
+ "\\p{cntrl}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000020, 0x00007E],
+ [0x0000A0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Control}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Control}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Cc}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Cc}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=cntrl}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=cntrl}"
+);
+testPropertyEscapes(
+ /^\P{gc=Control}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Control}"
+);
+testPropertyEscapes(
+ /^\P{gc=Cc}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Cc}"
+);
+testPropertyEscapes(
+ /^\P{gc=cntrl}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=cntrl}"
+);
+testPropertyEscapes(
+ /^\P{Control}+$/u,
+ nonMatchSymbols,
+ "\\P{Control}"
+);
+testPropertyEscapes(
+ /^\P{Cc}+$/u,
+ nonMatchSymbols,
+ "\\P{Cc}"
+);
+testPropertyEscapes(
+ /^\P{cntrl}+$/u,
+ nonMatchSymbols,
+ "\\P{cntrl}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Currency_Symbol.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Currency_Symbol.js
new file mode 100644
index 0000000000..67ea74b66e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Currency_Symbol.js
@@ -0,0 +1,134 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Currency_Symbol`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000024,
+ 0x00058F,
+ 0x00060B,
+ 0x0009FB,
+ 0x000AF1,
+ 0x000BF9,
+ 0x000E3F,
+ 0x0017DB,
+ 0x00A838,
+ 0x00FDFC,
+ 0x00FE69,
+ 0x00FF04,
+ 0x01E2FF,
+ 0x01ECB0
+ ],
+ ranges: [
+ [0x0000A2, 0x0000A5],
+ [0x0007FE, 0x0007FF],
+ [0x0009F2, 0x0009F3],
+ [0x0020A0, 0x0020BF],
+ [0x00FFE0, 0x00FFE1],
+ [0x00FFE5, 0x00FFE6],
+ [0x011FDD, 0x011FE0]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Currency_Symbol}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Currency_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Sc}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Sc}"
+);
+testPropertyEscapes(
+ /^\p{gc=Currency_Symbol}+$/u,
+ matchSymbols,
+ "\\p{gc=Currency_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{gc=Sc}+$/u,
+ matchSymbols,
+ "\\p{gc=Sc}"
+);
+testPropertyEscapes(
+ /^\p{Currency_Symbol}+$/u,
+ matchSymbols,
+ "\\p{Currency_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{Sc}+$/u,
+ matchSymbols,
+ "\\p{Sc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000023],
+ [0x000025, 0x0000A1],
+ [0x0000A6, 0x00058E],
+ [0x000590, 0x00060A],
+ [0x00060C, 0x0007FD],
+ [0x000800, 0x0009F1],
+ [0x0009F4, 0x0009FA],
+ [0x0009FC, 0x000AF0],
+ [0x000AF2, 0x000BF8],
+ [0x000BFA, 0x000E3E],
+ [0x000E40, 0x0017DA],
+ [0x0017DC, 0x00209F],
+ [0x0020C0, 0x00A837],
+ [0x00A839, 0x00DBFF],
+ [0x00E000, 0x00FDFB],
+ [0x00FDFD, 0x00FE68],
+ [0x00FE6A, 0x00FF03],
+ [0x00FF05, 0x00FFDF],
+ [0x00FFE2, 0x00FFE4],
+ [0x00FFE7, 0x011FDC],
+ [0x011FE1, 0x01E2FE],
+ [0x01E300, 0x01ECAF],
+ [0x01ECB1, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Currency_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Currency_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Sc}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Sc}"
+);
+testPropertyEscapes(
+ /^\P{gc=Currency_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Currency_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{gc=Sc}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Sc}"
+);
+testPropertyEscapes(
+ /^\P{Currency_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{Currency_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{Sc}+$/u,
+ nonMatchSymbols,
+ "\\P{Sc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Dash_Punctuation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Dash_Punctuation.js
new file mode 100644
index 0000000000..e8b4990b6d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Dash_Punctuation.js
@@ -0,0 +1,128 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Dash_Punctuation`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00002D,
+ 0x00058A,
+ 0x0005BE,
+ 0x001400,
+ 0x001806,
+ 0x002E17,
+ 0x002E1A,
+ 0x002E40,
+ 0x00301C,
+ 0x003030,
+ 0x0030A0,
+ 0x00FE58,
+ 0x00FE63,
+ 0x00FF0D,
+ 0x010EAD
+ ],
+ ranges: [
+ [0x002010, 0x002015],
+ [0x002E3A, 0x002E3B],
+ [0x00FE31, 0x00FE32]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Dash_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Dash_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Pd}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Pd}"
+);
+testPropertyEscapes(
+ /^\p{gc=Dash_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{gc=Dash_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{gc=Pd}+$/u,
+ matchSymbols,
+ "\\p{gc=Pd}"
+);
+testPropertyEscapes(
+ /^\p{Dash_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{Dash_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{Pd}+$/u,
+ matchSymbols,
+ "\\p{Pd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00002C],
+ [0x00002E, 0x000589],
+ [0x00058B, 0x0005BD],
+ [0x0005BF, 0x0013FF],
+ [0x001401, 0x001805],
+ [0x001807, 0x00200F],
+ [0x002016, 0x002E16],
+ [0x002E18, 0x002E19],
+ [0x002E1B, 0x002E39],
+ [0x002E3C, 0x002E3F],
+ [0x002E41, 0x00301B],
+ [0x00301D, 0x00302F],
+ [0x003031, 0x00309F],
+ [0x0030A1, 0x00DBFF],
+ [0x00E000, 0x00FE30],
+ [0x00FE33, 0x00FE57],
+ [0x00FE59, 0x00FE62],
+ [0x00FE64, 0x00FF0C],
+ [0x00FF0E, 0x010EAC],
+ [0x010EAE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Dash_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Dash_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Pd}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Pd}"
+);
+testPropertyEscapes(
+ /^\P{gc=Dash_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Dash_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{gc=Pd}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Pd}"
+);
+testPropertyEscapes(
+ /^\P{Dash_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{Dash_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{Pd}+$/u,
+ nonMatchSymbols,
+ "\\P{Pd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js
new file mode 100644
index 0000000000..754cf2307c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js
@@ -0,0 +1,243 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Decimal_Number`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000030, 0x000039],
+ [0x000660, 0x000669],
+ [0x0006F0, 0x0006F9],
+ [0x0007C0, 0x0007C9],
+ [0x000966, 0x00096F],
+ [0x0009E6, 0x0009EF],
+ [0x000A66, 0x000A6F],
+ [0x000AE6, 0x000AEF],
+ [0x000B66, 0x000B6F],
+ [0x000BE6, 0x000BEF],
+ [0x000C66, 0x000C6F],
+ [0x000CE6, 0x000CEF],
+ [0x000D66, 0x000D6F],
+ [0x000DE6, 0x000DEF],
+ [0x000E50, 0x000E59],
+ [0x000ED0, 0x000ED9],
+ [0x000F20, 0x000F29],
+ [0x001040, 0x001049],
+ [0x001090, 0x001099],
+ [0x0017E0, 0x0017E9],
+ [0x001810, 0x001819],
+ [0x001946, 0x00194F],
+ [0x0019D0, 0x0019D9],
+ [0x001A80, 0x001A89],
+ [0x001A90, 0x001A99],
+ [0x001B50, 0x001B59],
+ [0x001BB0, 0x001BB9],
+ [0x001C40, 0x001C49],
+ [0x001C50, 0x001C59],
+ [0x00A620, 0x00A629],
+ [0x00A8D0, 0x00A8D9],
+ [0x00A900, 0x00A909],
+ [0x00A9D0, 0x00A9D9],
+ [0x00A9F0, 0x00A9F9],
+ [0x00AA50, 0x00AA59],
+ [0x00ABF0, 0x00ABF9],
+ [0x00FF10, 0x00FF19],
+ [0x0104A0, 0x0104A9],
+ [0x010D30, 0x010D39],
+ [0x011066, 0x01106F],
+ [0x0110F0, 0x0110F9],
+ [0x011136, 0x01113F],
+ [0x0111D0, 0x0111D9],
+ [0x0112F0, 0x0112F9],
+ [0x011450, 0x011459],
+ [0x0114D0, 0x0114D9],
+ [0x011650, 0x011659],
+ [0x0116C0, 0x0116C9],
+ [0x011730, 0x011739],
+ [0x0118E0, 0x0118E9],
+ [0x011950, 0x011959],
+ [0x011C50, 0x011C59],
+ [0x011D50, 0x011D59],
+ [0x011DA0, 0x011DA9],
+ [0x016A60, 0x016A69],
+ [0x016B50, 0x016B59],
+ [0x01D7CE, 0x01D7FF],
+ [0x01E140, 0x01E149],
+ [0x01E2F0, 0x01E2F9],
+ [0x01E950, 0x01E959],
+ [0x01FBF0, 0x01FBF9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Decimal_Number}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Decimal_Number}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Nd}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Nd}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=digit}+$/u,
+ matchSymbols,
+ "\\p{General_Category=digit}"
+);
+testPropertyEscapes(
+ /^\p{gc=Decimal_Number}+$/u,
+ matchSymbols,
+ "\\p{gc=Decimal_Number}"
+);
+testPropertyEscapes(
+ /^\p{gc=Nd}+$/u,
+ matchSymbols,
+ "\\p{gc=Nd}"
+);
+testPropertyEscapes(
+ /^\p{gc=digit}+$/u,
+ matchSymbols,
+ "\\p{gc=digit}"
+);
+testPropertyEscapes(
+ /^\p{Decimal_Number}+$/u,
+ matchSymbols,
+ "\\p{Decimal_Number}"
+);
+testPropertyEscapes(
+ /^\p{Nd}+$/u,
+ matchSymbols,
+ "\\p{Nd}"
+);
+testPropertyEscapes(
+ /^\p{digit}+$/u,
+ matchSymbols,
+ "\\p{digit}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00002F],
+ [0x00003A, 0x00065F],
+ [0x00066A, 0x0006EF],
+ [0x0006FA, 0x0007BF],
+ [0x0007CA, 0x000965],
+ [0x000970, 0x0009E5],
+ [0x0009F0, 0x000A65],
+ [0x000A70, 0x000AE5],
+ [0x000AF0, 0x000B65],
+ [0x000B70, 0x000BE5],
+ [0x000BF0, 0x000C65],
+ [0x000C70, 0x000CE5],
+ [0x000CF0, 0x000D65],
+ [0x000D70, 0x000DE5],
+ [0x000DF0, 0x000E4F],
+ [0x000E5A, 0x000ECF],
+ [0x000EDA, 0x000F1F],
+ [0x000F2A, 0x00103F],
+ [0x00104A, 0x00108F],
+ [0x00109A, 0x0017DF],
+ [0x0017EA, 0x00180F],
+ [0x00181A, 0x001945],
+ [0x001950, 0x0019CF],
+ [0x0019DA, 0x001A7F],
+ [0x001A8A, 0x001A8F],
+ [0x001A9A, 0x001B4F],
+ [0x001B5A, 0x001BAF],
+ [0x001BBA, 0x001C3F],
+ [0x001C4A, 0x001C4F],
+ [0x001C5A, 0x00A61F],
+ [0x00A62A, 0x00A8CF],
+ [0x00A8DA, 0x00A8FF],
+ [0x00A90A, 0x00A9CF],
+ [0x00A9DA, 0x00A9EF],
+ [0x00A9FA, 0x00AA4F],
+ [0x00AA5A, 0x00ABEF],
+ [0x00ABFA, 0x00DBFF],
+ [0x00E000, 0x00FF0F],
+ [0x00FF1A, 0x01049F],
+ [0x0104AA, 0x010D2F],
+ [0x010D3A, 0x011065],
+ [0x011070, 0x0110EF],
+ [0x0110FA, 0x011135],
+ [0x011140, 0x0111CF],
+ [0x0111DA, 0x0112EF],
+ [0x0112FA, 0x01144F],
+ [0x01145A, 0x0114CF],
+ [0x0114DA, 0x01164F],
+ [0x01165A, 0x0116BF],
+ [0x0116CA, 0x01172F],
+ [0x01173A, 0x0118DF],
+ [0x0118EA, 0x01194F],
+ [0x01195A, 0x011C4F],
+ [0x011C5A, 0x011D4F],
+ [0x011D5A, 0x011D9F],
+ [0x011DAA, 0x016A5F],
+ [0x016A6A, 0x016B4F],
+ [0x016B5A, 0x01D7CD],
+ [0x01D800, 0x01E13F],
+ [0x01E14A, 0x01E2EF],
+ [0x01E2FA, 0x01E94F],
+ [0x01E95A, 0x01FBEF],
+ [0x01FBFA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Decimal_Number}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Decimal_Number}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Nd}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Nd}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=digit}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=digit}"
+);
+testPropertyEscapes(
+ /^\P{gc=Decimal_Number}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Decimal_Number}"
+);
+testPropertyEscapes(
+ /^\P{gc=Nd}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Nd}"
+);
+testPropertyEscapes(
+ /^\P{gc=digit}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=digit}"
+);
+testPropertyEscapes(
+ /^\P{Decimal_Number}+$/u,
+ nonMatchSymbols,
+ "\\P{Decimal_Number}"
+);
+testPropertyEscapes(
+ /^\P{Nd}+$/u,
+ nonMatchSymbols,
+ "\\P{Nd}"
+);
+testPropertyEscapes(
+ /^\P{digit}+$/u,
+ nonMatchSymbols,
+ "\\P{digit}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Enclosing_Mark.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Enclosing_Mark.js
new file mode 100644
index 0000000000..3939e80815
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Enclosing_Mark.js
@@ -0,0 +1,103 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Enclosing_Mark`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001ABE
+ ],
+ ranges: [
+ [0x000488, 0x000489],
+ [0x0020DD, 0x0020E0],
+ [0x0020E2, 0x0020E4],
+ [0x00A670, 0x00A672]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Enclosing_Mark}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Enclosing_Mark}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Me}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Me}"
+);
+testPropertyEscapes(
+ /^\p{gc=Enclosing_Mark}+$/u,
+ matchSymbols,
+ "\\p{gc=Enclosing_Mark}"
+);
+testPropertyEscapes(
+ /^\p{gc=Me}+$/u,
+ matchSymbols,
+ "\\p{gc=Me}"
+);
+testPropertyEscapes(
+ /^\p{Enclosing_Mark}+$/u,
+ matchSymbols,
+ "\\p{Enclosing_Mark}"
+);
+testPropertyEscapes(
+ /^\p{Me}+$/u,
+ matchSymbols,
+ "\\p{Me}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0020E1
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000487],
+ [0x00048A, 0x001ABD],
+ [0x001ABF, 0x0020DC],
+ [0x0020E5, 0x00A66F],
+ [0x00A673, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Enclosing_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Enclosing_Mark}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Me}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Me}"
+);
+testPropertyEscapes(
+ /^\P{gc=Enclosing_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Enclosing_Mark}"
+);
+testPropertyEscapes(
+ /^\P{gc=Me}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Me}"
+);
+testPropertyEscapes(
+ /^\P{Enclosing_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{Enclosing_Mark}"
+);
+testPropertyEscapes(
+ /^\P{Me}+$/u,
+ nonMatchSymbols,
+ "\\P{Me}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Final_Punctuation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Final_Punctuation.js
new file mode 100644
index 0000000000..e137c3a410
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Final_Punctuation.js
@@ -0,0 +1,112 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Final_Punctuation`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000BB,
+ 0x002019,
+ 0x00201D,
+ 0x00203A,
+ 0x002E03,
+ 0x002E05,
+ 0x002E0A,
+ 0x002E0D,
+ 0x002E1D,
+ 0x002E21
+ ],
+ ranges: []
+});
+testPropertyEscapes(
+ /^\p{General_Category=Final_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Final_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Pf}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Pf}"
+);
+testPropertyEscapes(
+ /^\p{gc=Final_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{gc=Final_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{gc=Pf}+$/u,
+ matchSymbols,
+ "\\p{gc=Pf}"
+);
+testPropertyEscapes(
+ /^\p{Final_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{Final_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{Pf}+$/u,
+ matchSymbols,
+ "\\p{Pf}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x002E04
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0000BA],
+ [0x0000BC, 0x002018],
+ [0x00201A, 0x00201C],
+ [0x00201E, 0x002039],
+ [0x00203B, 0x002E02],
+ [0x002E06, 0x002E09],
+ [0x002E0B, 0x002E0C],
+ [0x002E0E, 0x002E1C],
+ [0x002E1E, 0x002E20],
+ [0x002E22, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Final_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Final_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Pf}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Pf}"
+);
+testPropertyEscapes(
+ /^\P{gc=Final_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Final_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{gc=Pf}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Pf}"
+);
+testPropertyEscapes(
+ /^\P{Final_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{Final_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{Pf}+$/u,
+ nonMatchSymbols,
+ "\\P{Pf}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Format.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Format.js
new file mode 100644
index 0000000000..b3e3cfdfad
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Format.js
@@ -0,0 +1,133 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Format`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AD,
+ 0x00061C,
+ 0x0006DD,
+ 0x00070F,
+ 0x0008E2,
+ 0x00180E,
+ 0x00FEFF,
+ 0x0110BD,
+ 0x0110CD,
+ 0x0E0001
+ ],
+ ranges: [
+ [0x000600, 0x000605],
+ [0x00200B, 0x00200F],
+ [0x00202A, 0x00202E],
+ [0x002060, 0x002064],
+ [0x002066, 0x00206F],
+ [0x00FFF9, 0x00FFFB],
+ [0x013430, 0x013438],
+ [0x01BCA0, 0x01BCA3],
+ [0x01D173, 0x01D17A],
+ [0x0E0020, 0x0E007F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Format}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Format}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Cf}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Cf}"
+);
+testPropertyEscapes(
+ /^\p{gc=Format}+$/u,
+ matchSymbols,
+ "\\p{gc=Format}"
+);
+testPropertyEscapes(
+ /^\p{gc=Cf}+$/u,
+ matchSymbols,
+ "\\p{gc=Cf}"
+);
+testPropertyEscapes(
+ /^\p{Format}+$/u,
+ matchSymbols,
+ "\\p{Format}"
+);
+testPropertyEscapes(
+ /^\p{Cf}+$/u,
+ matchSymbols,
+ "\\p{Cf}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x002065
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0000AC],
+ [0x0000AE, 0x0005FF],
+ [0x000606, 0x00061B],
+ [0x00061D, 0x0006DC],
+ [0x0006DE, 0x00070E],
+ [0x000710, 0x0008E1],
+ [0x0008E3, 0x00180D],
+ [0x00180F, 0x00200A],
+ [0x002010, 0x002029],
+ [0x00202F, 0x00205F],
+ [0x002070, 0x00DBFF],
+ [0x00E000, 0x00FEFE],
+ [0x00FF00, 0x00FFF8],
+ [0x00FFFC, 0x0110BC],
+ [0x0110BE, 0x0110CC],
+ [0x0110CE, 0x01342F],
+ [0x013439, 0x01BC9F],
+ [0x01BCA4, 0x01D172],
+ [0x01D17B, 0x0E0000],
+ [0x0E0002, 0x0E001F],
+ [0x0E0080, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Format}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Format}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Cf}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Cf}"
+);
+testPropertyEscapes(
+ /^\P{gc=Format}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Format}"
+);
+testPropertyEscapes(
+ /^\P{gc=Cf}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Cf}"
+);
+testPropertyEscapes(
+ /^\P{Format}+$/u,
+ nonMatchSymbols,
+ "\\P{Format}"
+);
+testPropertyEscapes(
+ /^\P{Cf}+$/u,
+ nonMatchSymbols,
+ "\\P{Cf}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Initial_Punctuation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Initial_Punctuation.js
new file mode 100644
index 0000000000..044a676460
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Initial_Punctuation.js
@@ -0,0 +1,115 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Initial_Punctuation`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AB,
+ 0x002018,
+ 0x00201F,
+ 0x002039,
+ 0x002E02,
+ 0x002E04,
+ 0x002E09,
+ 0x002E0C,
+ 0x002E1C,
+ 0x002E20
+ ],
+ ranges: [
+ [0x00201B, 0x00201C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Initial_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Initial_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Pi}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Pi}"
+);
+testPropertyEscapes(
+ /^\p{gc=Initial_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{gc=Initial_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{gc=Pi}+$/u,
+ matchSymbols,
+ "\\p{gc=Pi}"
+);
+testPropertyEscapes(
+ /^\p{Initial_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{Initial_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{Pi}+$/u,
+ matchSymbols,
+ "\\p{Pi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x002E03
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0000AA],
+ [0x0000AC, 0x002017],
+ [0x002019, 0x00201A],
+ [0x00201D, 0x00201E],
+ [0x002020, 0x002038],
+ [0x00203A, 0x002E01],
+ [0x002E05, 0x002E08],
+ [0x002E0A, 0x002E0B],
+ [0x002E0D, 0x002E1B],
+ [0x002E1D, 0x002E1F],
+ [0x002E21, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Initial_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Initial_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Pi}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Pi}"
+);
+testPropertyEscapes(
+ /^\P{gc=Initial_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Initial_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{gc=Pi}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Pi}"
+);
+testPropertyEscapes(
+ /^\P{Initial_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{Initial_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{Pi}+$/u,
+ nonMatchSymbols,
+ "\\P{Pi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js
new file mode 100644
index 0000000000..b67f9739dc
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js
@@ -0,0 +1,1337 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Letter`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000B5,
+ 0x0000BA,
+ 0x0002EC,
+ 0x0002EE,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x000559,
+ 0x0006D5,
+ 0x0006FF,
+ 0x000710,
+ 0x0007B1,
+ 0x0007FA,
+ 0x00081A,
+ 0x000824,
+ 0x000828,
+ 0x00093D,
+ 0x000950,
+ 0x0009B2,
+ 0x0009BD,
+ 0x0009CE,
+ 0x0009FC,
+ 0x000A5E,
+ 0x000ABD,
+ 0x000AD0,
+ 0x000AF9,
+ 0x000B3D,
+ 0x000B71,
+ 0x000B83,
+ 0x000B9C,
+ 0x000BD0,
+ 0x000C3D,
+ 0x000C80,
+ 0x000CBD,
+ 0x000CDE,
+ 0x000D3D,
+ 0x000D4E,
+ 0x000DBD,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EBD,
+ 0x000EC6,
+ 0x000F00,
+ 0x00103F,
+ 0x001061,
+ 0x00108E,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001258,
+ 0x0012C0,
+ 0x0017D7,
+ 0x0017DC,
+ 0x0018AA,
+ 0x001AA7,
+ 0x001CFA,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001FBE,
+ 0x002071,
+ 0x00207F,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x00214E,
+ 0x002D27,
+ 0x002D2D,
+ 0x002D6F,
+ 0x002E2F,
+ 0x00A8FB,
+ 0x00A9CF,
+ 0x00AA7A,
+ 0x00AAB1,
+ 0x00AAC0,
+ 0x00AAC2,
+ 0x00FB1D,
+ 0x00FB3E,
+ 0x010808,
+ 0x01083C,
+ 0x010A00,
+ 0x010F27,
+ 0x011144,
+ 0x011147,
+ 0x011176,
+ 0x0111DA,
+ 0x0111DC,
+ 0x011288,
+ 0x01133D,
+ 0x011350,
+ 0x0114C7,
+ 0x011644,
+ 0x0116B8,
+ 0x011909,
+ 0x01193F,
+ 0x011941,
+ 0x0119E1,
+ 0x0119E3,
+ 0x011A00,
+ 0x011A3A,
+ 0x011A50,
+ 0x011A9D,
+ 0x011C40,
+ 0x011D46,
+ 0x011D98,
+ 0x011FB0,
+ 0x016F50,
+ 0x016FE3,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01E14E,
+ 0x01E94B,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002C1],
+ [0x0002C6, 0x0002D1],
+ [0x0002E0, 0x0002E4],
+ [0x000370, 0x000374],
+ [0x000376, 0x000377],
+ [0x00037A, 0x00037D],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003F5],
+ [0x0003F7, 0x000481],
+ [0x00048A, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000560, 0x000588],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F2],
+ [0x000620, 0x00064A],
+ [0x00066E, 0x00066F],
+ [0x000671, 0x0006D3],
+ [0x0006E5, 0x0006E6],
+ [0x0006EE, 0x0006EF],
+ [0x0006FA, 0x0006FC],
+ [0x000712, 0x00072F],
+ [0x00074D, 0x0007A5],
+ [0x0007CA, 0x0007EA],
+ [0x0007F4, 0x0007F5],
+ [0x000800, 0x000815],
+ [0x000840, 0x000858],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x000904, 0x000939],
+ [0x000958, 0x000961],
+ [0x000971, 0x000980],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E1],
+ [0x0009F0, 0x0009F1],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A59, 0x000A5C],
+ [0x000A72, 0x000A74],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000AE0, 0x000AE1],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B61],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000C05, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C61],
+ [0x000C85, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CE0, 0x000CE1],
+ [0x000CF1, 0x000CF2],
+ [0x000D04, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D3A],
+ [0x000D54, 0x000D56],
+ [0x000D5F, 0x000D61],
+ [0x000D7A, 0x000D7F],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000E01, 0x000E30],
+ [0x000E32, 0x000E33],
+ [0x000E40, 0x000E46],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EB0],
+ [0x000EB2, 0x000EB3],
+ [0x000EC0, 0x000EC4],
+ [0x000EDC, 0x000EDF],
+ [0x000F40, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F88, 0x000F8C],
+ [0x001000, 0x00102A],
+ [0x001050, 0x001055],
+ [0x00105A, 0x00105D],
+ [0x001065, 0x001066],
+ [0x00106E, 0x001070],
+ [0x001075, 0x001081],
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FA],
+ [0x0010FC, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x001380, 0x00138F],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001401, 0x00166C],
+ [0x00166F, 0x00167F],
+ [0x001681, 0x00169A],
+ [0x0016A0, 0x0016EA],
+ [0x0016F1, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001711],
+ [0x001720, 0x001731],
+ [0x001740, 0x001751],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001780, 0x0017B3],
+ [0x001820, 0x001878],
+ [0x001880, 0x001884],
+ [0x001887, 0x0018A8],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001950, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x001A00, 0x001A16],
+ [0x001A20, 0x001A54],
+ [0x001B05, 0x001B33],
+ [0x001B45, 0x001B4B],
+ [0x001B83, 0x001BA0],
+ [0x001BAE, 0x001BAF],
+ [0x001BBA, 0x001BE5],
+ [0x001C00, 0x001C23],
+ [0x001C4D, 0x001C4F],
+ [0x001C5A, 0x001C7D],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF6],
+ [0x001D00, 0x001DBF],
+ [0x001E00, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FBC],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FCC],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FE0, 0x001FEC],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFC],
+ [0x002090, 0x00209C],
+ [0x00210A, 0x002113],
+ [0x002119, 0x00211D],
+ [0x00212A, 0x00212D],
+ [0x00212F, 0x002139],
+ [0x00213C, 0x00213F],
+ [0x002145, 0x002149],
+ [0x002183, 0x002184],
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CE4],
+ [0x002CEB, 0x002CEE],
+ [0x002CF2, 0x002CF3],
+ [0x002D00, 0x002D25],
+ [0x002D30, 0x002D67],
+ [0x002D80, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x003005, 0x003006],
+ [0x003031, 0x003035],
+ [0x00303B, 0x00303C],
+ [0x003041, 0x003096],
+ [0x00309D, 0x00309F],
+ [0x0030A1, 0x0030FA],
+ [0x0030FC, 0x0030FF],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x0031A0, 0x0031BF],
+ [0x0031F0, 0x0031FF],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00A000, 0x00A48C],
+ [0x00A4D0, 0x00A4FD],
+ [0x00A500, 0x00A60C],
+ [0x00A610, 0x00A61F],
+ [0x00A62A, 0x00A62B],
+ [0x00A640, 0x00A66E],
+ [0x00A67F, 0x00A69D],
+ [0x00A6A0, 0x00A6E5],
+ [0x00A717, 0x00A71F],
+ [0x00A722, 0x00A788],
+ [0x00A78B, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A801],
+ [0x00A803, 0x00A805],
+ [0x00A807, 0x00A80A],
+ [0x00A80C, 0x00A822],
+ [0x00A840, 0x00A873],
+ [0x00A882, 0x00A8B3],
+ [0x00A8F2, 0x00A8F7],
+ [0x00A8FD, 0x00A8FE],
+ [0x00A90A, 0x00A925],
+ [0x00A930, 0x00A946],
+ [0x00A960, 0x00A97C],
+ [0x00A984, 0x00A9B2],
+ [0x00A9E0, 0x00A9E4],
+ [0x00A9E6, 0x00A9EF],
+ [0x00A9FA, 0x00A9FE],
+ [0x00AA00, 0x00AA28],
+ [0x00AA40, 0x00AA42],
+ [0x00AA44, 0x00AA4B],
+ [0x00AA60, 0x00AA76],
+ [0x00AA7E, 0x00AAAF],
+ [0x00AAB5, 0x00AAB6],
+ [0x00AAB9, 0x00AABD],
+ [0x00AADB, 0x00AADD],
+ [0x00AAE0, 0x00AAEA],
+ [0x00AAF2, 0x00AAF4],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB5C, 0x00AB69],
+ [0x00AB70, 0x00ABE2],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1F, 0x00FB28],
+ [0x00FB2A, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBB1],
+ [0x00FBD3, 0x00FD3D],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFB],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x00FF66, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x010300, 0x01031F],
+ [0x01032D, 0x010340],
+ [0x010342, 0x010349],
+ [0x010350, 0x010375],
+ [0x010380, 0x01039D],
+ [0x0103A0, 0x0103C3],
+ [0x0103C8, 0x0103CF],
+ [0x010400, 0x01049D],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010860, 0x010876],
+ [0x010880, 0x01089E],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x010900, 0x010915],
+ [0x010920, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BE, 0x0109BF],
+ [0x010A10, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A60, 0x010A7C],
+ [0x010A80, 0x010A9C],
+ [0x010AC0, 0x010AC7],
+ [0x010AC9, 0x010AE4],
+ [0x010B00, 0x010B35],
+ [0x010B40, 0x010B55],
+ [0x010B60, 0x010B72],
+ [0x010B80, 0x010B91],
+ [0x010C00, 0x010C48],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010D00, 0x010D23],
+ [0x010E80, 0x010EA9],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F1C],
+ [0x010F30, 0x010F45],
+ [0x010FB0, 0x010FC4],
+ [0x010FE0, 0x010FF6],
+ [0x011003, 0x011037],
+ [0x011083, 0x0110AF],
+ [0x0110D0, 0x0110E8],
+ [0x011103, 0x011126],
+ [0x011150, 0x011172],
+ [0x011183, 0x0111B2],
+ [0x0111C1, 0x0111C4],
+ [0x011200, 0x011211],
+ [0x011213, 0x01122B],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A8],
+ [0x0112B0, 0x0112DE],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01135D, 0x011361],
+ [0x011400, 0x011434],
+ [0x011447, 0x01144A],
+ [0x01145F, 0x011461],
+ [0x011480, 0x0114AF],
+ [0x0114C4, 0x0114C5],
+ [0x011580, 0x0115AE],
+ [0x0115D8, 0x0115DB],
+ [0x011600, 0x01162F],
+ [0x011680, 0x0116AA],
+ [0x011700, 0x01171A],
+ [0x011800, 0x01182B],
+ [0x0118A0, 0x0118DF],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x01192F],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D0],
+ [0x011A0B, 0x011A32],
+ [0x011A5C, 0x011A89],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C2E],
+ [0x011C72, 0x011C8F],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D30],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D89],
+ [0x011EE0, 0x011EF2],
+ [0x012000, 0x012399],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016AD0, 0x016AED],
+ [0x016B00, 0x016B2F],
+ [0x016B40, 0x016B43],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016E40, 0x016E7F],
+ [0x016F00, 0x016F4A],
+ [0x016F93, 0x016F9F],
+ [0x016FE0, 0x016FE1],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D6C0],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6FA],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D734],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D76E],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D7A8],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7CB],
+ [0x01E100, 0x01E12C],
+ [0x01E137, 0x01E13D],
+ [0x01E2C0, 0x01E2EB],
+ [0x01E800, 0x01E8C4],
+ [0x01E900, 0x01E943],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Letter}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Letter}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=L}+$/u,
+ matchSymbols,
+ "\\p{General_Category=L}"
+);
+testPropertyEscapes(
+ /^\p{gc=Letter}+$/u,
+ matchSymbols,
+ "\\p{gc=Letter}"
+);
+testPropertyEscapes(
+ /^\p{gc=L}+$/u,
+ matchSymbols,
+ "\\p{gc=L}"
+);
+testPropertyEscapes(
+ /^\p{Letter}+$/u,
+ matchSymbols,
+ "\\p{Letter}"
+);
+testPropertyEscapes(
+ /^\p{L}+$/u,
+ matchSymbols,
+ "\\p{L}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x0002ED,
+ 0x000375,
+ 0x00037E,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x0003F6,
+ 0x000530,
+ 0x000670,
+ 0x0006D4,
+ 0x000711,
+ 0x0008B5,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A5D,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CDF,
+ 0x000D0D,
+ 0x000D11,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000E31,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EB1,
+ 0x000EC5,
+ 0x000F48,
+ 0x0010C6,
+ 0x0010FB,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x001680,
+ 0x00170D,
+ 0x00176D,
+ 0x0018A9,
+ 0x001CED,
+ 0x001CF4,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FBD,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002114,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x00212E,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x0030A0,
+ 0x0030FB,
+ 0x003130,
+ 0x00A802,
+ 0x00A806,
+ 0x00A80B,
+ 0x00A8FC,
+ 0x00A9E5,
+ 0x00A9FF,
+ 0x00AA43,
+ 0x00AAB0,
+ 0x00AAC1,
+ 0x00AB27,
+ 0x00AB2F,
+ 0x00AB5B,
+ 0x00FB1E,
+ 0x00FB29,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE75,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x010341,
+ 0x010809,
+ 0x010836,
+ 0x0108F3,
+ 0x010A14,
+ 0x010A18,
+ 0x010AC8,
+ 0x0111DB,
+ 0x011212,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x0114C6,
+ 0x011914,
+ 0x011917,
+ 0x011940,
+ 0x0119E2,
+ 0x011C09,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D66,
+ 0x011D69,
+ 0x016FE2,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01D6C1,
+ 0x01D6DB,
+ 0x01D6FB,
+ 0x01D715,
+ 0x01D735,
+ 0x01D74F,
+ 0x01D76F,
+ 0x01D789,
+ 0x01D7A9,
+ 0x01D7C3,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B4],
+ [0x0000B6, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0002C2, 0x0002C5],
+ [0x0002D2, 0x0002DF],
+ [0x0002E5, 0x0002EB],
+ [0x0002EF, 0x00036F],
+ [0x000378, 0x000379],
+ [0x000380, 0x000385],
+ [0x000482, 0x000489],
+ [0x000557, 0x000558],
+ [0x00055A, 0x00055F],
+ [0x000589, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F3, 0x00061F],
+ [0x00064B, 0x00066D],
+ [0x0006D6, 0x0006E4],
+ [0x0006E7, 0x0006ED],
+ [0x0006F0, 0x0006F9],
+ [0x0006FD, 0x0006FE],
+ [0x000700, 0x00070F],
+ [0x000730, 0x00074C],
+ [0x0007A6, 0x0007B0],
+ [0x0007B2, 0x0007C9],
+ [0x0007EB, 0x0007F3],
+ [0x0007F6, 0x0007F9],
+ [0x0007FB, 0x0007FF],
+ [0x000816, 0x000819],
+ [0x00081B, 0x000823],
+ [0x000825, 0x000827],
+ [0x000829, 0x00083F],
+ [0x000859, 0x00085F],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x000903],
+ [0x00093A, 0x00093C],
+ [0x00093E, 0x00094F],
+ [0x000951, 0x000957],
+ [0x000962, 0x000970],
+ [0x000981, 0x000984],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BC],
+ [0x0009BE, 0x0009CD],
+ [0x0009CF, 0x0009DB],
+ [0x0009E2, 0x0009EF],
+ [0x0009F2, 0x0009FB],
+ [0x0009FD, 0x000A04],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A58],
+ [0x000A5F, 0x000A71],
+ [0x000A75, 0x000A84],
+ [0x000ABA, 0x000ABC],
+ [0x000ABE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE2, 0x000AF8],
+ [0x000AFA, 0x000B04],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3C],
+ [0x000B3E, 0x000B5B],
+ [0x000B62, 0x000B70],
+ [0x000B72, 0x000B82],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BCF],
+ [0x000BD1, 0x000C04],
+ [0x000C3A, 0x000C3C],
+ [0x000C3E, 0x000C57],
+ [0x000C5B, 0x000C5F],
+ [0x000C62, 0x000C7F],
+ [0x000C81, 0x000C84],
+ [0x000CBA, 0x000CBC],
+ [0x000CBE, 0x000CDD],
+ [0x000CE2, 0x000CF0],
+ [0x000CF3, 0x000D03],
+ [0x000D3B, 0x000D3C],
+ [0x000D3E, 0x000D4D],
+ [0x000D4F, 0x000D53],
+ [0x000D57, 0x000D5E],
+ [0x000D62, 0x000D79],
+ [0x000D80, 0x000D84],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000E00],
+ [0x000E34, 0x000E3F],
+ [0x000E47, 0x000E80],
+ [0x000EB4, 0x000EBC],
+ [0x000EBE, 0x000EBF],
+ [0x000EC7, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F01, 0x000F3F],
+ [0x000F6D, 0x000F87],
+ [0x000F8D, 0x000FFF],
+ [0x00102B, 0x00103E],
+ [0x001040, 0x00104F],
+ [0x001056, 0x001059],
+ [0x00105E, 0x001060],
+ [0x001062, 0x001064],
+ [0x001067, 0x00106D],
+ [0x001071, 0x001074],
+ [0x001082, 0x00108D],
+ [0x00108F, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00137F],
+ [0x001390, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x001400],
+ [0x00166D, 0x00166E],
+ [0x00169B, 0x00169F],
+ [0x0016EB, 0x0016F0],
+ [0x0016F9, 0x0016FF],
+ [0x001712, 0x00171F],
+ [0x001732, 0x00173F],
+ [0x001752, 0x00175F],
+ [0x001771, 0x00177F],
+ [0x0017B4, 0x0017D6],
+ [0x0017D8, 0x0017DB],
+ [0x0017DD, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x001885, 0x001886],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00191F, 0x00194F],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019FF],
+ [0x001A17, 0x001A1F],
+ [0x001A55, 0x001AA6],
+ [0x001AA8, 0x001B04],
+ [0x001B34, 0x001B44],
+ [0x001B4C, 0x001B82],
+ [0x001BA1, 0x001BAD],
+ [0x001BB0, 0x001BB9],
+ [0x001BE6, 0x001BFF],
+ [0x001C24, 0x001C4C],
+ [0x001C50, 0x001C59],
+ [0x001C7E, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001CE8],
+ [0x001CF7, 0x001CF9],
+ [0x001CFB, 0x001CFF],
+ [0x001DC0, 0x001DFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FDC, 0x001FDF],
+ [0x001FED, 0x001FF1],
+ [0x001FFD, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002118],
+ [0x00211E, 0x002123],
+ [0x00213A, 0x00213B],
+ [0x002140, 0x002144],
+ [0x00214A, 0x00214D],
+ [0x00214F, 0x002182],
+ [0x002185, 0x002BFF],
+ [0x002CE5, 0x002CEA],
+ [0x002CEF, 0x002CF1],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D70, 0x002D7F],
+ [0x002D97, 0x002D9F],
+ [0x002DDF, 0x002E2E],
+ [0x002E30, 0x003004],
+ [0x003007, 0x003030],
+ [0x003036, 0x00303A],
+ [0x00303D, 0x003040],
+ [0x003097, 0x00309C],
+ [0x003100, 0x003104],
+ [0x00318F, 0x00319F],
+ [0x0031C0, 0x0031EF],
+ [0x003200, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A4CF],
+ [0x00A4FE, 0x00A4FF],
+ [0x00A60D, 0x00A60F],
+ [0x00A620, 0x00A629],
+ [0x00A62C, 0x00A63F],
+ [0x00A66F, 0x00A67E],
+ [0x00A69E, 0x00A69F],
+ [0x00A6E6, 0x00A716],
+ [0x00A720, 0x00A721],
+ [0x00A789, 0x00A78A],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A823, 0x00A83F],
+ [0x00A874, 0x00A881],
+ [0x00A8B4, 0x00A8F1],
+ [0x00A8F8, 0x00A8FA],
+ [0x00A8FF, 0x00A909],
+ [0x00A926, 0x00A92F],
+ [0x00A947, 0x00A95F],
+ [0x00A97D, 0x00A983],
+ [0x00A9B3, 0x00A9CE],
+ [0x00A9D0, 0x00A9DF],
+ [0x00A9F0, 0x00A9F9],
+ [0x00AA29, 0x00AA3F],
+ [0x00AA4C, 0x00AA5F],
+ [0x00AA77, 0x00AA79],
+ [0x00AA7B, 0x00AA7D],
+ [0x00AAB2, 0x00AAB4],
+ [0x00AAB7, 0x00AAB8],
+ [0x00AABE, 0x00AABF],
+ [0x00AAC3, 0x00AADA],
+ [0x00AADE, 0x00AADF],
+ [0x00AAEB, 0x00AAF1],
+ [0x00AAF5, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB6A, 0x00AB6F],
+ [0x00ABE3, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBB2, 0x00FBD2],
+ [0x00FD3E, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFC, 0x00FE6F],
+ [0x00FEFD, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x00FF65],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102FF],
+ [0x010320, 0x01032C],
+ [0x01034A, 0x01034F],
+ [0x010376, 0x01037F],
+ [0x01039E, 0x01039F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D0, 0x0103FF],
+ [0x01049E, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x010856, 0x01085F],
+ [0x010877, 0x01087F],
+ [0x01089F, 0x0108DF],
+ [0x0108F6, 0x0108FF],
+ [0x010916, 0x01091F],
+ [0x01093A, 0x01097F],
+ [0x0109B8, 0x0109BD],
+ [0x0109C0, 0x0109FF],
+ [0x010A01, 0x010A0F],
+ [0x010A36, 0x010A5F],
+ [0x010A7D, 0x010A7F],
+ [0x010A9D, 0x010ABF],
+ [0x010AE5, 0x010AFF],
+ [0x010B36, 0x010B3F],
+ [0x010B56, 0x010B5F],
+ [0x010B73, 0x010B7F],
+ [0x010B92, 0x010BFF],
+ [0x010C49, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CFF],
+ [0x010D24, 0x010E7F],
+ [0x010EAA, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F1D, 0x010F26],
+ [0x010F28, 0x010F2F],
+ [0x010F46, 0x010FAF],
+ [0x010FC5, 0x010FDF],
+ [0x010FF7, 0x011002],
+ [0x011038, 0x011082],
+ [0x0110B0, 0x0110CF],
+ [0x0110E9, 0x011102],
+ [0x011127, 0x011143],
+ [0x011145, 0x011146],
+ [0x011148, 0x01114F],
+ [0x011173, 0x011175],
+ [0x011177, 0x011182],
+ [0x0111B3, 0x0111C0],
+ [0x0111C5, 0x0111D9],
+ [0x0111DD, 0x0111FF],
+ [0x01122C, 0x01127F],
+ [0x0112A9, 0x0112AF],
+ [0x0112DF, 0x011304],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x01133A, 0x01133C],
+ [0x01133E, 0x01134F],
+ [0x011351, 0x01135C],
+ [0x011362, 0x0113FF],
+ [0x011435, 0x011446],
+ [0x01144B, 0x01145E],
+ [0x011462, 0x01147F],
+ [0x0114B0, 0x0114C3],
+ [0x0114C8, 0x01157F],
+ [0x0115AF, 0x0115D7],
+ [0x0115DC, 0x0115FF],
+ [0x011630, 0x011643],
+ [0x011645, 0x01167F],
+ [0x0116AB, 0x0116B7],
+ [0x0116B9, 0x0116FF],
+ [0x01171B, 0x0117FF],
+ [0x01182C, 0x01189F],
+ [0x0118E0, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011930, 0x01193E],
+ [0x011942, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D1, 0x0119E0],
+ [0x0119E4, 0x0119FF],
+ [0x011A01, 0x011A0A],
+ [0x011A33, 0x011A39],
+ [0x011A3B, 0x011A4F],
+ [0x011A51, 0x011A5B],
+ [0x011A8A, 0x011A9C],
+ [0x011A9E, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C2F, 0x011C3F],
+ [0x011C41, 0x011C71],
+ [0x011C90, 0x011CFF],
+ [0x011D31, 0x011D45],
+ [0x011D47, 0x011D5F],
+ [0x011D8A, 0x011D97],
+ [0x011D99, 0x011EDF],
+ [0x011EF3, 0x011FAF],
+ [0x011FB1, 0x011FFF],
+ [0x01239A, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x01342F, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A5F, 0x016ACF],
+ [0x016AEE, 0x016AFF],
+ [0x016B30, 0x016B3F],
+ [0x016B44, 0x016B62],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016E3F],
+ [0x016E80, 0x016EFF],
+ [0x016F4B, 0x016F4F],
+ [0x016F51, 0x016F92],
+ [0x016FA0, 0x016FDF],
+ [0x016FE4, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01E0FF],
+ [0x01E12D, 0x01E136],
+ [0x01E13E, 0x01E14D],
+ [0x01E14F, 0x01E2BF],
+ [0x01E2EC, 0x01E7FF],
+ [0x01E8C5, 0x01E8FF],
+ [0x01E944, 0x01E94A],
+ [0x01E94C, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Letter}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=L}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=L}"
+);
+testPropertyEscapes(
+ /^\P{gc=Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Letter}"
+);
+testPropertyEscapes(
+ /^\P{gc=L}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=L}"
+);
+testPropertyEscapes(
+ /^\P{Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{Letter}"
+);
+testPropertyEscapes(
+ /^\P{L}+$/u,
+ nonMatchSymbols,
+ "\\P{L}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter_Number.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter_Number.js
new file mode 100644
index 0000000000..4e6bd8a64e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter_Number.js
@@ -0,0 +1,116 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Letter_Number`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x003007,
+ 0x010341,
+ 0x01034A
+ ],
+ ranges: [
+ [0x0016EE, 0x0016F0],
+ [0x002160, 0x002182],
+ [0x002185, 0x002188],
+ [0x003021, 0x003029],
+ [0x003038, 0x00303A],
+ [0x00A6E6, 0x00A6EF],
+ [0x010140, 0x010174],
+ [0x0103D1, 0x0103D5],
+ [0x012400, 0x01246E]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Letter_Number}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Letter_Number}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Nl}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Nl}"
+);
+testPropertyEscapes(
+ /^\p{gc=Letter_Number}+$/u,
+ matchSymbols,
+ "\\p{gc=Letter_Number}"
+);
+testPropertyEscapes(
+ /^\p{gc=Nl}+$/u,
+ matchSymbols,
+ "\\p{gc=Nl}"
+);
+testPropertyEscapes(
+ /^\p{Letter_Number}+$/u,
+ matchSymbols,
+ "\\p{Letter_Number}"
+);
+testPropertyEscapes(
+ /^\p{Nl}+$/u,
+ matchSymbols,
+ "\\p{Nl}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0016ED],
+ [0x0016F1, 0x00215F],
+ [0x002183, 0x002184],
+ [0x002189, 0x003006],
+ [0x003008, 0x003020],
+ [0x00302A, 0x003037],
+ [0x00303B, 0x00A6E5],
+ [0x00A6F0, 0x00DBFF],
+ [0x00E000, 0x01013F],
+ [0x010175, 0x010340],
+ [0x010342, 0x010349],
+ [0x01034B, 0x0103D0],
+ [0x0103D6, 0x0123FF],
+ [0x01246F, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Letter_Number}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Letter_Number}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Nl}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Nl}"
+);
+testPropertyEscapes(
+ /^\P{gc=Letter_Number}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Letter_Number}"
+);
+testPropertyEscapes(
+ /^\P{gc=Nl}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Nl}"
+);
+testPropertyEscapes(
+ /^\P{Letter_Number}+$/u,
+ nonMatchSymbols,
+ "\\P{Letter_Number}"
+);
+testPropertyEscapes(
+ /^\P{Nl}+$/u,
+ nonMatchSymbols,
+ "\\P{Nl}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Line_Separator.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Line_Separator.js
new file mode 100644
index 0000000000..949bda0d32
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Line_Separator.js
@@ -0,0 +1,93 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Line_Separator`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x002028
+ ],
+ ranges: []
+});
+testPropertyEscapes(
+ /^\p{General_Category=Line_Separator}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Line_Separator}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Zl}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Zl}"
+);
+testPropertyEscapes(
+ /^\p{gc=Line_Separator}+$/u,
+ matchSymbols,
+ "\\p{gc=Line_Separator}"
+);
+testPropertyEscapes(
+ /^\p{gc=Zl}+$/u,
+ matchSymbols,
+ "\\p{gc=Zl}"
+);
+testPropertyEscapes(
+ /^\p{Line_Separator}+$/u,
+ matchSymbols,
+ "\\p{Line_Separator}"
+);
+testPropertyEscapes(
+ /^\p{Zl}+$/u,
+ matchSymbols,
+ "\\p{Zl}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002027],
+ [0x002029, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Line_Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Line_Separator}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Zl}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Zl}"
+);
+testPropertyEscapes(
+ /^\P{gc=Line_Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Line_Separator}"
+);
+testPropertyEscapes(
+ /^\P{gc=Zl}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Zl}"
+);
+testPropertyEscapes(
+ /^\P{Line_Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{Line_Separator}"
+);
+testPropertyEscapes(
+ /^\P{Zl}+$/u,
+ nonMatchSymbols,
+ "\\P{Zl}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js
new file mode 100644
index 0000000000..ac581b90c7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js
@@ -0,0 +1,1383 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Lowercase_Letter`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000B5,
+ 0x000101,
+ 0x000103,
+ 0x000105,
+ 0x000107,
+ 0x000109,
+ 0x00010B,
+ 0x00010D,
+ 0x00010F,
+ 0x000111,
+ 0x000113,
+ 0x000115,
+ 0x000117,
+ 0x000119,
+ 0x00011B,
+ 0x00011D,
+ 0x00011F,
+ 0x000121,
+ 0x000123,
+ 0x000125,
+ 0x000127,
+ 0x000129,
+ 0x00012B,
+ 0x00012D,
+ 0x00012F,
+ 0x000131,
+ 0x000133,
+ 0x000135,
+ 0x00013A,
+ 0x00013C,
+ 0x00013E,
+ 0x000140,
+ 0x000142,
+ 0x000144,
+ 0x000146,
+ 0x00014B,
+ 0x00014D,
+ 0x00014F,
+ 0x000151,
+ 0x000153,
+ 0x000155,
+ 0x000157,
+ 0x000159,
+ 0x00015B,
+ 0x00015D,
+ 0x00015F,
+ 0x000161,
+ 0x000163,
+ 0x000165,
+ 0x000167,
+ 0x000169,
+ 0x00016B,
+ 0x00016D,
+ 0x00016F,
+ 0x000171,
+ 0x000173,
+ 0x000175,
+ 0x000177,
+ 0x00017A,
+ 0x00017C,
+ 0x000183,
+ 0x000185,
+ 0x000188,
+ 0x000192,
+ 0x000195,
+ 0x00019E,
+ 0x0001A1,
+ 0x0001A3,
+ 0x0001A5,
+ 0x0001A8,
+ 0x0001AD,
+ 0x0001B0,
+ 0x0001B4,
+ 0x0001B6,
+ 0x0001C6,
+ 0x0001C9,
+ 0x0001CC,
+ 0x0001CE,
+ 0x0001D0,
+ 0x0001D2,
+ 0x0001D4,
+ 0x0001D6,
+ 0x0001D8,
+ 0x0001DA,
+ 0x0001DF,
+ 0x0001E1,
+ 0x0001E3,
+ 0x0001E5,
+ 0x0001E7,
+ 0x0001E9,
+ 0x0001EB,
+ 0x0001ED,
+ 0x0001F3,
+ 0x0001F5,
+ 0x0001F9,
+ 0x0001FB,
+ 0x0001FD,
+ 0x0001FF,
+ 0x000201,
+ 0x000203,
+ 0x000205,
+ 0x000207,
+ 0x000209,
+ 0x00020B,
+ 0x00020D,
+ 0x00020F,
+ 0x000211,
+ 0x000213,
+ 0x000215,
+ 0x000217,
+ 0x000219,
+ 0x00021B,
+ 0x00021D,
+ 0x00021F,
+ 0x000221,
+ 0x000223,
+ 0x000225,
+ 0x000227,
+ 0x000229,
+ 0x00022B,
+ 0x00022D,
+ 0x00022F,
+ 0x000231,
+ 0x00023C,
+ 0x000242,
+ 0x000247,
+ 0x000249,
+ 0x00024B,
+ 0x00024D,
+ 0x000371,
+ 0x000373,
+ 0x000377,
+ 0x000390,
+ 0x0003D9,
+ 0x0003DB,
+ 0x0003DD,
+ 0x0003DF,
+ 0x0003E1,
+ 0x0003E3,
+ 0x0003E5,
+ 0x0003E7,
+ 0x0003E9,
+ 0x0003EB,
+ 0x0003ED,
+ 0x0003F5,
+ 0x0003F8,
+ 0x000461,
+ 0x000463,
+ 0x000465,
+ 0x000467,
+ 0x000469,
+ 0x00046B,
+ 0x00046D,
+ 0x00046F,
+ 0x000471,
+ 0x000473,
+ 0x000475,
+ 0x000477,
+ 0x000479,
+ 0x00047B,
+ 0x00047D,
+ 0x00047F,
+ 0x000481,
+ 0x00048B,
+ 0x00048D,
+ 0x00048F,
+ 0x000491,
+ 0x000493,
+ 0x000495,
+ 0x000497,
+ 0x000499,
+ 0x00049B,
+ 0x00049D,
+ 0x00049F,
+ 0x0004A1,
+ 0x0004A3,
+ 0x0004A5,
+ 0x0004A7,
+ 0x0004A9,
+ 0x0004AB,
+ 0x0004AD,
+ 0x0004AF,
+ 0x0004B1,
+ 0x0004B3,
+ 0x0004B5,
+ 0x0004B7,
+ 0x0004B9,
+ 0x0004BB,
+ 0x0004BD,
+ 0x0004BF,
+ 0x0004C2,
+ 0x0004C4,
+ 0x0004C6,
+ 0x0004C8,
+ 0x0004CA,
+ 0x0004CC,
+ 0x0004D1,
+ 0x0004D3,
+ 0x0004D5,
+ 0x0004D7,
+ 0x0004D9,
+ 0x0004DB,
+ 0x0004DD,
+ 0x0004DF,
+ 0x0004E1,
+ 0x0004E3,
+ 0x0004E5,
+ 0x0004E7,
+ 0x0004E9,
+ 0x0004EB,
+ 0x0004ED,
+ 0x0004EF,
+ 0x0004F1,
+ 0x0004F3,
+ 0x0004F5,
+ 0x0004F7,
+ 0x0004F9,
+ 0x0004FB,
+ 0x0004FD,
+ 0x0004FF,
+ 0x000501,
+ 0x000503,
+ 0x000505,
+ 0x000507,
+ 0x000509,
+ 0x00050B,
+ 0x00050D,
+ 0x00050F,
+ 0x000511,
+ 0x000513,
+ 0x000515,
+ 0x000517,
+ 0x000519,
+ 0x00051B,
+ 0x00051D,
+ 0x00051F,
+ 0x000521,
+ 0x000523,
+ 0x000525,
+ 0x000527,
+ 0x000529,
+ 0x00052B,
+ 0x00052D,
+ 0x00052F,
+ 0x001E01,
+ 0x001E03,
+ 0x001E05,
+ 0x001E07,
+ 0x001E09,
+ 0x001E0B,
+ 0x001E0D,
+ 0x001E0F,
+ 0x001E11,
+ 0x001E13,
+ 0x001E15,
+ 0x001E17,
+ 0x001E19,
+ 0x001E1B,
+ 0x001E1D,
+ 0x001E1F,
+ 0x001E21,
+ 0x001E23,
+ 0x001E25,
+ 0x001E27,
+ 0x001E29,
+ 0x001E2B,
+ 0x001E2D,
+ 0x001E2F,
+ 0x001E31,
+ 0x001E33,
+ 0x001E35,
+ 0x001E37,
+ 0x001E39,
+ 0x001E3B,
+ 0x001E3D,
+ 0x001E3F,
+ 0x001E41,
+ 0x001E43,
+ 0x001E45,
+ 0x001E47,
+ 0x001E49,
+ 0x001E4B,
+ 0x001E4D,
+ 0x001E4F,
+ 0x001E51,
+ 0x001E53,
+ 0x001E55,
+ 0x001E57,
+ 0x001E59,
+ 0x001E5B,
+ 0x001E5D,
+ 0x001E5F,
+ 0x001E61,
+ 0x001E63,
+ 0x001E65,
+ 0x001E67,
+ 0x001E69,
+ 0x001E6B,
+ 0x001E6D,
+ 0x001E6F,
+ 0x001E71,
+ 0x001E73,
+ 0x001E75,
+ 0x001E77,
+ 0x001E79,
+ 0x001E7B,
+ 0x001E7D,
+ 0x001E7F,
+ 0x001E81,
+ 0x001E83,
+ 0x001E85,
+ 0x001E87,
+ 0x001E89,
+ 0x001E8B,
+ 0x001E8D,
+ 0x001E8F,
+ 0x001E91,
+ 0x001E93,
+ 0x001E9F,
+ 0x001EA1,
+ 0x001EA3,
+ 0x001EA5,
+ 0x001EA7,
+ 0x001EA9,
+ 0x001EAB,
+ 0x001EAD,
+ 0x001EAF,
+ 0x001EB1,
+ 0x001EB3,
+ 0x001EB5,
+ 0x001EB7,
+ 0x001EB9,
+ 0x001EBB,
+ 0x001EBD,
+ 0x001EBF,
+ 0x001EC1,
+ 0x001EC3,
+ 0x001EC5,
+ 0x001EC7,
+ 0x001EC9,
+ 0x001ECB,
+ 0x001ECD,
+ 0x001ECF,
+ 0x001ED1,
+ 0x001ED3,
+ 0x001ED5,
+ 0x001ED7,
+ 0x001ED9,
+ 0x001EDB,
+ 0x001EDD,
+ 0x001EDF,
+ 0x001EE1,
+ 0x001EE3,
+ 0x001EE5,
+ 0x001EE7,
+ 0x001EE9,
+ 0x001EEB,
+ 0x001EED,
+ 0x001EEF,
+ 0x001EF1,
+ 0x001EF3,
+ 0x001EF5,
+ 0x001EF7,
+ 0x001EF9,
+ 0x001EFB,
+ 0x001EFD,
+ 0x001FBE,
+ 0x00210A,
+ 0x002113,
+ 0x00212F,
+ 0x002134,
+ 0x002139,
+ 0x00214E,
+ 0x002184,
+ 0x002C61,
+ 0x002C68,
+ 0x002C6A,
+ 0x002C6C,
+ 0x002C71,
+ 0x002C81,
+ 0x002C83,
+ 0x002C85,
+ 0x002C87,
+ 0x002C89,
+ 0x002C8B,
+ 0x002C8D,
+ 0x002C8F,
+ 0x002C91,
+ 0x002C93,
+ 0x002C95,
+ 0x002C97,
+ 0x002C99,
+ 0x002C9B,
+ 0x002C9D,
+ 0x002C9F,
+ 0x002CA1,
+ 0x002CA3,
+ 0x002CA5,
+ 0x002CA7,
+ 0x002CA9,
+ 0x002CAB,
+ 0x002CAD,
+ 0x002CAF,
+ 0x002CB1,
+ 0x002CB3,
+ 0x002CB5,
+ 0x002CB7,
+ 0x002CB9,
+ 0x002CBB,
+ 0x002CBD,
+ 0x002CBF,
+ 0x002CC1,
+ 0x002CC3,
+ 0x002CC5,
+ 0x002CC7,
+ 0x002CC9,
+ 0x002CCB,
+ 0x002CCD,
+ 0x002CCF,
+ 0x002CD1,
+ 0x002CD3,
+ 0x002CD5,
+ 0x002CD7,
+ 0x002CD9,
+ 0x002CDB,
+ 0x002CDD,
+ 0x002CDF,
+ 0x002CE1,
+ 0x002CEC,
+ 0x002CEE,
+ 0x002CF3,
+ 0x002D27,
+ 0x002D2D,
+ 0x00A641,
+ 0x00A643,
+ 0x00A645,
+ 0x00A647,
+ 0x00A649,
+ 0x00A64B,
+ 0x00A64D,
+ 0x00A64F,
+ 0x00A651,
+ 0x00A653,
+ 0x00A655,
+ 0x00A657,
+ 0x00A659,
+ 0x00A65B,
+ 0x00A65D,
+ 0x00A65F,
+ 0x00A661,
+ 0x00A663,
+ 0x00A665,
+ 0x00A667,
+ 0x00A669,
+ 0x00A66B,
+ 0x00A66D,
+ 0x00A681,
+ 0x00A683,
+ 0x00A685,
+ 0x00A687,
+ 0x00A689,
+ 0x00A68B,
+ 0x00A68D,
+ 0x00A68F,
+ 0x00A691,
+ 0x00A693,
+ 0x00A695,
+ 0x00A697,
+ 0x00A699,
+ 0x00A69B,
+ 0x00A723,
+ 0x00A725,
+ 0x00A727,
+ 0x00A729,
+ 0x00A72B,
+ 0x00A72D,
+ 0x00A733,
+ 0x00A735,
+ 0x00A737,
+ 0x00A739,
+ 0x00A73B,
+ 0x00A73D,
+ 0x00A73F,
+ 0x00A741,
+ 0x00A743,
+ 0x00A745,
+ 0x00A747,
+ 0x00A749,
+ 0x00A74B,
+ 0x00A74D,
+ 0x00A74F,
+ 0x00A751,
+ 0x00A753,
+ 0x00A755,
+ 0x00A757,
+ 0x00A759,
+ 0x00A75B,
+ 0x00A75D,
+ 0x00A75F,
+ 0x00A761,
+ 0x00A763,
+ 0x00A765,
+ 0x00A767,
+ 0x00A769,
+ 0x00A76B,
+ 0x00A76D,
+ 0x00A76F,
+ 0x00A77A,
+ 0x00A77C,
+ 0x00A77F,
+ 0x00A781,
+ 0x00A783,
+ 0x00A785,
+ 0x00A787,
+ 0x00A78C,
+ 0x00A78E,
+ 0x00A791,
+ 0x00A797,
+ 0x00A799,
+ 0x00A79B,
+ 0x00A79D,
+ 0x00A79F,
+ 0x00A7A1,
+ 0x00A7A3,
+ 0x00A7A5,
+ 0x00A7A7,
+ 0x00A7A9,
+ 0x00A7AF,
+ 0x00A7B5,
+ 0x00A7B7,
+ 0x00A7B9,
+ 0x00A7BB,
+ 0x00A7BD,
+ 0x00A7BF,
+ 0x00A7C3,
+ 0x00A7C8,
+ 0x00A7CA,
+ 0x00A7F6,
+ 0x00A7FA,
+ 0x01D4BB,
+ 0x01D7CB
+ ],
+ ranges: [
+ [0x000061, 0x00007A],
+ [0x0000DF, 0x0000F6],
+ [0x0000F8, 0x0000FF],
+ [0x000137, 0x000138],
+ [0x000148, 0x000149],
+ [0x00017E, 0x000180],
+ [0x00018C, 0x00018D],
+ [0x000199, 0x00019B],
+ [0x0001AA, 0x0001AB],
+ [0x0001B9, 0x0001BA],
+ [0x0001BD, 0x0001BF],
+ [0x0001DC, 0x0001DD],
+ [0x0001EF, 0x0001F0],
+ [0x000233, 0x000239],
+ [0x00023F, 0x000240],
+ [0x00024F, 0x000293],
+ [0x000295, 0x0002AF],
+ [0x00037B, 0x00037D],
+ [0x0003AC, 0x0003CE],
+ [0x0003D0, 0x0003D1],
+ [0x0003D5, 0x0003D7],
+ [0x0003EF, 0x0003F3],
+ [0x0003FB, 0x0003FC],
+ [0x000430, 0x00045F],
+ [0x0004CE, 0x0004CF],
+ [0x000560, 0x000588],
+ [0x0010D0, 0x0010FA],
+ [0x0010FD, 0x0010FF],
+ [0x0013F8, 0x0013FD],
+ [0x001C80, 0x001C88],
+ [0x001D00, 0x001D2B],
+ [0x001D6B, 0x001D77],
+ [0x001D79, 0x001D9A],
+ [0x001E95, 0x001E9D],
+ [0x001EFF, 0x001F07],
+ [0x001F10, 0x001F15],
+ [0x001F20, 0x001F27],
+ [0x001F30, 0x001F37],
+ [0x001F40, 0x001F45],
+ [0x001F50, 0x001F57],
+ [0x001F60, 0x001F67],
+ [0x001F70, 0x001F7D],
+ [0x001F80, 0x001F87],
+ [0x001F90, 0x001F97],
+ [0x001FA0, 0x001FA7],
+ [0x001FB0, 0x001FB4],
+ [0x001FB6, 0x001FB7],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FC7],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FD7],
+ [0x001FE0, 0x001FE7],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FF7],
+ [0x00210E, 0x00210F],
+ [0x00213C, 0x00213D],
+ [0x002146, 0x002149],
+ [0x002C30, 0x002C5E],
+ [0x002C65, 0x002C66],
+ [0x002C73, 0x002C74],
+ [0x002C76, 0x002C7B],
+ [0x002CE3, 0x002CE4],
+ [0x002D00, 0x002D25],
+ [0x00A72F, 0x00A731],
+ [0x00A771, 0x00A778],
+ [0x00A793, 0x00A795],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB60, 0x00AB68],
+ [0x00AB70, 0x00ABBF],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FF41, 0x00FF5A],
+ [0x010428, 0x01044F],
+ [0x0104D8, 0x0104FB],
+ [0x010CC0, 0x010CF2],
+ [0x0118C0, 0x0118DF],
+ [0x016E60, 0x016E7F],
+ [0x01D41A, 0x01D433],
+ [0x01D44E, 0x01D454],
+ [0x01D456, 0x01D467],
+ [0x01D482, 0x01D49B],
+ [0x01D4B6, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D4CF],
+ [0x01D4EA, 0x01D503],
+ [0x01D51E, 0x01D537],
+ [0x01D552, 0x01D56B],
+ [0x01D586, 0x01D59F],
+ [0x01D5BA, 0x01D5D3],
+ [0x01D5EE, 0x01D607],
+ [0x01D622, 0x01D63B],
+ [0x01D656, 0x01D66F],
+ [0x01D68A, 0x01D6A5],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6E1],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D71B],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D755],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D78F],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7C9],
+ [0x01E922, 0x01E943]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Lowercase_Letter}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Lowercase_Letter}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Ll}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Ll}"
+);
+testPropertyEscapes(
+ /^\p{gc=Lowercase_Letter}+$/u,
+ matchSymbols,
+ "\\p{gc=Lowercase_Letter}"
+);
+testPropertyEscapes(
+ /^\p{gc=Ll}+$/u,
+ matchSymbols,
+ "\\p{gc=Ll}"
+);
+testPropertyEscapes(
+ /^\p{Lowercase_Letter}+$/u,
+ matchSymbols,
+ "\\p{Lowercase_Letter}"
+);
+testPropertyEscapes(
+ /^\p{Ll}+$/u,
+ matchSymbols,
+ "\\p{Ll}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000F7,
+ 0x000100,
+ 0x000102,
+ 0x000104,
+ 0x000106,
+ 0x000108,
+ 0x00010A,
+ 0x00010C,
+ 0x00010E,
+ 0x000110,
+ 0x000112,
+ 0x000114,
+ 0x000116,
+ 0x000118,
+ 0x00011A,
+ 0x00011C,
+ 0x00011E,
+ 0x000120,
+ 0x000122,
+ 0x000124,
+ 0x000126,
+ 0x000128,
+ 0x00012A,
+ 0x00012C,
+ 0x00012E,
+ 0x000130,
+ 0x000132,
+ 0x000134,
+ 0x000136,
+ 0x000139,
+ 0x00013B,
+ 0x00013D,
+ 0x00013F,
+ 0x000141,
+ 0x000143,
+ 0x000145,
+ 0x000147,
+ 0x00014A,
+ 0x00014C,
+ 0x00014E,
+ 0x000150,
+ 0x000152,
+ 0x000154,
+ 0x000156,
+ 0x000158,
+ 0x00015A,
+ 0x00015C,
+ 0x00015E,
+ 0x000160,
+ 0x000162,
+ 0x000164,
+ 0x000166,
+ 0x000168,
+ 0x00016A,
+ 0x00016C,
+ 0x00016E,
+ 0x000170,
+ 0x000172,
+ 0x000174,
+ 0x000176,
+ 0x00017B,
+ 0x00017D,
+ 0x000184,
+ 0x0001A2,
+ 0x0001A4,
+ 0x0001A9,
+ 0x0001AC,
+ 0x0001B5,
+ 0x0001CD,
+ 0x0001CF,
+ 0x0001D1,
+ 0x0001D3,
+ 0x0001D5,
+ 0x0001D7,
+ 0x0001D9,
+ 0x0001DB,
+ 0x0001DE,
+ 0x0001E0,
+ 0x0001E2,
+ 0x0001E4,
+ 0x0001E6,
+ 0x0001E8,
+ 0x0001EA,
+ 0x0001EC,
+ 0x0001EE,
+ 0x0001F4,
+ 0x0001FA,
+ 0x0001FC,
+ 0x0001FE,
+ 0x000200,
+ 0x000202,
+ 0x000204,
+ 0x000206,
+ 0x000208,
+ 0x00020A,
+ 0x00020C,
+ 0x00020E,
+ 0x000210,
+ 0x000212,
+ 0x000214,
+ 0x000216,
+ 0x000218,
+ 0x00021A,
+ 0x00021C,
+ 0x00021E,
+ 0x000220,
+ 0x000222,
+ 0x000224,
+ 0x000226,
+ 0x000228,
+ 0x00022A,
+ 0x00022C,
+ 0x00022E,
+ 0x000230,
+ 0x000232,
+ 0x000241,
+ 0x000248,
+ 0x00024A,
+ 0x00024C,
+ 0x00024E,
+ 0x000294,
+ 0x000372,
+ 0x0003CF,
+ 0x0003D8,
+ 0x0003DA,
+ 0x0003DC,
+ 0x0003DE,
+ 0x0003E0,
+ 0x0003E2,
+ 0x0003E4,
+ 0x0003E6,
+ 0x0003E8,
+ 0x0003EA,
+ 0x0003EC,
+ 0x0003EE,
+ 0x0003F4,
+ 0x000460,
+ 0x000462,
+ 0x000464,
+ 0x000466,
+ 0x000468,
+ 0x00046A,
+ 0x00046C,
+ 0x00046E,
+ 0x000470,
+ 0x000472,
+ 0x000474,
+ 0x000476,
+ 0x000478,
+ 0x00047A,
+ 0x00047C,
+ 0x00047E,
+ 0x000480,
+ 0x00048C,
+ 0x00048E,
+ 0x000490,
+ 0x000492,
+ 0x000494,
+ 0x000496,
+ 0x000498,
+ 0x00049A,
+ 0x00049C,
+ 0x00049E,
+ 0x0004A0,
+ 0x0004A2,
+ 0x0004A4,
+ 0x0004A6,
+ 0x0004A8,
+ 0x0004AA,
+ 0x0004AC,
+ 0x0004AE,
+ 0x0004B0,
+ 0x0004B2,
+ 0x0004B4,
+ 0x0004B6,
+ 0x0004B8,
+ 0x0004BA,
+ 0x0004BC,
+ 0x0004BE,
+ 0x0004C3,
+ 0x0004C5,
+ 0x0004C7,
+ 0x0004C9,
+ 0x0004CB,
+ 0x0004CD,
+ 0x0004D0,
+ 0x0004D2,
+ 0x0004D4,
+ 0x0004D6,
+ 0x0004D8,
+ 0x0004DA,
+ 0x0004DC,
+ 0x0004DE,
+ 0x0004E0,
+ 0x0004E2,
+ 0x0004E4,
+ 0x0004E6,
+ 0x0004E8,
+ 0x0004EA,
+ 0x0004EC,
+ 0x0004EE,
+ 0x0004F0,
+ 0x0004F2,
+ 0x0004F4,
+ 0x0004F6,
+ 0x0004F8,
+ 0x0004FA,
+ 0x0004FC,
+ 0x0004FE,
+ 0x000500,
+ 0x000502,
+ 0x000504,
+ 0x000506,
+ 0x000508,
+ 0x00050A,
+ 0x00050C,
+ 0x00050E,
+ 0x000510,
+ 0x000512,
+ 0x000514,
+ 0x000516,
+ 0x000518,
+ 0x00051A,
+ 0x00051C,
+ 0x00051E,
+ 0x000520,
+ 0x000522,
+ 0x000524,
+ 0x000526,
+ 0x000528,
+ 0x00052A,
+ 0x00052C,
+ 0x00052E,
+ 0x001D78,
+ 0x001E02,
+ 0x001E04,
+ 0x001E06,
+ 0x001E08,
+ 0x001E0A,
+ 0x001E0C,
+ 0x001E0E,
+ 0x001E10,
+ 0x001E12,
+ 0x001E14,
+ 0x001E16,
+ 0x001E18,
+ 0x001E1A,
+ 0x001E1C,
+ 0x001E1E,
+ 0x001E20,
+ 0x001E22,
+ 0x001E24,
+ 0x001E26,
+ 0x001E28,
+ 0x001E2A,
+ 0x001E2C,
+ 0x001E2E,
+ 0x001E30,
+ 0x001E32,
+ 0x001E34,
+ 0x001E36,
+ 0x001E38,
+ 0x001E3A,
+ 0x001E3C,
+ 0x001E3E,
+ 0x001E40,
+ 0x001E42,
+ 0x001E44,
+ 0x001E46,
+ 0x001E48,
+ 0x001E4A,
+ 0x001E4C,
+ 0x001E4E,
+ 0x001E50,
+ 0x001E52,
+ 0x001E54,
+ 0x001E56,
+ 0x001E58,
+ 0x001E5A,
+ 0x001E5C,
+ 0x001E5E,
+ 0x001E60,
+ 0x001E62,
+ 0x001E64,
+ 0x001E66,
+ 0x001E68,
+ 0x001E6A,
+ 0x001E6C,
+ 0x001E6E,
+ 0x001E70,
+ 0x001E72,
+ 0x001E74,
+ 0x001E76,
+ 0x001E78,
+ 0x001E7A,
+ 0x001E7C,
+ 0x001E7E,
+ 0x001E80,
+ 0x001E82,
+ 0x001E84,
+ 0x001E86,
+ 0x001E88,
+ 0x001E8A,
+ 0x001E8C,
+ 0x001E8E,
+ 0x001E90,
+ 0x001E92,
+ 0x001E94,
+ 0x001E9E,
+ 0x001EA0,
+ 0x001EA2,
+ 0x001EA4,
+ 0x001EA6,
+ 0x001EA8,
+ 0x001EAA,
+ 0x001EAC,
+ 0x001EAE,
+ 0x001EB0,
+ 0x001EB2,
+ 0x001EB4,
+ 0x001EB6,
+ 0x001EB8,
+ 0x001EBA,
+ 0x001EBC,
+ 0x001EBE,
+ 0x001EC0,
+ 0x001EC2,
+ 0x001EC4,
+ 0x001EC6,
+ 0x001EC8,
+ 0x001ECA,
+ 0x001ECC,
+ 0x001ECE,
+ 0x001ED0,
+ 0x001ED2,
+ 0x001ED4,
+ 0x001ED6,
+ 0x001ED8,
+ 0x001EDA,
+ 0x001EDC,
+ 0x001EDE,
+ 0x001EE0,
+ 0x001EE2,
+ 0x001EE4,
+ 0x001EE6,
+ 0x001EE8,
+ 0x001EEA,
+ 0x001EEC,
+ 0x001EEE,
+ 0x001EF0,
+ 0x001EF2,
+ 0x001EF4,
+ 0x001EF6,
+ 0x001EF8,
+ 0x001EFA,
+ 0x001EFC,
+ 0x001EFE,
+ 0x001FB5,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002C67,
+ 0x002C69,
+ 0x002C6B,
+ 0x002C72,
+ 0x002C75,
+ 0x002C82,
+ 0x002C84,
+ 0x002C86,
+ 0x002C88,
+ 0x002C8A,
+ 0x002C8C,
+ 0x002C8E,
+ 0x002C90,
+ 0x002C92,
+ 0x002C94,
+ 0x002C96,
+ 0x002C98,
+ 0x002C9A,
+ 0x002C9C,
+ 0x002C9E,
+ 0x002CA0,
+ 0x002CA2,
+ 0x002CA4,
+ 0x002CA6,
+ 0x002CA8,
+ 0x002CAA,
+ 0x002CAC,
+ 0x002CAE,
+ 0x002CB0,
+ 0x002CB2,
+ 0x002CB4,
+ 0x002CB6,
+ 0x002CB8,
+ 0x002CBA,
+ 0x002CBC,
+ 0x002CBE,
+ 0x002CC0,
+ 0x002CC2,
+ 0x002CC4,
+ 0x002CC6,
+ 0x002CC8,
+ 0x002CCA,
+ 0x002CCC,
+ 0x002CCE,
+ 0x002CD0,
+ 0x002CD2,
+ 0x002CD4,
+ 0x002CD6,
+ 0x002CD8,
+ 0x002CDA,
+ 0x002CDC,
+ 0x002CDE,
+ 0x002CE0,
+ 0x002CE2,
+ 0x002CED,
+ 0x002D26,
+ 0x00A642,
+ 0x00A644,
+ 0x00A646,
+ 0x00A648,
+ 0x00A64A,
+ 0x00A64C,
+ 0x00A64E,
+ 0x00A650,
+ 0x00A652,
+ 0x00A654,
+ 0x00A656,
+ 0x00A658,
+ 0x00A65A,
+ 0x00A65C,
+ 0x00A65E,
+ 0x00A660,
+ 0x00A662,
+ 0x00A664,
+ 0x00A666,
+ 0x00A668,
+ 0x00A66A,
+ 0x00A66C,
+ 0x00A682,
+ 0x00A684,
+ 0x00A686,
+ 0x00A688,
+ 0x00A68A,
+ 0x00A68C,
+ 0x00A68E,
+ 0x00A690,
+ 0x00A692,
+ 0x00A694,
+ 0x00A696,
+ 0x00A698,
+ 0x00A69A,
+ 0x00A724,
+ 0x00A726,
+ 0x00A728,
+ 0x00A72A,
+ 0x00A72C,
+ 0x00A72E,
+ 0x00A732,
+ 0x00A734,
+ 0x00A736,
+ 0x00A738,
+ 0x00A73A,
+ 0x00A73C,
+ 0x00A73E,
+ 0x00A740,
+ 0x00A742,
+ 0x00A744,
+ 0x00A746,
+ 0x00A748,
+ 0x00A74A,
+ 0x00A74C,
+ 0x00A74E,
+ 0x00A750,
+ 0x00A752,
+ 0x00A754,
+ 0x00A756,
+ 0x00A758,
+ 0x00A75A,
+ 0x00A75C,
+ 0x00A75E,
+ 0x00A760,
+ 0x00A762,
+ 0x00A764,
+ 0x00A766,
+ 0x00A768,
+ 0x00A76A,
+ 0x00A76C,
+ 0x00A76E,
+ 0x00A770,
+ 0x00A779,
+ 0x00A77B,
+ 0x00A780,
+ 0x00A782,
+ 0x00A784,
+ 0x00A786,
+ 0x00A78D,
+ 0x00A792,
+ 0x00A796,
+ 0x00A798,
+ 0x00A79A,
+ 0x00A79C,
+ 0x00A79E,
+ 0x00A7A0,
+ 0x00A7A2,
+ 0x00A7A4,
+ 0x00A7A6,
+ 0x00A7A8,
+ 0x00A7B6,
+ 0x00A7B8,
+ 0x00A7BA,
+ 0x00A7BC,
+ 0x00A7BE,
+ 0x00A7C9,
+ 0x01D455,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D6DB,
+ 0x01D715,
+ 0x01D74F,
+ 0x01D789,
+ 0x01D7C3,
+ 0x01D7CA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000060],
+ [0x00007B, 0x0000B4],
+ [0x0000B6, 0x0000DE],
+ [0x000178, 0x000179],
+ [0x000181, 0x000182],
+ [0x000186, 0x000187],
+ [0x000189, 0x00018B],
+ [0x00018E, 0x000191],
+ [0x000193, 0x000194],
+ [0x000196, 0x000198],
+ [0x00019C, 0x00019D],
+ [0x00019F, 0x0001A0],
+ [0x0001A6, 0x0001A7],
+ [0x0001AE, 0x0001AF],
+ [0x0001B1, 0x0001B3],
+ [0x0001B7, 0x0001B8],
+ [0x0001BB, 0x0001BC],
+ [0x0001C0, 0x0001C5],
+ [0x0001C7, 0x0001C8],
+ [0x0001CA, 0x0001CB],
+ [0x0001F1, 0x0001F2],
+ [0x0001F6, 0x0001F8],
+ [0x00023A, 0x00023B],
+ [0x00023D, 0x00023E],
+ [0x000243, 0x000246],
+ [0x0002B0, 0x000370],
+ [0x000374, 0x000376],
+ [0x000378, 0x00037A],
+ [0x00037E, 0x00038F],
+ [0x000391, 0x0003AB],
+ [0x0003D2, 0x0003D4],
+ [0x0003F6, 0x0003F7],
+ [0x0003F9, 0x0003FA],
+ [0x0003FD, 0x00042F],
+ [0x000482, 0x00048A],
+ [0x0004C0, 0x0004C1],
+ [0x000530, 0x00055F],
+ [0x000589, 0x0010CF],
+ [0x0010FB, 0x0010FC],
+ [0x001100, 0x0013F7],
+ [0x0013FE, 0x001C7F],
+ [0x001C89, 0x001CFF],
+ [0x001D2C, 0x001D6A],
+ [0x001D9B, 0x001E00],
+ [0x001F08, 0x001F0F],
+ [0x001F16, 0x001F1F],
+ [0x001F28, 0x001F2F],
+ [0x001F38, 0x001F3F],
+ [0x001F46, 0x001F4F],
+ [0x001F58, 0x001F5F],
+ [0x001F68, 0x001F6F],
+ [0x001F7E, 0x001F7F],
+ [0x001F88, 0x001F8F],
+ [0x001F98, 0x001F9F],
+ [0x001FA8, 0x001FAF],
+ [0x001FB8, 0x001FBD],
+ [0x001FBF, 0x001FC1],
+ [0x001FC8, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FD8, 0x001FDF],
+ [0x001FE8, 0x001FF1],
+ [0x001FF8, 0x002109],
+ [0x00210B, 0x00210D],
+ [0x002110, 0x002112],
+ [0x002114, 0x00212E],
+ [0x002130, 0x002133],
+ [0x002135, 0x002138],
+ [0x00213A, 0x00213B],
+ [0x00213E, 0x002145],
+ [0x00214A, 0x00214D],
+ [0x00214F, 0x002183],
+ [0x002185, 0x002C2F],
+ [0x002C5F, 0x002C60],
+ [0x002C62, 0x002C64],
+ [0x002C6D, 0x002C70],
+ [0x002C7C, 0x002C80],
+ [0x002CE5, 0x002CEB],
+ [0x002CEF, 0x002CF2],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x00A640],
+ [0x00A66E, 0x00A680],
+ [0x00A69C, 0x00A722],
+ [0x00A77D, 0x00A77E],
+ [0x00A788, 0x00A78B],
+ [0x00A78F, 0x00A790],
+ [0x00A7AA, 0x00A7AE],
+ [0x00A7B0, 0x00A7B4],
+ [0x00A7C0, 0x00A7C2],
+ [0x00A7C4, 0x00A7C7],
+ [0x00A7CB, 0x00A7F5],
+ [0x00A7F7, 0x00A7F9],
+ [0x00A7FB, 0x00AB2F],
+ [0x00AB5B, 0x00AB5F],
+ [0x00AB69, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FF40],
+ [0x00FF5B, 0x010427],
+ [0x010450, 0x0104D7],
+ [0x0104FC, 0x010CBF],
+ [0x010CF3, 0x0118BF],
+ [0x0118E0, 0x016E5F],
+ [0x016E80, 0x01D419],
+ [0x01D434, 0x01D44D],
+ [0x01D468, 0x01D481],
+ [0x01D49C, 0x01D4B5],
+ [0x01D4D0, 0x01D4E9],
+ [0x01D504, 0x01D51D],
+ [0x01D538, 0x01D551],
+ [0x01D56C, 0x01D585],
+ [0x01D5A0, 0x01D5B9],
+ [0x01D5D4, 0x01D5ED],
+ [0x01D608, 0x01D621],
+ [0x01D63C, 0x01D655],
+ [0x01D670, 0x01D689],
+ [0x01D6A6, 0x01D6C1],
+ [0x01D6E2, 0x01D6FB],
+ [0x01D71C, 0x01D735],
+ [0x01D756, 0x01D76F],
+ [0x01D790, 0x01D7A9],
+ [0x01D7CC, 0x01E921],
+ [0x01E944, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Lowercase_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Lowercase_Letter}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Ll}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Ll}"
+);
+testPropertyEscapes(
+ /^\P{gc=Lowercase_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Lowercase_Letter}"
+);
+testPropertyEscapes(
+ /^\P{gc=Ll}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Ll}"
+);
+testPropertyEscapes(
+ /^\P{Lowercase_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{Lowercase_Letter}"
+);
+testPropertyEscapes(
+ /^\P{Ll}+$/u,
+ nonMatchSymbols,
+ "\\P{Ll}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js
new file mode 100644
index 0000000000..3086dc2632
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js
@@ -0,0 +1,703 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Mark`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0005BF,
+ 0x0005C7,
+ 0x000670,
+ 0x000711,
+ 0x0007FD,
+ 0x0009BC,
+ 0x0009D7,
+ 0x0009FE,
+ 0x000A3C,
+ 0x000A51,
+ 0x000A75,
+ 0x000ABC,
+ 0x000B3C,
+ 0x000B82,
+ 0x000BD7,
+ 0x000CBC,
+ 0x000D57,
+ 0x000DCA,
+ 0x000DD6,
+ 0x000E31,
+ 0x000EB1,
+ 0x000F35,
+ 0x000F37,
+ 0x000F39,
+ 0x000FC6,
+ 0x00108F,
+ 0x0017DD,
+ 0x0018A9,
+ 0x001A7F,
+ 0x001CED,
+ 0x001CF4,
+ 0x002D7F,
+ 0x00A802,
+ 0x00A806,
+ 0x00A80B,
+ 0x00A82C,
+ 0x00A8FF,
+ 0x00A9E5,
+ 0x00AA43,
+ 0x00AAB0,
+ 0x00AAC1,
+ 0x00FB1E,
+ 0x0101FD,
+ 0x0102E0,
+ 0x010A3F,
+ 0x011173,
+ 0x01123E,
+ 0x011357,
+ 0x01145E,
+ 0x011940,
+ 0x0119E4,
+ 0x011A47,
+ 0x011D3A,
+ 0x011D47,
+ 0x016F4F,
+ 0x016FE4,
+ 0x01DA75,
+ 0x01DA84
+ ],
+ ranges: [
+ [0x000300, 0x00036F],
+ [0x000483, 0x000489],
+ [0x000591, 0x0005BD],
+ [0x0005C1, 0x0005C2],
+ [0x0005C4, 0x0005C5],
+ [0x000610, 0x00061A],
+ [0x00064B, 0x00065F],
+ [0x0006D6, 0x0006DC],
+ [0x0006DF, 0x0006E4],
+ [0x0006E7, 0x0006E8],
+ [0x0006EA, 0x0006ED],
+ [0x000730, 0x00074A],
+ [0x0007A6, 0x0007B0],
+ [0x0007EB, 0x0007F3],
+ [0x000816, 0x000819],
+ [0x00081B, 0x000823],
+ [0x000825, 0x000827],
+ [0x000829, 0x00082D],
+ [0x000859, 0x00085B],
+ [0x0008D3, 0x0008E1],
+ [0x0008E3, 0x000903],
+ [0x00093A, 0x00093C],
+ [0x00093E, 0x00094F],
+ [0x000951, 0x000957],
+ [0x000962, 0x000963],
+ [0x000981, 0x000983],
+ [0x0009BE, 0x0009C4],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CD],
+ [0x0009E2, 0x0009E3],
+ [0x000A01, 0x000A03],
+ [0x000A3E, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A70, 0x000A71],
+ [0x000A81, 0x000A83],
+ [0x000ABE, 0x000AC5],
+ [0x000AC7, 0x000AC9],
+ [0x000ACB, 0x000ACD],
+ [0x000AE2, 0x000AE3],
+ [0x000AFA, 0x000AFF],
+ [0x000B01, 0x000B03],
+ [0x000B3E, 0x000B44],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4D],
+ [0x000B55, 0x000B57],
+ [0x000B62, 0x000B63],
+ [0x000BBE, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCD],
+ [0x000C00, 0x000C04],
+ [0x000C3E, 0x000C44],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C62, 0x000C63],
+ [0x000C81, 0x000C83],
+ [0x000CBE, 0x000CC4],
+ [0x000CC6, 0x000CC8],
+ [0x000CCA, 0x000CCD],
+ [0x000CD5, 0x000CD6],
+ [0x000CE2, 0x000CE3],
+ [0x000D00, 0x000D03],
+ [0x000D3B, 0x000D3C],
+ [0x000D3E, 0x000D44],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4D],
+ [0x000D62, 0x000D63],
+ [0x000D81, 0x000D83],
+ [0x000DCF, 0x000DD4],
+ [0x000DD8, 0x000DDF],
+ [0x000DF2, 0x000DF3],
+ [0x000E34, 0x000E3A],
+ [0x000E47, 0x000E4E],
+ [0x000EB4, 0x000EBC],
+ [0x000EC8, 0x000ECD],
+ [0x000F18, 0x000F19],
+ [0x000F3E, 0x000F3F],
+ [0x000F71, 0x000F84],
+ [0x000F86, 0x000F87],
+ [0x000F8D, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x00102B, 0x00103E],
+ [0x001056, 0x001059],
+ [0x00105E, 0x001060],
+ [0x001062, 0x001064],
+ [0x001067, 0x00106D],
+ [0x001071, 0x001074],
+ [0x001082, 0x00108D],
+ [0x00109A, 0x00109D],
+ [0x00135D, 0x00135F],
+ [0x001712, 0x001714],
+ [0x001732, 0x001734],
+ [0x001752, 0x001753],
+ [0x001772, 0x001773],
+ [0x0017B4, 0x0017D3],
+ [0x00180B, 0x00180D],
+ [0x001885, 0x001886],
+ [0x001920, 0x00192B],
+ [0x001930, 0x00193B],
+ [0x001A17, 0x001A1B],
+ [0x001A55, 0x001A5E],
+ [0x001A60, 0x001A7C],
+ [0x001AB0, 0x001AC0],
+ [0x001B00, 0x001B04],
+ [0x001B34, 0x001B44],
+ [0x001B6B, 0x001B73],
+ [0x001B80, 0x001B82],
+ [0x001BA1, 0x001BAD],
+ [0x001BE6, 0x001BF3],
+ [0x001C24, 0x001C37],
+ [0x001CD0, 0x001CD2],
+ [0x001CD4, 0x001CE8],
+ [0x001CF7, 0x001CF9],
+ [0x001DC0, 0x001DF9],
+ [0x001DFB, 0x001DFF],
+ [0x0020D0, 0x0020F0],
+ [0x002CEF, 0x002CF1],
+ [0x002DE0, 0x002DFF],
+ [0x00302A, 0x00302F],
+ [0x003099, 0x00309A],
+ [0x00A66F, 0x00A672],
+ [0x00A674, 0x00A67D],
+ [0x00A69E, 0x00A69F],
+ [0x00A6F0, 0x00A6F1],
+ [0x00A823, 0x00A827],
+ [0x00A880, 0x00A881],
+ [0x00A8B4, 0x00A8C5],
+ [0x00A8E0, 0x00A8F1],
+ [0x00A926, 0x00A92D],
+ [0x00A947, 0x00A953],
+ [0x00A980, 0x00A983],
+ [0x00A9B3, 0x00A9C0],
+ [0x00AA29, 0x00AA36],
+ [0x00AA4C, 0x00AA4D],
+ [0x00AA7B, 0x00AA7D],
+ [0x00AAB2, 0x00AAB4],
+ [0x00AAB7, 0x00AAB8],
+ [0x00AABE, 0x00AABF],
+ [0x00AAEB, 0x00AAEF],
+ [0x00AAF5, 0x00AAF6],
+ [0x00ABE3, 0x00ABEA],
+ [0x00ABEC, 0x00ABED],
+ [0x00FE00, 0x00FE0F],
+ [0x00FE20, 0x00FE2F],
+ [0x010376, 0x01037A],
+ [0x010A01, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A0F],
+ [0x010A38, 0x010A3A],
+ [0x010AE5, 0x010AE6],
+ [0x010D24, 0x010D27],
+ [0x010EAB, 0x010EAC],
+ [0x010F46, 0x010F50],
+ [0x011000, 0x011002],
+ [0x011038, 0x011046],
+ [0x01107F, 0x011082],
+ [0x0110B0, 0x0110BA],
+ [0x011100, 0x011102],
+ [0x011127, 0x011134],
+ [0x011145, 0x011146],
+ [0x011180, 0x011182],
+ [0x0111B3, 0x0111C0],
+ [0x0111C9, 0x0111CC],
+ [0x0111CE, 0x0111CF],
+ [0x01122C, 0x011237],
+ [0x0112DF, 0x0112EA],
+ [0x011300, 0x011303],
+ [0x01133B, 0x01133C],
+ [0x01133E, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134D],
+ [0x011362, 0x011363],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x011435, 0x011446],
+ [0x0114B0, 0x0114C3],
+ [0x0115AF, 0x0115B5],
+ [0x0115B8, 0x0115C0],
+ [0x0115DC, 0x0115DD],
+ [0x011630, 0x011640],
+ [0x0116AB, 0x0116B7],
+ [0x01171D, 0x01172B],
+ [0x01182C, 0x01183A],
+ [0x011930, 0x011935],
+ [0x011937, 0x011938],
+ [0x01193B, 0x01193E],
+ [0x011942, 0x011943],
+ [0x0119D1, 0x0119D7],
+ [0x0119DA, 0x0119E0],
+ [0x011A01, 0x011A0A],
+ [0x011A33, 0x011A39],
+ [0x011A3B, 0x011A3E],
+ [0x011A51, 0x011A5B],
+ [0x011A8A, 0x011A99],
+ [0x011C2F, 0x011C36],
+ [0x011C38, 0x011C3F],
+ [0x011C92, 0x011CA7],
+ [0x011CA9, 0x011CB6],
+ [0x011D31, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D45],
+ [0x011D8A, 0x011D8E],
+ [0x011D90, 0x011D91],
+ [0x011D93, 0x011D97],
+ [0x011EF3, 0x011EF6],
+ [0x016AF0, 0x016AF4],
+ [0x016B30, 0x016B36],
+ [0x016F51, 0x016F87],
+ [0x016F8F, 0x016F92],
+ [0x016FF0, 0x016FF1],
+ [0x01BC9D, 0x01BC9E],
+ [0x01D165, 0x01D169],
+ [0x01D16D, 0x01D172],
+ [0x01D17B, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D242, 0x01D244],
+ [0x01DA00, 0x01DA36],
+ [0x01DA3B, 0x01DA6C],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A],
+ [0x01E130, 0x01E136],
+ [0x01E2EC, 0x01E2EF],
+ [0x01E8D0, 0x01E8D6],
+ [0x01E944, 0x01E94A],
+ [0x0E0100, 0x0E01EF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Mark}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Mark}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=M}+$/u,
+ matchSymbols,
+ "\\p{General_Category=M}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Combining_Mark}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Combining_Mark}"
+);
+testPropertyEscapes(
+ /^\p{gc=Mark}+$/u,
+ matchSymbols,
+ "\\p{gc=Mark}"
+);
+testPropertyEscapes(
+ /^\p{gc=M}+$/u,
+ matchSymbols,
+ "\\p{gc=M}"
+);
+testPropertyEscapes(
+ /^\p{gc=Combining_Mark}+$/u,
+ matchSymbols,
+ "\\p{gc=Combining_Mark}"
+);
+testPropertyEscapes(
+ /^\p{Mark}+$/u,
+ matchSymbols,
+ "\\p{Mark}"
+);
+testPropertyEscapes(
+ /^\p{M}+$/u,
+ matchSymbols,
+ "\\p{M}"
+);
+testPropertyEscapes(
+ /^\p{Combining_Mark}+$/u,
+ matchSymbols,
+ "\\p{Combining_Mark}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0005BE,
+ 0x0005C0,
+ 0x0005C3,
+ 0x0005C6,
+ 0x0006E9,
+ 0x00081A,
+ 0x000824,
+ 0x000828,
+ 0x0008E2,
+ 0x00093D,
+ 0x000950,
+ 0x0009BD,
+ 0x000A3D,
+ 0x000ABD,
+ 0x000AC6,
+ 0x000ACA,
+ 0x000B00,
+ 0x000B3D,
+ 0x000BC9,
+ 0x000C45,
+ 0x000C49,
+ 0x000CBD,
+ 0x000CC5,
+ 0x000CC9,
+ 0x000D3D,
+ 0x000D45,
+ 0x000D49,
+ 0x000DD5,
+ 0x000DD7,
+ 0x000F36,
+ 0x000F38,
+ 0x000F85,
+ 0x000F98,
+ 0x001061,
+ 0x00108E,
+ 0x001A5F,
+ 0x001CD3,
+ 0x001DFA,
+ 0x00A673,
+ 0x00AAB1,
+ 0x00AAC0,
+ 0x00ABEB,
+ 0x010A04,
+ 0x0111CD,
+ 0x01133D,
+ 0x011936,
+ 0x01193F,
+ 0x011941,
+ 0x011A3A,
+ 0x011C37,
+ 0x011CA8,
+ 0x011D3B,
+ 0x011D3E,
+ 0x011D46,
+ 0x011D8F,
+ 0x011D92,
+ 0x016F50,
+ 0x01DAA0,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0002FF],
+ [0x000370, 0x000482],
+ [0x00048A, 0x000590],
+ [0x0005C8, 0x00060F],
+ [0x00061B, 0x00064A],
+ [0x000660, 0x00066F],
+ [0x000671, 0x0006D5],
+ [0x0006DD, 0x0006DE],
+ [0x0006E5, 0x0006E6],
+ [0x0006EE, 0x000710],
+ [0x000712, 0x00072F],
+ [0x00074B, 0x0007A5],
+ [0x0007B1, 0x0007EA],
+ [0x0007F4, 0x0007FC],
+ [0x0007FE, 0x000815],
+ [0x00082E, 0x000858],
+ [0x00085C, 0x0008D2],
+ [0x000904, 0x000939],
+ [0x000958, 0x000961],
+ [0x000964, 0x000980],
+ [0x000984, 0x0009BB],
+ [0x0009C5, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CE, 0x0009D6],
+ [0x0009D8, 0x0009E1],
+ [0x0009E4, 0x0009FD],
+ [0x0009FF, 0x000A00],
+ [0x000A04, 0x000A3B],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A6F],
+ [0x000A72, 0x000A74],
+ [0x000A76, 0x000A80],
+ [0x000A84, 0x000ABB],
+ [0x000ACE, 0x000AE1],
+ [0x000AE4, 0x000AF9],
+ [0x000B04, 0x000B3B],
+ [0x000B45, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4E, 0x000B54],
+ [0x000B58, 0x000B61],
+ [0x000B64, 0x000B81],
+ [0x000B83, 0x000BBD],
+ [0x000BC3, 0x000BC5],
+ [0x000BCE, 0x000BD6],
+ [0x000BD8, 0x000BFF],
+ [0x000C05, 0x000C3D],
+ [0x000C4E, 0x000C54],
+ [0x000C57, 0x000C61],
+ [0x000C64, 0x000C80],
+ [0x000C84, 0x000CBB],
+ [0x000CCE, 0x000CD4],
+ [0x000CD7, 0x000CE1],
+ [0x000CE4, 0x000CFF],
+ [0x000D04, 0x000D3A],
+ [0x000D4E, 0x000D56],
+ [0x000D58, 0x000D61],
+ [0x000D64, 0x000D80],
+ [0x000D84, 0x000DC9],
+ [0x000DCB, 0x000DCE],
+ [0x000DE0, 0x000DF1],
+ [0x000DF4, 0x000E30],
+ [0x000E32, 0x000E33],
+ [0x000E3B, 0x000E46],
+ [0x000E4F, 0x000EB0],
+ [0x000EB2, 0x000EB3],
+ [0x000EBD, 0x000EC7],
+ [0x000ECE, 0x000F17],
+ [0x000F1A, 0x000F34],
+ [0x000F3A, 0x000F3D],
+ [0x000F40, 0x000F70],
+ [0x000F88, 0x000F8C],
+ [0x000FBD, 0x000FC5],
+ [0x000FC7, 0x00102A],
+ [0x00103F, 0x001055],
+ [0x00105A, 0x00105D],
+ [0x001065, 0x001066],
+ [0x00106E, 0x001070],
+ [0x001075, 0x001081],
+ [0x001090, 0x001099],
+ [0x00109E, 0x00135C],
+ [0x001360, 0x001711],
+ [0x001715, 0x001731],
+ [0x001735, 0x001751],
+ [0x001754, 0x001771],
+ [0x001774, 0x0017B3],
+ [0x0017D4, 0x0017DC],
+ [0x0017DE, 0x00180A],
+ [0x00180E, 0x001884],
+ [0x001887, 0x0018A8],
+ [0x0018AA, 0x00191F],
+ [0x00192C, 0x00192F],
+ [0x00193C, 0x001A16],
+ [0x001A1C, 0x001A54],
+ [0x001A7D, 0x001A7E],
+ [0x001A80, 0x001AAF],
+ [0x001AC1, 0x001AFF],
+ [0x001B05, 0x001B33],
+ [0x001B45, 0x001B6A],
+ [0x001B74, 0x001B7F],
+ [0x001B83, 0x001BA0],
+ [0x001BAE, 0x001BE5],
+ [0x001BF4, 0x001C23],
+ [0x001C38, 0x001CCF],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF6],
+ [0x001CFA, 0x001DBF],
+ [0x001E00, 0x0020CF],
+ [0x0020F1, 0x002CEE],
+ [0x002CF2, 0x002D7E],
+ [0x002D80, 0x002DDF],
+ [0x002E00, 0x003029],
+ [0x003030, 0x003098],
+ [0x00309B, 0x00A66E],
+ [0x00A67E, 0x00A69D],
+ [0x00A6A0, 0x00A6EF],
+ [0x00A6F2, 0x00A801],
+ [0x00A803, 0x00A805],
+ [0x00A807, 0x00A80A],
+ [0x00A80C, 0x00A822],
+ [0x00A828, 0x00A82B],
+ [0x00A82D, 0x00A87F],
+ [0x00A882, 0x00A8B3],
+ [0x00A8C6, 0x00A8DF],
+ [0x00A8F2, 0x00A8FE],
+ [0x00A900, 0x00A925],
+ [0x00A92E, 0x00A946],
+ [0x00A954, 0x00A97F],
+ [0x00A984, 0x00A9B2],
+ [0x00A9C1, 0x00A9E4],
+ [0x00A9E6, 0x00AA28],
+ [0x00AA37, 0x00AA42],
+ [0x00AA44, 0x00AA4B],
+ [0x00AA4E, 0x00AA7A],
+ [0x00AA7E, 0x00AAAF],
+ [0x00AAB5, 0x00AAB6],
+ [0x00AAB9, 0x00AABD],
+ [0x00AAC2, 0x00AAEA],
+ [0x00AAF0, 0x00AAF4],
+ [0x00AAF7, 0x00ABE2],
+ [0x00ABEE, 0x00DBFF],
+ [0x00E000, 0x00FB1D],
+ [0x00FB1F, 0x00FDFF],
+ [0x00FE10, 0x00FE1F],
+ [0x00FE30, 0x0101FC],
+ [0x0101FE, 0x0102DF],
+ [0x0102E1, 0x010375],
+ [0x01037B, 0x010A00],
+ [0x010A07, 0x010A0B],
+ [0x010A10, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A40, 0x010AE4],
+ [0x010AE7, 0x010D23],
+ [0x010D28, 0x010EAA],
+ [0x010EAD, 0x010F45],
+ [0x010F51, 0x010FFF],
+ [0x011003, 0x011037],
+ [0x011047, 0x01107E],
+ [0x011083, 0x0110AF],
+ [0x0110BB, 0x0110FF],
+ [0x011103, 0x011126],
+ [0x011135, 0x011144],
+ [0x011147, 0x011172],
+ [0x011174, 0x01117F],
+ [0x011183, 0x0111B2],
+ [0x0111C1, 0x0111C8],
+ [0x0111D0, 0x01122B],
+ [0x011238, 0x01123D],
+ [0x01123F, 0x0112DE],
+ [0x0112EB, 0x0112FF],
+ [0x011304, 0x01133A],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134E, 0x011356],
+ [0x011358, 0x011361],
+ [0x011364, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x011434],
+ [0x011447, 0x01145D],
+ [0x01145F, 0x0114AF],
+ [0x0114C4, 0x0115AE],
+ [0x0115B6, 0x0115B7],
+ [0x0115C1, 0x0115DB],
+ [0x0115DE, 0x01162F],
+ [0x011641, 0x0116AA],
+ [0x0116B8, 0x01171C],
+ [0x01172C, 0x01182B],
+ [0x01183B, 0x01192F],
+ [0x011939, 0x01193A],
+ [0x011944, 0x0119D0],
+ [0x0119D8, 0x0119D9],
+ [0x0119E1, 0x0119E3],
+ [0x0119E5, 0x011A00],
+ [0x011A0B, 0x011A32],
+ [0x011A3F, 0x011A46],
+ [0x011A48, 0x011A50],
+ [0x011A5C, 0x011A89],
+ [0x011A9A, 0x011C2E],
+ [0x011C40, 0x011C91],
+ [0x011CB7, 0x011D30],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D89],
+ [0x011D98, 0x011EF2],
+ [0x011EF7, 0x016AEF],
+ [0x016AF5, 0x016B2F],
+ [0x016B37, 0x016F4E],
+ [0x016F88, 0x016F8E],
+ [0x016F93, 0x016FE3],
+ [0x016FE5, 0x016FEF],
+ [0x016FF2, 0x01BC9C],
+ [0x01BC9F, 0x01D164],
+ [0x01D16A, 0x01D16C],
+ [0x01D173, 0x01D17A],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D241],
+ [0x01D245, 0x01D9FF],
+ [0x01DA37, 0x01DA3A],
+ [0x01DA6D, 0x01DA74],
+ [0x01DA76, 0x01DA83],
+ [0x01DA85, 0x01DA9A],
+ [0x01DAB0, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x01E12F],
+ [0x01E137, 0x01E2EB],
+ [0x01E2F0, 0x01E8CF],
+ [0x01E8D7, 0x01E943],
+ [0x01E94B, 0x0E00FF],
+ [0x0E01F0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Mark}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=M}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=M}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Combining_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Combining_Mark}"
+);
+testPropertyEscapes(
+ /^\P{gc=Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Mark}"
+);
+testPropertyEscapes(
+ /^\P{gc=M}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=M}"
+);
+testPropertyEscapes(
+ /^\P{gc=Combining_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Combining_Mark}"
+);
+testPropertyEscapes(
+ /^\P{Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{Mark}"
+);
+testPropertyEscapes(
+ /^\P{M}+$/u,
+ nonMatchSymbols,
+ "\\P{M}"
+);
+testPropertyEscapes(
+ /^\P{Combining_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{Combining_Mark}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Math_Symbol.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Math_Symbol.js
new file mode 100644
index 0000000000..bb3623568c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Math_Symbol.js
@@ -0,0 +1,221 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Math_Symbol`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00002B,
+ 0x00007C,
+ 0x00007E,
+ 0x0000AC,
+ 0x0000B1,
+ 0x0000D7,
+ 0x0000F7,
+ 0x0003F6,
+ 0x002044,
+ 0x002052,
+ 0x002118,
+ 0x00214B,
+ 0x0021A0,
+ 0x0021A3,
+ 0x0021A6,
+ 0x0021AE,
+ 0x0021D2,
+ 0x0021D4,
+ 0x00237C,
+ 0x0025B7,
+ 0x0025C1,
+ 0x00266F,
+ 0x00FB29,
+ 0x00FE62,
+ 0x00FF0B,
+ 0x00FF5C,
+ 0x00FF5E,
+ 0x00FFE2,
+ 0x01D6C1,
+ 0x01D6DB,
+ 0x01D6FB,
+ 0x01D715,
+ 0x01D735,
+ 0x01D74F,
+ 0x01D76F,
+ 0x01D789,
+ 0x01D7A9,
+ 0x01D7C3
+ ],
+ ranges: [
+ [0x00003C, 0x00003E],
+ [0x000606, 0x000608],
+ [0x00207A, 0x00207C],
+ [0x00208A, 0x00208C],
+ [0x002140, 0x002144],
+ [0x002190, 0x002194],
+ [0x00219A, 0x00219B],
+ [0x0021CE, 0x0021CF],
+ [0x0021F4, 0x0022FF],
+ [0x002320, 0x002321],
+ [0x00239B, 0x0023B3],
+ [0x0023DC, 0x0023E1],
+ [0x0025F8, 0x0025FF],
+ [0x0027C0, 0x0027C4],
+ [0x0027C7, 0x0027E5],
+ [0x0027F0, 0x0027FF],
+ [0x002900, 0x002982],
+ [0x002999, 0x0029D7],
+ [0x0029DC, 0x0029FB],
+ [0x0029FE, 0x002AFF],
+ [0x002B30, 0x002B44],
+ [0x002B47, 0x002B4C],
+ [0x00FE64, 0x00FE66],
+ [0x00FF1C, 0x00FF1E],
+ [0x00FFE9, 0x00FFEC],
+ [0x01EEF0, 0x01EEF1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Math_Symbol}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Math_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Sm}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Sm}"
+);
+testPropertyEscapes(
+ /^\p{gc=Math_Symbol}+$/u,
+ matchSymbols,
+ "\\p{gc=Math_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{gc=Sm}+$/u,
+ matchSymbols,
+ "\\p{gc=Sm}"
+);
+testPropertyEscapes(
+ /^\p{Math_Symbol}+$/u,
+ matchSymbols,
+ "\\p{Math_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{Sm}+$/u,
+ matchSymbols,
+ "\\p{Sm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00007D,
+ 0x0021D3,
+ 0x00FE63,
+ 0x00FF5D
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00002A],
+ [0x00002C, 0x00003B],
+ [0x00003F, 0x00007B],
+ [0x00007F, 0x0000AB],
+ [0x0000AD, 0x0000B0],
+ [0x0000B2, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0003F5],
+ [0x0003F7, 0x000605],
+ [0x000609, 0x002043],
+ [0x002045, 0x002051],
+ [0x002053, 0x002079],
+ [0x00207D, 0x002089],
+ [0x00208D, 0x002117],
+ [0x002119, 0x00213F],
+ [0x002145, 0x00214A],
+ [0x00214C, 0x00218F],
+ [0x002195, 0x002199],
+ [0x00219C, 0x00219F],
+ [0x0021A1, 0x0021A2],
+ [0x0021A4, 0x0021A5],
+ [0x0021A7, 0x0021AD],
+ [0x0021AF, 0x0021CD],
+ [0x0021D0, 0x0021D1],
+ [0x0021D5, 0x0021F3],
+ [0x002300, 0x00231F],
+ [0x002322, 0x00237B],
+ [0x00237D, 0x00239A],
+ [0x0023B4, 0x0023DB],
+ [0x0023E2, 0x0025B6],
+ [0x0025B8, 0x0025C0],
+ [0x0025C2, 0x0025F7],
+ [0x002600, 0x00266E],
+ [0x002670, 0x0027BF],
+ [0x0027C5, 0x0027C6],
+ [0x0027E6, 0x0027EF],
+ [0x002800, 0x0028FF],
+ [0x002983, 0x002998],
+ [0x0029D8, 0x0029DB],
+ [0x0029FC, 0x0029FD],
+ [0x002B00, 0x002B2F],
+ [0x002B45, 0x002B46],
+ [0x002B4D, 0x00DBFF],
+ [0x00E000, 0x00FB28],
+ [0x00FB2A, 0x00FE61],
+ [0x00FE67, 0x00FF0A],
+ [0x00FF0C, 0x00FF1B],
+ [0x00FF1F, 0x00FF5B],
+ [0x00FF5F, 0x00FFE1],
+ [0x00FFE3, 0x00FFE8],
+ [0x00FFED, 0x01D6C0],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6FA],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D734],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D76E],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D7A8],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01EEEF],
+ [0x01EEF2, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Math_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Math_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Sm}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Sm}"
+);
+testPropertyEscapes(
+ /^\P{gc=Math_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Math_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{gc=Sm}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Sm}"
+);
+testPropertyEscapes(
+ /^\P{Math_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{Math_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{Sm}+$/u,
+ nonMatchSymbols,
+ "\\P{Sm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js
new file mode 100644
index 0000000000..923722068a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js
@@ -0,0 +1,215 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Modifier_Letter`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0002EC,
+ 0x0002EE,
+ 0x000374,
+ 0x00037A,
+ 0x000559,
+ 0x000640,
+ 0x0007FA,
+ 0x00081A,
+ 0x000824,
+ 0x000828,
+ 0x000971,
+ 0x000E46,
+ 0x000EC6,
+ 0x0010FC,
+ 0x0017D7,
+ 0x001843,
+ 0x001AA7,
+ 0x001D78,
+ 0x002071,
+ 0x00207F,
+ 0x002D6F,
+ 0x002E2F,
+ 0x003005,
+ 0x00303B,
+ 0x00A015,
+ 0x00A60C,
+ 0x00A67F,
+ 0x00A770,
+ 0x00A788,
+ 0x00A9CF,
+ 0x00A9E6,
+ 0x00AA70,
+ 0x00AADD,
+ 0x00AB69,
+ 0x00FF70,
+ 0x016FE3,
+ 0x01E94B
+ ],
+ ranges: [
+ [0x0002B0, 0x0002C1],
+ [0x0002C6, 0x0002D1],
+ [0x0002E0, 0x0002E4],
+ [0x0006E5, 0x0006E6],
+ [0x0007F4, 0x0007F5],
+ [0x001C78, 0x001C7D],
+ [0x001D2C, 0x001D6A],
+ [0x001D9B, 0x001DBF],
+ [0x002090, 0x00209C],
+ [0x002C7C, 0x002C7D],
+ [0x003031, 0x003035],
+ [0x00309D, 0x00309E],
+ [0x0030FC, 0x0030FE],
+ [0x00A4F8, 0x00A4FD],
+ [0x00A69C, 0x00A69D],
+ [0x00A717, 0x00A71F],
+ [0x00A7F8, 0x00A7F9],
+ [0x00AAF3, 0x00AAF4],
+ [0x00AB5C, 0x00AB5F],
+ [0x00FF9E, 0x00FF9F],
+ [0x016B40, 0x016B43],
+ [0x016F93, 0x016F9F],
+ [0x016FE0, 0x016FE1],
+ [0x01E137, 0x01E13D]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Modifier_Letter}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Modifier_Letter}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Lm}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Lm}"
+);
+testPropertyEscapes(
+ /^\p{gc=Modifier_Letter}+$/u,
+ matchSymbols,
+ "\\p{gc=Modifier_Letter}"
+);
+testPropertyEscapes(
+ /^\p{gc=Lm}+$/u,
+ matchSymbols,
+ "\\p{gc=Lm}"
+);
+testPropertyEscapes(
+ /^\p{Modifier_Letter}+$/u,
+ matchSymbols,
+ "\\p{Modifier_Letter}"
+);
+testPropertyEscapes(
+ /^\p{Lm}+$/u,
+ matchSymbols,
+ "\\p{Lm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0002ED,
+ 0x016FE2
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0002AF],
+ [0x0002C2, 0x0002C5],
+ [0x0002D2, 0x0002DF],
+ [0x0002E5, 0x0002EB],
+ [0x0002EF, 0x000373],
+ [0x000375, 0x000379],
+ [0x00037B, 0x000558],
+ [0x00055A, 0x00063F],
+ [0x000641, 0x0006E4],
+ [0x0006E7, 0x0007F3],
+ [0x0007F6, 0x0007F9],
+ [0x0007FB, 0x000819],
+ [0x00081B, 0x000823],
+ [0x000825, 0x000827],
+ [0x000829, 0x000970],
+ [0x000972, 0x000E45],
+ [0x000E47, 0x000EC5],
+ [0x000EC7, 0x0010FB],
+ [0x0010FD, 0x0017D6],
+ [0x0017D8, 0x001842],
+ [0x001844, 0x001AA6],
+ [0x001AA8, 0x001C77],
+ [0x001C7E, 0x001D2B],
+ [0x001D6B, 0x001D77],
+ [0x001D79, 0x001D9A],
+ [0x001DC0, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x002C7B],
+ [0x002C7E, 0x002D6E],
+ [0x002D70, 0x002E2E],
+ [0x002E30, 0x003004],
+ [0x003006, 0x003030],
+ [0x003036, 0x00303A],
+ [0x00303C, 0x00309C],
+ [0x00309F, 0x0030FB],
+ [0x0030FF, 0x00A014],
+ [0x00A016, 0x00A4F7],
+ [0x00A4FE, 0x00A60B],
+ [0x00A60D, 0x00A67E],
+ [0x00A680, 0x00A69B],
+ [0x00A69E, 0x00A716],
+ [0x00A720, 0x00A76F],
+ [0x00A771, 0x00A787],
+ [0x00A789, 0x00A7F7],
+ [0x00A7FA, 0x00A9CE],
+ [0x00A9D0, 0x00A9E5],
+ [0x00A9E7, 0x00AA6F],
+ [0x00AA71, 0x00AADC],
+ [0x00AADE, 0x00AAF2],
+ [0x00AAF5, 0x00AB5B],
+ [0x00AB60, 0x00AB68],
+ [0x00AB6A, 0x00DBFF],
+ [0x00E000, 0x00FF6F],
+ [0x00FF71, 0x00FF9D],
+ [0x00FFA0, 0x016B3F],
+ [0x016B44, 0x016F92],
+ [0x016FA0, 0x016FDF],
+ [0x016FE4, 0x01E136],
+ [0x01E13E, 0x01E94A],
+ [0x01E94C, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Modifier_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Modifier_Letter}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Lm}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Lm}"
+);
+testPropertyEscapes(
+ /^\P{gc=Modifier_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Modifier_Letter}"
+);
+testPropertyEscapes(
+ /^\P{gc=Lm}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Lm}"
+);
+testPropertyEscapes(
+ /^\P{Modifier_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{Modifier_Letter}"
+);
+testPropertyEscapes(
+ /^\P{Lm}+$/u,
+ nonMatchSymbols,
+ "\\P{Lm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Symbol.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Symbol.js
new file mode 100644
index 0000000000..778096eebd
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Symbol.js
@@ -0,0 +1,153 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Modifier_Symbol`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005E,
+ 0x000060,
+ 0x0000A8,
+ 0x0000AF,
+ 0x0000B4,
+ 0x0000B8,
+ 0x0002ED,
+ 0x000375,
+ 0x001FBD,
+ 0x00AB5B,
+ 0x00FF3E,
+ 0x00FF40,
+ 0x00FFE3
+ ],
+ ranges: [
+ [0x0002C2, 0x0002C5],
+ [0x0002D2, 0x0002DF],
+ [0x0002E5, 0x0002EB],
+ [0x0002EF, 0x0002FF],
+ [0x000384, 0x000385],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FDD, 0x001FDF],
+ [0x001FED, 0x001FEF],
+ [0x001FFD, 0x001FFE],
+ [0x00309B, 0x00309C],
+ [0x00A700, 0x00A716],
+ [0x00A720, 0x00A721],
+ [0x00A789, 0x00A78A],
+ [0x00AB6A, 0x00AB6B],
+ [0x00FBB2, 0x00FBC1],
+ [0x01F3FB, 0x01F3FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Modifier_Symbol}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Modifier_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Sk}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Sk}"
+);
+testPropertyEscapes(
+ /^\p{gc=Modifier_Symbol}+$/u,
+ matchSymbols,
+ "\\p{gc=Modifier_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{gc=Sk}+$/u,
+ matchSymbols,
+ "\\p{gc=Sk}"
+);
+testPropertyEscapes(
+ /^\p{Modifier_Symbol}+$/u,
+ matchSymbols,
+ "\\p{Modifier_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{Sk}+$/u,
+ matchSymbols,
+ "\\p{Sk}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005F,
+ 0x0002EC,
+ 0x0002EE,
+ 0x001FBE,
+ 0x00FF3F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00005D],
+ [0x000061, 0x0000A7],
+ [0x0000A9, 0x0000AE],
+ [0x0000B0, 0x0000B3],
+ [0x0000B5, 0x0000B7],
+ [0x0000B9, 0x0002C1],
+ [0x0002C6, 0x0002D1],
+ [0x0002E0, 0x0002E4],
+ [0x000300, 0x000374],
+ [0x000376, 0x000383],
+ [0x000386, 0x001FBC],
+ [0x001FC2, 0x001FCC],
+ [0x001FD0, 0x001FDC],
+ [0x001FE0, 0x001FEC],
+ [0x001FF0, 0x001FFC],
+ [0x001FFF, 0x00309A],
+ [0x00309D, 0x00A6FF],
+ [0x00A717, 0x00A71F],
+ [0x00A722, 0x00A788],
+ [0x00A78B, 0x00AB5A],
+ [0x00AB5C, 0x00AB69],
+ [0x00AB6C, 0x00DBFF],
+ [0x00E000, 0x00FBB1],
+ [0x00FBC2, 0x00FF3D],
+ [0x00FF41, 0x00FFE2],
+ [0x00FFE4, 0x01F3FA],
+ [0x01F400, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Modifier_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Modifier_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Sk}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Sk}"
+);
+testPropertyEscapes(
+ /^\P{gc=Modifier_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Modifier_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{gc=Sk}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Sk}"
+);
+testPropertyEscapes(
+ /^\P{Modifier_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{Modifier_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{Sk}+$/u,
+ nonMatchSymbols,
+ "\\P{Sk}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js
new file mode 100644
index 0000000000..ef7458897e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js
@@ -0,0 +1,747 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Nonspacing_Mark`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0005BF,
+ 0x0005C7,
+ 0x000670,
+ 0x000711,
+ 0x0007FD,
+ 0x00093A,
+ 0x00093C,
+ 0x00094D,
+ 0x000981,
+ 0x0009BC,
+ 0x0009CD,
+ 0x0009FE,
+ 0x000A3C,
+ 0x000A51,
+ 0x000A75,
+ 0x000ABC,
+ 0x000ACD,
+ 0x000B01,
+ 0x000B3C,
+ 0x000B3F,
+ 0x000B4D,
+ 0x000B82,
+ 0x000BC0,
+ 0x000BCD,
+ 0x000C00,
+ 0x000C04,
+ 0x000C81,
+ 0x000CBC,
+ 0x000CBF,
+ 0x000CC6,
+ 0x000D4D,
+ 0x000D81,
+ 0x000DCA,
+ 0x000DD6,
+ 0x000E31,
+ 0x000EB1,
+ 0x000F35,
+ 0x000F37,
+ 0x000F39,
+ 0x000FC6,
+ 0x001082,
+ 0x00108D,
+ 0x00109D,
+ 0x0017C6,
+ 0x0017DD,
+ 0x0018A9,
+ 0x001932,
+ 0x001A1B,
+ 0x001A56,
+ 0x001A60,
+ 0x001A62,
+ 0x001A7F,
+ 0x001B34,
+ 0x001B3C,
+ 0x001B42,
+ 0x001BE6,
+ 0x001BED,
+ 0x001CED,
+ 0x001CF4,
+ 0x0020E1,
+ 0x002D7F,
+ 0x00A66F,
+ 0x00A802,
+ 0x00A806,
+ 0x00A80B,
+ 0x00A82C,
+ 0x00A8FF,
+ 0x00A9B3,
+ 0x00A9E5,
+ 0x00AA43,
+ 0x00AA4C,
+ 0x00AA7C,
+ 0x00AAB0,
+ 0x00AAC1,
+ 0x00AAF6,
+ 0x00ABE5,
+ 0x00ABE8,
+ 0x00ABED,
+ 0x00FB1E,
+ 0x0101FD,
+ 0x0102E0,
+ 0x010A3F,
+ 0x011001,
+ 0x011173,
+ 0x0111CF,
+ 0x011234,
+ 0x01123E,
+ 0x0112DF,
+ 0x011340,
+ 0x011446,
+ 0x01145E,
+ 0x0114BA,
+ 0x01163D,
+ 0x0116AB,
+ 0x0116AD,
+ 0x0116B7,
+ 0x01193E,
+ 0x011943,
+ 0x0119E0,
+ 0x011A47,
+ 0x011C3F,
+ 0x011D3A,
+ 0x011D47,
+ 0x011D95,
+ 0x011D97,
+ 0x016F4F,
+ 0x016FE4,
+ 0x01DA75,
+ 0x01DA84
+ ],
+ ranges: [
+ [0x000300, 0x00036F],
+ [0x000483, 0x000487],
+ [0x000591, 0x0005BD],
+ [0x0005C1, 0x0005C2],
+ [0x0005C4, 0x0005C5],
+ [0x000610, 0x00061A],
+ [0x00064B, 0x00065F],
+ [0x0006D6, 0x0006DC],
+ [0x0006DF, 0x0006E4],
+ [0x0006E7, 0x0006E8],
+ [0x0006EA, 0x0006ED],
+ [0x000730, 0x00074A],
+ [0x0007A6, 0x0007B0],
+ [0x0007EB, 0x0007F3],
+ [0x000816, 0x000819],
+ [0x00081B, 0x000823],
+ [0x000825, 0x000827],
+ [0x000829, 0x00082D],
+ [0x000859, 0x00085B],
+ [0x0008D3, 0x0008E1],
+ [0x0008E3, 0x000902],
+ [0x000941, 0x000948],
+ [0x000951, 0x000957],
+ [0x000962, 0x000963],
+ [0x0009C1, 0x0009C4],
+ [0x0009E2, 0x0009E3],
+ [0x000A01, 0x000A02],
+ [0x000A41, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A70, 0x000A71],
+ [0x000A81, 0x000A82],
+ [0x000AC1, 0x000AC5],
+ [0x000AC7, 0x000AC8],
+ [0x000AE2, 0x000AE3],
+ [0x000AFA, 0x000AFF],
+ [0x000B41, 0x000B44],
+ [0x000B55, 0x000B56],
+ [0x000B62, 0x000B63],
+ [0x000C3E, 0x000C40],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C62, 0x000C63],
+ [0x000CCC, 0x000CCD],
+ [0x000CE2, 0x000CE3],
+ [0x000D00, 0x000D01],
+ [0x000D3B, 0x000D3C],
+ [0x000D41, 0x000D44],
+ [0x000D62, 0x000D63],
+ [0x000DD2, 0x000DD4],
+ [0x000E34, 0x000E3A],
+ [0x000E47, 0x000E4E],
+ [0x000EB4, 0x000EBC],
+ [0x000EC8, 0x000ECD],
+ [0x000F18, 0x000F19],
+ [0x000F71, 0x000F7E],
+ [0x000F80, 0x000F84],
+ [0x000F86, 0x000F87],
+ [0x000F8D, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x00102D, 0x001030],
+ [0x001032, 0x001037],
+ [0x001039, 0x00103A],
+ [0x00103D, 0x00103E],
+ [0x001058, 0x001059],
+ [0x00105E, 0x001060],
+ [0x001071, 0x001074],
+ [0x001085, 0x001086],
+ [0x00135D, 0x00135F],
+ [0x001712, 0x001714],
+ [0x001732, 0x001734],
+ [0x001752, 0x001753],
+ [0x001772, 0x001773],
+ [0x0017B4, 0x0017B5],
+ [0x0017B7, 0x0017BD],
+ [0x0017C9, 0x0017D3],
+ [0x00180B, 0x00180D],
+ [0x001885, 0x001886],
+ [0x001920, 0x001922],
+ [0x001927, 0x001928],
+ [0x001939, 0x00193B],
+ [0x001A17, 0x001A18],
+ [0x001A58, 0x001A5E],
+ [0x001A65, 0x001A6C],
+ [0x001A73, 0x001A7C],
+ [0x001AB0, 0x001ABD],
+ [0x001ABF, 0x001AC0],
+ [0x001B00, 0x001B03],
+ [0x001B36, 0x001B3A],
+ [0x001B6B, 0x001B73],
+ [0x001B80, 0x001B81],
+ [0x001BA2, 0x001BA5],
+ [0x001BA8, 0x001BA9],
+ [0x001BAB, 0x001BAD],
+ [0x001BE8, 0x001BE9],
+ [0x001BEF, 0x001BF1],
+ [0x001C2C, 0x001C33],
+ [0x001C36, 0x001C37],
+ [0x001CD0, 0x001CD2],
+ [0x001CD4, 0x001CE0],
+ [0x001CE2, 0x001CE8],
+ [0x001CF8, 0x001CF9],
+ [0x001DC0, 0x001DF9],
+ [0x001DFB, 0x001DFF],
+ [0x0020D0, 0x0020DC],
+ [0x0020E5, 0x0020F0],
+ [0x002CEF, 0x002CF1],
+ [0x002DE0, 0x002DFF],
+ [0x00302A, 0x00302D],
+ [0x003099, 0x00309A],
+ [0x00A674, 0x00A67D],
+ [0x00A69E, 0x00A69F],
+ [0x00A6F0, 0x00A6F1],
+ [0x00A825, 0x00A826],
+ [0x00A8C4, 0x00A8C5],
+ [0x00A8E0, 0x00A8F1],
+ [0x00A926, 0x00A92D],
+ [0x00A947, 0x00A951],
+ [0x00A980, 0x00A982],
+ [0x00A9B6, 0x00A9B9],
+ [0x00A9BC, 0x00A9BD],
+ [0x00AA29, 0x00AA2E],
+ [0x00AA31, 0x00AA32],
+ [0x00AA35, 0x00AA36],
+ [0x00AAB2, 0x00AAB4],
+ [0x00AAB7, 0x00AAB8],
+ [0x00AABE, 0x00AABF],
+ [0x00AAEC, 0x00AAED],
+ [0x00FE00, 0x00FE0F],
+ [0x00FE20, 0x00FE2F],
+ [0x010376, 0x01037A],
+ [0x010A01, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A0F],
+ [0x010A38, 0x010A3A],
+ [0x010AE5, 0x010AE6],
+ [0x010D24, 0x010D27],
+ [0x010EAB, 0x010EAC],
+ [0x010F46, 0x010F50],
+ [0x011038, 0x011046],
+ [0x01107F, 0x011081],
+ [0x0110B3, 0x0110B6],
+ [0x0110B9, 0x0110BA],
+ [0x011100, 0x011102],
+ [0x011127, 0x01112B],
+ [0x01112D, 0x011134],
+ [0x011180, 0x011181],
+ [0x0111B6, 0x0111BE],
+ [0x0111C9, 0x0111CC],
+ [0x01122F, 0x011231],
+ [0x011236, 0x011237],
+ [0x0112E3, 0x0112EA],
+ [0x011300, 0x011301],
+ [0x01133B, 0x01133C],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x011438, 0x01143F],
+ [0x011442, 0x011444],
+ [0x0114B3, 0x0114B8],
+ [0x0114BF, 0x0114C0],
+ [0x0114C2, 0x0114C3],
+ [0x0115B2, 0x0115B5],
+ [0x0115BC, 0x0115BD],
+ [0x0115BF, 0x0115C0],
+ [0x0115DC, 0x0115DD],
+ [0x011633, 0x01163A],
+ [0x01163F, 0x011640],
+ [0x0116B0, 0x0116B5],
+ [0x01171D, 0x01171F],
+ [0x011722, 0x011725],
+ [0x011727, 0x01172B],
+ [0x01182F, 0x011837],
+ [0x011839, 0x01183A],
+ [0x01193B, 0x01193C],
+ [0x0119D4, 0x0119D7],
+ [0x0119DA, 0x0119DB],
+ [0x011A01, 0x011A0A],
+ [0x011A33, 0x011A38],
+ [0x011A3B, 0x011A3E],
+ [0x011A51, 0x011A56],
+ [0x011A59, 0x011A5B],
+ [0x011A8A, 0x011A96],
+ [0x011A98, 0x011A99],
+ [0x011C30, 0x011C36],
+ [0x011C38, 0x011C3D],
+ [0x011C92, 0x011CA7],
+ [0x011CAA, 0x011CB0],
+ [0x011CB2, 0x011CB3],
+ [0x011CB5, 0x011CB6],
+ [0x011D31, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D45],
+ [0x011D90, 0x011D91],
+ [0x011EF3, 0x011EF4],
+ [0x016AF0, 0x016AF4],
+ [0x016B30, 0x016B36],
+ [0x016F8F, 0x016F92],
+ [0x01BC9D, 0x01BC9E],
+ [0x01D167, 0x01D169],
+ [0x01D17B, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D242, 0x01D244],
+ [0x01DA00, 0x01DA36],
+ [0x01DA3B, 0x01DA6C],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A],
+ [0x01E130, 0x01E136],
+ [0x01E2EC, 0x01E2EF],
+ [0x01E8D0, 0x01E8D6],
+ [0x01E944, 0x01E94A],
+ [0x0E0100, 0x0E01EF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Nonspacing_Mark}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Nonspacing_Mark}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Mn}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Mn}"
+);
+testPropertyEscapes(
+ /^\p{gc=Nonspacing_Mark}+$/u,
+ matchSymbols,
+ "\\p{gc=Nonspacing_Mark}"
+);
+testPropertyEscapes(
+ /^\p{gc=Mn}+$/u,
+ matchSymbols,
+ "\\p{gc=Mn}"
+);
+testPropertyEscapes(
+ /^\p{Nonspacing_Mark}+$/u,
+ matchSymbols,
+ "\\p{Nonspacing_Mark}"
+);
+testPropertyEscapes(
+ /^\p{Mn}+$/u,
+ matchSymbols,
+ "\\p{Mn}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0005BE,
+ 0x0005C0,
+ 0x0005C3,
+ 0x0005C6,
+ 0x0006E9,
+ 0x00081A,
+ 0x000824,
+ 0x000828,
+ 0x0008E2,
+ 0x00093B,
+ 0x000AC6,
+ 0x000B00,
+ 0x000B40,
+ 0x000C49,
+ 0x000DD5,
+ 0x000F36,
+ 0x000F38,
+ 0x000F7F,
+ 0x000F85,
+ 0x000F98,
+ 0x001031,
+ 0x001038,
+ 0x0017B6,
+ 0x001A57,
+ 0x001A5F,
+ 0x001A61,
+ 0x001ABE,
+ 0x001B35,
+ 0x001B3B,
+ 0x001BAA,
+ 0x001BE7,
+ 0x001BEE,
+ 0x001CD3,
+ 0x001CE1,
+ 0x001DFA,
+ 0x00AAB1,
+ 0x00AAC0,
+ 0x010A04,
+ 0x01112C,
+ 0x011235,
+ 0x011445,
+ 0x0114B9,
+ 0x0114C1,
+ 0x0115BE,
+ 0x01163E,
+ 0x0116AC,
+ 0x0116B6,
+ 0x011726,
+ 0x011838,
+ 0x01193D,
+ 0x011A97,
+ 0x011C37,
+ 0x011C3E,
+ 0x011CB1,
+ 0x011CB4,
+ 0x011D3B,
+ 0x011D3E,
+ 0x011D46,
+ 0x011D96,
+ 0x01DAA0,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0002FF],
+ [0x000370, 0x000482],
+ [0x000488, 0x000590],
+ [0x0005C8, 0x00060F],
+ [0x00061B, 0x00064A],
+ [0x000660, 0x00066F],
+ [0x000671, 0x0006D5],
+ [0x0006DD, 0x0006DE],
+ [0x0006E5, 0x0006E6],
+ [0x0006EE, 0x000710],
+ [0x000712, 0x00072F],
+ [0x00074B, 0x0007A5],
+ [0x0007B1, 0x0007EA],
+ [0x0007F4, 0x0007FC],
+ [0x0007FE, 0x000815],
+ [0x00082E, 0x000858],
+ [0x00085C, 0x0008D2],
+ [0x000903, 0x000939],
+ [0x00093D, 0x000940],
+ [0x000949, 0x00094C],
+ [0x00094E, 0x000950],
+ [0x000958, 0x000961],
+ [0x000964, 0x000980],
+ [0x000982, 0x0009BB],
+ [0x0009BD, 0x0009C0],
+ [0x0009C5, 0x0009CC],
+ [0x0009CE, 0x0009E1],
+ [0x0009E4, 0x0009FD],
+ [0x0009FF, 0x000A00],
+ [0x000A03, 0x000A3B],
+ [0x000A3D, 0x000A40],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A6F],
+ [0x000A72, 0x000A74],
+ [0x000A76, 0x000A80],
+ [0x000A83, 0x000ABB],
+ [0x000ABD, 0x000AC0],
+ [0x000AC9, 0x000ACC],
+ [0x000ACE, 0x000AE1],
+ [0x000AE4, 0x000AF9],
+ [0x000B02, 0x000B3B],
+ [0x000B3D, 0x000B3E],
+ [0x000B45, 0x000B4C],
+ [0x000B4E, 0x000B54],
+ [0x000B57, 0x000B61],
+ [0x000B64, 0x000B81],
+ [0x000B83, 0x000BBF],
+ [0x000BC1, 0x000BCC],
+ [0x000BCE, 0x000BFF],
+ [0x000C01, 0x000C03],
+ [0x000C05, 0x000C3D],
+ [0x000C41, 0x000C45],
+ [0x000C4E, 0x000C54],
+ [0x000C57, 0x000C61],
+ [0x000C64, 0x000C80],
+ [0x000C82, 0x000CBB],
+ [0x000CBD, 0x000CBE],
+ [0x000CC0, 0x000CC5],
+ [0x000CC7, 0x000CCB],
+ [0x000CCE, 0x000CE1],
+ [0x000CE4, 0x000CFF],
+ [0x000D02, 0x000D3A],
+ [0x000D3D, 0x000D40],
+ [0x000D45, 0x000D4C],
+ [0x000D4E, 0x000D61],
+ [0x000D64, 0x000D80],
+ [0x000D82, 0x000DC9],
+ [0x000DCB, 0x000DD1],
+ [0x000DD7, 0x000E30],
+ [0x000E32, 0x000E33],
+ [0x000E3B, 0x000E46],
+ [0x000E4F, 0x000EB0],
+ [0x000EB2, 0x000EB3],
+ [0x000EBD, 0x000EC7],
+ [0x000ECE, 0x000F17],
+ [0x000F1A, 0x000F34],
+ [0x000F3A, 0x000F70],
+ [0x000F88, 0x000F8C],
+ [0x000FBD, 0x000FC5],
+ [0x000FC7, 0x00102C],
+ [0x00103B, 0x00103C],
+ [0x00103F, 0x001057],
+ [0x00105A, 0x00105D],
+ [0x001061, 0x001070],
+ [0x001075, 0x001081],
+ [0x001083, 0x001084],
+ [0x001087, 0x00108C],
+ [0x00108E, 0x00109C],
+ [0x00109E, 0x00135C],
+ [0x001360, 0x001711],
+ [0x001715, 0x001731],
+ [0x001735, 0x001751],
+ [0x001754, 0x001771],
+ [0x001774, 0x0017B3],
+ [0x0017BE, 0x0017C5],
+ [0x0017C7, 0x0017C8],
+ [0x0017D4, 0x0017DC],
+ [0x0017DE, 0x00180A],
+ [0x00180E, 0x001884],
+ [0x001887, 0x0018A8],
+ [0x0018AA, 0x00191F],
+ [0x001923, 0x001926],
+ [0x001929, 0x001931],
+ [0x001933, 0x001938],
+ [0x00193C, 0x001A16],
+ [0x001A19, 0x001A1A],
+ [0x001A1C, 0x001A55],
+ [0x001A63, 0x001A64],
+ [0x001A6D, 0x001A72],
+ [0x001A7D, 0x001A7E],
+ [0x001A80, 0x001AAF],
+ [0x001AC1, 0x001AFF],
+ [0x001B04, 0x001B33],
+ [0x001B3D, 0x001B41],
+ [0x001B43, 0x001B6A],
+ [0x001B74, 0x001B7F],
+ [0x001B82, 0x001BA1],
+ [0x001BA6, 0x001BA7],
+ [0x001BAE, 0x001BE5],
+ [0x001BEA, 0x001BEC],
+ [0x001BF2, 0x001C2B],
+ [0x001C34, 0x001C35],
+ [0x001C38, 0x001CCF],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF7],
+ [0x001CFA, 0x001DBF],
+ [0x001E00, 0x0020CF],
+ [0x0020DD, 0x0020E0],
+ [0x0020E2, 0x0020E4],
+ [0x0020F1, 0x002CEE],
+ [0x002CF2, 0x002D7E],
+ [0x002D80, 0x002DDF],
+ [0x002E00, 0x003029],
+ [0x00302E, 0x003098],
+ [0x00309B, 0x00A66E],
+ [0x00A670, 0x00A673],
+ [0x00A67E, 0x00A69D],
+ [0x00A6A0, 0x00A6EF],
+ [0x00A6F2, 0x00A801],
+ [0x00A803, 0x00A805],
+ [0x00A807, 0x00A80A],
+ [0x00A80C, 0x00A824],
+ [0x00A827, 0x00A82B],
+ [0x00A82D, 0x00A8C3],
+ [0x00A8C6, 0x00A8DF],
+ [0x00A8F2, 0x00A8FE],
+ [0x00A900, 0x00A925],
+ [0x00A92E, 0x00A946],
+ [0x00A952, 0x00A97F],
+ [0x00A983, 0x00A9B2],
+ [0x00A9B4, 0x00A9B5],
+ [0x00A9BA, 0x00A9BB],
+ [0x00A9BE, 0x00A9E4],
+ [0x00A9E6, 0x00AA28],
+ [0x00AA2F, 0x00AA30],
+ [0x00AA33, 0x00AA34],
+ [0x00AA37, 0x00AA42],
+ [0x00AA44, 0x00AA4B],
+ [0x00AA4D, 0x00AA7B],
+ [0x00AA7D, 0x00AAAF],
+ [0x00AAB5, 0x00AAB6],
+ [0x00AAB9, 0x00AABD],
+ [0x00AAC2, 0x00AAEB],
+ [0x00AAEE, 0x00AAF5],
+ [0x00AAF7, 0x00ABE4],
+ [0x00ABE6, 0x00ABE7],
+ [0x00ABE9, 0x00ABEC],
+ [0x00ABEE, 0x00DBFF],
+ [0x00E000, 0x00FB1D],
+ [0x00FB1F, 0x00FDFF],
+ [0x00FE10, 0x00FE1F],
+ [0x00FE30, 0x0101FC],
+ [0x0101FE, 0x0102DF],
+ [0x0102E1, 0x010375],
+ [0x01037B, 0x010A00],
+ [0x010A07, 0x010A0B],
+ [0x010A10, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A40, 0x010AE4],
+ [0x010AE7, 0x010D23],
+ [0x010D28, 0x010EAA],
+ [0x010EAD, 0x010F45],
+ [0x010F51, 0x011000],
+ [0x011002, 0x011037],
+ [0x011047, 0x01107E],
+ [0x011082, 0x0110B2],
+ [0x0110B7, 0x0110B8],
+ [0x0110BB, 0x0110FF],
+ [0x011103, 0x011126],
+ [0x011135, 0x011172],
+ [0x011174, 0x01117F],
+ [0x011182, 0x0111B5],
+ [0x0111BF, 0x0111C8],
+ [0x0111CD, 0x0111CE],
+ [0x0111D0, 0x01122E],
+ [0x011232, 0x011233],
+ [0x011238, 0x01123D],
+ [0x01123F, 0x0112DE],
+ [0x0112E0, 0x0112E2],
+ [0x0112EB, 0x0112FF],
+ [0x011302, 0x01133A],
+ [0x01133D, 0x01133F],
+ [0x011341, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x011437],
+ [0x011440, 0x011441],
+ [0x011447, 0x01145D],
+ [0x01145F, 0x0114B2],
+ [0x0114BB, 0x0114BE],
+ [0x0114C4, 0x0115B1],
+ [0x0115B6, 0x0115BB],
+ [0x0115C1, 0x0115DB],
+ [0x0115DE, 0x011632],
+ [0x01163B, 0x01163C],
+ [0x011641, 0x0116AA],
+ [0x0116AE, 0x0116AF],
+ [0x0116B8, 0x01171C],
+ [0x011720, 0x011721],
+ [0x01172C, 0x01182E],
+ [0x01183B, 0x01193A],
+ [0x01193F, 0x011942],
+ [0x011944, 0x0119D3],
+ [0x0119D8, 0x0119D9],
+ [0x0119DC, 0x0119DF],
+ [0x0119E1, 0x011A00],
+ [0x011A0B, 0x011A32],
+ [0x011A39, 0x011A3A],
+ [0x011A3F, 0x011A46],
+ [0x011A48, 0x011A50],
+ [0x011A57, 0x011A58],
+ [0x011A5C, 0x011A89],
+ [0x011A9A, 0x011C2F],
+ [0x011C40, 0x011C91],
+ [0x011CA8, 0x011CA9],
+ [0x011CB7, 0x011D30],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D8F],
+ [0x011D92, 0x011D94],
+ [0x011D98, 0x011EF2],
+ [0x011EF5, 0x016AEF],
+ [0x016AF5, 0x016B2F],
+ [0x016B37, 0x016F4E],
+ [0x016F50, 0x016F8E],
+ [0x016F93, 0x016FE3],
+ [0x016FE5, 0x01BC9C],
+ [0x01BC9F, 0x01D166],
+ [0x01D16A, 0x01D17A],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D241],
+ [0x01D245, 0x01D9FF],
+ [0x01DA37, 0x01DA3A],
+ [0x01DA6D, 0x01DA74],
+ [0x01DA76, 0x01DA83],
+ [0x01DA85, 0x01DA9A],
+ [0x01DAB0, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x01E12F],
+ [0x01E137, 0x01E2EB],
+ [0x01E2F0, 0x01E8CF],
+ [0x01E8D7, 0x01E943],
+ [0x01E94B, 0x0E00FF],
+ [0x0E01F0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Nonspacing_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Nonspacing_Mark}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Mn}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Mn}"
+);
+testPropertyEscapes(
+ /^\P{gc=Nonspacing_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Nonspacing_Mark}"
+);
+testPropertyEscapes(
+ /^\P{gc=Mn}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Mn}"
+);
+testPropertyEscapes(
+ /^\P{Nonspacing_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{Nonspacing_Mark}"
+);
+testPropertyEscapes(
+ /^\P{Mn}+$/u,
+ nonMatchSymbols,
+ "\\P{Mn}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js
new file mode 100644
index 0000000000..f2b84c41f2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js
@@ -0,0 +1,359 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Number`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000B9,
+ 0x002070,
+ 0x002CFD,
+ 0x003007,
+ 0x010341,
+ 0x01034A
+ ],
+ ranges: [
+ [0x000030, 0x000039],
+ [0x0000B2, 0x0000B3],
+ [0x0000BC, 0x0000BE],
+ [0x000660, 0x000669],
+ [0x0006F0, 0x0006F9],
+ [0x0007C0, 0x0007C9],
+ [0x000966, 0x00096F],
+ [0x0009E6, 0x0009EF],
+ [0x0009F4, 0x0009F9],
+ [0x000A66, 0x000A6F],
+ [0x000AE6, 0x000AEF],
+ [0x000B66, 0x000B6F],
+ [0x000B72, 0x000B77],
+ [0x000BE6, 0x000BF2],
+ [0x000C66, 0x000C6F],
+ [0x000C78, 0x000C7E],
+ [0x000CE6, 0x000CEF],
+ [0x000D58, 0x000D5E],
+ [0x000D66, 0x000D78],
+ [0x000DE6, 0x000DEF],
+ [0x000E50, 0x000E59],
+ [0x000ED0, 0x000ED9],
+ [0x000F20, 0x000F33],
+ [0x001040, 0x001049],
+ [0x001090, 0x001099],
+ [0x001369, 0x00137C],
+ [0x0016EE, 0x0016F0],
+ [0x0017E0, 0x0017E9],
+ [0x0017F0, 0x0017F9],
+ [0x001810, 0x001819],
+ [0x001946, 0x00194F],
+ [0x0019D0, 0x0019DA],
+ [0x001A80, 0x001A89],
+ [0x001A90, 0x001A99],
+ [0x001B50, 0x001B59],
+ [0x001BB0, 0x001BB9],
+ [0x001C40, 0x001C49],
+ [0x001C50, 0x001C59],
+ [0x002074, 0x002079],
+ [0x002080, 0x002089],
+ [0x002150, 0x002182],
+ [0x002185, 0x002189],
+ [0x002460, 0x00249B],
+ [0x0024EA, 0x0024FF],
+ [0x002776, 0x002793],
+ [0x003021, 0x003029],
+ [0x003038, 0x00303A],
+ [0x003192, 0x003195],
+ [0x003220, 0x003229],
+ [0x003248, 0x00324F],
+ [0x003251, 0x00325F],
+ [0x003280, 0x003289],
+ [0x0032B1, 0x0032BF],
+ [0x00A620, 0x00A629],
+ [0x00A6E6, 0x00A6EF],
+ [0x00A830, 0x00A835],
+ [0x00A8D0, 0x00A8D9],
+ [0x00A900, 0x00A909],
+ [0x00A9D0, 0x00A9D9],
+ [0x00A9F0, 0x00A9F9],
+ [0x00AA50, 0x00AA59],
+ [0x00ABF0, 0x00ABF9],
+ [0x00FF10, 0x00FF19],
+ [0x010107, 0x010133],
+ [0x010140, 0x010178],
+ [0x01018A, 0x01018B],
+ [0x0102E1, 0x0102FB],
+ [0x010320, 0x010323],
+ [0x0103D1, 0x0103D5],
+ [0x0104A0, 0x0104A9],
+ [0x010858, 0x01085F],
+ [0x010879, 0x01087F],
+ [0x0108A7, 0x0108AF],
+ [0x0108FB, 0x0108FF],
+ [0x010916, 0x01091B],
+ [0x0109BC, 0x0109BD],
+ [0x0109C0, 0x0109CF],
+ [0x0109D2, 0x0109FF],
+ [0x010A40, 0x010A48],
+ [0x010A7D, 0x010A7E],
+ [0x010A9D, 0x010A9F],
+ [0x010AEB, 0x010AEF],
+ [0x010B58, 0x010B5F],
+ [0x010B78, 0x010B7F],
+ [0x010BA9, 0x010BAF],
+ [0x010CFA, 0x010CFF],
+ [0x010D30, 0x010D39],
+ [0x010E60, 0x010E7E],
+ [0x010F1D, 0x010F26],
+ [0x010F51, 0x010F54],
+ [0x010FC5, 0x010FCB],
+ [0x011052, 0x01106F],
+ [0x0110F0, 0x0110F9],
+ [0x011136, 0x01113F],
+ [0x0111D0, 0x0111D9],
+ [0x0111E1, 0x0111F4],
+ [0x0112F0, 0x0112F9],
+ [0x011450, 0x011459],
+ [0x0114D0, 0x0114D9],
+ [0x011650, 0x011659],
+ [0x0116C0, 0x0116C9],
+ [0x011730, 0x01173B],
+ [0x0118E0, 0x0118F2],
+ [0x011950, 0x011959],
+ [0x011C50, 0x011C6C],
+ [0x011D50, 0x011D59],
+ [0x011DA0, 0x011DA9],
+ [0x011FC0, 0x011FD4],
+ [0x012400, 0x01246E],
+ [0x016A60, 0x016A69],
+ [0x016B50, 0x016B59],
+ [0x016B5B, 0x016B61],
+ [0x016E80, 0x016E96],
+ [0x01D2E0, 0x01D2F3],
+ [0x01D360, 0x01D378],
+ [0x01D7CE, 0x01D7FF],
+ [0x01E140, 0x01E149],
+ [0x01E2F0, 0x01E2F9],
+ [0x01E8C7, 0x01E8CF],
+ [0x01E950, 0x01E959],
+ [0x01EC71, 0x01ECAB],
+ [0x01ECAD, 0x01ECAF],
+ [0x01ECB1, 0x01ECB4],
+ [0x01ED01, 0x01ED2D],
+ [0x01ED2F, 0x01ED3D],
+ [0x01F100, 0x01F10C],
+ [0x01FBF0, 0x01FBF9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Number}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Number}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=N}+$/u,
+ matchSymbols,
+ "\\p{General_Category=N}"
+);
+testPropertyEscapes(
+ /^\p{gc=Number}+$/u,
+ matchSymbols,
+ "\\p{gc=Number}"
+);
+testPropertyEscapes(
+ /^\p{gc=N}+$/u,
+ matchSymbols,
+ "\\p{gc=N}"
+);
+testPropertyEscapes(
+ /^\p{Number}+$/u,
+ matchSymbols,
+ "\\p{Number}"
+);
+testPropertyEscapes(
+ /^\p{N}+$/u,
+ matchSymbols,
+ "\\p{N}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x003250,
+ 0x016B5A,
+ 0x01ECAC,
+ 0x01ECB0,
+ 0x01ED2E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00002F],
+ [0x00003A, 0x0000B1],
+ [0x0000B4, 0x0000B8],
+ [0x0000BA, 0x0000BB],
+ [0x0000BF, 0x00065F],
+ [0x00066A, 0x0006EF],
+ [0x0006FA, 0x0007BF],
+ [0x0007CA, 0x000965],
+ [0x000970, 0x0009E5],
+ [0x0009F0, 0x0009F3],
+ [0x0009FA, 0x000A65],
+ [0x000A70, 0x000AE5],
+ [0x000AF0, 0x000B65],
+ [0x000B70, 0x000B71],
+ [0x000B78, 0x000BE5],
+ [0x000BF3, 0x000C65],
+ [0x000C70, 0x000C77],
+ [0x000C7F, 0x000CE5],
+ [0x000CF0, 0x000D57],
+ [0x000D5F, 0x000D65],
+ [0x000D79, 0x000DE5],
+ [0x000DF0, 0x000E4F],
+ [0x000E5A, 0x000ECF],
+ [0x000EDA, 0x000F1F],
+ [0x000F34, 0x00103F],
+ [0x00104A, 0x00108F],
+ [0x00109A, 0x001368],
+ [0x00137D, 0x0016ED],
+ [0x0016F1, 0x0017DF],
+ [0x0017EA, 0x0017EF],
+ [0x0017FA, 0x00180F],
+ [0x00181A, 0x001945],
+ [0x001950, 0x0019CF],
+ [0x0019DB, 0x001A7F],
+ [0x001A8A, 0x001A8F],
+ [0x001A9A, 0x001B4F],
+ [0x001B5A, 0x001BAF],
+ [0x001BBA, 0x001C3F],
+ [0x001C4A, 0x001C4F],
+ [0x001C5A, 0x00206F],
+ [0x002071, 0x002073],
+ [0x00207A, 0x00207F],
+ [0x00208A, 0x00214F],
+ [0x002183, 0x002184],
+ [0x00218A, 0x00245F],
+ [0x00249C, 0x0024E9],
+ [0x002500, 0x002775],
+ [0x002794, 0x002CFC],
+ [0x002CFE, 0x003006],
+ [0x003008, 0x003020],
+ [0x00302A, 0x003037],
+ [0x00303B, 0x003191],
+ [0x003196, 0x00321F],
+ [0x00322A, 0x003247],
+ [0x003260, 0x00327F],
+ [0x00328A, 0x0032B0],
+ [0x0032C0, 0x00A61F],
+ [0x00A62A, 0x00A6E5],
+ [0x00A6F0, 0x00A82F],
+ [0x00A836, 0x00A8CF],
+ [0x00A8DA, 0x00A8FF],
+ [0x00A90A, 0x00A9CF],
+ [0x00A9DA, 0x00A9EF],
+ [0x00A9FA, 0x00AA4F],
+ [0x00AA5A, 0x00ABEF],
+ [0x00ABFA, 0x00DBFF],
+ [0x00E000, 0x00FF0F],
+ [0x00FF1A, 0x010106],
+ [0x010134, 0x01013F],
+ [0x010179, 0x010189],
+ [0x01018C, 0x0102E0],
+ [0x0102FC, 0x01031F],
+ [0x010324, 0x010340],
+ [0x010342, 0x010349],
+ [0x01034B, 0x0103D0],
+ [0x0103D6, 0x01049F],
+ [0x0104AA, 0x010857],
+ [0x010860, 0x010878],
+ [0x010880, 0x0108A6],
+ [0x0108B0, 0x0108FA],
+ [0x010900, 0x010915],
+ [0x01091C, 0x0109BB],
+ [0x0109BE, 0x0109BF],
+ [0x0109D0, 0x0109D1],
+ [0x010A00, 0x010A3F],
+ [0x010A49, 0x010A7C],
+ [0x010A7F, 0x010A9C],
+ [0x010AA0, 0x010AEA],
+ [0x010AF0, 0x010B57],
+ [0x010B60, 0x010B77],
+ [0x010B80, 0x010BA8],
+ [0x010BB0, 0x010CF9],
+ [0x010D00, 0x010D2F],
+ [0x010D3A, 0x010E5F],
+ [0x010E7F, 0x010F1C],
+ [0x010F27, 0x010F50],
+ [0x010F55, 0x010FC4],
+ [0x010FCC, 0x011051],
+ [0x011070, 0x0110EF],
+ [0x0110FA, 0x011135],
+ [0x011140, 0x0111CF],
+ [0x0111DA, 0x0111E0],
+ [0x0111F5, 0x0112EF],
+ [0x0112FA, 0x01144F],
+ [0x01145A, 0x0114CF],
+ [0x0114DA, 0x01164F],
+ [0x01165A, 0x0116BF],
+ [0x0116CA, 0x01172F],
+ [0x01173C, 0x0118DF],
+ [0x0118F3, 0x01194F],
+ [0x01195A, 0x011C4F],
+ [0x011C6D, 0x011D4F],
+ [0x011D5A, 0x011D9F],
+ [0x011DAA, 0x011FBF],
+ [0x011FD5, 0x0123FF],
+ [0x01246F, 0x016A5F],
+ [0x016A6A, 0x016B4F],
+ [0x016B62, 0x016E7F],
+ [0x016E97, 0x01D2DF],
+ [0x01D2F4, 0x01D35F],
+ [0x01D379, 0x01D7CD],
+ [0x01D800, 0x01E13F],
+ [0x01E14A, 0x01E2EF],
+ [0x01E2FA, 0x01E8C6],
+ [0x01E8D0, 0x01E94F],
+ [0x01E95A, 0x01EC70],
+ [0x01ECB5, 0x01ED00],
+ [0x01ED3E, 0x01F0FF],
+ [0x01F10D, 0x01FBEF],
+ [0x01FBFA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Number}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Number}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=N}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=N}"
+);
+testPropertyEscapes(
+ /^\P{gc=Number}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Number}"
+);
+testPropertyEscapes(
+ /^\P{gc=N}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=N}"
+);
+testPropertyEscapes(
+ /^\P{Number}+$/u,
+ nonMatchSymbols,
+ "\\P{Number}"
+);
+testPropertyEscapes(
+ /^\P{N}+$/u,
+ nonMatchSymbols,
+ "\\P{N}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Open_Punctuation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Open_Punctuation.js
new file mode 100644
index 0000000000..6e7a62494e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Open_Punctuation.js
@@ -0,0 +1,242 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Open_Punctuation`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000028,
+ 0x00005B,
+ 0x00007B,
+ 0x000F3A,
+ 0x000F3C,
+ 0x00169B,
+ 0x00201A,
+ 0x00201E,
+ 0x002045,
+ 0x00207D,
+ 0x00208D,
+ 0x002308,
+ 0x00230A,
+ 0x002329,
+ 0x002768,
+ 0x00276A,
+ 0x00276C,
+ 0x00276E,
+ 0x002770,
+ 0x002772,
+ 0x002774,
+ 0x0027C5,
+ 0x0027E6,
+ 0x0027E8,
+ 0x0027EA,
+ 0x0027EC,
+ 0x0027EE,
+ 0x002983,
+ 0x002985,
+ 0x002987,
+ 0x002989,
+ 0x00298B,
+ 0x00298D,
+ 0x00298F,
+ 0x002991,
+ 0x002993,
+ 0x002995,
+ 0x002997,
+ 0x0029D8,
+ 0x0029DA,
+ 0x0029FC,
+ 0x002E22,
+ 0x002E24,
+ 0x002E26,
+ 0x002E28,
+ 0x002E42,
+ 0x003008,
+ 0x00300A,
+ 0x00300C,
+ 0x00300E,
+ 0x003010,
+ 0x003014,
+ 0x003016,
+ 0x003018,
+ 0x00301A,
+ 0x00301D,
+ 0x00FD3F,
+ 0x00FE17,
+ 0x00FE35,
+ 0x00FE37,
+ 0x00FE39,
+ 0x00FE3B,
+ 0x00FE3D,
+ 0x00FE3F,
+ 0x00FE41,
+ 0x00FE43,
+ 0x00FE47,
+ 0x00FE59,
+ 0x00FE5B,
+ 0x00FE5D,
+ 0x00FF08,
+ 0x00FF3B,
+ 0x00FF5B,
+ 0x00FF5F,
+ 0x00FF62
+ ],
+ ranges: []
+});
+testPropertyEscapes(
+ /^\p{General_Category=Open_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Open_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Ps}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Ps}"
+);
+testPropertyEscapes(
+ /^\p{gc=Open_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{gc=Open_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{gc=Ps}+$/u,
+ matchSymbols,
+ "\\p{gc=Ps}"
+);
+testPropertyEscapes(
+ /^\p{Open_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{Open_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{Ps}+$/u,
+ matchSymbols,
+ "\\p{Ps}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000F3B,
+ 0x002309,
+ 0x002769,
+ 0x00276B,
+ 0x00276D,
+ 0x00276F,
+ 0x002771,
+ 0x002773,
+ 0x0027E7,
+ 0x0027E9,
+ 0x0027EB,
+ 0x0027ED,
+ 0x002984,
+ 0x002986,
+ 0x002988,
+ 0x00298A,
+ 0x00298C,
+ 0x00298E,
+ 0x002990,
+ 0x002992,
+ 0x002994,
+ 0x002996,
+ 0x0029D9,
+ 0x002E23,
+ 0x002E25,
+ 0x002E27,
+ 0x003009,
+ 0x00300B,
+ 0x00300D,
+ 0x00300F,
+ 0x003015,
+ 0x003017,
+ 0x003019,
+ 0x00FE36,
+ 0x00FE38,
+ 0x00FE3A,
+ 0x00FE3C,
+ 0x00FE3E,
+ 0x00FE40,
+ 0x00FE42,
+ 0x00FE5A,
+ 0x00FE5C
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000027],
+ [0x000029, 0x00005A],
+ [0x00005C, 0x00007A],
+ [0x00007C, 0x000F39],
+ [0x000F3D, 0x00169A],
+ [0x00169C, 0x002019],
+ [0x00201B, 0x00201D],
+ [0x00201F, 0x002044],
+ [0x002046, 0x00207C],
+ [0x00207E, 0x00208C],
+ [0x00208E, 0x002307],
+ [0x00230B, 0x002328],
+ [0x00232A, 0x002767],
+ [0x002775, 0x0027C4],
+ [0x0027C6, 0x0027E5],
+ [0x0027EF, 0x002982],
+ [0x002998, 0x0029D7],
+ [0x0029DB, 0x0029FB],
+ [0x0029FD, 0x002E21],
+ [0x002E29, 0x002E41],
+ [0x002E43, 0x003007],
+ [0x003011, 0x003013],
+ [0x00301B, 0x00301C],
+ [0x00301E, 0x00DBFF],
+ [0x00E000, 0x00FD3E],
+ [0x00FD40, 0x00FE16],
+ [0x00FE18, 0x00FE34],
+ [0x00FE44, 0x00FE46],
+ [0x00FE48, 0x00FE58],
+ [0x00FE5E, 0x00FF07],
+ [0x00FF09, 0x00FF3A],
+ [0x00FF3C, 0x00FF5A],
+ [0x00FF5C, 0x00FF5E],
+ [0x00FF60, 0x00FF61],
+ [0x00FF63, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Open_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Open_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Ps}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Ps}"
+);
+testPropertyEscapes(
+ /^\P{gc=Open_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Open_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{gc=Ps}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Ps}"
+);
+testPropertyEscapes(
+ /^\P{Open_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{Open_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{Ps}+$/u,
+ nonMatchSymbols,
+ "\\P{Ps}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js
new file mode 100644
index 0000000000..3640e284dd
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js
@@ -0,0 +1,1449 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Other`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AD,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x000530,
+ 0x000590,
+ 0x0006DD,
+ 0x00083F,
+ 0x00085F,
+ 0x0008B5,
+ 0x0008E2,
+ 0x000984,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE,
+ 0x000A04,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A3D,
+ 0x000A5D,
+ 0x000A84,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000AC6,
+ 0x000ACA,
+ 0x000B00,
+ 0x000B04,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000BC9,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C45,
+ 0x000C49,
+ 0x000C57,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CC5,
+ 0x000CC9,
+ 0x000CDF,
+ 0x000CF0,
+ 0x000D0D,
+ 0x000D11,
+ 0x000D45,
+ 0x000D49,
+ 0x000D80,
+ 0x000D84,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000DD5,
+ 0x000DD7,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EC5,
+ 0x000EC7,
+ 0x000F48,
+ 0x000F98,
+ 0x000FBD,
+ 0x000FCD,
+ 0x0010C6,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x00170D,
+ 0x00176D,
+ 0x001771,
+ 0x00191F,
+ 0x001A5F,
+ 0x001DFA,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FC5,
+ 0x001FDC,
+ 0x001FF5,
+ 0x001FFF,
+ 0x00208F,
+ 0x002B96,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x002DDF,
+ 0x002E9A,
+ 0x003040,
+ 0x003130,
+ 0x00318F,
+ 0x00321F,
+ 0x00A9CE,
+ 0x00A9FF,
+ 0x00AB27,
+ 0x00AB2F,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE53,
+ 0x00FE67,
+ 0x00FE75,
+ 0x00FFE7,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x01018F,
+ 0x01039E,
+ 0x010809,
+ 0x010836,
+ 0x010856,
+ 0x0108F3,
+ 0x010A04,
+ 0x010A14,
+ 0x010A18,
+ 0x010E7F,
+ 0x010EAA,
+ 0x0110BD,
+ 0x011135,
+ 0x0111E0,
+ 0x011212,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x011304,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x01133A,
+ 0x01145C,
+ 0x011914,
+ 0x011917,
+ 0x011936,
+ 0x011C09,
+ 0x011C37,
+ 0x011CA8,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D3B,
+ 0x011D3E,
+ 0x011D66,
+ 0x011D69,
+ 0x011D8F,
+ 0x011D92,
+ 0x01246F,
+ 0x016A5F,
+ 0x016B5A,
+ 0x016B62,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01DAA0,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA,
+ 0x01F0C0,
+ 0x01F0D0,
+ 0x01F979,
+ 0x01F9CC,
+ 0x01FB93
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00001F],
+ [0x00007F, 0x00009F],
+ [0x000378, 0x000379],
+ [0x000380, 0x000383],
+ [0x000557, 0x000558],
+ [0x00058B, 0x00058C],
+ [0x0005C8, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F5, 0x000605],
+ [0x00061C, 0x00061D],
+ [0x00070E, 0x00070F],
+ [0x00074B, 0x00074C],
+ [0x0007B2, 0x0007BF],
+ [0x0007FB, 0x0007FC],
+ [0x00082E, 0x00082F],
+ [0x00085C, 0x00085D],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x0008D2],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BB],
+ [0x0009C5, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CF, 0x0009D6],
+ [0x0009D8, 0x0009DB],
+ [0x0009E4, 0x0009E5],
+ [0x0009FF, 0x000A00],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A3B],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A58],
+ [0x000A5F, 0x000A65],
+ [0x000A77, 0x000A80],
+ [0x000ABA, 0x000ABB],
+ [0x000ACE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE4, 0x000AE5],
+ [0x000AF2, 0x000AF8],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3B],
+ [0x000B45, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4E, 0x000B54],
+ [0x000B58, 0x000B5B],
+ [0x000B64, 0x000B65],
+ [0x000B78, 0x000B81],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BBD],
+ [0x000BC3, 0x000BC5],
+ [0x000BCE, 0x000BCF],
+ [0x000BD1, 0x000BD6],
+ [0x000BD8, 0x000BE5],
+ [0x000BFB, 0x000BFF],
+ [0x000C3A, 0x000C3C],
+ [0x000C4E, 0x000C54],
+ [0x000C5B, 0x000C5F],
+ [0x000C64, 0x000C65],
+ [0x000C70, 0x000C76],
+ [0x000CBA, 0x000CBB],
+ [0x000CCE, 0x000CD4],
+ [0x000CD7, 0x000CDD],
+ [0x000CE4, 0x000CE5],
+ [0x000CF3, 0x000CFF],
+ [0x000D50, 0x000D53],
+ [0x000D64, 0x000D65],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000DC9],
+ [0x000DCB, 0x000DCE],
+ [0x000DE0, 0x000DE5],
+ [0x000DF0, 0x000DF1],
+ [0x000DF5, 0x000E00],
+ [0x000E3B, 0x000E3E],
+ [0x000E5C, 0x000E80],
+ [0x000EBE, 0x000EBF],
+ [0x000ECE, 0x000ECF],
+ [0x000EDA, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F6D, 0x000F70],
+ [0x000FDB, 0x000FFF],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00135C],
+ [0x00137D, 0x00137F],
+ [0x00139A, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x0013FF],
+ [0x00169D, 0x00169F],
+ [0x0016F9, 0x0016FF],
+ [0x001715, 0x00171F],
+ [0x001737, 0x00173F],
+ [0x001754, 0x00175F],
+ [0x001774, 0x00177F],
+ [0x0017DE, 0x0017DF],
+ [0x0017EA, 0x0017EF],
+ [0x0017FA, 0x0017FF],
+ [0x00180E, 0x00180F],
+ [0x00181A, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00192C, 0x00192F],
+ [0x00193C, 0x00193F],
+ [0x001941, 0x001943],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019CF],
+ [0x0019DB, 0x0019DD],
+ [0x001A1C, 0x001A1D],
+ [0x001A7D, 0x001A7E],
+ [0x001A8A, 0x001A8F],
+ [0x001A9A, 0x001A9F],
+ [0x001AAE, 0x001AAF],
+ [0x001AC1, 0x001AFF],
+ [0x001B4C, 0x001B4F],
+ [0x001B7D, 0x001B7F],
+ [0x001BF4, 0x001BFB],
+ [0x001C38, 0x001C3A],
+ [0x001C4A, 0x001C4C],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC8, 0x001CCF],
+ [0x001CFB, 0x001CFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FD4, 0x001FD5],
+ [0x001FF0, 0x001FF1],
+ [0x00200B, 0x00200F],
+ [0x00202A, 0x00202E],
+ [0x002060, 0x00206F],
+ [0x002072, 0x002073],
+ [0x00209D, 0x00209F],
+ [0x0020C0, 0x0020CF],
+ [0x0020F1, 0x0020FF],
+ [0x00218C, 0x00218F],
+ [0x002427, 0x00243F],
+ [0x00244B, 0x00245F],
+ [0x002B74, 0x002B75],
+ [0x002CF4, 0x002CF8],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D71, 0x002D7E],
+ [0x002D97, 0x002D9F],
+ [0x002E53, 0x002E7F],
+ [0x002EF4, 0x002EFF],
+ [0x002FD6, 0x002FEF],
+ [0x002FFC, 0x002FFF],
+ [0x003097, 0x003098],
+ [0x003100, 0x003104],
+ [0x0031E4, 0x0031EF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A48F],
+ [0x00A4C7, 0x00A4CF],
+ [0x00A62C, 0x00A63F],
+ [0x00A6F8, 0x00A6FF],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A82D, 0x00A82F],
+ [0x00A83A, 0x00A83F],
+ [0x00A878, 0x00A87F],
+ [0x00A8C6, 0x00A8CD],
+ [0x00A8DA, 0x00A8DF],
+ [0x00A954, 0x00A95E],
+ [0x00A97D, 0x00A97F],
+ [0x00A9DA, 0x00A9DD],
+ [0x00AA37, 0x00AA3F],
+ [0x00AA4E, 0x00AA4F],
+ [0x00AA5A, 0x00AA5B],
+ [0x00AAC3, 0x00AADA],
+ [0x00AAF7, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB6C, 0x00AB6F],
+ [0x00ABEE, 0x00ABEF],
+ [0x00ABFA, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBC2, 0x00FBD2],
+ [0x00FD40, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFE, 0x00FDFF],
+ [0x00FE1A, 0x00FE1F],
+ [0x00FE6C, 0x00FE6F],
+ [0x00FEFD, 0x00FF00],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFDF],
+ [0x00FFEF, 0x00FFFB],
+ [0x00FFFE, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x0100FF],
+ [0x010103, 0x010106],
+ [0x010134, 0x010136],
+ [0x01019D, 0x01019F],
+ [0x0101A1, 0x0101CF],
+ [0x0101FE, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102DF],
+ [0x0102FC, 0x0102FF],
+ [0x010324, 0x01032C],
+ [0x01034B, 0x01034F],
+ [0x01037B, 0x01037F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x0103FF],
+ [0x01049E, 0x01049F],
+ [0x0104AA, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x01056E],
+ [0x010570, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x01089F, 0x0108A6],
+ [0x0108B0, 0x0108DF],
+ [0x0108F6, 0x0108FA],
+ [0x01091C, 0x01091E],
+ [0x01093A, 0x01093E],
+ [0x010940, 0x01097F],
+ [0x0109B8, 0x0109BB],
+ [0x0109D0, 0x0109D1],
+ [0x010A07, 0x010A0B],
+ [0x010A36, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A49, 0x010A4F],
+ [0x010A59, 0x010A5F],
+ [0x010AA0, 0x010ABF],
+ [0x010AE7, 0x010AEA],
+ [0x010AF7, 0x010AFF],
+ [0x010B36, 0x010B38],
+ [0x010B56, 0x010B57],
+ [0x010B73, 0x010B77],
+ [0x010B92, 0x010B98],
+ [0x010B9D, 0x010BA8],
+ [0x010BB0, 0x010BFF],
+ [0x010C49, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CF9],
+ [0x010D28, 0x010D2F],
+ [0x010D3A, 0x010E5F],
+ [0x010EAE, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F28, 0x010F2F],
+ [0x010F5A, 0x010FAF],
+ [0x010FCC, 0x010FDF],
+ [0x010FF7, 0x010FFF],
+ [0x01104E, 0x011051],
+ [0x011070, 0x01107E],
+ [0x0110C2, 0x0110CF],
+ [0x0110E9, 0x0110EF],
+ [0x0110FA, 0x0110FF],
+ [0x011148, 0x01114F],
+ [0x011177, 0x01117F],
+ [0x0111F5, 0x0111FF],
+ [0x01123F, 0x01127F],
+ [0x0112AA, 0x0112AF],
+ [0x0112EB, 0x0112EF],
+ [0x0112FA, 0x0112FF],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134E, 0x01134F],
+ [0x011351, 0x011356],
+ [0x011358, 0x01135C],
+ [0x011364, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x0113FF],
+ [0x011462, 0x01147F],
+ [0x0114C8, 0x0114CF],
+ [0x0114DA, 0x01157F],
+ [0x0115B6, 0x0115B7],
+ [0x0115DE, 0x0115FF],
+ [0x011645, 0x01164F],
+ [0x01165A, 0x01165F],
+ [0x01166D, 0x01167F],
+ [0x0116B9, 0x0116BF],
+ [0x0116CA, 0x0116FF],
+ [0x01171B, 0x01171C],
+ [0x01172C, 0x01172F],
+ [0x011740, 0x0117FF],
+ [0x01183C, 0x01189F],
+ [0x0118F3, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011939, 0x01193A],
+ [0x011947, 0x01194F],
+ [0x01195A, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D8, 0x0119D9],
+ [0x0119E5, 0x0119FF],
+ [0x011A48, 0x011A4F],
+ [0x011AA3, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C46, 0x011C4F],
+ [0x011C6D, 0x011C6F],
+ [0x011C90, 0x011C91],
+ [0x011CB7, 0x011CFF],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D4F],
+ [0x011D5A, 0x011D5F],
+ [0x011D99, 0x011D9F],
+ [0x011DAA, 0x011EDF],
+ [0x011EF9, 0x011FAF],
+ [0x011FB1, 0x011FBF],
+ [0x011FF2, 0x011FFE],
+ [0x01239A, 0x0123FF],
+ [0x012475, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x01342F, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A6A, 0x016A6D],
+ [0x016A70, 0x016ACF],
+ [0x016AEE, 0x016AEF],
+ [0x016AF6, 0x016AFF],
+ [0x016B46, 0x016B4F],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016E3F],
+ [0x016E9B, 0x016EFF],
+ [0x016F4B, 0x016F4E],
+ [0x016F88, 0x016F8E],
+ [0x016FA0, 0x016FDF],
+ [0x016FE5, 0x016FEF],
+ [0x016FF2, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01BC9B],
+ [0x01BCA0, 0x01CFFF],
+ [0x01D0F6, 0x01D0FF],
+ [0x01D127, 0x01D128],
+ [0x01D173, 0x01D17A],
+ [0x01D1E9, 0x01D1FF],
+ [0x01D246, 0x01D2DF],
+ [0x01D2F4, 0x01D2FF],
+ [0x01D357, 0x01D35F],
+ [0x01D379, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01D7CD],
+ [0x01DA8C, 0x01DA9A],
+ [0x01DAB0, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x01E0FF],
+ [0x01E12D, 0x01E12F],
+ [0x01E13E, 0x01E13F],
+ [0x01E14A, 0x01E14D],
+ [0x01E150, 0x01E2BF],
+ [0x01E2FA, 0x01E2FE],
+ [0x01E300, 0x01E7FF],
+ [0x01E8C5, 0x01E8C6],
+ [0x01E8D7, 0x01E8FF],
+ [0x01E94C, 0x01E94F],
+ [0x01E95A, 0x01E95D],
+ [0x01E960, 0x01EC70],
+ [0x01ECB5, 0x01ED00],
+ [0x01ED3E, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01EEEF],
+ [0x01EEF2, 0x01EFFF],
+ [0x01F02C, 0x01F02F],
+ [0x01F094, 0x01F09F],
+ [0x01F0AF, 0x01F0B0],
+ [0x01F0F6, 0x01F0FF],
+ [0x01F1AE, 0x01F1E5],
+ [0x01F203, 0x01F20F],
+ [0x01F23C, 0x01F23F],
+ [0x01F249, 0x01F24F],
+ [0x01F252, 0x01F25F],
+ [0x01F266, 0x01F2FF],
+ [0x01F6D8, 0x01F6DF],
+ [0x01F6ED, 0x01F6EF],
+ [0x01F6FD, 0x01F6FF],
+ [0x01F774, 0x01F77F],
+ [0x01F7D9, 0x01F7DF],
+ [0x01F7EC, 0x01F7FF],
+ [0x01F80C, 0x01F80F],
+ [0x01F848, 0x01F84F],
+ [0x01F85A, 0x01F85F],
+ [0x01F888, 0x01F88F],
+ [0x01F8AE, 0x01F8AF],
+ [0x01F8B2, 0x01F8FF],
+ [0x01FA54, 0x01FA5F],
+ [0x01FA6E, 0x01FA6F],
+ [0x01FA75, 0x01FA77],
+ [0x01FA7B, 0x01FA7F],
+ [0x01FA87, 0x01FA8F],
+ [0x01FAA9, 0x01FAAF],
+ [0x01FAB7, 0x01FABF],
+ [0x01FAC3, 0x01FACF],
+ [0x01FAD7, 0x01FAFF],
+ [0x01FBCB, 0x01FBEF],
+ [0x01FBFA, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x0E00FF],
+ [0x0E01F0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Other}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Other}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=C}+$/u,
+ matchSymbols,
+ "\\p{General_Category=C}"
+);
+testPropertyEscapes(
+ /^\p{gc=Other}+$/u,
+ matchSymbols,
+ "\\p{gc=Other}"
+);
+testPropertyEscapes(
+ /^\p{gc=C}+$/u,
+ matchSymbols,
+ "\\p{gc=C}"
+);
+testPropertyEscapes(
+ /^\p{Other}+$/u,
+ matchSymbols,
+ "\\p{Other}"
+);
+testPropertyEscapes(
+ /^\p{C}+$/u,
+ matchSymbols,
+ "\\p{C}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00038C,
+ 0x00085E,
+ 0x0009B2,
+ 0x0009D7,
+ 0x000A3C,
+ 0x000A51,
+ 0x000A5E,
+ 0x000AD0,
+ 0x000B9C,
+ 0x000BD0,
+ 0x000BD7,
+ 0x000CDE,
+ 0x000DBD,
+ 0x000DCA,
+ 0x000DD6,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EC6,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001258,
+ 0x0012C0,
+ 0x001940,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x002D27,
+ 0x002D2D,
+ 0x00FB3E,
+ 0x0101A0,
+ 0x01056F,
+ 0x010808,
+ 0x01083C,
+ 0x01093F,
+ 0x011288,
+ 0x011350,
+ 0x011357,
+ 0x011909,
+ 0x011D3A,
+ 0x011FB0,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01E2FF,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x000020, 0x00007E],
+ [0x0000A0, 0x0000AC],
+ [0x0000AE, 0x000377],
+ [0x00037A, 0x00037F],
+ [0x000384, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000559, 0x00058A],
+ [0x00058D, 0x00058F],
+ [0x000591, 0x0005C7],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F4],
+ [0x000606, 0x00061B],
+ [0x00061E, 0x0006DC],
+ [0x0006DE, 0x00070D],
+ [0x000710, 0x00074A],
+ [0x00074D, 0x0007B1],
+ [0x0007C0, 0x0007FA],
+ [0x0007FD, 0x00082D],
+ [0x000830, 0x00083E],
+ [0x000840, 0x00085B],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x0008D3, 0x0008E1],
+ [0x0008E3, 0x000983],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009BC, 0x0009C4],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CE],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E3],
+ [0x0009E6, 0x0009FE],
+ [0x000A01, 0x000A03],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A3E, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A59, 0x000A5C],
+ [0x000A66, 0x000A76],
+ [0x000A81, 0x000A83],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000ABC, 0x000AC5],
+ [0x000AC7, 0x000AC9],
+ [0x000ACB, 0x000ACD],
+ [0x000AE0, 0x000AE3],
+ [0x000AE6, 0x000AF1],
+ [0x000AF9, 0x000AFF],
+ [0x000B01, 0x000B03],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B3C, 0x000B44],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4D],
+ [0x000B55, 0x000B57],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B63],
+ [0x000B66, 0x000B77],
+ [0x000B82, 0x000B83],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000BBE, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCD],
+ [0x000BE6, 0x000BFA],
+ [0x000C00, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C3D, 0x000C44],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C63],
+ [0x000C66, 0x000C6F],
+ [0x000C77, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CBC, 0x000CC4],
+ [0x000CC6, 0x000CC8],
+ [0x000CCA, 0x000CCD],
+ [0x000CD5, 0x000CD6],
+ [0x000CE0, 0x000CE3],
+ [0x000CE6, 0x000CEF],
+ [0x000CF1, 0x000CF2],
+ [0x000D00, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D44],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4F],
+ [0x000D54, 0x000D63],
+ [0x000D66, 0x000D7F],
+ [0x000D81, 0x000D83],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000DCF, 0x000DD4],
+ [0x000DD8, 0x000DDF],
+ [0x000DE6, 0x000DEF],
+ [0x000DF2, 0x000DF4],
+ [0x000E01, 0x000E3A],
+ [0x000E3F, 0x000E5B],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EBD],
+ [0x000EC0, 0x000EC4],
+ [0x000EC8, 0x000ECD],
+ [0x000ED0, 0x000ED9],
+ [0x000EDC, 0x000EDF],
+ [0x000F00, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F71, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x000FBE, 0x000FCC],
+ [0x000FCE, 0x000FDA],
+ [0x001000, 0x0010C5],
+ [0x0010D0, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x00135D, 0x00137C],
+ [0x001380, 0x001399],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001400, 0x00169C],
+ [0x0016A0, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001714],
+ [0x001720, 0x001736],
+ [0x001740, 0x001753],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001772, 0x001773],
+ [0x001780, 0x0017DD],
+ [0x0017E0, 0x0017E9],
+ [0x0017F0, 0x0017F9],
+ [0x001800, 0x00180D],
+ [0x001810, 0x001819],
+ [0x001820, 0x001878],
+ [0x001880, 0x0018AA],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001920, 0x00192B],
+ [0x001930, 0x00193B],
+ [0x001944, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x0019D0, 0x0019DA],
+ [0x0019DE, 0x001A1B],
+ [0x001A1E, 0x001A5E],
+ [0x001A60, 0x001A7C],
+ [0x001A7F, 0x001A89],
+ [0x001A90, 0x001A99],
+ [0x001AA0, 0x001AAD],
+ [0x001AB0, 0x001AC0],
+ [0x001B00, 0x001B4B],
+ [0x001B50, 0x001B7C],
+ [0x001B80, 0x001BF3],
+ [0x001BFC, 0x001C37],
+ [0x001C3B, 0x001C49],
+ [0x001C4D, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CC7],
+ [0x001CD0, 0x001CFA],
+ [0x001D00, 0x001DF9],
+ [0x001DFB, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FC4],
+ [0x001FC6, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FDD, 0x001FEF],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFE],
+ [0x002000, 0x00200A],
+ [0x002010, 0x002029],
+ [0x00202F, 0x00205F],
+ [0x002070, 0x002071],
+ [0x002074, 0x00208E],
+ [0x002090, 0x00209C],
+ [0x0020A0, 0x0020BF],
+ [0x0020D0, 0x0020F0],
+ [0x002100, 0x00218B],
+ [0x002190, 0x002426],
+ [0x002440, 0x00244A],
+ [0x002460, 0x002B73],
+ [0x002B76, 0x002B95],
+ [0x002B97, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CF3],
+ [0x002CF9, 0x002D25],
+ [0x002D30, 0x002D67],
+ [0x002D6F, 0x002D70],
+ [0x002D7F, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x002DE0, 0x002E52],
+ [0x002E80, 0x002E99],
+ [0x002E9B, 0x002EF3],
+ [0x002F00, 0x002FD5],
+ [0x002FF0, 0x002FFB],
+ [0x003000, 0x00303F],
+ [0x003041, 0x003096],
+ [0x003099, 0x0030FF],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x003190, 0x0031E3],
+ [0x0031F0, 0x00321E],
+ [0x003220, 0x009FFC],
+ [0x00A000, 0x00A48C],
+ [0x00A490, 0x00A4C6],
+ [0x00A4D0, 0x00A62B],
+ [0x00A640, 0x00A6F7],
+ [0x00A700, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A82C],
+ [0x00A830, 0x00A839],
+ [0x00A840, 0x00A877],
+ [0x00A880, 0x00A8C5],
+ [0x00A8CE, 0x00A8D9],
+ [0x00A8E0, 0x00A953],
+ [0x00A95F, 0x00A97C],
+ [0x00A980, 0x00A9CD],
+ [0x00A9CF, 0x00A9D9],
+ [0x00A9DE, 0x00A9FE],
+ [0x00AA00, 0x00AA36],
+ [0x00AA40, 0x00AA4D],
+ [0x00AA50, 0x00AA59],
+ [0x00AA5C, 0x00AAC2],
+ [0x00AADB, 0x00AAF6],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00AB30, 0x00AB6B],
+ [0x00AB70, 0x00ABED],
+ [0x00ABF0, 0x00ABF9],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1D, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBC1],
+ [0x00FBD3, 0x00FD3F],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFD],
+ [0x00FE00, 0x00FE19],
+ [0x00FE20, 0x00FE52],
+ [0x00FE54, 0x00FE66],
+ [0x00FE68, 0x00FE6B],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x00FF01, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x00FFE0, 0x00FFE6],
+ [0x00FFE8, 0x00FFEE],
+ [0x00FFFC, 0x00FFFD],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010100, 0x010102],
+ [0x010107, 0x010133],
+ [0x010137, 0x01018E],
+ [0x010190, 0x01019C],
+ [0x0101D0, 0x0101FD],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x0102E0, 0x0102FB],
+ [0x010300, 0x010323],
+ [0x01032D, 0x01034A],
+ [0x010350, 0x01037A],
+ [0x010380, 0x01039D],
+ [0x01039F, 0x0103C3],
+ [0x0103C8, 0x0103D5],
+ [0x010400, 0x01049D],
+ [0x0104A0, 0x0104A9],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010857, 0x01089E],
+ [0x0108A7, 0x0108AF],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x0108FB, 0x01091B],
+ [0x01091F, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BC, 0x0109CF],
+ [0x0109D2, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A38, 0x010A3A],
+ [0x010A3F, 0x010A48],
+ [0x010A50, 0x010A58],
+ [0x010A60, 0x010A9F],
+ [0x010AC0, 0x010AE6],
+ [0x010AEB, 0x010AF6],
+ [0x010B00, 0x010B35],
+ [0x010B39, 0x010B55],
+ [0x010B58, 0x010B72],
+ [0x010B78, 0x010B91],
+ [0x010B99, 0x010B9C],
+ [0x010BA9, 0x010BAF],
+ [0x010C00, 0x010C48],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010CFA, 0x010D27],
+ [0x010D30, 0x010D39],
+ [0x010E60, 0x010E7E],
+ [0x010E80, 0x010EA9],
+ [0x010EAB, 0x010EAD],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F27],
+ [0x010F30, 0x010F59],
+ [0x010FB0, 0x010FCB],
+ [0x010FE0, 0x010FF6],
+ [0x011000, 0x01104D],
+ [0x011052, 0x01106F],
+ [0x01107F, 0x0110BC],
+ [0x0110BE, 0x0110C1],
+ [0x0110D0, 0x0110E8],
+ [0x0110F0, 0x0110F9],
+ [0x011100, 0x011134],
+ [0x011136, 0x011147],
+ [0x011150, 0x011176],
+ [0x011180, 0x0111DF],
+ [0x0111E1, 0x0111F4],
+ [0x011200, 0x011211],
+ [0x011213, 0x01123E],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A9],
+ [0x0112B0, 0x0112EA],
+ [0x0112F0, 0x0112F9],
+ [0x011300, 0x011303],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01133B, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134D],
+ [0x01135D, 0x011363],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x011400, 0x01145B],
+ [0x01145D, 0x011461],
+ [0x011480, 0x0114C7],
+ [0x0114D0, 0x0114D9],
+ [0x011580, 0x0115B5],
+ [0x0115B8, 0x0115DD],
+ [0x011600, 0x011644],
+ [0x011650, 0x011659],
+ [0x011660, 0x01166C],
+ [0x011680, 0x0116B8],
+ [0x0116C0, 0x0116C9],
+ [0x011700, 0x01171A],
+ [0x01171D, 0x01172B],
+ [0x011730, 0x01173F],
+ [0x011800, 0x01183B],
+ [0x0118A0, 0x0118F2],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x011935],
+ [0x011937, 0x011938],
+ [0x01193B, 0x011946],
+ [0x011950, 0x011959],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D7],
+ [0x0119DA, 0x0119E4],
+ [0x011A00, 0x011A47],
+ [0x011A50, 0x011AA2],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C36],
+ [0x011C38, 0x011C45],
+ [0x011C50, 0x011C6C],
+ [0x011C70, 0x011C8F],
+ [0x011C92, 0x011CA7],
+ [0x011CA9, 0x011CB6],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D47],
+ [0x011D50, 0x011D59],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D8E],
+ [0x011D90, 0x011D91],
+ [0x011D93, 0x011D98],
+ [0x011DA0, 0x011DA9],
+ [0x011EE0, 0x011EF8],
+ [0x011FC0, 0x011FF1],
+ [0x011FFF, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012470, 0x012474],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016A60, 0x016A69],
+ [0x016A6E, 0x016A6F],
+ [0x016AD0, 0x016AED],
+ [0x016AF0, 0x016AF5],
+ [0x016B00, 0x016B45],
+ [0x016B50, 0x016B59],
+ [0x016B5B, 0x016B61],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016E40, 0x016E9A],
+ [0x016F00, 0x016F4A],
+ [0x016F4F, 0x016F87],
+ [0x016F8F, 0x016F9F],
+ [0x016FE0, 0x016FE4],
+ [0x016FF0, 0x016FF1],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01BC9C, 0x01BC9F],
+ [0x01D000, 0x01D0F5],
+ [0x01D100, 0x01D126],
+ [0x01D129, 0x01D172],
+ [0x01D17B, 0x01D1E8],
+ [0x01D200, 0x01D245],
+ [0x01D2E0, 0x01D2F3],
+ [0x01D300, 0x01D356],
+ [0x01D360, 0x01D378],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D7CB],
+ [0x01D7CE, 0x01DA8B],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A],
+ [0x01E100, 0x01E12C],
+ [0x01E130, 0x01E13D],
+ [0x01E140, 0x01E149],
+ [0x01E14E, 0x01E14F],
+ [0x01E2C0, 0x01E2F9],
+ [0x01E800, 0x01E8C4],
+ [0x01E8C7, 0x01E8D6],
+ [0x01E900, 0x01E94B],
+ [0x01E950, 0x01E959],
+ [0x01E95E, 0x01E95F],
+ [0x01EC71, 0x01ECB4],
+ [0x01ED01, 0x01ED3D],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01EEF0, 0x01EEF1],
+ [0x01F000, 0x01F02B],
+ [0x01F030, 0x01F093],
+ [0x01F0A0, 0x01F0AE],
+ [0x01F0B1, 0x01F0BF],
+ [0x01F0C1, 0x01F0CF],
+ [0x01F0D1, 0x01F0F5],
+ [0x01F100, 0x01F1AD],
+ [0x01F1E6, 0x01F202],
+ [0x01F210, 0x01F23B],
+ [0x01F240, 0x01F248],
+ [0x01F250, 0x01F251],
+ [0x01F260, 0x01F265],
+ [0x01F300, 0x01F6D7],
+ [0x01F6E0, 0x01F6EC],
+ [0x01F6F0, 0x01F6FC],
+ [0x01F700, 0x01F773],
+ [0x01F780, 0x01F7D8],
+ [0x01F7E0, 0x01F7EB],
+ [0x01F800, 0x01F80B],
+ [0x01F810, 0x01F847],
+ [0x01F850, 0x01F859],
+ [0x01F860, 0x01F887],
+ [0x01F890, 0x01F8AD],
+ [0x01F8B0, 0x01F8B1],
+ [0x01F900, 0x01F978],
+ [0x01F97A, 0x01F9CB],
+ [0x01F9CD, 0x01FA53],
+ [0x01FA60, 0x01FA6D],
+ [0x01FA70, 0x01FA74],
+ [0x01FA78, 0x01FA7A],
+ [0x01FA80, 0x01FA86],
+ [0x01FA90, 0x01FAA8],
+ [0x01FAB0, 0x01FAB6],
+ [0x01FAC0, 0x01FAC2],
+ [0x01FAD0, 0x01FAD6],
+ [0x01FB00, 0x01FB92],
+ [0x01FB94, 0x01FBCA],
+ [0x01FBF0, 0x01FBF9],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A],
+ [0x0E0100, 0x0E01EF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Other}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Other}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=C}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=C}"
+);
+testPropertyEscapes(
+ /^\P{gc=Other}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Other}"
+);
+testPropertyEscapes(
+ /^\P{gc=C}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=C}"
+);
+testPropertyEscapes(
+ /^\P{Other}+$/u,
+ nonMatchSymbols,
+ "\\P{Other}"
+);
+testPropertyEscapes(
+ /^\P{C}+$/u,
+ nonMatchSymbols,
+ "\\P{C}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js
new file mode 100644
index 0000000000..e950fb7e76
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js
@@ -0,0 +1,1071 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Other_Letter`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000BA,
+ 0x0001BB,
+ 0x000294,
+ 0x0006D5,
+ 0x0006FF,
+ 0x000710,
+ 0x0007B1,
+ 0x00093D,
+ 0x000950,
+ 0x0009B2,
+ 0x0009BD,
+ 0x0009CE,
+ 0x0009FC,
+ 0x000A5E,
+ 0x000ABD,
+ 0x000AD0,
+ 0x000AF9,
+ 0x000B3D,
+ 0x000B71,
+ 0x000B83,
+ 0x000B9C,
+ 0x000BD0,
+ 0x000C3D,
+ 0x000C80,
+ 0x000CBD,
+ 0x000CDE,
+ 0x000D3D,
+ 0x000D4E,
+ 0x000DBD,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EBD,
+ 0x000F00,
+ 0x00103F,
+ 0x001061,
+ 0x00108E,
+ 0x001258,
+ 0x0012C0,
+ 0x0017DC,
+ 0x0018AA,
+ 0x001CFA,
+ 0x003006,
+ 0x00303C,
+ 0x00309F,
+ 0x0030FF,
+ 0x00A66E,
+ 0x00A78F,
+ 0x00A7F7,
+ 0x00A8FB,
+ 0x00AA7A,
+ 0x00AAB1,
+ 0x00AAC0,
+ 0x00AAC2,
+ 0x00AAF2,
+ 0x00FB1D,
+ 0x00FB3E,
+ 0x010808,
+ 0x01083C,
+ 0x010A00,
+ 0x010F27,
+ 0x011144,
+ 0x011147,
+ 0x011176,
+ 0x0111DA,
+ 0x0111DC,
+ 0x011288,
+ 0x01133D,
+ 0x011350,
+ 0x0114C7,
+ 0x011644,
+ 0x0116B8,
+ 0x011909,
+ 0x01193F,
+ 0x011941,
+ 0x0119E1,
+ 0x0119E3,
+ 0x011A00,
+ 0x011A3A,
+ 0x011A50,
+ 0x011A9D,
+ 0x011C40,
+ 0x011D46,
+ 0x011D98,
+ 0x011FB0,
+ 0x016F50,
+ 0x01E14E,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x0001C0, 0x0001C3],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F2],
+ [0x000620, 0x00063F],
+ [0x000641, 0x00064A],
+ [0x00066E, 0x00066F],
+ [0x000671, 0x0006D3],
+ [0x0006EE, 0x0006EF],
+ [0x0006FA, 0x0006FC],
+ [0x000712, 0x00072F],
+ [0x00074D, 0x0007A5],
+ [0x0007CA, 0x0007EA],
+ [0x000800, 0x000815],
+ [0x000840, 0x000858],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x000904, 0x000939],
+ [0x000958, 0x000961],
+ [0x000972, 0x000980],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E1],
+ [0x0009F0, 0x0009F1],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A59, 0x000A5C],
+ [0x000A72, 0x000A74],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000AE0, 0x000AE1],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B61],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000C05, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C61],
+ [0x000C85, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CE0, 0x000CE1],
+ [0x000CF1, 0x000CF2],
+ [0x000D04, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D3A],
+ [0x000D54, 0x000D56],
+ [0x000D5F, 0x000D61],
+ [0x000D7A, 0x000D7F],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000E01, 0x000E30],
+ [0x000E32, 0x000E33],
+ [0x000E40, 0x000E45],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EB0],
+ [0x000EB2, 0x000EB3],
+ [0x000EC0, 0x000EC4],
+ [0x000EDC, 0x000EDF],
+ [0x000F40, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F88, 0x000F8C],
+ [0x001000, 0x00102A],
+ [0x001050, 0x001055],
+ [0x00105A, 0x00105D],
+ [0x001065, 0x001066],
+ [0x00106E, 0x001070],
+ [0x001075, 0x001081],
+ [0x001100, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x001380, 0x00138F],
+ [0x001401, 0x00166C],
+ [0x00166F, 0x00167F],
+ [0x001681, 0x00169A],
+ [0x0016A0, 0x0016EA],
+ [0x0016F1, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001711],
+ [0x001720, 0x001731],
+ [0x001740, 0x001751],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001780, 0x0017B3],
+ [0x001820, 0x001842],
+ [0x001844, 0x001878],
+ [0x001880, 0x001884],
+ [0x001887, 0x0018A8],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001950, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x001A00, 0x001A16],
+ [0x001A20, 0x001A54],
+ [0x001B05, 0x001B33],
+ [0x001B45, 0x001B4B],
+ [0x001B83, 0x001BA0],
+ [0x001BAE, 0x001BAF],
+ [0x001BBA, 0x001BE5],
+ [0x001C00, 0x001C23],
+ [0x001C4D, 0x001C4F],
+ [0x001C5A, 0x001C77],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF6],
+ [0x002135, 0x002138],
+ [0x002D30, 0x002D67],
+ [0x002D80, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x003041, 0x003096],
+ [0x0030A1, 0x0030FA],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x0031A0, 0x0031BF],
+ [0x0031F0, 0x0031FF],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00A000, 0x00A014],
+ [0x00A016, 0x00A48C],
+ [0x00A4D0, 0x00A4F7],
+ [0x00A500, 0x00A60B],
+ [0x00A610, 0x00A61F],
+ [0x00A62A, 0x00A62B],
+ [0x00A6A0, 0x00A6E5],
+ [0x00A7FB, 0x00A801],
+ [0x00A803, 0x00A805],
+ [0x00A807, 0x00A80A],
+ [0x00A80C, 0x00A822],
+ [0x00A840, 0x00A873],
+ [0x00A882, 0x00A8B3],
+ [0x00A8F2, 0x00A8F7],
+ [0x00A8FD, 0x00A8FE],
+ [0x00A90A, 0x00A925],
+ [0x00A930, 0x00A946],
+ [0x00A960, 0x00A97C],
+ [0x00A984, 0x00A9B2],
+ [0x00A9E0, 0x00A9E4],
+ [0x00A9E7, 0x00A9EF],
+ [0x00A9FA, 0x00A9FE],
+ [0x00AA00, 0x00AA28],
+ [0x00AA40, 0x00AA42],
+ [0x00AA44, 0x00AA4B],
+ [0x00AA60, 0x00AA6F],
+ [0x00AA71, 0x00AA76],
+ [0x00AA7E, 0x00AAAF],
+ [0x00AAB5, 0x00AAB6],
+ [0x00AAB9, 0x00AABD],
+ [0x00AADB, 0x00AADC],
+ [0x00AAE0, 0x00AAEA],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00ABC0, 0x00ABE2],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB1F, 0x00FB28],
+ [0x00FB2A, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBB1],
+ [0x00FBD3, 0x00FD3D],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFB],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x00FF66, 0x00FF6F],
+ [0x00FF71, 0x00FF9D],
+ [0x00FFA0, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x010300, 0x01031F],
+ [0x01032D, 0x010340],
+ [0x010342, 0x010349],
+ [0x010350, 0x010375],
+ [0x010380, 0x01039D],
+ [0x0103A0, 0x0103C3],
+ [0x0103C8, 0x0103CF],
+ [0x010450, 0x01049D],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010860, 0x010876],
+ [0x010880, 0x01089E],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x010900, 0x010915],
+ [0x010920, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BE, 0x0109BF],
+ [0x010A10, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A60, 0x010A7C],
+ [0x010A80, 0x010A9C],
+ [0x010AC0, 0x010AC7],
+ [0x010AC9, 0x010AE4],
+ [0x010B00, 0x010B35],
+ [0x010B40, 0x010B55],
+ [0x010B60, 0x010B72],
+ [0x010B80, 0x010B91],
+ [0x010C00, 0x010C48],
+ [0x010D00, 0x010D23],
+ [0x010E80, 0x010EA9],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F1C],
+ [0x010F30, 0x010F45],
+ [0x010FB0, 0x010FC4],
+ [0x010FE0, 0x010FF6],
+ [0x011003, 0x011037],
+ [0x011083, 0x0110AF],
+ [0x0110D0, 0x0110E8],
+ [0x011103, 0x011126],
+ [0x011150, 0x011172],
+ [0x011183, 0x0111B2],
+ [0x0111C1, 0x0111C4],
+ [0x011200, 0x011211],
+ [0x011213, 0x01122B],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A8],
+ [0x0112B0, 0x0112DE],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01135D, 0x011361],
+ [0x011400, 0x011434],
+ [0x011447, 0x01144A],
+ [0x01145F, 0x011461],
+ [0x011480, 0x0114AF],
+ [0x0114C4, 0x0114C5],
+ [0x011580, 0x0115AE],
+ [0x0115D8, 0x0115DB],
+ [0x011600, 0x01162F],
+ [0x011680, 0x0116AA],
+ [0x011700, 0x01171A],
+ [0x011800, 0x01182B],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x01192F],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D0],
+ [0x011A0B, 0x011A32],
+ [0x011A5C, 0x011A89],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C2E],
+ [0x011C72, 0x011C8F],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D30],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D89],
+ [0x011EE0, 0x011EF2],
+ [0x012000, 0x012399],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016AD0, 0x016AED],
+ [0x016B00, 0x016B2F],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016F00, 0x016F4A],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01E100, 0x01E12C],
+ [0x01E2C0, 0x01E2EB],
+ [0x01E800, 0x01E8C4],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Other_Letter}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Other_Letter}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Lo}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Lo}"
+);
+testPropertyEscapes(
+ /^\p{gc=Other_Letter}+$/u,
+ matchSymbols,
+ "\\p{gc=Other_Letter}"
+);
+testPropertyEscapes(
+ /^\p{gc=Lo}+$/u,
+ matchSymbols,
+ "\\p{gc=Lo}"
+);
+testPropertyEscapes(
+ /^\p{Other_Letter}+$/u,
+ matchSymbols,
+ "\\p{Other_Letter}"
+);
+testPropertyEscapes(
+ /^\p{Lo}+$/u,
+ matchSymbols,
+ "\\p{Lo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000640,
+ 0x000670,
+ 0x0006D4,
+ 0x000711,
+ 0x0008B5,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A5D,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CDF,
+ 0x000D0D,
+ 0x000D11,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000E31,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EB1,
+ 0x000F48,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x001680,
+ 0x00170D,
+ 0x00176D,
+ 0x001843,
+ 0x0018A9,
+ 0x001CED,
+ 0x001CF4,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x0030A0,
+ 0x003130,
+ 0x00A015,
+ 0x00A802,
+ 0x00A806,
+ 0x00A80B,
+ 0x00A8FC,
+ 0x00A9FF,
+ 0x00AA43,
+ 0x00AA70,
+ 0x00AAB0,
+ 0x00AAC1,
+ 0x00AB27,
+ 0x00FB1E,
+ 0x00FB29,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE75,
+ 0x00FF70,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x010341,
+ 0x010809,
+ 0x010836,
+ 0x0108F3,
+ 0x010A14,
+ 0x010A18,
+ 0x010AC8,
+ 0x0111DB,
+ 0x011212,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x0114C6,
+ 0x011914,
+ 0x011917,
+ 0x011940,
+ 0x0119E2,
+ 0x011C09,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D66,
+ 0x011D69,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0000A9],
+ [0x0000AB, 0x0000B9],
+ [0x0000BB, 0x0001BA],
+ [0x0001BC, 0x0001BF],
+ [0x0001C4, 0x000293],
+ [0x000295, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F3, 0x00061F],
+ [0x00064B, 0x00066D],
+ [0x0006D6, 0x0006ED],
+ [0x0006F0, 0x0006F9],
+ [0x0006FD, 0x0006FE],
+ [0x000700, 0x00070F],
+ [0x000730, 0x00074C],
+ [0x0007A6, 0x0007B0],
+ [0x0007B2, 0x0007C9],
+ [0x0007EB, 0x0007FF],
+ [0x000816, 0x00083F],
+ [0x000859, 0x00085F],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x000903],
+ [0x00093A, 0x00093C],
+ [0x00093E, 0x00094F],
+ [0x000951, 0x000957],
+ [0x000962, 0x000971],
+ [0x000981, 0x000984],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BC],
+ [0x0009BE, 0x0009CD],
+ [0x0009CF, 0x0009DB],
+ [0x0009E2, 0x0009EF],
+ [0x0009F2, 0x0009FB],
+ [0x0009FD, 0x000A04],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A58],
+ [0x000A5F, 0x000A71],
+ [0x000A75, 0x000A84],
+ [0x000ABA, 0x000ABC],
+ [0x000ABE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE2, 0x000AF8],
+ [0x000AFA, 0x000B04],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3C],
+ [0x000B3E, 0x000B5B],
+ [0x000B62, 0x000B70],
+ [0x000B72, 0x000B82],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BCF],
+ [0x000BD1, 0x000C04],
+ [0x000C3A, 0x000C3C],
+ [0x000C3E, 0x000C57],
+ [0x000C5B, 0x000C5F],
+ [0x000C62, 0x000C7F],
+ [0x000C81, 0x000C84],
+ [0x000CBA, 0x000CBC],
+ [0x000CBE, 0x000CDD],
+ [0x000CE2, 0x000CF0],
+ [0x000CF3, 0x000D03],
+ [0x000D3B, 0x000D3C],
+ [0x000D3E, 0x000D4D],
+ [0x000D4F, 0x000D53],
+ [0x000D57, 0x000D5E],
+ [0x000D62, 0x000D79],
+ [0x000D80, 0x000D84],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000E00],
+ [0x000E34, 0x000E3F],
+ [0x000E46, 0x000E80],
+ [0x000EB4, 0x000EBC],
+ [0x000EBE, 0x000EBF],
+ [0x000EC5, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F01, 0x000F3F],
+ [0x000F6D, 0x000F87],
+ [0x000F8D, 0x000FFF],
+ [0x00102B, 0x00103E],
+ [0x001040, 0x00104F],
+ [0x001056, 0x001059],
+ [0x00105E, 0x001060],
+ [0x001062, 0x001064],
+ [0x001067, 0x00106D],
+ [0x001071, 0x001074],
+ [0x001082, 0x00108D],
+ [0x00108F, 0x0010FF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00137F],
+ [0x001390, 0x001400],
+ [0x00166D, 0x00166E],
+ [0x00169B, 0x00169F],
+ [0x0016EB, 0x0016F0],
+ [0x0016F9, 0x0016FF],
+ [0x001712, 0x00171F],
+ [0x001732, 0x00173F],
+ [0x001752, 0x00175F],
+ [0x001771, 0x00177F],
+ [0x0017B4, 0x0017DB],
+ [0x0017DD, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x001885, 0x001886],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00191F, 0x00194F],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019FF],
+ [0x001A17, 0x001A1F],
+ [0x001A55, 0x001B04],
+ [0x001B34, 0x001B44],
+ [0x001B4C, 0x001B82],
+ [0x001BA1, 0x001BAD],
+ [0x001BB0, 0x001BB9],
+ [0x001BE6, 0x001BFF],
+ [0x001C24, 0x001C4C],
+ [0x001C50, 0x001C59],
+ [0x001C78, 0x001CE8],
+ [0x001CF7, 0x001CF9],
+ [0x001CFB, 0x002134],
+ [0x002139, 0x002D2F],
+ [0x002D68, 0x002D7F],
+ [0x002D97, 0x002D9F],
+ [0x002DDF, 0x003005],
+ [0x003007, 0x00303B],
+ [0x00303D, 0x003040],
+ [0x003097, 0x00309E],
+ [0x0030FB, 0x0030FE],
+ [0x003100, 0x003104],
+ [0x00318F, 0x00319F],
+ [0x0031C0, 0x0031EF],
+ [0x003200, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A4CF],
+ [0x00A4F8, 0x00A4FF],
+ [0x00A60C, 0x00A60F],
+ [0x00A620, 0x00A629],
+ [0x00A62C, 0x00A66D],
+ [0x00A66F, 0x00A69F],
+ [0x00A6E6, 0x00A78E],
+ [0x00A790, 0x00A7F6],
+ [0x00A7F8, 0x00A7FA],
+ [0x00A823, 0x00A83F],
+ [0x00A874, 0x00A881],
+ [0x00A8B4, 0x00A8F1],
+ [0x00A8F8, 0x00A8FA],
+ [0x00A8FF, 0x00A909],
+ [0x00A926, 0x00A92F],
+ [0x00A947, 0x00A95F],
+ [0x00A97D, 0x00A983],
+ [0x00A9B3, 0x00A9DF],
+ [0x00A9E5, 0x00A9E6],
+ [0x00A9F0, 0x00A9F9],
+ [0x00AA29, 0x00AA3F],
+ [0x00AA4C, 0x00AA5F],
+ [0x00AA77, 0x00AA79],
+ [0x00AA7B, 0x00AA7D],
+ [0x00AAB2, 0x00AAB4],
+ [0x00AAB7, 0x00AAB8],
+ [0x00AABE, 0x00AABF],
+ [0x00AAC3, 0x00AADA],
+ [0x00AADD, 0x00AADF],
+ [0x00AAEB, 0x00AAF1],
+ [0x00AAF3, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB2F, 0x00ABBF],
+ [0x00ABE3, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FB1C],
+ [0x00FBB2, 0x00FBD2],
+ [0x00FD3E, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFC, 0x00FE6F],
+ [0x00FEFD, 0x00FF65],
+ [0x00FF9E, 0x00FF9F],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102FF],
+ [0x010320, 0x01032C],
+ [0x01034A, 0x01034F],
+ [0x010376, 0x01037F],
+ [0x01039E, 0x01039F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D0, 0x01044F],
+ [0x01049E, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x010856, 0x01085F],
+ [0x010877, 0x01087F],
+ [0x01089F, 0x0108DF],
+ [0x0108F6, 0x0108FF],
+ [0x010916, 0x01091F],
+ [0x01093A, 0x01097F],
+ [0x0109B8, 0x0109BD],
+ [0x0109C0, 0x0109FF],
+ [0x010A01, 0x010A0F],
+ [0x010A36, 0x010A5F],
+ [0x010A7D, 0x010A7F],
+ [0x010A9D, 0x010ABF],
+ [0x010AE5, 0x010AFF],
+ [0x010B36, 0x010B3F],
+ [0x010B56, 0x010B5F],
+ [0x010B73, 0x010B7F],
+ [0x010B92, 0x010BFF],
+ [0x010C49, 0x010CFF],
+ [0x010D24, 0x010E7F],
+ [0x010EAA, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F1D, 0x010F26],
+ [0x010F28, 0x010F2F],
+ [0x010F46, 0x010FAF],
+ [0x010FC5, 0x010FDF],
+ [0x010FF7, 0x011002],
+ [0x011038, 0x011082],
+ [0x0110B0, 0x0110CF],
+ [0x0110E9, 0x011102],
+ [0x011127, 0x011143],
+ [0x011145, 0x011146],
+ [0x011148, 0x01114F],
+ [0x011173, 0x011175],
+ [0x011177, 0x011182],
+ [0x0111B3, 0x0111C0],
+ [0x0111C5, 0x0111D9],
+ [0x0111DD, 0x0111FF],
+ [0x01122C, 0x01127F],
+ [0x0112A9, 0x0112AF],
+ [0x0112DF, 0x011304],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x01133A, 0x01133C],
+ [0x01133E, 0x01134F],
+ [0x011351, 0x01135C],
+ [0x011362, 0x0113FF],
+ [0x011435, 0x011446],
+ [0x01144B, 0x01145E],
+ [0x011462, 0x01147F],
+ [0x0114B0, 0x0114C3],
+ [0x0114C8, 0x01157F],
+ [0x0115AF, 0x0115D7],
+ [0x0115DC, 0x0115FF],
+ [0x011630, 0x011643],
+ [0x011645, 0x01167F],
+ [0x0116AB, 0x0116B7],
+ [0x0116B9, 0x0116FF],
+ [0x01171B, 0x0117FF],
+ [0x01182C, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011930, 0x01193E],
+ [0x011942, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D1, 0x0119E0],
+ [0x0119E4, 0x0119FF],
+ [0x011A01, 0x011A0A],
+ [0x011A33, 0x011A39],
+ [0x011A3B, 0x011A4F],
+ [0x011A51, 0x011A5B],
+ [0x011A8A, 0x011A9C],
+ [0x011A9E, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C2F, 0x011C3F],
+ [0x011C41, 0x011C71],
+ [0x011C90, 0x011CFF],
+ [0x011D31, 0x011D45],
+ [0x011D47, 0x011D5F],
+ [0x011D8A, 0x011D97],
+ [0x011D99, 0x011EDF],
+ [0x011EF3, 0x011FAF],
+ [0x011FB1, 0x011FFF],
+ [0x01239A, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x01342F, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A5F, 0x016ACF],
+ [0x016AEE, 0x016AFF],
+ [0x016B30, 0x016B62],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016EFF],
+ [0x016F4B, 0x016F4F],
+ [0x016F51, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01E0FF],
+ [0x01E12D, 0x01E14D],
+ [0x01E14F, 0x01E2BF],
+ [0x01E2EC, 0x01E7FF],
+ [0x01E8C5, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Other_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Other_Letter}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Lo}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Lo}"
+);
+testPropertyEscapes(
+ /^\P{gc=Other_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Other_Letter}"
+);
+testPropertyEscapes(
+ /^\P{gc=Lo}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Lo}"
+);
+testPropertyEscapes(
+ /^\P{Other_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{Other_Letter}"
+);
+testPropertyEscapes(
+ /^\P{Lo}+$/u,
+ nonMatchSymbols,
+ "\\P{Lo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Number.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Number.js
new file mode 100644
index 0000000000..28852351a9
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Number.js
@@ -0,0 +1,235 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Other_Number`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000B9,
+ 0x0019DA,
+ 0x002070,
+ 0x002189,
+ 0x002CFD
+ ],
+ ranges: [
+ [0x0000B2, 0x0000B3],
+ [0x0000BC, 0x0000BE],
+ [0x0009F4, 0x0009F9],
+ [0x000B72, 0x000B77],
+ [0x000BF0, 0x000BF2],
+ [0x000C78, 0x000C7E],
+ [0x000D58, 0x000D5E],
+ [0x000D70, 0x000D78],
+ [0x000F2A, 0x000F33],
+ [0x001369, 0x00137C],
+ [0x0017F0, 0x0017F9],
+ [0x002074, 0x002079],
+ [0x002080, 0x002089],
+ [0x002150, 0x00215F],
+ [0x002460, 0x00249B],
+ [0x0024EA, 0x0024FF],
+ [0x002776, 0x002793],
+ [0x003192, 0x003195],
+ [0x003220, 0x003229],
+ [0x003248, 0x00324F],
+ [0x003251, 0x00325F],
+ [0x003280, 0x003289],
+ [0x0032B1, 0x0032BF],
+ [0x00A830, 0x00A835],
+ [0x010107, 0x010133],
+ [0x010175, 0x010178],
+ [0x01018A, 0x01018B],
+ [0x0102E1, 0x0102FB],
+ [0x010320, 0x010323],
+ [0x010858, 0x01085F],
+ [0x010879, 0x01087F],
+ [0x0108A7, 0x0108AF],
+ [0x0108FB, 0x0108FF],
+ [0x010916, 0x01091B],
+ [0x0109BC, 0x0109BD],
+ [0x0109C0, 0x0109CF],
+ [0x0109D2, 0x0109FF],
+ [0x010A40, 0x010A48],
+ [0x010A7D, 0x010A7E],
+ [0x010A9D, 0x010A9F],
+ [0x010AEB, 0x010AEF],
+ [0x010B58, 0x010B5F],
+ [0x010B78, 0x010B7F],
+ [0x010BA9, 0x010BAF],
+ [0x010CFA, 0x010CFF],
+ [0x010E60, 0x010E7E],
+ [0x010F1D, 0x010F26],
+ [0x010F51, 0x010F54],
+ [0x010FC5, 0x010FCB],
+ [0x011052, 0x011065],
+ [0x0111E1, 0x0111F4],
+ [0x01173A, 0x01173B],
+ [0x0118EA, 0x0118F2],
+ [0x011C5A, 0x011C6C],
+ [0x011FC0, 0x011FD4],
+ [0x016B5B, 0x016B61],
+ [0x016E80, 0x016E96],
+ [0x01D2E0, 0x01D2F3],
+ [0x01D360, 0x01D378],
+ [0x01E8C7, 0x01E8CF],
+ [0x01EC71, 0x01ECAB],
+ [0x01ECAD, 0x01ECAF],
+ [0x01ECB1, 0x01ECB4],
+ [0x01ED01, 0x01ED2D],
+ [0x01ED2F, 0x01ED3D],
+ [0x01F100, 0x01F10C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Other_Number}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Other_Number}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=No}+$/u,
+ matchSymbols,
+ "\\p{General_Category=No}"
+);
+testPropertyEscapes(
+ /^\p{gc=Other_Number}+$/u,
+ matchSymbols,
+ "\\p{gc=Other_Number}"
+);
+testPropertyEscapes(
+ /^\p{gc=No}+$/u,
+ matchSymbols,
+ "\\p{gc=No}"
+);
+testPropertyEscapes(
+ /^\p{Other_Number}+$/u,
+ matchSymbols,
+ "\\p{Other_Number}"
+);
+testPropertyEscapes(
+ /^\p{No}+$/u,
+ matchSymbols,
+ "\\p{No}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x003250,
+ 0x01ECAC,
+ 0x01ECB0,
+ 0x01ED2E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0000B1],
+ [0x0000B4, 0x0000B8],
+ [0x0000BA, 0x0000BB],
+ [0x0000BF, 0x0009F3],
+ [0x0009FA, 0x000B71],
+ [0x000B78, 0x000BEF],
+ [0x000BF3, 0x000C77],
+ [0x000C7F, 0x000D57],
+ [0x000D5F, 0x000D6F],
+ [0x000D79, 0x000F29],
+ [0x000F34, 0x001368],
+ [0x00137D, 0x0017EF],
+ [0x0017FA, 0x0019D9],
+ [0x0019DB, 0x00206F],
+ [0x002071, 0x002073],
+ [0x00207A, 0x00207F],
+ [0x00208A, 0x00214F],
+ [0x002160, 0x002188],
+ [0x00218A, 0x00245F],
+ [0x00249C, 0x0024E9],
+ [0x002500, 0x002775],
+ [0x002794, 0x002CFC],
+ [0x002CFE, 0x003191],
+ [0x003196, 0x00321F],
+ [0x00322A, 0x003247],
+ [0x003260, 0x00327F],
+ [0x00328A, 0x0032B0],
+ [0x0032C0, 0x00A82F],
+ [0x00A836, 0x00DBFF],
+ [0x00E000, 0x010106],
+ [0x010134, 0x010174],
+ [0x010179, 0x010189],
+ [0x01018C, 0x0102E0],
+ [0x0102FC, 0x01031F],
+ [0x010324, 0x010857],
+ [0x010860, 0x010878],
+ [0x010880, 0x0108A6],
+ [0x0108B0, 0x0108FA],
+ [0x010900, 0x010915],
+ [0x01091C, 0x0109BB],
+ [0x0109BE, 0x0109BF],
+ [0x0109D0, 0x0109D1],
+ [0x010A00, 0x010A3F],
+ [0x010A49, 0x010A7C],
+ [0x010A7F, 0x010A9C],
+ [0x010AA0, 0x010AEA],
+ [0x010AF0, 0x010B57],
+ [0x010B60, 0x010B77],
+ [0x010B80, 0x010BA8],
+ [0x010BB0, 0x010CF9],
+ [0x010D00, 0x010E5F],
+ [0x010E7F, 0x010F1C],
+ [0x010F27, 0x010F50],
+ [0x010F55, 0x010FC4],
+ [0x010FCC, 0x011051],
+ [0x011066, 0x0111E0],
+ [0x0111F5, 0x011739],
+ [0x01173C, 0x0118E9],
+ [0x0118F3, 0x011C59],
+ [0x011C6D, 0x011FBF],
+ [0x011FD5, 0x016B5A],
+ [0x016B62, 0x016E7F],
+ [0x016E97, 0x01D2DF],
+ [0x01D2F4, 0x01D35F],
+ [0x01D379, 0x01E8C6],
+ [0x01E8D0, 0x01EC70],
+ [0x01ECB5, 0x01ED00],
+ [0x01ED3E, 0x01F0FF],
+ [0x01F10D, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Other_Number}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Other_Number}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=No}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=No}"
+);
+testPropertyEscapes(
+ /^\P{gc=Other_Number}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Other_Number}"
+);
+testPropertyEscapes(
+ /^\P{gc=No}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=No}"
+);
+testPropertyEscapes(
+ /^\P{Other_Number}+$/u,
+ nonMatchSymbols,
+ "\\P{Other_Number}"
+);
+testPropertyEscapes(
+ /^\P{No}+$/u,
+ nonMatchSymbols,
+ "\\P{No}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js
new file mode 100644
index 0000000000..1d0510686a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js
@@ -0,0 +1,455 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Other_Punctuation`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00002A,
+ 0x00002C,
+ 0x00005C,
+ 0x0000A1,
+ 0x0000A7,
+ 0x0000BF,
+ 0x00037E,
+ 0x000387,
+ 0x000589,
+ 0x0005C0,
+ 0x0005C3,
+ 0x0005C6,
+ 0x00061B,
+ 0x0006D4,
+ 0x00085E,
+ 0x000970,
+ 0x0009FD,
+ 0x000A76,
+ 0x000AF0,
+ 0x000C77,
+ 0x000C84,
+ 0x000DF4,
+ 0x000E4F,
+ 0x000F14,
+ 0x000F85,
+ 0x0010FB,
+ 0x00166E,
+ 0x001CD3,
+ 0x002053,
+ 0x002D70,
+ 0x002E0B,
+ 0x002E1B,
+ 0x002E41,
+ 0x002E52,
+ 0x00303D,
+ 0x0030FB,
+ 0x00A673,
+ 0x00A67E,
+ 0x00A8FC,
+ 0x00A95F,
+ 0x00ABEB,
+ 0x00FE19,
+ 0x00FE30,
+ 0x00FE68,
+ 0x00FF0A,
+ 0x00FF0C,
+ 0x00FF3C,
+ 0x00FF61,
+ 0x01039F,
+ 0x0103D0,
+ 0x01056F,
+ 0x010857,
+ 0x01091F,
+ 0x01093F,
+ 0x010A7F,
+ 0x0111CD,
+ 0x0111DB,
+ 0x0112A9,
+ 0x01145D,
+ 0x0114C6,
+ 0x01183B,
+ 0x0119E2,
+ 0x011FFF,
+ 0x016AF5,
+ 0x016B44,
+ 0x016FE2,
+ 0x01BC9F
+ ],
+ ranges: [
+ [0x000021, 0x000023],
+ [0x000025, 0x000027],
+ [0x00002E, 0x00002F],
+ [0x00003A, 0x00003B],
+ [0x00003F, 0x000040],
+ [0x0000B6, 0x0000B7],
+ [0x00055A, 0x00055F],
+ [0x0005F3, 0x0005F4],
+ [0x000609, 0x00060A],
+ [0x00060C, 0x00060D],
+ [0x00061E, 0x00061F],
+ [0x00066A, 0x00066D],
+ [0x000700, 0x00070D],
+ [0x0007F7, 0x0007F9],
+ [0x000830, 0x00083E],
+ [0x000964, 0x000965],
+ [0x000E5A, 0x000E5B],
+ [0x000F04, 0x000F12],
+ [0x000FD0, 0x000FD4],
+ [0x000FD9, 0x000FDA],
+ [0x00104A, 0x00104F],
+ [0x001360, 0x001368],
+ [0x0016EB, 0x0016ED],
+ [0x001735, 0x001736],
+ [0x0017D4, 0x0017D6],
+ [0x0017D8, 0x0017DA],
+ [0x001800, 0x001805],
+ [0x001807, 0x00180A],
+ [0x001944, 0x001945],
+ [0x001A1E, 0x001A1F],
+ [0x001AA0, 0x001AA6],
+ [0x001AA8, 0x001AAD],
+ [0x001B5A, 0x001B60],
+ [0x001BFC, 0x001BFF],
+ [0x001C3B, 0x001C3F],
+ [0x001C7E, 0x001C7F],
+ [0x001CC0, 0x001CC7],
+ [0x002016, 0x002017],
+ [0x002020, 0x002027],
+ [0x002030, 0x002038],
+ [0x00203B, 0x00203E],
+ [0x002041, 0x002043],
+ [0x002047, 0x002051],
+ [0x002055, 0x00205E],
+ [0x002CF9, 0x002CFC],
+ [0x002CFE, 0x002CFF],
+ [0x002E00, 0x002E01],
+ [0x002E06, 0x002E08],
+ [0x002E0E, 0x002E16],
+ [0x002E18, 0x002E19],
+ [0x002E1E, 0x002E1F],
+ [0x002E2A, 0x002E2E],
+ [0x002E30, 0x002E39],
+ [0x002E3C, 0x002E3F],
+ [0x002E43, 0x002E4F],
+ [0x003001, 0x003003],
+ [0x00A4FE, 0x00A4FF],
+ [0x00A60D, 0x00A60F],
+ [0x00A6F2, 0x00A6F7],
+ [0x00A874, 0x00A877],
+ [0x00A8CE, 0x00A8CF],
+ [0x00A8F8, 0x00A8FA],
+ [0x00A92E, 0x00A92F],
+ [0x00A9C1, 0x00A9CD],
+ [0x00A9DE, 0x00A9DF],
+ [0x00AA5C, 0x00AA5F],
+ [0x00AADE, 0x00AADF],
+ [0x00AAF0, 0x00AAF1],
+ [0x00FE10, 0x00FE16],
+ [0x00FE45, 0x00FE46],
+ [0x00FE49, 0x00FE4C],
+ [0x00FE50, 0x00FE52],
+ [0x00FE54, 0x00FE57],
+ [0x00FE5F, 0x00FE61],
+ [0x00FE6A, 0x00FE6B],
+ [0x00FF01, 0x00FF03],
+ [0x00FF05, 0x00FF07],
+ [0x00FF0E, 0x00FF0F],
+ [0x00FF1A, 0x00FF1B],
+ [0x00FF1F, 0x00FF20],
+ [0x00FF64, 0x00FF65],
+ [0x010100, 0x010102],
+ [0x010A50, 0x010A58],
+ [0x010AF0, 0x010AF6],
+ [0x010B39, 0x010B3F],
+ [0x010B99, 0x010B9C],
+ [0x010F55, 0x010F59],
+ [0x011047, 0x01104D],
+ [0x0110BB, 0x0110BC],
+ [0x0110BE, 0x0110C1],
+ [0x011140, 0x011143],
+ [0x011174, 0x011175],
+ [0x0111C5, 0x0111C8],
+ [0x0111DD, 0x0111DF],
+ [0x011238, 0x01123D],
+ [0x01144B, 0x01144F],
+ [0x01145A, 0x01145B],
+ [0x0115C1, 0x0115D7],
+ [0x011641, 0x011643],
+ [0x011660, 0x01166C],
+ [0x01173C, 0x01173E],
+ [0x011944, 0x011946],
+ [0x011A3F, 0x011A46],
+ [0x011A9A, 0x011A9C],
+ [0x011A9E, 0x011AA2],
+ [0x011C41, 0x011C45],
+ [0x011C70, 0x011C71],
+ [0x011EF7, 0x011EF8],
+ [0x012470, 0x012474],
+ [0x016A6E, 0x016A6F],
+ [0x016B37, 0x016B3B],
+ [0x016E97, 0x016E9A],
+ [0x01DA87, 0x01DA8B],
+ [0x01E95E, 0x01E95F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Other_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Other_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Po}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Po}"
+);
+testPropertyEscapes(
+ /^\p{gc=Other_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{gc=Other_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{gc=Po}+$/u,
+ matchSymbols,
+ "\\p{gc=Po}"
+);
+testPropertyEscapes(
+ /^\p{Other_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{Other_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{Po}+$/u,
+ matchSymbols,
+ "\\p{Po}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000024,
+ 0x00002B,
+ 0x00002D,
+ 0x00060B,
+ 0x000F13,
+ 0x0017D7,
+ 0x001806,
+ 0x001AA7,
+ 0x002052,
+ 0x002054,
+ 0x002CFD,
+ 0x002E17,
+ 0x002E1A,
+ 0x002E2F,
+ 0x002E40,
+ 0x002E42,
+ 0x00A8FB,
+ 0x00FE53,
+ 0x00FE69,
+ 0x00FF04,
+ 0x00FF0B,
+ 0x00FF0D,
+ 0x0110BD,
+ 0x0111DC,
+ 0x01145C,
+ 0x011A9D
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000020],
+ [0x000028, 0x000029],
+ [0x000030, 0x000039],
+ [0x00003C, 0x00003E],
+ [0x000041, 0x00005B],
+ [0x00005D, 0x0000A0],
+ [0x0000A2, 0x0000A6],
+ [0x0000A8, 0x0000B5],
+ [0x0000B8, 0x0000BE],
+ [0x0000C0, 0x00037D],
+ [0x00037F, 0x000386],
+ [0x000388, 0x000559],
+ [0x000560, 0x000588],
+ [0x00058A, 0x0005BF],
+ [0x0005C1, 0x0005C2],
+ [0x0005C4, 0x0005C5],
+ [0x0005C7, 0x0005F2],
+ [0x0005F5, 0x000608],
+ [0x00060E, 0x00061A],
+ [0x00061C, 0x00061D],
+ [0x000620, 0x000669],
+ [0x00066E, 0x0006D3],
+ [0x0006D5, 0x0006FF],
+ [0x00070E, 0x0007F6],
+ [0x0007FA, 0x00082F],
+ [0x00083F, 0x00085D],
+ [0x00085F, 0x000963],
+ [0x000966, 0x00096F],
+ [0x000971, 0x0009FC],
+ [0x0009FE, 0x000A75],
+ [0x000A77, 0x000AEF],
+ [0x000AF1, 0x000C76],
+ [0x000C78, 0x000C83],
+ [0x000C85, 0x000DF3],
+ [0x000DF5, 0x000E4E],
+ [0x000E50, 0x000E59],
+ [0x000E5C, 0x000F03],
+ [0x000F15, 0x000F84],
+ [0x000F86, 0x000FCF],
+ [0x000FD5, 0x000FD8],
+ [0x000FDB, 0x001049],
+ [0x001050, 0x0010FA],
+ [0x0010FC, 0x00135F],
+ [0x001369, 0x00166D],
+ [0x00166F, 0x0016EA],
+ [0x0016EE, 0x001734],
+ [0x001737, 0x0017D3],
+ [0x0017DB, 0x0017FF],
+ [0x00180B, 0x001943],
+ [0x001946, 0x001A1D],
+ [0x001A20, 0x001A9F],
+ [0x001AAE, 0x001B59],
+ [0x001B61, 0x001BFB],
+ [0x001C00, 0x001C3A],
+ [0x001C40, 0x001C7D],
+ [0x001C80, 0x001CBF],
+ [0x001CC8, 0x001CD2],
+ [0x001CD4, 0x002015],
+ [0x002018, 0x00201F],
+ [0x002028, 0x00202F],
+ [0x002039, 0x00203A],
+ [0x00203F, 0x002040],
+ [0x002044, 0x002046],
+ [0x00205F, 0x002CF8],
+ [0x002D00, 0x002D6F],
+ [0x002D71, 0x002DFF],
+ [0x002E02, 0x002E05],
+ [0x002E09, 0x002E0A],
+ [0x002E0C, 0x002E0D],
+ [0x002E1C, 0x002E1D],
+ [0x002E20, 0x002E29],
+ [0x002E3A, 0x002E3B],
+ [0x002E50, 0x002E51],
+ [0x002E53, 0x003000],
+ [0x003004, 0x00303C],
+ [0x00303E, 0x0030FA],
+ [0x0030FC, 0x00A4FD],
+ [0x00A500, 0x00A60C],
+ [0x00A610, 0x00A672],
+ [0x00A674, 0x00A67D],
+ [0x00A67F, 0x00A6F1],
+ [0x00A6F8, 0x00A873],
+ [0x00A878, 0x00A8CD],
+ [0x00A8D0, 0x00A8F7],
+ [0x00A8FD, 0x00A92D],
+ [0x00A930, 0x00A95E],
+ [0x00A960, 0x00A9C0],
+ [0x00A9CE, 0x00A9DD],
+ [0x00A9E0, 0x00AA5B],
+ [0x00AA60, 0x00AADD],
+ [0x00AAE0, 0x00AAEF],
+ [0x00AAF2, 0x00ABEA],
+ [0x00ABEC, 0x00DBFF],
+ [0x00E000, 0x00FE0F],
+ [0x00FE17, 0x00FE18],
+ [0x00FE1A, 0x00FE2F],
+ [0x00FE31, 0x00FE44],
+ [0x00FE47, 0x00FE48],
+ [0x00FE4D, 0x00FE4F],
+ [0x00FE58, 0x00FE5E],
+ [0x00FE62, 0x00FE67],
+ [0x00FE6C, 0x00FF00],
+ [0x00FF08, 0x00FF09],
+ [0x00FF10, 0x00FF19],
+ [0x00FF1C, 0x00FF1E],
+ [0x00FF21, 0x00FF3B],
+ [0x00FF3D, 0x00FF60],
+ [0x00FF62, 0x00FF63],
+ [0x00FF66, 0x0100FF],
+ [0x010103, 0x01039E],
+ [0x0103A0, 0x0103CF],
+ [0x0103D1, 0x01056E],
+ [0x010570, 0x010856],
+ [0x010858, 0x01091E],
+ [0x010920, 0x01093E],
+ [0x010940, 0x010A4F],
+ [0x010A59, 0x010A7E],
+ [0x010A80, 0x010AEF],
+ [0x010AF7, 0x010B38],
+ [0x010B40, 0x010B98],
+ [0x010B9D, 0x010F54],
+ [0x010F5A, 0x011046],
+ [0x01104E, 0x0110BA],
+ [0x0110C2, 0x01113F],
+ [0x011144, 0x011173],
+ [0x011176, 0x0111C4],
+ [0x0111C9, 0x0111CC],
+ [0x0111CE, 0x0111DA],
+ [0x0111E0, 0x011237],
+ [0x01123E, 0x0112A8],
+ [0x0112AA, 0x01144A],
+ [0x011450, 0x011459],
+ [0x01145E, 0x0114C5],
+ [0x0114C7, 0x0115C0],
+ [0x0115D8, 0x011640],
+ [0x011644, 0x01165F],
+ [0x01166D, 0x01173B],
+ [0x01173F, 0x01183A],
+ [0x01183C, 0x011943],
+ [0x011947, 0x0119E1],
+ [0x0119E3, 0x011A3E],
+ [0x011A47, 0x011A99],
+ [0x011AA3, 0x011C40],
+ [0x011C46, 0x011C6F],
+ [0x011C72, 0x011EF6],
+ [0x011EF9, 0x011FFE],
+ [0x012000, 0x01246F],
+ [0x012475, 0x016A6D],
+ [0x016A70, 0x016AF4],
+ [0x016AF6, 0x016B36],
+ [0x016B3C, 0x016B43],
+ [0x016B45, 0x016E96],
+ [0x016E9B, 0x016FE1],
+ [0x016FE3, 0x01BC9E],
+ [0x01BCA0, 0x01DA86],
+ [0x01DA8C, 0x01E95D],
+ [0x01E960, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Other_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Other_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Po}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Po}"
+);
+testPropertyEscapes(
+ /^\P{gc=Other_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Other_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{gc=Po}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Po}"
+);
+testPropertyEscapes(
+ /^\P{Other_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{Other_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{Po}+$/u,
+ nonMatchSymbols,
+ "\\P{Po}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js
new file mode 100644
index 0000000000..7cb4418fec
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js
@@ -0,0 +1,457 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Other_Symbol`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000A6,
+ 0x0000A9,
+ 0x0000AE,
+ 0x0000B0,
+ 0x000482,
+ 0x0006DE,
+ 0x0006E9,
+ 0x0007F6,
+ 0x0009FA,
+ 0x000B70,
+ 0x000BFA,
+ 0x000C7F,
+ 0x000D4F,
+ 0x000D79,
+ 0x000F13,
+ 0x000F34,
+ 0x000F36,
+ 0x000F38,
+ 0x00166D,
+ 0x001940,
+ 0x002114,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x00212E,
+ 0x00214A,
+ 0x00214F,
+ 0x0021D3,
+ 0x003004,
+ 0x003020,
+ 0x003250,
+ 0x00A839,
+ 0x00FDFD,
+ 0x00FFE4,
+ 0x00FFE8,
+ 0x0101A0,
+ 0x010AC8,
+ 0x01173F,
+ 0x016B45,
+ 0x01BC9C,
+ 0x01D245,
+ 0x01E14F,
+ 0x01ECAC,
+ 0x01ED2E
+ ],
+ ranges: [
+ [0x00058D, 0x00058E],
+ [0x00060E, 0x00060F],
+ [0x0006FD, 0x0006FE],
+ [0x000BF3, 0x000BF8],
+ [0x000F01, 0x000F03],
+ [0x000F15, 0x000F17],
+ [0x000F1A, 0x000F1F],
+ [0x000FBE, 0x000FC5],
+ [0x000FC7, 0x000FCC],
+ [0x000FCE, 0x000FCF],
+ [0x000FD5, 0x000FD8],
+ [0x00109E, 0x00109F],
+ [0x001390, 0x001399],
+ [0x0019DE, 0x0019FF],
+ [0x001B61, 0x001B6A],
+ [0x001B74, 0x001B7C],
+ [0x002100, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002117],
+ [0x00211E, 0x002123],
+ [0x00213A, 0x00213B],
+ [0x00214C, 0x00214D],
+ [0x00218A, 0x00218B],
+ [0x002195, 0x002199],
+ [0x00219C, 0x00219F],
+ [0x0021A1, 0x0021A2],
+ [0x0021A4, 0x0021A5],
+ [0x0021A7, 0x0021AD],
+ [0x0021AF, 0x0021CD],
+ [0x0021D0, 0x0021D1],
+ [0x0021D5, 0x0021F3],
+ [0x002300, 0x002307],
+ [0x00230C, 0x00231F],
+ [0x002322, 0x002328],
+ [0x00232B, 0x00237B],
+ [0x00237D, 0x00239A],
+ [0x0023B4, 0x0023DB],
+ [0x0023E2, 0x002426],
+ [0x002440, 0x00244A],
+ [0x00249C, 0x0024E9],
+ [0x002500, 0x0025B6],
+ [0x0025B8, 0x0025C0],
+ [0x0025C2, 0x0025F7],
+ [0x002600, 0x00266E],
+ [0x002670, 0x002767],
+ [0x002794, 0x0027BF],
+ [0x002800, 0x0028FF],
+ [0x002B00, 0x002B2F],
+ [0x002B45, 0x002B46],
+ [0x002B4D, 0x002B73],
+ [0x002B76, 0x002B95],
+ [0x002B97, 0x002BFF],
+ [0x002CE5, 0x002CEA],
+ [0x002E50, 0x002E51],
+ [0x002E80, 0x002E99],
+ [0x002E9B, 0x002EF3],
+ [0x002F00, 0x002FD5],
+ [0x002FF0, 0x002FFB],
+ [0x003012, 0x003013],
+ [0x003036, 0x003037],
+ [0x00303E, 0x00303F],
+ [0x003190, 0x003191],
+ [0x003196, 0x00319F],
+ [0x0031C0, 0x0031E3],
+ [0x003200, 0x00321E],
+ [0x00322A, 0x003247],
+ [0x003260, 0x00327F],
+ [0x00328A, 0x0032B0],
+ [0x0032C0, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x00A490, 0x00A4C6],
+ [0x00A828, 0x00A82B],
+ [0x00A836, 0x00A837],
+ [0x00AA77, 0x00AA79],
+ [0x00FFED, 0x00FFEE],
+ [0x00FFFC, 0x00FFFD],
+ [0x010137, 0x01013F],
+ [0x010179, 0x010189],
+ [0x01018C, 0x01018E],
+ [0x010190, 0x01019C],
+ [0x0101D0, 0x0101FC],
+ [0x010877, 0x010878],
+ [0x011FD5, 0x011FDC],
+ [0x011FE1, 0x011FF1],
+ [0x016B3C, 0x016B3F],
+ [0x01D000, 0x01D0F5],
+ [0x01D100, 0x01D126],
+ [0x01D129, 0x01D164],
+ [0x01D16A, 0x01D16C],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D1E8],
+ [0x01D200, 0x01D241],
+ [0x01D300, 0x01D356],
+ [0x01D800, 0x01D9FF],
+ [0x01DA37, 0x01DA3A],
+ [0x01DA6D, 0x01DA74],
+ [0x01DA76, 0x01DA83],
+ [0x01DA85, 0x01DA86],
+ [0x01F000, 0x01F02B],
+ [0x01F030, 0x01F093],
+ [0x01F0A0, 0x01F0AE],
+ [0x01F0B1, 0x01F0BF],
+ [0x01F0C1, 0x01F0CF],
+ [0x01F0D1, 0x01F0F5],
+ [0x01F10D, 0x01F1AD],
+ [0x01F1E6, 0x01F202],
+ [0x01F210, 0x01F23B],
+ [0x01F240, 0x01F248],
+ [0x01F250, 0x01F251],
+ [0x01F260, 0x01F265],
+ [0x01F300, 0x01F3FA],
+ [0x01F400, 0x01F6D7],
+ [0x01F6E0, 0x01F6EC],
+ [0x01F6F0, 0x01F6FC],
+ [0x01F700, 0x01F773],
+ [0x01F780, 0x01F7D8],
+ [0x01F7E0, 0x01F7EB],
+ [0x01F800, 0x01F80B],
+ [0x01F810, 0x01F847],
+ [0x01F850, 0x01F859],
+ [0x01F860, 0x01F887],
+ [0x01F890, 0x01F8AD],
+ [0x01F8B0, 0x01F8B1],
+ [0x01F900, 0x01F978],
+ [0x01F97A, 0x01F9CB],
+ [0x01F9CD, 0x01FA53],
+ [0x01FA60, 0x01FA6D],
+ [0x01FA70, 0x01FA74],
+ [0x01FA78, 0x01FA7A],
+ [0x01FA80, 0x01FA86],
+ [0x01FA90, 0x01FAA8],
+ [0x01FAB0, 0x01FAB6],
+ [0x01FAC0, 0x01FAC2],
+ [0x01FAD0, 0x01FAD6],
+ [0x01FB00, 0x01FB92],
+ [0x01FB94, 0x01FBCA]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Other_Symbol}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Other_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=So}+$/u,
+ matchSymbols,
+ "\\p{General_Category=So}"
+);
+testPropertyEscapes(
+ /^\p{gc=Other_Symbol}+$/u,
+ matchSymbols,
+ "\\p{gc=Other_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{gc=So}+$/u,
+ matchSymbols,
+ "\\p{gc=So}"
+);
+testPropertyEscapes(
+ /^\p{Other_Symbol}+$/u,
+ matchSymbols,
+ "\\p{Other_Symbol}"
+);
+testPropertyEscapes(
+ /^\p{So}+$/u,
+ matchSymbols,
+ "\\p{So}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AF,
+ 0x000BF9,
+ 0x000F14,
+ 0x000F35,
+ 0x000F37,
+ 0x000FC6,
+ 0x000FCD,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x00214B,
+ 0x00214E,
+ 0x0021A0,
+ 0x0021A3,
+ 0x0021A6,
+ 0x0021AE,
+ 0x0021D2,
+ 0x0021D4,
+ 0x00237C,
+ 0x0025B7,
+ 0x0025C1,
+ 0x00266F,
+ 0x002B96,
+ 0x002E9A,
+ 0x00A838,
+ 0x01018F,
+ 0x01DA75,
+ 0x01DA84,
+ 0x01F0C0,
+ 0x01F0D0,
+ 0x01F979,
+ 0x01F9CC,
+ 0x01FB93
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0000A5],
+ [0x0000A7, 0x0000A8],
+ [0x0000AA, 0x0000AD],
+ [0x0000B1, 0x000481],
+ [0x000483, 0x00058C],
+ [0x00058F, 0x00060D],
+ [0x000610, 0x0006DD],
+ [0x0006DF, 0x0006E8],
+ [0x0006EA, 0x0006FC],
+ [0x0006FF, 0x0007F5],
+ [0x0007F7, 0x0009F9],
+ [0x0009FB, 0x000B6F],
+ [0x000B71, 0x000BF2],
+ [0x000BFB, 0x000C7E],
+ [0x000C80, 0x000D4E],
+ [0x000D50, 0x000D78],
+ [0x000D7A, 0x000F00],
+ [0x000F04, 0x000F12],
+ [0x000F18, 0x000F19],
+ [0x000F20, 0x000F33],
+ [0x000F39, 0x000FBD],
+ [0x000FD0, 0x000FD4],
+ [0x000FD9, 0x00109D],
+ [0x0010A0, 0x00138F],
+ [0x00139A, 0x00166C],
+ [0x00166E, 0x00193F],
+ [0x001941, 0x0019DD],
+ [0x001A00, 0x001B60],
+ [0x001B6B, 0x001B73],
+ [0x001B7D, 0x0020FF],
+ [0x00210A, 0x002113],
+ [0x002118, 0x00211D],
+ [0x00212A, 0x00212D],
+ [0x00212F, 0x002139],
+ [0x00213C, 0x002149],
+ [0x002150, 0x002189],
+ [0x00218C, 0x002194],
+ [0x00219A, 0x00219B],
+ [0x0021CE, 0x0021CF],
+ [0x0021F4, 0x0022FF],
+ [0x002308, 0x00230B],
+ [0x002320, 0x002321],
+ [0x002329, 0x00232A],
+ [0x00239B, 0x0023B3],
+ [0x0023DC, 0x0023E1],
+ [0x002427, 0x00243F],
+ [0x00244B, 0x00249B],
+ [0x0024EA, 0x0024FF],
+ [0x0025F8, 0x0025FF],
+ [0x002768, 0x002793],
+ [0x0027C0, 0x0027FF],
+ [0x002900, 0x002AFF],
+ [0x002B30, 0x002B44],
+ [0x002B47, 0x002B4C],
+ [0x002B74, 0x002B75],
+ [0x002C00, 0x002CE4],
+ [0x002CEB, 0x002E4F],
+ [0x002E52, 0x002E7F],
+ [0x002EF4, 0x002EFF],
+ [0x002FD6, 0x002FEF],
+ [0x002FFC, 0x003003],
+ [0x003005, 0x003011],
+ [0x003014, 0x00301F],
+ [0x003021, 0x003035],
+ [0x003038, 0x00303D],
+ [0x003040, 0x00318F],
+ [0x003192, 0x003195],
+ [0x0031A0, 0x0031BF],
+ [0x0031E4, 0x0031FF],
+ [0x00321F, 0x003229],
+ [0x003248, 0x00324F],
+ [0x003251, 0x00325F],
+ [0x003280, 0x003289],
+ [0x0032B1, 0x0032BF],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x00A48F],
+ [0x00A4C7, 0x00A827],
+ [0x00A82C, 0x00A835],
+ [0x00A83A, 0x00AA76],
+ [0x00AA7A, 0x00DBFF],
+ [0x00E000, 0x00FDFC],
+ [0x00FDFE, 0x00FFE3],
+ [0x00FFE5, 0x00FFE7],
+ [0x00FFE9, 0x00FFEC],
+ [0x00FFEF, 0x00FFFB],
+ [0x00FFFE, 0x010136],
+ [0x010140, 0x010178],
+ [0x01018A, 0x01018B],
+ [0x01019D, 0x01019F],
+ [0x0101A1, 0x0101CF],
+ [0x0101FD, 0x010876],
+ [0x010879, 0x010AC7],
+ [0x010AC9, 0x01173E],
+ [0x011740, 0x011FD4],
+ [0x011FDD, 0x011FE0],
+ [0x011FF2, 0x016B3B],
+ [0x016B40, 0x016B44],
+ [0x016B46, 0x01BC9B],
+ [0x01BC9D, 0x01CFFF],
+ [0x01D0F6, 0x01D0FF],
+ [0x01D127, 0x01D128],
+ [0x01D165, 0x01D169],
+ [0x01D16D, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D1E9, 0x01D1FF],
+ [0x01D242, 0x01D244],
+ [0x01D246, 0x01D2FF],
+ [0x01D357, 0x01D7FF],
+ [0x01DA00, 0x01DA36],
+ [0x01DA3B, 0x01DA6C],
+ [0x01DA87, 0x01E14E],
+ [0x01E150, 0x01ECAB],
+ [0x01ECAD, 0x01ED2D],
+ [0x01ED2F, 0x01EFFF],
+ [0x01F02C, 0x01F02F],
+ [0x01F094, 0x01F09F],
+ [0x01F0AF, 0x01F0B0],
+ [0x01F0F6, 0x01F10C],
+ [0x01F1AE, 0x01F1E5],
+ [0x01F203, 0x01F20F],
+ [0x01F23C, 0x01F23F],
+ [0x01F249, 0x01F24F],
+ [0x01F252, 0x01F25F],
+ [0x01F266, 0x01F2FF],
+ [0x01F3FB, 0x01F3FF],
+ [0x01F6D8, 0x01F6DF],
+ [0x01F6ED, 0x01F6EF],
+ [0x01F6FD, 0x01F6FF],
+ [0x01F774, 0x01F77F],
+ [0x01F7D9, 0x01F7DF],
+ [0x01F7EC, 0x01F7FF],
+ [0x01F80C, 0x01F80F],
+ [0x01F848, 0x01F84F],
+ [0x01F85A, 0x01F85F],
+ [0x01F888, 0x01F88F],
+ [0x01F8AE, 0x01F8AF],
+ [0x01F8B2, 0x01F8FF],
+ [0x01FA54, 0x01FA5F],
+ [0x01FA6E, 0x01FA6F],
+ [0x01FA75, 0x01FA77],
+ [0x01FA7B, 0x01FA7F],
+ [0x01FA87, 0x01FA8F],
+ [0x01FAA9, 0x01FAAF],
+ [0x01FAB7, 0x01FABF],
+ [0x01FAC3, 0x01FACF],
+ [0x01FAD7, 0x01FAFF],
+ [0x01FBCB, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Other_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Other_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=So}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=So}"
+);
+testPropertyEscapes(
+ /^\P{gc=Other_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Other_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{gc=So}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=So}"
+);
+testPropertyEscapes(
+ /^\P{Other_Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{Other_Symbol}"
+);
+testPropertyEscapes(
+ /^\P{So}+$/u,
+ nonMatchSymbols,
+ "\\P{So}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Paragraph_Separator.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Paragraph_Separator.js
new file mode 100644
index 0000000000..3fc3f4d78c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Paragraph_Separator.js
@@ -0,0 +1,93 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Paragraph_Separator`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x002029
+ ],
+ ranges: []
+});
+testPropertyEscapes(
+ /^\p{General_Category=Paragraph_Separator}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Paragraph_Separator}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Zp}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Zp}"
+);
+testPropertyEscapes(
+ /^\p{gc=Paragraph_Separator}+$/u,
+ matchSymbols,
+ "\\p{gc=Paragraph_Separator}"
+);
+testPropertyEscapes(
+ /^\p{gc=Zp}+$/u,
+ matchSymbols,
+ "\\p{gc=Zp}"
+);
+testPropertyEscapes(
+ /^\p{Paragraph_Separator}+$/u,
+ matchSymbols,
+ "\\p{Paragraph_Separator}"
+);
+testPropertyEscapes(
+ /^\p{Zp}+$/u,
+ matchSymbols,
+ "\\p{Zp}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002028],
+ [0x00202A, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Paragraph_Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Paragraph_Separator}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Zp}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Zp}"
+);
+testPropertyEscapes(
+ /^\P{gc=Paragraph_Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Paragraph_Separator}"
+);
+testPropertyEscapes(
+ /^\P{gc=Zp}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Zp}"
+);
+testPropertyEscapes(
+ /^\P{Paragraph_Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{Paragraph_Separator}"
+);
+testPropertyEscapes(
+ /^\P{Zp}+$/u,
+ nonMatchSymbols,
+ "\\P{Zp}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Private_Use.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Private_Use.js
new file mode 100644
index 0000000000..19b8eb5629
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Private_Use.js
@@ -0,0 +1,96 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Private_Use`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00E000, 0x00F8FF],
+ [0x0F0000, 0x0FFFFD],
+ [0x100000, 0x10FFFD]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Private_Use}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Private_Use}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Co}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Co}"
+);
+testPropertyEscapes(
+ /^\p{gc=Private_Use}+$/u,
+ matchSymbols,
+ "\\p{gc=Private_Use}"
+);
+testPropertyEscapes(
+ /^\p{gc=Co}+$/u,
+ matchSymbols,
+ "\\p{gc=Co}"
+);
+testPropertyEscapes(
+ /^\p{Private_Use}+$/u,
+ matchSymbols,
+ "\\p{Private_Use}"
+);
+testPropertyEscapes(
+ /^\p{Co}+$/u,
+ matchSymbols,
+ "\\p{Co}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00F900, 0x0EFFFF],
+ [0x0FFFFE, 0x0FFFFF],
+ [0x10FFFE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Private_Use}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Private_Use}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Co}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Co}"
+);
+testPropertyEscapes(
+ /^\P{gc=Private_Use}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Private_Use}"
+);
+testPropertyEscapes(
+ /^\P{gc=Co}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Co}"
+);
+testPropertyEscapes(
+ /^\P{Private_Use}+$/u,
+ nonMatchSymbols,
+ "\\P{Private_Use}"
+);
+testPropertyEscapes(
+ /^\P{Co}+$/u,
+ nonMatchSymbols,
+ "\\P{Co}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js
new file mode 100644
index 0000000000..abc7c5baf8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js
@@ -0,0 +1,493 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Punctuation`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005F,
+ 0x00007B,
+ 0x00007D,
+ 0x0000A1,
+ 0x0000A7,
+ 0x0000AB,
+ 0x0000BB,
+ 0x0000BF,
+ 0x00037E,
+ 0x000387,
+ 0x0005BE,
+ 0x0005C0,
+ 0x0005C3,
+ 0x0005C6,
+ 0x00061B,
+ 0x0006D4,
+ 0x00085E,
+ 0x000970,
+ 0x0009FD,
+ 0x000A76,
+ 0x000AF0,
+ 0x000C77,
+ 0x000C84,
+ 0x000DF4,
+ 0x000E4F,
+ 0x000F14,
+ 0x000F85,
+ 0x0010FB,
+ 0x001400,
+ 0x00166E,
+ 0x001CD3,
+ 0x002D70,
+ 0x002E52,
+ 0x003030,
+ 0x00303D,
+ 0x0030A0,
+ 0x0030FB,
+ 0x00A673,
+ 0x00A67E,
+ 0x00A8FC,
+ 0x00A95F,
+ 0x00ABEB,
+ 0x00FE63,
+ 0x00FE68,
+ 0x00FF3F,
+ 0x00FF5B,
+ 0x00FF5D,
+ 0x01039F,
+ 0x0103D0,
+ 0x01056F,
+ 0x010857,
+ 0x01091F,
+ 0x01093F,
+ 0x010A7F,
+ 0x010EAD,
+ 0x0111CD,
+ 0x0111DB,
+ 0x0112A9,
+ 0x01145D,
+ 0x0114C6,
+ 0x01183B,
+ 0x0119E2,
+ 0x011FFF,
+ 0x016AF5,
+ 0x016B44,
+ 0x016FE2,
+ 0x01BC9F
+ ],
+ ranges: [
+ [0x000021, 0x000023],
+ [0x000025, 0x00002A],
+ [0x00002C, 0x00002F],
+ [0x00003A, 0x00003B],
+ [0x00003F, 0x000040],
+ [0x00005B, 0x00005D],
+ [0x0000B6, 0x0000B7],
+ [0x00055A, 0x00055F],
+ [0x000589, 0x00058A],
+ [0x0005F3, 0x0005F4],
+ [0x000609, 0x00060A],
+ [0x00060C, 0x00060D],
+ [0x00061E, 0x00061F],
+ [0x00066A, 0x00066D],
+ [0x000700, 0x00070D],
+ [0x0007F7, 0x0007F9],
+ [0x000830, 0x00083E],
+ [0x000964, 0x000965],
+ [0x000E5A, 0x000E5B],
+ [0x000F04, 0x000F12],
+ [0x000F3A, 0x000F3D],
+ [0x000FD0, 0x000FD4],
+ [0x000FD9, 0x000FDA],
+ [0x00104A, 0x00104F],
+ [0x001360, 0x001368],
+ [0x00169B, 0x00169C],
+ [0x0016EB, 0x0016ED],
+ [0x001735, 0x001736],
+ [0x0017D4, 0x0017D6],
+ [0x0017D8, 0x0017DA],
+ [0x001800, 0x00180A],
+ [0x001944, 0x001945],
+ [0x001A1E, 0x001A1F],
+ [0x001AA0, 0x001AA6],
+ [0x001AA8, 0x001AAD],
+ [0x001B5A, 0x001B60],
+ [0x001BFC, 0x001BFF],
+ [0x001C3B, 0x001C3F],
+ [0x001C7E, 0x001C7F],
+ [0x001CC0, 0x001CC7],
+ [0x002010, 0x002027],
+ [0x002030, 0x002043],
+ [0x002045, 0x002051],
+ [0x002053, 0x00205E],
+ [0x00207D, 0x00207E],
+ [0x00208D, 0x00208E],
+ [0x002308, 0x00230B],
+ [0x002329, 0x00232A],
+ [0x002768, 0x002775],
+ [0x0027C5, 0x0027C6],
+ [0x0027E6, 0x0027EF],
+ [0x002983, 0x002998],
+ [0x0029D8, 0x0029DB],
+ [0x0029FC, 0x0029FD],
+ [0x002CF9, 0x002CFC],
+ [0x002CFE, 0x002CFF],
+ [0x002E00, 0x002E2E],
+ [0x002E30, 0x002E4F],
+ [0x003001, 0x003003],
+ [0x003008, 0x003011],
+ [0x003014, 0x00301F],
+ [0x00A4FE, 0x00A4FF],
+ [0x00A60D, 0x00A60F],
+ [0x00A6F2, 0x00A6F7],
+ [0x00A874, 0x00A877],
+ [0x00A8CE, 0x00A8CF],
+ [0x00A8F8, 0x00A8FA],
+ [0x00A92E, 0x00A92F],
+ [0x00A9C1, 0x00A9CD],
+ [0x00A9DE, 0x00A9DF],
+ [0x00AA5C, 0x00AA5F],
+ [0x00AADE, 0x00AADF],
+ [0x00AAF0, 0x00AAF1],
+ [0x00FD3E, 0x00FD3F],
+ [0x00FE10, 0x00FE19],
+ [0x00FE30, 0x00FE52],
+ [0x00FE54, 0x00FE61],
+ [0x00FE6A, 0x00FE6B],
+ [0x00FF01, 0x00FF03],
+ [0x00FF05, 0x00FF0A],
+ [0x00FF0C, 0x00FF0F],
+ [0x00FF1A, 0x00FF1B],
+ [0x00FF1F, 0x00FF20],
+ [0x00FF3B, 0x00FF3D],
+ [0x00FF5F, 0x00FF65],
+ [0x010100, 0x010102],
+ [0x010A50, 0x010A58],
+ [0x010AF0, 0x010AF6],
+ [0x010B39, 0x010B3F],
+ [0x010B99, 0x010B9C],
+ [0x010F55, 0x010F59],
+ [0x011047, 0x01104D],
+ [0x0110BB, 0x0110BC],
+ [0x0110BE, 0x0110C1],
+ [0x011140, 0x011143],
+ [0x011174, 0x011175],
+ [0x0111C5, 0x0111C8],
+ [0x0111DD, 0x0111DF],
+ [0x011238, 0x01123D],
+ [0x01144B, 0x01144F],
+ [0x01145A, 0x01145B],
+ [0x0115C1, 0x0115D7],
+ [0x011641, 0x011643],
+ [0x011660, 0x01166C],
+ [0x01173C, 0x01173E],
+ [0x011944, 0x011946],
+ [0x011A3F, 0x011A46],
+ [0x011A9A, 0x011A9C],
+ [0x011A9E, 0x011AA2],
+ [0x011C41, 0x011C45],
+ [0x011C70, 0x011C71],
+ [0x011EF7, 0x011EF8],
+ [0x012470, 0x012474],
+ [0x016A6E, 0x016A6F],
+ [0x016B37, 0x016B3B],
+ [0x016E97, 0x016E9A],
+ [0x01DA87, 0x01DA8B],
+ [0x01E95E, 0x01E95F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Punctuation}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=P}+$/u,
+ matchSymbols,
+ "\\p{General_Category=P}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=punct}+$/u,
+ matchSymbols,
+ "\\p{General_Category=punct}"
+);
+testPropertyEscapes(
+ /^\p{gc=Punctuation}+$/u,
+ matchSymbols,
+ "\\p{gc=Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{gc=P}+$/u,
+ matchSymbols,
+ "\\p{gc=P}"
+);
+testPropertyEscapes(
+ /^\p{gc=punct}+$/u,
+ matchSymbols,
+ "\\p{gc=punct}"
+);
+testPropertyEscapes(
+ /^\p{Punctuation}+$/u,
+ matchSymbols,
+ "\\p{Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{P}+$/u,
+ matchSymbols,
+ "\\p{P}"
+);
+testPropertyEscapes(
+ /^\p{punct}+$/u,
+ matchSymbols,
+ "\\p{punct}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000024,
+ 0x00002B,
+ 0x00005E,
+ 0x00007C,
+ 0x0005BF,
+ 0x00060B,
+ 0x000F13,
+ 0x0017D7,
+ 0x001AA7,
+ 0x002044,
+ 0x002052,
+ 0x002CFD,
+ 0x002E2F,
+ 0x00A8FB,
+ 0x00FE53,
+ 0x00FE62,
+ 0x00FE69,
+ 0x00FF04,
+ 0x00FF0B,
+ 0x00FF3E,
+ 0x00FF5C,
+ 0x00FF5E,
+ 0x0110BD,
+ 0x0111DC,
+ 0x01145C,
+ 0x011A9D
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000020],
+ [0x000030, 0x000039],
+ [0x00003C, 0x00003E],
+ [0x000041, 0x00005A],
+ [0x000060, 0x00007A],
+ [0x00007E, 0x0000A0],
+ [0x0000A2, 0x0000A6],
+ [0x0000A8, 0x0000AA],
+ [0x0000AC, 0x0000B5],
+ [0x0000B8, 0x0000BA],
+ [0x0000BC, 0x0000BE],
+ [0x0000C0, 0x00037D],
+ [0x00037F, 0x000386],
+ [0x000388, 0x000559],
+ [0x000560, 0x000588],
+ [0x00058B, 0x0005BD],
+ [0x0005C1, 0x0005C2],
+ [0x0005C4, 0x0005C5],
+ [0x0005C7, 0x0005F2],
+ [0x0005F5, 0x000608],
+ [0x00060E, 0x00061A],
+ [0x00061C, 0x00061D],
+ [0x000620, 0x000669],
+ [0x00066E, 0x0006D3],
+ [0x0006D5, 0x0006FF],
+ [0x00070E, 0x0007F6],
+ [0x0007FA, 0x00082F],
+ [0x00083F, 0x00085D],
+ [0x00085F, 0x000963],
+ [0x000966, 0x00096F],
+ [0x000971, 0x0009FC],
+ [0x0009FE, 0x000A75],
+ [0x000A77, 0x000AEF],
+ [0x000AF1, 0x000C76],
+ [0x000C78, 0x000C83],
+ [0x000C85, 0x000DF3],
+ [0x000DF5, 0x000E4E],
+ [0x000E50, 0x000E59],
+ [0x000E5C, 0x000F03],
+ [0x000F15, 0x000F39],
+ [0x000F3E, 0x000F84],
+ [0x000F86, 0x000FCF],
+ [0x000FD5, 0x000FD8],
+ [0x000FDB, 0x001049],
+ [0x001050, 0x0010FA],
+ [0x0010FC, 0x00135F],
+ [0x001369, 0x0013FF],
+ [0x001401, 0x00166D],
+ [0x00166F, 0x00169A],
+ [0x00169D, 0x0016EA],
+ [0x0016EE, 0x001734],
+ [0x001737, 0x0017D3],
+ [0x0017DB, 0x0017FF],
+ [0x00180B, 0x001943],
+ [0x001946, 0x001A1D],
+ [0x001A20, 0x001A9F],
+ [0x001AAE, 0x001B59],
+ [0x001B61, 0x001BFB],
+ [0x001C00, 0x001C3A],
+ [0x001C40, 0x001C7D],
+ [0x001C80, 0x001CBF],
+ [0x001CC8, 0x001CD2],
+ [0x001CD4, 0x00200F],
+ [0x002028, 0x00202F],
+ [0x00205F, 0x00207C],
+ [0x00207F, 0x00208C],
+ [0x00208F, 0x002307],
+ [0x00230C, 0x002328],
+ [0x00232B, 0x002767],
+ [0x002776, 0x0027C4],
+ [0x0027C7, 0x0027E5],
+ [0x0027F0, 0x002982],
+ [0x002999, 0x0029D7],
+ [0x0029DC, 0x0029FB],
+ [0x0029FE, 0x002CF8],
+ [0x002D00, 0x002D6F],
+ [0x002D71, 0x002DFF],
+ [0x002E50, 0x002E51],
+ [0x002E53, 0x003000],
+ [0x003004, 0x003007],
+ [0x003012, 0x003013],
+ [0x003020, 0x00302F],
+ [0x003031, 0x00303C],
+ [0x00303E, 0x00309F],
+ [0x0030A1, 0x0030FA],
+ [0x0030FC, 0x00A4FD],
+ [0x00A500, 0x00A60C],
+ [0x00A610, 0x00A672],
+ [0x00A674, 0x00A67D],
+ [0x00A67F, 0x00A6F1],
+ [0x00A6F8, 0x00A873],
+ [0x00A878, 0x00A8CD],
+ [0x00A8D0, 0x00A8F7],
+ [0x00A8FD, 0x00A92D],
+ [0x00A930, 0x00A95E],
+ [0x00A960, 0x00A9C0],
+ [0x00A9CE, 0x00A9DD],
+ [0x00A9E0, 0x00AA5B],
+ [0x00AA60, 0x00AADD],
+ [0x00AAE0, 0x00AAEF],
+ [0x00AAF2, 0x00ABEA],
+ [0x00ABEC, 0x00DBFF],
+ [0x00E000, 0x00FD3D],
+ [0x00FD40, 0x00FE0F],
+ [0x00FE1A, 0x00FE2F],
+ [0x00FE64, 0x00FE67],
+ [0x00FE6C, 0x00FF00],
+ [0x00FF10, 0x00FF19],
+ [0x00FF1C, 0x00FF1E],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF40, 0x00FF5A],
+ [0x00FF66, 0x0100FF],
+ [0x010103, 0x01039E],
+ [0x0103A0, 0x0103CF],
+ [0x0103D1, 0x01056E],
+ [0x010570, 0x010856],
+ [0x010858, 0x01091E],
+ [0x010920, 0x01093E],
+ [0x010940, 0x010A4F],
+ [0x010A59, 0x010A7E],
+ [0x010A80, 0x010AEF],
+ [0x010AF7, 0x010B38],
+ [0x010B40, 0x010B98],
+ [0x010B9D, 0x010EAC],
+ [0x010EAE, 0x010F54],
+ [0x010F5A, 0x011046],
+ [0x01104E, 0x0110BA],
+ [0x0110C2, 0x01113F],
+ [0x011144, 0x011173],
+ [0x011176, 0x0111C4],
+ [0x0111C9, 0x0111CC],
+ [0x0111CE, 0x0111DA],
+ [0x0111E0, 0x011237],
+ [0x01123E, 0x0112A8],
+ [0x0112AA, 0x01144A],
+ [0x011450, 0x011459],
+ [0x01145E, 0x0114C5],
+ [0x0114C7, 0x0115C0],
+ [0x0115D8, 0x011640],
+ [0x011644, 0x01165F],
+ [0x01166D, 0x01173B],
+ [0x01173F, 0x01183A],
+ [0x01183C, 0x011943],
+ [0x011947, 0x0119E1],
+ [0x0119E3, 0x011A3E],
+ [0x011A47, 0x011A99],
+ [0x011AA3, 0x011C40],
+ [0x011C46, 0x011C6F],
+ [0x011C72, 0x011EF6],
+ [0x011EF9, 0x011FFE],
+ [0x012000, 0x01246F],
+ [0x012475, 0x016A6D],
+ [0x016A70, 0x016AF4],
+ [0x016AF6, 0x016B36],
+ [0x016B3C, 0x016B43],
+ [0x016B45, 0x016E96],
+ [0x016E9B, 0x016FE1],
+ [0x016FE3, 0x01BC9E],
+ [0x01BCA0, 0x01DA86],
+ [0x01DA8C, 0x01E95D],
+ [0x01E960, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=P}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=P}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=punct}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=punct}"
+);
+testPropertyEscapes(
+ /^\P{gc=Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{gc=P}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=P}"
+);
+testPropertyEscapes(
+ /^\P{gc=punct}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=punct}"
+);
+testPropertyEscapes(
+ /^\P{Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{P}+$/u,
+ nonMatchSymbols,
+ "\\P{P}"
+);
+testPropertyEscapes(
+ /^\P{punct}+$/u,
+ nonMatchSymbols,
+ "\\P{punct}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Separator.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Separator.js
new file mode 100644
index 0000000000..d0c58e9cac
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Separator.js
@@ -0,0 +1,108 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Separator`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000020,
+ 0x0000A0,
+ 0x001680,
+ 0x00202F,
+ 0x00205F,
+ 0x003000
+ ],
+ ranges: [
+ [0x002000, 0x00200A],
+ [0x002028, 0x002029]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Separator}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Separator}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Z}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Z}"
+);
+testPropertyEscapes(
+ /^\p{gc=Separator}+$/u,
+ matchSymbols,
+ "\\p{gc=Separator}"
+);
+testPropertyEscapes(
+ /^\p{gc=Z}+$/u,
+ matchSymbols,
+ "\\p{gc=Z}"
+);
+testPropertyEscapes(
+ /^\p{Separator}+$/u,
+ matchSymbols,
+ "\\p{Separator}"
+);
+testPropertyEscapes(
+ /^\p{Z}+$/u,
+ matchSymbols,
+ "\\p{Z}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00001F],
+ [0x000021, 0x00009F],
+ [0x0000A1, 0x00167F],
+ [0x001681, 0x001FFF],
+ [0x00200B, 0x002027],
+ [0x00202A, 0x00202E],
+ [0x002030, 0x00205E],
+ [0x002060, 0x002FFF],
+ [0x003001, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Separator}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Z}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Z}"
+);
+testPropertyEscapes(
+ /^\P{gc=Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Separator}"
+);
+testPropertyEscapes(
+ /^\P{gc=Z}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Z}"
+);
+testPropertyEscapes(
+ /^\P{Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{Separator}"
+);
+testPropertyEscapes(
+ /^\P{Z}+$/u,
+ nonMatchSymbols,
+ "\\P{Z}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Space_Separator.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Space_Separator.js
new file mode 100644
index 0000000000..379b4f01ee
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Space_Separator.js
@@ -0,0 +1,106 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Space_Separator`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000020,
+ 0x0000A0,
+ 0x001680,
+ 0x00202F,
+ 0x00205F,
+ 0x003000
+ ],
+ ranges: [
+ [0x002000, 0x00200A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Space_Separator}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Space_Separator}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Zs}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Zs}"
+);
+testPropertyEscapes(
+ /^\p{gc=Space_Separator}+$/u,
+ matchSymbols,
+ "\\p{gc=Space_Separator}"
+);
+testPropertyEscapes(
+ /^\p{gc=Zs}+$/u,
+ matchSymbols,
+ "\\p{gc=Zs}"
+);
+testPropertyEscapes(
+ /^\p{Space_Separator}+$/u,
+ matchSymbols,
+ "\\p{Space_Separator}"
+);
+testPropertyEscapes(
+ /^\p{Zs}+$/u,
+ matchSymbols,
+ "\\p{Zs}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00001F],
+ [0x000021, 0x00009F],
+ [0x0000A1, 0x00167F],
+ [0x001681, 0x001FFF],
+ [0x00200B, 0x00202E],
+ [0x002030, 0x00205E],
+ [0x002060, 0x002FFF],
+ [0x003001, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Space_Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Space_Separator}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Zs}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Zs}"
+);
+testPropertyEscapes(
+ /^\P{gc=Space_Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Space_Separator}"
+);
+testPropertyEscapes(
+ /^\P{gc=Zs}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Zs}"
+);
+testPropertyEscapes(
+ /^\P{Space_Separator}+$/u,
+ nonMatchSymbols,
+ "\\P{Space_Separator}"
+);
+testPropertyEscapes(
+ /^\P{Zs}+$/u,
+ nonMatchSymbols,
+ "\\P{Zs}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js
new file mode 100644
index 0000000000..8a2149040b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js
@@ -0,0 +1,443 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Spacing_Mark`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000903,
+ 0x00093B,
+ 0x0009D7,
+ 0x000A03,
+ 0x000A83,
+ 0x000AC9,
+ 0x000B3E,
+ 0x000B40,
+ 0x000B57,
+ 0x000BD7,
+ 0x000CBE,
+ 0x000D57,
+ 0x000F7F,
+ 0x001031,
+ 0x001038,
+ 0x00108F,
+ 0x0017B6,
+ 0x001A55,
+ 0x001A57,
+ 0x001A61,
+ 0x001B04,
+ 0x001B35,
+ 0x001B3B,
+ 0x001B82,
+ 0x001BA1,
+ 0x001BAA,
+ 0x001BE7,
+ 0x001BEE,
+ 0x001CE1,
+ 0x001CF7,
+ 0x00A827,
+ 0x00A983,
+ 0x00AA4D,
+ 0x00AA7B,
+ 0x00AA7D,
+ 0x00AAEB,
+ 0x00AAF5,
+ 0x00ABEC,
+ 0x011000,
+ 0x011002,
+ 0x011082,
+ 0x01112C,
+ 0x011182,
+ 0x0111CE,
+ 0x011235,
+ 0x011357,
+ 0x011445,
+ 0x0114B9,
+ 0x0114C1,
+ 0x0115BE,
+ 0x01163E,
+ 0x0116AC,
+ 0x0116B6,
+ 0x011726,
+ 0x011838,
+ 0x01193D,
+ 0x011940,
+ 0x011942,
+ 0x0119E4,
+ 0x011A39,
+ 0x011A97,
+ 0x011C2F,
+ 0x011C3E,
+ 0x011CA9,
+ 0x011CB1,
+ 0x011CB4,
+ 0x011D96
+ ],
+ ranges: [
+ [0x00093E, 0x000940],
+ [0x000949, 0x00094C],
+ [0x00094E, 0x00094F],
+ [0x000982, 0x000983],
+ [0x0009BE, 0x0009C0],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CC],
+ [0x000A3E, 0x000A40],
+ [0x000ABE, 0x000AC0],
+ [0x000ACB, 0x000ACC],
+ [0x000B02, 0x000B03],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4C],
+ [0x000BBE, 0x000BBF],
+ [0x000BC1, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCC],
+ [0x000C01, 0x000C03],
+ [0x000C41, 0x000C44],
+ [0x000C82, 0x000C83],
+ [0x000CC0, 0x000CC4],
+ [0x000CC7, 0x000CC8],
+ [0x000CCA, 0x000CCB],
+ [0x000CD5, 0x000CD6],
+ [0x000D02, 0x000D03],
+ [0x000D3E, 0x000D40],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4C],
+ [0x000D82, 0x000D83],
+ [0x000DCF, 0x000DD1],
+ [0x000DD8, 0x000DDF],
+ [0x000DF2, 0x000DF3],
+ [0x000F3E, 0x000F3F],
+ [0x00102B, 0x00102C],
+ [0x00103B, 0x00103C],
+ [0x001056, 0x001057],
+ [0x001062, 0x001064],
+ [0x001067, 0x00106D],
+ [0x001083, 0x001084],
+ [0x001087, 0x00108C],
+ [0x00109A, 0x00109C],
+ [0x0017BE, 0x0017C5],
+ [0x0017C7, 0x0017C8],
+ [0x001923, 0x001926],
+ [0x001929, 0x00192B],
+ [0x001930, 0x001931],
+ [0x001933, 0x001938],
+ [0x001A19, 0x001A1A],
+ [0x001A63, 0x001A64],
+ [0x001A6D, 0x001A72],
+ [0x001B3D, 0x001B41],
+ [0x001B43, 0x001B44],
+ [0x001BA6, 0x001BA7],
+ [0x001BEA, 0x001BEC],
+ [0x001BF2, 0x001BF3],
+ [0x001C24, 0x001C2B],
+ [0x001C34, 0x001C35],
+ [0x00302E, 0x00302F],
+ [0x00A823, 0x00A824],
+ [0x00A880, 0x00A881],
+ [0x00A8B4, 0x00A8C3],
+ [0x00A952, 0x00A953],
+ [0x00A9B4, 0x00A9B5],
+ [0x00A9BA, 0x00A9BB],
+ [0x00A9BE, 0x00A9C0],
+ [0x00AA2F, 0x00AA30],
+ [0x00AA33, 0x00AA34],
+ [0x00AAEE, 0x00AAEF],
+ [0x00ABE3, 0x00ABE4],
+ [0x00ABE6, 0x00ABE7],
+ [0x00ABE9, 0x00ABEA],
+ [0x0110B0, 0x0110B2],
+ [0x0110B7, 0x0110B8],
+ [0x011145, 0x011146],
+ [0x0111B3, 0x0111B5],
+ [0x0111BF, 0x0111C0],
+ [0x01122C, 0x01122E],
+ [0x011232, 0x011233],
+ [0x0112E0, 0x0112E2],
+ [0x011302, 0x011303],
+ [0x01133E, 0x01133F],
+ [0x011341, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134D],
+ [0x011362, 0x011363],
+ [0x011435, 0x011437],
+ [0x011440, 0x011441],
+ [0x0114B0, 0x0114B2],
+ [0x0114BB, 0x0114BE],
+ [0x0115AF, 0x0115B1],
+ [0x0115B8, 0x0115BB],
+ [0x011630, 0x011632],
+ [0x01163B, 0x01163C],
+ [0x0116AE, 0x0116AF],
+ [0x011720, 0x011721],
+ [0x01182C, 0x01182E],
+ [0x011930, 0x011935],
+ [0x011937, 0x011938],
+ [0x0119D1, 0x0119D3],
+ [0x0119DC, 0x0119DF],
+ [0x011A57, 0x011A58],
+ [0x011D8A, 0x011D8E],
+ [0x011D93, 0x011D94],
+ [0x011EF5, 0x011EF6],
+ [0x016F51, 0x016F87],
+ [0x016FF0, 0x016FF1],
+ [0x01D165, 0x01D166],
+ [0x01D16D, 0x01D172]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Spacing_Mark}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Spacing_Mark}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Mc}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Mc}"
+);
+testPropertyEscapes(
+ /^\p{gc=Spacing_Mark}+$/u,
+ matchSymbols,
+ "\\p{gc=Spacing_Mark}"
+);
+testPropertyEscapes(
+ /^\p{gc=Mc}+$/u,
+ matchSymbols,
+ "\\p{gc=Mc}"
+);
+testPropertyEscapes(
+ /^\p{Spacing_Mark}+$/u,
+ matchSymbols,
+ "\\p{Spacing_Mark}"
+);
+testPropertyEscapes(
+ /^\p{Mc}+$/u,
+ matchSymbols,
+ "\\p{Mc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00094D,
+ 0x000ACA,
+ 0x000B3F,
+ 0x000BC0,
+ 0x000BC9,
+ 0x000CBF,
+ 0x000CC9,
+ 0x000D49,
+ 0x0017C6,
+ 0x001932,
+ 0x001A56,
+ 0x001A62,
+ 0x001B3C,
+ 0x001B42,
+ 0x001BED,
+ 0x00AA7C,
+ 0x00ABE5,
+ 0x00ABE8,
+ 0x00ABEB,
+ 0x011001,
+ 0x011234,
+ 0x011340,
+ 0x0114BA,
+ 0x01163D,
+ 0x0116AD,
+ 0x011936,
+ 0x011941,
+ 0x011D95
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000902],
+ [0x000904, 0x00093A],
+ [0x00093C, 0x00093D],
+ [0x000941, 0x000948],
+ [0x000950, 0x000981],
+ [0x000984, 0x0009BD],
+ [0x0009C1, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CD, 0x0009D6],
+ [0x0009D8, 0x000A02],
+ [0x000A04, 0x000A3D],
+ [0x000A41, 0x000A82],
+ [0x000A84, 0x000ABD],
+ [0x000AC1, 0x000AC8],
+ [0x000ACD, 0x000B01],
+ [0x000B04, 0x000B3D],
+ [0x000B41, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4D, 0x000B56],
+ [0x000B58, 0x000BBD],
+ [0x000BC3, 0x000BC5],
+ [0x000BCD, 0x000BD6],
+ [0x000BD8, 0x000C00],
+ [0x000C04, 0x000C40],
+ [0x000C45, 0x000C81],
+ [0x000C84, 0x000CBD],
+ [0x000CC5, 0x000CC6],
+ [0x000CCC, 0x000CD4],
+ [0x000CD7, 0x000D01],
+ [0x000D04, 0x000D3D],
+ [0x000D41, 0x000D45],
+ [0x000D4D, 0x000D56],
+ [0x000D58, 0x000D81],
+ [0x000D84, 0x000DCE],
+ [0x000DD2, 0x000DD7],
+ [0x000DE0, 0x000DF1],
+ [0x000DF4, 0x000F3D],
+ [0x000F40, 0x000F7E],
+ [0x000F80, 0x00102A],
+ [0x00102D, 0x001030],
+ [0x001032, 0x001037],
+ [0x001039, 0x00103A],
+ [0x00103D, 0x001055],
+ [0x001058, 0x001061],
+ [0x001065, 0x001066],
+ [0x00106E, 0x001082],
+ [0x001085, 0x001086],
+ [0x00108D, 0x00108E],
+ [0x001090, 0x001099],
+ [0x00109D, 0x0017B5],
+ [0x0017B7, 0x0017BD],
+ [0x0017C9, 0x001922],
+ [0x001927, 0x001928],
+ [0x00192C, 0x00192F],
+ [0x001939, 0x001A18],
+ [0x001A1B, 0x001A54],
+ [0x001A58, 0x001A60],
+ [0x001A65, 0x001A6C],
+ [0x001A73, 0x001B03],
+ [0x001B05, 0x001B34],
+ [0x001B36, 0x001B3A],
+ [0x001B45, 0x001B81],
+ [0x001B83, 0x001BA0],
+ [0x001BA2, 0x001BA5],
+ [0x001BA8, 0x001BA9],
+ [0x001BAB, 0x001BE6],
+ [0x001BE8, 0x001BE9],
+ [0x001BEF, 0x001BF1],
+ [0x001BF4, 0x001C23],
+ [0x001C2C, 0x001C33],
+ [0x001C36, 0x001CE0],
+ [0x001CE2, 0x001CF6],
+ [0x001CF8, 0x00302D],
+ [0x003030, 0x00A822],
+ [0x00A825, 0x00A826],
+ [0x00A828, 0x00A87F],
+ [0x00A882, 0x00A8B3],
+ [0x00A8C4, 0x00A951],
+ [0x00A954, 0x00A982],
+ [0x00A984, 0x00A9B3],
+ [0x00A9B6, 0x00A9B9],
+ [0x00A9BC, 0x00A9BD],
+ [0x00A9C1, 0x00AA2E],
+ [0x00AA31, 0x00AA32],
+ [0x00AA35, 0x00AA4C],
+ [0x00AA4E, 0x00AA7A],
+ [0x00AA7E, 0x00AAEA],
+ [0x00AAEC, 0x00AAED],
+ [0x00AAF0, 0x00AAF4],
+ [0x00AAF6, 0x00ABE2],
+ [0x00ABED, 0x00DBFF],
+ [0x00E000, 0x010FFF],
+ [0x011003, 0x011081],
+ [0x011083, 0x0110AF],
+ [0x0110B3, 0x0110B6],
+ [0x0110B9, 0x01112B],
+ [0x01112D, 0x011144],
+ [0x011147, 0x011181],
+ [0x011183, 0x0111B2],
+ [0x0111B6, 0x0111BE],
+ [0x0111C1, 0x0111CD],
+ [0x0111CF, 0x01122B],
+ [0x01122F, 0x011231],
+ [0x011236, 0x0112DF],
+ [0x0112E3, 0x011301],
+ [0x011304, 0x01133D],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134E, 0x011356],
+ [0x011358, 0x011361],
+ [0x011364, 0x011434],
+ [0x011438, 0x01143F],
+ [0x011442, 0x011444],
+ [0x011446, 0x0114AF],
+ [0x0114B3, 0x0114B8],
+ [0x0114BF, 0x0114C0],
+ [0x0114C2, 0x0115AE],
+ [0x0115B2, 0x0115B7],
+ [0x0115BC, 0x0115BD],
+ [0x0115BF, 0x01162F],
+ [0x011633, 0x01163A],
+ [0x01163F, 0x0116AB],
+ [0x0116B0, 0x0116B5],
+ [0x0116B7, 0x01171F],
+ [0x011722, 0x011725],
+ [0x011727, 0x01182B],
+ [0x01182F, 0x011837],
+ [0x011839, 0x01192F],
+ [0x011939, 0x01193C],
+ [0x01193E, 0x01193F],
+ [0x011943, 0x0119D0],
+ [0x0119D4, 0x0119DB],
+ [0x0119E0, 0x0119E3],
+ [0x0119E5, 0x011A38],
+ [0x011A3A, 0x011A56],
+ [0x011A59, 0x011A96],
+ [0x011A98, 0x011C2E],
+ [0x011C30, 0x011C3D],
+ [0x011C3F, 0x011CA8],
+ [0x011CAA, 0x011CB0],
+ [0x011CB2, 0x011CB3],
+ [0x011CB5, 0x011D89],
+ [0x011D8F, 0x011D92],
+ [0x011D97, 0x011EF4],
+ [0x011EF7, 0x016F50],
+ [0x016F88, 0x016FEF],
+ [0x016FF2, 0x01D164],
+ [0x01D167, 0x01D16C],
+ [0x01D173, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Spacing_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Spacing_Mark}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Mc}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Mc}"
+);
+testPropertyEscapes(
+ /^\P{gc=Spacing_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Spacing_Mark}"
+);
+testPropertyEscapes(
+ /^\P{gc=Mc}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Mc}"
+);
+testPropertyEscapes(
+ /^\P{Spacing_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{Spacing_Mark}"
+);
+testPropertyEscapes(
+ /^\P{Mc}+$/u,
+ nonMatchSymbols,
+ "\\P{Mc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js
new file mode 100644
index 0000000000..06197c06f5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js
@@ -0,0 +1,92 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Surrogate`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x00D800, 0x00DBFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Surrogate}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Surrogate}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Cs}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Cs}"
+);
+testPropertyEscapes(
+ /^\p{gc=Surrogate}+$/u,
+ matchSymbols,
+ "\\p{gc=Surrogate}"
+);
+testPropertyEscapes(
+ /^\p{gc=Cs}+$/u,
+ matchSymbols,
+ "\\p{gc=Cs}"
+);
+testPropertyEscapes(
+ /^\p{Surrogate}+$/u,
+ matchSymbols,
+ "\\p{Surrogate}"
+);
+testPropertyEscapes(
+ /^\p{Cs}+$/u,
+ matchSymbols,
+ "\\p{Cs}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000000, 0x00D7FF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Surrogate}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Surrogate}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Cs}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Cs}"
+);
+testPropertyEscapes(
+ /^\P{gc=Surrogate}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Surrogate}"
+);
+testPropertyEscapes(
+ /^\P{gc=Cs}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Cs}"
+);
+testPropertyEscapes(
+ /^\P{Surrogate}+$/u,
+ nonMatchSymbols,
+ "\\P{Surrogate}"
+);
+testPropertyEscapes(
+ /^\P{Cs}+$/u,
+ nonMatchSymbols,
+ "\\P{Cs}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js
new file mode 100644
index 0000000000..d50af24bff
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js
@@ -0,0 +1,551 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Symbol`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000024,
+ 0x00002B,
+ 0x00005E,
+ 0x000060,
+ 0x00007C,
+ 0x00007E,
+ 0x0000AC,
+ 0x0000B4,
+ 0x0000B8,
+ 0x0000D7,
+ 0x0000F7,
+ 0x0002ED,
+ 0x000375,
+ 0x0003F6,
+ 0x000482,
+ 0x00060B,
+ 0x0006DE,
+ 0x0006E9,
+ 0x0007F6,
+ 0x000AF1,
+ 0x000B70,
+ 0x000C7F,
+ 0x000D4F,
+ 0x000D79,
+ 0x000E3F,
+ 0x000F13,
+ 0x000F34,
+ 0x000F36,
+ 0x000F38,
+ 0x00166D,
+ 0x0017DB,
+ 0x001940,
+ 0x001FBD,
+ 0x002044,
+ 0x002052,
+ 0x002114,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x00212E,
+ 0x00214F,
+ 0x003004,
+ 0x003020,
+ 0x003250,
+ 0x00AB5B,
+ 0x00FB29,
+ 0x00FE62,
+ 0x00FE69,
+ 0x00FF04,
+ 0x00FF0B,
+ 0x00FF3E,
+ 0x00FF40,
+ 0x00FF5C,
+ 0x00FF5E,
+ 0x0101A0,
+ 0x010AC8,
+ 0x01173F,
+ 0x016B45,
+ 0x01BC9C,
+ 0x01D245,
+ 0x01D6C1,
+ 0x01D6DB,
+ 0x01D6FB,
+ 0x01D715,
+ 0x01D735,
+ 0x01D74F,
+ 0x01D76F,
+ 0x01D789,
+ 0x01D7A9,
+ 0x01D7C3,
+ 0x01E14F,
+ 0x01E2FF,
+ 0x01ECAC,
+ 0x01ECB0,
+ 0x01ED2E
+ ],
+ ranges: [
+ [0x00003C, 0x00003E],
+ [0x0000A2, 0x0000A6],
+ [0x0000A8, 0x0000A9],
+ [0x0000AE, 0x0000B1],
+ [0x0002C2, 0x0002C5],
+ [0x0002D2, 0x0002DF],
+ [0x0002E5, 0x0002EB],
+ [0x0002EF, 0x0002FF],
+ [0x000384, 0x000385],
+ [0x00058D, 0x00058F],
+ [0x000606, 0x000608],
+ [0x00060E, 0x00060F],
+ [0x0006FD, 0x0006FE],
+ [0x0007FE, 0x0007FF],
+ [0x0009F2, 0x0009F3],
+ [0x0009FA, 0x0009FB],
+ [0x000BF3, 0x000BFA],
+ [0x000F01, 0x000F03],
+ [0x000F15, 0x000F17],
+ [0x000F1A, 0x000F1F],
+ [0x000FBE, 0x000FC5],
+ [0x000FC7, 0x000FCC],
+ [0x000FCE, 0x000FCF],
+ [0x000FD5, 0x000FD8],
+ [0x00109E, 0x00109F],
+ [0x001390, 0x001399],
+ [0x0019DE, 0x0019FF],
+ [0x001B61, 0x001B6A],
+ [0x001B74, 0x001B7C],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FDD, 0x001FDF],
+ [0x001FED, 0x001FEF],
+ [0x001FFD, 0x001FFE],
+ [0x00207A, 0x00207C],
+ [0x00208A, 0x00208C],
+ [0x0020A0, 0x0020BF],
+ [0x002100, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002118],
+ [0x00211E, 0x002123],
+ [0x00213A, 0x00213B],
+ [0x002140, 0x002144],
+ [0x00214A, 0x00214D],
+ [0x00218A, 0x00218B],
+ [0x002190, 0x002307],
+ [0x00230C, 0x002328],
+ [0x00232B, 0x002426],
+ [0x002440, 0x00244A],
+ [0x00249C, 0x0024E9],
+ [0x002500, 0x002767],
+ [0x002794, 0x0027C4],
+ [0x0027C7, 0x0027E5],
+ [0x0027F0, 0x002982],
+ [0x002999, 0x0029D7],
+ [0x0029DC, 0x0029FB],
+ [0x0029FE, 0x002B73],
+ [0x002B76, 0x002B95],
+ [0x002B97, 0x002BFF],
+ [0x002CE5, 0x002CEA],
+ [0x002E50, 0x002E51],
+ [0x002E80, 0x002E99],
+ [0x002E9B, 0x002EF3],
+ [0x002F00, 0x002FD5],
+ [0x002FF0, 0x002FFB],
+ [0x003012, 0x003013],
+ [0x003036, 0x003037],
+ [0x00303E, 0x00303F],
+ [0x00309B, 0x00309C],
+ [0x003190, 0x003191],
+ [0x003196, 0x00319F],
+ [0x0031C0, 0x0031E3],
+ [0x003200, 0x00321E],
+ [0x00322A, 0x003247],
+ [0x003260, 0x00327F],
+ [0x00328A, 0x0032B0],
+ [0x0032C0, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x00A490, 0x00A4C6],
+ [0x00A700, 0x00A716],
+ [0x00A720, 0x00A721],
+ [0x00A789, 0x00A78A],
+ [0x00A828, 0x00A82B],
+ [0x00A836, 0x00A839],
+ [0x00AA77, 0x00AA79],
+ [0x00AB6A, 0x00AB6B],
+ [0x00FBB2, 0x00FBC1],
+ [0x00FDFC, 0x00FDFD],
+ [0x00FE64, 0x00FE66],
+ [0x00FF1C, 0x00FF1E],
+ [0x00FFE0, 0x00FFE6],
+ [0x00FFE8, 0x00FFEE],
+ [0x00FFFC, 0x00FFFD],
+ [0x010137, 0x01013F],
+ [0x010179, 0x010189],
+ [0x01018C, 0x01018E],
+ [0x010190, 0x01019C],
+ [0x0101D0, 0x0101FC],
+ [0x010877, 0x010878],
+ [0x011FD5, 0x011FF1],
+ [0x016B3C, 0x016B3F],
+ [0x01D000, 0x01D0F5],
+ [0x01D100, 0x01D126],
+ [0x01D129, 0x01D164],
+ [0x01D16A, 0x01D16C],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D1E8],
+ [0x01D200, 0x01D241],
+ [0x01D300, 0x01D356],
+ [0x01D800, 0x01D9FF],
+ [0x01DA37, 0x01DA3A],
+ [0x01DA6D, 0x01DA74],
+ [0x01DA76, 0x01DA83],
+ [0x01DA85, 0x01DA86],
+ [0x01EEF0, 0x01EEF1],
+ [0x01F000, 0x01F02B],
+ [0x01F030, 0x01F093],
+ [0x01F0A0, 0x01F0AE],
+ [0x01F0B1, 0x01F0BF],
+ [0x01F0C1, 0x01F0CF],
+ [0x01F0D1, 0x01F0F5],
+ [0x01F10D, 0x01F1AD],
+ [0x01F1E6, 0x01F202],
+ [0x01F210, 0x01F23B],
+ [0x01F240, 0x01F248],
+ [0x01F250, 0x01F251],
+ [0x01F260, 0x01F265],
+ [0x01F300, 0x01F6D7],
+ [0x01F6E0, 0x01F6EC],
+ [0x01F6F0, 0x01F6FC],
+ [0x01F700, 0x01F773],
+ [0x01F780, 0x01F7D8],
+ [0x01F7E0, 0x01F7EB],
+ [0x01F800, 0x01F80B],
+ [0x01F810, 0x01F847],
+ [0x01F850, 0x01F859],
+ [0x01F860, 0x01F887],
+ [0x01F890, 0x01F8AD],
+ [0x01F8B0, 0x01F8B1],
+ [0x01F900, 0x01F978],
+ [0x01F97A, 0x01F9CB],
+ [0x01F9CD, 0x01FA53],
+ [0x01FA60, 0x01FA6D],
+ [0x01FA70, 0x01FA74],
+ [0x01FA78, 0x01FA7A],
+ [0x01FA80, 0x01FA86],
+ [0x01FA90, 0x01FAA8],
+ [0x01FAB0, 0x01FAB6],
+ [0x01FAC0, 0x01FAC2],
+ [0x01FAD0, 0x01FAD6],
+ [0x01FB00, 0x01FB92],
+ [0x01FB94, 0x01FBCA]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Symbol}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Symbol}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=S}+$/u,
+ matchSymbols,
+ "\\p{General_Category=S}"
+);
+testPropertyEscapes(
+ /^\p{gc=Symbol}+$/u,
+ matchSymbols,
+ "\\p{gc=Symbol}"
+);
+testPropertyEscapes(
+ /^\p{gc=S}+$/u,
+ matchSymbols,
+ "\\p{gc=S}"
+);
+testPropertyEscapes(
+ /^\p{Symbol}+$/u,
+ matchSymbols,
+ "\\p{Symbol}"
+);
+testPropertyEscapes(
+ /^\p{S}+$/u,
+ matchSymbols,
+ "\\p{S}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005F,
+ 0x00007D,
+ 0x0000A7,
+ 0x0000AD,
+ 0x0002EC,
+ 0x0002EE,
+ 0x000F14,
+ 0x000F35,
+ 0x000F37,
+ 0x000FC6,
+ 0x000FCD,
+ 0x001FBE,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x00214E,
+ 0x002B96,
+ 0x002E9A,
+ 0x00FE63,
+ 0x00FF3F,
+ 0x00FF5D,
+ 0x00FFE7,
+ 0x01018F,
+ 0x01DA75,
+ 0x01DA84,
+ 0x01F0C0,
+ 0x01F0D0,
+ 0x01F979,
+ 0x01F9CC,
+ 0x01FB93
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000023],
+ [0x000025, 0x00002A],
+ [0x00002C, 0x00003B],
+ [0x00003F, 0x00005D],
+ [0x000061, 0x00007B],
+ [0x00007F, 0x0000A1],
+ [0x0000AA, 0x0000AB],
+ [0x0000B2, 0x0000B3],
+ [0x0000B5, 0x0000B7],
+ [0x0000B9, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002C1],
+ [0x0002C6, 0x0002D1],
+ [0x0002E0, 0x0002E4],
+ [0x000300, 0x000374],
+ [0x000376, 0x000383],
+ [0x000386, 0x0003F5],
+ [0x0003F7, 0x000481],
+ [0x000483, 0x00058C],
+ [0x000590, 0x000605],
+ [0x000609, 0x00060A],
+ [0x00060C, 0x00060D],
+ [0x000610, 0x0006DD],
+ [0x0006DF, 0x0006E8],
+ [0x0006EA, 0x0006FC],
+ [0x0006FF, 0x0007F5],
+ [0x0007F7, 0x0007FD],
+ [0x000800, 0x0009F1],
+ [0x0009F4, 0x0009F9],
+ [0x0009FC, 0x000AF0],
+ [0x000AF2, 0x000B6F],
+ [0x000B71, 0x000BF2],
+ [0x000BFB, 0x000C7E],
+ [0x000C80, 0x000D4E],
+ [0x000D50, 0x000D78],
+ [0x000D7A, 0x000E3E],
+ [0x000E40, 0x000F00],
+ [0x000F04, 0x000F12],
+ [0x000F18, 0x000F19],
+ [0x000F20, 0x000F33],
+ [0x000F39, 0x000FBD],
+ [0x000FD0, 0x000FD4],
+ [0x000FD9, 0x00109D],
+ [0x0010A0, 0x00138F],
+ [0x00139A, 0x00166C],
+ [0x00166E, 0x0017DA],
+ [0x0017DC, 0x00193F],
+ [0x001941, 0x0019DD],
+ [0x001A00, 0x001B60],
+ [0x001B6B, 0x001B73],
+ [0x001B7D, 0x001FBC],
+ [0x001FC2, 0x001FCC],
+ [0x001FD0, 0x001FDC],
+ [0x001FE0, 0x001FEC],
+ [0x001FF0, 0x001FFC],
+ [0x001FFF, 0x002043],
+ [0x002045, 0x002051],
+ [0x002053, 0x002079],
+ [0x00207D, 0x002089],
+ [0x00208D, 0x00209F],
+ [0x0020C0, 0x0020FF],
+ [0x00210A, 0x002113],
+ [0x002119, 0x00211D],
+ [0x00212A, 0x00212D],
+ [0x00212F, 0x002139],
+ [0x00213C, 0x00213F],
+ [0x002145, 0x002149],
+ [0x002150, 0x002189],
+ [0x00218C, 0x00218F],
+ [0x002308, 0x00230B],
+ [0x002329, 0x00232A],
+ [0x002427, 0x00243F],
+ [0x00244B, 0x00249B],
+ [0x0024EA, 0x0024FF],
+ [0x002768, 0x002793],
+ [0x0027C5, 0x0027C6],
+ [0x0027E6, 0x0027EF],
+ [0x002983, 0x002998],
+ [0x0029D8, 0x0029DB],
+ [0x0029FC, 0x0029FD],
+ [0x002B74, 0x002B75],
+ [0x002C00, 0x002CE4],
+ [0x002CEB, 0x002E4F],
+ [0x002E52, 0x002E7F],
+ [0x002EF4, 0x002EFF],
+ [0x002FD6, 0x002FEF],
+ [0x002FFC, 0x003003],
+ [0x003005, 0x003011],
+ [0x003014, 0x00301F],
+ [0x003021, 0x003035],
+ [0x003038, 0x00303D],
+ [0x003040, 0x00309A],
+ [0x00309D, 0x00318F],
+ [0x003192, 0x003195],
+ [0x0031A0, 0x0031BF],
+ [0x0031E4, 0x0031FF],
+ [0x00321F, 0x003229],
+ [0x003248, 0x00324F],
+ [0x003251, 0x00325F],
+ [0x003280, 0x003289],
+ [0x0032B1, 0x0032BF],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x00A48F],
+ [0x00A4C7, 0x00A6FF],
+ [0x00A717, 0x00A71F],
+ [0x00A722, 0x00A788],
+ [0x00A78B, 0x00A827],
+ [0x00A82C, 0x00A835],
+ [0x00A83A, 0x00AA76],
+ [0x00AA7A, 0x00AB5A],
+ [0x00AB5C, 0x00AB69],
+ [0x00AB6C, 0x00DBFF],
+ [0x00E000, 0x00FB28],
+ [0x00FB2A, 0x00FBB1],
+ [0x00FBC2, 0x00FDFB],
+ [0x00FDFE, 0x00FE61],
+ [0x00FE67, 0x00FE68],
+ [0x00FE6A, 0x00FF03],
+ [0x00FF05, 0x00FF0A],
+ [0x00FF0C, 0x00FF1B],
+ [0x00FF1F, 0x00FF3D],
+ [0x00FF41, 0x00FF5B],
+ [0x00FF5F, 0x00FFDF],
+ [0x00FFEF, 0x00FFFB],
+ [0x00FFFE, 0x010136],
+ [0x010140, 0x010178],
+ [0x01018A, 0x01018B],
+ [0x01019D, 0x01019F],
+ [0x0101A1, 0x0101CF],
+ [0x0101FD, 0x010876],
+ [0x010879, 0x010AC7],
+ [0x010AC9, 0x01173E],
+ [0x011740, 0x011FD4],
+ [0x011FF2, 0x016B3B],
+ [0x016B40, 0x016B44],
+ [0x016B46, 0x01BC9B],
+ [0x01BC9D, 0x01CFFF],
+ [0x01D0F6, 0x01D0FF],
+ [0x01D127, 0x01D128],
+ [0x01D165, 0x01D169],
+ [0x01D16D, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D1E9, 0x01D1FF],
+ [0x01D242, 0x01D244],
+ [0x01D246, 0x01D2FF],
+ [0x01D357, 0x01D6C0],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6FA],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D734],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D76E],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D7A8],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7FF],
+ [0x01DA00, 0x01DA36],
+ [0x01DA3B, 0x01DA6C],
+ [0x01DA87, 0x01E14E],
+ [0x01E150, 0x01E2FE],
+ [0x01E300, 0x01ECAB],
+ [0x01ECAD, 0x01ECAF],
+ [0x01ECB1, 0x01ED2D],
+ [0x01ED2F, 0x01EEEF],
+ [0x01EEF2, 0x01EFFF],
+ [0x01F02C, 0x01F02F],
+ [0x01F094, 0x01F09F],
+ [0x01F0AF, 0x01F0B0],
+ [0x01F0F6, 0x01F10C],
+ [0x01F1AE, 0x01F1E5],
+ [0x01F203, 0x01F20F],
+ [0x01F23C, 0x01F23F],
+ [0x01F249, 0x01F24F],
+ [0x01F252, 0x01F25F],
+ [0x01F266, 0x01F2FF],
+ [0x01F6D8, 0x01F6DF],
+ [0x01F6ED, 0x01F6EF],
+ [0x01F6FD, 0x01F6FF],
+ [0x01F774, 0x01F77F],
+ [0x01F7D9, 0x01F7DF],
+ [0x01F7EC, 0x01F7FF],
+ [0x01F80C, 0x01F80F],
+ [0x01F848, 0x01F84F],
+ [0x01F85A, 0x01F85F],
+ [0x01F888, 0x01F88F],
+ [0x01F8AE, 0x01F8AF],
+ [0x01F8B2, 0x01F8FF],
+ [0x01FA54, 0x01FA5F],
+ [0x01FA6E, 0x01FA6F],
+ [0x01FA75, 0x01FA77],
+ [0x01FA7B, 0x01FA7F],
+ [0x01FA87, 0x01FA8F],
+ [0x01FAA9, 0x01FAAF],
+ [0x01FAB7, 0x01FABF],
+ [0x01FAC3, 0x01FACF],
+ [0x01FAD7, 0x01FAFF],
+ [0x01FBCB, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Symbol}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=S}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=S}"
+);
+testPropertyEscapes(
+ /^\P{gc=Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Symbol}"
+);
+testPropertyEscapes(
+ /^\P{gc=S}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=S}"
+);
+testPropertyEscapes(
+ /^\P{Symbol}+$/u,
+ nonMatchSymbols,
+ "\\P{Symbol}"
+);
+testPropertyEscapes(
+ /^\P{S}+$/u,
+ nonMatchSymbols,
+ "\\P{S}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Titlecase_Letter.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Titlecase_Letter.js
new file mode 100644
index 0000000000..783fd85fe6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Titlecase_Letter.js
@@ -0,0 +1,112 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Titlecase_Letter`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0001C5,
+ 0x0001C8,
+ 0x0001CB,
+ 0x0001F2,
+ 0x001FBC,
+ 0x001FCC,
+ 0x001FFC
+ ],
+ ranges: [
+ [0x001F88, 0x001F8F],
+ [0x001F98, 0x001F9F],
+ [0x001FA8, 0x001FAF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Titlecase_Letter}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Titlecase_Letter}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Lt}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Lt}"
+);
+testPropertyEscapes(
+ /^\p{gc=Titlecase_Letter}+$/u,
+ matchSymbols,
+ "\\p{gc=Titlecase_Letter}"
+);
+testPropertyEscapes(
+ /^\p{gc=Lt}+$/u,
+ matchSymbols,
+ "\\p{gc=Lt}"
+);
+testPropertyEscapes(
+ /^\p{Titlecase_Letter}+$/u,
+ matchSymbols,
+ "\\p{Titlecase_Letter}"
+);
+testPropertyEscapes(
+ /^\p{Lt}+$/u,
+ matchSymbols,
+ "\\p{Lt}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0001C4],
+ [0x0001C6, 0x0001C7],
+ [0x0001C9, 0x0001CA],
+ [0x0001CC, 0x0001F1],
+ [0x0001F3, 0x001F87],
+ [0x001F90, 0x001F97],
+ [0x001FA0, 0x001FA7],
+ [0x001FB0, 0x001FBB],
+ [0x001FBD, 0x001FCB],
+ [0x001FCD, 0x001FFB],
+ [0x001FFD, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Titlecase_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Titlecase_Letter}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Lt}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Lt}"
+);
+testPropertyEscapes(
+ /^\P{gc=Titlecase_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Titlecase_Letter}"
+);
+testPropertyEscapes(
+ /^\P{gc=Lt}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Lt}"
+);
+testPropertyEscapes(
+ /^\P{Titlecase_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{Titlecase_Letter}"
+);
+testPropertyEscapes(
+ /^\P{Lt}+$/u,
+ nonMatchSymbols,
+ "\\P{Lt}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js
new file mode 100644
index 0000000000..e75a91f740
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js
@@ -0,0 +1,1446 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Unassigned`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x000530,
+ 0x000590,
+ 0x00061D,
+ 0x00070E,
+ 0x00083F,
+ 0x00085F,
+ 0x0008B5,
+ 0x000984,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE,
+ 0x000A04,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A3D,
+ 0x000A5D,
+ 0x000A84,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000AC6,
+ 0x000ACA,
+ 0x000B00,
+ 0x000B04,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000BC9,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C45,
+ 0x000C49,
+ 0x000C57,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CC5,
+ 0x000CC9,
+ 0x000CDF,
+ 0x000CF0,
+ 0x000D0D,
+ 0x000D11,
+ 0x000D45,
+ 0x000D49,
+ 0x000D80,
+ 0x000D84,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000DD5,
+ 0x000DD7,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EC5,
+ 0x000EC7,
+ 0x000F48,
+ 0x000F98,
+ 0x000FBD,
+ 0x000FCD,
+ 0x0010C6,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x00170D,
+ 0x00176D,
+ 0x001771,
+ 0x00180F,
+ 0x00191F,
+ 0x001A5F,
+ 0x001DFA,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FC5,
+ 0x001FDC,
+ 0x001FF5,
+ 0x001FFF,
+ 0x002065,
+ 0x00208F,
+ 0x002B96,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x002DDF,
+ 0x002E9A,
+ 0x003040,
+ 0x003130,
+ 0x00318F,
+ 0x00321F,
+ 0x00A9CE,
+ 0x00A9FF,
+ 0x00AB27,
+ 0x00AB2F,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE53,
+ 0x00FE67,
+ 0x00FE75,
+ 0x00FF00,
+ 0x00FFE7,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x01018F,
+ 0x01039E,
+ 0x010809,
+ 0x010836,
+ 0x010856,
+ 0x0108F3,
+ 0x010A04,
+ 0x010A14,
+ 0x010A18,
+ 0x010E7F,
+ 0x010EAA,
+ 0x011135,
+ 0x0111E0,
+ 0x011212,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x011304,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x01133A,
+ 0x01145C,
+ 0x011914,
+ 0x011917,
+ 0x011936,
+ 0x011C09,
+ 0x011C37,
+ 0x011CA8,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D3B,
+ 0x011D3E,
+ 0x011D66,
+ 0x011D69,
+ 0x011D8F,
+ 0x011D92,
+ 0x01246F,
+ 0x01342F,
+ 0x016A5F,
+ 0x016B5A,
+ 0x016B62,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01DAA0,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA,
+ 0x01F0C0,
+ 0x01F0D0,
+ 0x01F979,
+ 0x01F9CC,
+ 0x01FB93
+ ],
+ ranges: [
+ [0x000378, 0x000379],
+ [0x000380, 0x000383],
+ [0x000557, 0x000558],
+ [0x00058B, 0x00058C],
+ [0x0005C8, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F5, 0x0005FF],
+ [0x00074B, 0x00074C],
+ [0x0007B2, 0x0007BF],
+ [0x0007FB, 0x0007FC],
+ [0x00082E, 0x00082F],
+ [0x00085C, 0x00085D],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x0008D2],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BB],
+ [0x0009C5, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CF, 0x0009D6],
+ [0x0009D8, 0x0009DB],
+ [0x0009E4, 0x0009E5],
+ [0x0009FF, 0x000A00],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A3B],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A58],
+ [0x000A5F, 0x000A65],
+ [0x000A77, 0x000A80],
+ [0x000ABA, 0x000ABB],
+ [0x000ACE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE4, 0x000AE5],
+ [0x000AF2, 0x000AF8],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3B],
+ [0x000B45, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4E, 0x000B54],
+ [0x000B58, 0x000B5B],
+ [0x000B64, 0x000B65],
+ [0x000B78, 0x000B81],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BBD],
+ [0x000BC3, 0x000BC5],
+ [0x000BCE, 0x000BCF],
+ [0x000BD1, 0x000BD6],
+ [0x000BD8, 0x000BE5],
+ [0x000BFB, 0x000BFF],
+ [0x000C3A, 0x000C3C],
+ [0x000C4E, 0x000C54],
+ [0x000C5B, 0x000C5F],
+ [0x000C64, 0x000C65],
+ [0x000C70, 0x000C76],
+ [0x000CBA, 0x000CBB],
+ [0x000CCE, 0x000CD4],
+ [0x000CD7, 0x000CDD],
+ [0x000CE4, 0x000CE5],
+ [0x000CF3, 0x000CFF],
+ [0x000D50, 0x000D53],
+ [0x000D64, 0x000D65],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000DC9],
+ [0x000DCB, 0x000DCE],
+ [0x000DE0, 0x000DE5],
+ [0x000DF0, 0x000DF1],
+ [0x000DF5, 0x000E00],
+ [0x000E3B, 0x000E3E],
+ [0x000E5C, 0x000E80],
+ [0x000EBE, 0x000EBF],
+ [0x000ECE, 0x000ECF],
+ [0x000EDA, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F6D, 0x000F70],
+ [0x000FDB, 0x000FFF],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00135C],
+ [0x00137D, 0x00137F],
+ [0x00139A, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x0013FF],
+ [0x00169D, 0x00169F],
+ [0x0016F9, 0x0016FF],
+ [0x001715, 0x00171F],
+ [0x001737, 0x00173F],
+ [0x001754, 0x00175F],
+ [0x001774, 0x00177F],
+ [0x0017DE, 0x0017DF],
+ [0x0017EA, 0x0017EF],
+ [0x0017FA, 0x0017FF],
+ [0x00181A, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00192C, 0x00192F],
+ [0x00193C, 0x00193F],
+ [0x001941, 0x001943],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019CF],
+ [0x0019DB, 0x0019DD],
+ [0x001A1C, 0x001A1D],
+ [0x001A7D, 0x001A7E],
+ [0x001A8A, 0x001A8F],
+ [0x001A9A, 0x001A9F],
+ [0x001AAE, 0x001AAF],
+ [0x001AC1, 0x001AFF],
+ [0x001B4C, 0x001B4F],
+ [0x001B7D, 0x001B7F],
+ [0x001BF4, 0x001BFB],
+ [0x001C38, 0x001C3A],
+ [0x001C4A, 0x001C4C],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC8, 0x001CCF],
+ [0x001CFB, 0x001CFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FD4, 0x001FD5],
+ [0x001FF0, 0x001FF1],
+ [0x002072, 0x002073],
+ [0x00209D, 0x00209F],
+ [0x0020C0, 0x0020CF],
+ [0x0020F1, 0x0020FF],
+ [0x00218C, 0x00218F],
+ [0x002427, 0x00243F],
+ [0x00244B, 0x00245F],
+ [0x002B74, 0x002B75],
+ [0x002CF4, 0x002CF8],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D71, 0x002D7E],
+ [0x002D97, 0x002D9F],
+ [0x002E53, 0x002E7F],
+ [0x002EF4, 0x002EFF],
+ [0x002FD6, 0x002FEF],
+ [0x002FFC, 0x002FFF],
+ [0x003097, 0x003098],
+ [0x003100, 0x003104],
+ [0x0031E4, 0x0031EF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A48F],
+ [0x00A4C7, 0x00A4CF],
+ [0x00A62C, 0x00A63F],
+ [0x00A6F8, 0x00A6FF],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A82D, 0x00A82F],
+ [0x00A83A, 0x00A83F],
+ [0x00A878, 0x00A87F],
+ [0x00A8C6, 0x00A8CD],
+ [0x00A8DA, 0x00A8DF],
+ [0x00A954, 0x00A95E],
+ [0x00A97D, 0x00A97F],
+ [0x00A9DA, 0x00A9DD],
+ [0x00AA37, 0x00AA3F],
+ [0x00AA4E, 0x00AA4F],
+ [0x00AA5A, 0x00AA5B],
+ [0x00AAC3, 0x00AADA],
+ [0x00AAF7, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB6C, 0x00AB6F],
+ [0x00ABEE, 0x00ABEF],
+ [0x00ABFA, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00D7FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBC2, 0x00FBD2],
+ [0x00FD40, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFE, 0x00FDFF],
+ [0x00FE1A, 0x00FE1F],
+ [0x00FE6C, 0x00FE6F],
+ [0x00FEFD, 0x00FEFE],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFDF],
+ [0x00FFEF, 0x00FFF8],
+ [0x00FFFE, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x0100FF],
+ [0x010103, 0x010106],
+ [0x010134, 0x010136],
+ [0x01019D, 0x01019F],
+ [0x0101A1, 0x0101CF],
+ [0x0101FE, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102DF],
+ [0x0102FC, 0x0102FF],
+ [0x010324, 0x01032C],
+ [0x01034B, 0x01034F],
+ [0x01037B, 0x01037F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x0103FF],
+ [0x01049E, 0x01049F],
+ [0x0104AA, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x01056E],
+ [0x010570, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x01089F, 0x0108A6],
+ [0x0108B0, 0x0108DF],
+ [0x0108F6, 0x0108FA],
+ [0x01091C, 0x01091E],
+ [0x01093A, 0x01093E],
+ [0x010940, 0x01097F],
+ [0x0109B8, 0x0109BB],
+ [0x0109D0, 0x0109D1],
+ [0x010A07, 0x010A0B],
+ [0x010A36, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A49, 0x010A4F],
+ [0x010A59, 0x010A5F],
+ [0x010AA0, 0x010ABF],
+ [0x010AE7, 0x010AEA],
+ [0x010AF7, 0x010AFF],
+ [0x010B36, 0x010B38],
+ [0x010B56, 0x010B57],
+ [0x010B73, 0x010B77],
+ [0x010B92, 0x010B98],
+ [0x010B9D, 0x010BA8],
+ [0x010BB0, 0x010BFF],
+ [0x010C49, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CF9],
+ [0x010D28, 0x010D2F],
+ [0x010D3A, 0x010E5F],
+ [0x010EAE, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F28, 0x010F2F],
+ [0x010F5A, 0x010FAF],
+ [0x010FCC, 0x010FDF],
+ [0x010FF7, 0x010FFF],
+ [0x01104E, 0x011051],
+ [0x011070, 0x01107E],
+ [0x0110C2, 0x0110CC],
+ [0x0110CE, 0x0110CF],
+ [0x0110E9, 0x0110EF],
+ [0x0110FA, 0x0110FF],
+ [0x011148, 0x01114F],
+ [0x011177, 0x01117F],
+ [0x0111F5, 0x0111FF],
+ [0x01123F, 0x01127F],
+ [0x0112AA, 0x0112AF],
+ [0x0112EB, 0x0112EF],
+ [0x0112FA, 0x0112FF],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134E, 0x01134F],
+ [0x011351, 0x011356],
+ [0x011358, 0x01135C],
+ [0x011364, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x0113FF],
+ [0x011462, 0x01147F],
+ [0x0114C8, 0x0114CF],
+ [0x0114DA, 0x01157F],
+ [0x0115B6, 0x0115B7],
+ [0x0115DE, 0x0115FF],
+ [0x011645, 0x01164F],
+ [0x01165A, 0x01165F],
+ [0x01166D, 0x01167F],
+ [0x0116B9, 0x0116BF],
+ [0x0116CA, 0x0116FF],
+ [0x01171B, 0x01171C],
+ [0x01172C, 0x01172F],
+ [0x011740, 0x0117FF],
+ [0x01183C, 0x01189F],
+ [0x0118F3, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011939, 0x01193A],
+ [0x011947, 0x01194F],
+ [0x01195A, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D8, 0x0119D9],
+ [0x0119E5, 0x0119FF],
+ [0x011A48, 0x011A4F],
+ [0x011AA3, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C46, 0x011C4F],
+ [0x011C6D, 0x011C6F],
+ [0x011C90, 0x011C91],
+ [0x011CB7, 0x011CFF],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D4F],
+ [0x011D5A, 0x011D5F],
+ [0x011D99, 0x011D9F],
+ [0x011DAA, 0x011EDF],
+ [0x011EF9, 0x011FAF],
+ [0x011FB1, 0x011FBF],
+ [0x011FF2, 0x011FFE],
+ [0x01239A, 0x0123FF],
+ [0x012475, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x013439, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A6A, 0x016A6D],
+ [0x016A70, 0x016ACF],
+ [0x016AEE, 0x016AEF],
+ [0x016AF6, 0x016AFF],
+ [0x016B46, 0x016B4F],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016E3F],
+ [0x016E9B, 0x016EFF],
+ [0x016F4B, 0x016F4E],
+ [0x016F88, 0x016F8E],
+ [0x016FA0, 0x016FDF],
+ [0x016FE5, 0x016FEF],
+ [0x016FF2, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01BC9B],
+ [0x01BCA4, 0x01CFFF],
+ [0x01D0F6, 0x01D0FF],
+ [0x01D127, 0x01D128],
+ [0x01D1E9, 0x01D1FF],
+ [0x01D246, 0x01D2DF],
+ [0x01D2F4, 0x01D2FF],
+ [0x01D357, 0x01D35F],
+ [0x01D379, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01D7CD],
+ [0x01DA8C, 0x01DA9A],
+ [0x01DAB0, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x01E0FF],
+ [0x01E12D, 0x01E12F],
+ [0x01E13E, 0x01E13F],
+ [0x01E14A, 0x01E14D],
+ [0x01E150, 0x01E2BF],
+ [0x01E2FA, 0x01E2FE],
+ [0x01E300, 0x01E7FF],
+ [0x01E8C5, 0x01E8C6],
+ [0x01E8D7, 0x01E8FF],
+ [0x01E94C, 0x01E94F],
+ [0x01E95A, 0x01E95D],
+ [0x01E960, 0x01EC70],
+ [0x01ECB5, 0x01ED00],
+ [0x01ED3E, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01EEEF],
+ [0x01EEF2, 0x01EFFF],
+ [0x01F02C, 0x01F02F],
+ [0x01F094, 0x01F09F],
+ [0x01F0AF, 0x01F0B0],
+ [0x01F0F6, 0x01F0FF],
+ [0x01F1AE, 0x01F1E5],
+ [0x01F203, 0x01F20F],
+ [0x01F23C, 0x01F23F],
+ [0x01F249, 0x01F24F],
+ [0x01F252, 0x01F25F],
+ [0x01F266, 0x01F2FF],
+ [0x01F6D8, 0x01F6DF],
+ [0x01F6ED, 0x01F6EF],
+ [0x01F6FD, 0x01F6FF],
+ [0x01F774, 0x01F77F],
+ [0x01F7D9, 0x01F7DF],
+ [0x01F7EC, 0x01F7FF],
+ [0x01F80C, 0x01F80F],
+ [0x01F848, 0x01F84F],
+ [0x01F85A, 0x01F85F],
+ [0x01F888, 0x01F88F],
+ [0x01F8AE, 0x01F8AF],
+ [0x01F8B2, 0x01F8FF],
+ [0x01FA54, 0x01FA5F],
+ [0x01FA6E, 0x01FA6F],
+ [0x01FA75, 0x01FA77],
+ [0x01FA7B, 0x01FA7F],
+ [0x01FA87, 0x01FA8F],
+ [0x01FAA9, 0x01FAAF],
+ [0x01FAB7, 0x01FABF],
+ [0x01FAC3, 0x01FACF],
+ [0x01FAD7, 0x01FAFF],
+ [0x01FBCB, 0x01FBEF],
+ [0x01FBFA, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x0E0000],
+ [0x0E0002, 0x0E001F],
+ [0x0E0080, 0x0E00FF],
+ [0x0E01F0, 0x0EFFFF],
+ [0x0FFFFE, 0x0FFFFF],
+ [0x10FFFE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Unassigned}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Unassigned}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Cn}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Cn}"
+);
+testPropertyEscapes(
+ /^\p{gc=Unassigned}+$/u,
+ matchSymbols,
+ "\\p{gc=Unassigned}"
+);
+testPropertyEscapes(
+ /^\p{gc=Cn}+$/u,
+ matchSymbols,
+ "\\p{gc=Cn}"
+);
+testPropertyEscapes(
+ /^\p{Unassigned}+$/u,
+ matchSymbols,
+ "\\p{Unassigned}"
+);
+testPropertyEscapes(
+ /^\p{Cn}+$/u,
+ matchSymbols,
+ "\\p{Cn}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00038C,
+ 0x00085E,
+ 0x0009B2,
+ 0x0009D7,
+ 0x000A3C,
+ 0x000A51,
+ 0x000A5E,
+ 0x000AD0,
+ 0x000B9C,
+ 0x000BD0,
+ 0x000BD7,
+ 0x000CDE,
+ 0x000DBD,
+ 0x000DCA,
+ 0x000DD6,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EC6,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001258,
+ 0x0012C0,
+ 0x001940,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x002D27,
+ 0x002D2D,
+ 0x00FB3E,
+ 0x00FEFF,
+ 0x0101A0,
+ 0x01056F,
+ 0x010808,
+ 0x01083C,
+ 0x01093F,
+ 0x0110CD,
+ 0x011288,
+ 0x011350,
+ 0x011357,
+ 0x011909,
+ 0x011D3A,
+ 0x011FB0,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01E2FF,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E,
+ 0x0E0001
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000377],
+ [0x00037A, 0x00037F],
+ [0x000384, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000559, 0x00058A],
+ [0x00058D, 0x00058F],
+ [0x000591, 0x0005C7],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F4],
+ [0x000600, 0x00061C],
+ [0x00061E, 0x00070D],
+ [0x00070F, 0x00074A],
+ [0x00074D, 0x0007B1],
+ [0x0007C0, 0x0007FA],
+ [0x0007FD, 0x00082D],
+ [0x000830, 0x00083E],
+ [0x000840, 0x00085B],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x0008D3, 0x000983],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009BC, 0x0009C4],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CE],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E3],
+ [0x0009E6, 0x0009FE],
+ [0x000A01, 0x000A03],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A3E, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A59, 0x000A5C],
+ [0x000A66, 0x000A76],
+ [0x000A81, 0x000A83],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000ABC, 0x000AC5],
+ [0x000AC7, 0x000AC9],
+ [0x000ACB, 0x000ACD],
+ [0x000AE0, 0x000AE3],
+ [0x000AE6, 0x000AF1],
+ [0x000AF9, 0x000AFF],
+ [0x000B01, 0x000B03],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B3C, 0x000B44],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4D],
+ [0x000B55, 0x000B57],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B63],
+ [0x000B66, 0x000B77],
+ [0x000B82, 0x000B83],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000BBE, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCD],
+ [0x000BE6, 0x000BFA],
+ [0x000C00, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C3D, 0x000C44],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C63],
+ [0x000C66, 0x000C6F],
+ [0x000C77, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CBC, 0x000CC4],
+ [0x000CC6, 0x000CC8],
+ [0x000CCA, 0x000CCD],
+ [0x000CD5, 0x000CD6],
+ [0x000CE0, 0x000CE3],
+ [0x000CE6, 0x000CEF],
+ [0x000CF1, 0x000CF2],
+ [0x000D00, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D44],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4F],
+ [0x000D54, 0x000D63],
+ [0x000D66, 0x000D7F],
+ [0x000D81, 0x000D83],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000DCF, 0x000DD4],
+ [0x000DD8, 0x000DDF],
+ [0x000DE6, 0x000DEF],
+ [0x000DF2, 0x000DF4],
+ [0x000E01, 0x000E3A],
+ [0x000E3F, 0x000E5B],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EBD],
+ [0x000EC0, 0x000EC4],
+ [0x000EC8, 0x000ECD],
+ [0x000ED0, 0x000ED9],
+ [0x000EDC, 0x000EDF],
+ [0x000F00, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F71, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x000FBE, 0x000FCC],
+ [0x000FCE, 0x000FDA],
+ [0x001000, 0x0010C5],
+ [0x0010D0, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x00135D, 0x00137C],
+ [0x001380, 0x001399],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001400, 0x00169C],
+ [0x0016A0, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001714],
+ [0x001720, 0x001736],
+ [0x001740, 0x001753],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001772, 0x001773],
+ [0x001780, 0x0017DD],
+ [0x0017E0, 0x0017E9],
+ [0x0017F0, 0x0017F9],
+ [0x001800, 0x00180E],
+ [0x001810, 0x001819],
+ [0x001820, 0x001878],
+ [0x001880, 0x0018AA],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001920, 0x00192B],
+ [0x001930, 0x00193B],
+ [0x001944, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x0019D0, 0x0019DA],
+ [0x0019DE, 0x001A1B],
+ [0x001A1E, 0x001A5E],
+ [0x001A60, 0x001A7C],
+ [0x001A7F, 0x001A89],
+ [0x001A90, 0x001A99],
+ [0x001AA0, 0x001AAD],
+ [0x001AB0, 0x001AC0],
+ [0x001B00, 0x001B4B],
+ [0x001B50, 0x001B7C],
+ [0x001B80, 0x001BF3],
+ [0x001BFC, 0x001C37],
+ [0x001C3B, 0x001C49],
+ [0x001C4D, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CC7],
+ [0x001CD0, 0x001CFA],
+ [0x001D00, 0x001DF9],
+ [0x001DFB, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FC4],
+ [0x001FC6, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FDD, 0x001FEF],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFE],
+ [0x002000, 0x002064],
+ [0x002066, 0x002071],
+ [0x002074, 0x00208E],
+ [0x002090, 0x00209C],
+ [0x0020A0, 0x0020BF],
+ [0x0020D0, 0x0020F0],
+ [0x002100, 0x00218B],
+ [0x002190, 0x002426],
+ [0x002440, 0x00244A],
+ [0x002460, 0x002B73],
+ [0x002B76, 0x002B95],
+ [0x002B97, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CF3],
+ [0x002CF9, 0x002D25],
+ [0x002D30, 0x002D67],
+ [0x002D6F, 0x002D70],
+ [0x002D7F, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x002DE0, 0x002E52],
+ [0x002E80, 0x002E99],
+ [0x002E9B, 0x002EF3],
+ [0x002F00, 0x002FD5],
+ [0x002FF0, 0x002FFB],
+ [0x003000, 0x00303F],
+ [0x003041, 0x003096],
+ [0x003099, 0x0030FF],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x003190, 0x0031E3],
+ [0x0031F0, 0x00321E],
+ [0x003220, 0x009FFC],
+ [0x00A000, 0x00A48C],
+ [0x00A490, 0x00A4C6],
+ [0x00A4D0, 0x00A62B],
+ [0x00A640, 0x00A6F7],
+ [0x00A700, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A82C],
+ [0x00A830, 0x00A839],
+ [0x00A840, 0x00A877],
+ [0x00A880, 0x00A8C5],
+ [0x00A8CE, 0x00A8D9],
+ [0x00A8E0, 0x00A953],
+ [0x00A95F, 0x00A97C],
+ [0x00A980, 0x00A9CD],
+ [0x00A9CF, 0x00A9D9],
+ [0x00A9DE, 0x00A9FE],
+ [0x00AA00, 0x00AA36],
+ [0x00AA40, 0x00AA4D],
+ [0x00AA50, 0x00AA59],
+ [0x00AA5C, 0x00AAC2],
+ [0x00AADB, 0x00AAF6],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00AB30, 0x00AB6B],
+ [0x00AB70, 0x00ABED],
+ [0x00ABF0, 0x00ABF9],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00D800, 0x00DBFF],
+ [0x00E000, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1D, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBC1],
+ [0x00FBD3, 0x00FD3F],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFD],
+ [0x00FE00, 0x00FE19],
+ [0x00FE20, 0x00FE52],
+ [0x00FE54, 0x00FE66],
+ [0x00FE68, 0x00FE6B],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x00FF01, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x00FFE0, 0x00FFE6],
+ [0x00FFE8, 0x00FFEE],
+ [0x00FFF9, 0x00FFFD],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010100, 0x010102],
+ [0x010107, 0x010133],
+ [0x010137, 0x01018E],
+ [0x010190, 0x01019C],
+ [0x0101D0, 0x0101FD],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x0102E0, 0x0102FB],
+ [0x010300, 0x010323],
+ [0x01032D, 0x01034A],
+ [0x010350, 0x01037A],
+ [0x010380, 0x01039D],
+ [0x01039F, 0x0103C3],
+ [0x0103C8, 0x0103D5],
+ [0x010400, 0x01049D],
+ [0x0104A0, 0x0104A9],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010857, 0x01089E],
+ [0x0108A7, 0x0108AF],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x0108FB, 0x01091B],
+ [0x01091F, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BC, 0x0109CF],
+ [0x0109D2, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A38, 0x010A3A],
+ [0x010A3F, 0x010A48],
+ [0x010A50, 0x010A58],
+ [0x010A60, 0x010A9F],
+ [0x010AC0, 0x010AE6],
+ [0x010AEB, 0x010AF6],
+ [0x010B00, 0x010B35],
+ [0x010B39, 0x010B55],
+ [0x010B58, 0x010B72],
+ [0x010B78, 0x010B91],
+ [0x010B99, 0x010B9C],
+ [0x010BA9, 0x010BAF],
+ [0x010C00, 0x010C48],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010CFA, 0x010D27],
+ [0x010D30, 0x010D39],
+ [0x010E60, 0x010E7E],
+ [0x010E80, 0x010EA9],
+ [0x010EAB, 0x010EAD],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F27],
+ [0x010F30, 0x010F59],
+ [0x010FB0, 0x010FCB],
+ [0x010FE0, 0x010FF6],
+ [0x011000, 0x01104D],
+ [0x011052, 0x01106F],
+ [0x01107F, 0x0110C1],
+ [0x0110D0, 0x0110E8],
+ [0x0110F0, 0x0110F9],
+ [0x011100, 0x011134],
+ [0x011136, 0x011147],
+ [0x011150, 0x011176],
+ [0x011180, 0x0111DF],
+ [0x0111E1, 0x0111F4],
+ [0x011200, 0x011211],
+ [0x011213, 0x01123E],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A9],
+ [0x0112B0, 0x0112EA],
+ [0x0112F0, 0x0112F9],
+ [0x011300, 0x011303],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01133B, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134D],
+ [0x01135D, 0x011363],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x011400, 0x01145B],
+ [0x01145D, 0x011461],
+ [0x011480, 0x0114C7],
+ [0x0114D0, 0x0114D9],
+ [0x011580, 0x0115B5],
+ [0x0115B8, 0x0115DD],
+ [0x011600, 0x011644],
+ [0x011650, 0x011659],
+ [0x011660, 0x01166C],
+ [0x011680, 0x0116B8],
+ [0x0116C0, 0x0116C9],
+ [0x011700, 0x01171A],
+ [0x01171D, 0x01172B],
+ [0x011730, 0x01173F],
+ [0x011800, 0x01183B],
+ [0x0118A0, 0x0118F2],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x011935],
+ [0x011937, 0x011938],
+ [0x01193B, 0x011946],
+ [0x011950, 0x011959],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D7],
+ [0x0119DA, 0x0119E4],
+ [0x011A00, 0x011A47],
+ [0x011A50, 0x011AA2],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C36],
+ [0x011C38, 0x011C45],
+ [0x011C50, 0x011C6C],
+ [0x011C70, 0x011C8F],
+ [0x011C92, 0x011CA7],
+ [0x011CA9, 0x011CB6],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D47],
+ [0x011D50, 0x011D59],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D8E],
+ [0x011D90, 0x011D91],
+ [0x011D93, 0x011D98],
+ [0x011DA0, 0x011DA9],
+ [0x011EE0, 0x011EF8],
+ [0x011FC0, 0x011FF1],
+ [0x011FFF, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012470, 0x012474],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x013430, 0x013438],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016A60, 0x016A69],
+ [0x016A6E, 0x016A6F],
+ [0x016AD0, 0x016AED],
+ [0x016AF0, 0x016AF5],
+ [0x016B00, 0x016B45],
+ [0x016B50, 0x016B59],
+ [0x016B5B, 0x016B61],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016E40, 0x016E9A],
+ [0x016F00, 0x016F4A],
+ [0x016F4F, 0x016F87],
+ [0x016F8F, 0x016F9F],
+ [0x016FE0, 0x016FE4],
+ [0x016FF0, 0x016FF1],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01BC9C, 0x01BCA3],
+ [0x01D000, 0x01D0F5],
+ [0x01D100, 0x01D126],
+ [0x01D129, 0x01D1E8],
+ [0x01D200, 0x01D245],
+ [0x01D2E0, 0x01D2F3],
+ [0x01D300, 0x01D356],
+ [0x01D360, 0x01D378],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D7CB],
+ [0x01D7CE, 0x01DA8B],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A],
+ [0x01E100, 0x01E12C],
+ [0x01E130, 0x01E13D],
+ [0x01E140, 0x01E149],
+ [0x01E14E, 0x01E14F],
+ [0x01E2C0, 0x01E2F9],
+ [0x01E800, 0x01E8C4],
+ [0x01E8C7, 0x01E8D6],
+ [0x01E900, 0x01E94B],
+ [0x01E950, 0x01E959],
+ [0x01E95E, 0x01E95F],
+ [0x01EC71, 0x01ECB4],
+ [0x01ED01, 0x01ED3D],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01EEF0, 0x01EEF1],
+ [0x01F000, 0x01F02B],
+ [0x01F030, 0x01F093],
+ [0x01F0A0, 0x01F0AE],
+ [0x01F0B1, 0x01F0BF],
+ [0x01F0C1, 0x01F0CF],
+ [0x01F0D1, 0x01F0F5],
+ [0x01F100, 0x01F1AD],
+ [0x01F1E6, 0x01F202],
+ [0x01F210, 0x01F23B],
+ [0x01F240, 0x01F248],
+ [0x01F250, 0x01F251],
+ [0x01F260, 0x01F265],
+ [0x01F300, 0x01F6D7],
+ [0x01F6E0, 0x01F6EC],
+ [0x01F6F0, 0x01F6FC],
+ [0x01F700, 0x01F773],
+ [0x01F780, 0x01F7D8],
+ [0x01F7E0, 0x01F7EB],
+ [0x01F800, 0x01F80B],
+ [0x01F810, 0x01F847],
+ [0x01F850, 0x01F859],
+ [0x01F860, 0x01F887],
+ [0x01F890, 0x01F8AD],
+ [0x01F8B0, 0x01F8B1],
+ [0x01F900, 0x01F978],
+ [0x01F97A, 0x01F9CB],
+ [0x01F9CD, 0x01FA53],
+ [0x01FA60, 0x01FA6D],
+ [0x01FA70, 0x01FA74],
+ [0x01FA78, 0x01FA7A],
+ [0x01FA80, 0x01FA86],
+ [0x01FA90, 0x01FAA8],
+ [0x01FAB0, 0x01FAB6],
+ [0x01FAC0, 0x01FAC2],
+ [0x01FAD0, 0x01FAD6],
+ [0x01FB00, 0x01FB92],
+ [0x01FB94, 0x01FBCA],
+ [0x01FBF0, 0x01FBF9],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A],
+ [0x0E0020, 0x0E007F],
+ [0x0E0100, 0x0E01EF],
+ [0x0F0000, 0x0FFFFD],
+ [0x100000, 0x10FFFD]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Unassigned}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Unassigned}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Cn}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Cn}"
+);
+testPropertyEscapes(
+ /^\P{gc=Unassigned}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Unassigned}"
+);
+testPropertyEscapes(
+ /^\P{gc=Cn}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Cn}"
+);
+testPropertyEscapes(
+ /^\P{Unassigned}+$/u,
+ nonMatchSymbols,
+ "\\P{Unassigned}"
+);
+testPropertyEscapes(
+ /^\P{Cn}+$/u,
+ nonMatchSymbols,
+ "\\P{Cn}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Uppercase_Letter.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Uppercase_Letter.js
new file mode 100644
index 0000000000..85d4825b11
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Uppercase_Letter.js
@@ -0,0 +1,1369 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `General_Category=Uppercase_Letter`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000100,
+ 0x000102,
+ 0x000104,
+ 0x000106,
+ 0x000108,
+ 0x00010A,
+ 0x00010C,
+ 0x00010E,
+ 0x000110,
+ 0x000112,
+ 0x000114,
+ 0x000116,
+ 0x000118,
+ 0x00011A,
+ 0x00011C,
+ 0x00011E,
+ 0x000120,
+ 0x000122,
+ 0x000124,
+ 0x000126,
+ 0x000128,
+ 0x00012A,
+ 0x00012C,
+ 0x00012E,
+ 0x000130,
+ 0x000132,
+ 0x000134,
+ 0x000136,
+ 0x000139,
+ 0x00013B,
+ 0x00013D,
+ 0x00013F,
+ 0x000141,
+ 0x000143,
+ 0x000145,
+ 0x000147,
+ 0x00014A,
+ 0x00014C,
+ 0x00014E,
+ 0x000150,
+ 0x000152,
+ 0x000154,
+ 0x000156,
+ 0x000158,
+ 0x00015A,
+ 0x00015C,
+ 0x00015E,
+ 0x000160,
+ 0x000162,
+ 0x000164,
+ 0x000166,
+ 0x000168,
+ 0x00016A,
+ 0x00016C,
+ 0x00016E,
+ 0x000170,
+ 0x000172,
+ 0x000174,
+ 0x000176,
+ 0x00017B,
+ 0x00017D,
+ 0x000184,
+ 0x0001A2,
+ 0x0001A4,
+ 0x0001A9,
+ 0x0001AC,
+ 0x0001B5,
+ 0x0001BC,
+ 0x0001C4,
+ 0x0001C7,
+ 0x0001CA,
+ 0x0001CD,
+ 0x0001CF,
+ 0x0001D1,
+ 0x0001D3,
+ 0x0001D5,
+ 0x0001D7,
+ 0x0001D9,
+ 0x0001DB,
+ 0x0001DE,
+ 0x0001E0,
+ 0x0001E2,
+ 0x0001E4,
+ 0x0001E6,
+ 0x0001E8,
+ 0x0001EA,
+ 0x0001EC,
+ 0x0001EE,
+ 0x0001F1,
+ 0x0001F4,
+ 0x0001FA,
+ 0x0001FC,
+ 0x0001FE,
+ 0x000200,
+ 0x000202,
+ 0x000204,
+ 0x000206,
+ 0x000208,
+ 0x00020A,
+ 0x00020C,
+ 0x00020E,
+ 0x000210,
+ 0x000212,
+ 0x000214,
+ 0x000216,
+ 0x000218,
+ 0x00021A,
+ 0x00021C,
+ 0x00021E,
+ 0x000220,
+ 0x000222,
+ 0x000224,
+ 0x000226,
+ 0x000228,
+ 0x00022A,
+ 0x00022C,
+ 0x00022E,
+ 0x000230,
+ 0x000232,
+ 0x000241,
+ 0x000248,
+ 0x00024A,
+ 0x00024C,
+ 0x00024E,
+ 0x000370,
+ 0x000372,
+ 0x000376,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x0003CF,
+ 0x0003D8,
+ 0x0003DA,
+ 0x0003DC,
+ 0x0003DE,
+ 0x0003E0,
+ 0x0003E2,
+ 0x0003E4,
+ 0x0003E6,
+ 0x0003E8,
+ 0x0003EA,
+ 0x0003EC,
+ 0x0003EE,
+ 0x0003F4,
+ 0x0003F7,
+ 0x000460,
+ 0x000462,
+ 0x000464,
+ 0x000466,
+ 0x000468,
+ 0x00046A,
+ 0x00046C,
+ 0x00046E,
+ 0x000470,
+ 0x000472,
+ 0x000474,
+ 0x000476,
+ 0x000478,
+ 0x00047A,
+ 0x00047C,
+ 0x00047E,
+ 0x000480,
+ 0x00048A,
+ 0x00048C,
+ 0x00048E,
+ 0x000490,
+ 0x000492,
+ 0x000494,
+ 0x000496,
+ 0x000498,
+ 0x00049A,
+ 0x00049C,
+ 0x00049E,
+ 0x0004A0,
+ 0x0004A2,
+ 0x0004A4,
+ 0x0004A6,
+ 0x0004A8,
+ 0x0004AA,
+ 0x0004AC,
+ 0x0004AE,
+ 0x0004B0,
+ 0x0004B2,
+ 0x0004B4,
+ 0x0004B6,
+ 0x0004B8,
+ 0x0004BA,
+ 0x0004BC,
+ 0x0004BE,
+ 0x0004C3,
+ 0x0004C5,
+ 0x0004C7,
+ 0x0004C9,
+ 0x0004CB,
+ 0x0004CD,
+ 0x0004D0,
+ 0x0004D2,
+ 0x0004D4,
+ 0x0004D6,
+ 0x0004D8,
+ 0x0004DA,
+ 0x0004DC,
+ 0x0004DE,
+ 0x0004E0,
+ 0x0004E2,
+ 0x0004E4,
+ 0x0004E6,
+ 0x0004E8,
+ 0x0004EA,
+ 0x0004EC,
+ 0x0004EE,
+ 0x0004F0,
+ 0x0004F2,
+ 0x0004F4,
+ 0x0004F6,
+ 0x0004F8,
+ 0x0004FA,
+ 0x0004FC,
+ 0x0004FE,
+ 0x000500,
+ 0x000502,
+ 0x000504,
+ 0x000506,
+ 0x000508,
+ 0x00050A,
+ 0x00050C,
+ 0x00050E,
+ 0x000510,
+ 0x000512,
+ 0x000514,
+ 0x000516,
+ 0x000518,
+ 0x00051A,
+ 0x00051C,
+ 0x00051E,
+ 0x000520,
+ 0x000522,
+ 0x000524,
+ 0x000526,
+ 0x000528,
+ 0x00052A,
+ 0x00052C,
+ 0x00052E,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001E00,
+ 0x001E02,
+ 0x001E04,
+ 0x001E06,
+ 0x001E08,
+ 0x001E0A,
+ 0x001E0C,
+ 0x001E0E,
+ 0x001E10,
+ 0x001E12,
+ 0x001E14,
+ 0x001E16,
+ 0x001E18,
+ 0x001E1A,
+ 0x001E1C,
+ 0x001E1E,
+ 0x001E20,
+ 0x001E22,
+ 0x001E24,
+ 0x001E26,
+ 0x001E28,
+ 0x001E2A,
+ 0x001E2C,
+ 0x001E2E,
+ 0x001E30,
+ 0x001E32,
+ 0x001E34,
+ 0x001E36,
+ 0x001E38,
+ 0x001E3A,
+ 0x001E3C,
+ 0x001E3E,
+ 0x001E40,
+ 0x001E42,
+ 0x001E44,
+ 0x001E46,
+ 0x001E48,
+ 0x001E4A,
+ 0x001E4C,
+ 0x001E4E,
+ 0x001E50,
+ 0x001E52,
+ 0x001E54,
+ 0x001E56,
+ 0x001E58,
+ 0x001E5A,
+ 0x001E5C,
+ 0x001E5E,
+ 0x001E60,
+ 0x001E62,
+ 0x001E64,
+ 0x001E66,
+ 0x001E68,
+ 0x001E6A,
+ 0x001E6C,
+ 0x001E6E,
+ 0x001E70,
+ 0x001E72,
+ 0x001E74,
+ 0x001E76,
+ 0x001E78,
+ 0x001E7A,
+ 0x001E7C,
+ 0x001E7E,
+ 0x001E80,
+ 0x001E82,
+ 0x001E84,
+ 0x001E86,
+ 0x001E88,
+ 0x001E8A,
+ 0x001E8C,
+ 0x001E8E,
+ 0x001E90,
+ 0x001E92,
+ 0x001E94,
+ 0x001E9E,
+ 0x001EA0,
+ 0x001EA2,
+ 0x001EA4,
+ 0x001EA6,
+ 0x001EA8,
+ 0x001EAA,
+ 0x001EAC,
+ 0x001EAE,
+ 0x001EB0,
+ 0x001EB2,
+ 0x001EB4,
+ 0x001EB6,
+ 0x001EB8,
+ 0x001EBA,
+ 0x001EBC,
+ 0x001EBE,
+ 0x001EC0,
+ 0x001EC2,
+ 0x001EC4,
+ 0x001EC6,
+ 0x001EC8,
+ 0x001ECA,
+ 0x001ECC,
+ 0x001ECE,
+ 0x001ED0,
+ 0x001ED2,
+ 0x001ED4,
+ 0x001ED6,
+ 0x001ED8,
+ 0x001EDA,
+ 0x001EDC,
+ 0x001EDE,
+ 0x001EE0,
+ 0x001EE2,
+ 0x001EE4,
+ 0x001EE6,
+ 0x001EE8,
+ 0x001EEA,
+ 0x001EEC,
+ 0x001EEE,
+ 0x001EF0,
+ 0x001EF2,
+ 0x001EF4,
+ 0x001EF6,
+ 0x001EF8,
+ 0x001EFA,
+ 0x001EFC,
+ 0x001EFE,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001F5F,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x002145,
+ 0x002183,
+ 0x002C60,
+ 0x002C67,
+ 0x002C69,
+ 0x002C6B,
+ 0x002C72,
+ 0x002C75,
+ 0x002C82,
+ 0x002C84,
+ 0x002C86,
+ 0x002C88,
+ 0x002C8A,
+ 0x002C8C,
+ 0x002C8E,
+ 0x002C90,
+ 0x002C92,
+ 0x002C94,
+ 0x002C96,
+ 0x002C98,
+ 0x002C9A,
+ 0x002C9C,
+ 0x002C9E,
+ 0x002CA0,
+ 0x002CA2,
+ 0x002CA4,
+ 0x002CA6,
+ 0x002CA8,
+ 0x002CAA,
+ 0x002CAC,
+ 0x002CAE,
+ 0x002CB0,
+ 0x002CB2,
+ 0x002CB4,
+ 0x002CB6,
+ 0x002CB8,
+ 0x002CBA,
+ 0x002CBC,
+ 0x002CBE,
+ 0x002CC0,
+ 0x002CC2,
+ 0x002CC4,
+ 0x002CC6,
+ 0x002CC8,
+ 0x002CCA,
+ 0x002CCC,
+ 0x002CCE,
+ 0x002CD0,
+ 0x002CD2,
+ 0x002CD4,
+ 0x002CD6,
+ 0x002CD8,
+ 0x002CDA,
+ 0x002CDC,
+ 0x002CDE,
+ 0x002CE0,
+ 0x002CE2,
+ 0x002CEB,
+ 0x002CED,
+ 0x002CF2,
+ 0x00A640,
+ 0x00A642,
+ 0x00A644,
+ 0x00A646,
+ 0x00A648,
+ 0x00A64A,
+ 0x00A64C,
+ 0x00A64E,
+ 0x00A650,
+ 0x00A652,
+ 0x00A654,
+ 0x00A656,
+ 0x00A658,
+ 0x00A65A,
+ 0x00A65C,
+ 0x00A65E,
+ 0x00A660,
+ 0x00A662,
+ 0x00A664,
+ 0x00A666,
+ 0x00A668,
+ 0x00A66A,
+ 0x00A66C,
+ 0x00A680,
+ 0x00A682,
+ 0x00A684,
+ 0x00A686,
+ 0x00A688,
+ 0x00A68A,
+ 0x00A68C,
+ 0x00A68E,
+ 0x00A690,
+ 0x00A692,
+ 0x00A694,
+ 0x00A696,
+ 0x00A698,
+ 0x00A69A,
+ 0x00A722,
+ 0x00A724,
+ 0x00A726,
+ 0x00A728,
+ 0x00A72A,
+ 0x00A72C,
+ 0x00A72E,
+ 0x00A732,
+ 0x00A734,
+ 0x00A736,
+ 0x00A738,
+ 0x00A73A,
+ 0x00A73C,
+ 0x00A73E,
+ 0x00A740,
+ 0x00A742,
+ 0x00A744,
+ 0x00A746,
+ 0x00A748,
+ 0x00A74A,
+ 0x00A74C,
+ 0x00A74E,
+ 0x00A750,
+ 0x00A752,
+ 0x00A754,
+ 0x00A756,
+ 0x00A758,
+ 0x00A75A,
+ 0x00A75C,
+ 0x00A75E,
+ 0x00A760,
+ 0x00A762,
+ 0x00A764,
+ 0x00A766,
+ 0x00A768,
+ 0x00A76A,
+ 0x00A76C,
+ 0x00A76E,
+ 0x00A779,
+ 0x00A77B,
+ 0x00A780,
+ 0x00A782,
+ 0x00A784,
+ 0x00A786,
+ 0x00A78B,
+ 0x00A78D,
+ 0x00A790,
+ 0x00A792,
+ 0x00A796,
+ 0x00A798,
+ 0x00A79A,
+ 0x00A79C,
+ 0x00A79E,
+ 0x00A7A0,
+ 0x00A7A2,
+ 0x00A7A4,
+ 0x00A7A6,
+ 0x00A7A8,
+ 0x00A7B6,
+ 0x00A7B8,
+ 0x00A7BA,
+ 0x00A7BC,
+ 0x00A7BE,
+ 0x00A7C2,
+ 0x00A7C9,
+ 0x00A7F5,
+ 0x01D49C,
+ 0x01D4A2,
+ 0x01D546,
+ 0x01D7CA
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000DE],
+ [0x000178, 0x000179],
+ [0x000181, 0x000182],
+ [0x000186, 0x000187],
+ [0x000189, 0x00018B],
+ [0x00018E, 0x000191],
+ [0x000193, 0x000194],
+ [0x000196, 0x000198],
+ [0x00019C, 0x00019D],
+ [0x00019F, 0x0001A0],
+ [0x0001A6, 0x0001A7],
+ [0x0001AE, 0x0001AF],
+ [0x0001B1, 0x0001B3],
+ [0x0001B7, 0x0001B8],
+ [0x0001F6, 0x0001F8],
+ [0x00023A, 0x00023B],
+ [0x00023D, 0x00023E],
+ [0x000243, 0x000246],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x00038F],
+ [0x000391, 0x0003A1],
+ [0x0003A3, 0x0003AB],
+ [0x0003D2, 0x0003D4],
+ [0x0003F9, 0x0003FA],
+ [0x0003FD, 0x00042F],
+ [0x0004C0, 0x0004C1],
+ [0x000531, 0x000556],
+ [0x0010A0, 0x0010C5],
+ [0x0013A0, 0x0013F5],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001F08, 0x001F0F],
+ [0x001F18, 0x001F1D],
+ [0x001F28, 0x001F2F],
+ [0x001F38, 0x001F3F],
+ [0x001F48, 0x001F4D],
+ [0x001F68, 0x001F6F],
+ [0x001FB8, 0x001FBB],
+ [0x001FC8, 0x001FCB],
+ [0x001FD8, 0x001FDB],
+ [0x001FE8, 0x001FEC],
+ [0x001FF8, 0x001FFB],
+ [0x00210B, 0x00210D],
+ [0x002110, 0x002112],
+ [0x002119, 0x00211D],
+ [0x00212A, 0x00212D],
+ [0x002130, 0x002133],
+ [0x00213E, 0x00213F],
+ [0x002C00, 0x002C2E],
+ [0x002C62, 0x002C64],
+ [0x002C6D, 0x002C70],
+ [0x002C7E, 0x002C80],
+ [0x00A77D, 0x00A77E],
+ [0x00A7AA, 0x00A7AE],
+ [0x00A7B0, 0x00A7B4],
+ [0x00A7C4, 0x00A7C7],
+ [0x00FF21, 0x00FF3A],
+ [0x010400, 0x010427],
+ [0x0104B0, 0x0104D3],
+ [0x010C80, 0x010CB2],
+ [0x0118A0, 0x0118BF],
+ [0x016E40, 0x016E5F],
+ [0x01D400, 0x01D419],
+ [0x01D434, 0x01D44D],
+ [0x01D468, 0x01D481],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B5],
+ [0x01D4D0, 0x01D4E9],
+ [0x01D504, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D538, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D56C, 0x01D585],
+ [0x01D5A0, 0x01D5B9],
+ [0x01D5D4, 0x01D5ED],
+ [0x01D608, 0x01D621],
+ [0x01D63C, 0x01D655],
+ [0x01D670, 0x01D689],
+ [0x01D6A8, 0x01D6C0],
+ [0x01D6E2, 0x01D6FA],
+ [0x01D71C, 0x01D734],
+ [0x01D756, 0x01D76E],
+ [0x01D790, 0x01D7A8],
+ [0x01E900, 0x01E921]
+ ]
+});
+testPropertyEscapes(
+ /^\p{General_Category=Uppercase_Letter}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Uppercase_Letter}"
+);
+testPropertyEscapes(
+ /^\p{General_Category=Lu}+$/u,
+ matchSymbols,
+ "\\p{General_Category=Lu}"
+);
+testPropertyEscapes(
+ /^\p{gc=Uppercase_Letter}+$/u,
+ matchSymbols,
+ "\\p{gc=Uppercase_Letter}"
+);
+testPropertyEscapes(
+ /^\p{gc=Lu}+$/u,
+ matchSymbols,
+ "\\p{gc=Lu}"
+);
+testPropertyEscapes(
+ /^\p{Uppercase_Letter}+$/u,
+ matchSymbols,
+ "\\p{Uppercase_Letter}"
+);
+testPropertyEscapes(
+ /^\p{Lu}+$/u,
+ matchSymbols,
+ "\\p{Lu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x000101,
+ 0x000103,
+ 0x000105,
+ 0x000107,
+ 0x000109,
+ 0x00010B,
+ 0x00010D,
+ 0x00010F,
+ 0x000111,
+ 0x000113,
+ 0x000115,
+ 0x000117,
+ 0x000119,
+ 0x00011B,
+ 0x00011D,
+ 0x00011F,
+ 0x000121,
+ 0x000123,
+ 0x000125,
+ 0x000127,
+ 0x000129,
+ 0x00012B,
+ 0x00012D,
+ 0x00012F,
+ 0x000131,
+ 0x000133,
+ 0x000135,
+ 0x00013A,
+ 0x00013C,
+ 0x00013E,
+ 0x000140,
+ 0x000142,
+ 0x000144,
+ 0x000146,
+ 0x00014B,
+ 0x00014D,
+ 0x00014F,
+ 0x000151,
+ 0x000153,
+ 0x000155,
+ 0x000157,
+ 0x000159,
+ 0x00015B,
+ 0x00015D,
+ 0x00015F,
+ 0x000161,
+ 0x000163,
+ 0x000165,
+ 0x000167,
+ 0x000169,
+ 0x00016B,
+ 0x00016D,
+ 0x00016F,
+ 0x000171,
+ 0x000173,
+ 0x000175,
+ 0x000177,
+ 0x00017A,
+ 0x00017C,
+ 0x000183,
+ 0x000185,
+ 0x000188,
+ 0x000192,
+ 0x000195,
+ 0x00019E,
+ 0x0001A1,
+ 0x0001A3,
+ 0x0001A5,
+ 0x0001A8,
+ 0x0001AD,
+ 0x0001B0,
+ 0x0001B4,
+ 0x0001B6,
+ 0x0001CE,
+ 0x0001D0,
+ 0x0001D2,
+ 0x0001D4,
+ 0x0001D6,
+ 0x0001D8,
+ 0x0001DA,
+ 0x0001DF,
+ 0x0001E1,
+ 0x0001E3,
+ 0x0001E5,
+ 0x0001E7,
+ 0x0001E9,
+ 0x0001EB,
+ 0x0001ED,
+ 0x0001F5,
+ 0x0001F9,
+ 0x0001FB,
+ 0x0001FD,
+ 0x0001FF,
+ 0x000201,
+ 0x000203,
+ 0x000205,
+ 0x000207,
+ 0x000209,
+ 0x00020B,
+ 0x00020D,
+ 0x00020F,
+ 0x000211,
+ 0x000213,
+ 0x000215,
+ 0x000217,
+ 0x000219,
+ 0x00021B,
+ 0x00021D,
+ 0x00021F,
+ 0x000221,
+ 0x000223,
+ 0x000225,
+ 0x000227,
+ 0x000229,
+ 0x00022B,
+ 0x00022D,
+ 0x00022F,
+ 0x000231,
+ 0x00023C,
+ 0x000242,
+ 0x000247,
+ 0x000249,
+ 0x00024B,
+ 0x00024D,
+ 0x000371,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x000390,
+ 0x0003A2,
+ 0x0003D9,
+ 0x0003DB,
+ 0x0003DD,
+ 0x0003DF,
+ 0x0003E1,
+ 0x0003E3,
+ 0x0003E5,
+ 0x0003E7,
+ 0x0003E9,
+ 0x0003EB,
+ 0x0003ED,
+ 0x0003F8,
+ 0x000461,
+ 0x000463,
+ 0x000465,
+ 0x000467,
+ 0x000469,
+ 0x00046B,
+ 0x00046D,
+ 0x00046F,
+ 0x000471,
+ 0x000473,
+ 0x000475,
+ 0x000477,
+ 0x000479,
+ 0x00047B,
+ 0x00047D,
+ 0x00047F,
+ 0x00048B,
+ 0x00048D,
+ 0x00048F,
+ 0x000491,
+ 0x000493,
+ 0x000495,
+ 0x000497,
+ 0x000499,
+ 0x00049B,
+ 0x00049D,
+ 0x00049F,
+ 0x0004A1,
+ 0x0004A3,
+ 0x0004A5,
+ 0x0004A7,
+ 0x0004A9,
+ 0x0004AB,
+ 0x0004AD,
+ 0x0004AF,
+ 0x0004B1,
+ 0x0004B3,
+ 0x0004B5,
+ 0x0004B7,
+ 0x0004B9,
+ 0x0004BB,
+ 0x0004BD,
+ 0x0004BF,
+ 0x0004C2,
+ 0x0004C4,
+ 0x0004C6,
+ 0x0004C8,
+ 0x0004CA,
+ 0x0004CC,
+ 0x0004D1,
+ 0x0004D3,
+ 0x0004D5,
+ 0x0004D7,
+ 0x0004D9,
+ 0x0004DB,
+ 0x0004DD,
+ 0x0004DF,
+ 0x0004E1,
+ 0x0004E3,
+ 0x0004E5,
+ 0x0004E7,
+ 0x0004E9,
+ 0x0004EB,
+ 0x0004ED,
+ 0x0004EF,
+ 0x0004F1,
+ 0x0004F3,
+ 0x0004F5,
+ 0x0004F7,
+ 0x0004F9,
+ 0x0004FB,
+ 0x0004FD,
+ 0x0004FF,
+ 0x000501,
+ 0x000503,
+ 0x000505,
+ 0x000507,
+ 0x000509,
+ 0x00050B,
+ 0x00050D,
+ 0x00050F,
+ 0x000511,
+ 0x000513,
+ 0x000515,
+ 0x000517,
+ 0x000519,
+ 0x00051B,
+ 0x00051D,
+ 0x00051F,
+ 0x000521,
+ 0x000523,
+ 0x000525,
+ 0x000527,
+ 0x000529,
+ 0x00052B,
+ 0x00052D,
+ 0x0010C6,
+ 0x001E01,
+ 0x001E03,
+ 0x001E05,
+ 0x001E07,
+ 0x001E09,
+ 0x001E0B,
+ 0x001E0D,
+ 0x001E0F,
+ 0x001E11,
+ 0x001E13,
+ 0x001E15,
+ 0x001E17,
+ 0x001E19,
+ 0x001E1B,
+ 0x001E1D,
+ 0x001E1F,
+ 0x001E21,
+ 0x001E23,
+ 0x001E25,
+ 0x001E27,
+ 0x001E29,
+ 0x001E2B,
+ 0x001E2D,
+ 0x001E2F,
+ 0x001E31,
+ 0x001E33,
+ 0x001E35,
+ 0x001E37,
+ 0x001E39,
+ 0x001E3B,
+ 0x001E3D,
+ 0x001E3F,
+ 0x001E41,
+ 0x001E43,
+ 0x001E45,
+ 0x001E47,
+ 0x001E49,
+ 0x001E4B,
+ 0x001E4D,
+ 0x001E4F,
+ 0x001E51,
+ 0x001E53,
+ 0x001E55,
+ 0x001E57,
+ 0x001E59,
+ 0x001E5B,
+ 0x001E5D,
+ 0x001E5F,
+ 0x001E61,
+ 0x001E63,
+ 0x001E65,
+ 0x001E67,
+ 0x001E69,
+ 0x001E6B,
+ 0x001E6D,
+ 0x001E6F,
+ 0x001E71,
+ 0x001E73,
+ 0x001E75,
+ 0x001E77,
+ 0x001E79,
+ 0x001E7B,
+ 0x001E7D,
+ 0x001E7F,
+ 0x001E81,
+ 0x001E83,
+ 0x001E85,
+ 0x001E87,
+ 0x001E89,
+ 0x001E8B,
+ 0x001E8D,
+ 0x001E8F,
+ 0x001E91,
+ 0x001E93,
+ 0x001E9F,
+ 0x001EA1,
+ 0x001EA3,
+ 0x001EA5,
+ 0x001EA7,
+ 0x001EA9,
+ 0x001EAB,
+ 0x001EAD,
+ 0x001EAF,
+ 0x001EB1,
+ 0x001EB3,
+ 0x001EB5,
+ 0x001EB7,
+ 0x001EB9,
+ 0x001EBB,
+ 0x001EBD,
+ 0x001EBF,
+ 0x001EC1,
+ 0x001EC3,
+ 0x001EC5,
+ 0x001EC7,
+ 0x001EC9,
+ 0x001ECB,
+ 0x001ECD,
+ 0x001ECF,
+ 0x001ED1,
+ 0x001ED3,
+ 0x001ED5,
+ 0x001ED7,
+ 0x001ED9,
+ 0x001EDB,
+ 0x001EDD,
+ 0x001EDF,
+ 0x001EE1,
+ 0x001EE3,
+ 0x001EE5,
+ 0x001EE7,
+ 0x001EE9,
+ 0x001EEB,
+ 0x001EED,
+ 0x001EEF,
+ 0x001EF1,
+ 0x001EF3,
+ 0x001EF5,
+ 0x001EF7,
+ 0x001EF9,
+ 0x001EFB,
+ 0x001EFD,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x002C61,
+ 0x002C68,
+ 0x002C6A,
+ 0x002C6C,
+ 0x002C71,
+ 0x002C81,
+ 0x002C83,
+ 0x002C85,
+ 0x002C87,
+ 0x002C89,
+ 0x002C8B,
+ 0x002C8D,
+ 0x002C8F,
+ 0x002C91,
+ 0x002C93,
+ 0x002C95,
+ 0x002C97,
+ 0x002C99,
+ 0x002C9B,
+ 0x002C9D,
+ 0x002C9F,
+ 0x002CA1,
+ 0x002CA3,
+ 0x002CA5,
+ 0x002CA7,
+ 0x002CA9,
+ 0x002CAB,
+ 0x002CAD,
+ 0x002CAF,
+ 0x002CB1,
+ 0x002CB3,
+ 0x002CB5,
+ 0x002CB7,
+ 0x002CB9,
+ 0x002CBB,
+ 0x002CBD,
+ 0x002CBF,
+ 0x002CC1,
+ 0x002CC3,
+ 0x002CC5,
+ 0x002CC7,
+ 0x002CC9,
+ 0x002CCB,
+ 0x002CCD,
+ 0x002CCF,
+ 0x002CD1,
+ 0x002CD3,
+ 0x002CD5,
+ 0x002CD7,
+ 0x002CD9,
+ 0x002CDB,
+ 0x002CDD,
+ 0x002CDF,
+ 0x002CE1,
+ 0x002CEC,
+ 0x00A641,
+ 0x00A643,
+ 0x00A645,
+ 0x00A647,
+ 0x00A649,
+ 0x00A64B,
+ 0x00A64D,
+ 0x00A64F,
+ 0x00A651,
+ 0x00A653,
+ 0x00A655,
+ 0x00A657,
+ 0x00A659,
+ 0x00A65B,
+ 0x00A65D,
+ 0x00A65F,
+ 0x00A661,
+ 0x00A663,
+ 0x00A665,
+ 0x00A667,
+ 0x00A669,
+ 0x00A66B,
+ 0x00A681,
+ 0x00A683,
+ 0x00A685,
+ 0x00A687,
+ 0x00A689,
+ 0x00A68B,
+ 0x00A68D,
+ 0x00A68F,
+ 0x00A691,
+ 0x00A693,
+ 0x00A695,
+ 0x00A697,
+ 0x00A699,
+ 0x00A723,
+ 0x00A725,
+ 0x00A727,
+ 0x00A729,
+ 0x00A72B,
+ 0x00A72D,
+ 0x00A733,
+ 0x00A735,
+ 0x00A737,
+ 0x00A739,
+ 0x00A73B,
+ 0x00A73D,
+ 0x00A73F,
+ 0x00A741,
+ 0x00A743,
+ 0x00A745,
+ 0x00A747,
+ 0x00A749,
+ 0x00A74B,
+ 0x00A74D,
+ 0x00A74F,
+ 0x00A751,
+ 0x00A753,
+ 0x00A755,
+ 0x00A757,
+ 0x00A759,
+ 0x00A75B,
+ 0x00A75D,
+ 0x00A75F,
+ 0x00A761,
+ 0x00A763,
+ 0x00A765,
+ 0x00A767,
+ 0x00A769,
+ 0x00A76B,
+ 0x00A76D,
+ 0x00A77A,
+ 0x00A77C,
+ 0x00A77F,
+ 0x00A781,
+ 0x00A783,
+ 0x00A785,
+ 0x00A78C,
+ 0x00A791,
+ 0x00A797,
+ 0x00A799,
+ 0x00A79B,
+ 0x00A79D,
+ 0x00A79F,
+ 0x00A7A1,
+ 0x00A7A3,
+ 0x00A7A5,
+ 0x00A7A7,
+ 0x00A7A9,
+ 0x00A7AF,
+ 0x00A7B5,
+ 0x00A7B7,
+ 0x00A7B9,
+ 0x00A7BB,
+ 0x00A7BD,
+ 0x00A7C3,
+ 0x00A7C8,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D506,
+ 0x01D515,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x0000BF],
+ [0x0000DF, 0x0000FF],
+ [0x000137, 0x000138],
+ [0x000148, 0x000149],
+ [0x00017E, 0x000180],
+ [0x00018C, 0x00018D],
+ [0x000199, 0x00019B],
+ [0x0001AA, 0x0001AB],
+ [0x0001B9, 0x0001BB],
+ [0x0001BD, 0x0001C3],
+ [0x0001C5, 0x0001C6],
+ [0x0001C8, 0x0001C9],
+ [0x0001CB, 0x0001CC],
+ [0x0001DC, 0x0001DD],
+ [0x0001EF, 0x0001F0],
+ [0x0001F2, 0x0001F3],
+ [0x000233, 0x000239],
+ [0x00023F, 0x000240],
+ [0x00024F, 0x00036F],
+ [0x000373, 0x000375],
+ [0x000377, 0x00037E],
+ [0x000380, 0x000385],
+ [0x0003AC, 0x0003CE],
+ [0x0003D0, 0x0003D1],
+ [0x0003D5, 0x0003D7],
+ [0x0003EF, 0x0003F3],
+ [0x0003F5, 0x0003F6],
+ [0x0003FB, 0x0003FC],
+ [0x000430, 0x00045F],
+ [0x000481, 0x000489],
+ [0x0004CE, 0x0004CF],
+ [0x00052F, 0x000530],
+ [0x000557, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x00139F],
+ [0x0013F6, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001DFF],
+ [0x001E95, 0x001E9D],
+ [0x001EFF, 0x001F07],
+ [0x001F10, 0x001F17],
+ [0x001F1E, 0x001F27],
+ [0x001F30, 0x001F37],
+ [0x001F40, 0x001F47],
+ [0x001F4E, 0x001F58],
+ [0x001F60, 0x001F67],
+ [0x001F70, 0x001FB7],
+ [0x001FBC, 0x001FC7],
+ [0x001FCC, 0x001FD7],
+ [0x001FDC, 0x001FE7],
+ [0x001FED, 0x001FF7],
+ [0x001FFC, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x00210A],
+ [0x00210E, 0x00210F],
+ [0x002113, 0x002114],
+ [0x002116, 0x002118],
+ [0x00211E, 0x002123],
+ [0x00212E, 0x00212F],
+ [0x002134, 0x00213D],
+ [0x002140, 0x002144],
+ [0x002146, 0x002182],
+ [0x002184, 0x002BFF],
+ [0x002C2F, 0x002C5F],
+ [0x002C65, 0x002C66],
+ [0x002C73, 0x002C74],
+ [0x002C76, 0x002C7D],
+ [0x002CE3, 0x002CEA],
+ [0x002CEE, 0x002CF1],
+ [0x002CF3, 0x00A63F],
+ [0x00A66D, 0x00A67F],
+ [0x00A69B, 0x00A721],
+ [0x00A72F, 0x00A731],
+ [0x00A76F, 0x00A778],
+ [0x00A787, 0x00A78A],
+ [0x00A78E, 0x00A78F],
+ [0x00A793, 0x00A795],
+ [0x00A7BF, 0x00A7C1],
+ [0x00A7CA, 0x00A7F4],
+ [0x00A7F6, 0x00DBFF],
+ [0x00E000, 0x00FF20],
+ [0x00FF3B, 0x0103FF],
+ [0x010428, 0x0104AF],
+ [0x0104D4, 0x010C7F],
+ [0x010CB3, 0x01189F],
+ [0x0118C0, 0x016E3F],
+ [0x016E60, 0x01D3FF],
+ [0x01D41A, 0x01D433],
+ [0x01D44E, 0x01D467],
+ [0x01D482, 0x01D49B],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D4B6, 0x01D4CF],
+ [0x01D4EA, 0x01D503],
+ [0x01D50B, 0x01D50C],
+ [0x01D51D, 0x01D537],
+ [0x01D547, 0x01D549],
+ [0x01D551, 0x01D56B],
+ [0x01D586, 0x01D59F],
+ [0x01D5BA, 0x01D5D3],
+ [0x01D5EE, 0x01D607],
+ [0x01D622, 0x01D63B],
+ [0x01D656, 0x01D66F],
+ [0x01D68A, 0x01D6A7],
+ [0x01D6C1, 0x01D6E1],
+ [0x01D6FB, 0x01D71B],
+ [0x01D735, 0x01D755],
+ [0x01D76F, 0x01D78F],
+ [0x01D7A9, 0x01D7C9],
+ [0x01D7CB, 0x01E8FF],
+ [0x01E922, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{General_Category=Uppercase_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Uppercase_Letter}"
+);
+testPropertyEscapes(
+ /^\P{General_Category=Lu}+$/u,
+ nonMatchSymbols,
+ "\\P{General_Category=Lu}"
+);
+testPropertyEscapes(
+ /^\P{gc=Uppercase_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Uppercase_Letter}"
+);
+testPropertyEscapes(
+ /^\P{gc=Lu}+$/u,
+ nonMatchSymbols,
+ "\\P{gc=Lu}"
+);
+testPropertyEscapes(
+ /^\P{Uppercase_Letter}+$/u,
+ nonMatchSymbols,
+ "\\P{Uppercase_Letter}"
+);
+testPropertyEscapes(
+ /^\P{Lu}+$/u,
+ nonMatchSymbols,
+ "\\P{Lu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js
new file mode 100644
index 0000000000..babadafff0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js
@@ -0,0 +1,1721 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Grapheme_Base`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00038C,
+ 0x0005BE,
+ 0x0005C0,
+ 0x0005C3,
+ 0x0005C6,
+ 0x00061B,
+ 0x0006DE,
+ 0x0006E9,
+ 0x000710,
+ 0x0007B1,
+ 0x00081A,
+ 0x000824,
+ 0x000828,
+ 0x00085E,
+ 0x00093B,
+ 0x0009B2,
+ 0x0009BD,
+ 0x0009CE,
+ 0x000A03,
+ 0x000A5E,
+ 0x000A76,
+ 0x000A83,
+ 0x000AC9,
+ 0x000AD0,
+ 0x000AF9,
+ 0x000B3D,
+ 0x000B40,
+ 0x000B83,
+ 0x000B9C,
+ 0x000BBF,
+ 0x000BD0,
+ 0x000C3D,
+ 0x000CDE,
+ 0x000D3D,
+ 0x000DBD,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EBD,
+ 0x000EC6,
+ 0x000F36,
+ 0x000F38,
+ 0x000F7F,
+ 0x000F85,
+ 0x001031,
+ 0x001038,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001258,
+ 0x0012C0,
+ 0x0017B6,
+ 0x0018AA,
+ 0x001940,
+ 0x001A57,
+ 0x001A61,
+ 0x001B3B,
+ 0x001BAA,
+ 0x001BE7,
+ 0x001BEE,
+ 0x001CD3,
+ 0x001CE1,
+ 0x001CFA,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x002D27,
+ 0x002D2D,
+ 0x00A673,
+ 0x00AA4D,
+ 0x00AAB1,
+ 0x00AAC0,
+ 0x00AAC2,
+ 0x00FB1D,
+ 0x00FB3E,
+ 0x0101A0,
+ 0x01056F,
+ 0x010808,
+ 0x01083C,
+ 0x01093F,
+ 0x010EAD,
+ 0x011000,
+ 0x01112C,
+ 0x011235,
+ 0x011288,
+ 0x01133D,
+ 0x01133F,
+ 0x011350,
+ 0x011445,
+ 0x01145D,
+ 0x0114B9,
+ 0x0114BE,
+ 0x0114C1,
+ 0x0115BE,
+ 0x01163E,
+ 0x0116AC,
+ 0x0116B6,
+ 0x0116B8,
+ 0x011726,
+ 0x011838,
+ 0x01183B,
+ 0x011909,
+ 0x01193D,
+ 0x011A00,
+ 0x011A50,
+ 0x011A97,
+ 0x011C3E,
+ 0x011CA9,
+ 0x011CB1,
+ 0x011CB4,
+ 0x011D46,
+ 0x011D96,
+ 0x011D98,
+ 0x011FB0,
+ 0x016AF5,
+ 0x01BC9C,
+ 0x01BC9F,
+ 0x01D166,
+ 0x01D245,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01E2FF,
+ 0x01E94B,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x000020, 0x00007E],
+ [0x0000A0, 0x0000AC],
+ [0x0000AE, 0x0002FF],
+ [0x000370, 0x000377],
+ [0x00037A, 0x00037F],
+ [0x000384, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x000482],
+ [0x00048A, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000559, 0x00058A],
+ [0x00058D, 0x00058F],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F4],
+ [0x000606, 0x00060F],
+ [0x00061E, 0x00064A],
+ [0x000660, 0x00066F],
+ [0x000671, 0x0006D5],
+ [0x0006E5, 0x0006E6],
+ [0x0006EE, 0x00070D],
+ [0x000712, 0x00072F],
+ [0x00074D, 0x0007A5],
+ [0x0007C0, 0x0007EA],
+ [0x0007F4, 0x0007FA],
+ [0x0007FE, 0x000815],
+ [0x000830, 0x00083E],
+ [0x000840, 0x000858],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x000903, 0x000939],
+ [0x00093D, 0x000940],
+ [0x000949, 0x00094C],
+ [0x00094E, 0x000950],
+ [0x000958, 0x000961],
+ [0x000964, 0x000980],
+ [0x000982, 0x000983],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009BF, 0x0009C0],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CC],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E1],
+ [0x0009E6, 0x0009FD],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A3E, 0x000A40],
+ [0x000A59, 0x000A5C],
+ [0x000A66, 0x000A6F],
+ [0x000A72, 0x000A74],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000ABD, 0x000AC0],
+ [0x000ACB, 0x000ACC],
+ [0x000AE0, 0x000AE1],
+ [0x000AE6, 0x000AF1],
+ [0x000B02, 0x000B03],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4C],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B61],
+ [0x000B66, 0x000B77],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000BC1, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCC],
+ [0x000BE6, 0x000BFA],
+ [0x000C01, 0x000C03],
+ [0x000C05, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C41, 0x000C44],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C61],
+ [0x000C66, 0x000C6F],
+ [0x000C77, 0x000C80],
+ [0x000C82, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CBD, 0x000CBE],
+ [0x000CC0, 0x000CC1],
+ [0x000CC3, 0x000CC4],
+ [0x000CC7, 0x000CC8],
+ [0x000CCA, 0x000CCB],
+ [0x000CE0, 0x000CE1],
+ [0x000CE6, 0x000CEF],
+ [0x000CF1, 0x000CF2],
+ [0x000D02, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D3A],
+ [0x000D3F, 0x000D40],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4C],
+ [0x000D4E, 0x000D4F],
+ [0x000D54, 0x000D56],
+ [0x000D58, 0x000D61],
+ [0x000D66, 0x000D7F],
+ [0x000D82, 0x000D83],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000DD0, 0x000DD1],
+ [0x000DD8, 0x000DDE],
+ [0x000DE6, 0x000DEF],
+ [0x000DF2, 0x000DF4],
+ [0x000E01, 0x000E30],
+ [0x000E32, 0x000E33],
+ [0x000E3F, 0x000E46],
+ [0x000E4F, 0x000E5B],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EB0],
+ [0x000EB2, 0x000EB3],
+ [0x000EC0, 0x000EC4],
+ [0x000ED0, 0x000ED9],
+ [0x000EDC, 0x000EDF],
+ [0x000F00, 0x000F17],
+ [0x000F1A, 0x000F34],
+ [0x000F3A, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F88, 0x000F8C],
+ [0x000FBE, 0x000FC5],
+ [0x000FC7, 0x000FCC],
+ [0x000FCE, 0x000FDA],
+ [0x001000, 0x00102C],
+ [0x00103B, 0x00103C],
+ [0x00103F, 0x001057],
+ [0x00105A, 0x00105D],
+ [0x001061, 0x001070],
+ [0x001075, 0x001081],
+ [0x001083, 0x001084],
+ [0x001087, 0x00108C],
+ [0x00108E, 0x00109C],
+ [0x00109E, 0x0010C5],
+ [0x0010D0, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x001360, 0x00137C],
+ [0x001380, 0x001399],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001400, 0x00169C],
+ [0x0016A0, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001711],
+ [0x001720, 0x001731],
+ [0x001735, 0x001736],
+ [0x001740, 0x001751],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001780, 0x0017B3],
+ [0x0017BE, 0x0017C5],
+ [0x0017C7, 0x0017C8],
+ [0x0017D4, 0x0017DC],
+ [0x0017E0, 0x0017E9],
+ [0x0017F0, 0x0017F9],
+ [0x001800, 0x00180A],
+ [0x001810, 0x001819],
+ [0x001820, 0x001878],
+ [0x001880, 0x001884],
+ [0x001887, 0x0018A8],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001923, 0x001926],
+ [0x001929, 0x00192B],
+ [0x001930, 0x001931],
+ [0x001933, 0x001938],
+ [0x001944, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x0019D0, 0x0019DA],
+ [0x0019DE, 0x001A16],
+ [0x001A19, 0x001A1A],
+ [0x001A1E, 0x001A55],
+ [0x001A63, 0x001A64],
+ [0x001A6D, 0x001A72],
+ [0x001A80, 0x001A89],
+ [0x001A90, 0x001A99],
+ [0x001AA0, 0x001AAD],
+ [0x001B04, 0x001B33],
+ [0x001B3D, 0x001B41],
+ [0x001B43, 0x001B4B],
+ [0x001B50, 0x001B6A],
+ [0x001B74, 0x001B7C],
+ [0x001B82, 0x001BA1],
+ [0x001BA6, 0x001BA7],
+ [0x001BAE, 0x001BE5],
+ [0x001BEA, 0x001BEC],
+ [0x001BF2, 0x001BF3],
+ [0x001BFC, 0x001C2B],
+ [0x001C34, 0x001C35],
+ [0x001C3B, 0x001C49],
+ [0x001C4D, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CC7],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF7],
+ [0x001D00, 0x001DBF],
+ [0x001E00, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FC4],
+ [0x001FC6, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FDD, 0x001FEF],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFE],
+ [0x002000, 0x00200A],
+ [0x002010, 0x002027],
+ [0x00202F, 0x00205F],
+ [0x002070, 0x002071],
+ [0x002074, 0x00208E],
+ [0x002090, 0x00209C],
+ [0x0020A0, 0x0020BF],
+ [0x002100, 0x00218B],
+ [0x002190, 0x002426],
+ [0x002440, 0x00244A],
+ [0x002460, 0x002B73],
+ [0x002B76, 0x002B95],
+ [0x002B97, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CEE],
+ [0x002CF2, 0x002CF3],
+ [0x002CF9, 0x002D25],
+ [0x002D30, 0x002D67],
+ [0x002D6F, 0x002D70],
+ [0x002D80, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x002E00, 0x002E52],
+ [0x002E80, 0x002E99],
+ [0x002E9B, 0x002EF3],
+ [0x002F00, 0x002FD5],
+ [0x002FF0, 0x002FFB],
+ [0x003000, 0x003029],
+ [0x003030, 0x00303F],
+ [0x003041, 0x003096],
+ [0x00309B, 0x0030FF],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x003190, 0x0031E3],
+ [0x0031F0, 0x00321E],
+ [0x003220, 0x009FFC],
+ [0x00A000, 0x00A48C],
+ [0x00A490, 0x00A4C6],
+ [0x00A4D0, 0x00A62B],
+ [0x00A640, 0x00A66E],
+ [0x00A67E, 0x00A69D],
+ [0x00A6A0, 0x00A6EF],
+ [0x00A6F2, 0x00A6F7],
+ [0x00A700, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A801],
+ [0x00A803, 0x00A805],
+ [0x00A807, 0x00A80A],
+ [0x00A80C, 0x00A824],
+ [0x00A827, 0x00A82B],
+ [0x00A830, 0x00A839],
+ [0x00A840, 0x00A877],
+ [0x00A880, 0x00A8C3],
+ [0x00A8CE, 0x00A8D9],
+ [0x00A8F2, 0x00A8FE],
+ [0x00A900, 0x00A925],
+ [0x00A92E, 0x00A946],
+ [0x00A952, 0x00A953],
+ [0x00A95F, 0x00A97C],
+ [0x00A983, 0x00A9B2],
+ [0x00A9B4, 0x00A9B5],
+ [0x00A9BA, 0x00A9BB],
+ [0x00A9BE, 0x00A9CD],
+ [0x00A9CF, 0x00A9D9],
+ [0x00A9DE, 0x00A9E4],
+ [0x00A9E6, 0x00A9FE],
+ [0x00AA00, 0x00AA28],
+ [0x00AA2F, 0x00AA30],
+ [0x00AA33, 0x00AA34],
+ [0x00AA40, 0x00AA42],
+ [0x00AA44, 0x00AA4B],
+ [0x00AA50, 0x00AA59],
+ [0x00AA5C, 0x00AA7B],
+ [0x00AA7D, 0x00AAAF],
+ [0x00AAB5, 0x00AAB6],
+ [0x00AAB9, 0x00AABD],
+ [0x00AADB, 0x00AAEB],
+ [0x00AAEE, 0x00AAF5],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00AB30, 0x00AB6B],
+ [0x00AB70, 0x00ABE4],
+ [0x00ABE6, 0x00ABE7],
+ [0x00ABE9, 0x00ABEC],
+ [0x00ABF0, 0x00ABF9],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1F, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBC1],
+ [0x00FBD3, 0x00FD3F],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFD],
+ [0x00FE10, 0x00FE19],
+ [0x00FE30, 0x00FE52],
+ [0x00FE54, 0x00FE66],
+ [0x00FE68, 0x00FE6B],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x00FF01, 0x00FF9D],
+ [0x00FFA0, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x00FFE0, 0x00FFE6],
+ [0x00FFE8, 0x00FFEE],
+ [0x00FFFC, 0x00FFFD],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010100, 0x010102],
+ [0x010107, 0x010133],
+ [0x010137, 0x01018E],
+ [0x010190, 0x01019C],
+ [0x0101D0, 0x0101FC],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x0102E1, 0x0102FB],
+ [0x010300, 0x010323],
+ [0x01032D, 0x01034A],
+ [0x010350, 0x010375],
+ [0x010380, 0x01039D],
+ [0x01039F, 0x0103C3],
+ [0x0103C8, 0x0103D5],
+ [0x010400, 0x01049D],
+ [0x0104A0, 0x0104A9],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010857, 0x01089E],
+ [0x0108A7, 0x0108AF],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x0108FB, 0x01091B],
+ [0x01091F, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BC, 0x0109CF],
+ [0x0109D2, 0x010A00],
+ [0x010A10, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A40, 0x010A48],
+ [0x010A50, 0x010A58],
+ [0x010A60, 0x010A9F],
+ [0x010AC0, 0x010AE4],
+ [0x010AEB, 0x010AF6],
+ [0x010B00, 0x010B35],
+ [0x010B39, 0x010B55],
+ [0x010B58, 0x010B72],
+ [0x010B78, 0x010B91],
+ [0x010B99, 0x010B9C],
+ [0x010BA9, 0x010BAF],
+ [0x010C00, 0x010C48],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010CFA, 0x010D23],
+ [0x010D30, 0x010D39],
+ [0x010E60, 0x010E7E],
+ [0x010E80, 0x010EA9],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F27],
+ [0x010F30, 0x010F45],
+ [0x010F51, 0x010F59],
+ [0x010FB0, 0x010FCB],
+ [0x010FE0, 0x010FF6],
+ [0x011002, 0x011037],
+ [0x011047, 0x01104D],
+ [0x011052, 0x01106F],
+ [0x011082, 0x0110B2],
+ [0x0110B7, 0x0110B8],
+ [0x0110BB, 0x0110BC],
+ [0x0110BE, 0x0110C1],
+ [0x0110D0, 0x0110E8],
+ [0x0110F0, 0x0110F9],
+ [0x011103, 0x011126],
+ [0x011136, 0x011147],
+ [0x011150, 0x011172],
+ [0x011174, 0x011176],
+ [0x011182, 0x0111B5],
+ [0x0111BF, 0x0111C8],
+ [0x0111CD, 0x0111CE],
+ [0x0111D0, 0x0111DF],
+ [0x0111E1, 0x0111F4],
+ [0x011200, 0x011211],
+ [0x011213, 0x01122E],
+ [0x011232, 0x011233],
+ [0x011238, 0x01123D],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A9],
+ [0x0112B0, 0x0112DE],
+ [0x0112E0, 0x0112E2],
+ [0x0112F0, 0x0112F9],
+ [0x011302, 0x011303],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x011341, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134D],
+ [0x01135D, 0x011363],
+ [0x011400, 0x011437],
+ [0x011440, 0x011441],
+ [0x011447, 0x01145B],
+ [0x01145F, 0x011461],
+ [0x011480, 0x0114AF],
+ [0x0114B1, 0x0114B2],
+ [0x0114BB, 0x0114BC],
+ [0x0114C4, 0x0114C7],
+ [0x0114D0, 0x0114D9],
+ [0x011580, 0x0115AE],
+ [0x0115B0, 0x0115B1],
+ [0x0115B8, 0x0115BB],
+ [0x0115C1, 0x0115DB],
+ [0x011600, 0x011632],
+ [0x01163B, 0x01163C],
+ [0x011641, 0x011644],
+ [0x011650, 0x011659],
+ [0x011660, 0x01166C],
+ [0x011680, 0x0116AA],
+ [0x0116AE, 0x0116AF],
+ [0x0116C0, 0x0116C9],
+ [0x011700, 0x01171A],
+ [0x011720, 0x011721],
+ [0x011730, 0x01173F],
+ [0x011800, 0x01182E],
+ [0x0118A0, 0x0118F2],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x01192F],
+ [0x011931, 0x011935],
+ [0x011937, 0x011938],
+ [0x01193F, 0x011942],
+ [0x011944, 0x011946],
+ [0x011950, 0x011959],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D3],
+ [0x0119DC, 0x0119DF],
+ [0x0119E1, 0x0119E4],
+ [0x011A0B, 0x011A32],
+ [0x011A39, 0x011A3A],
+ [0x011A3F, 0x011A46],
+ [0x011A57, 0x011A58],
+ [0x011A5C, 0x011A89],
+ [0x011A9A, 0x011AA2],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C2F],
+ [0x011C40, 0x011C45],
+ [0x011C50, 0x011C6C],
+ [0x011C70, 0x011C8F],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D30],
+ [0x011D50, 0x011D59],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D8E],
+ [0x011D93, 0x011D94],
+ [0x011DA0, 0x011DA9],
+ [0x011EE0, 0x011EF2],
+ [0x011EF5, 0x011EF8],
+ [0x011FC0, 0x011FF1],
+ [0x011FFF, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012470, 0x012474],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016A60, 0x016A69],
+ [0x016A6E, 0x016A6F],
+ [0x016AD0, 0x016AED],
+ [0x016B00, 0x016B2F],
+ [0x016B37, 0x016B45],
+ [0x016B50, 0x016B59],
+ [0x016B5B, 0x016B61],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016E40, 0x016E9A],
+ [0x016F00, 0x016F4A],
+ [0x016F50, 0x016F87],
+ [0x016F93, 0x016F9F],
+ [0x016FE0, 0x016FE3],
+ [0x016FF0, 0x016FF1],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01D000, 0x01D0F5],
+ [0x01D100, 0x01D126],
+ [0x01D129, 0x01D164],
+ [0x01D16A, 0x01D16D],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D1E8],
+ [0x01D200, 0x01D241],
+ [0x01D2E0, 0x01D2F3],
+ [0x01D300, 0x01D356],
+ [0x01D360, 0x01D378],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D7CB],
+ [0x01D7CE, 0x01D9FF],
+ [0x01DA37, 0x01DA3A],
+ [0x01DA6D, 0x01DA74],
+ [0x01DA76, 0x01DA83],
+ [0x01DA85, 0x01DA8B],
+ [0x01E100, 0x01E12C],
+ [0x01E137, 0x01E13D],
+ [0x01E140, 0x01E149],
+ [0x01E14E, 0x01E14F],
+ [0x01E2C0, 0x01E2EB],
+ [0x01E2F0, 0x01E2F9],
+ [0x01E800, 0x01E8C4],
+ [0x01E8C7, 0x01E8CF],
+ [0x01E900, 0x01E943],
+ [0x01E950, 0x01E959],
+ [0x01E95E, 0x01E95F],
+ [0x01EC71, 0x01ECB4],
+ [0x01ED01, 0x01ED3D],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01EEF0, 0x01EEF1],
+ [0x01F000, 0x01F02B],
+ [0x01F030, 0x01F093],
+ [0x01F0A0, 0x01F0AE],
+ [0x01F0B1, 0x01F0BF],
+ [0x01F0C1, 0x01F0CF],
+ [0x01F0D1, 0x01F0F5],
+ [0x01F100, 0x01F1AD],
+ [0x01F1E6, 0x01F202],
+ [0x01F210, 0x01F23B],
+ [0x01F240, 0x01F248],
+ [0x01F250, 0x01F251],
+ [0x01F260, 0x01F265],
+ [0x01F300, 0x01F6D7],
+ [0x01F6E0, 0x01F6EC],
+ [0x01F6F0, 0x01F6FC],
+ [0x01F700, 0x01F773],
+ [0x01F780, 0x01F7D8],
+ [0x01F7E0, 0x01F7EB],
+ [0x01F800, 0x01F80B],
+ [0x01F810, 0x01F847],
+ [0x01F850, 0x01F859],
+ [0x01F860, 0x01F887],
+ [0x01F890, 0x01F8AD],
+ [0x01F8B0, 0x01F8B1],
+ [0x01F900, 0x01F978],
+ [0x01F97A, 0x01F9CB],
+ [0x01F9CD, 0x01FA53],
+ [0x01FA60, 0x01FA6D],
+ [0x01FA70, 0x01FA74],
+ [0x01FA78, 0x01FA7A],
+ [0x01FA80, 0x01FA86],
+ [0x01FA90, 0x01FAA8],
+ [0x01FAB0, 0x01FAB6],
+ [0x01FAC0, 0x01FAC2],
+ [0x01FAD0, 0x01FAD6],
+ [0x01FB00, 0x01FB92],
+ [0x01FB94, 0x01FBCA],
+ [0x01FBF0, 0x01FBF9],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Grapheme_Base}+$/u,
+ matchSymbols,
+ "\\p{Grapheme_Base}"
+);
+testPropertyEscapes(
+ /^\p{Gr_Base}+$/u,
+ matchSymbols,
+ "\\p{Gr_Base}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AD,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x000530,
+ 0x0005BF,
+ 0x000670,
+ 0x000711,
+ 0x00083F,
+ 0x00085F,
+ 0x0008B5,
+ 0x00093A,
+ 0x00093C,
+ 0x00094D,
+ 0x000981,
+ 0x000984,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009BE,
+ 0x0009CD,
+ 0x0009DE,
+ 0x000A04,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A5D,
+ 0x000A75,
+ 0x000A84,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000ACA,
+ 0x000B04,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000BC0,
+ 0x000BC9,
+ 0x000C04,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C81,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CBF,
+ 0x000CC2,
+ 0x000CC9,
+ 0x000CDF,
+ 0x000CF0,
+ 0x000D0D,
+ 0x000D11,
+ 0x000D3E,
+ 0x000D49,
+ 0x000D4D,
+ 0x000D57,
+ 0x000D84,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000E31,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EB1,
+ 0x000EC5,
+ 0x000F35,
+ 0x000F37,
+ 0x000F39,
+ 0x000F48,
+ 0x000FC6,
+ 0x000FCD,
+ 0x001082,
+ 0x00108D,
+ 0x00109D,
+ 0x0010C6,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x00170D,
+ 0x00176D,
+ 0x0017C6,
+ 0x0018A9,
+ 0x001932,
+ 0x001A56,
+ 0x001A62,
+ 0x001B3C,
+ 0x001B42,
+ 0x001BE6,
+ 0x001BED,
+ 0x001CED,
+ 0x001CF4,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FC5,
+ 0x001FDC,
+ 0x001FF5,
+ 0x001FFF,
+ 0x00208F,
+ 0x002B96,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x002E9A,
+ 0x003040,
+ 0x003130,
+ 0x00318F,
+ 0x00321F,
+ 0x00A802,
+ 0x00A806,
+ 0x00A80B,
+ 0x00A8FF,
+ 0x00A9B3,
+ 0x00A9CE,
+ 0x00A9E5,
+ 0x00A9FF,
+ 0x00AA43,
+ 0x00AA4C,
+ 0x00AA7C,
+ 0x00AAB0,
+ 0x00AAC1,
+ 0x00AB27,
+ 0x00AB2F,
+ 0x00ABE5,
+ 0x00ABE8,
+ 0x00FB1E,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE53,
+ 0x00FE67,
+ 0x00FE75,
+ 0x00FFE7,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x01018F,
+ 0x01039E,
+ 0x010809,
+ 0x010836,
+ 0x010856,
+ 0x0108F3,
+ 0x010A14,
+ 0x010A18,
+ 0x010E7F,
+ 0x011001,
+ 0x0110BD,
+ 0x011173,
+ 0x0111CF,
+ 0x0111E0,
+ 0x011212,
+ 0x011234,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x0112DF,
+ 0x011304,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x01133E,
+ 0x011340,
+ 0x011446,
+ 0x01145C,
+ 0x01145E,
+ 0x0114B0,
+ 0x0114BA,
+ 0x0114BD,
+ 0x0115AF,
+ 0x01163D,
+ 0x0116AB,
+ 0x0116AD,
+ 0x0116B7,
+ 0x011914,
+ 0x011917,
+ 0x011930,
+ 0x011936,
+ 0x01193E,
+ 0x011943,
+ 0x0119E0,
+ 0x011C09,
+ 0x011C3F,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D66,
+ 0x011D69,
+ 0x011D95,
+ 0x011D97,
+ 0x01246F,
+ 0x016A5F,
+ 0x016B5A,
+ 0x016B62,
+ 0x01D165,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01DA75,
+ 0x01DA84,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA,
+ 0x01F0C0,
+ 0x01F0D0,
+ 0x01F979,
+ 0x01F9CC,
+ 0x01FB93
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00001F],
+ [0x00007F, 0x00009F],
+ [0x000300, 0x00036F],
+ [0x000378, 0x000379],
+ [0x000380, 0x000383],
+ [0x000483, 0x000489],
+ [0x000557, 0x000558],
+ [0x00058B, 0x00058C],
+ [0x000590, 0x0005BD],
+ [0x0005C1, 0x0005C2],
+ [0x0005C4, 0x0005C5],
+ [0x0005C7, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F5, 0x000605],
+ [0x000610, 0x00061A],
+ [0x00061C, 0x00061D],
+ [0x00064B, 0x00065F],
+ [0x0006D6, 0x0006DD],
+ [0x0006DF, 0x0006E4],
+ [0x0006E7, 0x0006E8],
+ [0x0006EA, 0x0006ED],
+ [0x00070E, 0x00070F],
+ [0x000730, 0x00074C],
+ [0x0007A6, 0x0007B0],
+ [0x0007B2, 0x0007BF],
+ [0x0007EB, 0x0007F3],
+ [0x0007FB, 0x0007FD],
+ [0x000816, 0x000819],
+ [0x00081B, 0x000823],
+ [0x000825, 0x000827],
+ [0x000829, 0x00082F],
+ [0x000859, 0x00085D],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x000902],
+ [0x000941, 0x000948],
+ [0x000951, 0x000957],
+ [0x000962, 0x000963],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BC],
+ [0x0009C1, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CF, 0x0009DB],
+ [0x0009E2, 0x0009E5],
+ [0x0009FE, 0x000A02],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A3D],
+ [0x000A41, 0x000A58],
+ [0x000A5F, 0x000A65],
+ [0x000A70, 0x000A71],
+ [0x000A77, 0x000A82],
+ [0x000ABA, 0x000ABC],
+ [0x000AC1, 0x000AC8],
+ [0x000ACD, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE2, 0x000AE5],
+ [0x000AF2, 0x000AF8],
+ [0x000AFA, 0x000B01],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3C],
+ [0x000B3E, 0x000B3F],
+ [0x000B41, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4D, 0x000B5B],
+ [0x000B62, 0x000B65],
+ [0x000B78, 0x000B82],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BBE],
+ [0x000BC3, 0x000BC5],
+ [0x000BCD, 0x000BCF],
+ [0x000BD1, 0x000BE5],
+ [0x000BFB, 0x000C00],
+ [0x000C3A, 0x000C3C],
+ [0x000C3E, 0x000C40],
+ [0x000C45, 0x000C57],
+ [0x000C5B, 0x000C5F],
+ [0x000C62, 0x000C65],
+ [0x000C70, 0x000C76],
+ [0x000CBA, 0x000CBC],
+ [0x000CC5, 0x000CC6],
+ [0x000CCC, 0x000CDD],
+ [0x000CE2, 0x000CE5],
+ [0x000CF3, 0x000D01],
+ [0x000D3B, 0x000D3C],
+ [0x000D41, 0x000D45],
+ [0x000D50, 0x000D53],
+ [0x000D62, 0x000D65],
+ [0x000D80, 0x000D81],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000DCF],
+ [0x000DD2, 0x000DD7],
+ [0x000DDF, 0x000DE5],
+ [0x000DF0, 0x000DF1],
+ [0x000DF5, 0x000E00],
+ [0x000E34, 0x000E3E],
+ [0x000E47, 0x000E4E],
+ [0x000E5C, 0x000E80],
+ [0x000EB4, 0x000EBC],
+ [0x000EBE, 0x000EBF],
+ [0x000EC7, 0x000ECF],
+ [0x000EDA, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F18, 0x000F19],
+ [0x000F6D, 0x000F7E],
+ [0x000F80, 0x000F84],
+ [0x000F86, 0x000F87],
+ [0x000F8D, 0x000FBD],
+ [0x000FDB, 0x000FFF],
+ [0x00102D, 0x001030],
+ [0x001032, 0x001037],
+ [0x001039, 0x00103A],
+ [0x00103D, 0x00103E],
+ [0x001058, 0x001059],
+ [0x00105E, 0x001060],
+ [0x001071, 0x001074],
+ [0x001085, 0x001086],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00135F],
+ [0x00137D, 0x00137F],
+ [0x00139A, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x0013FF],
+ [0x00169D, 0x00169F],
+ [0x0016F9, 0x0016FF],
+ [0x001712, 0x00171F],
+ [0x001732, 0x001734],
+ [0x001737, 0x00173F],
+ [0x001752, 0x00175F],
+ [0x001771, 0x00177F],
+ [0x0017B4, 0x0017B5],
+ [0x0017B7, 0x0017BD],
+ [0x0017C9, 0x0017D3],
+ [0x0017DD, 0x0017DF],
+ [0x0017EA, 0x0017EF],
+ [0x0017FA, 0x0017FF],
+ [0x00180B, 0x00180F],
+ [0x00181A, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x001885, 0x001886],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00191F, 0x001922],
+ [0x001927, 0x001928],
+ [0x00192C, 0x00192F],
+ [0x001939, 0x00193F],
+ [0x001941, 0x001943],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019CF],
+ [0x0019DB, 0x0019DD],
+ [0x001A17, 0x001A18],
+ [0x001A1B, 0x001A1D],
+ [0x001A58, 0x001A60],
+ [0x001A65, 0x001A6C],
+ [0x001A73, 0x001A7F],
+ [0x001A8A, 0x001A8F],
+ [0x001A9A, 0x001A9F],
+ [0x001AAE, 0x001B03],
+ [0x001B34, 0x001B3A],
+ [0x001B4C, 0x001B4F],
+ [0x001B6B, 0x001B73],
+ [0x001B7D, 0x001B81],
+ [0x001BA2, 0x001BA5],
+ [0x001BA8, 0x001BA9],
+ [0x001BAB, 0x001BAD],
+ [0x001BE8, 0x001BE9],
+ [0x001BEF, 0x001BF1],
+ [0x001BF4, 0x001BFB],
+ [0x001C2C, 0x001C33],
+ [0x001C36, 0x001C3A],
+ [0x001C4A, 0x001C4C],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC8, 0x001CD2],
+ [0x001CD4, 0x001CE0],
+ [0x001CE2, 0x001CE8],
+ [0x001CF8, 0x001CF9],
+ [0x001CFB, 0x001CFF],
+ [0x001DC0, 0x001DFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FD4, 0x001FD5],
+ [0x001FF0, 0x001FF1],
+ [0x00200B, 0x00200F],
+ [0x002028, 0x00202E],
+ [0x002060, 0x00206F],
+ [0x002072, 0x002073],
+ [0x00209D, 0x00209F],
+ [0x0020C0, 0x0020FF],
+ [0x00218C, 0x00218F],
+ [0x002427, 0x00243F],
+ [0x00244B, 0x00245F],
+ [0x002B74, 0x002B75],
+ [0x002CEF, 0x002CF1],
+ [0x002CF4, 0x002CF8],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D71, 0x002D7F],
+ [0x002D97, 0x002D9F],
+ [0x002DDF, 0x002DFF],
+ [0x002E53, 0x002E7F],
+ [0x002EF4, 0x002EFF],
+ [0x002FD6, 0x002FEF],
+ [0x002FFC, 0x002FFF],
+ [0x00302A, 0x00302F],
+ [0x003097, 0x00309A],
+ [0x003100, 0x003104],
+ [0x0031E4, 0x0031EF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A48F],
+ [0x00A4C7, 0x00A4CF],
+ [0x00A62C, 0x00A63F],
+ [0x00A66F, 0x00A672],
+ [0x00A674, 0x00A67D],
+ [0x00A69E, 0x00A69F],
+ [0x00A6F0, 0x00A6F1],
+ [0x00A6F8, 0x00A6FF],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A825, 0x00A826],
+ [0x00A82C, 0x00A82F],
+ [0x00A83A, 0x00A83F],
+ [0x00A878, 0x00A87F],
+ [0x00A8C4, 0x00A8CD],
+ [0x00A8DA, 0x00A8F1],
+ [0x00A926, 0x00A92D],
+ [0x00A947, 0x00A951],
+ [0x00A954, 0x00A95E],
+ [0x00A97D, 0x00A982],
+ [0x00A9B6, 0x00A9B9],
+ [0x00A9BC, 0x00A9BD],
+ [0x00A9DA, 0x00A9DD],
+ [0x00AA29, 0x00AA2E],
+ [0x00AA31, 0x00AA32],
+ [0x00AA35, 0x00AA3F],
+ [0x00AA4E, 0x00AA4F],
+ [0x00AA5A, 0x00AA5B],
+ [0x00AAB2, 0x00AAB4],
+ [0x00AAB7, 0x00AAB8],
+ [0x00AABE, 0x00AABF],
+ [0x00AAC3, 0x00AADA],
+ [0x00AAEC, 0x00AAED],
+ [0x00AAF6, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB6C, 0x00AB6F],
+ [0x00ABED, 0x00ABEF],
+ [0x00ABFA, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBC2, 0x00FBD2],
+ [0x00FD40, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFE, 0x00FE0F],
+ [0x00FE1A, 0x00FE2F],
+ [0x00FE6C, 0x00FE6F],
+ [0x00FEFD, 0x00FF00],
+ [0x00FF9E, 0x00FF9F],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFDF],
+ [0x00FFEF, 0x00FFFB],
+ [0x00FFFE, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x0100FF],
+ [0x010103, 0x010106],
+ [0x010134, 0x010136],
+ [0x01019D, 0x01019F],
+ [0x0101A1, 0x0101CF],
+ [0x0101FD, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102E0],
+ [0x0102FC, 0x0102FF],
+ [0x010324, 0x01032C],
+ [0x01034B, 0x01034F],
+ [0x010376, 0x01037F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x0103FF],
+ [0x01049E, 0x01049F],
+ [0x0104AA, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x01056E],
+ [0x010570, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x01089F, 0x0108A6],
+ [0x0108B0, 0x0108DF],
+ [0x0108F6, 0x0108FA],
+ [0x01091C, 0x01091E],
+ [0x01093A, 0x01093E],
+ [0x010940, 0x01097F],
+ [0x0109B8, 0x0109BB],
+ [0x0109D0, 0x0109D1],
+ [0x010A01, 0x010A0F],
+ [0x010A36, 0x010A3F],
+ [0x010A49, 0x010A4F],
+ [0x010A59, 0x010A5F],
+ [0x010AA0, 0x010ABF],
+ [0x010AE5, 0x010AEA],
+ [0x010AF7, 0x010AFF],
+ [0x010B36, 0x010B38],
+ [0x010B56, 0x010B57],
+ [0x010B73, 0x010B77],
+ [0x010B92, 0x010B98],
+ [0x010B9D, 0x010BA8],
+ [0x010BB0, 0x010BFF],
+ [0x010C49, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CF9],
+ [0x010D24, 0x010D2F],
+ [0x010D3A, 0x010E5F],
+ [0x010EAA, 0x010EAC],
+ [0x010EAE, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F28, 0x010F2F],
+ [0x010F46, 0x010F50],
+ [0x010F5A, 0x010FAF],
+ [0x010FCC, 0x010FDF],
+ [0x010FF7, 0x010FFF],
+ [0x011038, 0x011046],
+ [0x01104E, 0x011051],
+ [0x011070, 0x011081],
+ [0x0110B3, 0x0110B6],
+ [0x0110B9, 0x0110BA],
+ [0x0110C2, 0x0110CF],
+ [0x0110E9, 0x0110EF],
+ [0x0110FA, 0x011102],
+ [0x011127, 0x01112B],
+ [0x01112D, 0x011135],
+ [0x011148, 0x01114F],
+ [0x011177, 0x011181],
+ [0x0111B6, 0x0111BE],
+ [0x0111C9, 0x0111CC],
+ [0x0111F5, 0x0111FF],
+ [0x01122F, 0x011231],
+ [0x011236, 0x011237],
+ [0x01123E, 0x01127F],
+ [0x0112AA, 0x0112AF],
+ [0x0112E3, 0x0112EF],
+ [0x0112FA, 0x011301],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x01133A, 0x01133C],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134E, 0x01134F],
+ [0x011351, 0x01135C],
+ [0x011364, 0x0113FF],
+ [0x011438, 0x01143F],
+ [0x011442, 0x011444],
+ [0x011462, 0x01147F],
+ [0x0114B3, 0x0114B8],
+ [0x0114BF, 0x0114C0],
+ [0x0114C2, 0x0114C3],
+ [0x0114C8, 0x0114CF],
+ [0x0114DA, 0x01157F],
+ [0x0115B2, 0x0115B7],
+ [0x0115BC, 0x0115BD],
+ [0x0115BF, 0x0115C0],
+ [0x0115DC, 0x0115FF],
+ [0x011633, 0x01163A],
+ [0x01163F, 0x011640],
+ [0x011645, 0x01164F],
+ [0x01165A, 0x01165F],
+ [0x01166D, 0x01167F],
+ [0x0116B0, 0x0116B5],
+ [0x0116B9, 0x0116BF],
+ [0x0116CA, 0x0116FF],
+ [0x01171B, 0x01171F],
+ [0x011722, 0x011725],
+ [0x011727, 0x01172F],
+ [0x011740, 0x0117FF],
+ [0x01182F, 0x011837],
+ [0x011839, 0x01183A],
+ [0x01183C, 0x01189F],
+ [0x0118F3, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011939, 0x01193C],
+ [0x011947, 0x01194F],
+ [0x01195A, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D4, 0x0119DB],
+ [0x0119E5, 0x0119FF],
+ [0x011A01, 0x011A0A],
+ [0x011A33, 0x011A38],
+ [0x011A3B, 0x011A3E],
+ [0x011A47, 0x011A4F],
+ [0x011A51, 0x011A56],
+ [0x011A59, 0x011A5B],
+ [0x011A8A, 0x011A96],
+ [0x011A98, 0x011A99],
+ [0x011AA3, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C30, 0x011C3D],
+ [0x011C46, 0x011C4F],
+ [0x011C6D, 0x011C6F],
+ [0x011C90, 0x011CA8],
+ [0x011CAA, 0x011CB0],
+ [0x011CB2, 0x011CB3],
+ [0x011CB5, 0x011CFF],
+ [0x011D31, 0x011D45],
+ [0x011D47, 0x011D4F],
+ [0x011D5A, 0x011D5F],
+ [0x011D8F, 0x011D92],
+ [0x011D99, 0x011D9F],
+ [0x011DAA, 0x011EDF],
+ [0x011EF3, 0x011EF4],
+ [0x011EF9, 0x011FAF],
+ [0x011FB1, 0x011FBF],
+ [0x011FF2, 0x011FFE],
+ [0x01239A, 0x0123FF],
+ [0x012475, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x01342F, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A6A, 0x016A6D],
+ [0x016A70, 0x016ACF],
+ [0x016AEE, 0x016AF4],
+ [0x016AF6, 0x016AFF],
+ [0x016B30, 0x016B36],
+ [0x016B46, 0x016B4F],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016E3F],
+ [0x016E9B, 0x016EFF],
+ [0x016F4B, 0x016F4F],
+ [0x016F88, 0x016F92],
+ [0x016FA0, 0x016FDF],
+ [0x016FE4, 0x016FEF],
+ [0x016FF2, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01BC9B],
+ [0x01BC9D, 0x01BC9E],
+ [0x01BCA0, 0x01CFFF],
+ [0x01D0F6, 0x01D0FF],
+ [0x01D127, 0x01D128],
+ [0x01D167, 0x01D169],
+ [0x01D16E, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D1E9, 0x01D1FF],
+ [0x01D242, 0x01D244],
+ [0x01D246, 0x01D2DF],
+ [0x01D2F4, 0x01D2FF],
+ [0x01D357, 0x01D35F],
+ [0x01D379, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01D7CD],
+ [0x01DA00, 0x01DA36],
+ [0x01DA3B, 0x01DA6C],
+ [0x01DA8C, 0x01E0FF],
+ [0x01E12D, 0x01E136],
+ [0x01E13E, 0x01E13F],
+ [0x01E14A, 0x01E14D],
+ [0x01E150, 0x01E2BF],
+ [0x01E2EC, 0x01E2EF],
+ [0x01E2FA, 0x01E2FE],
+ [0x01E300, 0x01E7FF],
+ [0x01E8C5, 0x01E8C6],
+ [0x01E8D0, 0x01E8FF],
+ [0x01E944, 0x01E94A],
+ [0x01E94C, 0x01E94F],
+ [0x01E95A, 0x01E95D],
+ [0x01E960, 0x01EC70],
+ [0x01ECB5, 0x01ED00],
+ [0x01ED3E, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01EEEF],
+ [0x01EEF2, 0x01EFFF],
+ [0x01F02C, 0x01F02F],
+ [0x01F094, 0x01F09F],
+ [0x01F0AF, 0x01F0B0],
+ [0x01F0F6, 0x01F0FF],
+ [0x01F1AE, 0x01F1E5],
+ [0x01F203, 0x01F20F],
+ [0x01F23C, 0x01F23F],
+ [0x01F249, 0x01F24F],
+ [0x01F252, 0x01F25F],
+ [0x01F266, 0x01F2FF],
+ [0x01F6D8, 0x01F6DF],
+ [0x01F6ED, 0x01F6EF],
+ [0x01F6FD, 0x01F6FF],
+ [0x01F774, 0x01F77F],
+ [0x01F7D9, 0x01F7DF],
+ [0x01F7EC, 0x01F7FF],
+ [0x01F80C, 0x01F80F],
+ [0x01F848, 0x01F84F],
+ [0x01F85A, 0x01F85F],
+ [0x01F888, 0x01F88F],
+ [0x01F8AE, 0x01F8AF],
+ [0x01F8B2, 0x01F8FF],
+ [0x01FA54, 0x01FA5F],
+ [0x01FA6E, 0x01FA6F],
+ [0x01FA75, 0x01FA77],
+ [0x01FA7B, 0x01FA7F],
+ [0x01FA87, 0x01FA8F],
+ [0x01FAA9, 0x01FAAF],
+ [0x01FAB7, 0x01FABF],
+ [0x01FAC3, 0x01FACF],
+ [0x01FAD7, 0x01FAFF],
+ [0x01FBCB, 0x01FBEF],
+ [0x01FBFA, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Grapheme_Base}+$/u,
+ nonMatchSymbols,
+ "\\P{Grapheme_Base}"
+);
+testPropertyEscapes(
+ /^\P{Gr_Base}+$/u,
+ nonMatchSymbols,
+ "\\P{Gr_Base}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Grapheme_Extend.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Grapheme_Extend.js
new file mode 100644
index 0000000000..a767c366a7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Grapheme_Extend.js
@@ -0,0 +1,741 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Grapheme_Extend`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0005BF,
+ 0x0005C7,
+ 0x000670,
+ 0x000711,
+ 0x0007FD,
+ 0x00093A,
+ 0x00093C,
+ 0x00094D,
+ 0x000981,
+ 0x0009BC,
+ 0x0009BE,
+ 0x0009CD,
+ 0x0009D7,
+ 0x0009FE,
+ 0x000A3C,
+ 0x000A51,
+ 0x000A75,
+ 0x000ABC,
+ 0x000ACD,
+ 0x000B01,
+ 0x000B3C,
+ 0x000B4D,
+ 0x000B82,
+ 0x000BBE,
+ 0x000BC0,
+ 0x000BCD,
+ 0x000BD7,
+ 0x000C00,
+ 0x000C04,
+ 0x000C81,
+ 0x000CBC,
+ 0x000CBF,
+ 0x000CC2,
+ 0x000CC6,
+ 0x000D3E,
+ 0x000D4D,
+ 0x000D57,
+ 0x000D81,
+ 0x000DCA,
+ 0x000DCF,
+ 0x000DD6,
+ 0x000DDF,
+ 0x000E31,
+ 0x000EB1,
+ 0x000F35,
+ 0x000F37,
+ 0x000F39,
+ 0x000FC6,
+ 0x001082,
+ 0x00108D,
+ 0x00109D,
+ 0x0017C6,
+ 0x0017DD,
+ 0x0018A9,
+ 0x001932,
+ 0x001A1B,
+ 0x001A56,
+ 0x001A60,
+ 0x001A62,
+ 0x001A7F,
+ 0x001B3C,
+ 0x001B42,
+ 0x001BE6,
+ 0x001BED,
+ 0x001CED,
+ 0x001CF4,
+ 0x00200C,
+ 0x002D7F,
+ 0x00A802,
+ 0x00A806,
+ 0x00A80B,
+ 0x00A82C,
+ 0x00A8FF,
+ 0x00A9B3,
+ 0x00A9E5,
+ 0x00AA43,
+ 0x00AA4C,
+ 0x00AA7C,
+ 0x00AAB0,
+ 0x00AAC1,
+ 0x00AAF6,
+ 0x00ABE5,
+ 0x00ABE8,
+ 0x00ABED,
+ 0x00FB1E,
+ 0x0101FD,
+ 0x0102E0,
+ 0x010A3F,
+ 0x011001,
+ 0x011173,
+ 0x0111CF,
+ 0x011234,
+ 0x01123E,
+ 0x0112DF,
+ 0x01133E,
+ 0x011340,
+ 0x011357,
+ 0x011446,
+ 0x01145E,
+ 0x0114B0,
+ 0x0114BA,
+ 0x0114BD,
+ 0x0115AF,
+ 0x01163D,
+ 0x0116AB,
+ 0x0116AD,
+ 0x0116B7,
+ 0x011930,
+ 0x01193E,
+ 0x011943,
+ 0x0119E0,
+ 0x011A47,
+ 0x011C3F,
+ 0x011D3A,
+ 0x011D47,
+ 0x011D95,
+ 0x011D97,
+ 0x016F4F,
+ 0x016FE4,
+ 0x01D165,
+ 0x01DA75,
+ 0x01DA84
+ ],
+ ranges: [
+ [0x000300, 0x00036F],
+ [0x000483, 0x000489],
+ [0x000591, 0x0005BD],
+ [0x0005C1, 0x0005C2],
+ [0x0005C4, 0x0005C5],
+ [0x000610, 0x00061A],
+ [0x00064B, 0x00065F],
+ [0x0006D6, 0x0006DC],
+ [0x0006DF, 0x0006E4],
+ [0x0006E7, 0x0006E8],
+ [0x0006EA, 0x0006ED],
+ [0x000730, 0x00074A],
+ [0x0007A6, 0x0007B0],
+ [0x0007EB, 0x0007F3],
+ [0x000816, 0x000819],
+ [0x00081B, 0x000823],
+ [0x000825, 0x000827],
+ [0x000829, 0x00082D],
+ [0x000859, 0x00085B],
+ [0x0008D3, 0x0008E1],
+ [0x0008E3, 0x000902],
+ [0x000941, 0x000948],
+ [0x000951, 0x000957],
+ [0x000962, 0x000963],
+ [0x0009C1, 0x0009C4],
+ [0x0009E2, 0x0009E3],
+ [0x000A01, 0x000A02],
+ [0x000A41, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A70, 0x000A71],
+ [0x000A81, 0x000A82],
+ [0x000AC1, 0x000AC5],
+ [0x000AC7, 0x000AC8],
+ [0x000AE2, 0x000AE3],
+ [0x000AFA, 0x000AFF],
+ [0x000B3E, 0x000B3F],
+ [0x000B41, 0x000B44],
+ [0x000B55, 0x000B57],
+ [0x000B62, 0x000B63],
+ [0x000C3E, 0x000C40],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C62, 0x000C63],
+ [0x000CCC, 0x000CCD],
+ [0x000CD5, 0x000CD6],
+ [0x000CE2, 0x000CE3],
+ [0x000D00, 0x000D01],
+ [0x000D3B, 0x000D3C],
+ [0x000D41, 0x000D44],
+ [0x000D62, 0x000D63],
+ [0x000DD2, 0x000DD4],
+ [0x000E34, 0x000E3A],
+ [0x000E47, 0x000E4E],
+ [0x000EB4, 0x000EBC],
+ [0x000EC8, 0x000ECD],
+ [0x000F18, 0x000F19],
+ [0x000F71, 0x000F7E],
+ [0x000F80, 0x000F84],
+ [0x000F86, 0x000F87],
+ [0x000F8D, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x00102D, 0x001030],
+ [0x001032, 0x001037],
+ [0x001039, 0x00103A],
+ [0x00103D, 0x00103E],
+ [0x001058, 0x001059],
+ [0x00105E, 0x001060],
+ [0x001071, 0x001074],
+ [0x001085, 0x001086],
+ [0x00135D, 0x00135F],
+ [0x001712, 0x001714],
+ [0x001732, 0x001734],
+ [0x001752, 0x001753],
+ [0x001772, 0x001773],
+ [0x0017B4, 0x0017B5],
+ [0x0017B7, 0x0017BD],
+ [0x0017C9, 0x0017D3],
+ [0x00180B, 0x00180D],
+ [0x001885, 0x001886],
+ [0x001920, 0x001922],
+ [0x001927, 0x001928],
+ [0x001939, 0x00193B],
+ [0x001A17, 0x001A18],
+ [0x001A58, 0x001A5E],
+ [0x001A65, 0x001A6C],
+ [0x001A73, 0x001A7C],
+ [0x001AB0, 0x001AC0],
+ [0x001B00, 0x001B03],
+ [0x001B34, 0x001B3A],
+ [0x001B6B, 0x001B73],
+ [0x001B80, 0x001B81],
+ [0x001BA2, 0x001BA5],
+ [0x001BA8, 0x001BA9],
+ [0x001BAB, 0x001BAD],
+ [0x001BE8, 0x001BE9],
+ [0x001BEF, 0x001BF1],
+ [0x001C2C, 0x001C33],
+ [0x001C36, 0x001C37],
+ [0x001CD0, 0x001CD2],
+ [0x001CD4, 0x001CE0],
+ [0x001CE2, 0x001CE8],
+ [0x001CF8, 0x001CF9],
+ [0x001DC0, 0x001DF9],
+ [0x001DFB, 0x001DFF],
+ [0x0020D0, 0x0020F0],
+ [0x002CEF, 0x002CF1],
+ [0x002DE0, 0x002DFF],
+ [0x00302A, 0x00302F],
+ [0x003099, 0x00309A],
+ [0x00A66F, 0x00A672],
+ [0x00A674, 0x00A67D],
+ [0x00A69E, 0x00A69F],
+ [0x00A6F0, 0x00A6F1],
+ [0x00A825, 0x00A826],
+ [0x00A8C4, 0x00A8C5],
+ [0x00A8E0, 0x00A8F1],
+ [0x00A926, 0x00A92D],
+ [0x00A947, 0x00A951],
+ [0x00A980, 0x00A982],
+ [0x00A9B6, 0x00A9B9],
+ [0x00A9BC, 0x00A9BD],
+ [0x00AA29, 0x00AA2E],
+ [0x00AA31, 0x00AA32],
+ [0x00AA35, 0x00AA36],
+ [0x00AAB2, 0x00AAB4],
+ [0x00AAB7, 0x00AAB8],
+ [0x00AABE, 0x00AABF],
+ [0x00AAEC, 0x00AAED],
+ [0x00FE00, 0x00FE0F],
+ [0x00FE20, 0x00FE2F],
+ [0x00FF9E, 0x00FF9F],
+ [0x010376, 0x01037A],
+ [0x010A01, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A0F],
+ [0x010A38, 0x010A3A],
+ [0x010AE5, 0x010AE6],
+ [0x010D24, 0x010D27],
+ [0x010EAB, 0x010EAC],
+ [0x010F46, 0x010F50],
+ [0x011038, 0x011046],
+ [0x01107F, 0x011081],
+ [0x0110B3, 0x0110B6],
+ [0x0110B9, 0x0110BA],
+ [0x011100, 0x011102],
+ [0x011127, 0x01112B],
+ [0x01112D, 0x011134],
+ [0x011180, 0x011181],
+ [0x0111B6, 0x0111BE],
+ [0x0111C9, 0x0111CC],
+ [0x01122F, 0x011231],
+ [0x011236, 0x011237],
+ [0x0112E3, 0x0112EA],
+ [0x011300, 0x011301],
+ [0x01133B, 0x01133C],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x011438, 0x01143F],
+ [0x011442, 0x011444],
+ [0x0114B3, 0x0114B8],
+ [0x0114BF, 0x0114C0],
+ [0x0114C2, 0x0114C3],
+ [0x0115B2, 0x0115B5],
+ [0x0115BC, 0x0115BD],
+ [0x0115BF, 0x0115C0],
+ [0x0115DC, 0x0115DD],
+ [0x011633, 0x01163A],
+ [0x01163F, 0x011640],
+ [0x0116B0, 0x0116B5],
+ [0x01171D, 0x01171F],
+ [0x011722, 0x011725],
+ [0x011727, 0x01172B],
+ [0x01182F, 0x011837],
+ [0x011839, 0x01183A],
+ [0x01193B, 0x01193C],
+ [0x0119D4, 0x0119D7],
+ [0x0119DA, 0x0119DB],
+ [0x011A01, 0x011A0A],
+ [0x011A33, 0x011A38],
+ [0x011A3B, 0x011A3E],
+ [0x011A51, 0x011A56],
+ [0x011A59, 0x011A5B],
+ [0x011A8A, 0x011A96],
+ [0x011A98, 0x011A99],
+ [0x011C30, 0x011C36],
+ [0x011C38, 0x011C3D],
+ [0x011C92, 0x011CA7],
+ [0x011CAA, 0x011CB0],
+ [0x011CB2, 0x011CB3],
+ [0x011CB5, 0x011CB6],
+ [0x011D31, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D45],
+ [0x011D90, 0x011D91],
+ [0x011EF3, 0x011EF4],
+ [0x016AF0, 0x016AF4],
+ [0x016B30, 0x016B36],
+ [0x016F8F, 0x016F92],
+ [0x01BC9D, 0x01BC9E],
+ [0x01D167, 0x01D169],
+ [0x01D16E, 0x01D172],
+ [0x01D17B, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D242, 0x01D244],
+ [0x01DA00, 0x01DA36],
+ [0x01DA3B, 0x01DA6C],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A],
+ [0x01E130, 0x01E136],
+ [0x01E2EC, 0x01E2EF],
+ [0x01E8D0, 0x01E8D6],
+ [0x01E944, 0x01E94A],
+ [0x0E0020, 0x0E007F],
+ [0x0E0100, 0x0E01EF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Grapheme_Extend}+$/u,
+ matchSymbols,
+ "\\p{Grapheme_Extend}"
+);
+testPropertyEscapes(
+ /^\p{Gr_Ext}+$/u,
+ matchSymbols,
+ "\\p{Gr_Ext}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0005BE,
+ 0x0005C0,
+ 0x0005C3,
+ 0x0005C6,
+ 0x0006E9,
+ 0x00081A,
+ 0x000824,
+ 0x000828,
+ 0x0008E2,
+ 0x00093B,
+ 0x0009BD,
+ 0x000AC6,
+ 0x000B00,
+ 0x000B3D,
+ 0x000B40,
+ 0x000BBF,
+ 0x000C49,
+ 0x000D3D,
+ 0x000DD5,
+ 0x000F36,
+ 0x000F38,
+ 0x000F7F,
+ 0x000F85,
+ 0x000F98,
+ 0x001031,
+ 0x001038,
+ 0x0017B6,
+ 0x001A57,
+ 0x001A5F,
+ 0x001A61,
+ 0x001B3B,
+ 0x001BAA,
+ 0x001BE7,
+ 0x001BEE,
+ 0x001CD3,
+ 0x001CE1,
+ 0x001DFA,
+ 0x00A673,
+ 0x00AAB1,
+ 0x00AAC0,
+ 0x010A04,
+ 0x01112C,
+ 0x011235,
+ 0x01133D,
+ 0x01133F,
+ 0x011445,
+ 0x0114B9,
+ 0x0114BE,
+ 0x0114C1,
+ 0x0115BE,
+ 0x01163E,
+ 0x0116AC,
+ 0x0116B6,
+ 0x011726,
+ 0x011838,
+ 0x01193D,
+ 0x011A97,
+ 0x011C37,
+ 0x011C3E,
+ 0x011CB1,
+ 0x011CB4,
+ 0x011D3B,
+ 0x011D3E,
+ 0x011D46,
+ 0x011D96,
+ 0x01D166,
+ 0x01DAA0,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0002FF],
+ [0x000370, 0x000482],
+ [0x00048A, 0x000590],
+ [0x0005C8, 0x00060F],
+ [0x00061B, 0x00064A],
+ [0x000660, 0x00066F],
+ [0x000671, 0x0006D5],
+ [0x0006DD, 0x0006DE],
+ [0x0006E5, 0x0006E6],
+ [0x0006EE, 0x000710],
+ [0x000712, 0x00072F],
+ [0x00074B, 0x0007A5],
+ [0x0007B1, 0x0007EA],
+ [0x0007F4, 0x0007FC],
+ [0x0007FE, 0x000815],
+ [0x00082E, 0x000858],
+ [0x00085C, 0x0008D2],
+ [0x000903, 0x000939],
+ [0x00093D, 0x000940],
+ [0x000949, 0x00094C],
+ [0x00094E, 0x000950],
+ [0x000958, 0x000961],
+ [0x000964, 0x000980],
+ [0x000982, 0x0009BB],
+ [0x0009BF, 0x0009C0],
+ [0x0009C5, 0x0009CC],
+ [0x0009CE, 0x0009D6],
+ [0x0009D8, 0x0009E1],
+ [0x0009E4, 0x0009FD],
+ [0x0009FF, 0x000A00],
+ [0x000A03, 0x000A3B],
+ [0x000A3D, 0x000A40],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A6F],
+ [0x000A72, 0x000A74],
+ [0x000A76, 0x000A80],
+ [0x000A83, 0x000ABB],
+ [0x000ABD, 0x000AC0],
+ [0x000AC9, 0x000ACC],
+ [0x000ACE, 0x000AE1],
+ [0x000AE4, 0x000AF9],
+ [0x000B02, 0x000B3B],
+ [0x000B45, 0x000B4C],
+ [0x000B4E, 0x000B54],
+ [0x000B58, 0x000B61],
+ [0x000B64, 0x000B81],
+ [0x000B83, 0x000BBD],
+ [0x000BC1, 0x000BCC],
+ [0x000BCE, 0x000BD6],
+ [0x000BD8, 0x000BFF],
+ [0x000C01, 0x000C03],
+ [0x000C05, 0x000C3D],
+ [0x000C41, 0x000C45],
+ [0x000C4E, 0x000C54],
+ [0x000C57, 0x000C61],
+ [0x000C64, 0x000C80],
+ [0x000C82, 0x000CBB],
+ [0x000CBD, 0x000CBE],
+ [0x000CC0, 0x000CC1],
+ [0x000CC3, 0x000CC5],
+ [0x000CC7, 0x000CCB],
+ [0x000CCE, 0x000CD4],
+ [0x000CD7, 0x000CE1],
+ [0x000CE4, 0x000CFF],
+ [0x000D02, 0x000D3A],
+ [0x000D3F, 0x000D40],
+ [0x000D45, 0x000D4C],
+ [0x000D4E, 0x000D56],
+ [0x000D58, 0x000D61],
+ [0x000D64, 0x000D80],
+ [0x000D82, 0x000DC9],
+ [0x000DCB, 0x000DCE],
+ [0x000DD0, 0x000DD1],
+ [0x000DD7, 0x000DDE],
+ [0x000DE0, 0x000E30],
+ [0x000E32, 0x000E33],
+ [0x000E3B, 0x000E46],
+ [0x000E4F, 0x000EB0],
+ [0x000EB2, 0x000EB3],
+ [0x000EBD, 0x000EC7],
+ [0x000ECE, 0x000F17],
+ [0x000F1A, 0x000F34],
+ [0x000F3A, 0x000F70],
+ [0x000F88, 0x000F8C],
+ [0x000FBD, 0x000FC5],
+ [0x000FC7, 0x00102C],
+ [0x00103B, 0x00103C],
+ [0x00103F, 0x001057],
+ [0x00105A, 0x00105D],
+ [0x001061, 0x001070],
+ [0x001075, 0x001081],
+ [0x001083, 0x001084],
+ [0x001087, 0x00108C],
+ [0x00108E, 0x00109C],
+ [0x00109E, 0x00135C],
+ [0x001360, 0x001711],
+ [0x001715, 0x001731],
+ [0x001735, 0x001751],
+ [0x001754, 0x001771],
+ [0x001774, 0x0017B3],
+ [0x0017BE, 0x0017C5],
+ [0x0017C7, 0x0017C8],
+ [0x0017D4, 0x0017DC],
+ [0x0017DE, 0x00180A],
+ [0x00180E, 0x001884],
+ [0x001887, 0x0018A8],
+ [0x0018AA, 0x00191F],
+ [0x001923, 0x001926],
+ [0x001929, 0x001931],
+ [0x001933, 0x001938],
+ [0x00193C, 0x001A16],
+ [0x001A19, 0x001A1A],
+ [0x001A1C, 0x001A55],
+ [0x001A63, 0x001A64],
+ [0x001A6D, 0x001A72],
+ [0x001A7D, 0x001A7E],
+ [0x001A80, 0x001AAF],
+ [0x001AC1, 0x001AFF],
+ [0x001B04, 0x001B33],
+ [0x001B3D, 0x001B41],
+ [0x001B43, 0x001B6A],
+ [0x001B74, 0x001B7F],
+ [0x001B82, 0x001BA1],
+ [0x001BA6, 0x001BA7],
+ [0x001BAE, 0x001BE5],
+ [0x001BEA, 0x001BEC],
+ [0x001BF2, 0x001C2B],
+ [0x001C34, 0x001C35],
+ [0x001C38, 0x001CCF],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF7],
+ [0x001CFA, 0x001DBF],
+ [0x001E00, 0x00200B],
+ [0x00200D, 0x0020CF],
+ [0x0020F1, 0x002CEE],
+ [0x002CF2, 0x002D7E],
+ [0x002D80, 0x002DDF],
+ [0x002E00, 0x003029],
+ [0x003030, 0x003098],
+ [0x00309B, 0x00A66E],
+ [0x00A67E, 0x00A69D],
+ [0x00A6A0, 0x00A6EF],
+ [0x00A6F2, 0x00A801],
+ [0x00A803, 0x00A805],
+ [0x00A807, 0x00A80A],
+ [0x00A80C, 0x00A824],
+ [0x00A827, 0x00A82B],
+ [0x00A82D, 0x00A8C3],
+ [0x00A8C6, 0x00A8DF],
+ [0x00A8F2, 0x00A8FE],
+ [0x00A900, 0x00A925],
+ [0x00A92E, 0x00A946],
+ [0x00A952, 0x00A97F],
+ [0x00A983, 0x00A9B2],
+ [0x00A9B4, 0x00A9B5],
+ [0x00A9BA, 0x00A9BB],
+ [0x00A9BE, 0x00A9E4],
+ [0x00A9E6, 0x00AA28],
+ [0x00AA2F, 0x00AA30],
+ [0x00AA33, 0x00AA34],
+ [0x00AA37, 0x00AA42],
+ [0x00AA44, 0x00AA4B],
+ [0x00AA4D, 0x00AA7B],
+ [0x00AA7D, 0x00AAAF],
+ [0x00AAB5, 0x00AAB6],
+ [0x00AAB9, 0x00AABD],
+ [0x00AAC2, 0x00AAEB],
+ [0x00AAEE, 0x00AAF5],
+ [0x00AAF7, 0x00ABE4],
+ [0x00ABE6, 0x00ABE7],
+ [0x00ABE9, 0x00ABEC],
+ [0x00ABEE, 0x00DBFF],
+ [0x00E000, 0x00FB1D],
+ [0x00FB1F, 0x00FDFF],
+ [0x00FE10, 0x00FE1F],
+ [0x00FE30, 0x00FF9D],
+ [0x00FFA0, 0x0101FC],
+ [0x0101FE, 0x0102DF],
+ [0x0102E1, 0x010375],
+ [0x01037B, 0x010A00],
+ [0x010A07, 0x010A0B],
+ [0x010A10, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A40, 0x010AE4],
+ [0x010AE7, 0x010D23],
+ [0x010D28, 0x010EAA],
+ [0x010EAD, 0x010F45],
+ [0x010F51, 0x011000],
+ [0x011002, 0x011037],
+ [0x011047, 0x01107E],
+ [0x011082, 0x0110B2],
+ [0x0110B7, 0x0110B8],
+ [0x0110BB, 0x0110FF],
+ [0x011103, 0x011126],
+ [0x011135, 0x011172],
+ [0x011174, 0x01117F],
+ [0x011182, 0x0111B5],
+ [0x0111BF, 0x0111C8],
+ [0x0111CD, 0x0111CE],
+ [0x0111D0, 0x01122E],
+ [0x011232, 0x011233],
+ [0x011238, 0x01123D],
+ [0x01123F, 0x0112DE],
+ [0x0112E0, 0x0112E2],
+ [0x0112EB, 0x0112FF],
+ [0x011302, 0x01133A],
+ [0x011341, 0x011356],
+ [0x011358, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x011437],
+ [0x011440, 0x011441],
+ [0x011447, 0x01145D],
+ [0x01145F, 0x0114AF],
+ [0x0114B1, 0x0114B2],
+ [0x0114BB, 0x0114BC],
+ [0x0114C4, 0x0115AE],
+ [0x0115B0, 0x0115B1],
+ [0x0115B6, 0x0115BB],
+ [0x0115C1, 0x0115DB],
+ [0x0115DE, 0x011632],
+ [0x01163B, 0x01163C],
+ [0x011641, 0x0116AA],
+ [0x0116AE, 0x0116AF],
+ [0x0116B8, 0x01171C],
+ [0x011720, 0x011721],
+ [0x01172C, 0x01182E],
+ [0x01183B, 0x01192F],
+ [0x011931, 0x01193A],
+ [0x01193F, 0x011942],
+ [0x011944, 0x0119D3],
+ [0x0119D8, 0x0119D9],
+ [0x0119DC, 0x0119DF],
+ [0x0119E1, 0x011A00],
+ [0x011A0B, 0x011A32],
+ [0x011A39, 0x011A3A],
+ [0x011A3F, 0x011A46],
+ [0x011A48, 0x011A50],
+ [0x011A57, 0x011A58],
+ [0x011A5C, 0x011A89],
+ [0x011A9A, 0x011C2F],
+ [0x011C40, 0x011C91],
+ [0x011CA8, 0x011CA9],
+ [0x011CB7, 0x011D30],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D8F],
+ [0x011D92, 0x011D94],
+ [0x011D98, 0x011EF2],
+ [0x011EF5, 0x016AEF],
+ [0x016AF5, 0x016B2F],
+ [0x016B37, 0x016F4E],
+ [0x016F50, 0x016F8E],
+ [0x016F93, 0x016FE3],
+ [0x016FE5, 0x01BC9C],
+ [0x01BC9F, 0x01D164],
+ [0x01D16A, 0x01D16D],
+ [0x01D173, 0x01D17A],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D241],
+ [0x01D245, 0x01D9FF],
+ [0x01DA37, 0x01DA3A],
+ [0x01DA6D, 0x01DA74],
+ [0x01DA76, 0x01DA83],
+ [0x01DA85, 0x01DA9A],
+ [0x01DAB0, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x01E12F],
+ [0x01E137, 0x01E2EB],
+ [0x01E2F0, 0x01E8CF],
+ [0x01E8D7, 0x01E943],
+ [0x01E94B, 0x0E001F],
+ [0x0E0080, 0x0E00FF],
+ [0x0E01F0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Grapheme_Extend}+$/u,
+ nonMatchSymbols,
+ "\\P{Grapheme_Extend}"
+);
+testPropertyEscapes(
+ /^\P{Gr_Ext}+$/u,
+ nonMatchSymbols,
+ "\\P{Gr_Ext}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Hex_Digit.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Hex_Digit.js
new file mode 100644
index 0000000000..81b5ddb757
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Hex_Digit.js
@@ -0,0 +1,63 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Hex_Digit`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000030, 0x000039],
+ [0x000041, 0x000046],
+ [0x000061, 0x000066],
+ [0x00FF10, 0x00FF19],
+ [0x00FF21, 0x00FF26],
+ [0x00FF41, 0x00FF46]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Hex_Digit}+$/u,
+ matchSymbols,
+ "\\p{Hex_Digit}"
+);
+testPropertyEscapes(
+ /^\p{Hex}+$/u,
+ matchSymbols,
+ "\\p{Hex}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00002F],
+ [0x00003A, 0x000040],
+ [0x000047, 0x000060],
+ [0x000067, 0x00DBFF],
+ [0x00E000, 0x00FF0F],
+ [0x00FF1A, 0x00FF20],
+ [0x00FF27, 0x00FF40],
+ [0x00FF47, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Hex_Digit}+$/u,
+ nonMatchSymbols,
+ "\\P{Hex_Digit}"
+);
+testPropertyEscapes(
+ /^\P{Hex}+$/u,
+ nonMatchSymbols,
+ "\\P{Hex}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/IDS_Binary_Operator.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/IDS_Binary_Operator.js
new file mode 100644
index 0000000000..f14ebc4a2a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/IDS_Binary_Operator.js
@@ -0,0 +1,55 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `IDS_Binary_Operator`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x002FF0, 0x002FF1],
+ [0x002FF4, 0x002FFB]
+ ]
+});
+testPropertyEscapes(
+ /^\p{IDS_Binary_Operator}+$/u,
+ matchSymbols,
+ "\\p{IDS_Binary_Operator}"
+);
+testPropertyEscapes(
+ /^\p{IDSB}+$/u,
+ matchSymbols,
+ "\\p{IDSB}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002FEF],
+ [0x002FF2, 0x002FF3],
+ [0x002FFC, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{IDS_Binary_Operator}+$/u,
+ nonMatchSymbols,
+ "\\P{IDS_Binary_Operator}"
+);
+testPropertyEscapes(
+ /^\P{IDSB}+$/u,
+ nonMatchSymbols,
+ "\\P{IDSB}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/IDS_Trinary_Operator.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/IDS_Trinary_Operator.js
new file mode 100644
index 0000000000..a8c33b0925
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/IDS_Trinary_Operator.js
@@ -0,0 +1,53 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `IDS_Trinary_Operator`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x002FF2, 0x002FF3]
+ ]
+});
+testPropertyEscapes(
+ /^\p{IDS_Trinary_Operator}+$/u,
+ matchSymbols,
+ "\\p{IDS_Trinary_Operator}"
+);
+testPropertyEscapes(
+ /^\p{IDST}+$/u,
+ matchSymbols,
+ "\\p{IDST}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002FF1],
+ [0x002FF4, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{IDS_Trinary_Operator}+$/u,
+ nonMatchSymbols,
+ "\\P{IDS_Trinary_Operator}"
+);
+testPropertyEscapes(
+ /^\P{IDST}+$/u,
+ nonMatchSymbols,
+ "\\P{IDST}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ID_Continue.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ID_Continue.js
new file mode 100644
index 0000000000..fe15765084
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ID_Continue.js
@@ -0,0 +1,1513 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `ID_Continue`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005F,
+ 0x0000AA,
+ 0x0000B5,
+ 0x0000B7,
+ 0x0000BA,
+ 0x0002EC,
+ 0x0002EE,
+ 0x00037F,
+ 0x00038C,
+ 0x000559,
+ 0x0005BF,
+ 0x0005C7,
+ 0x0006FF,
+ 0x0007FA,
+ 0x0007FD,
+ 0x0009B2,
+ 0x0009D7,
+ 0x0009FC,
+ 0x0009FE,
+ 0x000A3C,
+ 0x000A51,
+ 0x000A5E,
+ 0x000AD0,
+ 0x000B71,
+ 0x000B9C,
+ 0x000BD0,
+ 0x000BD7,
+ 0x000CDE,
+ 0x000DBD,
+ 0x000DCA,
+ 0x000DD6,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EC6,
+ 0x000F00,
+ 0x000F35,
+ 0x000F37,
+ 0x000F39,
+ 0x000FC6,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001258,
+ 0x0012C0,
+ 0x0017D7,
+ 0x001AA7,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001FBE,
+ 0x002054,
+ 0x002071,
+ 0x00207F,
+ 0x0020E1,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x00214E,
+ 0x002D27,
+ 0x002D2D,
+ 0x002D6F,
+ 0x00A82C,
+ 0x00A8FB,
+ 0x00FB3E,
+ 0x00FF3F,
+ 0x0101FD,
+ 0x0102E0,
+ 0x010808,
+ 0x01083C,
+ 0x010A3F,
+ 0x010F27,
+ 0x011176,
+ 0x0111DC,
+ 0x01123E,
+ 0x011288,
+ 0x011350,
+ 0x011357,
+ 0x0114C7,
+ 0x011644,
+ 0x011909,
+ 0x011A47,
+ 0x011A9D,
+ 0x011D3A,
+ 0x011FB0,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01DA75,
+ 0x01DA84,
+ 0x01E14E,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x000030, 0x000039],
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002C1],
+ [0x0002C6, 0x0002D1],
+ [0x0002E0, 0x0002E4],
+ [0x000300, 0x000374],
+ [0x000376, 0x000377],
+ [0x00037A, 0x00037D],
+ [0x000386, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003F5],
+ [0x0003F7, 0x000481],
+ [0x000483, 0x000487],
+ [0x00048A, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000560, 0x000588],
+ [0x000591, 0x0005BD],
+ [0x0005C1, 0x0005C2],
+ [0x0005C4, 0x0005C5],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F2],
+ [0x000610, 0x00061A],
+ [0x000620, 0x000669],
+ [0x00066E, 0x0006D3],
+ [0x0006D5, 0x0006DC],
+ [0x0006DF, 0x0006E8],
+ [0x0006EA, 0x0006FC],
+ [0x000710, 0x00074A],
+ [0x00074D, 0x0007B1],
+ [0x0007C0, 0x0007F5],
+ [0x000800, 0x00082D],
+ [0x000840, 0x00085B],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x0008D3, 0x0008E1],
+ [0x0008E3, 0x000963],
+ [0x000966, 0x00096F],
+ [0x000971, 0x000983],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009BC, 0x0009C4],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CE],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E3],
+ [0x0009E6, 0x0009F1],
+ [0x000A01, 0x000A03],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A3E, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A59, 0x000A5C],
+ [0x000A66, 0x000A75],
+ [0x000A81, 0x000A83],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000ABC, 0x000AC5],
+ [0x000AC7, 0x000AC9],
+ [0x000ACB, 0x000ACD],
+ [0x000AE0, 0x000AE3],
+ [0x000AE6, 0x000AEF],
+ [0x000AF9, 0x000AFF],
+ [0x000B01, 0x000B03],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B3C, 0x000B44],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4D],
+ [0x000B55, 0x000B57],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B63],
+ [0x000B66, 0x000B6F],
+ [0x000B82, 0x000B83],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000BBE, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCD],
+ [0x000BE6, 0x000BEF],
+ [0x000C00, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C3D, 0x000C44],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C63],
+ [0x000C66, 0x000C6F],
+ [0x000C80, 0x000C83],
+ [0x000C85, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CBC, 0x000CC4],
+ [0x000CC6, 0x000CC8],
+ [0x000CCA, 0x000CCD],
+ [0x000CD5, 0x000CD6],
+ [0x000CE0, 0x000CE3],
+ [0x000CE6, 0x000CEF],
+ [0x000CF1, 0x000CF2],
+ [0x000D00, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D44],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4E],
+ [0x000D54, 0x000D57],
+ [0x000D5F, 0x000D63],
+ [0x000D66, 0x000D6F],
+ [0x000D7A, 0x000D7F],
+ [0x000D81, 0x000D83],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000DCF, 0x000DD4],
+ [0x000DD8, 0x000DDF],
+ [0x000DE6, 0x000DEF],
+ [0x000DF2, 0x000DF3],
+ [0x000E01, 0x000E3A],
+ [0x000E40, 0x000E4E],
+ [0x000E50, 0x000E59],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EBD],
+ [0x000EC0, 0x000EC4],
+ [0x000EC8, 0x000ECD],
+ [0x000ED0, 0x000ED9],
+ [0x000EDC, 0x000EDF],
+ [0x000F18, 0x000F19],
+ [0x000F20, 0x000F29],
+ [0x000F3E, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F71, 0x000F84],
+ [0x000F86, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x001000, 0x001049],
+ [0x001050, 0x00109D],
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FA],
+ [0x0010FC, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x00135D, 0x00135F],
+ [0x001369, 0x001371],
+ [0x001380, 0x00138F],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001401, 0x00166C],
+ [0x00166F, 0x00167F],
+ [0x001681, 0x00169A],
+ [0x0016A0, 0x0016EA],
+ [0x0016EE, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001714],
+ [0x001720, 0x001734],
+ [0x001740, 0x001753],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001772, 0x001773],
+ [0x001780, 0x0017D3],
+ [0x0017DC, 0x0017DD],
+ [0x0017E0, 0x0017E9],
+ [0x00180B, 0x00180D],
+ [0x001810, 0x001819],
+ [0x001820, 0x001878],
+ [0x001880, 0x0018AA],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001920, 0x00192B],
+ [0x001930, 0x00193B],
+ [0x001946, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x0019D0, 0x0019DA],
+ [0x001A00, 0x001A1B],
+ [0x001A20, 0x001A5E],
+ [0x001A60, 0x001A7C],
+ [0x001A7F, 0x001A89],
+ [0x001A90, 0x001A99],
+ [0x001AB0, 0x001ABD],
+ [0x001ABF, 0x001AC0],
+ [0x001B00, 0x001B4B],
+ [0x001B50, 0x001B59],
+ [0x001B6B, 0x001B73],
+ [0x001B80, 0x001BF3],
+ [0x001C00, 0x001C37],
+ [0x001C40, 0x001C49],
+ [0x001C4D, 0x001C7D],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001CD0, 0x001CD2],
+ [0x001CD4, 0x001CFA],
+ [0x001D00, 0x001DF9],
+ [0x001DFB, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FBC],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FCC],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FE0, 0x001FEC],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFC],
+ [0x00203F, 0x002040],
+ [0x002090, 0x00209C],
+ [0x0020D0, 0x0020DC],
+ [0x0020E5, 0x0020F0],
+ [0x00210A, 0x002113],
+ [0x002118, 0x00211D],
+ [0x00212A, 0x002139],
+ [0x00213C, 0x00213F],
+ [0x002145, 0x002149],
+ [0x002160, 0x002188],
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CE4],
+ [0x002CEB, 0x002CF3],
+ [0x002D00, 0x002D25],
+ [0x002D30, 0x002D67],
+ [0x002D7F, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x002DE0, 0x002DFF],
+ [0x003005, 0x003007],
+ [0x003021, 0x00302F],
+ [0x003031, 0x003035],
+ [0x003038, 0x00303C],
+ [0x003041, 0x003096],
+ [0x003099, 0x00309F],
+ [0x0030A1, 0x0030FA],
+ [0x0030FC, 0x0030FF],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x0031A0, 0x0031BF],
+ [0x0031F0, 0x0031FF],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00A000, 0x00A48C],
+ [0x00A4D0, 0x00A4FD],
+ [0x00A500, 0x00A60C],
+ [0x00A610, 0x00A62B],
+ [0x00A640, 0x00A66F],
+ [0x00A674, 0x00A67D],
+ [0x00A67F, 0x00A6F1],
+ [0x00A717, 0x00A71F],
+ [0x00A722, 0x00A788],
+ [0x00A78B, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A827],
+ [0x00A840, 0x00A873],
+ [0x00A880, 0x00A8C5],
+ [0x00A8D0, 0x00A8D9],
+ [0x00A8E0, 0x00A8F7],
+ [0x00A8FD, 0x00A92D],
+ [0x00A930, 0x00A953],
+ [0x00A960, 0x00A97C],
+ [0x00A980, 0x00A9C0],
+ [0x00A9CF, 0x00A9D9],
+ [0x00A9E0, 0x00A9FE],
+ [0x00AA00, 0x00AA36],
+ [0x00AA40, 0x00AA4D],
+ [0x00AA50, 0x00AA59],
+ [0x00AA60, 0x00AA76],
+ [0x00AA7A, 0x00AAC2],
+ [0x00AADB, 0x00AADD],
+ [0x00AAE0, 0x00AAEF],
+ [0x00AAF2, 0x00AAF6],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB5C, 0x00AB69],
+ [0x00AB70, 0x00ABEA],
+ [0x00ABEC, 0x00ABED],
+ [0x00ABF0, 0x00ABF9],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1D, 0x00FB28],
+ [0x00FB2A, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBB1],
+ [0x00FBD3, 0x00FD3D],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFB],
+ [0x00FE00, 0x00FE0F],
+ [0x00FE20, 0x00FE2F],
+ [0x00FE33, 0x00FE34],
+ [0x00FE4D, 0x00FE4F],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x00FF10, 0x00FF19],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x00FF66, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010140, 0x010174],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x010300, 0x01031F],
+ [0x01032D, 0x01034A],
+ [0x010350, 0x01037A],
+ [0x010380, 0x01039D],
+ [0x0103A0, 0x0103C3],
+ [0x0103C8, 0x0103CF],
+ [0x0103D1, 0x0103D5],
+ [0x010400, 0x01049D],
+ [0x0104A0, 0x0104A9],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010860, 0x010876],
+ [0x010880, 0x01089E],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x010900, 0x010915],
+ [0x010920, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BE, 0x0109BF],
+ [0x010A00, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A38, 0x010A3A],
+ [0x010A60, 0x010A7C],
+ [0x010A80, 0x010A9C],
+ [0x010AC0, 0x010AC7],
+ [0x010AC9, 0x010AE6],
+ [0x010B00, 0x010B35],
+ [0x010B40, 0x010B55],
+ [0x010B60, 0x010B72],
+ [0x010B80, 0x010B91],
+ [0x010C00, 0x010C48],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010D00, 0x010D27],
+ [0x010D30, 0x010D39],
+ [0x010E80, 0x010EA9],
+ [0x010EAB, 0x010EAC],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F1C],
+ [0x010F30, 0x010F50],
+ [0x010FB0, 0x010FC4],
+ [0x010FE0, 0x010FF6],
+ [0x011000, 0x011046],
+ [0x011066, 0x01106F],
+ [0x01107F, 0x0110BA],
+ [0x0110D0, 0x0110E8],
+ [0x0110F0, 0x0110F9],
+ [0x011100, 0x011134],
+ [0x011136, 0x01113F],
+ [0x011144, 0x011147],
+ [0x011150, 0x011173],
+ [0x011180, 0x0111C4],
+ [0x0111C9, 0x0111CC],
+ [0x0111CE, 0x0111DA],
+ [0x011200, 0x011211],
+ [0x011213, 0x011237],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A8],
+ [0x0112B0, 0x0112EA],
+ [0x0112F0, 0x0112F9],
+ [0x011300, 0x011303],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01133B, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134D],
+ [0x01135D, 0x011363],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x011400, 0x01144A],
+ [0x011450, 0x011459],
+ [0x01145E, 0x011461],
+ [0x011480, 0x0114C5],
+ [0x0114D0, 0x0114D9],
+ [0x011580, 0x0115B5],
+ [0x0115B8, 0x0115C0],
+ [0x0115D8, 0x0115DD],
+ [0x011600, 0x011640],
+ [0x011650, 0x011659],
+ [0x011680, 0x0116B8],
+ [0x0116C0, 0x0116C9],
+ [0x011700, 0x01171A],
+ [0x01171D, 0x01172B],
+ [0x011730, 0x011739],
+ [0x011800, 0x01183A],
+ [0x0118A0, 0x0118E9],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x011935],
+ [0x011937, 0x011938],
+ [0x01193B, 0x011943],
+ [0x011950, 0x011959],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D7],
+ [0x0119DA, 0x0119E1],
+ [0x0119E3, 0x0119E4],
+ [0x011A00, 0x011A3E],
+ [0x011A50, 0x011A99],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C36],
+ [0x011C38, 0x011C40],
+ [0x011C50, 0x011C59],
+ [0x011C72, 0x011C8F],
+ [0x011C92, 0x011CA7],
+ [0x011CA9, 0x011CB6],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D47],
+ [0x011D50, 0x011D59],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D8E],
+ [0x011D90, 0x011D91],
+ [0x011D93, 0x011D98],
+ [0x011DA0, 0x011DA9],
+ [0x011EE0, 0x011EF6],
+ [0x012000, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016A60, 0x016A69],
+ [0x016AD0, 0x016AED],
+ [0x016AF0, 0x016AF4],
+ [0x016B00, 0x016B36],
+ [0x016B40, 0x016B43],
+ [0x016B50, 0x016B59],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016E40, 0x016E7F],
+ [0x016F00, 0x016F4A],
+ [0x016F4F, 0x016F87],
+ [0x016F8F, 0x016F9F],
+ [0x016FE0, 0x016FE1],
+ [0x016FE3, 0x016FE4],
+ [0x016FF0, 0x016FF1],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01BC9D, 0x01BC9E],
+ [0x01D165, 0x01D169],
+ [0x01D16D, 0x01D172],
+ [0x01D17B, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D242, 0x01D244],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D6C0],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6FA],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D734],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D76E],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D7A8],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7CB],
+ [0x01D7CE, 0x01D7FF],
+ [0x01DA00, 0x01DA36],
+ [0x01DA3B, 0x01DA6C],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A],
+ [0x01E100, 0x01E12C],
+ [0x01E130, 0x01E13D],
+ [0x01E140, 0x01E149],
+ [0x01E2C0, 0x01E2F9],
+ [0x01E800, 0x01E8C4],
+ [0x01E8D0, 0x01E8D6],
+ [0x01E900, 0x01E94B],
+ [0x01E950, 0x01E959],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01FBF0, 0x01FBF9],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A],
+ [0x0E0100, 0x0E01EF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{ID_Continue}+$/u,
+ matchSymbols,
+ "\\p{ID_Continue}"
+);
+testPropertyEscapes(
+ /^\p{IDC}+$/u,
+ matchSymbols,
+ "\\p{IDC}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000060,
+ 0x0000B6,
+ 0x0000D7,
+ 0x0000F7,
+ 0x0002ED,
+ 0x000375,
+ 0x00037E,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x0003F6,
+ 0x000482,
+ 0x000530,
+ 0x0005BE,
+ 0x0005C0,
+ 0x0005C3,
+ 0x0005C6,
+ 0x0006D4,
+ 0x0006E9,
+ 0x0008B5,
+ 0x0008E2,
+ 0x000970,
+ 0x000984,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE,
+ 0x0009FD,
+ 0x000A04,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A3D,
+ 0x000A5D,
+ 0x000A84,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000AC6,
+ 0x000ACA,
+ 0x000B00,
+ 0x000B04,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B70,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000BC9,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C45,
+ 0x000C49,
+ 0x000C57,
+ 0x000C84,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CC5,
+ 0x000CC9,
+ 0x000CDF,
+ 0x000CF0,
+ 0x000D0D,
+ 0x000D11,
+ 0x000D45,
+ 0x000D49,
+ 0x000D80,
+ 0x000D84,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000DD5,
+ 0x000DD7,
+ 0x000E4F,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EC5,
+ 0x000EC7,
+ 0x000F36,
+ 0x000F38,
+ 0x000F48,
+ 0x000F85,
+ 0x000F98,
+ 0x0010C6,
+ 0x0010FB,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x001680,
+ 0x00170D,
+ 0x00176D,
+ 0x001771,
+ 0x00191F,
+ 0x001A5F,
+ 0x001ABE,
+ 0x001CD3,
+ 0x001DFA,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FBD,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002114,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x002DDF,
+ 0x003030,
+ 0x0030A0,
+ 0x0030FB,
+ 0x003130,
+ 0x00A67E,
+ 0x00A8FC,
+ 0x00A9FF,
+ 0x00AB27,
+ 0x00AB2F,
+ 0x00AB5B,
+ 0x00ABEB,
+ 0x00FB29,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE75,
+ 0x00FF40,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x0103D0,
+ 0x010809,
+ 0x010836,
+ 0x0108F3,
+ 0x010A04,
+ 0x010A14,
+ 0x010A18,
+ 0x010AC8,
+ 0x010EAA,
+ 0x011135,
+ 0x0111CD,
+ 0x0111DB,
+ 0x011212,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x011304,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x01133A,
+ 0x0114C6,
+ 0x011914,
+ 0x011917,
+ 0x011936,
+ 0x0119E2,
+ 0x011C09,
+ 0x011C37,
+ 0x011CA8,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D3B,
+ 0x011D3E,
+ 0x011D66,
+ 0x011D69,
+ 0x011D8F,
+ 0x011D92,
+ 0x016A5F,
+ 0x016FE2,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01D6C1,
+ 0x01D6DB,
+ 0x01D6FB,
+ 0x01D715,
+ 0x01D735,
+ 0x01D74F,
+ 0x01D76F,
+ 0x01D789,
+ 0x01D7A9,
+ 0x01D7C3,
+ 0x01DAA0,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00002F],
+ [0x00003A, 0x000040],
+ [0x00005B, 0x00005E],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B4],
+ [0x0000B8, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0002C2, 0x0002C5],
+ [0x0002D2, 0x0002DF],
+ [0x0002E5, 0x0002EB],
+ [0x0002EF, 0x0002FF],
+ [0x000378, 0x000379],
+ [0x000380, 0x000385],
+ [0x000488, 0x000489],
+ [0x000557, 0x000558],
+ [0x00055A, 0x00055F],
+ [0x000589, 0x000590],
+ [0x0005C8, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F3, 0x00060F],
+ [0x00061B, 0x00061F],
+ [0x00066A, 0x00066D],
+ [0x0006DD, 0x0006DE],
+ [0x0006FD, 0x0006FE],
+ [0x000700, 0x00070F],
+ [0x00074B, 0x00074C],
+ [0x0007B2, 0x0007BF],
+ [0x0007F6, 0x0007F9],
+ [0x0007FB, 0x0007FC],
+ [0x0007FE, 0x0007FF],
+ [0x00082E, 0x00083F],
+ [0x00085C, 0x00085F],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x0008D2],
+ [0x000964, 0x000965],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BB],
+ [0x0009C5, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CF, 0x0009D6],
+ [0x0009D8, 0x0009DB],
+ [0x0009E4, 0x0009E5],
+ [0x0009F2, 0x0009FB],
+ [0x0009FF, 0x000A00],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A3B],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A58],
+ [0x000A5F, 0x000A65],
+ [0x000A76, 0x000A80],
+ [0x000ABA, 0x000ABB],
+ [0x000ACE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE4, 0x000AE5],
+ [0x000AF0, 0x000AF8],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3B],
+ [0x000B45, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4E, 0x000B54],
+ [0x000B58, 0x000B5B],
+ [0x000B64, 0x000B65],
+ [0x000B72, 0x000B81],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BBD],
+ [0x000BC3, 0x000BC5],
+ [0x000BCE, 0x000BCF],
+ [0x000BD1, 0x000BD6],
+ [0x000BD8, 0x000BE5],
+ [0x000BF0, 0x000BFF],
+ [0x000C3A, 0x000C3C],
+ [0x000C4E, 0x000C54],
+ [0x000C5B, 0x000C5F],
+ [0x000C64, 0x000C65],
+ [0x000C70, 0x000C7F],
+ [0x000CBA, 0x000CBB],
+ [0x000CCE, 0x000CD4],
+ [0x000CD7, 0x000CDD],
+ [0x000CE4, 0x000CE5],
+ [0x000CF3, 0x000CFF],
+ [0x000D4F, 0x000D53],
+ [0x000D58, 0x000D5E],
+ [0x000D64, 0x000D65],
+ [0x000D70, 0x000D79],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000DC9],
+ [0x000DCB, 0x000DCE],
+ [0x000DE0, 0x000DE5],
+ [0x000DF0, 0x000DF1],
+ [0x000DF4, 0x000E00],
+ [0x000E3B, 0x000E3F],
+ [0x000E5A, 0x000E80],
+ [0x000EBE, 0x000EBF],
+ [0x000ECE, 0x000ECF],
+ [0x000EDA, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F01, 0x000F17],
+ [0x000F1A, 0x000F1F],
+ [0x000F2A, 0x000F34],
+ [0x000F3A, 0x000F3D],
+ [0x000F6D, 0x000F70],
+ [0x000FBD, 0x000FC5],
+ [0x000FC7, 0x000FFF],
+ [0x00104A, 0x00104F],
+ [0x00109E, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00135C],
+ [0x001360, 0x001368],
+ [0x001372, 0x00137F],
+ [0x001390, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x001400],
+ [0x00166D, 0x00166E],
+ [0x00169B, 0x00169F],
+ [0x0016EB, 0x0016ED],
+ [0x0016F9, 0x0016FF],
+ [0x001715, 0x00171F],
+ [0x001735, 0x00173F],
+ [0x001754, 0x00175F],
+ [0x001774, 0x00177F],
+ [0x0017D4, 0x0017D6],
+ [0x0017D8, 0x0017DB],
+ [0x0017DE, 0x0017DF],
+ [0x0017EA, 0x00180A],
+ [0x00180E, 0x00180F],
+ [0x00181A, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00192C, 0x00192F],
+ [0x00193C, 0x001945],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019CF],
+ [0x0019DB, 0x0019FF],
+ [0x001A1C, 0x001A1F],
+ [0x001A7D, 0x001A7E],
+ [0x001A8A, 0x001A8F],
+ [0x001A9A, 0x001AA6],
+ [0x001AA8, 0x001AAF],
+ [0x001AC1, 0x001AFF],
+ [0x001B4C, 0x001B4F],
+ [0x001B5A, 0x001B6A],
+ [0x001B74, 0x001B7F],
+ [0x001BF4, 0x001BFF],
+ [0x001C38, 0x001C3F],
+ [0x001C4A, 0x001C4C],
+ [0x001C7E, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001CCF],
+ [0x001CFB, 0x001CFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FDC, 0x001FDF],
+ [0x001FED, 0x001FF1],
+ [0x001FFD, 0x00203E],
+ [0x002041, 0x002053],
+ [0x002055, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x0020CF],
+ [0x0020DD, 0x0020E0],
+ [0x0020E2, 0x0020E4],
+ [0x0020F1, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002117],
+ [0x00211E, 0x002123],
+ [0x00213A, 0x00213B],
+ [0x002140, 0x002144],
+ [0x00214A, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002189, 0x002BFF],
+ [0x002CE5, 0x002CEA],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D70, 0x002D7E],
+ [0x002D97, 0x002D9F],
+ [0x002E00, 0x003004],
+ [0x003008, 0x003020],
+ [0x003036, 0x003037],
+ [0x00303D, 0x003040],
+ [0x003097, 0x003098],
+ [0x003100, 0x003104],
+ [0x00318F, 0x00319F],
+ [0x0031C0, 0x0031EF],
+ [0x003200, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A4CF],
+ [0x00A4FE, 0x00A4FF],
+ [0x00A60D, 0x00A60F],
+ [0x00A62C, 0x00A63F],
+ [0x00A670, 0x00A673],
+ [0x00A6F2, 0x00A716],
+ [0x00A720, 0x00A721],
+ [0x00A789, 0x00A78A],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A828, 0x00A82B],
+ [0x00A82D, 0x00A83F],
+ [0x00A874, 0x00A87F],
+ [0x00A8C6, 0x00A8CF],
+ [0x00A8DA, 0x00A8DF],
+ [0x00A8F8, 0x00A8FA],
+ [0x00A92E, 0x00A92F],
+ [0x00A954, 0x00A95F],
+ [0x00A97D, 0x00A97F],
+ [0x00A9C1, 0x00A9CE],
+ [0x00A9DA, 0x00A9DF],
+ [0x00AA37, 0x00AA3F],
+ [0x00AA4E, 0x00AA4F],
+ [0x00AA5A, 0x00AA5F],
+ [0x00AA77, 0x00AA79],
+ [0x00AAC3, 0x00AADA],
+ [0x00AADE, 0x00AADF],
+ [0x00AAF0, 0x00AAF1],
+ [0x00AAF7, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB6A, 0x00AB6F],
+ [0x00ABEE, 0x00ABEF],
+ [0x00ABFA, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBB2, 0x00FBD2],
+ [0x00FD3E, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFC, 0x00FDFF],
+ [0x00FE10, 0x00FE1F],
+ [0x00FE30, 0x00FE32],
+ [0x00FE35, 0x00FE4C],
+ [0x00FE50, 0x00FE6F],
+ [0x00FEFD, 0x00FF0F],
+ [0x00FF1A, 0x00FF20],
+ [0x00FF3B, 0x00FF3E],
+ [0x00FF5B, 0x00FF65],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x01013F],
+ [0x010175, 0x0101FC],
+ [0x0101FE, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102DF],
+ [0x0102E1, 0x0102FF],
+ [0x010320, 0x01032C],
+ [0x01034B, 0x01034F],
+ [0x01037B, 0x01037F],
+ [0x01039E, 0x01039F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x0103FF],
+ [0x01049E, 0x01049F],
+ [0x0104AA, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x010856, 0x01085F],
+ [0x010877, 0x01087F],
+ [0x01089F, 0x0108DF],
+ [0x0108F6, 0x0108FF],
+ [0x010916, 0x01091F],
+ [0x01093A, 0x01097F],
+ [0x0109B8, 0x0109BD],
+ [0x0109C0, 0x0109FF],
+ [0x010A07, 0x010A0B],
+ [0x010A36, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A40, 0x010A5F],
+ [0x010A7D, 0x010A7F],
+ [0x010A9D, 0x010ABF],
+ [0x010AE7, 0x010AFF],
+ [0x010B36, 0x010B3F],
+ [0x010B56, 0x010B5F],
+ [0x010B73, 0x010B7F],
+ [0x010B92, 0x010BFF],
+ [0x010C49, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CFF],
+ [0x010D28, 0x010D2F],
+ [0x010D3A, 0x010E7F],
+ [0x010EAD, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F1D, 0x010F26],
+ [0x010F28, 0x010F2F],
+ [0x010F51, 0x010FAF],
+ [0x010FC5, 0x010FDF],
+ [0x010FF7, 0x010FFF],
+ [0x011047, 0x011065],
+ [0x011070, 0x01107E],
+ [0x0110BB, 0x0110CF],
+ [0x0110E9, 0x0110EF],
+ [0x0110FA, 0x0110FF],
+ [0x011140, 0x011143],
+ [0x011148, 0x01114F],
+ [0x011174, 0x011175],
+ [0x011177, 0x01117F],
+ [0x0111C5, 0x0111C8],
+ [0x0111DD, 0x0111FF],
+ [0x011238, 0x01123D],
+ [0x01123F, 0x01127F],
+ [0x0112A9, 0x0112AF],
+ [0x0112EB, 0x0112EF],
+ [0x0112FA, 0x0112FF],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134E, 0x01134F],
+ [0x011351, 0x011356],
+ [0x011358, 0x01135C],
+ [0x011364, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x0113FF],
+ [0x01144B, 0x01144F],
+ [0x01145A, 0x01145D],
+ [0x011462, 0x01147F],
+ [0x0114C8, 0x0114CF],
+ [0x0114DA, 0x01157F],
+ [0x0115B6, 0x0115B7],
+ [0x0115C1, 0x0115D7],
+ [0x0115DE, 0x0115FF],
+ [0x011641, 0x011643],
+ [0x011645, 0x01164F],
+ [0x01165A, 0x01167F],
+ [0x0116B9, 0x0116BF],
+ [0x0116CA, 0x0116FF],
+ [0x01171B, 0x01171C],
+ [0x01172C, 0x01172F],
+ [0x01173A, 0x0117FF],
+ [0x01183B, 0x01189F],
+ [0x0118EA, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011939, 0x01193A],
+ [0x011944, 0x01194F],
+ [0x01195A, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D8, 0x0119D9],
+ [0x0119E5, 0x0119FF],
+ [0x011A3F, 0x011A46],
+ [0x011A48, 0x011A4F],
+ [0x011A9A, 0x011A9C],
+ [0x011A9E, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C41, 0x011C4F],
+ [0x011C5A, 0x011C71],
+ [0x011C90, 0x011C91],
+ [0x011CB7, 0x011CFF],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D4F],
+ [0x011D5A, 0x011D5F],
+ [0x011D99, 0x011D9F],
+ [0x011DAA, 0x011EDF],
+ [0x011EF7, 0x011FAF],
+ [0x011FB1, 0x011FFF],
+ [0x01239A, 0x0123FF],
+ [0x01246F, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x01342F, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A6A, 0x016ACF],
+ [0x016AEE, 0x016AEF],
+ [0x016AF5, 0x016AFF],
+ [0x016B37, 0x016B3F],
+ [0x016B44, 0x016B4F],
+ [0x016B5A, 0x016B62],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016E3F],
+ [0x016E80, 0x016EFF],
+ [0x016F4B, 0x016F4E],
+ [0x016F88, 0x016F8E],
+ [0x016FA0, 0x016FDF],
+ [0x016FE5, 0x016FEF],
+ [0x016FF2, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01BC9C],
+ [0x01BC9F, 0x01D164],
+ [0x01D16A, 0x01D16C],
+ [0x01D173, 0x01D17A],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D241],
+ [0x01D245, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01D7CD],
+ [0x01D800, 0x01D9FF],
+ [0x01DA37, 0x01DA3A],
+ [0x01DA6D, 0x01DA74],
+ [0x01DA76, 0x01DA83],
+ [0x01DA85, 0x01DA9A],
+ [0x01DAB0, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x01E0FF],
+ [0x01E12D, 0x01E12F],
+ [0x01E13E, 0x01E13F],
+ [0x01E14A, 0x01E14D],
+ [0x01E14F, 0x01E2BF],
+ [0x01E2FA, 0x01E7FF],
+ [0x01E8C5, 0x01E8CF],
+ [0x01E8D7, 0x01E8FF],
+ [0x01E94C, 0x01E94F],
+ [0x01E95A, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01FBEF],
+ [0x01FBFA, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x0E00FF],
+ [0x0E01F0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{ID_Continue}+$/u,
+ nonMatchSymbols,
+ "\\P{ID_Continue}"
+);
+testPropertyEscapes(
+ /^\P{IDC}+$/u,
+ nonMatchSymbols,
+ "\\P{IDC}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ID_Start.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ID_Start.js
new file mode 100644
index 0000000000..1971844ac7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/ID_Start.js
@@ -0,0 +1,1297 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `ID_Start`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000B5,
+ 0x0000BA,
+ 0x0002EC,
+ 0x0002EE,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x000559,
+ 0x0006D5,
+ 0x0006FF,
+ 0x000710,
+ 0x0007B1,
+ 0x0007FA,
+ 0x00081A,
+ 0x000824,
+ 0x000828,
+ 0x00093D,
+ 0x000950,
+ 0x0009B2,
+ 0x0009BD,
+ 0x0009CE,
+ 0x0009FC,
+ 0x000A5E,
+ 0x000ABD,
+ 0x000AD0,
+ 0x000AF9,
+ 0x000B3D,
+ 0x000B71,
+ 0x000B83,
+ 0x000B9C,
+ 0x000BD0,
+ 0x000C3D,
+ 0x000C80,
+ 0x000CBD,
+ 0x000CDE,
+ 0x000D3D,
+ 0x000D4E,
+ 0x000DBD,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EBD,
+ 0x000EC6,
+ 0x000F00,
+ 0x00103F,
+ 0x001061,
+ 0x00108E,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001258,
+ 0x0012C0,
+ 0x0017D7,
+ 0x0017DC,
+ 0x0018AA,
+ 0x001AA7,
+ 0x001CFA,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001FBE,
+ 0x002071,
+ 0x00207F,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x00214E,
+ 0x002D27,
+ 0x002D2D,
+ 0x002D6F,
+ 0x00A8FB,
+ 0x00A9CF,
+ 0x00AA7A,
+ 0x00AAB1,
+ 0x00AAC0,
+ 0x00AAC2,
+ 0x00FB1D,
+ 0x00FB3E,
+ 0x010808,
+ 0x01083C,
+ 0x010A00,
+ 0x010F27,
+ 0x011144,
+ 0x011147,
+ 0x011176,
+ 0x0111DA,
+ 0x0111DC,
+ 0x011288,
+ 0x01133D,
+ 0x011350,
+ 0x0114C7,
+ 0x011644,
+ 0x0116B8,
+ 0x011909,
+ 0x01193F,
+ 0x011941,
+ 0x0119E1,
+ 0x0119E3,
+ 0x011A00,
+ 0x011A3A,
+ 0x011A50,
+ 0x011A9D,
+ 0x011C40,
+ 0x011D46,
+ 0x011D98,
+ 0x011FB0,
+ 0x016F50,
+ 0x016FE3,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01E14E,
+ 0x01E94B,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002C1],
+ [0x0002C6, 0x0002D1],
+ [0x0002E0, 0x0002E4],
+ [0x000370, 0x000374],
+ [0x000376, 0x000377],
+ [0x00037A, 0x00037D],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003F5],
+ [0x0003F7, 0x000481],
+ [0x00048A, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000560, 0x000588],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F2],
+ [0x000620, 0x00064A],
+ [0x00066E, 0x00066F],
+ [0x000671, 0x0006D3],
+ [0x0006E5, 0x0006E6],
+ [0x0006EE, 0x0006EF],
+ [0x0006FA, 0x0006FC],
+ [0x000712, 0x00072F],
+ [0x00074D, 0x0007A5],
+ [0x0007CA, 0x0007EA],
+ [0x0007F4, 0x0007F5],
+ [0x000800, 0x000815],
+ [0x000840, 0x000858],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x000904, 0x000939],
+ [0x000958, 0x000961],
+ [0x000971, 0x000980],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E1],
+ [0x0009F0, 0x0009F1],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A59, 0x000A5C],
+ [0x000A72, 0x000A74],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000AE0, 0x000AE1],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B61],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000C05, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C61],
+ [0x000C85, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CE0, 0x000CE1],
+ [0x000CF1, 0x000CF2],
+ [0x000D04, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D3A],
+ [0x000D54, 0x000D56],
+ [0x000D5F, 0x000D61],
+ [0x000D7A, 0x000D7F],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000E01, 0x000E30],
+ [0x000E32, 0x000E33],
+ [0x000E40, 0x000E46],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EB0],
+ [0x000EB2, 0x000EB3],
+ [0x000EC0, 0x000EC4],
+ [0x000EDC, 0x000EDF],
+ [0x000F40, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F88, 0x000F8C],
+ [0x001000, 0x00102A],
+ [0x001050, 0x001055],
+ [0x00105A, 0x00105D],
+ [0x001065, 0x001066],
+ [0x00106E, 0x001070],
+ [0x001075, 0x001081],
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FA],
+ [0x0010FC, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x001380, 0x00138F],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001401, 0x00166C],
+ [0x00166F, 0x00167F],
+ [0x001681, 0x00169A],
+ [0x0016A0, 0x0016EA],
+ [0x0016EE, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001711],
+ [0x001720, 0x001731],
+ [0x001740, 0x001751],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001780, 0x0017B3],
+ [0x001820, 0x001878],
+ [0x001880, 0x0018A8],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001950, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x001A00, 0x001A16],
+ [0x001A20, 0x001A54],
+ [0x001B05, 0x001B33],
+ [0x001B45, 0x001B4B],
+ [0x001B83, 0x001BA0],
+ [0x001BAE, 0x001BAF],
+ [0x001BBA, 0x001BE5],
+ [0x001C00, 0x001C23],
+ [0x001C4D, 0x001C4F],
+ [0x001C5A, 0x001C7D],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF6],
+ [0x001D00, 0x001DBF],
+ [0x001E00, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FBC],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FCC],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FE0, 0x001FEC],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFC],
+ [0x002090, 0x00209C],
+ [0x00210A, 0x002113],
+ [0x002118, 0x00211D],
+ [0x00212A, 0x002139],
+ [0x00213C, 0x00213F],
+ [0x002145, 0x002149],
+ [0x002160, 0x002188],
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CE4],
+ [0x002CEB, 0x002CEE],
+ [0x002CF2, 0x002CF3],
+ [0x002D00, 0x002D25],
+ [0x002D30, 0x002D67],
+ [0x002D80, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x003005, 0x003007],
+ [0x003021, 0x003029],
+ [0x003031, 0x003035],
+ [0x003038, 0x00303C],
+ [0x003041, 0x003096],
+ [0x00309B, 0x00309F],
+ [0x0030A1, 0x0030FA],
+ [0x0030FC, 0x0030FF],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x0031A0, 0x0031BF],
+ [0x0031F0, 0x0031FF],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00A000, 0x00A48C],
+ [0x00A4D0, 0x00A4FD],
+ [0x00A500, 0x00A60C],
+ [0x00A610, 0x00A61F],
+ [0x00A62A, 0x00A62B],
+ [0x00A640, 0x00A66E],
+ [0x00A67F, 0x00A69D],
+ [0x00A6A0, 0x00A6EF],
+ [0x00A717, 0x00A71F],
+ [0x00A722, 0x00A788],
+ [0x00A78B, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A801],
+ [0x00A803, 0x00A805],
+ [0x00A807, 0x00A80A],
+ [0x00A80C, 0x00A822],
+ [0x00A840, 0x00A873],
+ [0x00A882, 0x00A8B3],
+ [0x00A8F2, 0x00A8F7],
+ [0x00A8FD, 0x00A8FE],
+ [0x00A90A, 0x00A925],
+ [0x00A930, 0x00A946],
+ [0x00A960, 0x00A97C],
+ [0x00A984, 0x00A9B2],
+ [0x00A9E0, 0x00A9E4],
+ [0x00A9E6, 0x00A9EF],
+ [0x00A9FA, 0x00A9FE],
+ [0x00AA00, 0x00AA28],
+ [0x00AA40, 0x00AA42],
+ [0x00AA44, 0x00AA4B],
+ [0x00AA60, 0x00AA76],
+ [0x00AA7E, 0x00AAAF],
+ [0x00AAB5, 0x00AAB6],
+ [0x00AAB9, 0x00AABD],
+ [0x00AADB, 0x00AADD],
+ [0x00AAE0, 0x00AAEA],
+ [0x00AAF2, 0x00AAF4],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB5C, 0x00AB69],
+ [0x00AB70, 0x00ABE2],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1F, 0x00FB28],
+ [0x00FB2A, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBB1],
+ [0x00FBD3, 0x00FD3D],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFB],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x00FF66, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010140, 0x010174],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x010300, 0x01031F],
+ [0x01032D, 0x01034A],
+ [0x010350, 0x010375],
+ [0x010380, 0x01039D],
+ [0x0103A0, 0x0103C3],
+ [0x0103C8, 0x0103CF],
+ [0x0103D1, 0x0103D5],
+ [0x010400, 0x01049D],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010860, 0x010876],
+ [0x010880, 0x01089E],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x010900, 0x010915],
+ [0x010920, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BE, 0x0109BF],
+ [0x010A10, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A60, 0x010A7C],
+ [0x010A80, 0x010A9C],
+ [0x010AC0, 0x010AC7],
+ [0x010AC9, 0x010AE4],
+ [0x010B00, 0x010B35],
+ [0x010B40, 0x010B55],
+ [0x010B60, 0x010B72],
+ [0x010B80, 0x010B91],
+ [0x010C00, 0x010C48],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010D00, 0x010D23],
+ [0x010E80, 0x010EA9],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F1C],
+ [0x010F30, 0x010F45],
+ [0x010FB0, 0x010FC4],
+ [0x010FE0, 0x010FF6],
+ [0x011003, 0x011037],
+ [0x011083, 0x0110AF],
+ [0x0110D0, 0x0110E8],
+ [0x011103, 0x011126],
+ [0x011150, 0x011172],
+ [0x011183, 0x0111B2],
+ [0x0111C1, 0x0111C4],
+ [0x011200, 0x011211],
+ [0x011213, 0x01122B],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A8],
+ [0x0112B0, 0x0112DE],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01135D, 0x011361],
+ [0x011400, 0x011434],
+ [0x011447, 0x01144A],
+ [0x01145F, 0x011461],
+ [0x011480, 0x0114AF],
+ [0x0114C4, 0x0114C5],
+ [0x011580, 0x0115AE],
+ [0x0115D8, 0x0115DB],
+ [0x011600, 0x01162F],
+ [0x011680, 0x0116AA],
+ [0x011700, 0x01171A],
+ [0x011800, 0x01182B],
+ [0x0118A0, 0x0118DF],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x01192F],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D0],
+ [0x011A0B, 0x011A32],
+ [0x011A5C, 0x011A89],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C2E],
+ [0x011C72, 0x011C8F],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D30],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D89],
+ [0x011EE0, 0x011EF2],
+ [0x012000, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016AD0, 0x016AED],
+ [0x016B00, 0x016B2F],
+ [0x016B40, 0x016B43],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016E40, 0x016E7F],
+ [0x016F00, 0x016F4A],
+ [0x016F93, 0x016F9F],
+ [0x016FE0, 0x016FE1],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D6C0],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6FA],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D734],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D76E],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D7A8],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7CB],
+ [0x01E100, 0x01E12C],
+ [0x01E137, 0x01E13D],
+ [0x01E2C0, 0x01E2EB],
+ [0x01E800, 0x01E8C4],
+ [0x01E900, 0x01E943],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{ID_Start}+$/u,
+ matchSymbols,
+ "\\p{ID_Start}"
+);
+testPropertyEscapes(
+ /^\p{IDS}+$/u,
+ matchSymbols,
+ "\\p{IDS}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x0002ED,
+ 0x000375,
+ 0x00037E,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x0003F6,
+ 0x000530,
+ 0x000670,
+ 0x0006D4,
+ 0x000711,
+ 0x0008B5,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A5D,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CDF,
+ 0x000D0D,
+ 0x000D11,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000E31,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EB1,
+ 0x000EC5,
+ 0x000F48,
+ 0x0010C6,
+ 0x0010FB,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x001680,
+ 0x00170D,
+ 0x00176D,
+ 0x0018A9,
+ 0x001CED,
+ 0x001CF4,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FBD,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002114,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x0030A0,
+ 0x0030FB,
+ 0x003130,
+ 0x00A802,
+ 0x00A806,
+ 0x00A80B,
+ 0x00A8FC,
+ 0x00A9E5,
+ 0x00A9FF,
+ 0x00AA43,
+ 0x00AAB0,
+ 0x00AAC1,
+ 0x00AB27,
+ 0x00AB2F,
+ 0x00AB5B,
+ 0x00FB1E,
+ 0x00FB29,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE75,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x0103D0,
+ 0x010809,
+ 0x010836,
+ 0x0108F3,
+ 0x010A14,
+ 0x010A18,
+ 0x010AC8,
+ 0x0111DB,
+ 0x011212,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x0114C6,
+ 0x011914,
+ 0x011917,
+ 0x011940,
+ 0x0119E2,
+ 0x011C09,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D66,
+ 0x011D69,
+ 0x016FE2,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01D6C1,
+ 0x01D6DB,
+ 0x01D6FB,
+ 0x01D715,
+ 0x01D735,
+ 0x01D74F,
+ 0x01D76F,
+ 0x01D789,
+ 0x01D7A9,
+ 0x01D7C3,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B4],
+ [0x0000B6, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0002C2, 0x0002C5],
+ [0x0002D2, 0x0002DF],
+ [0x0002E5, 0x0002EB],
+ [0x0002EF, 0x00036F],
+ [0x000378, 0x000379],
+ [0x000380, 0x000385],
+ [0x000482, 0x000489],
+ [0x000557, 0x000558],
+ [0x00055A, 0x00055F],
+ [0x000589, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F3, 0x00061F],
+ [0x00064B, 0x00066D],
+ [0x0006D6, 0x0006E4],
+ [0x0006E7, 0x0006ED],
+ [0x0006F0, 0x0006F9],
+ [0x0006FD, 0x0006FE],
+ [0x000700, 0x00070F],
+ [0x000730, 0x00074C],
+ [0x0007A6, 0x0007B0],
+ [0x0007B2, 0x0007C9],
+ [0x0007EB, 0x0007F3],
+ [0x0007F6, 0x0007F9],
+ [0x0007FB, 0x0007FF],
+ [0x000816, 0x000819],
+ [0x00081B, 0x000823],
+ [0x000825, 0x000827],
+ [0x000829, 0x00083F],
+ [0x000859, 0x00085F],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x000903],
+ [0x00093A, 0x00093C],
+ [0x00093E, 0x00094F],
+ [0x000951, 0x000957],
+ [0x000962, 0x000970],
+ [0x000981, 0x000984],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BC],
+ [0x0009BE, 0x0009CD],
+ [0x0009CF, 0x0009DB],
+ [0x0009E2, 0x0009EF],
+ [0x0009F2, 0x0009FB],
+ [0x0009FD, 0x000A04],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A58],
+ [0x000A5F, 0x000A71],
+ [0x000A75, 0x000A84],
+ [0x000ABA, 0x000ABC],
+ [0x000ABE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE2, 0x000AF8],
+ [0x000AFA, 0x000B04],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3C],
+ [0x000B3E, 0x000B5B],
+ [0x000B62, 0x000B70],
+ [0x000B72, 0x000B82],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BCF],
+ [0x000BD1, 0x000C04],
+ [0x000C3A, 0x000C3C],
+ [0x000C3E, 0x000C57],
+ [0x000C5B, 0x000C5F],
+ [0x000C62, 0x000C7F],
+ [0x000C81, 0x000C84],
+ [0x000CBA, 0x000CBC],
+ [0x000CBE, 0x000CDD],
+ [0x000CE2, 0x000CF0],
+ [0x000CF3, 0x000D03],
+ [0x000D3B, 0x000D3C],
+ [0x000D3E, 0x000D4D],
+ [0x000D4F, 0x000D53],
+ [0x000D57, 0x000D5E],
+ [0x000D62, 0x000D79],
+ [0x000D80, 0x000D84],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000E00],
+ [0x000E34, 0x000E3F],
+ [0x000E47, 0x000E80],
+ [0x000EB4, 0x000EBC],
+ [0x000EBE, 0x000EBF],
+ [0x000EC7, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F01, 0x000F3F],
+ [0x000F6D, 0x000F87],
+ [0x000F8D, 0x000FFF],
+ [0x00102B, 0x00103E],
+ [0x001040, 0x00104F],
+ [0x001056, 0x001059],
+ [0x00105E, 0x001060],
+ [0x001062, 0x001064],
+ [0x001067, 0x00106D],
+ [0x001071, 0x001074],
+ [0x001082, 0x00108D],
+ [0x00108F, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00137F],
+ [0x001390, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x001400],
+ [0x00166D, 0x00166E],
+ [0x00169B, 0x00169F],
+ [0x0016EB, 0x0016ED],
+ [0x0016F9, 0x0016FF],
+ [0x001712, 0x00171F],
+ [0x001732, 0x00173F],
+ [0x001752, 0x00175F],
+ [0x001771, 0x00177F],
+ [0x0017B4, 0x0017D6],
+ [0x0017D8, 0x0017DB],
+ [0x0017DD, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00191F, 0x00194F],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019FF],
+ [0x001A17, 0x001A1F],
+ [0x001A55, 0x001AA6],
+ [0x001AA8, 0x001B04],
+ [0x001B34, 0x001B44],
+ [0x001B4C, 0x001B82],
+ [0x001BA1, 0x001BAD],
+ [0x001BB0, 0x001BB9],
+ [0x001BE6, 0x001BFF],
+ [0x001C24, 0x001C4C],
+ [0x001C50, 0x001C59],
+ [0x001C7E, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001CE8],
+ [0x001CF7, 0x001CF9],
+ [0x001CFB, 0x001CFF],
+ [0x001DC0, 0x001DFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FDC, 0x001FDF],
+ [0x001FED, 0x001FF1],
+ [0x001FFD, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002117],
+ [0x00211E, 0x002123],
+ [0x00213A, 0x00213B],
+ [0x002140, 0x002144],
+ [0x00214A, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002189, 0x002BFF],
+ [0x002CE5, 0x002CEA],
+ [0x002CEF, 0x002CF1],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D70, 0x002D7F],
+ [0x002D97, 0x002D9F],
+ [0x002DDF, 0x003004],
+ [0x003008, 0x003020],
+ [0x00302A, 0x003030],
+ [0x003036, 0x003037],
+ [0x00303D, 0x003040],
+ [0x003097, 0x00309A],
+ [0x003100, 0x003104],
+ [0x00318F, 0x00319F],
+ [0x0031C0, 0x0031EF],
+ [0x003200, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A4CF],
+ [0x00A4FE, 0x00A4FF],
+ [0x00A60D, 0x00A60F],
+ [0x00A620, 0x00A629],
+ [0x00A62C, 0x00A63F],
+ [0x00A66F, 0x00A67E],
+ [0x00A69E, 0x00A69F],
+ [0x00A6F0, 0x00A716],
+ [0x00A720, 0x00A721],
+ [0x00A789, 0x00A78A],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A823, 0x00A83F],
+ [0x00A874, 0x00A881],
+ [0x00A8B4, 0x00A8F1],
+ [0x00A8F8, 0x00A8FA],
+ [0x00A8FF, 0x00A909],
+ [0x00A926, 0x00A92F],
+ [0x00A947, 0x00A95F],
+ [0x00A97D, 0x00A983],
+ [0x00A9B3, 0x00A9CE],
+ [0x00A9D0, 0x00A9DF],
+ [0x00A9F0, 0x00A9F9],
+ [0x00AA29, 0x00AA3F],
+ [0x00AA4C, 0x00AA5F],
+ [0x00AA77, 0x00AA79],
+ [0x00AA7B, 0x00AA7D],
+ [0x00AAB2, 0x00AAB4],
+ [0x00AAB7, 0x00AAB8],
+ [0x00AABE, 0x00AABF],
+ [0x00AAC3, 0x00AADA],
+ [0x00AADE, 0x00AADF],
+ [0x00AAEB, 0x00AAF1],
+ [0x00AAF5, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB6A, 0x00AB6F],
+ [0x00ABE3, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBB2, 0x00FBD2],
+ [0x00FD3E, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFC, 0x00FE6F],
+ [0x00FEFD, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x00FF65],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x01013F],
+ [0x010175, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102FF],
+ [0x010320, 0x01032C],
+ [0x01034B, 0x01034F],
+ [0x010376, 0x01037F],
+ [0x01039E, 0x01039F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x0103FF],
+ [0x01049E, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x010856, 0x01085F],
+ [0x010877, 0x01087F],
+ [0x01089F, 0x0108DF],
+ [0x0108F6, 0x0108FF],
+ [0x010916, 0x01091F],
+ [0x01093A, 0x01097F],
+ [0x0109B8, 0x0109BD],
+ [0x0109C0, 0x0109FF],
+ [0x010A01, 0x010A0F],
+ [0x010A36, 0x010A5F],
+ [0x010A7D, 0x010A7F],
+ [0x010A9D, 0x010ABF],
+ [0x010AE5, 0x010AFF],
+ [0x010B36, 0x010B3F],
+ [0x010B56, 0x010B5F],
+ [0x010B73, 0x010B7F],
+ [0x010B92, 0x010BFF],
+ [0x010C49, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CFF],
+ [0x010D24, 0x010E7F],
+ [0x010EAA, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F1D, 0x010F26],
+ [0x010F28, 0x010F2F],
+ [0x010F46, 0x010FAF],
+ [0x010FC5, 0x010FDF],
+ [0x010FF7, 0x011002],
+ [0x011038, 0x011082],
+ [0x0110B0, 0x0110CF],
+ [0x0110E9, 0x011102],
+ [0x011127, 0x011143],
+ [0x011145, 0x011146],
+ [0x011148, 0x01114F],
+ [0x011173, 0x011175],
+ [0x011177, 0x011182],
+ [0x0111B3, 0x0111C0],
+ [0x0111C5, 0x0111D9],
+ [0x0111DD, 0x0111FF],
+ [0x01122C, 0x01127F],
+ [0x0112A9, 0x0112AF],
+ [0x0112DF, 0x011304],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x01133A, 0x01133C],
+ [0x01133E, 0x01134F],
+ [0x011351, 0x01135C],
+ [0x011362, 0x0113FF],
+ [0x011435, 0x011446],
+ [0x01144B, 0x01145E],
+ [0x011462, 0x01147F],
+ [0x0114B0, 0x0114C3],
+ [0x0114C8, 0x01157F],
+ [0x0115AF, 0x0115D7],
+ [0x0115DC, 0x0115FF],
+ [0x011630, 0x011643],
+ [0x011645, 0x01167F],
+ [0x0116AB, 0x0116B7],
+ [0x0116B9, 0x0116FF],
+ [0x01171B, 0x0117FF],
+ [0x01182C, 0x01189F],
+ [0x0118E0, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011930, 0x01193E],
+ [0x011942, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D1, 0x0119E0],
+ [0x0119E4, 0x0119FF],
+ [0x011A01, 0x011A0A],
+ [0x011A33, 0x011A39],
+ [0x011A3B, 0x011A4F],
+ [0x011A51, 0x011A5B],
+ [0x011A8A, 0x011A9C],
+ [0x011A9E, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C2F, 0x011C3F],
+ [0x011C41, 0x011C71],
+ [0x011C90, 0x011CFF],
+ [0x011D31, 0x011D45],
+ [0x011D47, 0x011D5F],
+ [0x011D8A, 0x011D97],
+ [0x011D99, 0x011EDF],
+ [0x011EF3, 0x011FAF],
+ [0x011FB1, 0x011FFF],
+ [0x01239A, 0x0123FF],
+ [0x01246F, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x01342F, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A5F, 0x016ACF],
+ [0x016AEE, 0x016AFF],
+ [0x016B30, 0x016B3F],
+ [0x016B44, 0x016B62],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016E3F],
+ [0x016E80, 0x016EFF],
+ [0x016F4B, 0x016F4F],
+ [0x016F51, 0x016F92],
+ [0x016FA0, 0x016FDF],
+ [0x016FE4, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01E0FF],
+ [0x01E12D, 0x01E136],
+ [0x01E13E, 0x01E14D],
+ [0x01E14F, 0x01E2BF],
+ [0x01E2EC, 0x01E7FF],
+ [0x01E8C5, 0x01E8FF],
+ [0x01E944, 0x01E94A],
+ [0x01E94C, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{ID_Start}+$/u,
+ nonMatchSymbols,
+ "\\P{ID_Start}"
+);
+testPropertyEscapes(
+ /^\P{IDS}+$/u,
+ nonMatchSymbols,
+ "\\P{IDS}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Ideographic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Ideographic.js
new file mode 100644
index 0000000000..b89c803628
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Ideographic.js
@@ -0,0 +1,90 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Ideographic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x016FE4
+ ],
+ ranges: [
+ [0x003006, 0x003007],
+ [0x003021, 0x003029],
+ [0x003038, 0x00303A],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B170, 0x01B2FB],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Ideographic}+$/u,
+ matchSymbols,
+ "\\p{Ideographic}"
+);
+testPropertyEscapes(
+ /^\p{Ideo}+$/u,
+ matchSymbols,
+ "\\p{Ideo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x003005],
+ [0x003008, 0x003020],
+ [0x00302A, 0x003037],
+ [0x00303B, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x016FE3],
+ [0x016FE5, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01B16F],
+ [0x01B2FC, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Ideographic}+$/u,
+ nonMatchSymbols,
+ "\\P{Ideographic}"
+);
+testPropertyEscapes(
+ /^\P{Ideo}+$/u,
+ nonMatchSymbols,
+ "\\P{Ideo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Join_Control.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Join_Control.js
new file mode 100644
index 0000000000..890e5e234c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Join_Control.js
@@ -0,0 +1,53 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Join_Control`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00200C, 0x00200D]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Join_Control}+$/u,
+ matchSymbols,
+ "\\p{Join_Control}"
+);
+testPropertyEscapes(
+ /^\p{Join_C}+$/u,
+ matchSymbols,
+ "\\p{Join_C}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00200B],
+ [0x00200E, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Join_Control}+$/u,
+ nonMatchSymbols,
+ "\\P{Join_Control}"
+);
+testPropertyEscapes(
+ /^\P{Join_C}+$/u,
+ nonMatchSymbols,
+ "\\P{Join_C}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Logical_Order_Exception.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Logical_Order_Exception.js
new file mode 100644
index 0000000000..870f91b08c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Logical_Order_Exception.js
@@ -0,0 +1,67 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Logical_Order_Exception`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0019BA,
+ 0x00AAB9
+ ],
+ ranges: [
+ [0x000E40, 0x000E44],
+ [0x000EC0, 0x000EC4],
+ [0x0019B5, 0x0019B7],
+ [0x00AAB5, 0x00AAB6],
+ [0x00AABB, 0x00AABC]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Logical_Order_Exception}+$/u,
+ matchSymbols,
+ "\\p{Logical_Order_Exception}"
+);
+testPropertyEscapes(
+ /^\p{LOE}+$/u,
+ matchSymbols,
+ "\\p{LOE}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00AABA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000E3F],
+ [0x000E45, 0x000EBF],
+ [0x000EC5, 0x0019B4],
+ [0x0019B8, 0x0019B9],
+ [0x0019BB, 0x00AAB4],
+ [0x00AAB7, 0x00AAB8],
+ [0x00AABD, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Logical_Order_Exception}+$/u,
+ nonMatchSymbols,
+ "\\P{Logical_Order_Exception}"
+);
+testPropertyEscapes(
+ /^\P{LOE}+$/u,
+ nonMatchSymbols,
+ "\\P{LOE}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Lowercase.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Lowercase.js
new file mode 100644
index 0000000000..1c0448ed94
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Lowercase.js
@@ -0,0 +1,1357 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Lowercase`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000B5,
+ 0x0000BA,
+ 0x000101,
+ 0x000103,
+ 0x000105,
+ 0x000107,
+ 0x000109,
+ 0x00010B,
+ 0x00010D,
+ 0x00010F,
+ 0x000111,
+ 0x000113,
+ 0x000115,
+ 0x000117,
+ 0x000119,
+ 0x00011B,
+ 0x00011D,
+ 0x00011F,
+ 0x000121,
+ 0x000123,
+ 0x000125,
+ 0x000127,
+ 0x000129,
+ 0x00012B,
+ 0x00012D,
+ 0x00012F,
+ 0x000131,
+ 0x000133,
+ 0x000135,
+ 0x00013A,
+ 0x00013C,
+ 0x00013E,
+ 0x000140,
+ 0x000142,
+ 0x000144,
+ 0x000146,
+ 0x00014B,
+ 0x00014D,
+ 0x00014F,
+ 0x000151,
+ 0x000153,
+ 0x000155,
+ 0x000157,
+ 0x000159,
+ 0x00015B,
+ 0x00015D,
+ 0x00015F,
+ 0x000161,
+ 0x000163,
+ 0x000165,
+ 0x000167,
+ 0x000169,
+ 0x00016B,
+ 0x00016D,
+ 0x00016F,
+ 0x000171,
+ 0x000173,
+ 0x000175,
+ 0x000177,
+ 0x00017A,
+ 0x00017C,
+ 0x000183,
+ 0x000185,
+ 0x000188,
+ 0x000192,
+ 0x000195,
+ 0x00019E,
+ 0x0001A1,
+ 0x0001A3,
+ 0x0001A5,
+ 0x0001A8,
+ 0x0001AD,
+ 0x0001B0,
+ 0x0001B4,
+ 0x0001B6,
+ 0x0001C6,
+ 0x0001C9,
+ 0x0001CC,
+ 0x0001CE,
+ 0x0001D0,
+ 0x0001D2,
+ 0x0001D4,
+ 0x0001D6,
+ 0x0001D8,
+ 0x0001DA,
+ 0x0001DF,
+ 0x0001E1,
+ 0x0001E3,
+ 0x0001E5,
+ 0x0001E7,
+ 0x0001E9,
+ 0x0001EB,
+ 0x0001ED,
+ 0x0001F3,
+ 0x0001F5,
+ 0x0001F9,
+ 0x0001FB,
+ 0x0001FD,
+ 0x0001FF,
+ 0x000201,
+ 0x000203,
+ 0x000205,
+ 0x000207,
+ 0x000209,
+ 0x00020B,
+ 0x00020D,
+ 0x00020F,
+ 0x000211,
+ 0x000213,
+ 0x000215,
+ 0x000217,
+ 0x000219,
+ 0x00021B,
+ 0x00021D,
+ 0x00021F,
+ 0x000221,
+ 0x000223,
+ 0x000225,
+ 0x000227,
+ 0x000229,
+ 0x00022B,
+ 0x00022D,
+ 0x00022F,
+ 0x000231,
+ 0x00023C,
+ 0x000242,
+ 0x000247,
+ 0x000249,
+ 0x00024B,
+ 0x00024D,
+ 0x000345,
+ 0x000371,
+ 0x000373,
+ 0x000377,
+ 0x000390,
+ 0x0003D9,
+ 0x0003DB,
+ 0x0003DD,
+ 0x0003DF,
+ 0x0003E1,
+ 0x0003E3,
+ 0x0003E5,
+ 0x0003E7,
+ 0x0003E9,
+ 0x0003EB,
+ 0x0003ED,
+ 0x0003F5,
+ 0x0003F8,
+ 0x000461,
+ 0x000463,
+ 0x000465,
+ 0x000467,
+ 0x000469,
+ 0x00046B,
+ 0x00046D,
+ 0x00046F,
+ 0x000471,
+ 0x000473,
+ 0x000475,
+ 0x000477,
+ 0x000479,
+ 0x00047B,
+ 0x00047D,
+ 0x00047F,
+ 0x000481,
+ 0x00048B,
+ 0x00048D,
+ 0x00048F,
+ 0x000491,
+ 0x000493,
+ 0x000495,
+ 0x000497,
+ 0x000499,
+ 0x00049B,
+ 0x00049D,
+ 0x00049F,
+ 0x0004A1,
+ 0x0004A3,
+ 0x0004A5,
+ 0x0004A7,
+ 0x0004A9,
+ 0x0004AB,
+ 0x0004AD,
+ 0x0004AF,
+ 0x0004B1,
+ 0x0004B3,
+ 0x0004B5,
+ 0x0004B7,
+ 0x0004B9,
+ 0x0004BB,
+ 0x0004BD,
+ 0x0004BF,
+ 0x0004C2,
+ 0x0004C4,
+ 0x0004C6,
+ 0x0004C8,
+ 0x0004CA,
+ 0x0004CC,
+ 0x0004D1,
+ 0x0004D3,
+ 0x0004D5,
+ 0x0004D7,
+ 0x0004D9,
+ 0x0004DB,
+ 0x0004DD,
+ 0x0004DF,
+ 0x0004E1,
+ 0x0004E3,
+ 0x0004E5,
+ 0x0004E7,
+ 0x0004E9,
+ 0x0004EB,
+ 0x0004ED,
+ 0x0004EF,
+ 0x0004F1,
+ 0x0004F3,
+ 0x0004F5,
+ 0x0004F7,
+ 0x0004F9,
+ 0x0004FB,
+ 0x0004FD,
+ 0x0004FF,
+ 0x000501,
+ 0x000503,
+ 0x000505,
+ 0x000507,
+ 0x000509,
+ 0x00050B,
+ 0x00050D,
+ 0x00050F,
+ 0x000511,
+ 0x000513,
+ 0x000515,
+ 0x000517,
+ 0x000519,
+ 0x00051B,
+ 0x00051D,
+ 0x00051F,
+ 0x000521,
+ 0x000523,
+ 0x000525,
+ 0x000527,
+ 0x000529,
+ 0x00052B,
+ 0x00052D,
+ 0x00052F,
+ 0x001E01,
+ 0x001E03,
+ 0x001E05,
+ 0x001E07,
+ 0x001E09,
+ 0x001E0B,
+ 0x001E0D,
+ 0x001E0F,
+ 0x001E11,
+ 0x001E13,
+ 0x001E15,
+ 0x001E17,
+ 0x001E19,
+ 0x001E1B,
+ 0x001E1D,
+ 0x001E1F,
+ 0x001E21,
+ 0x001E23,
+ 0x001E25,
+ 0x001E27,
+ 0x001E29,
+ 0x001E2B,
+ 0x001E2D,
+ 0x001E2F,
+ 0x001E31,
+ 0x001E33,
+ 0x001E35,
+ 0x001E37,
+ 0x001E39,
+ 0x001E3B,
+ 0x001E3D,
+ 0x001E3F,
+ 0x001E41,
+ 0x001E43,
+ 0x001E45,
+ 0x001E47,
+ 0x001E49,
+ 0x001E4B,
+ 0x001E4D,
+ 0x001E4F,
+ 0x001E51,
+ 0x001E53,
+ 0x001E55,
+ 0x001E57,
+ 0x001E59,
+ 0x001E5B,
+ 0x001E5D,
+ 0x001E5F,
+ 0x001E61,
+ 0x001E63,
+ 0x001E65,
+ 0x001E67,
+ 0x001E69,
+ 0x001E6B,
+ 0x001E6D,
+ 0x001E6F,
+ 0x001E71,
+ 0x001E73,
+ 0x001E75,
+ 0x001E77,
+ 0x001E79,
+ 0x001E7B,
+ 0x001E7D,
+ 0x001E7F,
+ 0x001E81,
+ 0x001E83,
+ 0x001E85,
+ 0x001E87,
+ 0x001E89,
+ 0x001E8B,
+ 0x001E8D,
+ 0x001E8F,
+ 0x001E91,
+ 0x001E93,
+ 0x001E9F,
+ 0x001EA1,
+ 0x001EA3,
+ 0x001EA5,
+ 0x001EA7,
+ 0x001EA9,
+ 0x001EAB,
+ 0x001EAD,
+ 0x001EAF,
+ 0x001EB1,
+ 0x001EB3,
+ 0x001EB5,
+ 0x001EB7,
+ 0x001EB9,
+ 0x001EBB,
+ 0x001EBD,
+ 0x001EBF,
+ 0x001EC1,
+ 0x001EC3,
+ 0x001EC5,
+ 0x001EC7,
+ 0x001EC9,
+ 0x001ECB,
+ 0x001ECD,
+ 0x001ECF,
+ 0x001ED1,
+ 0x001ED3,
+ 0x001ED5,
+ 0x001ED7,
+ 0x001ED9,
+ 0x001EDB,
+ 0x001EDD,
+ 0x001EDF,
+ 0x001EE1,
+ 0x001EE3,
+ 0x001EE5,
+ 0x001EE7,
+ 0x001EE9,
+ 0x001EEB,
+ 0x001EED,
+ 0x001EEF,
+ 0x001EF1,
+ 0x001EF3,
+ 0x001EF5,
+ 0x001EF7,
+ 0x001EF9,
+ 0x001EFB,
+ 0x001EFD,
+ 0x001FBE,
+ 0x002071,
+ 0x00207F,
+ 0x00210A,
+ 0x002113,
+ 0x00212F,
+ 0x002134,
+ 0x002139,
+ 0x00214E,
+ 0x002184,
+ 0x002C61,
+ 0x002C68,
+ 0x002C6A,
+ 0x002C6C,
+ 0x002C71,
+ 0x002C81,
+ 0x002C83,
+ 0x002C85,
+ 0x002C87,
+ 0x002C89,
+ 0x002C8B,
+ 0x002C8D,
+ 0x002C8F,
+ 0x002C91,
+ 0x002C93,
+ 0x002C95,
+ 0x002C97,
+ 0x002C99,
+ 0x002C9B,
+ 0x002C9D,
+ 0x002C9F,
+ 0x002CA1,
+ 0x002CA3,
+ 0x002CA5,
+ 0x002CA7,
+ 0x002CA9,
+ 0x002CAB,
+ 0x002CAD,
+ 0x002CAF,
+ 0x002CB1,
+ 0x002CB3,
+ 0x002CB5,
+ 0x002CB7,
+ 0x002CB9,
+ 0x002CBB,
+ 0x002CBD,
+ 0x002CBF,
+ 0x002CC1,
+ 0x002CC3,
+ 0x002CC5,
+ 0x002CC7,
+ 0x002CC9,
+ 0x002CCB,
+ 0x002CCD,
+ 0x002CCF,
+ 0x002CD1,
+ 0x002CD3,
+ 0x002CD5,
+ 0x002CD7,
+ 0x002CD9,
+ 0x002CDB,
+ 0x002CDD,
+ 0x002CDF,
+ 0x002CE1,
+ 0x002CEC,
+ 0x002CEE,
+ 0x002CF3,
+ 0x002D27,
+ 0x002D2D,
+ 0x00A641,
+ 0x00A643,
+ 0x00A645,
+ 0x00A647,
+ 0x00A649,
+ 0x00A64B,
+ 0x00A64D,
+ 0x00A64F,
+ 0x00A651,
+ 0x00A653,
+ 0x00A655,
+ 0x00A657,
+ 0x00A659,
+ 0x00A65B,
+ 0x00A65D,
+ 0x00A65F,
+ 0x00A661,
+ 0x00A663,
+ 0x00A665,
+ 0x00A667,
+ 0x00A669,
+ 0x00A66B,
+ 0x00A66D,
+ 0x00A681,
+ 0x00A683,
+ 0x00A685,
+ 0x00A687,
+ 0x00A689,
+ 0x00A68B,
+ 0x00A68D,
+ 0x00A68F,
+ 0x00A691,
+ 0x00A693,
+ 0x00A695,
+ 0x00A697,
+ 0x00A699,
+ 0x00A723,
+ 0x00A725,
+ 0x00A727,
+ 0x00A729,
+ 0x00A72B,
+ 0x00A72D,
+ 0x00A733,
+ 0x00A735,
+ 0x00A737,
+ 0x00A739,
+ 0x00A73B,
+ 0x00A73D,
+ 0x00A73F,
+ 0x00A741,
+ 0x00A743,
+ 0x00A745,
+ 0x00A747,
+ 0x00A749,
+ 0x00A74B,
+ 0x00A74D,
+ 0x00A74F,
+ 0x00A751,
+ 0x00A753,
+ 0x00A755,
+ 0x00A757,
+ 0x00A759,
+ 0x00A75B,
+ 0x00A75D,
+ 0x00A75F,
+ 0x00A761,
+ 0x00A763,
+ 0x00A765,
+ 0x00A767,
+ 0x00A769,
+ 0x00A76B,
+ 0x00A76D,
+ 0x00A77A,
+ 0x00A77C,
+ 0x00A77F,
+ 0x00A781,
+ 0x00A783,
+ 0x00A785,
+ 0x00A787,
+ 0x00A78C,
+ 0x00A78E,
+ 0x00A791,
+ 0x00A797,
+ 0x00A799,
+ 0x00A79B,
+ 0x00A79D,
+ 0x00A79F,
+ 0x00A7A1,
+ 0x00A7A3,
+ 0x00A7A5,
+ 0x00A7A7,
+ 0x00A7A9,
+ 0x00A7AF,
+ 0x00A7B5,
+ 0x00A7B7,
+ 0x00A7B9,
+ 0x00A7BB,
+ 0x00A7BD,
+ 0x00A7BF,
+ 0x00A7C3,
+ 0x00A7C8,
+ 0x00A7CA,
+ 0x00A7F6,
+ 0x01D4BB,
+ 0x01D7CB
+ ],
+ ranges: [
+ [0x000061, 0x00007A],
+ [0x0000DF, 0x0000F6],
+ [0x0000F8, 0x0000FF],
+ [0x000137, 0x000138],
+ [0x000148, 0x000149],
+ [0x00017E, 0x000180],
+ [0x00018C, 0x00018D],
+ [0x000199, 0x00019B],
+ [0x0001AA, 0x0001AB],
+ [0x0001B9, 0x0001BA],
+ [0x0001BD, 0x0001BF],
+ [0x0001DC, 0x0001DD],
+ [0x0001EF, 0x0001F0],
+ [0x000233, 0x000239],
+ [0x00023F, 0x000240],
+ [0x00024F, 0x000293],
+ [0x000295, 0x0002B8],
+ [0x0002C0, 0x0002C1],
+ [0x0002E0, 0x0002E4],
+ [0x00037A, 0x00037D],
+ [0x0003AC, 0x0003CE],
+ [0x0003D0, 0x0003D1],
+ [0x0003D5, 0x0003D7],
+ [0x0003EF, 0x0003F3],
+ [0x0003FB, 0x0003FC],
+ [0x000430, 0x00045F],
+ [0x0004CE, 0x0004CF],
+ [0x000560, 0x000588],
+ [0x0010D0, 0x0010FA],
+ [0x0010FD, 0x0010FF],
+ [0x0013F8, 0x0013FD],
+ [0x001C80, 0x001C88],
+ [0x001D00, 0x001DBF],
+ [0x001E95, 0x001E9D],
+ [0x001EFF, 0x001F07],
+ [0x001F10, 0x001F15],
+ [0x001F20, 0x001F27],
+ [0x001F30, 0x001F37],
+ [0x001F40, 0x001F45],
+ [0x001F50, 0x001F57],
+ [0x001F60, 0x001F67],
+ [0x001F70, 0x001F7D],
+ [0x001F80, 0x001F87],
+ [0x001F90, 0x001F97],
+ [0x001FA0, 0x001FA7],
+ [0x001FB0, 0x001FB4],
+ [0x001FB6, 0x001FB7],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FC7],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FD7],
+ [0x001FE0, 0x001FE7],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FF7],
+ [0x002090, 0x00209C],
+ [0x00210E, 0x00210F],
+ [0x00213C, 0x00213D],
+ [0x002146, 0x002149],
+ [0x002170, 0x00217F],
+ [0x0024D0, 0x0024E9],
+ [0x002C30, 0x002C5E],
+ [0x002C65, 0x002C66],
+ [0x002C73, 0x002C74],
+ [0x002C76, 0x002C7D],
+ [0x002CE3, 0x002CE4],
+ [0x002D00, 0x002D25],
+ [0x00A69B, 0x00A69D],
+ [0x00A72F, 0x00A731],
+ [0x00A76F, 0x00A778],
+ [0x00A793, 0x00A795],
+ [0x00A7F8, 0x00A7FA],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB5C, 0x00AB68],
+ [0x00AB70, 0x00ABBF],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FF41, 0x00FF5A],
+ [0x010428, 0x01044F],
+ [0x0104D8, 0x0104FB],
+ [0x010CC0, 0x010CF2],
+ [0x0118C0, 0x0118DF],
+ [0x016E60, 0x016E7F],
+ [0x01D41A, 0x01D433],
+ [0x01D44E, 0x01D454],
+ [0x01D456, 0x01D467],
+ [0x01D482, 0x01D49B],
+ [0x01D4B6, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D4CF],
+ [0x01D4EA, 0x01D503],
+ [0x01D51E, 0x01D537],
+ [0x01D552, 0x01D56B],
+ [0x01D586, 0x01D59F],
+ [0x01D5BA, 0x01D5D3],
+ [0x01D5EE, 0x01D607],
+ [0x01D622, 0x01D63B],
+ [0x01D656, 0x01D66F],
+ [0x01D68A, 0x01D6A5],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6E1],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D71B],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D755],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D78F],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7C9],
+ [0x01E922, 0x01E943]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Lowercase}+$/u,
+ matchSymbols,
+ "\\p{Lowercase}"
+);
+testPropertyEscapes(
+ /^\p{Lower}+$/u,
+ matchSymbols,
+ "\\p{Lower}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000F7,
+ 0x000100,
+ 0x000102,
+ 0x000104,
+ 0x000106,
+ 0x000108,
+ 0x00010A,
+ 0x00010C,
+ 0x00010E,
+ 0x000110,
+ 0x000112,
+ 0x000114,
+ 0x000116,
+ 0x000118,
+ 0x00011A,
+ 0x00011C,
+ 0x00011E,
+ 0x000120,
+ 0x000122,
+ 0x000124,
+ 0x000126,
+ 0x000128,
+ 0x00012A,
+ 0x00012C,
+ 0x00012E,
+ 0x000130,
+ 0x000132,
+ 0x000134,
+ 0x000136,
+ 0x000139,
+ 0x00013B,
+ 0x00013D,
+ 0x00013F,
+ 0x000141,
+ 0x000143,
+ 0x000145,
+ 0x000147,
+ 0x00014A,
+ 0x00014C,
+ 0x00014E,
+ 0x000150,
+ 0x000152,
+ 0x000154,
+ 0x000156,
+ 0x000158,
+ 0x00015A,
+ 0x00015C,
+ 0x00015E,
+ 0x000160,
+ 0x000162,
+ 0x000164,
+ 0x000166,
+ 0x000168,
+ 0x00016A,
+ 0x00016C,
+ 0x00016E,
+ 0x000170,
+ 0x000172,
+ 0x000174,
+ 0x000176,
+ 0x00017B,
+ 0x00017D,
+ 0x000184,
+ 0x0001A2,
+ 0x0001A4,
+ 0x0001A9,
+ 0x0001AC,
+ 0x0001B5,
+ 0x0001CD,
+ 0x0001CF,
+ 0x0001D1,
+ 0x0001D3,
+ 0x0001D5,
+ 0x0001D7,
+ 0x0001D9,
+ 0x0001DB,
+ 0x0001DE,
+ 0x0001E0,
+ 0x0001E2,
+ 0x0001E4,
+ 0x0001E6,
+ 0x0001E8,
+ 0x0001EA,
+ 0x0001EC,
+ 0x0001EE,
+ 0x0001F4,
+ 0x0001FA,
+ 0x0001FC,
+ 0x0001FE,
+ 0x000200,
+ 0x000202,
+ 0x000204,
+ 0x000206,
+ 0x000208,
+ 0x00020A,
+ 0x00020C,
+ 0x00020E,
+ 0x000210,
+ 0x000212,
+ 0x000214,
+ 0x000216,
+ 0x000218,
+ 0x00021A,
+ 0x00021C,
+ 0x00021E,
+ 0x000220,
+ 0x000222,
+ 0x000224,
+ 0x000226,
+ 0x000228,
+ 0x00022A,
+ 0x00022C,
+ 0x00022E,
+ 0x000230,
+ 0x000232,
+ 0x000241,
+ 0x000248,
+ 0x00024A,
+ 0x00024C,
+ 0x00024E,
+ 0x000294,
+ 0x000372,
+ 0x0003CF,
+ 0x0003D8,
+ 0x0003DA,
+ 0x0003DC,
+ 0x0003DE,
+ 0x0003E0,
+ 0x0003E2,
+ 0x0003E4,
+ 0x0003E6,
+ 0x0003E8,
+ 0x0003EA,
+ 0x0003EC,
+ 0x0003EE,
+ 0x0003F4,
+ 0x000460,
+ 0x000462,
+ 0x000464,
+ 0x000466,
+ 0x000468,
+ 0x00046A,
+ 0x00046C,
+ 0x00046E,
+ 0x000470,
+ 0x000472,
+ 0x000474,
+ 0x000476,
+ 0x000478,
+ 0x00047A,
+ 0x00047C,
+ 0x00047E,
+ 0x000480,
+ 0x00048C,
+ 0x00048E,
+ 0x000490,
+ 0x000492,
+ 0x000494,
+ 0x000496,
+ 0x000498,
+ 0x00049A,
+ 0x00049C,
+ 0x00049E,
+ 0x0004A0,
+ 0x0004A2,
+ 0x0004A4,
+ 0x0004A6,
+ 0x0004A8,
+ 0x0004AA,
+ 0x0004AC,
+ 0x0004AE,
+ 0x0004B0,
+ 0x0004B2,
+ 0x0004B4,
+ 0x0004B6,
+ 0x0004B8,
+ 0x0004BA,
+ 0x0004BC,
+ 0x0004BE,
+ 0x0004C3,
+ 0x0004C5,
+ 0x0004C7,
+ 0x0004C9,
+ 0x0004CB,
+ 0x0004CD,
+ 0x0004D0,
+ 0x0004D2,
+ 0x0004D4,
+ 0x0004D6,
+ 0x0004D8,
+ 0x0004DA,
+ 0x0004DC,
+ 0x0004DE,
+ 0x0004E0,
+ 0x0004E2,
+ 0x0004E4,
+ 0x0004E6,
+ 0x0004E8,
+ 0x0004EA,
+ 0x0004EC,
+ 0x0004EE,
+ 0x0004F0,
+ 0x0004F2,
+ 0x0004F4,
+ 0x0004F6,
+ 0x0004F8,
+ 0x0004FA,
+ 0x0004FC,
+ 0x0004FE,
+ 0x000500,
+ 0x000502,
+ 0x000504,
+ 0x000506,
+ 0x000508,
+ 0x00050A,
+ 0x00050C,
+ 0x00050E,
+ 0x000510,
+ 0x000512,
+ 0x000514,
+ 0x000516,
+ 0x000518,
+ 0x00051A,
+ 0x00051C,
+ 0x00051E,
+ 0x000520,
+ 0x000522,
+ 0x000524,
+ 0x000526,
+ 0x000528,
+ 0x00052A,
+ 0x00052C,
+ 0x00052E,
+ 0x001E02,
+ 0x001E04,
+ 0x001E06,
+ 0x001E08,
+ 0x001E0A,
+ 0x001E0C,
+ 0x001E0E,
+ 0x001E10,
+ 0x001E12,
+ 0x001E14,
+ 0x001E16,
+ 0x001E18,
+ 0x001E1A,
+ 0x001E1C,
+ 0x001E1E,
+ 0x001E20,
+ 0x001E22,
+ 0x001E24,
+ 0x001E26,
+ 0x001E28,
+ 0x001E2A,
+ 0x001E2C,
+ 0x001E2E,
+ 0x001E30,
+ 0x001E32,
+ 0x001E34,
+ 0x001E36,
+ 0x001E38,
+ 0x001E3A,
+ 0x001E3C,
+ 0x001E3E,
+ 0x001E40,
+ 0x001E42,
+ 0x001E44,
+ 0x001E46,
+ 0x001E48,
+ 0x001E4A,
+ 0x001E4C,
+ 0x001E4E,
+ 0x001E50,
+ 0x001E52,
+ 0x001E54,
+ 0x001E56,
+ 0x001E58,
+ 0x001E5A,
+ 0x001E5C,
+ 0x001E5E,
+ 0x001E60,
+ 0x001E62,
+ 0x001E64,
+ 0x001E66,
+ 0x001E68,
+ 0x001E6A,
+ 0x001E6C,
+ 0x001E6E,
+ 0x001E70,
+ 0x001E72,
+ 0x001E74,
+ 0x001E76,
+ 0x001E78,
+ 0x001E7A,
+ 0x001E7C,
+ 0x001E7E,
+ 0x001E80,
+ 0x001E82,
+ 0x001E84,
+ 0x001E86,
+ 0x001E88,
+ 0x001E8A,
+ 0x001E8C,
+ 0x001E8E,
+ 0x001E90,
+ 0x001E92,
+ 0x001E94,
+ 0x001E9E,
+ 0x001EA0,
+ 0x001EA2,
+ 0x001EA4,
+ 0x001EA6,
+ 0x001EA8,
+ 0x001EAA,
+ 0x001EAC,
+ 0x001EAE,
+ 0x001EB0,
+ 0x001EB2,
+ 0x001EB4,
+ 0x001EB6,
+ 0x001EB8,
+ 0x001EBA,
+ 0x001EBC,
+ 0x001EBE,
+ 0x001EC0,
+ 0x001EC2,
+ 0x001EC4,
+ 0x001EC6,
+ 0x001EC8,
+ 0x001ECA,
+ 0x001ECC,
+ 0x001ECE,
+ 0x001ED0,
+ 0x001ED2,
+ 0x001ED4,
+ 0x001ED6,
+ 0x001ED8,
+ 0x001EDA,
+ 0x001EDC,
+ 0x001EDE,
+ 0x001EE0,
+ 0x001EE2,
+ 0x001EE4,
+ 0x001EE6,
+ 0x001EE8,
+ 0x001EEA,
+ 0x001EEC,
+ 0x001EEE,
+ 0x001EF0,
+ 0x001EF2,
+ 0x001EF4,
+ 0x001EF6,
+ 0x001EF8,
+ 0x001EFA,
+ 0x001EFC,
+ 0x001EFE,
+ 0x001FB5,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002C67,
+ 0x002C69,
+ 0x002C6B,
+ 0x002C72,
+ 0x002C75,
+ 0x002C82,
+ 0x002C84,
+ 0x002C86,
+ 0x002C88,
+ 0x002C8A,
+ 0x002C8C,
+ 0x002C8E,
+ 0x002C90,
+ 0x002C92,
+ 0x002C94,
+ 0x002C96,
+ 0x002C98,
+ 0x002C9A,
+ 0x002C9C,
+ 0x002C9E,
+ 0x002CA0,
+ 0x002CA2,
+ 0x002CA4,
+ 0x002CA6,
+ 0x002CA8,
+ 0x002CAA,
+ 0x002CAC,
+ 0x002CAE,
+ 0x002CB0,
+ 0x002CB2,
+ 0x002CB4,
+ 0x002CB6,
+ 0x002CB8,
+ 0x002CBA,
+ 0x002CBC,
+ 0x002CBE,
+ 0x002CC0,
+ 0x002CC2,
+ 0x002CC4,
+ 0x002CC6,
+ 0x002CC8,
+ 0x002CCA,
+ 0x002CCC,
+ 0x002CCE,
+ 0x002CD0,
+ 0x002CD2,
+ 0x002CD4,
+ 0x002CD6,
+ 0x002CD8,
+ 0x002CDA,
+ 0x002CDC,
+ 0x002CDE,
+ 0x002CE0,
+ 0x002CE2,
+ 0x002CED,
+ 0x002D26,
+ 0x00A642,
+ 0x00A644,
+ 0x00A646,
+ 0x00A648,
+ 0x00A64A,
+ 0x00A64C,
+ 0x00A64E,
+ 0x00A650,
+ 0x00A652,
+ 0x00A654,
+ 0x00A656,
+ 0x00A658,
+ 0x00A65A,
+ 0x00A65C,
+ 0x00A65E,
+ 0x00A660,
+ 0x00A662,
+ 0x00A664,
+ 0x00A666,
+ 0x00A668,
+ 0x00A66A,
+ 0x00A66C,
+ 0x00A682,
+ 0x00A684,
+ 0x00A686,
+ 0x00A688,
+ 0x00A68A,
+ 0x00A68C,
+ 0x00A68E,
+ 0x00A690,
+ 0x00A692,
+ 0x00A694,
+ 0x00A696,
+ 0x00A698,
+ 0x00A69A,
+ 0x00A724,
+ 0x00A726,
+ 0x00A728,
+ 0x00A72A,
+ 0x00A72C,
+ 0x00A72E,
+ 0x00A732,
+ 0x00A734,
+ 0x00A736,
+ 0x00A738,
+ 0x00A73A,
+ 0x00A73C,
+ 0x00A73E,
+ 0x00A740,
+ 0x00A742,
+ 0x00A744,
+ 0x00A746,
+ 0x00A748,
+ 0x00A74A,
+ 0x00A74C,
+ 0x00A74E,
+ 0x00A750,
+ 0x00A752,
+ 0x00A754,
+ 0x00A756,
+ 0x00A758,
+ 0x00A75A,
+ 0x00A75C,
+ 0x00A75E,
+ 0x00A760,
+ 0x00A762,
+ 0x00A764,
+ 0x00A766,
+ 0x00A768,
+ 0x00A76A,
+ 0x00A76C,
+ 0x00A76E,
+ 0x00A779,
+ 0x00A77B,
+ 0x00A780,
+ 0x00A782,
+ 0x00A784,
+ 0x00A786,
+ 0x00A78D,
+ 0x00A792,
+ 0x00A796,
+ 0x00A798,
+ 0x00A79A,
+ 0x00A79C,
+ 0x00A79E,
+ 0x00A7A0,
+ 0x00A7A2,
+ 0x00A7A4,
+ 0x00A7A6,
+ 0x00A7A8,
+ 0x00A7B6,
+ 0x00A7B8,
+ 0x00A7BA,
+ 0x00A7BC,
+ 0x00A7BE,
+ 0x00A7C9,
+ 0x00A7F7,
+ 0x00AB5B,
+ 0x01D455,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D6DB,
+ 0x01D715,
+ 0x01D74F,
+ 0x01D789,
+ 0x01D7C3,
+ 0x01D7CA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000060],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B4],
+ [0x0000B6, 0x0000B9],
+ [0x0000BB, 0x0000DE],
+ [0x000178, 0x000179],
+ [0x000181, 0x000182],
+ [0x000186, 0x000187],
+ [0x000189, 0x00018B],
+ [0x00018E, 0x000191],
+ [0x000193, 0x000194],
+ [0x000196, 0x000198],
+ [0x00019C, 0x00019D],
+ [0x00019F, 0x0001A0],
+ [0x0001A6, 0x0001A7],
+ [0x0001AE, 0x0001AF],
+ [0x0001B1, 0x0001B3],
+ [0x0001B7, 0x0001B8],
+ [0x0001BB, 0x0001BC],
+ [0x0001C0, 0x0001C5],
+ [0x0001C7, 0x0001C8],
+ [0x0001CA, 0x0001CB],
+ [0x0001F1, 0x0001F2],
+ [0x0001F6, 0x0001F8],
+ [0x00023A, 0x00023B],
+ [0x00023D, 0x00023E],
+ [0x000243, 0x000246],
+ [0x0002B9, 0x0002BF],
+ [0x0002C2, 0x0002DF],
+ [0x0002E5, 0x000344],
+ [0x000346, 0x000370],
+ [0x000374, 0x000376],
+ [0x000378, 0x000379],
+ [0x00037E, 0x00038F],
+ [0x000391, 0x0003AB],
+ [0x0003D2, 0x0003D4],
+ [0x0003F6, 0x0003F7],
+ [0x0003F9, 0x0003FA],
+ [0x0003FD, 0x00042F],
+ [0x000482, 0x00048A],
+ [0x0004C0, 0x0004C1],
+ [0x000530, 0x00055F],
+ [0x000589, 0x0010CF],
+ [0x0010FB, 0x0010FC],
+ [0x001100, 0x0013F7],
+ [0x0013FE, 0x001C7F],
+ [0x001C89, 0x001CFF],
+ [0x001DC0, 0x001E00],
+ [0x001F08, 0x001F0F],
+ [0x001F16, 0x001F1F],
+ [0x001F28, 0x001F2F],
+ [0x001F38, 0x001F3F],
+ [0x001F46, 0x001F4F],
+ [0x001F58, 0x001F5F],
+ [0x001F68, 0x001F6F],
+ [0x001F7E, 0x001F7F],
+ [0x001F88, 0x001F8F],
+ [0x001F98, 0x001F9F],
+ [0x001FA8, 0x001FAF],
+ [0x001FB8, 0x001FBD],
+ [0x001FBF, 0x001FC1],
+ [0x001FC8, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FD8, 0x001FDF],
+ [0x001FE8, 0x001FF1],
+ [0x001FF8, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x002109],
+ [0x00210B, 0x00210D],
+ [0x002110, 0x002112],
+ [0x002114, 0x00212E],
+ [0x002130, 0x002133],
+ [0x002135, 0x002138],
+ [0x00213A, 0x00213B],
+ [0x00213E, 0x002145],
+ [0x00214A, 0x00214D],
+ [0x00214F, 0x00216F],
+ [0x002180, 0x002183],
+ [0x002185, 0x0024CF],
+ [0x0024EA, 0x002C2F],
+ [0x002C5F, 0x002C60],
+ [0x002C62, 0x002C64],
+ [0x002C6D, 0x002C70],
+ [0x002C7E, 0x002C80],
+ [0x002CE5, 0x002CEB],
+ [0x002CEF, 0x002CF2],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x00A640],
+ [0x00A66E, 0x00A680],
+ [0x00A69E, 0x00A722],
+ [0x00A77D, 0x00A77E],
+ [0x00A788, 0x00A78B],
+ [0x00A78F, 0x00A790],
+ [0x00A7AA, 0x00A7AE],
+ [0x00A7B0, 0x00A7B4],
+ [0x00A7C0, 0x00A7C2],
+ [0x00A7C4, 0x00A7C7],
+ [0x00A7CB, 0x00A7F5],
+ [0x00A7FB, 0x00AB2F],
+ [0x00AB69, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FF40],
+ [0x00FF5B, 0x010427],
+ [0x010450, 0x0104D7],
+ [0x0104FC, 0x010CBF],
+ [0x010CF3, 0x0118BF],
+ [0x0118E0, 0x016E5F],
+ [0x016E80, 0x01D419],
+ [0x01D434, 0x01D44D],
+ [0x01D468, 0x01D481],
+ [0x01D49C, 0x01D4B5],
+ [0x01D4D0, 0x01D4E9],
+ [0x01D504, 0x01D51D],
+ [0x01D538, 0x01D551],
+ [0x01D56C, 0x01D585],
+ [0x01D5A0, 0x01D5B9],
+ [0x01D5D4, 0x01D5ED],
+ [0x01D608, 0x01D621],
+ [0x01D63C, 0x01D655],
+ [0x01D670, 0x01D689],
+ [0x01D6A6, 0x01D6C1],
+ [0x01D6E2, 0x01D6FB],
+ [0x01D71C, 0x01D735],
+ [0x01D756, 0x01D76F],
+ [0x01D790, 0x01D7A9],
+ [0x01D7CC, 0x01E921],
+ [0x01E944, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Lowercase}+$/u,
+ nonMatchSymbols,
+ "\\P{Lowercase}"
+);
+testPropertyEscapes(
+ /^\P{Lower}+$/u,
+ nonMatchSymbols,
+ "\\P{Lower}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Math.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Math.js
new file mode 100644
index 0000000000..69b5884ca3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Math.js
@@ -0,0 +1,319 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Math`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00002B,
+ 0x00005E,
+ 0x00007C,
+ 0x00007E,
+ 0x0000AC,
+ 0x0000B1,
+ 0x0000D7,
+ 0x0000F7,
+ 0x0003D5,
+ 0x002016,
+ 0x002040,
+ 0x002044,
+ 0x002052,
+ 0x0020E1,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x00214B,
+ 0x0021DD,
+ 0x00237C,
+ 0x0023B7,
+ 0x0023D0,
+ 0x0025E2,
+ 0x0025E4,
+ 0x002640,
+ 0x002642,
+ 0x00FB29,
+ 0x00FE68,
+ 0x00FF0B,
+ 0x00FF3C,
+ 0x00FF3E,
+ 0x00FF5C,
+ 0x00FF5E,
+ 0x00FFE2,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x00003C, 0x00003E],
+ [0x0003D0, 0x0003D2],
+ [0x0003F0, 0x0003F1],
+ [0x0003F4, 0x0003F6],
+ [0x000606, 0x000608],
+ [0x002032, 0x002034],
+ [0x002061, 0x002064],
+ [0x00207A, 0x00207E],
+ [0x00208A, 0x00208E],
+ [0x0020D0, 0x0020DC],
+ [0x0020E5, 0x0020E6],
+ [0x0020EB, 0x0020EF],
+ [0x00210A, 0x002113],
+ [0x002118, 0x00211D],
+ [0x002128, 0x002129],
+ [0x00212C, 0x00212D],
+ [0x00212F, 0x002131],
+ [0x002133, 0x002138],
+ [0x00213C, 0x002149],
+ [0x002190, 0x0021A7],
+ [0x0021A9, 0x0021AE],
+ [0x0021B0, 0x0021B1],
+ [0x0021B6, 0x0021B7],
+ [0x0021BC, 0x0021DB],
+ [0x0021E4, 0x0021E5],
+ [0x0021F4, 0x0022FF],
+ [0x002308, 0x00230B],
+ [0x002320, 0x002321],
+ [0x00239B, 0x0023B5],
+ [0x0023DC, 0x0023E2],
+ [0x0025A0, 0x0025A1],
+ [0x0025AE, 0x0025B7],
+ [0x0025BC, 0x0025C1],
+ [0x0025C6, 0x0025C7],
+ [0x0025CA, 0x0025CB],
+ [0x0025CF, 0x0025D3],
+ [0x0025E7, 0x0025EC],
+ [0x0025F8, 0x0025FF],
+ [0x002605, 0x002606],
+ [0x002660, 0x002663],
+ [0x00266D, 0x00266F],
+ [0x0027C0, 0x0027FF],
+ [0x002900, 0x002AFF],
+ [0x002B30, 0x002B44],
+ [0x002B47, 0x002B4C],
+ [0x00FE61, 0x00FE66],
+ [0x00FF1C, 0x00FF1E],
+ [0x00FFE9, 0x00FFEC],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D7CB],
+ [0x01D7CE, 0x01D7FF],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01EEF0, 0x01EEF1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Math}+$/u,
+ matchSymbols,
+ "\\p{Math}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00007D,
+ 0x002114,
+ 0x00212E,
+ 0x002132,
+ 0x00214A,
+ 0x0021A8,
+ 0x0021AF,
+ 0x0021DC,
+ 0x0023B6,
+ 0x0025E3,
+ 0x002641,
+ 0x00FE67,
+ 0x00FF3D,
+ 0x00FF5D,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00002A],
+ [0x00002C, 0x00003B],
+ [0x00003F, 0x00005D],
+ [0x00005F, 0x00007B],
+ [0x00007F, 0x0000AB],
+ [0x0000AD, 0x0000B0],
+ [0x0000B2, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0003CF],
+ [0x0003D3, 0x0003D4],
+ [0x0003D6, 0x0003EF],
+ [0x0003F2, 0x0003F3],
+ [0x0003F7, 0x000605],
+ [0x000609, 0x002015],
+ [0x002017, 0x002031],
+ [0x002035, 0x00203F],
+ [0x002041, 0x002043],
+ [0x002045, 0x002051],
+ [0x002053, 0x002060],
+ [0x002065, 0x002079],
+ [0x00207F, 0x002089],
+ [0x00208F, 0x0020CF],
+ [0x0020DD, 0x0020E0],
+ [0x0020E2, 0x0020E4],
+ [0x0020E7, 0x0020EA],
+ [0x0020F0, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002117],
+ [0x00211E, 0x002123],
+ [0x002125, 0x002127],
+ [0x00212A, 0x00212B],
+ [0x002139, 0x00213B],
+ [0x00214C, 0x00218F],
+ [0x0021B2, 0x0021B5],
+ [0x0021B8, 0x0021BB],
+ [0x0021DE, 0x0021E3],
+ [0x0021E6, 0x0021F3],
+ [0x002300, 0x002307],
+ [0x00230C, 0x00231F],
+ [0x002322, 0x00237B],
+ [0x00237D, 0x00239A],
+ [0x0023B8, 0x0023CF],
+ [0x0023D1, 0x0023DB],
+ [0x0023E3, 0x00259F],
+ [0x0025A2, 0x0025AD],
+ [0x0025B8, 0x0025BB],
+ [0x0025C2, 0x0025C5],
+ [0x0025C8, 0x0025C9],
+ [0x0025CC, 0x0025CE],
+ [0x0025D4, 0x0025E1],
+ [0x0025E5, 0x0025E6],
+ [0x0025ED, 0x0025F7],
+ [0x002600, 0x002604],
+ [0x002607, 0x00263F],
+ [0x002643, 0x00265F],
+ [0x002664, 0x00266C],
+ [0x002670, 0x0027BF],
+ [0x002800, 0x0028FF],
+ [0x002B00, 0x002B2F],
+ [0x002B45, 0x002B46],
+ [0x002B4D, 0x00DBFF],
+ [0x00E000, 0x00FB28],
+ [0x00FB2A, 0x00FE60],
+ [0x00FE69, 0x00FF0A],
+ [0x00FF0C, 0x00FF1B],
+ [0x00FF1F, 0x00FF3B],
+ [0x00FF3F, 0x00FF5B],
+ [0x00FF5F, 0x00FFE1],
+ [0x00FFE3, 0x00FFE8],
+ [0x00FFED, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01D7CD],
+ [0x01D800, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01EEEF],
+ [0x01EEF2, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Math}+$/u,
+ nonMatchSymbols,
+ "\\P{Math}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Noncharacter_Code_Point.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Noncharacter_Code_Point.js
new file mode 100644
index 0000000000..70b2ab3fbf
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Noncharacter_Code_Point.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Noncharacter_Code_Point`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00FDD0, 0x00FDEF],
+ [0x00FFFE, 0x00FFFF],
+ [0x01FFFE, 0x01FFFF],
+ [0x02FFFE, 0x02FFFF],
+ [0x03FFFE, 0x03FFFF],
+ [0x04FFFE, 0x04FFFF],
+ [0x05FFFE, 0x05FFFF],
+ [0x06FFFE, 0x06FFFF],
+ [0x07FFFE, 0x07FFFF],
+ [0x08FFFE, 0x08FFFF],
+ [0x09FFFE, 0x09FFFF],
+ [0x0AFFFE, 0x0AFFFF],
+ [0x0BFFFE, 0x0BFFFF],
+ [0x0CFFFE, 0x0CFFFF],
+ [0x0DFFFE, 0x0DFFFF],
+ [0x0EFFFE, 0x0EFFFF],
+ [0x0FFFFE, 0x0FFFFF],
+ [0x10FFFE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Noncharacter_Code_Point}+$/u,
+ matchSymbols,
+ "\\p{Noncharacter_Code_Point}"
+);
+testPropertyEscapes(
+ /^\p{NChar}+$/u,
+ matchSymbols,
+ "\\p{NChar}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x00FDCF],
+ [0x00FDF0, 0x00FFFD],
+ [0x010000, 0x01FFFD],
+ [0x020000, 0x02FFFD],
+ [0x030000, 0x03FFFD],
+ [0x040000, 0x04FFFD],
+ [0x050000, 0x05FFFD],
+ [0x060000, 0x06FFFD],
+ [0x070000, 0x07FFFD],
+ [0x080000, 0x08FFFD],
+ [0x090000, 0x09FFFD],
+ [0x0A0000, 0x0AFFFD],
+ [0x0B0000, 0x0BFFFD],
+ [0x0C0000, 0x0CFFFD],
+ [0x0D0000, 0x0DFFFD],
+ [0x0E0000, 0x0EFFFD],
+ [0x0F0000, 0x0FFFFD],
+ [0x100000, 0x10FFFD]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Noncharacter_Code_Point}+$/u,
+ nonMatchSymbols,
+ "\\P{Noncharacter_Code_Point}"
+);
+testPropertyEscapes(
+ /^\P{NChar}+$/u,
+ nonMatchSymbols,
+ "\\P{NChar}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Pattern_Syntax.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Pattern_Syntax.js
new file mode 100644
index 0000000000..be6c32c9d7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Pattern_Syntax.js
@@ -0,0 +1,109 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Pattern_Syntax`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000060,
+ 0x0000A9,
+ 0x0000AE,
+ 0x0000B6,
+ 0x0000BB,
+ 0x0000BF,
+ 0x0000D7,
+ 0x0000F7,
+ 0x003030
+ ],
+ ranges: [
+ [0x000021, 0x00002F],
+ [0x00003A, 0x000040],
+ [0x00005B, 0x00005E],
+ [0x00007B, 0x00007E],
+ [0x0000A1, 0x0000A7],
+ [0x0000AB, 0x0000AC],
+ [0x0000B0, 0x0000B1],
+ [0x002010, 0x002027],
+ [0x002030, 0x00203E],
+ [0x002041, 0x002053],
+ [0x002055, 0x00205E],
+ [0x002190, 0x00245F],
+ [0x002500, 0x002775],
+ [0x002794, 0x002BFF],
+ [0x002E00, 0x002E7F],
+ [0x003001, 0x003003],
+ [0x003008, 0x003020],
+ [0x00FD3E, 0x00FD3F],
+ [0x00FE45, 0x00FE46]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Pattern_Syntax}+$/u,
+ matchSymbols,
+ "\\p{Pattern_Syntax}"
+);
+testPropertyEscapes(
+ /^\p{Pat_Syn}+$/u,
+ matchSymbols,
+ "\\p{Pat_Syn}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005F,
+ 0x0000A8,
+ 0x0000AA,
+ 0x0000AD,
+ 0x0000AF,
+ 0x002054
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000020],
+ [0x000030, 0x000039],
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x00007F, 0x0000A0],
+ [0x0000B2, 0x0000B5],
+ [0x0000B7, 0x0000BA],
+ [0x0000BC, 0x0000BE],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x00200F],
+ [0x002028, 0x00202F],
+ [0x00203F, 0x002040],
+ [0x00205F, 0x00218F],
+ [0x002460, 0x0024FF],
+ [0x002776, 0x002793],
+ [0x002C00, 0x002DFF],
+ [0x002E80, 0x003000],
+ [0x003004, 0x003007],
+ [0x003021, 0x00302F],
+ [0x003031, 0x00DBFF],
+ [0x00E000, 0x00FD3D],
+ [0x00FD40, 0x00FE44],
+ [0x00FE47, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Pattern_Syntax}+$/u,
+ nonMatchSymbols,
+ "\\P{Pattern_Syntax}"
+);
+testPropertyEscapes(
+ /^\P{Pat_Syn}+$/u,
+ nonMatchSymbols,
+ "\\P{Pat_Syn}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Pattern_White_Space.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Pattern_White_Space.js
new file mode 100644
index 0000000000..0a113f11c5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Pattern_White_Space.js
@@ -0,0 +1,62 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Pattern_White_Space`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000020,
+ 0x000085
+ ],
+ ranges: [
+ [0x000009, 0x00000D],
+ [0x00200E, 0x00200F],
+ [0x002028, 0x002029]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Pattern_White_Space}+$/u,
+ matchSymbols,
+ "\\p{Pattern_White_Space}"
+);
+testPropertyEscapes(
+ /^\p{Pat_WS}+$/u,
+ matchSymbols,
+ "\\p{Pat_WS}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000008],
+ [0x00000E, 0x00001F],
+ [0x000021, 0x000084],
+ [0x000086, 0x00200D],
+ [0x002010, 0x002027],
+ [0x00202A, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Pattern_White_Space}+$/u,
+ nonMatchSymbols,
+ "\\P{Pattern_White_Space}"
+);
+testPropertyEscapes(
+ /^\P{Pat_WS}+$/u,
+ nonMatchSymbols,
+ "\\P{Pat_WS}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Quotation_Mark.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Quotation_Mark.js
new file mode 100644
index 0000000000..3d5192ee02
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Quotation_Mark.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Quotation_Mark`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000022,
+ 0x000027,
+ 0x0000AB,
+ 0x0000BB,
+ 0x002E42,
+ 0x00FF02,
+ 0x00FF07
+ ],
+ ranges: [
+ [0x002018, 0x00201F],
+ [0x002039, 0x00203A],
+ [0x00300C, 0x00300F],
+ [0x00301D, 0x00301F],
+ [0x00FE41, 0x00FE44],
+ [0x00FF62, 0x00FF63]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Quotation_Mark}+$/u,
+ matchSymbols,
+ "\\p{Quotation_Mark}"
+);
+testPropertyEscapes(
+ /^\p{QMark}+$/u,
+ matchSymbols,
+ "\\p{QMark}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000021],
+ [0x000023, 0x000026],
+ [0x000028, 0x0000AA],
+ [0x0000AC, 0x0000BA],
+ [0x0000BC, 0x002017],
+ [0x002020, 0x002038],
+ [0x00203B, 0x002E41],
+ [0x002E43, 0x00300B],
+ [0x003010, 0x00301C],
+ [0x003020, 0x00DBFF],
+ [0x00E000, 0x00FE40],
+ [0x00FE45, 0x00FF01],
+ [0x00FF03, 0x00FF06],
+ [0x00FF08, 0x00FF61],
+ [0x00FF64, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Quotation_Mark}+$/u,
+ nonMatchSymbols,
+ "\\P{Quotation_Mark}"
+);
+testPropertyEscapes(
+ /^\P{QMark}+$/u,
+ nonMatchSymbols,
+ "\\P{QMark}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Radical.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Radical.js
new file mode 100644
index 0000000000..227d330d2f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Radical.js
@@ -0,0 +1,48 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Radical`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x002E80, 0x002E99],
+ [0x002E9B, 0x002EF3],
+ [0x002F00, 0x002FD5]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Radical}+$/u,
+ matchSymbols,
+ "\\p{Radical}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x002E9A
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002E7F],
+ [0x002EF4, 0x002EFF],
+ [0x002FD6, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Radical}+$/u,
+ nonMatchSymbols,
+ "\\P{Radical}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Regional_Indicator.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Regional_Indicator.js
new file mode 100644
index 0000000000..1c55097c15
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Regional_Indicator.js
@@ -0,0 +1,53 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Regional_Indicator`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01F1E6, 0x01F1FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Regional_Indicator}+$/u,
+ matchSymbols,
+ "\\p{Regional_Indicator}"
+);
+testPropertyEscapes(
+ /^\p{RI}+$/u,
+ matchSymbols,
+ "\\p{RI}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01F1E5],
+ [0x01F200, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Regional_Indicator}+$/u,
+ nonMatchSymbols,
+ "\\P{Regional_Indicator}"
+);
+testPropertyEscapes(
+ /^\P{RI}+$/u,
+ nonMatchSymbols,
+ "\\P{RI}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Adlam.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Adlam.js
new file mode 100644
index 0000000000..ac912ce451
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Adlam.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Adlam`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01E900, 0x01E94B],
+ [0x01E950, 0x01E959],
+ [0x01E95E, 0x01E95F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Adlam}+$/u,
+ matchSymbols,
+ "\\p{Script=Adlam}"
+);
+testPropertyEscapes(
+ /^\p{Script=Adlm}+$/u,
+ matchSymbols,
+ "\\p{Script=Adlm}"
+);
+testPropertyEscapes(
+ /^\p{sc=Adlam}+$/u,
+ matchSymbols,
+ "\\p{sc=Adlam}"
+);
+testPropertyEscapes(
+ /^\p{sc=Adlm}+$/u,
+ matchSymbols,
+ "\\p{sc=Adlm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01E8FF],
+ [0x01E94C, 0x01E94F],
+ [0x01E95A, 0x01E95D],
+ [0x01E960, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Adlam}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Adlam}"
+);
+testPropertyEscapes(
+ /^\P{Script=Adlm}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Adlm}"
+);
+testPropertyEscapes(
+ /^\P{sc=Adlam}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Adlam}"
+);
+testPropertyEscapes(
+ /^\P{sc=Adlm}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Adlm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ahom.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ahom.js
new file mode 100644
index 0000000000..266f7620f2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ahom.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Ahom`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011700, 0x01171A],
+ [0x01171D, 0x01172B],
+ [0x011730, 0x01173F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Ahom}+$/u,
+ matchSymbols,
+ "\\p{Script=Ahom}"
+);
+testPropertyEscapes(
+ /^\p{Script=Ahom}+$/u,
+ matchSymbols,
+ "\\p{Script=Ahom}"
+);
+testPropertyEscapes(
+ /^\p{sc=Ahom}+$/u,
+ matchSymbols,
+ "\\p{sc=Ahom}"
+);
+testPropertyEscapes(
+ /^\p{sc=Ahom}+$/u,
+ matchSymbols,
+ "\\p{sc=Ahom}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0116FF],
+ [0x01171B, 0x01171C],
+ [0x01172C, 0x01172F],
+ [0x011740, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Ahom}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Ahom}"
+);
+testPropertyEscapes(
+ /^\P{Script=Ahom}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Ahom}"
+);
+testPropertyEscapes(
+ /^\P{sc=Ahom}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Ahom}"
+);
+testPropertyEscapes(
+ /^\P{sc=Ahom}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Ahom}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Anatolian_Hieroglyphs.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Anatolian_Hieroglyphs.js
new file mode 100644
index 0000000000..6dc0df82d1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Anatolian_Hieroglyphs.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Anatolian_Hieroglyphs`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x014400, 0x014646]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Anatolian_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{Script=Anatolian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{Script=Hluw}+$/u,
+ matchSymbols,
+ "\\p{Script=Hluw}"
+);
+testPropertyEscapes(
+ /^\p{sc=Anatolian_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{sc=Anatolian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hluw}+$/u,
+ matchSymbols,
+ "\\p{sc=Hluw}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0143FF],
+ [0x014647, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Anatolian_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Anatolian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{Script=Hluw}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hluw}"
+);
+testPropertyEscapes(
+ /^\P{sc=Anatolian_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Anatolian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hluw}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hluw}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Arabic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Arabic.js
new file mode 100644
index 0000000000..b4ce1321b8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Arabic.js
@@ -0,0 +1,187 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Arabic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00061C,
+ 0x00061E,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x000600, 0x000604],
+ [0x000606, 0x00060B],
+ [0x00060D, 0x00061A],
+ [0x000620, 0x00063F],
+ [0x000641, 0x00064A],
+ [0x000656, 0x00066F],
+ [0x000671, 0x0006DC],
+ [0x0006DE, 0x0006FF],
+ [0x000750, 0x00077F],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x0008D3, 0x0008E1],
+ [0x0008E3, 0x0008FF],
+ [0x00FB50, 0x00FBC1],
+ [0x00FBD3, 0x00FD3D],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFD],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x010E60, 0x010E7E],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01EEF0, 0x01EEF1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Arabic}+$/u,
+ matchSymbols,
+ "\\p{Script=Arabic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Arab}+$/u,
+ matchSymbols,
+ "\\p{Script=Arab}"
+);
+testPropertyEscapes(
+ /^\p{sc=Arabic}+$/u,
+ matchSymbols,
+ "\\p{sc=Arabic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Arab}+$/u,
+ matchSymbols,
+ "\\p{sc=Arab}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000605,
+ 0x00060C,
+ 0x00061B,
+ 0x00061D,
+ 0x00061F,
+ 0x000640,
+ 0x000670,
+ 0x0006DD,
+ 0x0008B5,
+ 0x0008E2,
+ 0x00FE75,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0005FF],
+ [0x00064B, 0x000655],
+ [0x000700, 0x00074F],
+ [0x000780, 0x00089F],
+ [0x0008C8, 0x0008D2],
+ [0x000900, 0x00DBFF],
+ [0x00E000, 0x00FB4F],
+ [0x00FBC2, 0x00FBD2],
+ [0x00FD3E, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFE, 0x00FE6F],
+ [0x00FEFD, 0x010E5F],
+ [0x010E7F, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01EEEF],
+ [0x01EEF2, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Arabic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Arabic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Arab}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Arab}"
+);
+testPropertyEscapes(
+ /^\P{sc=Arabic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Arabic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Arab}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Arab}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Armenian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Armenian.js
new file mode 100644
index 0000000000..e13bc7af08
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Armenian.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Armenian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000531, 0x000556],
+ [0x000559, 0x00058A],
+ [0x00058D, 0x00058F],
+ [0x00FB13, 0x00FB17]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Armenian}+$/u,
+ matchSymbols,
+ "\\p{Script=Armenian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Armn}+$/u,
+ matchSymbols,
+ "\\p{Script=Armn}"
+);
+testPropertyEscapes(
+ /^\p{sc=Armenian}+$/u,
+ matchSymbols,
+ "\\p{sc=Armenian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Armn}+$/u,
+ matchSymbols,
+ "\\p{sc=Armn}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000530],
+ [0x000557, 0x000558],
+ [0x00058B, 0x00058C],
+ [0x000590, 0x00DBFF],
+ [0x00E000, 0x00FB12],
+ [0x00FB18, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Armenian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Armenian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Armn}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Armn}"
+);
+testPropertyEscapes(
+ /^\P{sc=Armenian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Armenian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Armn}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Armn}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Avestan.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Avestan.js
new file mode 100644
index 0000000000..79376709be
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Avestan.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Avestan`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010B00, 0x010B35],
+ [0x010B39, 0x010B3F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Avestan}+$/u,
+ matchSymbols,
+ "\\p{Script=Avestan}"
+);
+testPropertyEscapes(
+ /^\p{Script=Avst}+$/u,
+ matchSymbols,
+ "\\p{Script=Avst}"
+);
+testPropertyEscapes(
+ /^\p{sc=Avestan}+$/u,
+ matchSymbols,
+ "\\p{sc=Avestan}"
+);
+testPropertyEscapes(
+ /^\p{sc=Avst}+$/u,
+ matchSymbols,
+ "\\p{sc=Avst}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010AFF],
+ [0x010B36, 0x010B38],
+ [0x010B40, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Avestan}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Avestan}"
+);
+testPropertyEscapes(
+ /^\P{Script=Avst}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Avst}"
+);
+testPropertyEscapes(
+ /^\P{sc=Avestan}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Avestan}"
+);
+testPropertyEscapes(
+ /^\P{sc=Avst}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Avst}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Balinese.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Balinese.js
new file mode 100644
index 0000000000..1378de5905
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Balinese.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Balinese`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001B00, 0x001B4B],
+ [0x001B50, 0x001B7C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Balinese}+$/u,
+ matchSymbols,
+ "\\p{Script=Balinese}"
+);
+testPropertyEscapes(
+ /^\p{Script=Bali}+$/u,
+ matchSymbols,
+ "\\p{Script=Bali}"
+);
+testPropertyEscapes(
+ /^\p{sc=Balinese}+$/u,
+ matchSymbols,
+ "\\p{sc=Balinese}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bali}+$/u,
+ matchSymbols,
+ "\\p{sc=Bali}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001AFF],
+ [0x001B4C, 0x001B4F],
+ [0x001B7D, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Balinese}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Balinese}"
+);
+testPropertyEscapes(
+ /^\P{Script=Bali}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bali}"
+);
+testPropertyEscapes(
+ /^\P{sc=Balinese}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Balinese}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bali}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bali}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bamum.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bamum.js
new file mode 100644
index 0000000000..d20bc6d44c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bamum.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Bamum`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A6A0, 0x00A6F7],
+ [0x016800, 0x016A38]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Bamum}+$/u,
+ matchSymbols,
+ "\\p{Script=Bamum}"
+);
+testPropertyEscapes(
+ /^\p{Script=Bamu}+$/u,
+ matchSymbols,
+ "\\p{Script=Bamu}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bamum}+$/u,
+ matchSymbols,
+ "\\p{sc=Bamum}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bamu}+$/u,
+ matchSymbols,
+ "\\p{sc=Bamu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A69F],
+ [0x00A6F8, 0x00DBFF],
+ [0x00E000, 0x0167FF],
+ [0x016A39, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Bamum}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bamum}"
+);
+testPropertyEscapes(
+ /^\P{Script=Bamu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bamu}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bamum}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bamum}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bamu}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bamu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bassa_Vah.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bassa_Vah.js
new file mode 100644
index 0000000000..3a75fccf83
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bassa_Vah.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Bassa_Vah`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x016AD0, 0x016AED],
+ [0x016AF0, 0x016AF5]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Bassa_Vah}+$/u,
+ matchSymbols,
+ "\\p{Script=Bassa_Vah}"
+);
+testPropertyEscapes(
+ /^\p{Script=Bass}+$/u,
+ matchSymbols,
+ "\\p{Script=Bass}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bassa_Vah}+$/u,
+ matchSymbols,
+ "\\p{sc=Bassa_Vah}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bass}+$/u,
+ matchSymbols,
+ "\\p{sc=Bass}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016ACF],
+ [0x016AEE, 0x016AEF],
+ [0x016AF6, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Bassa_Vah}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bassa_Vah}"
+);
+testPropertyEscapes(
+ /^\P{Script=Bass}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bass}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bassa_Vah}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bassa_Vah}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bass}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bass}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Batak.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Batak.js
new file mode 100644
index 0000000000..a84faab42d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Batak.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Batak`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001BC0, 0x001BF3],
+ [0x001BFC, 0x001BFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Batak}+$/u,
+ matchSymbols,
+ "\\p{Script=Batak}"
+);
+testPropertyEscapes(
+ /^\p{Script=Batk}+$/u,
+ matchSymbols,
+ "\\p{Script=Batk}"
+);
+testPropertyEscapes(
+ /^\p{sc=Batak}+$/u,
+ matchSymbols,
+ "\\p{sc=Batak}"
+);
+testPropertyEscapes(
+ /^\p{sc=Batk}+$/u,
+ matchSymbols,
+ "\\p{sc=Batk}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001BBF],
+ [0x001BF4, 0x001BFB],
+ [0x001C00, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Batak}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Batak}"
+);
+testPropertyEscapes(
+ /^\P{Script=Batk}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Batk}"
+);
+testPropertyEscapes(
+ /^\P{sc=Batak}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Batak}"
+);
+testPropertyEscapes(
+ /^\P{sc=Batk}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Batk}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bengali.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bengali.js
new file mode 100644
index 0000000000..3526049463
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bengali.js
@@ -0,0 +1,101 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Bengali`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0009B2,
+ 0x0009D7
+ ],
+ ranges: [
+ [0x000980, 0x000983],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009BC, 0x0009C4],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CE],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E3],
+ [0x0009E6, 0x0009FE]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Bengali}+$/u,
+ matchSymbols,
+ "\\p{Script=Bengali}"
+);
+testPropertyEscapes(
+ /^\p{Script=Beng}+$/u,
+ matchSymbols,
+ "\\p{Script=Beng}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bengali}+$/u,
+ matchSymbols,
+ "\\p{sc=Bengali}"
+);
+testPropertyEscapes(
+ /^\p{sc=Beng}+$/u,
+ matchSymbols,
+ "\\p{sc=Beng}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000984,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00097F],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BB],
+ [0x0009C5, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CF, 0x0009D6],
+ [0x0009D8, 0x0009DB],
+ [0x0009E4, 0x0009E5],
+ [0x0009FF, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Bengali}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bengali}"
+);
+testPropertyEscapes(
+ /^\P{Script=Beng}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Beng}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bengali}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bengali}"
+);
+testPropertyEscapes(
+ /^\P{sc=Beng}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Beng}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bhaiksuki.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bhaiksuki.js
new file mode 100644
index 0000000000..88e56c5ad2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bhaiksuki.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Bhaiksuki`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C36],
+ [0x011C38, 0x011C45],
+ [0x011C50, 0x011C6C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Bhaiksuki}+$/u,
+ matchSymbols,
+ "\\p{Script=Bhaiksuki}"
+);
+testPropertyEscapes(
+ /^\p{Script=Bhks}+$/u,
+ matchSymbols,
+ "\\p{Script=Bhks}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bhaiksuki}+$/u,
+ matchSymbols,
+ "\\p{sc=Bhaiksuki}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bhks}+$/u,
+ matchSymbols,
+ "\\p{sc=Bhks}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011C09,
+ 0x011C37
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011BFF],
+ [0x011C46, 0x011C4F],
+ [0x011C6D, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Bhaiksuki}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bhaiksuki}"
+);
+testPropertyEscapes(
+ /^\P{Script=Bhks}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bhks}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bhaiksuki}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bhaiksuki}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bhks}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bhks}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bopomofo.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bopomofo.js
new file mode 100644
index 0000000000..b8cf8e4b49
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Bopomofo.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Bopomofo`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0002EA, 0x0002EB],
+ [0x003105, 0x00312F],
+ [0x0031A0, 0x0031BF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Bopomofo}+$/u,
+ matchSymbols,
+ "\\p{Script=Bopomofo}"
+);
+testPropertyEscapes(
+ /^\p{Script=Bopo}+$/u,
+ matchSymbols,
+ "\\p{Script=Bopo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bopomofo}+$/u,
+ matchSymbols,
+ "\\p{sc=Bopomofo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bopo}+$/u,
+ matchSymbols,
+ "\\p{sc=Bopo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0002E9],
+ [0x0002EC, 0x003104],
+ [0x003130, 0x00319F],
+ [0x0031C0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Bopomofo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bopomofo}"
+);
+testPropertyEscapes(
+ /^\P{Script=Bopo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bopo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bopomofo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bopomofo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bopo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bopo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Brahmi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Brahmi.js
new file mode 100644
index 0000000000..a89251fea7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Brahmi.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Brahmi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01107F
+ ],
+ ranges: [
+ [0x011000, 0x01104D],
+ [0x011052, 0x01106F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Brahmi}+$/u,
+ matchSymbols,
+ "\\p{Script=Brahmi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Brah}+$/u,
+ matchSymbols,
+ "\\p{Script=Brah}"
+);
+testPropertyEscapes(
+ /^\p{sc=Brahmi}+$/u,
+ matchSymbols,
+ "\\p{sc=Brahmi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Brah}+$/u,
+ matchSymbols,
+ "\\p{sc=Brah}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010FFF],
+ [0x01104E, 0x011051],
+ [0x011070, 0x01107E],
+ [0x011080, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Brahmi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Brahmi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Brah}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Brah}"
+);
+testPropertyEscapes(
+ /^\P{sc=Brahmi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Brahmi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Brah}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Brah}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Braille.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Braille.js
new file mode 100644
index 0000000000..bbc7beeb08
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Braille.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Braille`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x002800, 0x0028FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Braille}+$/u,
+ matchSymbols,
+ "\\p{Script=Braille}"
+);
+testPropertyEscapes(
+ /^\p{Script=Brai}+$/u,
+ matchSymbols,
+ "\\p{Script=Brai}"
+);
+testPropertyEscapes(
+ /^\p{sc=Braille}+$/u,
+ matchSymbols,
+ "\\p{sc=Braille}"
+);
+testPropertyEscapes(
+ /^\p{sc=Brai}+$/u,
+ matchSymbols,
+ "\\p{sc=Brai}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0027FF],
+ [0x002900, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Braille}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Braille}"
+);
+testPropertyEscapes(
+ /^\P{Script=Brai}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Brai}"
+);
+testPropertyEscapes(
+ /^\P{sc=Braille}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Braille}"
+);
+testPropertyEscapes(
+ /^\P{sc=Brai}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Brai}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Buginese.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Buginese.js
new file mode 100644
index 0000000000..9730010119
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Buginese.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Buginese`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001A00, 0x001A1B],
+ [0x001A1E, 0x001A1F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Buginese}+$/u,
+ matchSymbols,
+ "\\p{Script=Buginese}"
+);
+testPropertyEscapes(
+ /^\p{Script=Bugi}+$/u,
+ matchSymbols,
+ "\\p{Script=Bugi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Buginese}+$/u,
+ matchSymbols,
+ "\\p{sc=Buginese}"
+);
+testPropertyEscapes(
+ /^\p{sc=Bugi}+$/u,
+ matchSymbols,
+ "\\p{sc=Bugi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0019FF],
+ [0x001A1C, 0x001A1D],
+ [0x001A20, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Buginese}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Buginese}"
+);
+testPropertyEscapes(
+ /^\P{Script=Bugi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Bugi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Buginese}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Buginese}"
+);
+testPropertyEscapes(
+ /^\P{sc=Bugi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Bugi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Buhid.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Buhid.js
new file mode 100644
index 0000000000..251c761e11
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Buhid.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Buhid`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001740, 0x001753]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Buhid}+$/u,
+ matchSymbols,
+ "\\p{Script=Buhid}"
+);
+testPropertyEscapes(
+ /^\p{Script=Buhd}+$/u,
+ matchSymbols,
+ "\\p{Script=Buhd}"
+);
+testPropertyEscapes(
+ /^\p{sc=Buhid}+$/u,
+ matchSymbols,
+ "\\p{sc=Buhid}"
+);
+testPropertyEscapes(
+ /^\p{sc=Buhd}+$/u,
+ matchSymbols,
+ "\\p{sc=Buhd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00173F],
+ [0x001754, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Buhid}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Buhid}"
+);
+testPropertyEscapes(
+ /^\P{Script=Buhd}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Buhd}"
+);
+testPropertyEscapes(
+ /^\P{sc=Buhid}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Buhid}"
+);
+testPropertyEscapes(
+ /^\P{sc=Buhd}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Buhd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Canadian_Aboriginal.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Canadian_Aboriginal.js
new file mode 100644
index 0000000000..5ff88d4566
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Canadian_Aboriginal.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Canadian_Aboriginal`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001400, 0x00167F],
+ [0x0018B0, 0x0018F5]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Canadian_Aboriginal}+$/u,
+ matchSymbols,
+ "\\p{Script=Canadian_Aboriginal}"
+);
+testPropertyEscapes(
+ /^\p{Script=Cans}+$/u,
+ matchSymbols,
+ "\\p{Script=Cans}"
+);
+testPropertyEscapes(
+ /^\p{sc=Canadian_Aboriginal}+$/u,
+ matchSymbols,
+ "\\p{sc=Canadian_Aboriginal}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cans}+$/u,
+ matchSymbols,
+ "\\p{sc=Cans}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0013FF],
+ [0x001680, 0x0018AF],
+ [0x0018F6, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Canadian_Aboriginal}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Canadian_Aboriginal}"
+);
+testPropertyEscapes(
+ /^\P{Script=Cans}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cans}"
+);
+testPropertyEscapes(
+ /^\P{sc=Canadian_Aboriginal}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Canadian_Aboriginal}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cans}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cans}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Carian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Carian.js
new file mode 100644
index 0000000000..8029f0f93e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Carian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Carian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0102A0, 0x0102D0]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Carian}+$/u,
+ matchSymbols,
+ "\\p{Script=Carian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Cari}+$/u,
+ matchSymbols,
+ "\\p{Script=Cari}"
+);
+testPropertyEscapes(
+ /^\p{sc=Carian}+$/u,
+ matchSymbols,
+ "\\p{sc=Carian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cari}+$/u,
+ matchSymbols,
+ "\\p{sc=Cari}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01029F],
+ [0x0102D1, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Carian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Carian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Cari}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cari}"
+);
+testPropertyEscapes(
+ /^\P{sc=Carian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Carian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cari}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cari}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Caucasian_Albanian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Caucasian_Albanian.js
new file mode 100644
index 0000000000..a9c516664d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Caucasian_Albanian.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Caucasian_Albanian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01056F
+ ],
+ ranges: [
+ [0x010530, 0x010563]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Caucasian_Albanian}+$/u,
+ matchSymbols,
+ "\\p{Script=Caucasian_Albanian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Aghb}+$/u,
+ matchSymbols,
+ "\\p{Script=Aghb}"
+);
+testPropertyEscapes(
+ /^\p{sc=Caucasian_Albanian}+$/u,
+ matchSymbols,
+ "\\p{sc=Caucasian_Albanian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Aghb}+$/u,
+ matchSymbols,
+ "\\p{sc=Aghb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01052F],
+ [0x010564, 0x01056E],
+ [0x010570, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Caucasian_Albanian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Caucasian_Albanian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Aghb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Aghb}"
+);
+testPropertyEscapes(
+ /^\P{sc=Caucasian_Albanian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Caucasian_Albanian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Aghb}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Aghb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Chakma.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Chakma.js
new file mode 100644
index 0000000000..f83aa1b397
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Chakma.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Chakma`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011100, 0x011134],
+ [0x011136, 0x011147]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Chakma}+$/u,
+ matchSymbols,
+ "\\p{Script=Chakma}"
+);
+testPropertyEscapes(
+ /^\p{Script=Cakm}+$/u,
+ matchSymbols,
+ "\\p{Script=Cakm}"
+);
+testPropertyEscapes(
+ /^\p{sc=Chakma}+$/u,
+ matchSymbols,
+ "\\p{sc=Chakma}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cakm}+$/u,
+ matchSymbols,
+ "\\p{sc=Cakm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011135
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0110FF],
+ [0x011148, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Chakma}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Chakma}"
+);
+testPropertyEscapes(
+ /^\P{Script=Cakm}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cakm}"
+);
+testPropertyEscapes(
+ /^\P{sc=Chakma}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Chakma}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cakm}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cakm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cham.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cham.js
new file mode 100644
index 0000000000..ec6877aa32
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cham.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Cham`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00AA00, 0x00AA36],
+ [0x00AA40, 0x00AA4D],
+ [0x00AA50, 0x00AA59],
+ [0x00AA5C, 0x00AA5F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Cham}+$/u,
+ matchSymbols,
+ "\\p{Script=Cham}"
+);
+testPropertyEscapes(
+ /^\p{Script=Cham}+$/u,
+ matchSymbols,
+ "\\p{Script=Cham}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cham}+$/u,
+ matchSymbols,
+ "\\p{sc=Cham}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cham}+$/u,
+ matchSymbols,
+ "\\p{sc=Cham}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A9FF],
+ [0x00AA37, 0x00AA3F],
+ [0x00AA4E, 0x00AA4F],
+ [0x00AA5A, 0x00AA5B],
+ [0x00AA60, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Cham}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cham}"
+);
+testPropertyEscapes(
+ /^\P{Script=Cham}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cham}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cham}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cham}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cham}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cham}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cherokee.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cherokee.js
new file mode 100644
index 0000000000..d3844953cc
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cherokee.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Cherokee`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x00AB70, 0x00ABBF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Cherokee}+$/u,
+ matchSymbols,
+ "\\p{Script=Cherokee}"
+);
+testPropertyEscapes(
+ /^\p{Script=Cher}+$/u,
+ matchSymbols,
+ "\\p{Script=Cher}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cherokee}+$/u,
+ matchSymbols,
+ "\\p{sc=Cherokee}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cher}+$/u,
+ matchSymbols,
+ "\\p{sc=Cher}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Cherokee}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cherokee}"
+);
+testPropertyEscapes(
+ /^\P{Script=Cher}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cher}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cherokee}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cherokee}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cher}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cher}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Chorasmian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Chorasmian.js
new file mode 100644
index 0000000000..a8693a5f95
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Chorasmian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Chorasmian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010FB0, 0x010FCB]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Chorasmian}+$/u,
+ matchSymbols,
+ "\\p{Script=Chorasmian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Chrs}+$/u,
+ matchSymbols,
+ "\\p{Script=Chrs}"
+);
+testPropertyEscapes(
+ /^\p{sc=Chorasmian}+$/u,
+ matchSymbols,
+ "\\p{sc=Chorasmian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Chrs}+$/u,
+ matchSymbols,
+ "\\p{sc=Chrs}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010FAF],
+ [0x010FCC, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Chorasmian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Chorasmian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Chrs}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Chrs}"
+);
+testPropertyEscapes(
+ /^\P{sc=Chorasmian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Chorasmian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Chrs}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Chrs}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Common.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Common.js
new file mode 100644
index 0000000000..1a1c8c68ae
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Common.js
@@ -0,0 +1,418 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Common`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x000374,
+ 0x00037E,
+ 0x000385,
+ 0x000387,
+ 0x000605,
+ 0x00060C,
+ 0x00061B,
+ 0x00061F,
+ 0x000640,
+ 0x0006DD,
+ 0x0008E2,
+ 0x000E3F,
+ 0x0010FB,
+ 0x001805,
+ 0x001CD3,
+ 0x001CE1,
+ 0x001CFA,
+ 0x003006,
+ 0x0030A0,
+ 0x0032FF,
+ 0x00A92E,
+ 0x00A9CF,
+ 0x00AB5B,
+ 0x00FEFF,
+ 0x00FF70,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x0E0001
+ ],
+ ranges: [
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0002B9, 0x0002DF],
+ [0x0002E5, 0x0002E9],
+ [0x0002EC, 0x0002FF],
+ [0x000964, 0x000965],
+ [0x000FD5, 0x000FD8],
+ [0x0016EB, 0x0016ED],
+ [0x001735, 0x001736],
+ [0x001802, 0x001803],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF7],
+ [0x002000, 0x00200B],
+ [0x00200E, 0x002064],
+ [0x002066, 0x002070],
+ [0x002074, 0x00207E],
+ [0x002080, 0x00208E],
+ [0x0020A0, 0x0020BF],
+ [0x002100, 0x002125],
+ [0x002127, 0x002129],
+ [0x00212C, 0x002131],
+ [0x002133, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002189, 0x00218B],
+ [0x002190, 0x002426],
+ [0x002440, 0x00244A],
+ [0x002460, 0x0027FF],
+ [0x002900, 0x002B73],
+ [0x002B76, 0x002B95],
+ [0x002B97, 0x002BFF],
+ [0x002E00, 0x002E52],
+ [0x002FF0, 0x002FFB],
+ [0x003000, 0x003004],
+ [0x003008, 0x003020],
+ [0x003030, 0x003037],
+ [0x00303C, 0x00303F],
+ [0x00309B, 0x00309C],
+ [0x0030FB, 0x0030FC],
+ [0x003190, 0x00319F],
+ [0x0031C0, 0x0031E3],
+ [0x003220, 0x00325F],
+ [0x00327F, 0x0032CF],
+ [0x003358, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x00A700, 0x00A721],
+ [0x00A788, 0x00A78A],
+ [0x00A830, 0x00A839],
+ [0x00AB6A, 0x00AB6B],
+ [0x00FD3E, 0x00FD3F],
+ [0x00FE10, 0x00FE19],
+ [0x00FE30, 0x00FE52],
+ [0x00FE54, 0x00FE66],
+ [0x00FE68, 0x00FE6B],
+ [0x00FF01, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x00FF65],
+ [0x00FF9E, 0x00FF9F],
+ [0x00FFE0, 0x00FFE6],
+ [0x00FFE8, 0x00FFEE],
+ [0x00FFF9, 0x00FFFD],
+ [0x010100, 0x010102],
+ [0x010107, 0x010133],
+ [0x010137, 0x01013F],
+ [0x010190, 0x01019C],
+ [0x0101D0, 0x0101FC],
+ [0x0102E1, 0x0102FB],
+ [0x016FE2, 0x016FE3],
+ [0x01BCA0, 0x01BCA3],
+ [0x01D000, 0x01D0F5],
+ [0x01D100, 0x01D126],
+ [0x01D129, 0x01D166],
+ [0x01D16A, 0x01D17A],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D1E8],
+ [0x01D2E0, 0x01D2F3],
+ [0x01D300, 0x01D356],
+ [0x01D360, 0x01D378],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D7CB],
+ [0x01D7CE, 0x01D7FF],
+ [0x01EC71, 0x01ECB4],
+ [0x01ED01, 0x01ED3D],
+ [0x01F000, 0x01F02B],
+ [0x01F030, 0x01F093],
+ [0x01F0A0, 0x01F0AE],
+ [0x01F0B1, 0x01F0BF],
+ [0x01F0C1, 0x01F0CF],
+ [0x01F0D1, 0x01F0F5],
+ [0x01F100, 0x01F1AD],
+ [0x01F1E6, 0x01F1FF],
+ [0x01F201, 0x01F202],
+ [0x01F210, 0x01F23B],
+ [0x01F240, 0x01F248],
+ [0x01F250, 0x01F251],
+ [0x01F260, 0x01F265],
+ [0x01F300, 0x01F6D7],
+ [0x01F6E0, 0x01F6EC],
+ [0x01F6F0, 0x01F6FC],
+ [0x01F700, 0x01F773],
+ [0x01F780, 0x01F7D8],
+ [0x01F7E0, 0x01F7EB],
+ [0x01F800, 0x01F80B],
+ [0x01F810, 0x01F847],
+ [0x01F850, 0x01F859],
+ [0x01F860, 0x01F887],
+ [0x01F890, 0x01F8AD],
+ [0x01F8B0, 0x01F8B1],
+ [0x01F900, 0x01F978],
+ [0x01F97A, 0x01F9CB],
+ [0x01F9CD, 0x01FA53],
+ [0x01FA60, 0x01FA6D],
+ [0x01FA70, 0x01FA74],
+ [0x01FA78, 0x01FA7A],
+ [0x01FA80, 0x01FA86],
+ [0x01FA90, 0x01FAA8],
+ [0x01FAB0, 0x01FAB6],
+ [0x01FAC0, 0x01FAC2],
+ [0x01FAD0, 0x01FAD6],
+ [0x01FB00, 0x01FB92],
+ [0x01FB94, 0x01FBCA],
+ [0x01FBF0, 0x01FBF9],
+ [0x0E0020, 0x0E007F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Common}+$/u,
+ matchSymbols,
+ "\\p{Script=Common}"
+);
+testPropertyEscapes(
+ /^\p{Script=Zyyy}+$/u,
+ matchSymbols,
+ "\\p{Script=Zyyy}"
+);
+testPropertyEscapes(
+ /^\p{sc=Common}+$/u,
+ matchSymbols,
+ "\\p{sc=Common}"
+);
+testPropertyEscapes(
+ /^\p{sc=Zyyy}+$/u,
+ matchSymbols,
+ "\\p{sc=Zyyy}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000BA,
+ 0x000386,
+ 0x001804,
+ 0x001CED,
+ 0x001CF4,
+ 0x002065,
+ 0x00207F,
+ 0x002126,
+ 0x002132,
+ 0x00214E,
+ 0x002B96,
+ 0x003005,
+ 0x003007,
+ 0x00FE53,
+ 0x00FE67,
+ 0x00FF00,
+ 0x00FFE7,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01F0C0,
+ 0x01F0D0,
+ 0x01F200,
+ 0x01F979,
+ 0x01F9CC,
+ 0x01FB93
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002B8],
+ [0x0002E0, 0x0002E4],
+ [0x0002EA, 0x0002EB],
+ [0x000300, 0x000373],
+ [0x000375, 0x00037D],
+ [0x00037F, 0x000384],
+ [0x000388, 0x000604],
+ [0x000606, 0x00060B],
+ [0x00060D, 0x00061A],
+ [0x00061C, 0x00061E],
+ [0x000620, 0x00063F],
+ [0x000641, 0x0006DC],
+ [0x0006DE, 0x0008E1],
+ [0x0008E3, 0x000963],
+ [0x000966, 0x000E3E],
+ [0x000E40, 0x000FD4],
+ [0x000FD9, 0x0010FA],
+ [0x0010FC, 0x0016EA],
+ [0x0016EE, 0x001734],
+ [0x001737, 0x001801],
+ [0x001806, 0x001CD2],
+ [0x001CD4, 0x001CE0],
+ [0x001CE2, 0x001CE8],
+ [0x001CF8, 0x001CF9],
+ [0x001CFB, 0x001FFF],
+ [0x00200C, 0x00200D],
+ [0x002071, 0x002073],
+ [0x00208F, 0x00209F],
+ [0x0020C0, 0x0020FF],
+ [0x00212A, 0x00212B],
+ [0x002160, 0x002188],
+ [0x00218C, 0x00218F],
+ [0x002427, 0x00243F],
+ [0x00244B, 0x00245F],
+ [0x002800, 0x0028FF],
+ [0x002B74, 0x002B75],
+ [0x002C00, 0x002DFF],
+ [0x002E53, 0x002FEF],
+ [0x002FFC, 0x002FFF],
+ [0x003021, 0x00302F],
+ [0x003038, 0x00303B],
+ [0x003040, 0x00309A],
+ [0x00309D, 0x00309F],
+ [0x0030A1, 0x0030FA],
+ [0x0030FD, 0x00318F],
+ [0x0031A0, 0x0031BF],
+ [0x0031E4, 0x00321F],
+ [0x003260, 0x00327E],
+ [0x0032D0, 0x0032FE],
+ [0x003300, 0x003357],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x00A6FF],
+ [0x00A722, 0x00A787],
+ [0x00A78B, 0x00A82F],
+ [0x00A83A, 0x00A92D],
+ [0x00A92F, 0x00A9CE],
+ [0x00A9D0, 0x00AB5A],
+ [0x00AB5C, 0x00AB69],
+ [0x00AB6C, 0x00DBFF],
+ [0x00E000, 0x00FD3D],
+ [0x00FD40, 0x00FE0F],
+ [0x00FE1A, 0x00FE2F],
+ [0x00FE6C, 0x00FEFE],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x00FF66, 0x00FF6F],
+ [0x00FF71, 0x00FF9D],
+ [0x00FFA0, 0x00FFDF],
+ [0x00FFEF, 0x00FFF8],
+ [0x00FFFE, 0x0100FF],
+ [0x010103, 0x010106],
+ [0x010134, 0x010136],
+ [0x010140, 0x01018F],
+ [0x01019D, 0x0101CF],
+ [0x0101FD, 0x0102E0],
+ [0x0102FC, 0x016FE1],
+ [0x016FE4, 0x01BC9F],
+ [0x01BCA4, 0x01CFFF],
+ [0x01D0F6, 0x01D0FF],
+ [0x01D127, 0x01D128],
+ [0x01D167, 0x01D169],
+ [0x01D17B, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D1E9, 0x01D2DF],
+ [0x01D2F4, 0x01D2FF],
+ [0x01D357, 0x01D35F],
+ [0x01D379, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01D7CD],
+ [0x01D800, 0x01EC70],
+ [0x01ECB5, 0x01ED00],
+ [0x01ED3E, 0x01EFFF],
+ [0x01F02C, 0x01F02F],
+ [0x01F094, 0x01F09F],
+ [0x01F0AF, 0x01F0B0],
+ [0x01F0F6, 0x01F0FF],
+ [0x01F1AE, 0x01F1E5],
+ [0x01F203, 0x01F20F],
+ [0x01F23C, 0x01F23F],
+ [0x01F249, 0x01F24F],
+ [0x01F252, 0x01F25F],
+ [0x01F266, 0x01F2FF],
+ [0x01F6D8, 0x01F6DF],
+ [0x01F6ED, 0x01F6EF],
+ [0x01F6FD, 0x01F6FF],
+ [0x01F774, 0x01F77F],
+ [0x01F7D9, 0x01F7DF],
+ [0x01F7EC, 0x01F7FF],
+ [0x01F80C, 0x01F80F],
+ [0x01F848, 0x01F84F],
+ [0x01F85A, 0x01F85F],
+ [0x01F888, 0x01F88F],
+ [0x01F8AE, 0x01F8AF],
+ [0x01F8B2, 0x01F8FF],
+ [0x01FA54, 0x01FA5F],
+ [0x01FA6E, 0x01FA6F],
+ [0x01FA75, 0x01FA77],
+ [0x01FA7B, 0x01FA7F],
+ [0x01FA87, 0x01FA8F],
+ [0x01FAA9, 0x01FAAF],
+ [0x01FAB7, 0x01FABF],
+ [0x01FAC3, 0x01FACF],
+ [0x01FAD7, 0x01FAFF],
+ [0x01FBCB, 0x01FBEF],
+ [0x01FBFA, 0x0E0000],
+ [0x0E0002, 0x0E001F],
+ [0x0E0080, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Common}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Common}"
+);
+testPropertyEscapes(
+ /^\P{Script=Zyyy}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Zyyy}"
+);
+testPropertyEscapes(
+ /^\P{sc=Common}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Common}"
+);
+testPropertyEscapes(
+ /^\P{sc=Zyyy}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Zyyy}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Coptic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Coptic.js
new file mode 100644
index 0000000000..2b0c9abd55
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Coptic.js
@@ -0,0 +1,97 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Coptic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0003E2, 0x0003EF],
+ [0x002C80, 0x002CF3],
+ [0x002CF9, 0x002CFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Coptic}+$/u,
+ matchSymbols,
+ "\\p{Script=Coptic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Copt}+$/u,
+ matchSymbols,
+ "\\p{Script=Copt}"
+);
+testPropertyEscapes(
+ /^\p{Script=Qaac}+$/u,
+ matchSymbols,
+ "\\p{Script=Qaac}"
+);
+testPropertyEscapes(
+ /^\p{sc=Coptic}+$/u,
+ matchSymbols,
+ "\\p{sc=Coptic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Copt}+$/u,
+ matchSymbols,
+ "\\p{sc=Copt}"
+);
+testPropertyEscapes(
+ /^\p{sc=Qaac}+$/u,
+ matchSymbols,
+ "\\p{sc=Qaac}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0003E1],
+ [0x0003F0, 0x002C7F],
+ [0x002CF4, 0x002CF8],
+ [0x002D00, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Coptic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Coptic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Copt}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Copt}"
+);
+testPropertyEscapes(
+ /^\P{Script=Qaac}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Qaac}"
+);
+testPropertyEscapes(
+ /^\P{sc=Coptic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Coptic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Copt}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Copt}"
+);
+testPropertyEscapes(
+ /^\P{sc=Qaac}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Qaac}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cuneiform.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cuneiform.js
new file mode 100644
index 0000000000..62ecf004d8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cuneiform.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Cuneiform`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x012000, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012470, 0x012474],
+ [0x012480, 0x012543]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Cuneiform}+$/u,
+ matchSymbols,
+ "\\p{Script=Cuneiform}"
+);
+testPropertyEscapes(
+ /^\p{Script=Xsux}+$/u,
+ matchSymbols,
+ "\\p{Script=Xsux}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cuneiform}+$/u,
+ matchSymbols,
+ "\\p{sc=Cuneiform}"
+);
+testPropertyEscapes(
+ /^\p{sc=Xsux}+$/u,
+ matchSymbols,
+ "\\p{sc=Xsux}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01246F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011FFF],
+ [0x01239A, 0x0123FF],
+ [0x012475, 0x01247F],
+ [0x012544, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Cuneiform}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cuneiform}"
+);
+testPropertyEscapes(
+ /^\P{Script=Xsux}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Xsux}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cuneiform}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cuneiform}"
+);
+testPropertyEscapes(
+ /^\P{sc=Xsux}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Xsux}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cypriot.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cypriot.js
new file mode 100644
index 0000000000..1f55541ec0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cypriot.js
@@ -0,0 +1,85 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Cypriot`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x010808,
+ 0x01083C,
+ 0x01083F
+ ],
+ ranges: [
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Cypriot}+$/u,
+ matchSymbols,
+ "\\p{Script=Cypriot}"
+);
+testPropertyEscapes(
+ /^\p{Script=Cprt}+$/u,
+ matchSymbols,
+ "\\p{Script=Cprt}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cypriot}+$/u,
+ matchSymbols,
+ "\\p{sc=Cypriot}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cprt}+$/u,
+ matchSymbols,
+ "\\p{sc=Cprt}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x010809,
+ 0x010836
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x010840, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Cypriot}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cypriot}"
+);
+testPropertyEscapes(
+ /^\P{Script=Cprt}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cprt}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cypriot}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cypriot}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cprt}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cprt}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cyrillic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cyrillic.js
new file mode 100644
index 0000000000..adc35adb22
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Cyrillic.js
@@ -0,0 +1,88 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Cyrillic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001D2B,
+ 0x001D78
+ ],
+ ranges: [
+ [0x000400, 0x000484],
+ [0x000487, 0x00052F],
+ [0x001C80, 0x001C88],
+ [0x002DE0, 0x002DFF],
+ [0x00A640, 0x00A69F],
+ [0x00FE2E, 0x00FE2F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Cyrillic}+$/u,
+ matchSymbols,
+ "\\p{Script=Cyrillic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Cyrl}+$/u,
+ matchSymbols,
+ "\\p{Script=Cyrl}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cyrillic}+$/u,
+ matchSymbols,
+ "\\p{sc=Cyrillic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Cyrl}+$/u,
+ matchSymbols,
+ "\\p{sc=Cyrl}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0003FF],
+ [0x000485, 0x000486],
+ [0x000530, 0x001C7F],
+ [0x001C89, 0x001D2A],
+ [0x001D2C, 0x001D77],
+ [0x001D79, 0x002DDF],
+ [0x002E00, 0x00A63F],
+ [0x00A6A0, 0x00DBFF],
+ [0x00E000, 0x00FE2D],
+ [0x00FE30, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Cyrillic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cyrillic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Cyrl}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Cyrl}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cyrillic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cyrillic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Cyrl}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Cyrl}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Deseret.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Deseret.js
new file mode 100644
index 0000000000..e020b73913
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Deseret.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Deseret`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010400, 0x01044F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Deseret}+$/u,
+ matchSymbols,
+ "\\p{Script=Deseret}"
+);
+testPropertyEscapes(
+ /^\p{Script=Dsrt}+$/u,
+ matchSymbols,
+ "\\p{Script=Dsrt}"
+);
+testPropertyEscapes(
+ /^\p{sc=Deseret}+$/u,
+ matchSymbols,
+ "\\p{sc=Deseret}"
+);
+testPropertyEscapes(
+ /^\p{sc=Dsrt}+$/u,
+ matchSymbols,
+ "\\p{sc=Dsrt}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0103FF],
+ [0x010450, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Deseret}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Deseret}"
+);
+testPropertyEscapes(
+ /^\P{Script=Dsrt}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Dsrt}"
+);
+testPropertyEscapes(
+ /^\P{sc=Deseret}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Deseret}"
+);
+testPropertyEscapes(
+ /^\P{sc=Dsrt}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Dsrt}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Devanagari.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Devanagari.js
new file mode 100644
index 0000000000..3bcd19c414
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Devanagari.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Devanagari`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000900, 0x000950],
+ [0x000955, 0x000963],
+ [0x000966, 0x00097F],
+ [0x00A8E0, 0x00A8FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Devanagari}+$/u,
+ matchSymbols,
+ "\\p{Script=Devanagari}"
+);
+testPropertyEscapes(
+ /^\p{Script=Deva}+$/u,
+ matchSymbols,
+ "\\p{Script=Deva}"
+);
+testPropertyEscapes(
+ /^\p{sc=Devanagari}+$/u,
+ matchSymbols,
+ "\\p{sc=Devanagari}"
+);
+testPropertyEscapes(
+ /^\p{sc=Deva}+$/u,
+ matchSymbols,
+ "\\p{sc=Deva}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0008FF],
+ [0x000951, 0x000954],
+ [0x000964, 0x000965],
+ [0x000980, 0x00A8DF],
+ [0x00A900, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Devanagari}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Devanagari}"
+);
+testPropertyEscapes(
+ /^\P{Script=Deva}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Deva}"
+);
+testPropertyEscapes(
+ /^\P{sc=Devanagari}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Devanagari}"
+);
+testPropertyEscapes(
+ /^\P{sc=Deva}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Deva}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Dives_Akuru.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Dives_Akuru.js
new file mode 100644
index 0000000000..ffe4e1242b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Dives_Akuru.js
@@ -0,0 +1,89 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Dives_Akuru`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x011909
+ ],
+ ranges: [
+ [0x011900, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x011935],
+ [0x011937, 0x011938],
+ [0x01193B, 0x011946],
+ [0x011950, 0x011959]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Dives_Akuru}+$/u,
+ matchSymbols,
+ "\\p{Script=Dives_Akuru}"
+);
+testPropertyEscapes(
+ /^\p{Script=Diak}+$/u,
+ matchSymbols,
+ "\\p{Script=Diak}"
+);
+testPropertyEscapes(
+ /^\p{sc=Dives_Akuru}+$/u,
+ matchSymbols,
+ "\\p{sc=Dives_Akuru}"
+);
+testPropertyEscapes(
+ /^\p{sc=Diak}+$/u,
+ matchSymbols,
+ "\\p{sc=Diak}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011914,
+ 0x011917,
+ 0x011936
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0118FF],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011939, 0x01193A],
+ [0x011947, 0x01194F],
+ [0x01195A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Dives_Akuru}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Dives_Akuru}"
+);
+testPropertyEscapes(
+ /^\P{Script=Diak}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Diak}"
+);
+testPropertyEscapes(
+ /^\P{sc=Dives_Akuru}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Dives_Akuru}"
+);
+testPropertyEscapes(
+ /^\P{sc=Diak}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Diak}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Dogra.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Dogra.js
new file mode 100644
index 0000000000..154eaee27e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Dogra.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Dogra`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011800, 0x01183B]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Dogra}+$/u,
+ matchSymbols,
+ "\\p{Script=Dogra}"
+);
+testPropertyEscapes(
+ /^\p{Script=Dogr}+$/u,
+ matchSymbols,
+ "\\p{Script=Dogr}"
+);
+testPropertyEscapes(
+ /^\p{sc=Dogra}+$/u,
+ matchSymbols,
+ "\\p{sc=Dogra}"
+);
+testPropertyEscapes(
+ /^\p{sc=Dogr}+$/u,
+ matchSymbols,
+ "\\p{sc=Dogr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0117FF],
+ [0x01183C, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Dogra}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Dogra}"
+);
+testPropertyEscapes(
+ /^\P{Script=Dogr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Dogr}"
+);
+testPropertyEscapes(
+ /^\P{sc=Dogra}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Dogra}"
+);
+testPropertyEscapes(
+ /^\P{sc=Dogr}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Dogr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Duployan.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Duployan.js
new file mode 100644
index 0000000000..0b79bf458c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Duployan.js
@@ -0,0 +1,81 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Duployan`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01BC9C, 0x01BC9F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Duployan}+$/u,
+ matchSymbols,
+ "\\p{Script=Duployan}"
+);
+testPropertyEscapes(
+ /^\p{Script=Dupl}+$/u,
+ matchSymbols,
+ "\\p{Script=Dupl}"
+);
+testPropertyEscapes(
+ /^\p{sc=Duployan}+$/u,
+ matchSymbols,
+ "\\p{sc=Duployan}"
+);
+testPropertyEscapes(
+ /^\p{sc=Dupl}+$/u,
+ matchSymbols,
+ "\\p{sc=Dupl}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01BC9B],
+ [0x01BCA0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Duployan}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Duployan}"
+);
+testPropertyEscapes(
+ /^\P{Script=Dupl}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Dupl}"
+);
+testPropertyEscapes(
+ /^\P{sc=Duployan}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Duployan}"
+);
+testPropertyEscapes(
+ /^\P{sc=Dupl}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Dupl}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Egyptian_Hieroglyphs.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Egyptian_Hieroglyphs.js
new file mode 100644
index 0000000000..3e7f279ebf
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Egyptian_Hieroglyphs.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Egyptian_Hieroglyphs`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x013000, 0x01342E],
+ [0x013430, 0x013438]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Egyptian_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{Script=Egyptian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{Script=Egyp}+$/u,
+ matchSymbols,
+ "\\p{Script=Egyp}"
+);
+testPropertyEscapes(
+ /^\p{sc=Egyptian_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{sc=Egyptian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{sc=Egyp}+$/u,
+ matchSymbols,
+ "\\p{sc=Egyp}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01342F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x012FFF],
+ [0x013439, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Egyptian_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Egyptian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{Script=Egyp}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Egyp}"
+);
+testPropertyEscapes(
+ /^\P{sc=Egyptian_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Egyptian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{sc=Egyp}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Egyp}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Elbasan.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Elbasan.js
new file mode 100644
index 0000000000..bc03063e28
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Elbasan.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Elbasan`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010500, 0x010527]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Elbasan}+$/u,
+ matchSymbols,
+ "\\p{Script=Elbasan}"
+);
+testPropertyEscapes(
+ /^\p{Script=Elba}+$/u,
+ matchSymbols,
+ "\\p{Script=Elba}"
+);
+testPropertyEscapes(
+ /^\p{sc=Elbasan}+$/u,
+ matchSymbols,
+ "\\p{sc=Elbasan}"
+);
+testPropertyEscapes(
+ /^\p{sc=Elba}+$/u,
+ matchSymbols,
+ "\\p{sc=Elba}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0104FF],
+ [0x010528, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Elbasan}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Elbasan}"
+);
+testPropertyEscapes(
+ /^\P{Script=Elba}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Elba}"
+);
+testPropertyEscapes(
+ /^\P{sc=Elbasan}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Elbasan}"
+);
+testPropertyEscapes(
+ /^\P{sc=Elba}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Elba}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Elymaic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Elymaic.js
new file mode 100644
index 0000000000..c9114f58e5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Elymaic.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Elymaic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010FE0, 0x010FF6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Elymaic}+$/u,
+ matchSymbols,
+ "\\p{Script=Elymaic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Elym}+$/u,
+ matchSymbols,
+ "\\p{Script=Elym}"
+);
+testPropertyEscapes(
+ /^\p{sc=Elymaic}+$/u,
+ matchSymbols,
+ "\\p{sc=Elymaic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Elym}+$/u,
+ matchSymbols,
+ "\\p{sc=Elym}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010FDF],
+ [0x010FF7, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Elymaic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Elymaic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Elym}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Elym}"
+);
+testPropertyEscapes(
+ /^\P{sc=Elymaic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Elymaic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Elym}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Elym}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ethiopic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ethiopic.js
new file mode 100644
index 0000000000..ea782d127e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ethiopic.js
@@ -0,0 +1,137 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Ethiopic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001258,
+ 0x0012C0
+ ],
+ ranges: [
+ [0x001200, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x00135D, 0x00137C],
+ [0x001380, 0x001399],
+ [0x002D80, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Ethiopic}+$/u,
+ matchSymbols,
+ "\\p{Script=Ethiopic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Ethi}+$/u,
+ matchSymbols,
+ "\\p{Script=Ethi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Ethiopic}+$/u,
+ matchSymbols,
+ "\\p{sc=Ethiopic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Ethi}+$/u,
+ matchSymbols,
+ "\\p{sc=Ethi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x00AB27
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0011FF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00135C],
+ [0x00137D, 0x00137F],
+ [0x00139A, 0x002D7F],
+ [0x002D97, 0x002D9F],
+ [0x002DDF, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB2F, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Ethiopic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Ethiopic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Ethi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Ethi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Ethiopic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Ethiopic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Ethi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Ethi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Georgian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Georgian.js
new file mode 100644
index 0000000000..d6143a1a4c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Georgian.js
@@ -0,0 +1,93 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Georgian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0010C7,
+ 0x0010CD,
+ 0x002D27,
+ 0x002D2D
+ ],
+ ranges: [
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FA],
+ [0x0010FC, 0x0010FF],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x002D00, 0x002D25]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Georgian}+$/u,
+ matchSymbols,
+ "\\p{Script=Georgian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Geor}+$/u,
+ matchSymbols,
+ "\\p{Script=Geor}"
+);
+testPropertyEscapes(
+ /^\p{sc=Georgian}+$/u,
+ matchSymbols,
+ "\\p{sc=Georgian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Geor}+$/u,
+ matchSymbols,
+ "\\p{sc=Geor}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0010C6,
+ 0x0010FB,
+ 0x002D26
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x001100, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Georgian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Georgian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Geor}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Geor}"
+);
+testPropertyEscapes(
+ /^\P{sc=Georgian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Georgian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Geor}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Geor}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Glagolitic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Glagolitic.js
new file mode 100644
index 0000000000..d445499281
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Glagolitic.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Glagolitic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Glagolitic}+$/u,
+ matchSymbols,
+ "\\p{Script=Glagolitic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Glag}+$/u,
+ matchSymbols,
+ "\\p{Script=Glag}"
+);
+testPropertyEscapes(
+ /^\p{sc=Glagolitic}+$/u,
+ matchSymbols,
+ "\\p{sc=Glagolitic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Glag}+$/u,
+ matchSymbols,
+ "\\p{sc=Glag}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x002C2F,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002BFF],
+ [0x002C5F, 0x00DBFF],
+ [0x00E000, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Glagolitic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Glagolitic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Glag}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Glag}"
+);
+testPropertyEscapes(
+ /^\P{sc=Glagolitic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Glagolitic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Glag}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Glag}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gothic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gothic.js
new file mode 100644
index 0000000000..a1883fbf16
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gothic.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Gothic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010330, 0x01034A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Gothic}+$/u,
+ matchSymbols,
+ "\\p{Script=Gothic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Goth}+$/u,
+ matchSymbols,
+ "\\p{Script=Goth}"
+);
+testPropertyEscapes(
+ /^\p{sc=Gothic}+$/u,
+ matchSymbols,
+ "\\p{sc=Gothic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Goth}+$/u,
+ matchSymbols,
+ "\\p{sc=Goth}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01032F],
+ [0x01034B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Gothic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Gothic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Goth}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Goth}"
+);
+testPropertyEscapes(
+ /^\P{sc=Gothic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Gothic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Goth}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Goth}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Grantha.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Grantha.js
new file mode 100644
index 0000000000..ff5b71729c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Grantha.js
@@ -0,0 +1,103 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Grantha`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x011350,
+ 0x011357
+ ],
+ ranges: [
+ [0x011300, 0x011303],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01133C, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134D],
+ [0x01135D, 0x011363],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Grantha}+$/u,
+ matchSymbols,
+ "\\p{Script=Grantha}"
+);
+testPropertyEscapes(
+ /^\p{Script=Gran}+$/u,
+ matchSymbols,
+ "\\p{Script=Gran}"
+);
+testPropertyEscapes(
+ /^\p{sc=Grantha}+$/u,
+ matchSymbols,
+ "\\p{sc=Grantha}"
+);
+testPropertyEscapes(
+ /^\p{sc=Gran}+$/u,
+ matchSymbols,
+ "\\p{sc=Gran}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011304,
+ 0x011329,
+ 0x011331,
+ 0x011334
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0112FF],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x01133A, 0x01133B],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134E, 0x01134F],
+ [0x011351, 0x011356],
+ [0x011358, 0x01135C],
+ [0x011364, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Grantha}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Grantha}"
+);
+testPropertyEscapes(
+ /^\P{Script=Gran}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Gran}"
+);
+testPropertyEscapes(
+ /^\P{sc=Grantha}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Grantha}"
+);
+testPropertyEscapes(
+ /^\P{sc=Gran}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Gran}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Greek.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Greek.js
new file mode 100644
index 0000000000..39d7e2a568
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Greek.js
@@ -0,0 +1,145 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Greek`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00037F,
+ 0x000384,
+ 0x000386,
+ 0x00038C,
+ 0x001DBF,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x002126,
+ 0x00AB65,
+ 0x0101A0
+ ],
+ ranges: [
+ [0x000370, 0x000373],
+ [0x000375, 0x000377],
+ [0x00037A, 0x00037D],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003E1],
+ [0x0003F0, 0x0003FF],
+ [0x001D26, 0x001D2A],
+ [0x001D5D, 0x001D61],
+ [0x001D66, 0x001D6A],
+ [0x001F00, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FC4],
+ [0x001FC6, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FDD, 0x001FEF],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFE],
+ [0x010140, 0x01018E],
+ [0x01D200, 0x01D245]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Greek}+$/u,
+ matchSymbols,
+ "\\p{Script=Greek}"
+);
+testPropertyEscapes(
+ /^\p{Script=Grek}+$/u,
+ matchSymbols,
+ "\\p{Script=Grek}"
+);
+testPropertyEscapes(
+ /^\p{sc=Greek}+$/u,
+ matchSymbols,
+ "\\p{sc=Greek}"
+);
+testPropertyEscapes(
+ /^\p{sc=Grek}+$/u,
+ matchSymbols,
+ "\\p{sc=Grek}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000374,
+ 0x00037E,
+ 0x000385,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FC5,
+ 0x001FDC,
+ 0x001FF5
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00036F],
+ [0x000378, 0x000379],
+ [0x000380, 0x000383],
+ [0x0003E2, 0x0003EF],
+ [0x000400, 0x001D25],
+ [0x001D2B, 0x001D5C],
+ [0x001D62, 0x001D65],
+ [0x001D6B, 0x001DBE],
+ [0x001DC0, 0x001EFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FD4, 0x001FD5],
+ [0x001FF0, 0x001FF1],
+ [0x001FFF, 0x002125],
+ [0x002127, 0x00AB64],
+ [0x00AB66, 0x00DBFF],
+ [0x00E000, 0x01013F],
+ [0x01018F, 0x01019F],
+ [0x0101A1, 0x01D1FF],
+ [0x01D246, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Greek}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Greek}"
+);
+testPropertyEscapes(
+ /^\P{Script=Grek}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Grek}"
+);
+testPropertyEscapes(
+ /^\P{sc=Greek}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Greek}"
+);
+testPropertyEscapes(
+ /^\P{sc=Grek}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Grek}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gujarati.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gujarati.js
new file mode 100644
index 0000000000..7d4968cf43
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gujarati.js
@@ -0,0 +1,101 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Gujarati`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000AD0
+ ],
+ ranges: [
+ [0x000A81, 0x000A83],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000ABC, 0x000AC5],
+ [0x000AC7, 0x000AC9],
+ [0x000ACB, 0x000ACD],
+ [0x000AE0, 0x000AE3],
+ [0x000AE6, 0x000AF1],
+ [0x000AF9, 0x000AFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Gujarati}+$/u,
+ matchSymbols,
+ "\\p{Script=Gujarati}"
+);
+testPropertyEscapes(
+ /^\p{Script=Gujr}+$/u,
+ matchSymbols,
+ "\\p{Script=Gujr}"
+);
+testPropertyEscapes(
+ /^\p{sc=Gujarati}+$/u,
+ matchSymbols,
+ "\\p{sc=Gujarati}"
+);
+testPropertyEscapes(
+ /^\p{sc=Gujr}+$/u,
+ matchSymbols,
+ "\\p{sc=Gujr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000A84,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000AC6,
+ 0x000ACA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000A80],
+ [0x000ABA, 0x000ABB],
+ [0x000ACE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE4, 0x000AE5],
+ [0x000AF2, 0x000AF8],
+ [0x000B00, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Gujarati}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Gujarati}"
+);
+testPropertyEscapes(
+ /^\P{Script=Gujr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Gujr}"
+);
+testPropertyEscapes(
+ /^\P{sc=Gujarati}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Gujarati}"
+);
+testPropertyEscapes(
+ /^\P{sc=Gujr}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Gujr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gunjala_Gondi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gunjala_Gondi.js
new file mode 100644
index 0000000000..259f632b3b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gunjala_Gondi.js
@@ -0,0 +1,84 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Gunjala_Gondi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D8E],
+ [0x011D90, 0x011D91],
+ [0x011D93, 0x011D98],
+ [0x011DA0, 0x011DA9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Gunjala_Gondi}+$/u,
+ matchSymbols,
+ "\\p{Script=Gunjala_Gondi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Gong}+$/u,
+ matchSymbols,
+ "\\p{Script=Gong}"
+);
+testPropertyEscapes(
+ /^\p{sc=Gunjala_Gondi}+$/u,
+ matchSymbols,
+ "\\p{sc=Gunjala_Gondi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Gong}+$/u,
+ matchSymbols,
+ "\\p{sc=Gong}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011D66,
+ 0x011D69,
+ 0x011D8F,
+ 0x011D92
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011D5F],
+ [0x011D99, 0x011D9F],
+ [0x011DAA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Gunjala_Gondi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Gunjala_Gondi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Gong}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Gong}"
+);
+testPropertyEscapes(
+ /^\P{sc=Gunjala_Gondi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Gunjala_Gondi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Gong}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Gong}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gurmukhi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gurmukhi.js
new file mode 100644
index 0000000000..c934be74ba
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Gurmukhi.js
@@ -0,0 +1,105 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Gurmukhi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000A3C,
+ 0x000A51,
+ 0x000A5E
+ ],
+ ranges: [
+ [0x000A01, 0x000A03],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A3E, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A59, 0x000A5C],
+ [0x000A66, 0x000A76]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Gurmukhi}+$/u,
+ matchSymbols,
+ "\\p{Script=Gurmukhi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Guru}+$/u,
+ matchSymbols,
+ "\\p{Script=Guru}"
+);
+testPropertyEscapes(
+ /^\p{sc=Gurmukhi}+$/u,
+ matchSymbols,
+ "\\p{sc=Gurmukhi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Guru}+$/u,
+ matchSymbols,
+ "\\p{sc=Guru}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000A04,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A3D,
+ 0x000A5D
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000A00],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A3B],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A58],
+ [0x000A5F, 0x000A65],
+ [0x000A77, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Gurmukhi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Gurmukhi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Guru}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Guru}"
+);
+testPropertyEscapes(
+ /^\P{sc=Gurmukhi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Gurmukhi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Guru}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Guru}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Han.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Han.js
new file mode 100644
index 0000000000..300908a6d5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Han.js
@@ -0,0 +1,111 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Han`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x003005,
+ 0x003007
+ ],
+ ranges: [
+ [0x002E80, 0x002E99],
+ [0x002E9B, 0x002EF3],
+ [0x002F00, 0x002FD5],
+ [0x003021, 0x003029],
+ [0x003038, 0x00303B],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x016FF0, 0x016FF1],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Han}+$/u,
+ matchSymbols,
+ "\\p{Script=Han}"
+);
+testPropertyEscapes(
+ /^\p{Script=Hani}+$/u,
+ matchSymbols,
+ "\\p{Script=Hani}"
+);
+testPropertyEscapes(
+ /^\p{sc=Han}+$/u,
+ matchSymbols,
+ "\\p{sc=Han}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hani}+$/u,
+ matchSymbols,
+ "\\p{sc=Hani}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x002E9A,
+ 0x003006
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002E7F],
+ [0x002EF4, 0x002EFF],
+ [0x002FD6, 0x003004],
+ [0x003008, 0x003020],
+ [0x00302A, 0x003037],
+ [0x00303C, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x016FEF],
+ [0x016FF2, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Han}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Han}"
+);
+testPropertyEscapes(
+ /^\P{Script=Hani}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hani}"
+);
+testPropertyEscapes(
+ /^\P{sc=Han}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Han}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hani}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hani}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hangul.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hangul.js
new file mode 100644
index 0000000000..afb0db5c96
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hangul.js
@@ -0,0 +1,99 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Hangul`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001100, 0x0011FF],
+ [0x00302E, 0x00302F],
+ [0x003131, 0x00318E],
+ [0x003200, 0x00321E],
+ [0x003260, 0x00327E],
+ [0x00A960, 0x00A97C],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00FFA0, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Hangul}+$/u,
+ matchSymbols,
+ "\\p{Script=Hangul}"
+);
+testPropertyEscapes(
+ /^\p{Script=Hang}+$/u,
+ matchSymbols,
+ "\\p{Script=Hang}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hangul}+$/u,
+ matchSymbols,
+ "\\p{sc=Hangul}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hang}+$/u,
+ matchSymbols,
+ "\\p{sc=Hang}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0010FF],
+ [0x001200, 0x00302D],
+ [0x003030, 0x003130],
+ [0x00318F, 0x0031FF],
+ [0x00321F, 0x00325F],
+ [0x00327F, 0x00A95F],
+ [0x00A97D, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00FF9F],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Hangul}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hangul}"
+);
+testPropertyEscapes(
+ /^\P{Script=Hang}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hang}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hangul}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hangul}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hang}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hang}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hanifi_Rohingya.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hanifi_Rohingya.js
new file mode 100644
index 0000000000..3afb012d9d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hanifi_Rohingya.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Hanifi_Rohingya`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010D00, 0x010D27],
+ [0x010D30, 0x010D39]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Hanifi_Rohingya}+$/u,
+ matchSymbols,
+ "\\p{Script=Hanifi_Rohingya}"
+);
+testPropertyEscapes(
+ /^\p{Script=Rohg}+$/u,
+ matchSymbols,
+ "\\p{Script=Rohg}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hanifi_Rohingya}+$/u,
+ matchSymbols,
+ "\\p{sc=Hanifi_Rohingya}"
+);
+testPropertyEscapes(
+ /^\p{sc=Rohg}+$/u,
+ matchSymbols,
+ "\\p{sc=Rohg}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010CFF],
+ [0x010D28, 0x010D2F],
+ [0x010D3A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Hanifi_Rohingya}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hanifi_Rohingya}"
+);
+testPropertyEscapes(
+ /^\P{Script=Rohg}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Rohg}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hanifi_Rohingya}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hanifi_Rohingya}"
+);
+testPropertyEscapes(
+ /^\P{sc=Rohg}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Rohg}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hanunoo.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hanunoo.js
new file mode 100644
index 0000000000..6415198a4a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hanunoo.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Hanunoo`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001720, 0x001734]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Hanunoo}+$/u,
+ matchSymbols,
+ "\\p{Script=Hanunoo}"
+);
+testPropertyEscapes(
+ /^\p{Script=Hano}+$/u,
+ matchSymbols,
+ "\\p{Script=Hano}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hanunoo}+$/u,
+ matchSymbols,
+ "\\p{sc=Hanunoo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hano}+$/u,
+ matchSymbols,
+ "\\p{sc=Hano}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00171F],
+ [0x001735, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Hanunoo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hanunoo}"
+);
+testPropertyEscapes(
+ /^\P{Script=Hano}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hano}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hanunoo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hanunoo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hano}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hano}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hatran.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hatran.js
new file mode 100644
index 0000000000..daaae9b5c3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hatran.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Hatran`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x0108FB, 0x0108FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Hatran}+$/u,
+ matchSymbols,
+ "\\p{Script=Hatran}"
+);
+testPropertyEscapes(
+ /^\p{Script=Hatr}+$/u,
+ matchSymbols,
+ "\\p{Script=Hatr}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hatran}+$/u,
+ matchSymbols,
+ "\\p{sc=Hatran}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hatr}+$/u,
+ matchSymbols,
+ "\\p{sc=Hatr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0108F3
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0108DF],
+ [0x0108F6, 0x0108FA],
+ [0x010900, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Hatran}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hatran}"
+);
+testPropertyEscapes(
+ /^\P{Script=Hatr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hatr}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hatran}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hatran}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hatr}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hatr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hebrew.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hebrew.js
new file mode 100644
index 0000000000..ebec15769b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hebrew.js
@@ -0,0 +1,91 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Hebrew`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00FB3E
+ ],
+ ranges: [
+ [0x000591, 0x0005C7],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F4],
+ [0x00FB1D, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FB4F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Hebrew}+$/u,
+ matchSymbols,
+ "\\p{Script=Hebrew}"
+);
+testPropertyEscapes(
+ /^\p{Script=Hebr}+$/u,
+ matchSymbols,
+ "\\p{Script=Hebr}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hebrew}+$/u,
+ matchSymbols,
+ "\\p{sc=Hebrew}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hebr}+$/u,
+ matchSymbols,
+ "\\p{sc=Hebr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000590],
+ [0x0005C8, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F5, 0x00DBFF],
+ [0x00E000, 0x00FB1C],
+ [0x00FB50, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Hebrew}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hebrew}"
+);
+testPropertyEscapes(
+ /^\P{Script=Hebr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hebr}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hebrew}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hebrew}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hebr}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hebr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hiragana.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hiragana.js
new file mode 100644
index 0000000000..337f131995
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Hiragana.js
@@ -0,0 +1,82 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Hiragana`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01F200
+ ],
+ ranges: [
+ [0x003041, 0x003096],
+ [0x00309D, 0x00309F],
+ [0x01B001, 0x01B11E],
+ [0x01B150, 0x01B152]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Hiragana}+$/u,
+ matchSymbols,
+ "\\p{Script=Hiragana}"
+);
+testPropertyEscapes(
+ /^\p{Script=Hira}+$/u,
+ matchSymbols,
+ "\\p{Script=Hira}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hiragana}+$/u,
+ matchSymbols,
+ "\\p{sc=Hiragana}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hira}+$/u,
+ matchSymbols,
+ "\\p{sc=Hira}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x003040],
+ [0x003097, 0x00309C],
+ [0x0030A0, 0x00DBFF],
+ [0x00E000, 0x01B000],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01F1FF],
+ [0x01F201, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Hiragana}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hiragana}"
+);
+testPropertyEscapes(
+ /^\P{Script=Hira}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hira}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hiragana}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hiragana}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hira}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hira}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Imperial_Aramaic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Imperial_Aramaic.js
new file mode 100644
index 0000000000..fc75d2a7b5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Imperial_Aramaic.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Imperial_Aramaic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010840, 0x010855],
+ [0x010857, 0x01085F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Imperial_Aramaic}+$/u,
+ matchSymbols,
+ "\\p{Script=Imperial_Aramaic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Armi}+$/u,
+ matchSymbols,
+ "\\p{Script=Armi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Imperial_Aramaic}+$/u,
+ matchSymbols,
+ "\\p{sc=Imperial_Aramaic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Armi}+$/u,
+ matchSymbols,
+ "\\p{sc=Armi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x010856
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01083F],
+ [0x010860, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Imperial_Aramaic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Imperial_Aramaic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Armi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Armi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Imperial_Aramaic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Imperial_Aramaic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Armi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Armi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inherited.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inherited.js
new file mode 100644
index 0000000000..53356727d1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inherited.js
@@ -0,0 +1,149 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Inherited`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000670,
+ 0x001CED,
+ 0x001CF4,
+ 0x0101FD,
+ 0x0102E0,
+ 0x01133B
+ ],
+ ranges: [
+ [0x000300, 0x00036F],
+ [0x000485, 0x000486],
+ [0x00064B, 0x000655],
+ [0x000951, 0x000954],
+ [0x001AB0, 0x001AC0],
+ [0x001CD0, 0x001CD2],
+ [0x001CD4, 0x001CE0],
+ [0x001CE2, 0x001CE8],
+ [0x001CF8, 0x001CF9],
+ [0x001DC0, 0x001DF9],
+ [0x001DFB, 0x001DFF],
+ [0x00200C, 0x00200D],
+ [0x0020D0, 0x0020F0],
+ [0x00302A, 0x00302D],
+ [0x003099, 0x00309A],
+ [0x00FE00, 0x00FE0F],
+ [0x00FE20, 0x00FE2D],
+ [0x01D167, 0x01D169],
+ [0x01D17B, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x0E0100, 0x0E01EF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Inherited}+$/u,
+ matchSymbols,
+ "\\p{Script=Inherited}"
+);
+testPropertyEscapes(
+ /^\p{Script=Zinh}+$/u,
+ matchSymbols,
+ "\\p{Script=Zinh}"
+);
+testPropertyEscapes(
+ /^\p{Script=Qaai}+$/u,
+ matchSymbols,
+ "\\p{Script=Qaai}"
+);
+testPropertyEscapes(
+ /^\p{sc=Inherited}+$/u,
+ matchSymbols,
+ "\\p{sc=Inherited}"
+);
+testPropertyEscapes(
+ /^\p{sc=Zinh}+$/u,
+ matchSymbols,
+ "\\p{sc=Zinh}"
+);
+testPropertyEscapes(
+ /^\p{sc=Qaai}+$/u,
+ matchSymbols,
+ "\\p{sc=Qaai}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x001CD3,
+ 0x001CE1,
+ 0x001DFA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0002FF],
+ [0x000370, 0x000484],
+ [0x000487, 0x00064A],
+ [0x000656, 0x00066F],
+ [0x000671, 0x000950],
+ [0x000955, 0x001AAF],
+ [0x001AC1, 0x001CCF],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF7],
+ [0x001CFA, 0x001DBF],
+ [0x001E00, 0x00200B],
+ [0x00200E, 0x0020CF],
+ [0x0020F1, 0x003029],
+ [0x00302E, 0x003098],
+ [0x00309B, 0x00DBFF],
+ [0x00E000, 0x00FDFF],
+ [0x00FE10, 0x00FE1F],
+ [0x00FE2E, 0x0101FC],
+ [0x0101FE, 0x0102DF],
+ [0x0102E1, 0x01133A],
+ [0x01133C, 0x01D166],
+ [0x01D16A, 0x01D17A],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x0E00FF],
+ [0x0E01F0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Inherited}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Inherited}"
+);
+testPropertyEscapes(
+ /^\P{Script=Zinh}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Zinh}"
+);
+testPropertyEscapes(
+ /^\P{Script=Qaai}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Qaai}"
+);
+testPropertyEscapes(
+ /^\P{sc=Inherited}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Inherited}"
+);
+testPropertyEscapes(
+ /^\P{sc=Zinh}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Zinh}"
+);
+testPropertyEscapes(
+ /^\P{sc=Qaai}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Qaai}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Pahlavi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Pahlavi.js
new file mode 100644
index 0000000000..bba16b3a37
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Pahlavi.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Inscriptional_Pahlavi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010B60, 0x010B72],
+ [0x010B78, 0x010B7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Inscriptional_Pahlavi}+$/u,
+ matchSymbols,
+ "\\p{Script=Inscriptional_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Phli}+$/u,
+ matchSymbols,
+ "\\p{Script=Phli}"
+);
+testPropertyEscapes(
+ /^\p{sc=Inscriptional_Pahlavi}+$/u,
+ matchSymbols,
+ "\\p{sc=Inscriptional_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Phli}+$/u,
+ matchSymbols,
+ "\\p{sc=Phli}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010B5F],
+ [0x010B73, 0x010B77],
+ [0x010B80, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Inscriptional_Pahlavi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Inscriptional_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Phli}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Phli}"
+);
+testPropertyEscapes(
+ /^\P{sc=Inscriptional_Pahlavi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Inscriptional_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Phli}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Phli}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Parthian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Parthian.js
new file mode 100644
index 0000000000..c7404175ce
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Parthian.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Inscriptional_Parthian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010B40, 0x010B55],
+ [0x010B58, 0x010B5F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Inscriptional_Parthian}+$/u,
+ matchSymbols,
+ "\\p{Script=Inscriptional_Parthian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Prti}+$/u,
+ matchSymbols,
+ "\\p{Script=Prti}"
+);
+testPropertyEscapes(
+ /^\p{sc=Inscriptional_Parthian}+$/u,
+ matchSymbols,
+ "\\p{sc=Inscriptional_Parthian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Prti}+$/u,
+ matchSymbols,
+ "\\p{sc=Prti}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010B3F],
+ [0x010B56, 0x010B57],
+ [0x010B60, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Inscriptional_Parthian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Inscriptional_Parthian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Prti}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Prti}"
+);
+testPropertyEscapes(
+ /^\P{sc=Inscriptional_Parthian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Inscriptional_Parthian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Prti}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Prti}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Javanese.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Javanese.js
new file mode 100644
index 0000000000..4bd2dcdb5d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Javanese.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Javanese`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A980, 0x00A9CD],
+ [0x00A9D0, 0x00A9D9],
+ [0x00A9DE, 0x00A9DF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Javanese}+$/u,
+ matchSymbols,
+ "\\p{Script=Javanese}"
+);
+testPropertyEscapes(
+ /^\p{Script=Java}+$/u,
+ matchSymbols,
+ "\\p{Script=Java}"
+);
+testPropertyEscapes(
+ /^\p{sc=Javanese}+$/u,
+ matchSymbols,
+ "\\p{sc=Javanese}"
+);
+testPropertyEscapes(
+ /^\p{sc=Java}+$/u,
+ matchSymbols,
+ "\\p{sc=Java}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A97F],
+ [0x00A9CE, 0x00A9CF],
+ [0x00A9DA, 0x00A9DD],
+ [0x00A9E0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Javanese}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Javanese}"
+);
+testPropertyEscapes(
+ /^\P{Script=Java}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Java}"
+);
+testPropertyEscapes(
+ /^\P{sc=Javanese}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Javanese}"
+);
+testPropertyEscapes(
+ /^\P{sc=Java}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Java}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kaithi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kaithi.js
new file mode 100644
index 0000000000..5c8050afc5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kaithi.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Kaithi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0110CD
+ ],
+ ranges: [
+ [0x011080, 0x0110C1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Kaithi}+$/u,
+ matchSymbols,
+ "\\p{Script=Kaithi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Kthi}+$/u,
+ matchSymbols,
+ "\\p{Script=Kthi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Kaithi}+$/u,
+ matchSymbols,
+ "\\p{sc=Kaithi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Kthi}+$/u,
+ matchSymbols,
+ "\\p{sc=Kthi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01107F],
+ [0x0110C2, 0x0110CC],
+ [0x0110CE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Kaithi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Kaithi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Kthi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Kthi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Kaithi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Kaithi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Kthi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Kthi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kannada.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kannada.js
new file mode 100644
index 0000000000..bd43544b63
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kannada.js
@@ -0,0 +1,99 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Kannada`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000CDE
+ ],
+ ranges: [
+ [0x000C80, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CBC, 0x000CC4],
+ [0x000CC6, 0x000CC8],
+ [0x000CCA, 0x000CCD],
+ [0x000CD5, 0x000CD6],
+ [0x000CE0, 0x000CE3],
+ [0x000CE6, 0x000CEF],
+ [0x000CF1, 0x000CF2]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Kannada}+$/u,
+ matchSymbols,
+ "\\p{Script=Kannada}"
+);
+testPropertyEscapes(
+ /^\p{Script=Knda}+$/u,
+ matchSymbols,
+ "\\p{Script=Knda}"
+);
+testPropertyEscapes(
+ /^\p{sc=Kannada}+$/u,
+ matchSymbols,
+ "\\p{sc=Kannada}"
+);
+testPropertyEscapes(
+ /^\p{sc=Knda}+$/u,
+ matchSymbols,
+ "\\p{sc=Knda}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CC5,
+ 0x000CC9,
+ 0x000CDF,
+ 0x000CF0
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000C7F],
+ [0x000CBA, 0x000CBB],
+ [0x000CCE, 0x000CD4],
+ [0x000CD7, 0x000CDD],
+ [0x000CE4, 0x000CE5],
+ [0x000CF3, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Kannada}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Kannada}"
+);
+testPropertyEscapes(
+ /^\P{Script=Knda}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Knda}"
+);
+testPropertyEscapes(
+ /^\P{sc=Kannada}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Kannada}"
+);
+testPropertyEscapes(
+ /^\P{sc=Knda}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Knda}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Katakana.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Katakana.js
new file mode 100644
index 0000000000..0f6629923f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Katakana.js
@@ -0,0 +1,91 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Katakana`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01B000
+ ],
+ ranges: [
+ [0x0030A1, 0x0030FA],
+ [0x0030FD, 0x0030FF],
+ [0x0031F0, 0x0031FF],
+ [0x0032D0, 0x0032FE],
+ [0x003300, 0x003357],
+ [0x00FF66, 0x00FF6F],
+ [0x00FF71, 0x00FF9D],
+ [0x01B164, 0x01B167]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Katakana}+$/u,
+ matchSymbols,
+ "\\p{Script=Katakana}"
+);
+testPropertyEscapes(
+ /^\p{Script=Kana}+$/u,
+ matchSymbols,
+ "\\p{Script=Kana}"
+);
+testPropertyEscapes(
+ /^\p{sc=Katakana}+$/u,
+ matchSymbols,
+ "\\p{sc=Katakana}"
+);
+testPropertyEscapes(
+ /^\p{sc=Kana}+$/u,
+ matchSymbols,
+ "\\p{sc=Kana}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0032FF,
+ 0x00FF70
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0030A0],
+ [0x0030FB, 0x0030FC],
+ [0x003100, 0x0031EF],
+ [0x003200, 0x0032CF],
+ [0x003358, 0x00DBFF],
+ [0x00E000, 0x00FF65],
+ [0x00FF9E, 0x01AFFF],
+ [0x01B001, 0x01B163],
+ [0x01B168, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Katakana}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Katakana}"
+);
+testPropertyEscapes(
+ /^\P{Script=Kana}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Kana}"
+);
+testPropertyEscapes(
+ /^\P{sc=Katakana}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Katakana}"
+);
+testPropertyEscapes(
+ /^\P{sc=Kana}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Kana}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kayah_Li.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kayah_Li.js
new file mode 100644
index 0000000000..5fc78c5bf6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kayah_Li.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Kayah_Li`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00A92F
+ ],
+ ranges: [
+ [0x00A900, 0x00A92D]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Kayah_Li}+$/u,
+ matchSymbols,
+ "\\p{Script=Kayah_Li}"
+);
+testPropertyEscapes(
+ /^\p{Script=Kali}+$/u,
+ matchSymbols,
+ "\\p{Script=Kali}"
+);
+testPropertyEscapes(
+ /^\p{sc=Kayah_Li}+$/u,
+ matchSymbols,
+ "\\p{sc=Kayah_Li}"
+);
+testPropertyEscapes(
+ /^\p{sc=Kali}+$/u,
+ matchSymbols,
+ "\\p{sc=Kali}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00A92E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A8FF],
+ [0x00A930, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Kayah_Li}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Kayah_Li}"
+);
+testPropertyEscapes(
+ /^\P{Script=Kali}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Kali}"
+);
+testPropertyEscapes(
+ /^\P{sc=Kayah_Li}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Kayah_Li}"
+);
+testPropertyEscapes(
+ /^\P{sc=Kali}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Kali}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kharoshthi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kharoshthi.js
new file mode 100644
index 0000000000..217c21ac46
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Kharoshthi.js
@@ -0,0 +1,88 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Kharoshthi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010A00, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A38, 0x010A3A],
+ [0x010A3F, 0x010A48],
+ [0x010A50, 0x010A58]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Kharoshthi}+$/u,
+ matchSymbols,
+ "\\p{Script=Kharoshthi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Khar}+$/u,
+ matchSymbols,
+ "\\p{Script=Khar}"
+);
+testPropertyEscapes(
+ /^\p{sc=Kharoshthi}+$/u,
+ matchSymbols,
+ "\\p{sc=Kharoshthi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Khar}+$/u,
+ matchSymbols,
+ "\\p{sc=Khar}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x010A04,
+ 0x010A14,
+ 0x010A18
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0109FF],
+ [0x010A07, 0x010A0B],
+ [0x010A36, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A49, 0x010A4F],
+ [0x010A59, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Kharoshthi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Kharoshthi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Khar}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Khar}"
+);
+testPropertyEscapes(
+ /^\P{sc=Kharoshthi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Kharoshthi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Khar}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Khar}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khitan_Small_Script.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khitan_Small_Script.js
new file mode 100644
index 0000000000..43a77c6d18
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khitan_Small_Script.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Khitan_Small_Script`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x016FE4
+ ],
+ ranges: [
+ [0x018B00, 0x018CD5]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Khitan_Small_Script}+$/u,
+ matchSymbols,
+ "\\p{Script=Khitan_Small_Script}"
+);
+testPropertyEscapes(
+ /^\p{Script=Kits}+$/u,
+ matchSymbols,
+ "\\p{Script=Kits}"
+);
+testPropertyEscapes(
+ /^\p{sc=Khitan_Small_Script}+$/u,
+ matchSymbols,
+ "\\p{sc=Khitan_Small_Script}"
+);
+testPropertyEscapes(
+ /^\p{sc=Kits}+$/u,
+ matchSymbols,
+ "\\p{sc=Kits}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016FE3],
+ [0x016FE5, 0x018AFF],
+ [0x018CD6, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Khitan_Small_Script}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Khitan_Small_Script}"
+);
+testPropertyEscapes(
+ /^\P{Script=Kits}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Kits}"
+);
+testPropertyEscapes(
+ /^\P{sc=Khitan_Small_Script}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Khitan_Small_Script}"
+);
+testPropertyEscapes(
+ /^\P{sc=Kits}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Kits}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khmer.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khmer.js
new file mode 100644
index 0000000000..f85401bbb3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khmer.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Khmer`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001780, 0x0017DD],
+ [0x0017E0, 0x0017E9],
+ [0x0017F0, 0x0017F9],
+ [0x0019E0, 0x0019FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Khmer}+$/u,
+ matchSymbols,
+ "\\p{Script=Khmer}"
+);
+testPropertyEscapes(
+ /^\p{Script=Khmr}+$/u,
+ matchSymbols,
+ "\\p{Script=Khmr}"
+);
+testPropertyEscapes(
+ /^\p{sc=Khmer}+$/u,
+ matchSymbols,
+ "\\p{sc=Khmer}"
+);
+testPropertyEscapes(
+ /^\p{sc=Khmr}+$/u,
+ matchSymbols,
+ "\\p{sc=Khmr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00177F],
+ [0x0017DE, 0x0017DF],
+ [0x0017EA, 0x0017EF],
+ [0x0017FA, 0x0019DF],
+ [0x001A00, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Khmer}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Khmer}"
+);
+testPropertyEscapes(
+ /^\P{Script=Khmr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Khmr}"
+);
+testPropertyEscapes(
+ /^\P{sc=Khmer}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Khmer}"
+);
+testPropertyEscapes(
+ /^\P{sc=Khmr}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Khmr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khojki.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khojki.js
new file mode 100644
index 0000000000..2f91910845
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khojki.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Khojki`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011200, 0x011211],
+ [0x011213, 0x01123E]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Khojki}+$/u,
+ matchSymbols,
+ "\\p{Script=Khojki}"
+);
+testPropertyEscapes(
+ /^\p{Script=Khoj}+$/u,
+ matchSymbols,
+ "\\p{Script=Khoj}"
+);
+testPropertyEscapes(
+ /^\p{sc=Khojki}+$/u,
+ matchSymbols,
+ "\\p{sc=Khojki}"
+);
+testPropertyEscapes(
+ /^\p{sc=Khoj}+$/u,
+ matchSymbols,
+ "\\p{sc=Khoj}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011212
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0111FF],
+ [0x01123F, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Khojki}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Khojki}"
+);
+testPropertyEscapes(
+ /^\P{Script=Khoj}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Khoj}"
+);
+testPropertyEscapes(
+ /^\P{sc=Khojki}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Khojki}"
+);
+testPropertyEscapes(
+ /^\P{sc=Khoj}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Khoj}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khudawadi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khudawadi.js
new file mode 100644
index 0000000000..31e6cc89e8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Khudawadi.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Khudawadi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0112B0, 0x0112EA],
+ [0x0112F0, 0x0112F9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Khudawadi}+$/u,
+ matchSymbols,
+ "\\p{Script=Khudawadi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Sind}+$/u,
+ matchSymbols,
+ "\\p{Script=Sind}"
+);
+testPropertyEscapes(
+ /^\p{sc=Khudawadi}+$/u,
+ matchSymbols,
+ "\\p{sc=Khudawadi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sind}+$/u,
+ matchSymbols,
+ "\\p{sc=Sind}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0112AF],
+ [0x0112EB, 0x0112EF],
+ [0x0112FA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Khudawadi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Khudawadi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Sind}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sind}"
+);
+testPropertyEscapes(
+ /^\P{sc=Khudawadi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Khudawadi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sind}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sind}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lao.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lao.js
new file mode 100644
index 0000000000..7cf24eec58
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lao.js
@@ -0,0 +1,95 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Lao`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000E84,
+ 0x000EA5,
+ 0x000EC6
+ ],
+ ranges: [
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EBD],
+ [0x000EC0, 0x000EC4],
+ [0x000EC8, 0x000ECD],
+ [0x000ED0, 0x000ED9],
+ [0x000EDC, 0x000EDF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Lao}+$/u,
+ matchSymbols,
+ "\\p{Script=Lao}"
+);
+testPropertyEscapes(
+ /^\p{Script=Laoo}+$/u,
+ matchSymbols,
+ "\\p{Script=Laoo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lao}+$/u,
+ matchSymbols,
+ "\\p{sc=Lao}"
+);
+testPropertyEscapes(
+ /^\p{sc=Laoo}+$/u,
+ matchSymbols,
+ "\\p{sc=Laoo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EC5,
+ 0x000EC7
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000E80],
+ [0x000EBE, 0x000EBF],
+ [0x000ECE, 0x000ECF],
+ [0x000EDA, 0x000EDB],
+ [0x000EE0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Lao}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lao}"
+);
+testPropertyEscapes(
+ /^\P{Script=Laoo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Laoo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lao}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lao}"
+);
+testPropertyEscapes(
+ /^\P{sc=Laoo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Laoo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Latin.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Latin.js
new file mode 100644
index 0000000000..6a6d623875
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Latin.js
@@ -0,0 +1,137 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Latin`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000BA,
+ 0x002071,
+ 0x00207F,
+ 0x002132,
+ 0x00214E
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002B8],
+ [0x0002E0, 0x0002E4],
+ [0x001D00, 0x001D25],
+ [0x001D2C, 0x001D5C],
+ [0x001D62, 0x001D65],
+ [0x001D6B, 0x001D77],
+ [0x001D79, 0x001DBE],
+ [0x001E00, 0x001EFF],
+ [0x002090, 0x00209C],
+ [0x00212A, 0x00212B],
+ [0x002160, 0x002188],
+ [0x002C60, 0x002C7F],
+ [0x00A722, 0x00A787],
+ [0x00A78B, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A7FF],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB5C, 0x00AB64],
+ [0x00AB66, 0x00AB69],
+ [0x00FB00, 0x00FB06],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Latin}+$/u,
+ matchSymbols,
+ "\\p{Script=Latin}"
+);
+testPropertyEscapes(
+ /^\p{Script=Latn}+$/u,
+ matchSymbols,
+ "\\p{Script=Latn}"
+);
+testPropertyEscapes(
+ /^\p{sc=Latin}+$/u,
+ matchSymbols,
+ "\\p{sc=Latin}"
+);
+testPropertyEscapes(
+ /^\p{sc=Latn}+$/u,
+ matchSymbols,
+ "\\p{sc=Latn}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x001D78,
+ 0x00AB5B,
+ 0x00AB65
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0002B9, 0x0002DF],
+ [0x0002E5, 0x001CFF],
+ [0x001D26, 0x001D2B],
+ [0x001D5D, 0x001D61],
+ [0x001D66, 0x001D6A],
+ [0x001DBF, 0x001DFF],
+ [0x001F00, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x002129],
+ [0x00212C, 0x002131],
+ [0x002133, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002189, 0x002C5F],
+ [0x002C80, 0x00A721],
+ [0x00A788, 0x00A78A],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A800, 0x00AB2F],
+ [0x00AB6A, 0x00DBFF],
+ [0x00E000, 0x00FAFF],
+ [0x00FB07, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Latin}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Latin}"
+);
+testPropertyEscapes(
+ /^\P{Script=Latn}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Latn}"
+);
+testPropertyEscapes(
+ /^\P{sc=Latin}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Latin}"
+);
+testPropertyEscapes(
+ /^\P{sc=Latn}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Latn}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lepcha.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lepcha.js
new file mode 100644
index 0000000000..cc6469149b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lepcha.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Lepcha`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001C00, 0x001C37],
+ [0x001C3B, 0x001C49],
+ [0x001C4D, 0x001C4F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Lepcha}+$/u,
+ matchSymbols,
+ "\\p{Script=Lepcha}"
+);
+testPropertyEscapes(
+ /^\p{Script=Lepc}+$/u,
+ matchSymbols,
+ "\\p{Script=Lepc}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lepcha}+$/u,
+ matchSymbols,
+ "\\p{sc=Lepcha}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lepc}+$/u,
+ matchSymbols,
+ "\\p{sc=Lepc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001BFF],
+ [0x001C38, 0x001C3A],
+ [0x001C4A, 0x001C4C],
+ [0x001C50, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Lepcha}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lepcha}"
+);
+testPropertyEscapes(
+ /^\P{Script=Lepc}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lepc}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lepcha}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lepcha}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lepc}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lepc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Limbu.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Limbu.js
new file mode 100644
index 0000000000..549faf01d7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Limbu.js
@@ -0,0 +1,83 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Limbu`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001940
+ ],
+ ranges: [
+ [0x001900, 0x00191E],
+ [0x001920, 0x00192B],
+ [0x001930, 0x00193B],
+ [0x001944, 0x00194F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Limbu}+$/u,
+ matchSymbols,
+ "\\p{Script=Limbu}"
+);
+testPropertyEscapes(
+ /^\p{Script=Limb}+$/u,
+ matchSymbols,
+ "\\p{Script=Limb}"
+);
+testPropertyEscapes(
+ /^\p{sc=Limbu}+$/u,
+ matchSymbols,
+ "\\p{sc=Limbu}"
+);
+testPropertyEscapes(
+ /^\p{sc=Limb}+$/u,
+ matchSymbols,
+ "\\p{sc=Limb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00191F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0018FF],
+ [0x00192C, 0x00192F],
+ [0x00193C, 0x00193F],
+ [0x001941, 0x001943],
+ [0x001950, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Limbu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Limbu}"
+);
+testPropertyEscapes(
+ /^\P{Script=Limb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Limb}"
+);
+testPropertyEscapes(
+ /^\P{sc=Limbu}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Limbu}"
+);
+testPropertyEscapes(
+ /^\P{sc=Limb}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Limb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Linear_A.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Linear_A.js
new file mode 100644
index 0000000000..5b94c0337d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Linear_A.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Linear_A`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Linear_A}+$/u,
+ matchSymbols,
+ "\\p{Script=Linear_A}"
+);
+testPropertyEscapes(
+ /^\p{Script=Lina}+$/u,
+ matchSymbols,
+ "\\p{Script=Lina}"
+);
+testPropertyEscapes(
+ /^\p{sc=Linear_A}+$/u,
+ matchSymbols,
+ "\\p{sc=Linear_A}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lina}+$/u,
+ matchSymbols,
+ "\\p{sc=Lina}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Linear_A}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Linear_A}"
+);
+testPropertyEscapes(
+ /^\P{Script=Lina}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lina}"
+);
+testPropertyEscapes(
+ /^\P{sc=Linear_A}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Linear_A}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lina}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lina}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Linear_B.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Linear_B.js
new file mode 100644
index 0000000000..0573565355
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Linear_B.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Linear_B`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Linear_B}+$/u,
+ matchSymbols,
+ "\\p{Script=Linear_B}"
+);
+testPropertyEscapes(
+ /^\p{Script=Linb}+$/u,
+ matchSymbols,
+ "\\p{Script=Linb}"
+);
+testPropertyEscapes(
+ /^\p{sc=Linear_B}+$/u,
+ matchSymbols,
+ "\\p{sc=Linear_B}"
+);
+testPropertyEscapes(
+ /^\p{sc=Linb}+$/u,
+ matchSymbols,
+ "\\p{sc=Linb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Linear_B}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Linear_B}"
+);
+testPropertyEscapes(
+ /^\P{Script=Linb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Linb}"
+);
+testPropertyEscapes(
+ /^\P{sc=Linear_B}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Linear_B}"
+);
+testPropertyEscapes(
+ /^\P{sc=Linb}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Linb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lisu.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lisu.js
new file mode 100644
index 0000000000..9a7f83bcd0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lisu.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Lisu`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x011FB0
+ ],
+ ranges: [
+ [0x00A4D0, 0x00A4FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Lisu}+$/u,
+ matchSymbols,
+ "\\p{Script=Lisu}"
+);
+testPropertyEscapes(
+ /^\p{Script=Lisu}+$/u,
+ matchSymbols,
+ "\\p{Script=Lisu}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lisu}+$/u,
+ matchSymbols,
+ "\\p{sc=Lisu}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lisu}+$/u,
+ matchSymbols,
+ "\\p{sc=Lisu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A4CF],
+ [0x00A500, 0x00DBFF],
+ [0x00E000, 0x011FAF],
+ [0x011FB1, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Lisu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lisu}"
+);
+testPropertyEscapes(
+ /^\P{Script=Lisu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lisu}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lisu}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lisu}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lisu}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lisu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js
new file mode 100644
index 0000000000..bc29fe64cd
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Lycian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010280, 0x01029C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Lycian}+$/u,
+ matchSymbols,
+ "\\p{Script=Lycian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Lyci}+$/u,
+ matchSymbols,
+ "\\p{Script=Lyci}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lycian}+$/u,
+ matchSymbols,
+ "\\p{sc=Lycian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lyci}+$/u,
+ matchSymbols,
+ "\\p{sc=Lyci}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01027F],
+ [0x01029D, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Lycian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lycian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Lyci}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lyci}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lycian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lycian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lyci}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lyci}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lydian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lydian.js
new file mode 100644
index 0000000000..14eee88ba2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Lydian.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Lydian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01093F
+ ],
+ ranges: [
+ [0x010920, 0x010939]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Lydian}+$/u,
+ matchSymbols,
+ "\\p{Script=Lydian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Lydi}+$/u,
+ matchSymbols,
+ "\\p{Script=Lydi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lydian}+$/u,
+ matchSymbols,
+ "\\p{sc=Lydian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lydi}+$/u,
+ matchSymbols,
+ "\\p{sc=Lydi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01091F],
+ [0x01093A, 0x01093E],
+ [0x010940, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Lydian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lydian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Lydi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lydi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lydian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lydian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lydi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lydi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mahajani.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mahajani.js
new file mode 100644
index 0000000000..4769a5a0d6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mahajani.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Mahajani`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011150, 0x011176]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Mahajani}+$/u,
+ matchSymbols,
+ "\\p{Script=Mahajani}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mahj}+$/u,
+ matchSymbols,
+ "\\p{Script=Mahj}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mahajani}+$/u,
+ matchSymbols,
+ "\\p{sc=Mahajani}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mahj}+$/u,
+ matchSymbols,
+ "\\p{sc=Mahj}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01114F],
+ [0x011177, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Mahajani}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mahajani}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mahj}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mahj}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mahajani}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mahajani}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mahj}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mahj}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Makasar.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Makasar.js
new file mode 100644
index 0000000000..cf815b4fc0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Makasar.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Makasar`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011EE0, 0x011EF8]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Makasar}+$/u,
+ matchSymbols,
+ "\\p{Script=Makasar}"
+);
+testPropertyEscapes(
+ /^\p{Script=Maka}+$/u,
+ matchSymbols,
+ "\\p{Script=Maka}"
+);
+testPropertyEscapes(
+ /^\p{sc=Makasar}+$/u,
+ matchSymbols,
+ "\\p{sc=Makasar}"
+);
+testPropertyEscapes(
+ /^\p{sc=Maka}+$/u,
+ matchSymbols,
+ "\\p{sc=Maka}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011EDF],
+ [0x011EF9, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Makasar}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Makasar}"
+);
+testPropertyEscapes(
+ /^\P{Script=Maka}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Maka}"
+);
+testPropertyEscapes(
+ /^\P{sc=Makasar}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Makasar}"
+);
+testPropertyEscapes(
+ /^\P{sc=Maka}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Maka}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Malayalam.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Malayalam.js
new file mode 100644
index 0000000000..4ca958c7ee
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Malayalam.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Malayalam`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000D00, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D44],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4F],
+ [0x000D54, 0x000D63],
+ [0x000D66, 0x000D7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Malayalam}+$/u,
+ matchSymbols,
+ "\\p{Script=Malayalam}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mlym}+$/u,
+ matchSymbols,
+ "\\p{Script=Mlym}"
+);
+testPropertyEscapes(
+ /^\p{sc=Malayalam}+$/u,
+ matchSymbols,
+ "\\p{sc=Malayalam}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mlym}+$/u,
+ matchSymbols,
+ "\\p{sc=Mlym}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000D0D,
+ 0x000D11,
+ 0x000D45,
+ 0x000D49
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000CFF],
+ [0x000D50, 0x000D53],
+ [0x000D64, 0x000D65],
+ [0x000D80, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Malayalam}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Malayalam}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mlym}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mlym}"
+);
+testPropertyEscapes(
+ /^\P{sc=Malayalam}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Malayalam}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mlym}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mlym}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mandaic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mandaic.js
new file mode 100644
index 0000000000..fdaf88743d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mandaic.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Mandaic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00085E
+ ],
+ ranges: [
+ [0x000840, 0x00085B]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Mandaic}+$/u,
+ matchSymbols,
+ "\\p{Script=Mandaic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mand}+$/u,
+ matchSymbols,
+ "\\p{Script=Mand}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mandaic}+$/u,
+ matchSymbols,
+ "\\p{sc=Mandaic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mand}+$/u,
+ matchSymbols,
+ "\\p{sc=Mand}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00083F],
+ [0x00085C, 0x00085D],
+ [0x00085F, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Mandaic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mandaic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mand}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mand}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mandaic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mandaic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mand}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mand}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Manichaean.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Manichaean.js
new file mode 100644
index 0000000000..bfb9628066
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Manichaean.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Manichaean`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010AC0, 0x010AE6],
+ [0x010AEB, 0x010AF6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Manichaean}+$/u,
+ matchSymbols,
+ "\\p{Script=Manichaean}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mani}+$/u,
+ matchSymbols,
+ "\\p{Script=Mani}"
+);
+testPropertyEscapes(
+ /^\p{sc=Manichaean}+$/u,
+ matchSymbols,
+ "\\p{sc=Manichaean}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mani}+$/u,
+ matchSymbols,
+ "\\p{sc=Mani}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010ABF],
+ [0x010AE7, 0x010AEA],
+ [0x010AF7, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Manichaean}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Manichaean}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mani}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mani}"
+);
+testPropertyEscapes(
+ /^\P{sc=Manichaean}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Manichaean}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mani}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mani}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Marchen.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Marchen.js
new file mode 100644
index 0000000000..3a29691dd2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Marchen.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Marchen`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011C70, 0x011C8F],
+ [0x011C92, 0x011CA7],
+ [0x011CA9, 0x011CB6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Marchen}+$/u,
+ matchSymbols,
+ "\\p{Script=Marchen}"
+);
+testPropertyEscapes(
+ /^\p{Script=Marc}+$/u,
+ matchSymbols,
+ "\\p{Script=Marc}"
+);
+testPropertyEscapes(
+ /^\p{sc=Marchen}+$/u,
+ matchSymbols,
+ "\\p{sc=Marchen}"
+);
+testPropertyEscapes(
+ /^\p{sc=Marc}+$/u,
+ matchSymbols,
+ "\\p{sc=Marc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011CA8
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011C6F],
+ [0x011C90, 0x011C91],
+ [0x011CB7, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Marchen}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Marchen}"
+);
+testPropertyEscapes(
+ /^\P{Script=Marc}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Marc}"
+);
+testPropertyEscapes(
+ /^\P{sc=Marchen}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Marchen}"
+);
+testPropertyEscapes(
+ /^\P{sc=Marc}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Marc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Masaram_Gondi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Masaram_Gondi.js
new file mode 100644
index 0000000000..efec1bb869
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Masaram_Gondi.js
@@ -0,0 +1,87 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Masaram_Gondi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x011D3A
+ ],
+ ranges: [
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D47],
+ [0x011D50, 0x011D59]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Masaram_Gondi}+$/u,
+ matchSymbols,
+ "\\p{Script=Masaram_Gondi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Gonm}+$/u,
+ matchSymbols,
+ "\\p{Script=Gonm}"
+);
+testPropertyEscapes(
+ /^\p{sc=Masaram_Gondi}+$/u,
+ matchSymbols,
+ "\\p{sc=Masaram_Gondi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Gonm}+$/u,
+ matchSymbols,
+ "\\p{sc=Gonm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011D07,
+ 0x011D0A,
+ 0x011D3B,
+ 0x011D3E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011CFF],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D4F],
+ [0x011D5A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Masaram_Gondi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Masaram_Gondi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Gonm}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Gonm}"
+);
+testPropertyEscapes(
+ /^\P{sc=Masaram_Gondi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Masaram_Gondi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Gonm}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Gonm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Medefaidrin.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Medefaidrin.js
new file mode 100644
index 0000000000..90913c0c4f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Medefaidrin.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Medefaidrin`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x016E40, 0x016E9A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Medefaidrin}+$/u,
+ matchSymbols,
+ "\\p{Script=Medefaidrin}"
+);
+testPropertyEscapes(
+ /^\p{Script=Medf}+$/u,
+ matchSymbols,
+ "\\p{Script=Medf}"
+);
+testPropertyEscapes(
+ /^\p{sc=Medefaidrin}+$/u,
+ matchSymbols,
+ "\\p{sc=Medefaidrin}"
+);
+testPropertyEscapes(
+ /^\p{sc=Medf}+$/u,
+ matchSymbols,
+ "\\p{sc=Medf}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016E3F],
+ [0x016E9B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Medefaidrin}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Medefaidrin}"
+);
+testPropertyEscapes(
+ /^\P{Script=Medf}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Medf}"
+);
+testPropertyEscapes(
+ /^\P{sc=Medefaidrin}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Medefaidrin}"
+);
+testPropertyEscapes(
+ /^\P{sc=Medf}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Medf}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meetei_Mayek.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meetei_Mayek.js
new file mode 100644
index 0000000000..3995f989ec
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meetei_Mayek.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Meetei_Mayek`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00AAE0, 0x00AAF6],
+ [0x00ABC0, 0x00ABED],
+ [0x00ABF0, 0x00ABF9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Meetei_Mayek}+$/u,
+ matchSymbols,
+ "\\p{Script=Meetei_Mayek}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mtei}+$/u,
+ matchSymbols,
+ "\\p{Script=Mtei}"
+);
+testPropertyEscapes(
+ /^\p{sc=Meetei_Mayek}+$/u,
+ matchSymbols,
+ "\\p{sc=Meetei_Mayek}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mtei}+$/u,
+ matchSymbols,
+ "\\p{sc=Mtei}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00AADF],
+ [0x00AAF7, 0x00ABBF],
+ [0x00ABEE, 0x00ABEF],
+ [0x00ABFA, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Meetei_Mayek}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Meetei_Mayek}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mtei}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mtei}"
+);
+testPropertyEscapes(
+ /^\P{sc=Meetei_Mayek}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Meetei_Mayek}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mtei}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mtei}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mende_Kikakui.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mende_Kikakui.js
new file mode 100644
index 0000000000..bcf6ce89f8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mende_Kikakui.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Mende_Kikakui`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01E800, 0x01E8C4],
+ [0x01E8C7, 0x01E8D6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Mende_Kikakui}+$/u,
+ matchSymbols,
+ "\\p{Script=Mende_Kikakui}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mend}+$/u,
+ matchSymbols,
+ "\\p{Script=Mend}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mende_Kikakui}+$/u,
+ matchSymbols,
+ "\\p{sc=Mende_Kikakui}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mend}+$/u,
+ matchSymbols,
+ "\\p{sc=Mend}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01E7FF],
+ [0x01E8C5, 0x01E8C6],
+ [0x01E8D7, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Mende_Kikakui}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mende_Kikakui}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mend}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mend}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mende_Kikakui}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mende_Kikakui}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mend}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mend}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Cursive.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Cursive.js
new file mode 100644
index 0000000000..356c68fcaa
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Cursive.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Meroitic_Cursive`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0109A0, 0x0109B7],
+ [0x0109BC, 0x0109CF],
+ [0x0109D2, 0x0109FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Meroitic_Cursive}+$/u,
+ matchSymbols,
+ "\\p{Script=Meroitic_Cursive}"
+);
+testPropertyEscapes(
+ /^\p{Script=Merc}+$/u,
+ matchSymbols,
+ "\\p{Script=Merc}"
+);
+testPropertyEscapes(
+ /^\p{sc=Meroitic_Cursive}+$/u,
+ matchSymbols,
+ "\\p{sc=Meroitic_Cursive}"
+);
+testPropertyEscapes(
+ /^\p{sc=Merc}+$/u,
+ matchSymbols,
+ "\\p{sc=Merc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01099F],
+ [0x0109B8, 0x0109BB],
+ [0x0109D0, 0x0109D1],
+ [0x010A00, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Meroitic_Cursive}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Meroitic_Cursive}"
+);
+testPropertyEscapes(
+ /^\P{Script=Merc}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Merc}"
+);
+testPropertyEscapes(
+ /^\P{sc=Meroitic_Cursive}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Meroitic_Cursive}"
+);
+testPropertyEscapes(
+ /^\P{sc=Merc}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Merc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Hieroglyphs.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Hieroglyphs.js
new file mode 100644
index 0000000000..3457b5f777
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Hieroglyphs.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Meroitic_Hieroglyphs`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010980, 0x01099F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Meroitic_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{Script=Meroitic_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mero}+$/u,
+ matchSymbols,
+ "\\p{Script=Mero}"
+);
+testPropertyEscapes(
+ /^\p{sc=Meroitic_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{sc=Meroitic_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mero}+$/u,
+ matchSymbols,
+ "\\p{sc=Mero}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01097F],
+ [0x0109A0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Meroitic_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Meroitic_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mero}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mero}"
+);
+testPropertyEscapes(
+ /^\P{sc=Meroitic_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Meroitic_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mero}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mero}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Miao.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Miao.js
new file mode 100644
index 0000000000..b40cd9bfee
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Miao.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Miao`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x016F00, 0x016F4A],
+ [0x016F4F, 0x016F87],
+ [0x016F8F, 0x016F9F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Miao}+$/u,
+ matchSymbols,
+ "\\p{Script=Miao}"
+);
+testPropertyEscapes(
+ /^\p{Script=Plrd}+$/u,
+ matchSymbols,
+ "\\p{Script=Plrd}"
+);
+testPropertyEscapes(
+ /^\p{sc=Miao}+$/u,
+ matchSymbols,
+ "\\p{sc=Miao}"
+);
+testPropertyEscapes(
+ /^\p{sc=Plrd}+$/u,
+ matchSymbols,
+ "\\p{sc=Plrd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016EFF],
+ [0x016F4B, 0x016F4E],
+ [0x016F88, 0x016F8E],
+ [0x016FA0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Miao}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Miao}"
+);
+testPropertyEscapes(
+ /^\P{Script=Plrd}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Plrd}"
+);
+testPropertyEscapes(
+ /^\P{sc=Miao}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Miao}"
+);
+testPropertyEscapes(
+ /^\P{sc=Plrd}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Plrd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Modi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Modi.js
new file mode 100644
index 0000000000..7fec34b335
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Modi.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Modi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011600, 0x011644],
+ [0x011650, 0x011659]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Modi}+$/u,
+ matchSymbols,
+ "\\p{Script=Modi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Modi}+$/u,
+ matchSymbols,
+ "\\p{Script=Modi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Modi}+$/u,
+ matchSymbols,
+ "\\p{sc=Modi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Modi}+$/u,
+ matchSymbols,
+ "\\p{sc=Modi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0115FF],
+ [0x011645, 0x01164F],
+ [0x01165A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Modi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Modi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Modi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Modi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Modi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Modi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Modi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Modi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mongolian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mongolian.js
new file mode 100644
index 0000000000..8b1c64673a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mongolian.js
@@ -0,0 +1,87 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Mongolian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001804
+ ],
+ ranges: [
+ [0x001800, 0x001801],
+ [0x001806, 0x00180E],
+ [0x001810, 0x001819],
+ [0x001820, 0x001878],
+ [0x001880, 0x0018AA],
+ [0x011660, 0x01166C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Mongolian}+$/u,
+ matchSymbols,
+ "\\p{Script=Mongolian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mong}+$/u,
+ matchSymbols,
+ "\\p{Script=Mong}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mongolian}+$/u,
+ matchSymbols,
+ "\\p{sc=Mongolian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mong}+$/u,
+ matchSymbols,
+ "\\p{sc=Mong}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x001805,
+ 0x00180F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0017FF],
+ [0x001802, 0x001803],
+ [0x00181A, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x0018AB, 0x00DBFF],
+ [0x00E000, 0x01165F],
+ [0x01166D, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Mongolian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mongolian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mong}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mong}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mongolian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mongolian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mong}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mong}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mro.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mro.js
new file mode 100644
index 0000000000..53d1858deb
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Mro.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Mro`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x016A40, 0x016A5E],
+ [0x016A60, 0x016A69],
+ [0x016A6E, 0x016A6F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Mro}+$/u,
+ matchSymbols,
+ "\\p{Script=Mro}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mroo}+$/u,
+ matchSymbols,
+ "\\p{Script=Mroo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mro}+$/u,
+ matchSymbols,
+ "\\p{sc=Mro}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mroo}+$/u,
+ matchSymbols,
+ "\\p{sc=Mroo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x016A5F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016A3F],
+ [0x016A6A, 0x016A6D],
+ [0x016A70, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Mro}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mro}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mroo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mroo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mro}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mro}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mroo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mroo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Multani.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Multani.js
new file mode 100644
index 0000000000..8e1ff89ca1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Multani.js
@@ -0,0 +1,83 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Multani`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x011288
+ ],
+ ranges: [
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Multani}+$/u,
+ matchSymbols,
+ "\\p{Script=Multani}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mult}+$/u,
+ matchSymbols,
+ "\\p{Script=Mult}"
+);
+testPropertyEscapes(
+ /^\p{sc=Multani}+$/u,
+ matchSymbols,
+ "\\p{sc=Multani}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mult}+$/u,
+ matchSymbols,
+ "\\p{sc=Mult}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01127F],
+ [0x0112AA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Multani}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Multani}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mult}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mult}"
+);
+testPropertyEscapes(
+ /^\P{sc=Multani}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Multani}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mult}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mult}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Myanmar.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Myanmar.js
new file mode 100644
index 0000000000..d830acfe11
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Myanmar.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Myanmar`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001000, 0x00109F],
+ [0x00A9E0, 0x00A9FE],
+ [0x00AA60, 0x00AA7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Myanmar}+$/u,
+ matchSymbols,
+ "\\p{Script=Myanmar}"
+);
+testPropertyEscapes(
+ /^\p{Script=Mymr}+$/u,
+ matchSymbols,
+ "\\p{Script=Mymr}"
+);
+testPropertyEscapes(
+ /^\p{sc=Myanmar}+$/u,
+ matchSymbols,
+ "\\p{sc=Myanmar}"
+);
+testPropertyEscapes(
+ /^\p{sc=Mymr}+$/u,
+ matchSymbols,
+ "\\p{sc=Mymr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000FFF],
+ [0x0010A0, 0x00A9DF],
+ [0x00A9FF, 0x00AA5F],
+ [0x00AA80, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Myanmar}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Myanmar}"
+);
+testPropertyEscapes(
+ /^\P{Script=Mymr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Mymr}"
+);
+testPropertyEscapes(
+ /^\P{sc=Myanmar}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Myanmar}"
+);
+testPropertyEscapes(
+ /^\P{sc=Mymr}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Mymr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nabataean.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nabataean.js
new file mode 100644
index 0000000000..306d98dd21
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nabataean.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Nabataean`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010880, 0x01089E],
+ [0x0108A7, 0x0108AF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Nabataean}+$/u,
+ matchSymbols,
+ "\\p{Script=Nabataean}"
+);
+testPropertyEscapes(
+ /^\p{Script=Nbat}+$/u,
+ matchSymbols,
+ "\\p{Script=Nbat}"
+);
+testPropertyEscapes(
+ /^\p{sc=Nabataean}+$/u,
+ matchSymbols,
+ "\\p{sc=Nabataean}"
+);
+testPropertyEscapes(
+ /^\p{sc=Nbat}+$/u,
+ matchSymbols,
+ "\\p{sc=Nbat}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01087F],
+ [0x01089F, 0x0108A6],
+ [0x0108B0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Nabataean}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Nabataean}"
+);
+testPropertyEscapes(
+ /^\P{Script=Nbat}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Nbat}"
+);
+testPropertyEscapes(
+ /^\P{sc=Nabataean}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Nabataean}"
+);
+testPropertyEscapes(
+ /^\P{sc=Nbat}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Nbat}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nandinagari.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nandinagari.js
new file mode 100644
index 0000000000..b79486b9af
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nandinagari.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Nandinagari`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D7],
+ [0x0119DA, 0x0119E4]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Nandinagari}+$/u,
+ matchSymbols,
+ "\\p{Script=Nandinagari}"
+);
+testPropertyEscapes(
+ /^\p{Script=Nand}+$/u,
+ matchSymbols,
+ "\\p{Script=Nand}"
+);
+testPropertyEscapes(
+ /^\p{sc=Nandinagari}+$/u,
+ matchSymbols,
+ "\\p{sc=Nandinagari}"
+);
+testPropertyEscapes(
+ /^\p{sc=Nand}+$/u,
+ matchSymbols,
+ "\\p{sc=Nand}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D8, 0x0119D9],
+ [0x0119E5, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Nandinagari}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Nandinagari}"
+);
+testPropertyEscapes(
+ /^\P{Script=Nand}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Nand}"
+);
+testPropertyEscapes(
+ /^\P{sc=Nandinagari}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Nandinagari}"
+);
+testPropertyEscapes(
+ /^\P{sc=Nand}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Nand}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_New_Tai_Lue.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_New_Tai_Lue.js
new file mode 100644
index 0000000000..3d4c8caaa8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_New_Tai_Lue.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=New_Tai_Lue`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x0019D0, 0x0019DA],
+ [0x0019DE, 0x0019DF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=New_Tai_Lue}+$/u,
+ matchSymbols,
+ "\\p{Script=New_Tai_Lue}"
+);
+testPropertyEscapes(
+ /^\p{Script=Talu}+$/u,
+ matchSymbols,
+ "\\p{Script=Talu}"
+);
+testPropertyEscapes(
+ /^\p{sc=New_Tai_Lue}+$/u,
+ matchSymbols,
+ "\\p{sc=New_Tai_Lue}"
+);
+testPropertyEscapes(
+ /^\p{sc=Talu}+$/u,
+ matchSymbols,
+ "\\p{sc=Talu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019CF],
+ [0x0019DB, 0x0019DD],
+ [0x0019E0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=New_Tai_Lue}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=New_Tai_Lue}"
+);
+testPropertyEscapes(
+ /^\P{Script=Talu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Talu}"
+);
+testPropertyEscapes(
+ /^\P{sc=New_Tai_Lue}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=New_Tai_Lue}"
+);
+testPropertyEscapes(
+ /^\P{sc=Talu}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Talu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Newa.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Newa.js
new file mode 100644
index 0000000000..2e1cd46fab
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Newa.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Newa`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011400, 0x01145B],
+ [0x01145D, 0x011461]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Newa}+$/u,
+ matchSymbols,
+ "\\p{Script=Newa}"
+);
+testPropertyEscapes(
+ /^\p{Script=Newa}+$/u,
+ matchSymbols,
+ "\\p{Script=Newa}"
+);
+testPropertyEscapes(
+ /^\p{sc=Newa}+$/u,
+ matchSymbols,
+ "\\p{sc=Newa}"
+);
+testPropertyEscapes(
+ /^\p{sc=Newa}+$/u,
+ matchSymbols,
+ "\\p{sc=Newa}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01145C
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0113FF],
+ [0x011462, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Newa}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Newa}"
+);
+testPropertyEscapes(
+ /^\P{Script=Newa}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Newa}"
+);
+testPropertyEscapes(
+ /^\P{sc=Newa}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Newa}"
+);
+testPropertyEscapes(
+ /^\P{sc=Newa}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Newa}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nko.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nko.js
new file mode 100644
index 0000000000..d6a3868790
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nko.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Nko`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0007C0, 0x0007FA],
+ [0x0007FD, 0x0007FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Nko}+$/u,
+ matchSymbols,
+ "\\p{Script=Nko}"
+);
+testPropertyEscapes(
+ /^\p{Script=Nkoo}+$/u,
+ matchSymbols,
+ "\\p{Script=Nkoo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Nko}+$/u,
+ matchSymbols,
+ "\\p{sc=Nko}"
+);
+testPropertyEscapes(
+ /^\p{sc=Nkoo}+$/u,
+ matchSymbols,
+ "\\p{sc=Nkoo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0007BF],
+ [0x0007FB, 0x0007FC],
+ [0x000800, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Nko}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Nko}"
+);
+testPropertyEscapes(
+ /^\P{Script=Nkoo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Nkoo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Nko}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Nko}"
+);
+testPropertyEscapes(
+ /^\P{sc=Nkoo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Nkoo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nushu.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nushu.js
new file mode 100644
index 0000000000..201ec12ad3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nushu.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Nushu`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x016FE1
+ ],
+ ranges: [
+ [0x01B170, 0x01B2FB]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Nushu}+$/u,
+ matchSymbols,
+ "\\p{Script=Nushu}"
+);
+testPropertyEscapes(
+ /^\p{Script=Nshu}+$/u,
+ matchSymbols,
+ "\\p{Script=Nshu}"
+);
+testPropertyEscapes(
+ /^\p{sc=Nushu}+$/u,
+ matchSymbols,
+ "\\p{sc=Nushu}"
+);
+testPropertyEscapes(
+ /^\p{sc=Nshu}+$/u,
+ matchSymbols,
+ "\\p{sc=Nshu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016FE0],
+ [0x016FE2, 0x01B16F],
+ [0x01B2FC, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Nushu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Nushu}"
+);
+testPropertyEscapes(
+ /^\P{Script=Nshu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Nshu}"
+);
+testPropertyEscapes(
+ /^\P{sc=Nushu}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Nushu}"
+);
+testPropertyEscapes(
+ /^\P{sc=Nshu}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Nshu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nyiakeng_Puachue_Hmong.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nyiakeng_Puachue_Hmong.js
new file mode 100644
index 0000000000..9ad6e576f1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Nyiakeng_Puachue_Hmong.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Nyiakeng_Puachue_Hmong`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01E100, 0x01E12C],
+ [0x01E130, 0x01E13D],
+ [0x01E140, 0x01E149],
+ [0x01E14E, 0x01E14F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Nyiakeng_Puachue_Hmong}+$/u,
+ matchSymbols,
+ "\\p{Script=Nyiakeng_Puachue_Hmong}"
+);
+testPropertyEscapes(
+ /^\p{Script=Hmnp}+$/u,
+ matchSymbols,
+ "\\p{Script=Hmnp}"
+);
+testPropertyEscapes(
+ /^\p{sc=Nyiakeng_Puachue_Hmong}+$/u,
+ matchSymbols,
+ "\\p{sc=Nyiakeng_Puachue_Hmong}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hmnp}+$/u,
+ matchSymbols,
+ "\\p{sc=Hmnp}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01E0FF],
+ [0x01E12D, 0x01E12F],
+ [0x01E13E, 0x01E13F],
+ [0x01E14A, 0x01E14D],
+ [0x01E150, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Nyiakeng_Puachue_Hmong}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Nyiakeng_Puachue_Hmong}"
+);
+testPropertyEscapes(
+ /^\P{Script=Hmnp}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hmnp}"
+);
+testPropertyEscapes(
+ /^\P{sc=Nyiakeng_Puachue_Hmong}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Nyiakeng_Puachue_Hmong}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hmnp}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hmnp}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ogham.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ogham.js
new file mode 100644
index 0000000000..934e64e044
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ogham.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Ogham`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001680, 0x00169C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Ogham}+$/u,
+ matchSymbols,
+ "\\p{Script=Ogham}"
+);
+testPropertyEscapes(
+ /^\p{Script=Ogam}+$/u,
+ matchSymbols,
+ "\\p{Script=Ogam}"
+);
+testPropertyEscapes(
+ /^\p{sc=Ogham}+$/u,
+ matchSymbols,
+ "\\p{sc=Ogham}"
+);
+testPropertyEscapes(
+ /^\p{sc=Ogam}+$/u,
+ matchSymbols,
+ "\\p{sc=Ogam}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00167F],
+ [0x00169D, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Ogham}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Ogham}"
+);
+testPropertyEscapes(
+ /^\P{Script=Ogam}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Ogam}"
+);
+testPropertyEscapes(
+ /^\P{sc=Ogham}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Ogham}"
+);
+testPropertyEscapes(
+ /^\P{sc=Ogam}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Ogam}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ol_Chiki.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ol_Chiki.js
new file mode 100644
index 0000000000..c44554ef08
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ol_Chiki.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Ol_Chiki`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001C50, 0x001C7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Ol_Chiki}+$/u,
+ matchSymbols,
+ "\\p{Script=Ol_Chiki}"
+);
+testPropertyEscapes(
+ /^\p{Script=Olck}+$/u,
+ matchSymbols,
+ "\\p{Script=Olck}"
+);
+testPropertyEscapes(
+ /^\p{sc=Ol_Chiki}+$/u,
+ matchSymbols,
+ "\\p{sc=Ol_Chiki}"
+);
+testPropertyEscapes(
+ /^\p{sc=Olck}+$/u,
+ matchSymbols,
+ "\\p{sc=Olck}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001C4F],
+ [0x001C80, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Ol_Chiki}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Ol_Chiki}"
+);
+testPropertyEscapes(
+ /^\P{Script=Olck}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Olck}"
+);
+testPropertyEscapes(
+ /^\P{sc=Ol_Chiki}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Ol_Chiki}"
+);
+testPropertyEscapes(
+ /^\P{sc=Olck}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Olck}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Hungarian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Hungarian.js
new file mode 100644
index 0000000000..390d731adb
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Hungarian.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Old_Hungarian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010CFA, 0x010CFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Old_Hungarian}+$/u,
+ matchSymbols,
+ "\\p{Script=Old_Hungarian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Hung}+$/u,
+ matchSymbols,
+ "\\p{Script=Hung}"
+);
+testPropertyEscapes(
+ /^\p{sc=Old_Hungarian}+$/u,
+ matchSymbols,
+ "\\p{sc=Old_Hungarian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hung}+$/u,
+ matchSymbols,
+ "\\p{sc=Hung}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CF9],
+ [0x010D00, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Old_Hungarian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Old_Hungarian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Hung}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hung}"
+);
+testPropertyEscapes(
+ /^\P{sc=Old_Hungarian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Old_Hungarian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hung}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hung}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Italic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Italic.js
new file mode 100644
index 0000000000..fd6eeef62e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Italic.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Old_Italic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010300, 0x010323],
+ [0x01032D, 0x01032F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Old_Italic}+$/u,
+ matchSymbols,
+ "\\p{Script=Old_Italic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Ital}+$/u,
+ matchSymbols,
+ "\\p{Script=Ital}"
+);
+testPropertyEscapes(
+ /^\p{sc=Old_Italic}+$/u,
+ matchSymbols,
+ "\\p{sc=Old_Italic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Ital}+$/u,
+ matchSymbols,
+ "\\p{sc=Ital}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0102FF],
+ [0x010324, 0x01032C],
+ [0x010330, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Old_Italic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Old_Italic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Ital}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Ital}"
+);
+testPropertyEscapes(
+ /^\P{sc=Old_Italic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Old_Italic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Ital}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Ital}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_North_Arabian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_North_Arabian.js
new file mode 100644
index 0000000000..b4240ba076
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_North_Arabian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Old_North_Arabian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010A80, 0x010A9F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Old_North_Arabian}+$/u,
+ matchSymbols,
+ "\\p{Script=Old_North_Arabian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Narb}+$/u,
+ matchSymbols,
+ "\\p{Script=Narb}"
+);
+testPropertyEscapes(
+ /^\p{sc=Old_North_Arabian}+$/u,
+ matchSymbols,
+ "\\p{sc=Old_North_Arabian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Narb}+$/u,
+ matchSymbols,
+ "\\p{sc=Narb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010A7F],
+ [0x010AA0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Old_North_Arabian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Old_North_Arabian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Narb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Narb}"
+);
+testPropertyEscapes(
+ /^\P{sc=Old_North_Arabian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Old_North_Arabian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Narb}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Narb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Permic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Permic.js
new file mode 100644
index 0000000000..b88cd8c2a8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Permic.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Old_Permic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010350, 0x01037A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Old_Permic}+$/u,
+ matchSymbols,
+ "\\p{Script=Old_Permic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Perm}+$/u,
+ matchSymbols,
+ "\\p{Script=Perm}"
+);
+testPropertyEscapes(
+ /^\p{sc=Old_Permic}+$/u,
+ matchSymbols,
+ "\\p{sc=Old_Permic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Perm}+$/u,
+ matchSymbols,
+ "\\p{sc=Perm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01034F],
+ [0x01037B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Old_Permic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Old_Permic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Perm}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Perm}"
+);
+testPropertyEscapes(
+ /^\P{sc=Old_Permic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Old_Permic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Perm}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Perm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Persian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Persian.js
new file mode 100644
index 0000000000..1aa6072a09
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Persian.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Old_Persian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0103A0, 0x0103C3],
+ [0x0103C8, 0x0103D5]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Old_Persian}+$/u,
+ matchSymbols,
+ "\\p{Script=Old_Persian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Xpeo}+$/u,
+ matchSymbols,
+ "\\p{Script=Xpeo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Old_Persian}+$/u,
+ matchSymbols,
+ "\\p{sc=Old_Persian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Xpeo}+$/u,
+ matchSymbols,
+ "\\p{sc=Xpeo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01039F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Old_Persian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Old_Persian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Xpeo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Xpeo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Old_Persian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Old_Persian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Xpeo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Xpeo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Sogdian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Sogdian.js
new file mode 100644
index 0000000000..c3057832a6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Sogdian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Old_Sogdian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010F00, 0x010F27]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Old_Sogdian}+$/u,
+ matchSymbols,
+ "\\p{Script=Old_Sogdian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Sogo}+$/u,
+ matchSymbols,
+ "\\p{Script=Sogo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Old_Sogdian}+$/u,
+ matchSymbols,
+ "\\p{sc=Old_Sogdian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sogo}+$/u,
+ matchSymbols,
+ "\\p{sc=Sogo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010EFF],
+ [0x010F28, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Old_Sogdian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Old_Sogdian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Sogo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sogo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Old_Sogdian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Old_Sogdian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sogo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sogo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_South_Arabian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_South_Arabian.js
new file mode 100644
index 0000000000..9ac434bb37
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_South_Arabian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Old_South_Arabian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010A60, 0x010A7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Old_South_Arabian}+$/u,
+ matchSymbols,
+ "\\p{Script=Old_South_Arabian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Sarb}+$/u,
+ matchSymbols,
+ "\\p{Script=Sarb}"
+);
+testPropertyEscapes(
+ /^\p{sc=Old_South_Arabian}+$/u,
+ matchSymbols,
+ "\\p{sc=Old_South_Arabian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sarb}+$/u,
+ matchSymbols,
+ "\\p{sc=Sarb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010A5F],
+ [0x010A80, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Old_South_Arabian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Old_South_Arabian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Sarb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sarb}"
+);
+testPropertyEscapes(
+ /^\P{sc=Old_South_Arabian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Old_South_Arabian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sarb}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sarb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Turkic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Turkic.js
new file mode 100644
index 0000000000..7457713e6e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Old_Turkic.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Old_Turkic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010C00, 0x010C48]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Old_Turkic}+$/u,
+ matchSymbols,
+ "\\p{Script=Old_Turkic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Orkh}+$/u,
+ matchSymbols,
+ "\\p{Script=Orkh}"
+);
+testPropertyEscapes(
+ /^\p{sc=Old_Turkic}+$/u,
+ matchSymbols,
+ "\\p{sc=Old_Turkic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Orkh}+$/u,
+ matchSymbols,
+ "\\p{sc=Orkh}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010BFF],
+ [0x010C49, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Old_Turkic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Old_Turkic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Orkh}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Orkh}"
+);
+testPropertyEscapes(
+ /^\P{sc=Old_Turkic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Old_Turkic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Orkh}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Orkh}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Oriya.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Oriya.js
new file mode 100644
index 0000000000..a97eddcce3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Oriya.js
@@ -0,0 +1,100 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Oriya`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000B01, 0x000B03],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B3C, 0x000B44],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4D],
+ [0x000B55, 0x000B57],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B63],
+ [0x000B66, 0x000B77]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Oriya}+$/u,
+ matchSymbols,
+ "\\p{Script=Oriya}"
+);
+testPropertyEscapes(
+ /^\p{Script=Orya}+$/u,
+ matchSymbols,
+ "\\p{Script=Orya}"
+);
+testPropertyEscapes(
+ /^\p{sc=Oriya}+$/u,
+ matchSymbols,
+ "\\p{sc=Oriya}"
+);
+testPropertyEscapes(
+ /^\p{sc=Orya}+$/u,
+ matchSymbols,
+ "\\p{sc=Orya}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000B04,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000B00],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3B],
+ [0x000B45, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4E, 0x000B54],
+ [0x000B58, 0x000B5B],
+ [0x000B64, 0x000B65],
+ [0x000B78, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Oriya}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Oriya}"
+);
+testPropertyEscapes(
+ /^\P{Script=Orya}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Orya}"
+);
+testPropertyEscapes(
+ /^\P{sc=Oriya}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Oriya}"
+);
+testPropertyEscapes(
+ /^\P{sc=Orya}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Orya}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Osage.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Osage.js
new file mode 100644
index 0000000000..2ab2a3c714
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Osage.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Osage`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Osage}+$/u,
+ matchSymbols,
+ "\\p{Script=Osage}"
+);
+testPropertyEscapes(
+ /^\p{Script=Osge}+$/u,
+ matchSymbols,
+ "\\p{Script=Osge}"
+);
+testPropertyEscapes(
+ /^\p{sc=Osage}+$/u,
+ matchSymbols,
+ "\\p{sc=Osage}"
+);
+testPropertyEscapes(
+ /^\p{sc=Osge}+$/u,
+ matchSymbols,
+ "\\p{sc=Osge}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Osage}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Osage}"
+);
+testPropertyEscapes(
+ /^\P{Script=Osge}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Osge}"
+);
+testPropertyEscapes(
+ /^\P{sc=Osage}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Osage}"
+);
+testPropertyEscapes(
+ /^\P{sc=Osge}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Osge}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Osmanya.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Osmanya.js
new file mode 100644
index 0000000000..a5c18bb21d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Osmanya.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Osmanya`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010480, 0x01049D],
+ [0x0104A0, 0x0104A9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Osmanya}+$/u,
+ matchSymbols,
+ "\\p{Script=Osmanya}"
+);
+testPropertyEscapes(
+ /^\p{Script=Osma}+$/u,
+ matchSymbols,
+ "\\p{Script=Osma}"
+);
+testPropertyEscapes(
+ /^\p{sc=Osmanya}+$/u,
+ matchSymbols,
+ "\\p{sc=Osmanya}"
+);
+testPropertyEscapes(
+ /^\p{sc=Osma}+$/u,
+ matchSymbols,
+ "\\p{sc=Osma}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01047F],
+ [0x01049E, 0x01049F],
+ [0x0104AA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Osmanya}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Osmanya}"
+);
+testPropertyEscapes(
+ /^\P{Script=Osma}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Osma}"
+);
+testPropertyEscapes(
+ /^\P{sc=Osmanya}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Osmanya}"
+);
+testPropertyEscapes(
+ /^\P{sc=Osma}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Osma}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Pahawh_Hmong.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Pahawh_Hmong.js
new file mode 100644
index 0000000000..af27d858c9
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Pahawh_Hmong.js
@@ -0,0 +1,82 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Pahawh_Hmong`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x016B00, 0x016B45],
+ [0x016B50, 0x016B59],
+ [0x016B5B, 0x016B61],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Pahawh_Hmong}+$/u,
+ matchSymbols,
+ "\\p{Script=Pahawh_Hmong}"
+);
+testPropertyEscapes(
+ /^\p{Script=Hmng}+$/u,
+ matchSymbols,
+ "\\p{Script=Hmng}"
+);
+testPropertyEscapes(
+ /^\p{sc=Pahawh_Hmong}+$/u,
+ matchSymbols,
+ "\\p{sc=Pahawh_Hmong}"
+);
+testPropertyEscapes(
+ /^\p{sc=Hmng}+$/u,
+ matchSymbols,
+ "\\p{sc=Hmng}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x016B5A,
+ 0x016B62
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016AFF],
+ [0x016B46, 0x016B4F],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Pahawh_Hmong}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Pahawh_Hmong}"
+);
+testPropertyEscapes(
+ /^\P{Script=Hmng}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Hmng}"
+);
+testPropertyEscapes(
+ /^\P{sc=Pahawh_Hmong}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Pahawh_Hmong}"
+);
+testPropertyEscapes(
+ /^\P{sc=Hmng}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Hmng}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Palmyrene.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Palmyrene.js
new file mode 100644
index 0000000000..f4bbb85c00
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Palmyrene.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Palmyrene`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010860, 0x01087F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Palmyrene}+$/u,
+ matchSymbols,
+ "\\p{Script=Palmyrene}"
+);
+testPropertyEscapes(
+ /^\p{Script=Palm}+$/u,
+ matchSymbols,
+ "\\p{Script=Palm}"
+);
+testPropertyEscapes(
+ /^\p{sc=Palmyrene}+$/u,
+ matchSymbols,
+ "\\p{sc=Palmyrene}"
+);
+testPropertyEscapes(
+ /^\p{sc=Palm}+$/u,
+ matchSymbols,
+ "\\p{sc=Palm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01085F],
+ [0x010880, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Palmyrene}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Palmyrene}"
+);
+testPropertyEscapes(
+ /^\P{Script=Palm}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Palm}"
+);
+testPropertyEscapes(
+ /^\P{sc=Palmyrene}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Palmyrene}"
+);
+testPropertyEscapes(
+ /^\P{sc=Palm}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Palm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Pau_Cin_Hau.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Pau_Cin_Hau.js
new file mode 100644
index 0000000000..4d401cb11b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Pau_Cin_Hau.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Pau_Cin_Hau`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011AC0, 0x011AF8]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Pau_Cin_Hau}+$/u,
+ matchSymbols,
+ "\\p{Script=Pau_Cin_Hau}"
+);
+testPropertyEscapes(
+ /^\p{Script=Pauc}+$/u,
+ matchSymbols,
+ "\\p{Script=Pauc}"
+);
+testPropertyEscapes(
+ /^\p{sc=Pau_Cin_Hau}+$/u,
+ matchSymbols,
+ "\\p{sc=Pau_Cin_Hau}"
+);
+testPropertyEscapes(
+ /^\p{sc=Pauc}+$/u,
+ matchSymbols,
+ "\\p{sc=Pauc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011ABF],
+ [0x011AF9, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Pau_Cin_Hau}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Pau_Cin_Hau}"
+);
+testPropertyEscapes(
+ /^\P{Script=Pauc}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Pauc}"
+);
+testPropertyEscapes(
+ /^\P{sc=Pau_Cin_Hau}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Pau_Cin_Hau}"
+);
+testPropertyEscapes(
+ /^\P{sc=Pauc}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Pauc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Phags_Pa.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Phags_Pa.js
new file mode 100644
index 0000000000..16b3f6e1ed
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Phags_Pa.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Phags_Pa`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A840, 0x00A877]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Phags_Pa}+$/u,
+ matchSymbols,
+ "\\p{Script=Phags_Pa}"
+);
+testPropertyEscapes(
+ /^\p{Script=Phag}+$/u,
+ matchSymbols,
+ "\\p{Script=Phag}"
+);
+testPropertyEscapes(
+ /^\p{sc=Phags_Pa}+$/u,
+ matchSymbols,
+ "\\p{sc=Phags_Pa}"
+);
+testPropertyEscapes(
+ /^\p{sc=Phag}+$/u,
+ matchSymbols,
+ "\\p{sc=Phag}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A83F],
+ [0x00A878, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Phags_Pa}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Phags_Pa}"
+);
+testPropertyEscapes(
+ /^\P{Script=Phag}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Phag}"
+);
+testPropertyEscapes(
+ /^\P{sc=Phags_Pa}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Phags_Pa}"
+);
+testPropertyEscapes(
+ /^\P{sc=Phag}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Phag}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Phoenician.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Phoenician.js
new file mode 100644
index 0000000000..1bc0aa0434
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Phoenician.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Phoenician`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01091F
+ ],
+ ranges: [
+ [0x010900, 0x01091B]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Phoenician}+$/u,
+ matchSymbols,
+ "\\p{Script=Phoenician}"
+);
+testPropertyEscapes(
+ /^\p{Script=Phnx}+$/u,
+ matchSymbols,
+ "\\p{Script=Phnx}"
+);
+testPropertyEscapes(
+ /^\p{sc=Phoenician}+$/u,
+ matchSymbols,
+ "\\p{sc=Phoenician}"
+);
+testPropertyEscapes(
+ /^\p{sc=Phnx}+$/u,
+ matchSymbols,
+ "\\p{sc=Phnx}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0108FF],
+ [0x01091C, 0x01091E],
+ [0x010920, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Phoenician}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Phoenician}"
+);
+testPropertyEscapes(
+ /^\P{Script=Phnx}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Phnx}"
+);
+testPropertyEscapes(
+ /^\P{sc=Phoenician}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Phoenician}"
+);
+testPropertyEscapes(
+ /^\P{sc=Phnx}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Phnx}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Psalter_Pahlavi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Psalter_Pahlavi.js
new file mode 100644
index 0000000000..3008af9a0a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Psalter_Pahlavi.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Psalter_Pahlavi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010B80, 0x010B91],
+ [0x010B99, 0x010B9C],
+ [0x010BA9, 0x010BAF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Psalter_Pahlavi}+$/u,
+ matchSymbols,
+ "\\p{Script=Psalter_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Phlp}+$/u,
+ matchSymbols,
+ "\\p{Script=Phlp}"
+);
+testPropertyEscapes(
+ /^\p{sc=Psalter_Pahlavi}+$/u,
+ matchSymbols,
+ "\\p{sc=Psalter_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Phlp}+$/u,
+ matchSymbols,
+ "\\p{sc=Phlp}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010B7F],
+ [0x010B92, 0x010B98],
+ [0x010B9D, 0x010BA8],
+ [0x010BB0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Psalter_Pahlavi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Psalter_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Phlp}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Phlp}"
+);
+testPropertyEscapes(
+ /^\P{sc=Psalter_Pahlavi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Psalter_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Phlp}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Phlp}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Rejang.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Rejang.js
new file mode 100644
index 0000000000..4d2a66d7ea
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Rejang.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Rejang`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00A95F
+ ],
+ ranges: [
+ [0x00A930, 0x00A953]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Rejang}+$/u,
+ matchSymbols,
+ "\\p{Script=Rejang}"
+);
+testPropertyEscapes(
+ /^\p{Script=Rjng}+$/u,
+ matchSymbols,
+ "\\p{Script=Rjng}"
+);
+testPropertyEscapes(
+ /^\p{sc=Rejang}+$/u,
+ matchSymbols,
+ "\\p{sc=Rejang}"
+);
+testPropertyEscapes(
+ /^\p{sc=Rjng}+$/u,
+ matchSymbols,
+ "\\p{sc=Rjng}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A92F],
+ [0x00A954, 0x00A95E],
+ [0x00A960, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Rejang}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Rejang}"
+);
+testPropertyEscapes(
+ /^\P{Script=Rjng}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Rjng}"
+);
+testPropertyEscapes(
+ /^\P{sc=Rejang}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Rejang}"
+);
+testPropertyEscapes(
+ /^\P{sc=Rjng}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Rjng}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Runic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Runic.js
new file mode 100644
index 0000000000..d223712c8b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Runic.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Runic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0016A0, 0x0016EA],
+ [0x0016EE, 0x0016F8]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Runic}+$/u,
+ matchSymbols,
+ "\\p{Script=Runic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Runr}+$/u,
+ matchSymbols,
+ "\\p{Script=Runr}"
+);
+testPropertyEscapes(
+ /^\p{sc=Runic}+$/u,
+ matchSymbols,
+ "\\p{sc=Runic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Runr}+$/u,
+ matchSymbols,
+ "\\p{sc=Runr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00169F],
+ [0x0016EB, 0x0016ED],
+ [0x0016F9, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Runic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Runic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Runr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Runr}"
+);
+testPropertyEscapes(
+ /^\P{sc=Runic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Runic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Runr}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Runr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Samaritan.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Samaritan.js
new file mode 100644
index 0000000000..49c5905643
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Samaritan.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Samaritan`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000800, 0x00082D],
+ [0x000830, 0x00083E]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Samaritan}+$/u,
+ matchSymbols,
+ "\\p{Script=Samaritan}"
+);
+testPropertyEscapes(
+ /^\p{Script=Samr}+$/u,
+ matchSymbols,
+ "\\p{Script=Samr}"
+);
+testPropertyEscapes(
+ /^\p{sc=Samaritan}+$/u,
+ matchSymbols,
+ "\\p{sc=Samaritan}"
+);
+testPropertyEscapes(
+ /^\p{sc=Samr}+$/u,
+ matchSymbols,
+ "\\p{sc=Samr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0007FF],
+ [0x00082E, 0x00082F],
+ [0x00083F, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Samaritan}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Samaritan}"
+);
+testPropertyEscapes(
+ /^\P{Script=Samr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Samr}"
+);
+testPropertyEscapes(
+ /^\P{sc=Samaritan}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Samaritan}"
+);
+testPropertyEscapes(
+ /^\P{sc=Samr}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Samr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Saurashtra.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Saurashtra.js
new file mode 100644
index 0000000000..9fcf8cbd9e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Saurashtra.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Saurashtra`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A880, 0x00A8C5],
+ [0x00A8CE, 0x00A8D9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Saurashtra}+$/u,
+ matchSymbols,
+ "\\p{Script=Saurashtra}"
+);
+testPropertyEscapes(
+ /^\p{Script=Saur}+$/u,
+ matchSymbols,
+ "\\p{Script=Saur}"
+);
+testPropertyEscapes(
+ /^\p{sc=Saurashtra}+$/u,
+ matchSymbols,
+ "\\p{sc=Saurashtra}"
+);
+testPropertyEscapes(
+ /^\p{sc=Saur}+$/u,
+ matchSymbols,
+ "\\p{sc=Saur}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A87F],
+ [0x00A8C6, 0x00A8CD],
+ [0x00A8DA, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Saurashtra}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Saurashtra}"
+);
+testPropertyEscapes(
+ /^\P{Script=Saur}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Saur}"
+);
+testPropertyEscapes(
+ /^\P{sc=Saurashtra}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Saurashtra}"
+);
+testPropertyEscapes(
+ /^\P{sc=Saur}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Saur}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sharada.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sharada.js
new file mode 100644
index 0000000000..30a60bd278
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sharada.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Sharada`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011180, 0x0111DF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Sharada}+$/u,
+ matchSymbols,
+ "\\p{Script=Sharada}"
+);
+testPropertyEscapes(
+ /^\p{Script=Shrd}+$/u,
+ matchSymbols,
+ "\\p{Script=Shrd}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sharada}+$/u,
+ matchSymbols,
+ "\\p{sc=Sharada}"
+);
+testPropertyEscapes(
+ /^\p{sc=Shrd}+$/u,
+ matchSymbols,
+ "\\p{sc=Shrd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01117F],
+ [0x0111E0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Sharada}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sharada}"
+);
+testPropertyEscapes(
+ /^\P{Script=Shrd}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Shrd}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sharada}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sharada}"
+);
+testPropertyEscapes(
+ /^\P{sc=Shrd}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Shrd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Shavian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Shavian.js
new file mode 100644
index 0000000000..c03fa74cab
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Shavian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Shavian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010450, 0x01047F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Shavian}+$/u,
+ matchSymbols,
+ "\\p{Script=Shavian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Shaw}+$/u,
+ matchSymbols,
+ "\\p{Script=Shaw}"
+);
+testPropertyEscapes(
+ /^\p{sc=Shavian}+$/u,
+ matchSymbols,
+ "\\p{sc=Shavian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Shaw}+$/u,
+ matchSymbols,
+ "\\p{sc=Shaw}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01044F],
+ [0x010480, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Shavian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Shavian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Shaw}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Shaw}"
+);
+testPropertyEscapes(
+ /^\P{sc=Shavian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Shavian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Shaw}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Shaw}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Siddham.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Siddham.js
new file mode 100644
index 0000000000..9bd65a8d41
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Siddham.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Siddham`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011580, 0x0115B5],
+ [0x0115B8, 0x0115DD]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Siddham}+$/u,
+ matchSymbols,
+ "\\p{Script=Siddham}"
+);
+testPropertyEscapes(
+ /^\p{Script=Sidd}+$/u,
+ matchSymbols,
+ "\\p{Script=Sidd}"
+);
+testPropertyEscapes(
+ /^\p{sc=Siddham}+$/u,
+ matchSymbols,
+ "\\p{sc=Siddham}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sidd}+$/u,
+ matchSymbols,
+ "\\p{sc=Sidd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01157F],
+ [0x0115B6, 0x0115B7],
+ [0x0115DE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Siddham}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Siddham}"
+);
+testPropertyEscapes(
+ /^\P{Script=Sidd}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sidd}"
+);
+testPropertyEscapes(
+ /^\P{sc=Siddham}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Siddham}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sidd}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sidd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_SignWriting.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_SignWriting.js
new file mode 100644
index 0000000000..048430cd18
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_SignWriting.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=SignWriting`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01D800, 0x01DA8B],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=SignWriting}+$/u,
+ matchSymbols,
+ "\\p{Script=SignWriting}"
+);
+testPropertyEscapes(
+ /^\p{Script=Sgnw}+$/u,
+ matchSymbols,
+ "\\p{Script=Sgnw}"
+);
+testPropertyEscapes(
+ /^\p{sc=SignWriting}+$/u,
+ matchSymbols,
+ "\\p{sc=SignWriting}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sgnw}+$/u,
+ matchSymbols,
+ "\\p{sc=Sgnw}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01DAA0
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01D7FF],
+ [0x01DA8C, 0x01DA9A],
+ [0x01DAB0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=SignWriting}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=SignWriting}"
+);
+testPropertyEscapes(
+ /^\P{Script=Sgnw}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sgnw}"
+);
+testPropertyEscapes(
+ /^\P{sc=SignWriting}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=SignWriting}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sgnw}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sgnw}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sinhala.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sinhala.js
new file mode 100644
index 0000000000..34c5daca2b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sinhala.js
@@ -0,0 +1,99 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Sinhala`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000DBD,
+ 0x000DCA,
+ 0x000DD6
+ ],
+ ranges: [
+ [0x000D81, 0x000D83],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000DCF, 0x000DD4],
+ [0x000DD8, 0x000DDF],
+ [0x000DE6, 0x000DEF],
+ [0x000DF2, 0x000DF4],
+ [0x0111E1, 0x0111F4]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Sinhala}+$/u,
+ matchSymbols,
+ "\\p{Script=Sinhala}"
+);
+testPropertyEscapes(
+ /^\p{Script=Sinh}+$/u,
+ matchSymbols,
+ "\\p{Script=Sinh}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sinhala}+$/u,
+ matchSymbols,
+ "\\p{sc=Sinhala}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sinh}+$/u,
+ matchSymbols,
+ "\\p{sc=Sinh}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000D84,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000DD5,
+ 0x000DD7
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000D80],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000DC9],
+ [0x000DCB, 0x000DCE],
+ [0x000DE0, 0x000DE5],
+ [0x000DF0, 0x000DF1],
+ [0x000DF5, 0x00DBFF],
+ [0x00E000, 0x0111E0],
+ [0x0111F5, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Sinhala}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sinhala}"
+);
+testPropertyEscapes(
+ /^\P{Script=Sinh}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sinh}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sinhala}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sinhala}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sinh}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sinh}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sogdian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sogdian.js
new file mode 100644
index 0000000000..92f778e567
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sogdian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Sogdian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010F30, 0x010F59]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Sogdian}+$/u,
+ matchSymbols,
+ "\\p{Script=Sogdian}"
+);
+testPropertyEscapes(
+ /^\p{Script=Sogd}+$/u,
+ matchSymbols,
+ "\\p{Script=Sogd}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sogdian}+$/u,
+ matchSymbols,
+ "\\p{sc=Sogdian}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sogd}+$/u,
+ matchSymbols,
+ "\\p{sc=Sogd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010F2F],
+ [0x010F5A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Sogdian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sogdian}"
+);
+testPropertyEscapes(
+ /^\P{Script=Sogd}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sogd}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sogdian}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sogdian}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sogd}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sogd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sora_Sompeng.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sora_Sompeng.js
new file mode 100644
index 0000000000..438b725728
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sora_Sompeng.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Sora_Sompeng`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0110D0, 0x0110E8],
+ [0x0110F0, 0x0110F9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Sora_Sompeng}+$/u,
+ matchSymbols,
+ "\\p{Script=Sora_Sompeng}"
+);
+testPropertyEscapes(
+ /^\p{Script=Sora}+$/u,
+ matchSymbols,
+ "\\p{Script=Sora}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sora_Sompeng}+$/u,
+ matchSymbols,
+ "\\p{sc=Sora_Sompeng}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sora}+$/u,
+ matchSymbols,
+ "\\p{sc=Sora}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0110CF],
+ [0x0110E9, 0x0110EF],
+ [0x0110FA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Sora_Sompeng}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sora_Sompeng}"
+);
+testPropertyEscapes(
+ /^\P{Script=Sora}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sora}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sora_Sompeng}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sora_Sompeng}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sora}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sora}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Soyombo.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Soyombo.js
new file mode 100644
index 0000000000..a03a2f8cf8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Soyombo.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Soyombo`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011A50, 0x011AA2]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Soyombo}+$/u,
+ matchSymbols,
+ "\\p{Script=Soyombo}"
+);
+testPropertyEscapes(
+ /^\p{Script=Soyo}+$/u,
+ matchSymbols,
+ "\\p{Script=Soyo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Soyombo}+$/u,
+ matchSymbols,
+ "\\p{sc=Soyombo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Soyo}+$/u,
+ matchSymbols,
+ "\\p{sc=Soyo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011A4F],
+ [0x011AA3, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Soyombo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Soyombo}"
+);
+testPropertyEscapes(
+ /^\P{Script=Soyo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Soyo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Soyombo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Soyombo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Soyo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Soyo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sundanese.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sundanese.js
new file mode 100644
index 0000000000..dc57445f3b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Sundanese.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Sundanese`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001B80, 0x001BBF],
+ [0x001CC0, 0x001CC7]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Sundanese}+$/u,
+ matchSymbols,
+ "\\p{Script=Sundanese}"
+);
+testPropertyEscapes(
+ /^\p{Script=Sund}+$/u,
+ matchSymbols,
+ "\\p{Script=Sund}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sundanese}+$/u,
+ matchSymbols,
+ "\\p{sc=Sundanese}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sund}+$/u,
+ matchSymbols,
+ "\\p{sc=Sund}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001B7F],
+ [0x001BC0, 0x001CBF],
+ [0x001CC8, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Sundanese}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sundanese}"
+);
+testPropertyEscapes(
+ /^\P{Script=Sund}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sund}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sundanese}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sundanese}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sund}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sund}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Syloti_Nagri.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Syloti_Nagri.js
new file mode 100644
index 0000000000..ecbfc1b424
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Syloti_Nagri.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Syloti_Nagri`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A800, 0x00A82C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Syloti_Nagri}+$/u,
+ matchSymbols,
+ "\\p{Script=Syloti_Nagri}"
+);
+testPropertyEscapes(
+ /^\p{Script=Sylo}+$/u,
+ matchSymbols,
+ "\\p{Script=Sylo}"
+);
+testPropertyEscapes(
+ /^\p{sc=Syloti_Nagri}+$/u,
+ matchSymbols,
+ "\\p{sc=Syloti_Nagri}"
+);
+testPropertyEscapes(
+ /^\p{sc=Sylo}+$/u,
+ matchSymbols,
+ "\\p{sc=Sylo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A7FF],
+ [0x00A82D, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Syloti_Nagri}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Syloti_Nagri}"
+);
+testPropertyEscapes(
+ /^\P{Script=Sylo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Sylo}"
+);
+testPropertyEscapes(
+ /^\P{sc=Syloti_Nagri}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Syloti_Nagri}"
+);
+testPropertyEscapes(
+ /^\P{sc=Sylo}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Sylo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Syriac.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Syriac.js
new file mode 100644
index 0000000000..81b2fa06d5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Syriac.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Syriac`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000700, 0x00070D],
+ [0x00070F, 0x00074A],
+ [0x00074D, 0x00074F],
+ [0x000860, 0x00086A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Syriac}+$/u,
+ matchSymbols,
+ "\\p{Script=Syriac}"
+);
+testPropertyEscapes(
+ /^\p{Script=Syrc}+$/u,
+ matchSymbols,
+ "\\p{Script=Syrc}"
+);
+testPropertyEscapes(
+ /^\p{sc=Syriac}+$/u,
+ matchSymbols,
+ "\\p{sc=Syriac}"
+);
+testPropertyEscapes(
+ /^\p{sc=Syrc}+$/u,
+ matchSymbols,
+ "\\p{sc=Syrc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00070E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0006FF],
+ [0x00074B, 0x00074C],
+ [0x000750, 0x00085F],
+ [0x00086B, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Syriac}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Syriac}"
+);
+testPropertyEscapes(
+ /^\P{Script=Syrc}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Syrc}"
+);
+testPropertyEscapes(
+ /^\P{sc=Syriac}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Syriac}"
+);
+testPropertyEscapes(
+ /^\P{sc=Syrc}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Syrc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tagalog.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tagalog.js
new file mode 100644
index 0000000000..dc22a8786c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tagalog.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Tagalog`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001714]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Tagalog}+$/u,
+ matchSymbols,
+ "\\p{Script=Tagalog}"
+);
+testPropertyEscapes(
+ /^\p{Script=Tglg}+$/u,
+ matchSymbols,
+ "\\p{Script=Tglg}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tagalog}+$/u,
+ matchSymbols,
+ "\\p{sc=Tagalog}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tglg}+$/u,
+ matchSymbols,
+ "\\p{sc=Tglg}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00170D
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0016FF],
+ [0x001715, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Tagalog}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tagalog}"
+);
+testPropertyEscapes(
+ /^\P{Script=Tglg}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tglg}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tagalog}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tagalog}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tglg}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tglg}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tagbanwa.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tagbanwa.js
new file mode 100644
index 0000000000..12238425b8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tagbanwa.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Tagbanwa`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001772, 0x001773]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Tagbanwa}+$/u,
+ matchSymbols,
+ "\\p{Script=Tagbanwa}"
+);
+testPropertyEscapes(
+ /^\p{Script=Tagb}+$/u,
+ matchSymbols,
+ "\\p{Script=Tagb}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tagbanwa}+$/u,
+ matchSymbols,
+ "\\p{sc=Tagbanwa}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tagb}+$/u,
+ matchSymbols,
+ "\\p{sc=Tagb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00176D,
+ 0x001771
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00175F],
+ [0x001774, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Tagbanwa}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tagbanwa}"
+);
+testPropertyEscapes(
+ /^\P{Script=Tagb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tagb}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tagbanwa}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tagbanwa}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tagb}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tagb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Le.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Le.js
new file mode 100644
index 0000000000..7e9f1b5b74
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Le.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Tai_Le`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001950, 0x00196D],
+ [0x001970, 0x001974]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Tai_Le}+$/u,
+ matchSymbols,
+ "\\p{Script=Tai_Le}"
+);
+testPropertyEscapes(
+ /^\p{Script=Tale}+$/u,
+ matchSymbols,
+ "\\p{Script=Tale}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tai_Le}+$/u,
+ matchSymbols,
+ "\\p{sc=Tai_Le}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tale}+$/u,
+ matchSymbols,
+ "\\p{sc=Tale}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00194F],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Tai_Le}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tai_Le}"
+);
+testPropertyEscapes(
+ /^\P{Script=Tale}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tale}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tai_Le}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tai_Le}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tale}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tale}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Tham.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Tham.js
new file mode 100644
index 0000000000..6fb11ceb47
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Tham.js
@@ -0,0 +1,82 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Tai_Tham`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001A20, 0x001A5E],
+ [0x001A60, 0x001A7C],
+ [0x001A7F, 0x001A89],
+ [0x001A90, 0x001A99],
+ [0x001AA0, 0x001AAD]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Tai_Tham}+$/u,
+ matchSymbols,
+ "\\p{Script=Tai_Tham}"
+);
+testPropertyEscapes(
+ /^\p{Script=Lana}+$/u,
+ matchSymbols,
+ "\\p{Script=Lana}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tai_Tham}+$/u,
+ matchSymbols,
+ "\\p{sc=Tai_Tham}"
+);
+testPropertyEscapes(
+ /^\p{sc=Lana}+$/u,
+ matchSymbols,
+ "\\p{sc=Lana}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x001A5F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001A1F],
+ [0x001A7D, 0x001A7E],
+ [0x001A8A, 0x001A8F],
+ [0x001A9A, 0x001A9F],
+ [0x001AAE, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Tai_Tham}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tai_Tham}"
+);
+testPropertyEscapes(
+ /^\P{Script=Lana}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Lana}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tai_Tham}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tai_Tham}"
+);
+testPropertyEscapes(
+ /^\P{sc=Lana}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Lana}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Viet.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Viet.js
new file mode 100644
index 0000000000..73bffc7f7d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Viet.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Tai_Viet`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00AA80, 0x00AAC2],
+ [0x00AADB, 0x00AADF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Tai_Viet}+$/u,
+ matchSymbols,
+ "\\p{Script=Tai_Viet}"
+);
+testPropertyEscapes(
+ /^\p{Script=Tavt}+$/u,
+ matchSymbols,
+ "\\p{Script=Tavt}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tai_Viet}+$/u,
+ matchSymbols,
+ "\\p{sc=Tai_Viet}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tavt}+$/u,
+ matchSymbols,
+ "\\p{sc=Tavt}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00AA7F],
+ [0x00AAC3, 0x00AADA],
+ [0x00AAE0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Tai_Viet}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tai_Viet}"
+);
+testPropertyEscapes(
+ /^\P{Script=Tavt}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tavt}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tai_Viet}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tai_Viet}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tavt}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tavt}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Takri.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Takri.js
new file mode 100644
index 0000000000..6937f6d2a6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Takri.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Takri`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011680, 0x0116B8],
+ [0x0116C0, 0x0116C9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Takri}+$/u,
+ matchSymbols,
+ "\\p{Script=Takri}"
+);
+testPropertyEscapes(
+ /^\p{Script=Takr}+$/u,
+ matchSymbols,
+ "\\p{Script=Takr}"
+);
+testPropertyEscapes(
+ /^\p{sc=Takri}+$/u,
+ matchSymbols,
+ "\\p{sc=Takri}"
+);
+testPropertyEscapes(
+ /^\p{sc=Takr}+$/u,
+ matchSymbols,
+ "\\p{sc=Takr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01167F],
+ [0x0116B9, 0x0116BF],
+ [0x0116CA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Takri}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Takri}"
+);
+testPropertyEscapes(
+ /^\P{Script=Takr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Takr}"
+);
+testPropertyEscapes(
+ /^\P{sc=Takri}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Takri}"
+);
+testPropertyEscapes(
+ /^\P{sc=Takr}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Takr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tamil.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tamil.js
new file mode 100644
index 0000000000..1b21ab28f1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tamil.js
@@ -0,0 +1,109 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Tamil`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000B9C,
+ 0x000BD0,
+ 0x000BD7,
+ 0x011FFF
+ ],
+ ranges: [
+ [0x000B82, 0x000B83],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000BBE, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCD],
+ [0x000BE6, 0x000BFA],
+ [0x011FC0, 0x011FF1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Tamil}+$/u,
+ matchSymbols,
+ "\\p{Script=Tamil}"
+);
+testPropertyEscapes(
+ /^\p{Script=Taml}+$/u,
+ matchSymbols,
+ "\\p{Script=Taml}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tamil}+$/u,
+ matchSymbols,
+ "\\p{sc=Tamil}"
+);
+testPropertyEscapes(
+ /^\p{sc=Taml}+$/u,
+ matchSymbols,
+ "\\p{sc=Taml}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000BC9
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000B81],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BBD],
+ [0x000BC3, 0x000BC5],
+ [0x000BCE, 0x000BCF],
+ [0x000BD1, 0x000BD6],
+ [0x000BD8, 0x000BE5],
+ [0x000BFB, 0x00DBFF],
+ [0x00E000, 0x011FBF],
+ [0x011FF2, 0x011FFE],
+ [0x012000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Tamil}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tamil}"
+);
+testPropertyEscapes(
+ /^\P{Script=Taml}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Taml}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tamil}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tamil}"
+);
+testPropertyEscapes(
+ /^\P{sc=Taml}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Taml}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tangut.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tangut.js
new file mode 100644
index 0000000000..c97ede1858
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tangut.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Tangut`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x016FE0
+ ],
+ ranges: [
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018AFF],
+ [0x018D00, 0x018D08]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Tangut}+$/u,
+ matchSymbols,
+ "\\p{Script=Tangut}"
+);
+testPropertyEscapes(
+ /^\p{Script=Tang}+$/u,
+ matchSymbols,
+ "\\p{Script=Tang}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tangut}+$/u,
+ matchSymbols,
+ "\\p{sc=Tangut}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tang}+$/u,
+ matchSymbols,
+ "\\p{sc=Tang}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016FDF],
+ [0x016FE1, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018B00, 0x018CFF],
+ [0x018D09, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Tangut}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tangut}"
+);
+testPropertyEscapes(
+ /^\P{Script=Tang}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tang}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tangut}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tangut}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tang}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tang}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Telugu.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Telugu.js
new file mode 100644
index 0000000000..1a2a83ebd0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Telugu.js
@@ -0,0 +1,96 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Telugu`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000C00, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C3D, 0x000C44],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C63],
+ [0x000C66, 0x000C6F],
+ [0x000C77, 0x000C7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Telugu}+$/u,
+ matchSymbols,
+ "\\p{Script=Telugu}"
+);
+testPropertyEscapes(
+ /^\p{Script=Telu}+$/u,
+ matchSymbols,
+ "\\p{Script=Telu}"
+);
+testPropertyEscapes(
+ /^\p{sc=Telugu}+$/u,
+ matchSymbols,
+ "\\p{sc=Telugu}"
+);
+testPropertyEscapes(
+ /^\p{sc=Telu}+$/u,
+ matchSymbols,
+ "\\p{sc=Telu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C45,
+ 0x000C49,
+ 0x000C57
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000BFF],
+ [0x000C3A, 0x000C3C],
+ [0x000C4E, 0x000C54],
+ [0x000C5B, 0x000C5F],
+ [0x000C64, 0x000C65],
+ [0x000C70, 0x000C76],
+ [0x000C80, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Telugu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Telugu}"
+);
+testPropertyEscapes(
+ /^\P{Script=Telu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Telu}"
+);
+testPropertyEscapes(
+ /^\P{sc=Telugu}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Telugu}"
+);
+testPropertyEscapes(
+ /^\P{sc=Telu}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Telu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Thaana.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Thaana.js
new file mode 100644
index 0000000000..8397bbcd27
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Thaana.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Thaana`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000780, 0x0007B1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Thaana}+$/u,
+ matchSymbols,
+ "\\p{Script=Thaana}"
+);
+testPropertyEscapes(
+ /^\p{Script=Thaa}+$/u,
+ matchSymbols,
+ "\\p{Script=Thaa}"
+);
+testPropertyEscapes(
+ /^\p{sc=Thaana}+$/u,
+ matchSymbols,
+ "\\p{sc=Thaana}"
+);
+testPropertyEscapes(
+ /^\p{sc=Thaa}+$/u,
+ matchSymbols,
+ "\\p{sc=Thaa}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00077F],
+ [0x0007B2, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Thaana}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Thaana}"
+);
+testPropertyEscapes(
+ /^\P{Script=Thaa}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Thaa}"
+);
+testPropertyEscapes(
+ /^\P{sc=Thaana}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Thaana}"
+);
+testPropertyEscapes(
+ /^\P{sc=Thaa}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Thaa}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Thai.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Thai.js
new file mode 100644
index 0000000000..e48020ea14
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Thai.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Thai`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000E01, 0x000E3A],
+ [0x000E40, 0x000E5B]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Thai}+$/u,
+ matchSymbols,
+ "\\p{Script=Thai}"
+);
+testPropertyEscapes(
+ /^\p{Script=Thai}+$/u,
+ matchSymbols,
+ "\\p{Script=Thai}"
+);
+testPropertyEscapes(
+ /^\p{sc=Thai}+$/u,
+ matchSymbols,
+ "\\p{sc=Thai}"
+);
+testPropertyEscapes(
+ /^\p{sc=Thai}+$/u,
+ matchSymbols,
+ "\\p{sc=Thai}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000E00],
+ [0x000E3B, 0x000E3F],
+ [0x000E5C, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Thai}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Thai}"
+);
+testPropertyEscapes(
+ /^\P{Script=Thai}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Thai}"
+);
+testPropertyEscapes(
+ /^\P{sc=Thai}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Thai}"
+);
+testPropertyEscapes(
+ /^\P{sc=Thai}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Thai}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tibetan.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tibetan.js
new file mode 100644
index 0000000000..84ad5a4994
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tibetan.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Tibetan`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000F00, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F71, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x000FBE, 0x000FCC],
+ [0x000FCE, 0x000FD4],
+ [0x000FD9, 0x000FDA]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Tibetan}+$/u,
+ matchSymbols,
+ "\\p{Script=Tibetan}"
+);
+testPropertyEscapes(
+ /^\p{Script=Tibt}+$/u,
+ matchSymbols,
+ "\\p{Script=Tibt}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tibetan}+$/u,
+ matchSymbols,
+ "\\p{sc=Tibetan}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tibt}+$/u,
+ matchSymbols,
+ "\\p{sc=Tibt}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000F48,
+ 0x000F98,
+ 0x000FBD,
+ 0x000FCD
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000EFF],
+ [0x000F6D, 0x000F70],
+ [0x000FD5, 0x000FD8],
+ [0x000FDB, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Tibetan}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tibetan}"
+);
+testPropertyEscapes(
+ /^\P{Script=Tibt}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tibt}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tibetan}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tibetan}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tibt}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tibt}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tifinagh.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tifinagh.js
new file mode 100644
index 0000000000..beef21d48a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tifinagh.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Tifinagh`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x002D7F
+ ],
+ ranges: [
+ [0x002D30, 0x002D67],
+ [0x002D6F, 0x002D70]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Tifinagh}+$/u,
+ matchSymbols,
+ "\\p{Script=Tifinagh}"
+);
+testPropertyEscapes(
+ /^\p{Script=Tfng}+$/u,
+ matchSymbols,
+ "\\p{Script=Tfng}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tifinagh}+$/u,
+ matchSymbols,
+ "\\p{sc=Tifinagh}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tfng}+$/u,
+ matchSymbols,
+ "\\p{sc=Tfng}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D71, 0x002D7E],
+ [0x002D80, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Tifinagh}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tifinagh}"
+);
+testPropertyEscapes(
+ /^\P{Script=Tfng}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tfng}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tifinagh}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tifinagh}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tfng}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tfng}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tirhuta.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tirhuta.js
new file mode 100644
index 0000000000..99aff408a0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Tirhuta.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Tirhuta`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011480, 0x0114C7],
+ [0x0114D0, 0x0114D9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Tirhuta}+$/u,
+ matchSymbols,
+ "\\p{Script=Tirhuta}"
+);
+testPropertyEscapes(
+ /^\p{Script=Tirh}+$/u,
+ matchSymbols,
+ "\\p{Script=Tirh}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tirhuta}+$/u,
+ matchSymbols,
+ "\\p{sc=Tirhuta}"
+);
+testPropertyEscapes(
+ /^\p{sc=Tirh}+$/u,
+ matchSymbols,
+ "\\p{sc=Tirh}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01147F],
+ [0x0114C8, 0x0114CF],
+ [0x0114DA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Tirhuta}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tirhuta}"
+);
+testPropertyEscapes(
+ /^\P{Script=Tirh}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Tirh}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tirhuta}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tirhuta}"
+);
+testPropertyEscapes(
+ /^\P{sc=Tirh}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Tirh}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ugaritic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ugaritic.js
new file mode 100644
index 0000000000..d3aefe0133
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Ugaritic.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Ugaritic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01039F
+ ],
+ ranges: [
+ [0x010380, 0x01039D]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Ugaritic}+$/u,
+ matchSymbols,
+ "\\p{Script=Ugaritic}"
+);
+testPropertyEscapes(
+ /^\p{Script=Ugar}+$/u,
+ matchSymbols,
+ "\\p{Script=Ugar}"
+);
+testPropertyEscapes(
+ /^\p{sc=Ugaritic}+$/u,
+ matchSymbols,
+ "\\p{sc=Ugaritic}"
+);
+testPropertyEscapes(
+ /^\p{sc=Ugar}+$/u,
+ matchSymbols,
+ "\\p{sc=Ugar}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01039E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01037F],
+ [0x0103A0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Ugaritic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Ugaritic}"
+);
+testPropertyEscapes(
+ /^\P{Script=Ugar}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Ugar}"
+);
+testPropertyEscapes(
+ /^\P{sc=Ugaritic}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Ugaritic}"
+);
+testPropertyEscapes(
+ /^\P{sc=Ugar}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Ugar}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Vai.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Vai.js
new file mode 100644
index 0000000000..c92b8c4e8d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Vai.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Vai`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A500, 0x00A62B]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Vai}+$/u,
+ matchSymbols,
+ "\\p{Script=Vai}"
+);
+testPropertyEscapes(
+ /^\p{Script=Vaii}+$/u,
+ matchSymbols,
+ "\\p{Script=Vaii}"
+);
+testPropertyEscapes(
+ /^\p{sc=Vai}+$/u,
+ matchSymbols,
+ "\\p{sc=Vai}"
+);
+testPropertyEscapes(
+ /^\p{sc=Vaii}+$/u,
+ matchSymbols,
+ "\\p{sc=Vaii}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A4FF],
+ [0x00A62C, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Vai}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Vai}"
+);
+testPropertyEscapes(
+ /^\P{Script=Vaii}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Vaii}"
+);
+testPropertyEscapes(
+ /^\P{sc=Vai}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Vai}"
+);
+testPropertyEscapes(
+ /^\P{sc=Vaii}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Vaii}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Wancho.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Wancho.js
new file mode 100644
index 0000000000..2ea8510fbe
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Wancho.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Wancho`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01E2FF
+ ],
+ ranges: [
+ [0x01E2C0, 0x01E2F9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Wancho}+$/u,
+ matchSymbols,
+ "\\p{Script=Wancho}"
+);
+testPropertyEscapes(
+ /^\p{Script=Wcho}+$/u,
+ matchSymbols,
+ "\\p{Script=Wcho}"
+);
+testPropertyEscapes(
+ /^\p{sc=Wancho}+$/u,
+ matchSymbols,
+ "\\p{sc=Wancho}"
+);
+testPropertyEscapes(
+ /^\p{sc=Wcho}+$/u,
+ matchSymbols,
+ "\\p{sc=Wcho}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01E2BF],
+ [0x01E2FA, 0x01E2FE],
+ [0x01E300, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Wancho}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Wancho}"
+);
+testPropertyEscapes(
+ /^\P{Script=Wcho}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Wcho}"
+);
+testPropertyEscapes(
+ /^\P{sc=Wancho}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Wancho}"
+);
+testPropertyEscapes(
+ /^\P{sc=Wcho}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Wcho}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Warang_Citi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Warang_Citi.js
new file mode 100644
index 0000000000..d354a032fd
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Warang_Citi.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Warang_Citi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0118FF
+ ],
+ ranges: [
+ [0x0118A0, 0x0118F2]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Warang_Citi}+$/u,
+ matchSymbols,
+ "\\p{Script=Warang_Citi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Wara}+$/u,
+ matchSymbols,
+ "\\p{Script=Wara}"
+);
+testPropertyEscapes(
+ /^\p{sc=Warang_Citi}+$/u,
+ matchSymbols,
+ "\\p{sc=Warang_Citi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Wara}+$/u,
+ matchSymbols,
+ "\\p{sc=Wara}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01189F],
+ [0x0118F3, 0x0118FE],
+ [0x011900, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Warang_Citi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Warang_Citi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Wara}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Wara}"
+);
+testPropertyEscapes(
+ /^\P{sc=Warang_Citi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Warang_Citi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Wara}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Wara}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Yezidi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Yezidi.js
new file mode 100644
index 0000000000..a3781311d5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Yezidi.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Yezidi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010E80, 0x010EA9],
+ [0x010EAB, 0x010EAD],
+ [0x010EB0, 0x010EB1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Yezidi}+$/u,
+ matchSymbols,
+ "\\p{Script=Yezidi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Yezi}+$/u,
+ matchSymbols,
+ "\\p{Script=Yezi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Yezidi}+$/u,
+ matchSymbols,
+ "\\p{sc=Yezidi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Yezi}+$/u,
+ matchSymbols,
+ "\\p{sc=Yezi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x010EAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010E7F],
+ [0x010EAE, 0x010EAF],
+ [0x010EB2, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Yezidi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Yezidi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Yezi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Yezi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Yezidi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Yezidi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Yezi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Yezi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Yi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Yi.js
new file mode 100644
index 0000000000..ba97345e0b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Yi.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Yi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A000, 0x00A48C],
+ [0x00A490, 0x00A4C6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Yi}+$/u,
+ matchSymbols,
+ "\\p{Script=Yi}"
+);
+testPropertyEscapes(
+ /^\p{Script=Yiii}+$/u,
+ matchSymbols,
+ "\\p{Script=Yiii}"
+);
+testPropertyEscapes(
+ /^\p{sc=Yi}+$/u,
+ matchSymbols,
+ "\\p{sc=Yi}"
+);
+testPropertyEscapes(
+ /^\p{sc=Yiii}+$/u,
+ matchSymbols,
+ "\\p{sc=Yiii}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x009FFF],
+ [0x00A48D, 0x00A48F],
+ [0x00A4C7, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Yi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Yi}"
+);
+testPropertyEscapes(
+ /^\P{Script=Yiii}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Yiii}"
+);
+testPropertyEscapes(
+ /^\P{sc=Yi}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Yi}"
+);
+testPropertyEscapes(
+ /^\P{sc=Yiii}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Yiii}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Zanabazar_Square.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Zanabazar_Square.js
new file mode 100644
index 0000000000..8a9bdaa021
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_-_Zanabazar_Square.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script=Zanabazar_Square`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011A00, 0x011A47]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script=Zanabazar_Square}+$/u,
+ matchSymbols,
+ "\\p{Script=Zanabazar_Square}"
+);
+testPropertyEscapes(
+ /^\p{Script=Zanb}+$/u,
+ matchSymbols,
+ "\\p{Script=Zanb}"
+);
+testPropertyEscapes(
+ /^\p{sc=Zanabazar_Square}+$/u,
+ matchSymbols,
+ "\\p{sc=Zanabazar_Square}"
+);
+testPropertyEscapes(
+ /^\p{sc=Zanb}+$/u,
+ matchSymbols,
+ "\\p{sc=Zanb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0119FF],
+ [0x011A48, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script=Zanabazar_Square}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Zanabazar_Square}"
+);
+testPropertyEscapes(
+ /^\P{Script=Zanb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script=Zanb}"
+);
+testPropertyEscapes(
+ /^\P{sc=Zanabazar_Square}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Zanabazar_Square}"
+);
+testPropertyEscapes(
+ /^\P{sc=Zanb}+$/u,
+ nonMatchSymbols,
+ "\\P{sc=Zanb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Adlam.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Adlam.js
new file mode 100644
index 0000000000..417c47ef6e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Adlam.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Adlam`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000640
+ ],
+ ranges: [
+ [0x01E900, 0x01E94B],
+ [0x01E950, 0x01E959],
+ [0x01E95E, 0x01E95F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Adlam}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Adlam}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Adlm}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Adlm}"
+);
+testPropertyEscapes(
+ /^\p{scx=Adlam}+$/u,
+ matchSymbols,
+ "\\p{scx=Adlam}"
+);
+testPropertyEscapes(
+ /^\p{scx=Adlm}+$/u,
+ matchSymbols,
+ "\\p{scx=Adlm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00063F],
+ [0x000641, 0x00DBFF],
+ [0x00E000, 0x01E8FF],
+ [0x01E94C, 0x01E94F],
+ [0x01E95A, 0x01E95D],
+ [0x01E960, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Adlam}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Adlam}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Adlm}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Adlm}"
+);
+testPropertyEscapes(
+ /^\P{scx=Adlam}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Adlam}"
+);
+testPropertyEscapes(
+ /^\P{scx=Adlm}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Adlm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ahom.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ahom.js
new file mode 100644
index 0000000000..6ee8c90a5d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ahom.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Ahom`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011700, 0x01171A],
+ [0x01171D, 0x01172B],
+ [0x011730, 0x01173F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Ahom}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Ahom}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Ahom}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Ahom}"
+);
+testPropertyEscapes(
+ /^\p{scx=Ahom}+$/u,
+ matchSymbols,
+ "\\p{scx=Ahom}"
+);
+testPropertyEscapes(
+ /^\p{scx=Ahom}+$/u,
+ matchSymbols,
+ "\\p{scx=Ahom}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0116FF],
+ [0x01171B, 0x01171C],
+ [0x01172C, 0x01172F],
+ [0x011740, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Ahom}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Ahom}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Ahom}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Ahom}"
+);
+testPropertyEscapes(
+ /^\P{scx=Ahom}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Ahom}"
+);
+testPropertyEscapes(
+ /^\P{scx=Ahom}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Ahom}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Anatolian_Hieroglyphs.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Anatolian_Hieroglyphs.js
new file mode 100644
index 0000000000..1bfe8dd61a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Anatolian_Hieroglyphs.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Anatolian_Hieroglyphs`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x014400, 0x014646]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Anatolian_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Anatolian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hluw}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hluw}"
+);
+testPropertyEscapes(
+ /^\p{scx=Anatolian_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{scx=Anatolian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hluw}+$/u,
+ matchSymbols,
+ "\\p{scx=Hluw}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0143FF],
+ [0x014647, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Anatolian_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Anatolian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hluw}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hluw}"
+);
+testPropertyEscapes(
+ /^\P{scx=Anatolian_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Anatolian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hluw}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hluw}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Arabic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Arabic.js
new file mode 100644
index 0000000000..38503ab9be
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Arabic.js
@@ -0,0 +1,177 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Arabic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x000600, 0x000604],
+ [0x000606, 0x00061C],
+ [0x00061E, 0x0006DC],
+ [0x0006DE, 0x0006FF],
+ [0x000750, 0x00077F],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x0008D3, 0x0008E1],
+ [0x0008E3, 0x0008FF],
+ [0x00FB50, 0x00FBC1],
+ [0x00FBD3, 0x00FD3D],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDFD],
+ [0x00FE70, 0x00FE74],
+ [0x00FE76, 0x00FEFC],
+ [0x0102E0, 0x0102FB],
+ [0x010E60, 0x010E7E],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01EEF0, 0x01EEF1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Arabic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Arabic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Arab}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Arab}"
+);
+testPropertyEscapes(
+ /^\p{scx=Arabic}+$/u,
+ matchSymbols,
+ "\\p{scx=Arabic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Arab}+$/u,
+ matchSymbols,
+ "\\p{scx=Arab}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000605,
+ 0x00061D,
+ 0x0006DD,
+ 0x0008B5,
+ 0x0008E2,
+ 0x00FE75,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0005FF],
+ [0x000700, 0x00074F],
+ [0x000780, 0x00089F],
+ [0x0008C8, 0x0008D2],
+ [0x000900, 0x00DBFF],
+ [0x00E000, 0x00FB4F],
+ [0x00FBC2, 0x00FBD2],
+ [0x00FD3E, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFE, 0x00FE6F],
+ [0x00FEFD, 0x0102DF],
+ [0x0102FC, 0x010E5F],
+ [0x010E7F, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01EEEF],
+ [0x01EEF2, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Arabic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Arabic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Arab}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Arab}"
+);
+testPropertyEscapes(
+ /^\P{scx=Arabic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Arabic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Arab}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Arab}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Armenian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Armenian.js
new file mode 100644
index 0000000000..8bed6510d8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Armenian.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Armenian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000531, 0x000556],
+ [0x000559, 0x00058A],
+ [0x00058D, 0x00058F],
+ [0x00FB13, 0x00FB17]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Armenian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Armenian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Armn}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Armn}"
+);
+testPropertyEscapes(
+ /^\p{scx=Armenian}+$/u,
+ matchSymbols,
+ "\\p{scx=Armenian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Armn}+$/u,
+ matchSymbols,
+ "\\p{scx=Armn}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000530],
+ [0x000557, 0x000558],
+ [0x00058B, 0x00058C],
+ [0x000590, 0x00DBFF],
+ [0x00E000, 0x00FB12],
+ [0x00FB18, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Armenian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Armenian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Armn}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Armn}"
+);
+testPropertyEscapes(
+ /^\P{scx=Armenian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Armenian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Armn}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Armn}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Avestan.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Avestan.js
new file mode 100644
index 0000000000..dfb28b3654
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Avestan.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Avestan`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010B00, 0x010B35],
+ [0x010B39, 0x010B3F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Avestan}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Avestan}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Avst}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Avst}"
+);
+testPropertyEscapes(
+ /^\p{scx=Avestan}+$/u,
+ matchSymbols,
+ "\\p{scx=Avestan}"
+);
+testPropertyEscapes(
+ /^\p{scx=Avst}+$/u,
+ matchSymbols,
+ "\\p{scx=Avst}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010AFF],
+ [0x010B36, 0x010B38],
+ [0x010B40, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Avestan}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Avestan}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Avst}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Avst}"
+);
+testPropertyEscapes(
+ /^\P{scx=Avestan}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Avestan}"
+);
+testPropertyEscapes(
+ /^\P{scx=Avst}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Avst}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Balinese.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Balinese.js
new file mode 100644
index 0000000000..bb6aadf907
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Balinese.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Balinese`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001B00, 0x001B4B],
+ [0x001B50, 0x001B7C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Balinese}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Balinese}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bali}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bali}"
+);
+testPropertyEscapes(
+ /^\p{scx=Balinese}+$/u,
+ matchSymbols,
+ "\\p{scx=Balinese}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bali}+$/u,
+ matchSymbols,
+ "\\p{scx=Bali}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001AFF],
+ [0x001B4C, 0x001B4F],
+ [0x001B7D, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Balinese}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Balinese}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bali}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bali}"
+);
+testPropertyEscapes(
+ /^\P{scx=Balinese}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Balinese}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bali}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bali}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bamum.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bamum.js
new file mode 100644
index 0000000000..1c63cdfdf1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bamum.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Bamum`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A6A0, 0x00A6F7],
+ [0x016800, 0x016A38]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bamum}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bamum}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bamu}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bamu}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bamum}+$/u,
+ matchSymbols,
+ "\\p{scx=Bamum}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bamu}+$/u,
+ matchSymbols,
+ "\\p{scx=Bamu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A69F],
+ [0x00A6F8, 0x00DBFF],
+ [0x00E000, 0x0167FF],
+ [0x016A39, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bamum}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bamum}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bamu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bamu}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bamum}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bamum}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bamu}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bamu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bassa_Vah.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bassa_Vah.js
new file mode 100644
index 0000000000..ae6ee1d56c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bassa_Vah.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Bassa_Vah`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x016AD0, 0x016AED],
+ [0x016AF0, 0x016AF5]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bassa_Vah}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bassa_Vah}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bass}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bass}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bassa_Vah}+$/u,
+ matchSymbols,
+ "\\p{scx=Bassa_Vah}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bass}+$/u,
+ matchSymbols,
+ "\\p{scx=Bass}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016ACF],
+ [0x016AEE, 0x016AEF],
+ [0x016AF6, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bassa_Vah}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bassa_Vah}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bass}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bass}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bassa_Vah}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bassa_Vah}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bass}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bass}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Batak.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Batak.js
new file mode 100644
index 0000000000..be6d3633fd
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Batak.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Batak`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001BC0, 0x001BF3],
+ [0x001BFC, 0x001BFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Batak}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Batak}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Batk}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Batk}"
+);
+testPropertyEscapes(
+ /^\p{scx=Batak}+$/u,
+ matchSymbols,
+ "\\p{scx=Batak}"
+);
+testPropertyEscapes(
+ /^\p{scx=Batk}+$/u,
+ matchSymbols,
+ "\\p{scx=Batk}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001BBF],
+ [0x001BF4, 0x001BFB],
+ [0x001C00, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Batak}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Batak}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Batk}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Batk}"
+);
+testPropertyEscapes(
+ /^\P{scx=Batak}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Batak}"
+);
+testPropertyEscapes(
+ /^\P{scx=Batk}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Batk}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bengali.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bengali.js
new file mode 100644
index 0000000000..0b13dd33da
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bengali.js
@@ -0,0 +1,125 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Bengali`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0009B2,
+ 0x0009D7,
+ 0x001CD0,
+ 0x001CD2,
+ 0x001CD8,
+ 0x001CE1,
+ 0x001CEA,
+ 0x001CED,
+ 0x001CF2,
+ 0x00A8F1
+ ],
+ ranges: [
+ [0x000951, 0x000952],
+ [0x000964, 0x000965],
+ [0x000980, 0x000983],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009BC, 0x0009C4],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CE],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E3],
+ [0x0009E6, 0x0009FE],
+ [0x001CD5, 0x001CD6],
+ [0x001CF5, 0x001CF7]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bengali}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bengali}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Beng}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Beng}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bengali}+$/u,
+ matchSymbols,
+ "\\p{scx=Bengali}"
+);
+testPropertyEscapes(
+ /^\p{scx=Beng}+$/u,
+ matchSymbols,
+ "\\p{scx=Beng}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000984,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE,
+ 0x001CD1,
+ 0x001CD7
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000953, 0x000963],
+ [0x000966, 0x00097F],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BB],
+ [0x0009C5, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CF, 0x0009D6],
+ [0x0009D8, 0x0009DB],
+ [0x0009E4, 0x0009E5],
+ [0x0009FF, 0x001CCF],
+ [0x001CD3, 0x001CD4],
+ [0x001CD9, 0x001CE0],
+ [0x001CE2, 0x001CE9],
+ [0x001CEB, 0x001CEC],
+ [0x001CEE, 0x001CF1],
+ [0x001CF3, 0x001CF4],
+ [0x001CF8, 0x00A8F0],
+ [0x00A8F2, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bengali}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bengali}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Beng}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Beng}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bengali}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bengali}"
+);
+testPropertyEscapes(
+ /^\P{scx=Beng}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Beng}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bhaiksuki.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bhaiksuki.js
new file mode 100644
index 0000000000..425fe2cc85
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bhaiksuki.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Bhaiksuki`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C36],
+ [0x011C38, 0x011C45],
+ [0x011C50, 0x011C6C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bhaiksuki}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bhaiksuki}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bhks}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bhks}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bhaiksuki}+$/u,
+ matchSymbols,
+ "\\p{scx=Bhaiksuki}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bhks}+$/u,
+ matchSymbols,
+ "\\p{scx=Bhks}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011C09,
+ 0x011C37
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011BFF],
+ [0x011C46, 0x011C4F],
+ [0x011C6D, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bhaiksuki}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bhaiksuki}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bhks}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bhks}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bhaiksuki}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bhaiksuki}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bhks}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bhks}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bopomofo.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bopomofo.js
new file mode 100644
index 0000000000..b3644f7537
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bopomofo.js
@@ -0,0 +1,97 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Bopomofo`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x003030,
+ 0x003037,
+ 0x0030FB
+ ],
+ ranges: [
+ [0x0002EA, 0x0002EB],
+ [0x003001, 0x003003],
+ [0x003008, 0x003011],
+ [0x003013, 0x00301F],
+ [0x00302A, 0x00302D],
+ [0x003105, 0x00312F],
+ [0x0031A0, 0x0031BF],
+ [0x00FE45, 0x00FE46],
+ [0x00FF61, 0x00FF65]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bopomofo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bopomofo}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bopo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bopo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bopomofo}+$/u,
+ matchSymbols,
+ "\\p{scx=Bopomofo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bopo}+$/u,
+ matchSymbols,
+ "\\p{scx=Bopo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x003012
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0002E9],
+ [0x0002EC, 0x003000],
+ [0x003004, 0x003007],
+ [0x003020, 0x003029],
+ [0x00302E, 0x00302F],
+ [0x003031, 0x003036],
+ [0x003038, 0x0030FA],
+ [0x0030FC, 0x003104],
+ [0x003130, 0x00319F],
+ [0x0031C0, 0x00DBFF],
+ [0x00E000, 0x00FE44],
+ [0x00FE47, 0x00FF60],
+ [0x00FF66, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bopomofo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bopomofo}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bopo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bopo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bopomofo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bopomofo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bopo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bopo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Brahmi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Brahmi.js
new file mode 100644
index 0000000000..e898bcda10
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Brahmi.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Brahmi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01107F
+ ],
+ ranges: [
+ [0x011000, 0x01104D],
+ [0x011052, 0x01106F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Brahmi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Brahmi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Brah}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Brah}"
+);
+testPropertyEscapes(
+ /^\p{scx=Brahmi}+$/u,
+ matchSymbols,
+ "\\p{scx=Brahmi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Brah}+$/u,
+ matchSymbols,
+ "\\p{scx=Brah}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010FFF],
+ [0x01104E, 0x011051],
+ [0x011070, 0x01107E],
+ [0x011080, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Brahmi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Brahmi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Brah}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Brah}"
+);
+testPropertyEscapes(
+ /^\P{scx=Brahmi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Brahmi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Brah}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Brah}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Braille.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Braille.js
new file mode 100644
index 0000000000..4fb2d3f79e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Braille.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Braille`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x002800, 0x0028FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Braille}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Braille}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Brai}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Brai}"
+);
+testPropertyEscapes(
+ /^\p{scx=Braille}+$/u,
+ matchSymbols,
+ "\\p{scx=Braille}"
+);
+testPropertyEscapes(
+ /^\p{scx=Brai}+$/u,
+ matchSymbols,
+ "\\p{scx=Brai}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0027FF],
+ [0x002900, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Braille}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Braille}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Brai}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Brai}"
+);
+testPropertyEscapes(
+ /^\P{scx=Braille}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Braille}"
+);
+testPropertyEscapes(
+ /^\P{scx=Brai}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Brai}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buginese.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buginese.js
new file mode 100644
index 0000000000..54df864ac6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buginese.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Buginese`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00A9CF
+ ],
+ ranges: [
+ [0x001A00, 0x001A1B],
+ [0x001A1E, 0x001A1F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Buginese}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Buginese}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Bugi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Bugi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Buginese}+$/u,
+ matchSymbols,
+ "\\p{scx=Buginese}"
+);
+testPropertyEscapes(
+ /^\p{scx=Bugi}+$/u,
+ matchSymbols,
+ "\\p{scx=Bugi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0019FF],
+ [0x001A1C, 0x001A1D],
+ [0x001A20, 0x00A9CE],
+ [0x00A9D0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Buginese}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Buginese}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Bugi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Bugi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Buginese}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Buginese}"
+);
+testPropertyEscapes(
+ /^\P{scx=Bugi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Bugi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buhid.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buhid.js
new file mode 100644
index 0000000000..e25cdfac9c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buhid.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Buhid`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001735, 0x001736],
+ [0x001740, 0x001753]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Buhid}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Buhid}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Buhd}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Buhd}"
+);
+testPropertyEscapes(
+ /^\p{scx=Buhid}+$/u,
+ matchSymbols,
+ "\\p{scx=Buhid}"
+);
+testPropertyEscapes(
+ /^\p{scx=Buhd}+$/u,
+ matchSymbols,
+ "\\p{scx=Buhd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001734],
+ [0x001737, 0x00173F],
+ [0x001754, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Buhid}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Buhid}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Buhd}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Buhd}"
+);
+testPropertyEscapes(
+ /^\P{scx=Buhid}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Buhid}"
+);
+testPropertyEscapes(
+ /^\P{scx=Buhd}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Buhd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Canadian_Aboriginal.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Canadian_Aboriginal.js
new file mode 100644
index 0000000000..85fbe6b8f2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Canadian_Aboriginal.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Canadian_Aboriginal`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001400, 0x00167F],
+ [0x0018B0, 0x0018F5]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Canadian_Aboriginal}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Canadian_Aboriginal}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cans}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cans}"
+);
+testPropertyEscapes(
+ /^\p{scx=Canadian_Aboriginal}+$/u,
+ matchSymbols,
+ "\\p{scx=Canadian_Aboriginal}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cans}+$/u,
+ matchSymbols,
+ "\\p{scx=Cans}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0013FF],
+ [0x001680, 0x0018AF],
+ [0x0018F6, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Canadian_Aboriginal}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Canadian_Aboriginal}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cans}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cans}"
+);
+testPropertyEscapes(
+ /^\P{scx=Canadian_Aboriginal}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Canadian_Aboriginal}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cans}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cans}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Carian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Carian.js
new file mode 100644
index 0000000000..520d8c9f16
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Carian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Carian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0102A0, 0x0102D0]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Carian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Carian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cari}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cari}"
+);
+testPropertyEscapes(
+ /^\p{scx=Carian}+$/u,
+ matchSymbols,
+ "\\p{scx=Carian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cari}+$/u,
+ matchSymbols,
+ "\\p{scx=Cari}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01029F],
+ [0x0102D1, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Carian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Carian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cari}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cari}"
+);
+testPropertyEscapes(
+ /^\P{scx=Carian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Carian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cari}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cari}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Caucasian_Albanian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Caucasian_Albanian.js
new file mode 100644
index 0000000000..8f7c9632e5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Caucasian_Albanian.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Caucasian_Albanian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01056F
+ ],
+ ranges: [
+ [0x010530, 0x010563]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Caucasian_Albanian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Caucasian_Albanian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Aghb}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Aghb}"
+);
+testPropertyEscapes(
+ /^\p{scx=Caucasian_Albanian}+$/u,
+ matchSymbols,
+ "\\p{scx=Caucasian_Albanian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Aghb}+$/u,
+ matchSymbols,
+ "\\p{scx=Aghb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01052F],
+ [0x010564, 0x01056E],
+ [0x010570, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Caucasian_Albanian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Caucasian_Albanian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Aghb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Aghb}"
+);
+testPropertyEscapes(
+ /^\P{scx=Caucasian_Albanian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Caucasian_Albanian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Aghb}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Aghb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chakma.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chakma.js
new file mode 100644
index 0000000000..8b6f09c410
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chakma.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Chakma`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0009E6, 0x0009EF],
+ [0x001040, 0x001049],
+ [0x011100, 0x011134],
+ [0x011136, 0x011147]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Chakma}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Chakma}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cakm}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cakm}"
+);
+testPropertyEscapes(
+ /^\p{scx=Chakma}+$/u,
+ matchSymbols,
+ "\\p{scx=Chakma}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cakm}+$/u,
+ matchSymbols,
+ "\\p{scx=Cakm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011135
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0009E5],
+ [0x0009F0, 0x00103F],
+ [0x00104A, 0x00DBFF],
+ [0x00E000, 0x0110FF],
+ [0x011148, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Chakma}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Chakma}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cakm}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cakm}"
+);
+testPropertyEscapes(
+ /^\P{scx=Chakma}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Chakma}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cakm}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cakm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cham.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cham.js
new file mode 100644
index 0000000000..ea1c3c171c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cham.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Cham`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00AA00, 0x00AA36],
+ [0x00AA40, 0x00AA4D],
+ [0x00AA50, 0x00AA59],
+ [0x00AA5C, 0x00AA5F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cham}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cham}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cham}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cham}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cham}+$/u,
+ matchSymbols,
+ "\\p{scx=Cham}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cham}+$/u,
+ matchSymbols,
+ "\\p{scx=Cham}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A9FF],
+ [0x00AA37, 0x00AA3F],
+ [0x00AA4E, 0x00AA4F],
+ [0x00AA5A, 0x00AA5B],
+ [0x00AA60, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cham}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cham}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cham}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cham}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cham}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cham}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cham}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cham}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cherokee.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cherokee.js
new file mode 100644
index 0000000000..484d87bd04
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cherokee.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Cherokee`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x00AB70, 0x00ABBF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cherokee}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cherokee}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cher}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cher}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cherokee}+$/u,
+ matchSymbols,
+ "\\p{scx=Cherokee}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cher}+$/u,
+ matchSymbols,
+ "\\p{scx=Cher}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x00AB6F],
+ [0x00ABC0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cherokee}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cherokee}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cher}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cher}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cherokee}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cherokee}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cher}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cher}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chorasmian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chorasmian.js
new file mode 100644
index 0000000000..ad66cc3d5f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chorasmian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Chorasmian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010FB0, 0x010FCB]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Chorasmian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Chorasmian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Chrs}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Chrs}"
+);
+testPropertyEscapes(
+ /^\p{scx=Chorasmian}+$/u,
+ matchSymbols,
+ "\\p{scx=Chorasmian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Chrs}+$/u,
+ matchSymbols,
+ "\\p{scx=Chrs}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010FAF],
+ [0x010FCC, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Chorasmian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Chorasmian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Chrs}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Chrs}"
+);
+testPropertyEscapes(
+ /^\P{scx=Chorasmian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Chorasmian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Chrs}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Chrs}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js
new file mode 100644
index 0000000000..63854ab63b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js
@@ -0,0 +1,368 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Common`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x000374,
+ 0x00037E,
+ 0x000385,
+ 0x000387,
+ 0x000605,
+ 0x0006DD,
+ 0x0008E2,
+ 0x000E3F,
+ 0x003000,
+ 0x003004,
+ 0x003012,
+ 0x003020,
+ 0x003036,
+ 0x00327F,
+ 0x0033FF,
+ 0x00AB5B,
+ 0x00FEFF,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x0E0001
+ ],
+ ranges: [
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0002B9, 0x0002DF],
+ [0x0002E5, 0x0002E9],
+ [0x0002EC, 0x0002FF],
+ [0x000FD5, 0x000FD8],
+ [0x0016EB, 0x0016ED],
+ [0x002000, 0x00200B],
+ [0x00200E, 0x00202E],
+ [0x002030, 0x002064],
+ [0x002066, 0x002070],
+ [0x002074, 0x00207E],
+ [0x002080, 0x00208E],
+ [0x0020A0, 0x0020BF],
+ [0x002100, 0x002125],
+ [0x002127, 0x002129],
+ [0x00212C, 0x002131],
+ [0x002133, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002189, 0x00218B],
+ [0x002190, 0x002426],
+ [0x002440, 0x00244A],
+ [0x002460, 0x0027FF],
+ [0x002900, 0x002B73],
+ [0x002B76, 0x002B95],
+ [0x002B97, 0x002BFF],
+ [0x002E00, 0x002E42],
+ [0x002E44, 0x002E52],
+ [0x002FF0, 0x002FFB],
+ [0x003248, 0x00325F],
+ [0x0032B1, 0x0032BF],
+ [0x0032CC, 0x0032CF],
+ [0x003371, 0x00337A],
+ [0x003380, 0x0033DF],
+ [0x004DC0, 0x004DFF],
+ [0x00A708, 0x00A721],
+ [0x00A788, 0x00A78A],
+ [0x00AB6A, 0x00AB6B],
+ [0x00FD3E, 0x00FD3F],
+ [0x00FE10, 0x00FE19],
+ [0x00FE30, 0x00FE44],
+ [0x00FE47, 0x00FE52],
+ [0x00FE54, 0x00FE66],
+ [0x00FE68, 0x00FE6B],
+ [0x00FF01, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x00FF60],
+ [0x00FFE0, 0x00FFE6],
+ [0x00FFE8, 0x00FFEE],
+ [0x00FFF9, 0x00FFFD],
+ [0x010190, 0x01019C],
+ [0x0101D0, 0x0101FC],
+ [0x016FE2, 0x016FE3],
+ [0x01D000, 0x01D0F5],
+ [0x01D100, 0x01D126],
+ [0x01D129, 0x01D166],
+ [0x01D16A, 0x01D17A],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D1E8],
+ [0x01D2E0, 0x01D2F3],
+ [0x01D300, 0x01D356],
+ [0x01D372, 0x01D378],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D7CB],
+ [0x01D7CE, 0x01D7FF],
+ [0x01EC71, 0x01ECB4],
+ [0x01ED01, 0x01ED3D],
+ [0x01F000, 0x01F02B],
+ [0x01F030, 0x01F093],
+ [0x01F0A0, 0x01F0AE],
+ [0x01F0B1, 0x01F0BF],
+ [0x01F0C1, 0x01F0CF],
+ [0x01F0D1, 0x01F0F5],
+ [0x01F100, 0x01F1AD],
+ [0x01F1E6, 0x01F1FF],
+ [0x01F201, 0x01F202],
+ [0x01F210, 0x01F23B],
+ [0x01F240, 0x01F248],
+ [0x01F260, 0x01F265],
+ [0x01F300, 0x01F6D7],
+ [0x01F6E0, 0x01F6EC],
+ [0x01F6F0, 0x01F6FC],
+ [0x01F700, 0x01F773],
+ [0x01F780, 0x01F7D8],
+ [0x01F7E0, 0x01F7EB],
+ [0x01F800, 0x01F80B],
+ [0x01F810, 0x01F847],
+ [0x01F850, 0x01F859],
+ [0x01F860, 0x01F887],
+ [0x01F890, 0x01F8AD],
+ [0x01F8B0, 0x01F8B1],
+ [0x01F900, 0x01F978],
+ [0x01F97A, 0x01F9CB],
+ [0x01F9CD, 0x01FA53],
+ [0x01FA60, 0x01FA6D],
+ [0x01FA70, 0x01FA74],
+ [0x01FA78, 0x01FA7A],
+ [0x01FA80, 0x01FA86],
+ [0x01FA90, 0x01FAA8],
+ [0x01FAB0, 0x01FAB6],
+ [0x01FAC0, 0x01FAC2],
+ [0x01FAD0, 0x01FAD6],
+ [0x01FB00, 0x01FB92],
+ [0x01FB94, 0x01FBCA],
+ [0x01FBF0, 0x01FBF9],
+ [0x0E0020, 0x0E007F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Common}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Common}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Zyyy}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Zyyy}"
+);
+testPropertyEscapes(
+ /^\p{scx=Common}+$/u,
+ matchSymbols,
+ "\\p{scx=Common}"
+);
+testPropertyEscapes(
+ /^\p{scx=Zyyy}+$/u,
+ matchSymbols,
+ "\\p{scx=Zyyy}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000BA,
+ 0x000386,
+ 0x00202F,
+ 0x002065,
+ 0x00207F,
+ 0x002126,
+ 0x002132,
+ 0x00214E,
+ 0x002B96,
+ 0x002E43,
+ 0x00FE53,
+ 0x00FE67,
+ 0x00FF00,
+ 0x00FFE7,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01F0C0,
+ 0x01F0D0,
+ 0x01F200,
+ 0x01F979,
+ 0x01F9CC,
+ 0x01FB93
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002B8],
+ [0x0002E0, 0x0002E4],
+ [0x0002EA, 0x0002EB],
+ [0x000300, 0x000373],
+ [0x000375, 0x00037D],
+ [0x00037F, 0x000384],
+ [0x000388, 0x000604],
+ [0x000606, 0x0006DC],
+ [0x0006DE, 0x0008E1],
+ [0x0008E3, 0x000E3E],
+ [0x000E40, 0x000FD4],
+ [0x000FD9, 0x0016EA],
+ [0x0016EE, 0x001FFF],
+ [0x00200C, 0x00200D],
+ [0x002071, 0x002073],
+ [0x00208F, 0x00209F],
+ [0x0020C0, 0x0020FF],
+ [0x00212A, 0x00212B],
+ [0x002160, 0x002188],
+ [0x00218C, 0x00218F],
+ [0x002427, 0x00243F],
+ [0x00244B, 0x00245F],
+ [0x002800, 0x0028FF],
+ [0x002B74, 0x002B75],
+ [0x002C00, 0x002DFF],
+ [0x002E53, 0x002FEF],
+ [0x002FFC, 0x002FFF],
+ [0x003001, 0x003003],
+ [0x003005, 0x003011],
+ [0x003013, 0x00301F],
+ [0x003021, 0x003035],
+ [0x003037, 0x003247],
+ [0x003260, 0x00327E],
+ [0x003280, 0x0032B0],
+ [0x0032C0, 0x0032CB],
+ [0x0032D0, 0x003370],
+ [0x00337B, 0x00337F],
+ [0x0033E0, 0x0033FE],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x00A707],
+ [0x00A722, 0x00A787],
+ [0x00A78B, 0x00AB5A],
+ [0x00AB5C, 0x00AB69],
+ [0x00AB6C, 0x00DBFF],
+ [0x00E000, 0x00FD3D],
+ [0x00FD40, 0x00FE0F],
+ [0x00FE1A, 0x00FE2F],
+ [0x00FE45, 0x00FE46],
+ [0x00FE6C, 0x00FEFE],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x00FF61, 0x00FFDF],
+ [0x00FFEF, 0x00FFF8],
+ [0x00FFFE, 0x01018F],
+ [0x01019D, 0x0101CF],
+ [0x0101FD, 0x016FE1],
+ [0x016FE4, 0x01CFFF],
+ [0x01D0F6, 0x01D0FF],
+ [0x01D127, 0x01D128],
+ [0x01D167, 0x01D169],
+ [0x01D17B, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D1E9, 0x01D2DF],
+ [0x01D2F4, 0x01D2FF],
+ [0x01D357, 0x01D371],
+ [0x01D379, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01D7CD],
+ [0x01D800, 0x01EC70],
+ [0x01ECB5, 0x01ED00],
+ [0x01ED3E, 0x01EFFF],
+ [0x01F02C, 0x01F02F],
+ [0x01F094, 0x01F09F],
+ [0x01F0AF, 0x01F0B0],
+ [0x01F0F6, 0x01F0FF],
+ [0x01F1AE, 0x01F1E5],
+ [0x01F203, 0x01F20F],
+ [0x01F23C, 0x01F23F],
+ [0x01F249, 0x01F25F],
+ [0x01F266, 0x01F2FF],
+ [0x01F6D8, 0x01F6DF],
+ [0x01F6ED, 0x01F6EF],
+ [0x01F6FD, 0x01F6FF],
+ [0x01F774, 0x01F77F],
+ [0x01F7D9, 0x01F7DF],
+ [0x01F7EC, 0x01F7FF],
+ [0x01F80C, 0x01F80F],
+ [0x01F848, 0x01F84F],
+ [0x01F85A, 0x01F85F],
+ [0x01F888, 0x01F88F],
+ [0x01F8AE, 0x01F8AF],
+ [0x01F8B2, 0x01F8FF],
+ [0x01FA54, 0x01FA5F],
+ [0x01FA6E, 0x01FA6F],
+ [0x01FA75, 0x01FA77],
+ [0x01FA7B, 0x01FA7F],
+ [0x01FA87, 0x01FA8F],
+ [0x01FAA9, 0x01FAAF],
+ [0x01FAB7, 0x01FABF],
+ [0x01FAC3, 0x01FACF],
+ [0x01FAD7, 0x01FAFF],
+ [0x01FBCB, 0x01FBEF],
+ [0x01FBFA, 0x0E0000],
+ [0x0E0002, 0x0E001F],
+ [0x0E0080, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Common}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Common}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Zyyy}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Zyyy}"
+);
+testPropertyEscapes(
+ /^\P{scx=Common}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Common}"
+);
+testPropertyEscapes(
+ /^\P{scx=Zyyy}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Zyyy}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Coptic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Coptic.js
new file mode 100644
index 0000000000..bd125561f4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Coptic.js
@@ -0,0 +1,99 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Coptic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0003E2, 0x0003EF],
+ [0x002C80, 0x002CF3],
+ [0x002CF9, 0x002CFF],
+ [0x0102E0, 0x0102FB]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Coptic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Coptic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Copt}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Copt}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Qaac}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Qaac}"
+);
+testPropertyEscapes(
+ /^\p{scx=Coptic}+$/u,
+ matchSymbols,
+ "\\p{scx=Coptic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Copt}+$/u,
+ matchSymbols,
+ "\\p{scx=Copt}"
+);
+testPropertyEscapes(
+ /^\p{scx=Qaac}+$/u,
+ matchSymbols,
+ "\\p{scx=Qaac}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0003E1],
+ [0x0003F0, 0x002C7F],
+ [0x002CF4, 0x002CF8],
+ [0x002D00, 0x00DBFF],
+ [0x00E000, 0x0102DF],
+ [0x0102FC, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Coptic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Coptic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Copt}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Copt}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Qaac}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Qaac}"
+);
+testPropertyEscapes(
+ /^\P{scx=Coptic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Coptic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Copt}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Copt}"
+);
+testPropertyEscapes(
+ /^\P{scx=Qaac}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Qaac}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cuneiform.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cuneiform.js
new file mode 100644
index 0000000000..1f9b1d7c5f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cuneiform.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Cuneiform`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x012000, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012470, 0x012474],
+ [0x012480, 0x012543]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cuneiform}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cuneiform}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Xsux}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Xsux}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cuneiform}+$/u,
+ matchSymbols,
+ "\\p{scx=Cuneiform}"
+);
+testPropertyEscapes(
+ /^\p{scx=Xsux}+$/u,
+ matchSymbols,
+ "\\p{scx=Xsux}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01246F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011FFF],
+ [0x01239A, 0x0123FF],
+ [0x012475, 0x01247F],
+ [0x012544, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cuneiform}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cuneiform}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Xsux}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Xsux}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cuneiform}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cuneiform}"
+);
+testPropertyEscapes(
+ /^\P{scx=Xsux}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Xsux}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cypriot.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cypriot.js
new file mode 100644
index 0000000000..a03f80971e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cypriot.js
@@ -0,0 +1,91 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Cypriot`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x010808,
+ 0x01083C,
+ 0x01083F
+ ],
+ ranges: [
+ [0x010100, 0x010102],
+ [0x010107, 0x010133],
+ [0x010137, 0x01013F],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cypriot}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cypriot}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cprt}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cprt}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cypriot}+$/u,
+ matchSymbols,
+ "\\p{scx=Cypriot}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cprt}+$/u,
+ matchSymbols,
+ "\\p{scx=Cprt}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x010809,
+ 0x010836
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0100FF],
+ [0x010103, 0x010106],
+ [0x010134, 0x010136],
+ [0x010140, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x010840, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cypriot}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cypriot}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cprt}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cprt}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cypriot}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cypriot}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cprt}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cprt}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cyrillic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cyrillic.js
new file mode 100644
index 0000000000..9f7612e613
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cyrillic.js
@@ -0,0 +1,90 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Cyrillic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001D2B,
+ 0x001D78,
+ 0x001DF8,
+ 0x002E43
+ ],
+ ranges: [
+ [0x000400, 0x00052F],
+ [0x001C80, 0x001C88],
+ [0x002DE0, 0x002DFF],
+ [0x00A640, 0x00A69F],
+ [0x00FE2E, 0x00FE2F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cyrillic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cyrillic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Cyrl}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Cyrl}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cyrillic}+$/u,
+ matchSymbols,
+ "\\p{scx=Cyrillic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Cyrl}+$/u,
+ matchSymbols,
+ "\\p{scx=Cyrl}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0003FF],
+ [0x000530, 0x001C7F],
+ [0x001C89, 0x001D2A],
+ [0x001D2C, 0x001D77],
+ [0x001D79, 0x001DF7],
+ [0x001DF9, 0x002DDF],
+ [0x002E00, 0x002E42],
+ [0x002E44, 0x00A63F],
+ [0x00A6A0, 0x00DBFF],
+ [0x00E000, 0x00FE2D],
+ [0x00FE30, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cyrillic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cyrillic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Cyrl}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Cyrl}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cyrillic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cyrillic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Cyrl}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Cyrl}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Deseret.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Deseret.js
new file mode 100644
index 0000000000..35fa22e513
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Deseret.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Deseret`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010400, 0x01044F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Deseret}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Deseret}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Dsrt}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Dsrt}"
+);
+testPropertyEscapes(
+ /^\p{scx=Deseret}+$/u,
+ matchSymbols,
+ "\\p{scx=Deseret}"
+);
+testPropertyEscapes(
+ /^\p{scx=Dsrt}+$/u,
+ matchSymbols,
+ "\\p{scx=Dsrt}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0103FF],
+ [0x010450, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Deseret}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Deseret}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Dsrt}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Dsrt}"
+);
+testPropertyEscapes(
+ /^\P{scx=Deseret}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Deseret}"
+);
+testPropertyEscapes(
+ /^\P{scx=Dsrt}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Dsrt}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Devanagari.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Devanagari.js
new file mode 100644
index 0000000000..c0241a4092
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Devanagari.js
@@ -0,0 +1,87 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Devanagari`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0020F0
+ ],
+ ranges: [
+ [0x000900, 0x000952],
+ [0x000955, 0x00097F],
+ [0x001CD0, 0x001CF6],
+ [0x001CF8, 0x001CF9],
+ [0x00A830, 0x00A839],
+ [0x00A8E0, 0x00A8FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Devanagari}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Devanagari}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Deva}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Deva}"
+);
+testPropertyEscapes(
+ /^\p{scx=Devanagari}+$/u,
+ matchSymbols,
+ "\\p{scx=Devanagari}"
+);
+testPropertyEscapes(
+ /^\p{scx=Deva}+$/u,
+ matchSymbols,
+ "\\p{scx=Deva}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x001CF7
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0008FF],
+ [0x000953, 0x000954],
+ [0x000980, 0x001CCF],
+ [0x001CFA, 0x0020EF],
+ [0x0020F1, 0x00A82F],
+ [0x00A83A, 0x00A8DF],
+ [0x00A900, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Devanagari}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Devanagari}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Deva}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Deva}"
+);
+testPropertyEscapes(
+ /^\P{scx=Devanagari}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Devanagari}"
+);
+testPropertyEscapes(
+ /^\P{scx=Deva}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Deva}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Dives_Akuru.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Dives_Akuru.js
new file mode 100644
index 0000000000..19968d05e0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Dives_Akuru.js
@@ -0,0 +1,89 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Dives_Akuru`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x011909
+ ],
+ ranges: [
+ [0x011900, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x011935],
+ [0x011937, 0x011938],
+ [0x01193B, 0x011946],
+ [0x011950, 0x011959]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Dives_Akuru}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Dives_Akuru}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Diak}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Diak}"
+);
+testPropertyEscapes(
+ /^\p{scx=Dives_Akuru}+$/u,
+ matchSymbols,
+ "\\p{scx=Dives_Akuru}"
+);
+testPropertyEscapes(
+ /^\p{scx=Diak}+$/u,
+ matchSymbols,
+ "\\p{scx=Diak}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011914,
+ 0x011917,
+ 0x011936
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0118FF],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011939, 0x01193A],
+ [0x011947, 0x01194F],
+ [0x01195A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Dives_Akuru}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Dives_Akuru}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Diak}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Diak}"
+);
+testPropertyEscapes(
+ /^\P{scx=Dives_Akuru}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Dives_Akuru}"
+);
+testPropertyEscapes(
+ /^\P{scx=Diak}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Diak}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Dogra.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Dogra.js
new file mode 100644
index 0000000000..8f78f9d9a6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Dogra.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Dogra`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000964, 0x00096F],
+ [0x00A830, 0x00A839],
+ [0x011800, 0x01183B]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Dogra}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Dogra}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Dogr}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Dogr}"
+);
+testPropertyEscapes(
+ /^\p{scx=Dogra}+$/u,
+ matchSymbols,
+ "\\p{scx=Dogra}"
+);
+testPropertyEscapes(
+ /^\p{scx=Dogr}+$/u,
+ matchSymbols,
+ "\\p{scx=Dogr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000963],
+ [0x000970, 0x00A82F],
+ [0x00A83A, 0x00DBFF],
+ [0x00E000, 0x0117FF],
+ [0x01183C, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Dogra}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Dogra}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Dogr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Dogr}"
+);
+testPropertyEscapes(
+ /^\P{scx=Dogra}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Dogra}"
+);
+testPropertyEscapes(
+ /^\P{scx=Dogr}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Dogr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Duployan.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Duployan.js
new file mode 100644
index 0000000000..95ff12c35e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Duployan.js
@@ -0,0 +1,81 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Duployan`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01BC9C, 0x01BCA3]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Duployan}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Duployan}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Dupl}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Dupl}"
+);
+testPropertyEscapes(
+ /^\p{scx=Duployan}+$/u,
+ matchSymbols,
+ "\\p{scx=Duployan}"
+);
+testPropertyEscapes(
+ /^\p{scx=Dupl}+$/u,
+ matchSymbols,
+ "\\p{scx=Dupl}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01BC9B],
+ [0x01BCA4, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Duployan}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Duployan}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Dupl}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Dupl}"
+);
+testPropertyEscapes(
+ /^\P{scx=Duployan}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Duployan}"
+);
+testPropertyEscapes(
+ /^\P{scx=Dupl}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Dupl}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Egyptian_Hieroglyphs.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Egyptian_Hieroglyphs.js
new file mode 100644
index 0000000000..b9e30afa7e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Egyptian_Hieroglyphs.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Egyptian_Hieroglyphs`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x013000, 0x01342E],
+ [0x013430, 0x013438]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Egyptian_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Egyptian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Egyp}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Egyp}"
+);
+testPropertyEscapes(
+ /^\p{scx=Egyptian_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{scx=Egyptian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{scx=Egyp}+$/u,
+ matchSymbols,
+ "\\p{scx=Egyp}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01342F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x012FFF],
+ [0x013439, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Egyptian_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Egyptian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Egyp}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Egyp}"
+);
+testPropertyEscapes(
+ /^\P{scx=Egyptian_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Egyptian_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{scx=Egyp}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Egyp}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elbasan.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elbasan.js
new file mode 100644
index 0000000000..449c7e7a40
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elbasan.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Elbasan`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010500, 0x010527]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Elbasan}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Elbasan}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Elba}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Elba}"
+);
+testPropertyEscapes(
+ /^\p{scx=Elbasan}+$/u,
+ matchSymbols,
+ "\\p{scx=Elbasan}"
+);
+testPropertyEscapes(
+ /^\p{scx=Elba}+$/u,
+ matchSymbols,
+ "\\p{scx=Elba}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0104FF],
+ [0x010528, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Elbasan}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Elbasan}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Elba}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Elba}"
+);
+testPropertyEscapes(
+ /^\P{scx=Elbasan}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Elbasan}"
+);
+testPropertyEscapes(
+ /^\P{scx=Elba}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Elba}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elymaic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elymaic.js
new file mode 100644
index 0000000000..dd6f5390ca
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elymaic.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Elymaic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010FE0, 0x010FF6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Elymaic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Elymaic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Elym}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Elym}"
+);
+testPropertyEscapes(
+ /^\p{scx=Elymaic}+$/u,
+ matchSymbols,
+ "\\p{scx=Elymaic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Elym}+$/u,
+ matchSymbols,
+ "\\p{scx=Elym}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010FDF],
+ [0x010FF7, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Elymaic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Elymaic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Elym}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Elym}"
+);
+testPropertyEscapes(
+ /^\P{scx=Elymaic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Elymaic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Elym}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Elym}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ethiopic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ethiopic.js
new file mode 100644
index 0000000000..8398b47c36
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ethiopic.js
@@ -0,0 +1,137 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Ethiopic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001258,
+ 0x0012C0
+ ],
+ ranges: [
+ [0x001200, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x00135D, 0x00137C],
+ [0x001380, 0x001399],
+ [0x002D80, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Ethiopic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Ethiopic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Ethi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Ethi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Ethiopic}+$/u,
+ matchSymbols,
+ "\\p{scx=Ethiopic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Ethi}+$/u,
+ matchSymbols,
+ "\\p{scx=Ethi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x00AB27
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0011FF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00135C],
+ [0x00137D, 0x00137F],
+ [0x00139A, 0x002D7F],
+ [0x002D97, 0x002D9F],
+ [0x002DDF, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB2F, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Ethiopic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Ethiopic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Ethi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Ethi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Ethiopic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Ethiopic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Ethi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Ethi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Georgian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Georgian.js
new file mode 100644
index 0000000000..077bc0c04c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Georgian.js
@@ -0,0 +1,91 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Georgian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0010C7,
+ 0x0010CD,
+ 0x002D27,
+ 0x002D2D
+ ],
+ ranges: [
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FF],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x002D00, 0x002D25]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Georgian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Georgian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Geor}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Geor}"
+);
+testPropertyEscapes(
+ /^\p{scx=Georgian}+$/u,
+ matchSymbols,
+ "\\p{scx=Georgian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Geor}+$/u,
+ matchSymbols,
+ "\\p{scx=Geor}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0010C6,
+ 0x002D26
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x001100, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Georgian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Georgian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Geor}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Geor}"
+);
+testPropertyEscapes(
+ /^\P{scx=Georgian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Georgian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Geor}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Geor}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Glagolitic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Glagolitic.js
new file mode 100644
index 0000000000..3fbe3bab34
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Glagolitic.js
@@ -0,0 +1,95 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Glagolitic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000484,
+ 0x000487,
+ 0x002E43,
+ 0x00A66F
+ ],
+ ranges: [
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Glagolitic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Glagolitic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Glag}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Glag}"
+);
+testPropertyEscapes(
+ /^\p{scx=Glagolitic}+$/u,
+ matchSymbols,
+ "\\p{scx=Glagolitic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Glag}+$/u,
+ matchSymbols,
+ "\\p{scx=Glag}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x002C2F,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000483],
+ [0x000485, 0x000486],
+ [0x000488, 0x002BFF],
+ [0x002C5F, 0x002E42],
+ [0x002E44, 0x00A66E],
+ [0x00A670, 0x00DBFF],
+ [0x00E000, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Glagolitic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Glagolitic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Glag}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Glag}"
+);
+testPropertyEscapes(
+ /^\P{scx=Glagolitic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Glagolitic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Glag}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Glag}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gothic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gothic.js
new file mode 100644
index 0000000000..cea4b18b13
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gothic.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Gothic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010330, 0x01034A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Gothic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Gothic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Goth}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Goth}"
+);
+testPropertyEscapes(
+ /^\p{scx=Gothic}+$/u,
+ matchSymbols,
+ "\\p{scx=Gothic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Goth}+$/u,
+ matchSymbols,
+ "\\p{scx=Goth}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01032F],
+ [0x01034B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Gothic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Gothic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Goth}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Goth}"
+);
+testPropertyEscapes(
+ /^\P{scx=Gothic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Gothic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Goth}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Goth}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Grantha.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Grantha.js
new file mode 100644
index 0000000000..79e55a0cbe
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Grantha.js
@@ -0,0 +1,123 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Grantha`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001CD0,
+ 0x0020F0,
+ 0x011350,
+ 0x011357,
+ 0x011FD3
+ ],
+ ranges: [
+ [0x000951, 0x000952],
+ [0x000964, 0x000965],
+ [0x000BE6, 0x000BF3],
+ [0x001CD2, 0x001CD3],
+ [0x001CF2, 0x001CF4],
+ [0x001CF8, 0x001CF9],
+ [0x011300, 0x011303],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01133B, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134D],
+ [0x01135D, 0x011363],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x011FD0, 0x011FD1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Grantha}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Grantha}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Gran}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Gran}"
+);
+testPropertyEscapes(
+ /^\p{scx=Grantha}+$/u,
+ matchSymbols,
+ "\\p{scx=Grantha}"
+);
+testPropertyEscapes(
+ /^\p{scx=Gran}+$/u,
+ matchSymbols,
+ "\\p{scx=Gran}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x001CD1,
+ 0x011304,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x01133A,
+ 0x011FD2
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000953, 0x000963],
+ [0x000966, 0x000BE5],
+ [0x000BF4, 0x001CCF],
+ [0x001CD4, 0x001CF1],
+ [0x001CF5, 0x001CF7],
+ [0x001CFA, 0x0020EF],
+ [0x0020F1, 0x00DBFF],
+ [0x00E000, 0x0112FF],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134E, 0x01134F],
+ [0x011351, 0x011356],
+ [0x011358, 0x01135C],
+ [0x011364, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x011FCF],
+ [0x011FD4, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Grantha}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Grantha}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Gran}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Gran}"
+);
+testPropertyEscapes(
+ /^\P{scx=Grantha}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Grantha}"
+);
+testPropertyEscapes(
+ /^\P{scx=Gran}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Gran}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Greek.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Greek.js
new file mode 100644
index 0000000000..8ff0406bc1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Greek.js
@@ -0,0 +1,149 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Greek`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000342,
+ 0x000345,
+ 0x00037F,
+ 0x000384,
+ 0x000386,
+ 0x00038C,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x002126,
+ 0x00AB65,
+ 0x0101A0
+ ],
+ ranges: [
+ [0x000370, 0x000373],
+ [0x000375, 0x000377],
+ [0x00037A, 0x00037D],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003E1],
+ [0x0003F0, 0x0003FF],
+ [0x001D26, 0x001D2A],
+ [0x001D5D, 0x001D61],
+ [0x001D66, 0x001D6A],
+ [0x001DBF, 0x001DC1],
+ [0x001F00, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FC4],
+ [0x001FC6, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FDD, 0x001FEF],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFE],
+ [0x010140, 0x01018E],
+ [0x01D200, 0x01D245]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Greek}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Greek}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Grek}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Grek}"
+);
+testPropertyEscapes(
+ /^\p{scx=Greek}+$/u,
+ matchSymbols,
+ "\\p{scx=Greek}"
+);
+testPropertyEscapes(
+ /^\p{scx=Grek}+$/u,
+ matchSymbols,
+ "\\p{scx=Grek}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000374,
+ 0x00037E,
+ 0x000385,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FC5,
+ 0x001FDC,
+ 0x001FF5
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000341],
+ [0x000343, 0x000344],
+ [0x000346, 0x00036F],
+ [0x000378, 0x000379],
+ [0x000380, 0x000383],
+ [0x0003E2, 0x0003EF],
+ [0x000400, 0x001D25],
+ [0x001D2B, 0x001D5C],
+ [0x001D62, 0x001D65],
+ [0x001D6B, 0x001DBE],
+ [0x001DC2, 0x001EFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FD4, 0x001FD5],
+ [0x001FF0, 0x001FF1],
+ [0x001FFF, 0x002125],
+ [0x002127, 0x00AB64],
+ [0x00AB66, 0x00DBFF],
+ [0x00E000, 0x01013F],
+ [0x01018F, 0x01019F],
+ [0x0101A1, 0x01D1FF],
+ [0x01D246, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Greek}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Greek}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Grek}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Grek}"
+);
+testPropertyEscapes(
+ /^\P{scx=Greek}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Greek}"
+);
+testPropertyEscapes(
+ /^\P{scx=Grek}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Grek}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gujarati.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gujarati.js
new file mode 100644
index 0000000000..6e3f99d9c8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gujarati.js
@@ -0,0 +1,107 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Gujarati`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000AD0
+ ],
+ ranges: [
+ [0x000951, 0x000952],
+ [0x000964, 0x000965],
+ [0x000A81, 0x000A83],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000ABC, 0x000AC5],
+ [0x000AC7, 0x000AC9],
+ [0x000ACB, 0x000ACD],
+ [0x000AE0, 0x000AE3],
+ [0x000AE6, 0x000AF1],
+ [0x000AF9, 0x000AFF],
+ [0x00A830, 0x00A839]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Gujarati}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Gujarati}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Gujr}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Gujr}"
+);
+testPropertyEscapes(
+ /^\p{scx=Gujarati}+$/u,
+ matchSymbols,
+ "\\p{scx=Gujarati}"
+);
+testPropertyEscapes(
+ /^\p{scx=Gujr}+$/u,
+ matchSymbols,
+ "\\p{scx=Gujr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000A84,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000AC6,
+ 0x000ACA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000953, 0x000963],
+ [0x000966, 0x000A80],
+ [0x000ABA, 0x000ABB],
+ [0x000ACE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE4, 0x000AE5],
+ [0x000AF2, 0x000AF8],
+ [0x000B00, 0x00A82F],
+ [0x00A83A, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Gujarati}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Gujarati}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Gujr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Gujr}"
+);
+testPropertyEscapes(
+ /^\P{scx=Gujarati}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Gujarati}"
+);
+testPropertyEscapes(
+ /^\P{scx=Gujr}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Gujr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gunjala_Gondi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gunjala_Gondi.js
new file mode 100644
index 0000000000..2ed0acb154
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gunjala_Gondi.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Gunjala_Gondi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000964, 0x000965],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D8E],
+ [0x011D90, 0x011D91],
+ [0x011D93, 0x011D98],
+ [0x011DA0, 0x011DA9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Gunjala_Gondi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Gunjala_Gondi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Gong}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Gong}"
+);
+testPropertyEscapes(
+ /^\p{scx=Gunjala_Gondi}+$/u,
+ matchSymbols,
+ "\\p{scx=Gunjala_Gondi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Gong}+$/u,
+ matchSymbols,
+ "\\p{scx=Gong}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011D66,
+ 0x011D69,
+ 0x011D8F,
+ 0x011D92
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000963],
+ [0x000966, 0x00DBFF],
+ [0x00E000, 0x011D5F],
+ [0x011D99, 0x011D9F],
+ [0x011DAA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Gunjala_Gondi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Gunjala_Gondi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Gong}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Gong}"
+);
+testPropertyEscapes(
+ /^\P{scx=Gunjala_Gondi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Gunjala_Gondi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Gong}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Gong}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gurmukhi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gurmukhi.js
new file mode 100644
index 0000000000..ce7547b095
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gurmukhi.js
@@ -0,0 +1,111 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Gurmukhi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000A3C,
+ 0x000A51,
+ 0x000A5E
+ ],
+ ranges: [
+ [0x000951, 0x000952],
+ [0x000964, 0x000965],
+ [0x000A01, 0x000A03],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A3E, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A59, 0x000A5C],
+ [0x000A66, 0x000A76],
+ [0x00A830, 0x00A839]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Gurmukhi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Gurmukhi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Guru}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Guru}"
+);
+testPropertyEscapes(
+ /^\p{scx=Gurmukhi}+$/u,
+ matchSymbols,
+ "\\p{scx=Gurmukhi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Guru}+$/u,
+ matchSymbols,
+ "\\p{scx=Guru}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000A04,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A3D,
+ 0x000A5D
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000953, 0x000963],
+ [0x000966, 0x000A00],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A3B],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A58],
+ [0x000A5F, 0x000A65],
+ [0x000A77, 0x00A82F],
+ [0x00A83A, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Gurmukhi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Gurmukhi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Guru}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Guru}"
+);
+testPropertyEscapes(
+ /^\P{scx=Gurmukhi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Gurmukhi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Guru}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Guru}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js
new file mode 100644
index 0000000000..5cc68a9b2c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js
@@ -0,0 +1,145 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Han`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x003030,
+ 0x0030FB,
+ 0x0032FF
+ ],
+ ranges: [
+ [0x002E80, 0x002E99],
+ [0x002E9B, 0x002EF3],
+ [0x002F00, 0x002FD5],
+ [0x003001, 0x003003],
+ [0x003005, 0x003011],
+ [0x003013, 0x00301F],
+ [0x003021, 0x00302D],
+ [0x003037, 0x00303F],
+ [0x003190, 0x00319F],
+ [0x0031C0, 0x0031E3],
+ [0x003220, 0x003247],
+ [0x003280, 0x0032B0],
+ [0x0032C0, 0x0032CB],
+ [0x003358, 0x003370],
+ [0x00337B, 0x00337F],
+ [0x0033E0, 0x0033FE],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00A700, 0x00A707],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FE45, 0x00FE46],
+ [0x00FF61, 0x00FF65],
+ [0x016FF0, 0x016FF1],
+ [0x01D360, 0x01D371],
+ [0x01F250, 0x01F251],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Han}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Han}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hani}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hani}"
+);
+testPropertyEscapes(
+ /^\p{scx=Han}+$/u,
+ matchSymbols,
+ "\\p{scx=Han}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hani}+$/u,
+ matchSymbols,
+ "\\p{scx=Hani}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x002E9A,
+ 0x003004,
+ 0x003012,
+ 0x003020,
+ 0x0033FF
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002E7F],
+ [0x002EF4, 0x002EFF],
+ [0x002FD6, 0x003000],
+ [0x00302E, 0x00302F],
+ [0x003031, 0x003036],
+ [0x003040, 0x0030FA],
+ [0x0030FC, 0x00318F],
+ [0x0031A0, 0x0031BF],
+ [0x0031E4, 0x00321F],
+ [0x003248, 0x00327F],
+ [0x0032B1, 0x0032BF],
+ [0x0032CC, 0x0032FE],
+ [0x003300, 0x003357],
+ [0x003371, 0x00337A],
+ [0x003380, 0x0033DF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x00A6FF],
+ [0x00A708, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FE44],
+ [0x00FE47, 0x00FF60],
+ [0x00FF66, 0x016FEF],
+ [0x016FF2, 0x01D35F],
+ [0x01D372, 0x01F24F],
+ [0x01F252, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Han}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Han}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hani}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hani}"
+);
+testPropertyEscapes(
+ /^\P{scx=Han}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Han}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hani}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hani}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hangul.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hangul.js
new file mode 100644
index 0000000000..b3365de3d4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hangul.js
@@ -0,0 +1,115 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Hangul`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x003037,
+ 0x0030FB
+ ],
+ ranges: [
+ [0x001100, 0x0011FF],
+ [0x003001, 0x003003],
+ [0x003008, 0x003011],
+ [0x003013, 0x00301F],
+ [0x00302E, 0x003030],
+ [0x003131, 0x00318E],
+ [0x003200, 0x00321E],
+ [0x003260, 0x00327E],
+ [0x00A960, 0x00A97C],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00FE45, 0x00FE46],
+ [0x00FF61, 0x00FF65],
+ [0x00FFA0, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hangul}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hangul}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hang}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hang}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hangul}+$/u,
+ matchSymbols,
+ "\\p{scx=Hangul}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hang}+$/u,
+ matchSymbols,
+ "\\p{scx=Hang}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x003012
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0010FF],
+ [0x001200, 0x003000],
+ [0x003004, 0x003007],
+ [0x003020, 0x00302D],
+ [0x003031, 0x003036],
+ [0x003038, 0x0030FA],
+ [0x0030FC, 0x003130],
+ [0x00318F, 0x0031FF],
+ [0x00321F, 0x00325F],
+ [0x00327F, 0x00A95F],
+ [0x00A97D, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00FE44],
+ [0x00FE47, 0x00FF60],
+ [0x00FF66, 0x00FF9F],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hangul}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hangul}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hang}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hang}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hangul}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hangul}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hang}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hang}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanifi_Rohingya.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanifi_Rohingya.js
new file mode 100644
index 0000000000..0afa9c3c0c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanifi_Rohingya.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Hanifi_Rohingya`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00060C,
+ 0x00061B,
+ 0x00061F,
+ 0x000640,
+ 0x0006D4
+ ],
+ ranges: [
+ [0x010D00, 0x010D27],
+ [0x010D30, 0x010D39]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hanifi_Rohingya}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hanifi_Rohingya}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Rohg}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Rohg}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hanifi_Rohingya}+$/u,
+ matchSymbols,
+ "\\p{scx=Hanifi_Rohingya}"
+);
+testPropertyEscapes(
+ /^\p{scx=Rohg}+$/u,
+ matchSymbols,
+ "\\p{scx=Rohg}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00060B],
+ [0x00060D, 0x00061A],
+ [0x00061C, 0x00061E],
+ [0x000620, 0x00063F],
+ [0x000641, 0x0006D3],
+ [0x0006D5, 0x00DBFF],
+ [0x00E000, 0x010CFF],
+ [0x010D28, 0x010D2F],
+ [0x010D3A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hanifi_Rohingya}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hanifi_Rohingya}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Rohg}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Rohg}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hanifi_Rohingya}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hanifi_Rohingya}"
+);
+testPropertyEscapes(
+ /^\P{scx=Rohg}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Rohg}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanunoo.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanunoo.js
new file mode 100644
index 0000000000..d89a00d3b2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanunoo.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Hanunoo`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001720, 0x001736]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hanunoo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hanunoo}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hano}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hano}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hanunoo}+$/u,
+ matchSymbols,
+ "\\p{scx=Hanunoo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hano}+$/u,
+ matchSymbols,
+ "\\p{scx=Hano}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00171F],
+ [0x001737, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hanunoo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hanunoo}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hano}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hano}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hanunoo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hanunoo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hano}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hano}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hatran.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hatran.js
new file mode 100644
index 0000000000..285884da7f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hatran.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Hatran`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x0108FB, 0x0108FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hatran}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hatran}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hatr}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hatr}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hatran}+$/u,
+ matchSymbols,
+ "\\p{scx=Hatran}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hatr}+$/u,
+ matchSymbols,
+ "\\p{scx=Hatr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0108F3
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0108DF],
+ [0x0108F6, 0x0108FA],
+ [0x010900, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hatran}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hatran}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hatr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hatr}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hatran}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hatran}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hatr}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hatr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hebrew.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hebrew.js
new file mode 100644
index 0000000000..d5b9657086
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hebrew.js
@@ -0,0 +1,91 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Hebrew`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00FB3E
+ ],
+ ranges: [
+ [0x000591, 0x0005C7],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F4],
+ [0x00FB1D, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FB4F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hebrew}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hebrew}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hebr}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hebr}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hebrew}+$/u,
+ matchSymbols,
+ "\\p{scx=Hebrew}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hebr}+$/u,
+ matchSymbols,
+ "\\p{scx=Hebr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000590],
+ [0x0005C8, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F5, 0x00DBFF],
+ [0x00E000, 0x00FB1C],
+ [0x00FB50, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hebrew}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hebrew}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hebr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hebr}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hebrew}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hebrew}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hebr}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hebr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hiragana.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hiragana.js
new file mode 100644
index 0000000000..deca5f2c88
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hiragana.js
@@ -0,0 +1,105 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Hiragana`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x003037,
+ 0x00FF70,
+ 0x01F200
+ ],
+ ranges: [
+ [0x003001, 0x003003],
+ [0x003008, 0x003011],
+ [0x003013, 0x00301F],
+ [0x003030, 0x003035],
+ [0x00303C, 0x00303D],
+ [0x003041, 0x003096],
+ [0x003099, 0x0030A0],
+ [0x0030FB, 0x0030FC],
+ [0x00FE45, 0x00FE46],
+ [0x00FF61, 0x00FF65],
+ [0x00FF9E, 0x00FF9F],
+ [0x01B001, 0x01B11E],
+ [0x01B150, 0x01B152]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hiragana}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hiragana}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hira}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hira}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hiragana}+$/u,
+ matchSymbols,
+ "\\p{scx=Hiragana}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hira}+$/u,
+ matchSymbols,
+ "\\p{scx=Hira}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x003012,
+ 0x003036
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x003000],
+ [0x003004, 0x003007],
+ [0x003020, 0x00302F],
+ [0x003038, 0x00303B],
+ [0x00303E, 0x003040],
+ [0x003097, 0x003098],
+ [0x0030A1, 0x0030FA],
+ [0x0030FD, 0x00DBFF],
+ [0x00E000, 0x00FE44],
+ [0x00FE47, 0x00FF60],
+ [0x00FF66, 0x00FF6F],
+ [0x00FF71, 0x00FF9D],
+ [0x00FFA0, 0x01B000],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01F1FF],
+ [0x01F201, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hiragana}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hiragana}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hira}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hira}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hiragana}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hiragana}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hira}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hira}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Imperial_Aramaic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Imperial_Aramaic.js
new file mode 100644
index 0000000000..d4e901fbf9
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Imperial_Aramaic.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Imperial_Aramaic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010840, 0x010855],
+ [0x010857, 0x01085F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Imperial_Aramaic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Imperial_Aramaic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Armi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Armi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Imperial_Aramaic}+$/u,
+ matchSymbols,
+ "\\p{scx=Imperial_Aramaic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Armi}+$/u,
+ matchSymbols,
+ "\\p{scx=Armi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x010856
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01083F],
+ [0x010860, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Imperial_Aramaic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Imperial_Aramaic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Armi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Armi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Imperial_Aramaic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Imperial_Aramaic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Armi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Armi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inherited.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inherited.js
new file mode 100644
index 0000000000..4bd64b43a7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inherited.js
@@ -0,0 +1,129 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Inherited`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001DF9,
+ 0x0101FD
+ ],
+ ranges: [
+ [0x000300, 0x000341],
+ [0x000343, 0x000344],
+ [0x000346, 0x000362],
+ [0x000953, 0x000954],
+ [0x001AB0, 0x001AC0],
+ [0x001DC2, 0x001DF7],
+ [0x001DFB, 0x001DFF],
+ [0x00200C, 0x00200D],
+ [0x0020D0, 0x0020EF],
+ [0x00FE00, 0x00FE0F],
+ [0x00FE20, 0x00FE2D],
+ [0x01D167, 0x01D169],
+ [0x01D17B, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x0E0100, 0x0E01EF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Inherited}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Inherited}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Zinh}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Zinh}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Qaai}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Qaai}"
+);
+testPropertyEscapes(
+ /^\p{scx=Inherited}+$/u,
+ matchSymbols,
+ "\\p{scx=Inherited}"
+);
+testPropertyEscapes(
+ /^\p{scx=Zinh}+$/u,
+ matchSymbols,
+ "\\p{scx=Zinh}"
+);
+testPropertyEscapes(
+ /^\p{scx=Qaai}+$/u,
+ matchSymbols,
+ "\\p{scx=Qaai}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000342,
+ 0x000345,
+ 0x001DF8,
+ 0x001DFA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0002FF],
+ [0x000363, 0x000952],
+ [0x000955, 0x001AAF],
+ [0x001AC1, 0x001DC1],
+ [0x001E00, 0x00200B],
+ [0x00200E, 0x0020CF],
+ [0x0020F0, 0x00DBFF],
+ [0x00E000, 0x00FDFF],
+ [0x00FE10, 0x00FE1F],
+ [0x00FE2E, 0x0101FC],
+ [0x0101FE, 0x01D166],
+ [0x01D16A, 0x01D17A],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x0E00FF],
+ [0x0E01F0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Inherited}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Inherited}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Zinh}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Zinh}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Qaai}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Qaai}"
+);
+testPropertyEscapes(
+ /^\P{scx=Inherited}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Inherited}"
+);
+testPropertyEscapes(
+ /^\P{scx=Zinh}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Zinh}"
+);
+testPropertyEscapes(
+ /^\P{scx=Qaai}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Qaai}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Pahlavi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Pahlavi.js
new file mode 100644
index 0000000000..bb79ec3571
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Pahlavi.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Inscriptional_Pahlavi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010B60, 0x010B72],
+ [0x010B78, 0x010B7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Inscriptional_Pahlavi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Inscriptional_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Phli}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Phli}"
+);
+testPropertyEscapes(
+ /^\p{scx=Inscriptional_Pahlavi}+$/u,
+ matchSymbols,
+ "\\p{scx=Inscriptional_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Phli}+$/u,
+ matchSymbols,
+ "\\p{scx=Phli}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010B5F],
+ [0x010B73, 0x010B77],
+ [0x010B80, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Inscriptional_Pahlavi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Inscriptional_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Phli}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Phli}"
+);
+testPropertyEscapes(
+ /^\P{scx=Inscriptional_Pahlavi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Inscriptional_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Phli}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Phli}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Parthian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Parthian.js
new file mode 100644
index 0000000000..87ea02a188
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Parthian.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Inscriptional_Parthian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010B40, 0x010B55],
+ [0x010B58, 0x010B5F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Inscriptional_Parthian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Inscriptional_Parthian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Prti}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Prti}"
+);
+testPropertyEscapes(
+ /^\p{scx=Inscriptional_Parthian}+$/u,
+ matchSymbols,
+ "\\p{scx=Inscriptional_Parthian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Prti}+$/u,
+ matchSymbols,
+ "\\p{scx=Prti}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010B3F],
+ [0x010B56, 0x010B57],
+ [0x010B60, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Inscriptional_Parthian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Inscriptional_Parthian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Prti}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Prti}"
+);
+testPropertyEscapes(
+ /^\P{scx=Inscriptional_Parthian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Inscriptional_Parthian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Prti}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Prti}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Javanese.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Javanese.js
new file mode 100644
index 0000000000..0325360c9a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Javanese.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Javanese`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A980, 0x00A9CD],
+ [0x00A9CF, 0x00A9D9],
+ [0x00A9DE, 0x00A9DF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Javanese}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Javanese}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Java}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Java}"
+);
+testPropertyEscapes(
+ /^\p{scx=Javanese}+$/u,
+ matchSymbols,
+ "\\p{scx=Javanese}"
+);
+testPropertyEscapes(
+ /^\p{scx=Java}+$/u,
+ matchSymbols,
+ "\\p{scx=Java}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00A9CE
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A97F],
+ [0x00A9DA, 0x00A9DD],
+ [0x00A9E0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Javanese}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Javanese}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Java}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Java}"
+);
+testPropertyEscapes(
+ /^\P{scx=Javanese}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Javanese}"
+);
+testPropertyEscapes(
+ /^\P{scx=Java}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Java}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kaithi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kaithi.js
new file mode 100644
index 0000000000..6ed47e4b70
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kaithi.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Kaithi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0110CD
+ ],
+ ranges: [
+ [0x000966, 0x00096F],
+ [0x00A830, 0x00A839],
+ [0x011080, 0x0110C1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Kaithi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Kaithi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Kthi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Kthi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Kaithi}+$/u,
+ matchSymbols,
+ "\\p{scx=Kaithi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Kthi}+$/u,
+ matchSymbols,
+ "\\p{scx=Kthi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000965],
+ [0x000970, 0x00A82F],
+ [0x00A83A, 0x00DBFF],
+ [0x00E000, 0x01107F],
+ [0x0110C2, 0x0110CC],
+ [0x0110CE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Kaithi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Kaithi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Kthi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Kthi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Kaithi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Kaithi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Kthi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Kthi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kannada.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kannada.js
new file mode 100644
index 0000000000..8088bd05f5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kannada.js
@@ -0,0 +1,115 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Kannada`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000CDE,
+ 0x001CD0,
+ 0x001CD2,
+ 0x001CDA,
+ 0x001CF2,
+ 0x001CF4
+ ],
+ ranges: [
+ [0x000951, 0x000952],
+ [0x000964, 0x000965],
+ [0x000C80, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CBC, 0x000CC4],
+ [0x000CC6, 0x000CC8],
+ [0x000CCA, 0x000CCD],
+ [0x000CD5, 0x000CD6],
+ [0x000CE0, 0x000CE3],
+ [0x000CE6, 0x000CEF],
+ [0x000CF1, 0x000CF2],
+ [0x00A830, 0x00A835]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Kannada}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Kannada}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Knda}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Knda}"
+);
+testPropertyEscapes(
+ /^\p{scx=Kannada}+$/u,
+ matchSymbols,
+ "\\p{scx=Kannada}"
+);
+testPropertyEscapes(
+ /^\p{scx=Knda}+$/u,
+ matchSymbols,
+ "\\p{scx=Knda}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CC5,
+ 0x000CC9,
+ 0x000CDF,
+ 0x000CF0,
+ 0x001CD1,
+ 0x001CF3
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000953, 0x000963],
+ [0x000966, 0x000C7F],
+ [0x000CBA, 0x000CBB],
+ [0x000CCE, 0x000CD4],
+ [0x000CD7, 0x000CDD],
+ [0x000CE4, 0x000CE5],
+ [0x000CF3, 0x001CCF],
+ [0x001CD3, 0x001CD9],
+ [0x001CDB, 0x001CF1],
+ [0x001CF5, 0x00A82F],
+ [0x00A836, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Kannada}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Kannada}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Knda}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Knda}"
+);
+testPropertyEscapes(
+ /^\P{scx=Kannada}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Kannada}"
+);
+testPropertyEscapes(
+ /^\P{scx=Knda}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Knda}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Katakana.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Katakana.js
new file mode 100644
index 0000000000..591116531b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Katakana.js
@@ -0,0 +1,103 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Katakana`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x003037,
+ 0x01B000
+ ],
+ ranges: [
+ [0x003001, 0x003003],
+ [0x003008, 0x003011],
+ [0x003013, 0x00301F],
+ [0x003030, 0x003035],
+ [0x00303C, 0x00303D],
+ [0x003099, 0x00309C],
+ [0x0030A0, 0x0030FF],
+ [0x0031F0, 0x0031FF],
+ [0x0032D0, 0x0032FE],
+ [0x003300, 0x003357],
+ [0x00FE45, 0x00FE46],
+ [0x00FF61, 0x00FF9F],
+ [0x01B164, 0x01B167]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Katakana}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Katakana}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Kana}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Kana}"
+);
+testPropertyEscapes(
+ /^\p{scx=Katakana}+$/u,
+ matchSymbols,
+ "\\p{scx=Katakana}"
+);
+testPropertyEscapes(
+ /^\p{scx=Kana}+$/u,
+ matchSymbols,
+ "\\p{scx=Kana}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x003012,
+ 0x003036,
+ 0x0032FF
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x003000],
+ [0x003004, 0x003007],
+ [0x003020, 0x00302F],
+ [0x003038, 0x00303B],
+ [0x00303E, 0x003098],
+ [0x00309D, 0x00309F],
+ [0x003100, 0x0031EF],
+ [0x003200, 0x0032CF],
+ [0x003358, 0x00DBFF],
+ [0x00E000, 0x00FE44],
+ [0x00FE47, 0x00FF60],
+ [0x00FFA0, 0x01AFFF],
+ [0x01B001, 0x01B163],
+ [0x01B168, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Katakana}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Katakana}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Kana}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Kana}"
+);
+testPropertyEscapes(
+ /^\P{scx=Katakana}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Katakana}"
+);
+testPropertyEscapes(
+ /^\P{scx=Kana}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Kana}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kayah_Li.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kayah_Li.js
new file mode 100644
index 0000000000..db6cb5aa4e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kayah_Li.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Kayah_Li`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A900, 0x00A92F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Kayah_Li}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Kayah_Li}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Kali}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Kali}"
+);
+testPropertyEscapes(
+ /^\p{scx=Kayah_Li}+$/u,
+ matchSymbols,
+ "\\p{scx=Kayah_Li}"
+);
+testPropertyEscapes(
+ /^\p{scx=Kali}+$/u,
+ matchSymbols,
+ "\\p{scx=Kali}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A8FF],
+ [0x00A930, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Kayah_Li}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Kayah_Li}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Kali}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Kali}"
+);
+testPropertyEscapes(
+ /^\P{scx=Kayah_Li}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Kayah_Li}"
+);
+testPropertyEscapes(
+ /^\P{scx=Kali}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Kali}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kharoshthi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kharoshthi.js
new file mode 100644
index 0000000000..de70cde2bc
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kharoshthi.js
@@ -0,0 +1,88 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Kharoshthi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010A00, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A38, 0x010A3A],
+ [0x010A3F, 0x010A48],
+ [0x010A50, 0x010A58]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Kharoshthi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Kharoshthi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Khar}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Khar}"
+);
+testPropertyEscapes(
+ /^\p{scx=Kharoshthi}+$/u,
+ matchSymbols,
+ "\\p{scx=Kharoshthi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Khar}+$/u,
+ matchSymbols,
+ "\\p{scx=Khar}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x010A04,
+ 0x010A14,
+ 0x010A18
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0109FF],
+ [0x010A07, 0x010A0B],
+ [0x010A36, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A49, 0x010A4F],
+ [0x010A59, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Kharoshthi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Kharoshthi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Khar}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Khar}"
+);
+testPropertyEscapes(
+ /^\P{scx=Kharoshthi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Kharoshthi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Khar}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Khar}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khitan_Small_Script.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khitan_Small_Script.js
new file mode 100644
index 0000000000..5a2ebfcc30
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khitan_Small_Script.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Khitan_Small_Script`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x016FE4
+ ],
+ ranges: [
+ [0x018B00, 0x018CD5]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Khitan_Small_Script}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Khitan_Small_Script}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Kits}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Kits}"
+);
+testPropertyEscapes(
+ /^\p{scx=Khitan_Small_Script}+$/u,
+ matchSymbols,
+ "\\p{scx=Khitan_Small_Script}"
+);
+testPropertyEscapes(
+ /^\p{scx=Kits}+$/u,
+ matchSymbols,
+ "\\p{scx=Kits}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016FE3],
+ [0x016FE5, 0x018AFF],
+ [0x018CD6, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Khitan_Small_Script}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Khitan_Small_Script}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Kits}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Kits}"
+);
+testPropertyEscapes(
+ /^\P{scx=Khitan_Small_Script}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Khitan_Small_Script}"
+);
+testPropertyEscapes(
+ /^\P{scx=Kits}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Kits}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khmer.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khmer.js
new file mode 100644
index 0000000000..64c4e98b23
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khmer.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Khmer`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001780, 0x0017DD],
+ [0x0017E0, 0x0017E9],
+ [0x0017F0, 0x0017F9],
+ [0x0019E0, 0x0019FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Khmer}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Khmer}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Khmr}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Khmr}"
+);
+testPropertyEscapes(
+ /^\p{scx=Khmer}+$/u,
+ matchSymbols,
+ "\\p{scx=Khmer}"
+);
+testPropertyEscapes(
+ /^\p{scx=Khmr}+$/u,
+ matchSymbols,
+ "\\p{scx=Khmr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00177F],
+ [0x0017DE, 0x0017DF],
+ [0x0017EA, 0x0017EF],
+ [0x0017FA, 0x0019DF],
+ [0x001A00, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Khmer}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Khmer}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Khmr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Khmr}"
+);
+testPropertyEscapes(
+ /^\P{scx=Khmer}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Khmer}"
+);
+testPropertyEscapes(
+ /^\P{scx=Khmr}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Khmr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khojki.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khojki.js
new file mode 100644
index 0000000000..4b5a87598b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khojki.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Khojki`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000AE6, 0x000AEF],
+ [0x00A830, 0x00A839],
+ [0x011200, 0x011211],
+ [0x011213, 0x01123E]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Khojki}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Khojki}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Khoj}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Khoj}"
+);
+testPropertyEscapes(
+ /^\p{scx=Khojki}+$/u,
+ matchSymbols,
+ "\\p{scx=Khojki}"
+);
+testPropertyEscapes(
+ /^\p{scx=Khoj}+$/u,
+ matchSymbols,
+ "\\p{scx=Khoj}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011212
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000AE5],
+ [0x000AF0, 0x00A82F],
+ [0x00A83A, 0x00DBFF],
+ [0x00E000, 0x0111FF],
+ [0x01123F, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Khojki}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Khojki}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Khoj}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Khoj}"
+);
+testPropertyEscapes(
+ /^\P{scx=Khojki}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Khojki}"
+);
+testPropertyEscapes(
+ /^\P{scx=Khoj}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Khoj}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khudawadi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khudawadi.js
new file mode 100644
index 0000000000..b200453b11
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khudawadi.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Khudawadi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000964, 0x000965],
+ [0x00A830, 0x00A839],
+ [0x0112B0, 0x0112EA],
+ [0x0112F0, 0x0112F9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Khudawadi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Khudawadi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sind}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sind}"
+);
+testPropertyEscapes(
+ /^\p{scx=Khudawadi}+$/u,
+ matchSymbols,
+ "\\p{scx=Khudawadi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sind}+$/u,
+ matchSymbols,
+ "\\p{scx=Sind}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000963],
+ [0x000966, 0x00A82F],
+ [0x00A83A, 0x00DBFF],
+ [0x00E000, 0x0112AF],
+ [0x0112EB, 0x0112EF],
+ [0x0112FA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Khudawadi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Khudawadi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sind}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sind}"
+);
+testPropertyEscapes(
+ /^\P{scx=Khudawadi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Khudawadi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sind}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sind}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lao.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lao.js
new file mode 100644
index 0000000000..7f38c1f7fa
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lao.js
@@ -0,0 +1,95 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Lao`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000E84,
+ 0x000EA5,
+ 0x000EC6
+ ],
+ ranges: [
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EBD],
+ [0x000EC0, 0x000EC4],
+ [0x000EC8, 0x000ECD],
+ [0x000ED0, 0x000ED9],
+ [0x000EDC, 0x000EDF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lao}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lao}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Laoo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Laoo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lao}+$/u,
+ matchSymbols,
+ "\\p{scx=Lao}"
+);
+testPropertyEscapes(
+ /^\p{scx=Laoo}+$/u,
+ matchSymbols,
+ "\\p{scx=Laoo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EC5,
+ 0x000EC7
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000E80],
+ [0x000EBE, 0x000EBF],
+ [0x000ECE, 0x000ECF],
+ [0x000EDA, 0x000EDB],
+ [0x000EE0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lao}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lao}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Laoo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Laoo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lao}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lao}"
+);
+testPropertyEscapes(
+ /^\P{scx=Laoo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Laoo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Latin.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Latin.js
new file mode 100644
index 0000000000..9c0bd2e1c9
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Latin.js
@@ -0,0 +1,153 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Latin`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000BA,
+ 0x0010FB,
+ 0x00202F,
+ 0x002071,
+ 0x00207F,
+ 0x0020F0,
+ 0x002132,
+ 0x00214E,
+ 0x00A92E
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002B8],
+ [0x0002E0, 0x0002E4],
+ [0x000363, 0x00036F],
+ [0x000485, 0x000486],
+ [0x000951, 0x000952],
+ [0x001D00, 0x001D25],
+ [0x001D2C, 0x001D5C],
+ [0x001D62, 0x001D65],
+ [0x001D6B, 0x001D77],
+ [0x001D79, 0x001DBE],
+ [0x001E00, 0x001EFF],
+ [0x002090, 0x00209C],
+ [0x00212A, 0x00212B],
+ [0x002160, 0x002188],
+ [0x002C60, 0x002C7F],
+ [0x00A700, 0x00A707],
+ [0x00A722, 0x00A787],
+ [0x00A78B, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A7FF],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB5C, 0x00AB64],
+ [0x00AB66, 0x00AB69],
+ [0x00FB00, 0x00FB06],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Latin}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Latin}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Latn}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Latn}"
+);
+testPropertyEscapes(
+ /^\p{scx=Latin}+$/u,
+ matchSymbols,
+ "\\p{scx=Latin}"
+);
+testPropertyEscapes(
+ /^\p{scx=Latn}+$/u,
+ matchSymbols,
+ "\\p{scx=Latn}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x001D78,
+ 0x00AB5B,
+ 0x00AB65
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0002B9, 0x0002DF],
+ [0x0002E5, 0x000362],
+ [0x000370, 0x000484],
+ [0x000487, 0x000950],
+ [0x000953, 0x0010FA],
+ [0x0010FC, 0x001CFF],
+ [0x001D26, 0x001D2B],
+ [0x001D5D, 0x001D61],
+ [0x001D66, 0x001D6A],
+ [0x001DBF, 0x001DFF],
+ [0x001F00, 0x00202E],
+ [0x002030, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x0020EF],
+ [0x0020F1, 0x002129],
+ [0x00212C, 0x002131],
+ [0x002133, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002189, 0x002C5F],
+ [0x002C80, 0x00A6FF],
+ [0x00A708, 0x00A721],
+ [0x00A788, 0x00A78A],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A800, 0x00A92D],
+ [0x00A92F, 0x00AB2F],
+ [0x00AB6A, 0x00DBFF],
+ [0x00E000, 0x00FAFF],
+ [0x00FB07, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Latin}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Latin}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Latn}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Latn}"
+);
+testPropertyEscapes(
+ /^\P{scx=Latin}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Latin}"
+);
+testPropertyEscapes(
+ /^\P{scx=Latn}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Latn}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lepcha.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lepcha.js
new file mode 100644
index 0000000000..284659214a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lepcha.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Lepcha`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001C00, 0x001C37],
+ [0x001C3B, 0x001C49],
+ [0x001C4D, 0x001C4F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lepcha}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lepcha}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lepc}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lepc}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lepcha}+$/u,
+ matchSymbols,
+ "\\p{scx=Lepcha}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lepc}+$/u,
+ matchSymbols,
+ "\\p{scx=Lepc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001BFF],
+ [0x001C38, 0x001C3A],
+ [0x001C4A, 0x001C4C],
+ [0x001C50, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lepcha}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lepcha}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lepc}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lepc}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lepcha}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lepcha}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lepc}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lepc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Limbu.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Limbu.js
new file mode 100644
index 0000000000..4509fb07d6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Limbu.js
@@ -0,0 +1,85 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Limbu`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000965,
+ 0x001940
+ ],
+ ranges: [
+ [0x001900, 0x00191E],
+ [0x001920, 0x00192B],
+ [0x001930, 0x00193B],
+ [0x001944, 0x00194F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Limbu}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Limbu}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Limb}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Limb}"
+);
+testPropertyEscapes(
+ /^\p{scx=Limbu}+$/u,
+ matchSymbols,
+ "\\p{scx=Limbu}"
+);
+testPropertyEscapes(
+ /^\p{scx=Limb}+$/u,
+ matchSymbols,
+ "\\p{scx=Limb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00191F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000964],
+ [0x000966, 0x0018FF],
+ [0x00192C, 0x00192F],
+ [0x00193C, 0x00193F],
+ [0x001941, 0x001943],
+ [0x001950, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Limbu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Limbu}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Limb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Limb}"
+);
+testPropertyEscapes(
+ /^\P{scx=Limbu}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Limbu}"
+);
+testPropertyEscapes(
+ /^\P{scx=Limb}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Limb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_A.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_A.js
new file mode 100644
index 0000000000..bc1914c62c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_A.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Linear_A`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010107, 0x010133],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Linear_A}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Linear_A}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lina}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lina}"
+);
+testPropertyEscapes(
+ /^\p{scx=Linear_A}+$/u,
+ matchSymbols,
+ "\\p{scx=Linear_A}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lina}+$/u,
+ matchSymbols,
+ "\\p{scx=Lina}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010106],
+ [0x010134, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Linear_A}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Linear_A}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lina}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lina}"
+);
+testPropertyEscapes(
+ /^\P{scx=Linear_A}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Linear_A}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lina}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lina}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_B.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_B.js
new file mode 100644
index 0000000000..922057c7b5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_B.js
@@ -0,0 +1,92 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Linear_B`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010100, 0x010102],
+ [0x010107, 0x010133],
+ [0x010137, 0x01013F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Linear_B}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Linear_B}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Linb}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Linb}"
+);
+testPropertyEscapes(
+ /^\p{scx=Linear_B}+$/u,
+ matchSymbols,
+ "\\p{scx=Linear_B}"
+);
+testPropertyEscapes(
+ /^\p{scx=Linb}+$/u,
+ matchSymbols,
+ "\\p{scx=Linb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x0100FF],
+ [0x010103, 0x010106],
+ [0x010134, 0x010136],
+ [0x010140, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Linear_B}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Linear_B}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Linb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Linb}"
+);
+testPropertyEscapes(
+ /^\P{scx=Linear_B}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Linear_B}"
+);
+testPropertyEscapes(
+ /^\P{scx=Linb}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Linb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lisu.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lisu.js
new file mode 100644
index 0000000000..c3b34dd0f4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lisu.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Lisu`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x011FB0
+ ],
+ ranges: [
+ [0x00A4D0, 0x00A4FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lisu}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lisu}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lisu}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lisu}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lisu}+$/u,
+ matchSymbols,
+ "\\p{scx=Lisu}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lisu}+$/u,
+ matchSymbols,
+ "\\p{scx=Lisu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A4CF],
+ [0x00A500, 0x00DBFF],
+ [0x00E000, 0x011FAF],
+ [0x011FB1, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lisu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lisu}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lisu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lisu}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lisu}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lisu}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lisu}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lisu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lycian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lycian.js
new file mode 100644
index 0000000000..9838d6d645
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lycian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Lycian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010280, 0x01029C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lycian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lycian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lyci}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lyci}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lycian}+$/u,
+ matchSymbols,
+ "\\p{scx=Lycian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lyci}+$/u,
+ matchSymbols,
+ "\\p{scx=Lyci}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01027F],
+ [0x01029D, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lycian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lycian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lyci}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lyci}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lycian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lycian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lyci}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lyci}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lydian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lydian.js
new file mode 100644
index 0000000000..9a5226e249
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lydian.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Lydian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01093F
+ ],
+ ranges: [
+ [0x010920, 0x010939]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lydian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lydian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lydi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lydi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lydian}+$/u,
+ matchSymbols,
+ "\\p{scx=Lydian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lydi}+$/u,
+ matchSymbols,
+ "\\p{scx=Lydi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01091F],
+ [0x01093A, 0x01093E],
+ [0x010940, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lydian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lydian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lydi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lydi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lydian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lydian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lydi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lydi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mahajani.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mahajani.js
new file mode 100644
index 0000000000..c92c2a41a5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mahajani.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Mahajani`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000964, 0x00096F],
+ [0x00A830, 0x00A839],
+ [0x011150, 0x011176]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mahajani}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mahajani}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mahj}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mahj}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mahajani}+$/u,
+ matchSymbols,
+ "\\p{scx=Mahajani}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mahj}+$/u,
+ matchSymbols,
+ "\\p{scx=Mahj}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000963],
+ [0x000970, 0x00A82F],
+ [0x00A83A, 0x00DBFF],
+ [0x00E000, 0x01114F],
+ [0x011177, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mahajani}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mahajani}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mahj}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mahj}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mahajani}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mahajani}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mahj}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mahj}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Makasar.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Makasar.js
new file mode 100644
index 0000000000..55acc125fe
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Makasar.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Makasar`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011EE0, 0x011EF8]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Makasar}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Makasar}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Maka}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Maka}"
+);
+testPropertyEscapes(
+ /^\p{scx=Makasar}+$/u,
+ matchSymbols,
+ "\\p{scx=Makasar}"
+);
+testPropertyEscapes(
+ /^\p{scx=Maka}+$/u,
+ matchSymbols,
+ "\\p{scx=Maka}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011EDF],
+ [0x011EF9, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Makasar}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Makasar}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Maka}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Maka}"
+);
+testPropertyEscapes(
+ /^\P{scx=Makasar}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Makasar}"
+);
+testPropertyEscapes(
+ /^\P{scx=Maka}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Maka}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Malayalam.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Malayalam.js
new file mode 100644
index 0000000000..4458c56c85
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Malayalam.js
@@ -0,0 +1,95 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Malayalam`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001CDA
+ ],
+ ranges: [
+ [0x000951, 0x000952],
+ [0x000964, 0x000965],
+ [0x000D00, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D44],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4F],
+ [0x000D54, 0x000D63],
+ [0x000D66, 0x000D7F],
+ [0x00A830, 0x00A832]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Malayalam}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Malayalam}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mlym}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mlym}"
+);
+testPropertyEscapes(
+ /^\p{scx=Malayalam}+$/u,
+ matchSymbols,
+ "\\p{scx=Malayalam}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mlym}+$/u,
+ matchSymbols,
+ "\\p{scx=Mlym}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000D0D,
+ 0x000D11,
+ 0x000D45,
+ 0x000D49
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000953, 0x000963],
+ [0x000966, 0x000CFF],
+ [0x000D50, 0x000D53],
+ [0x000D64, 0x000D65],
+ [0x000D80, 0x001CD9],
+ [0x001CDB, 0x00A82F],
+ [0x00A833, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Malayalam}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Malayalam}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mlym}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mlym}"
+);
+testPropertyEscapes(
+ /^\P{scx=Malayalam}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Malayalam}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mlym}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mlym}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mandaic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mandaic.js
new file mode 100644
index 0000000000..dec6256671
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mandaic.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Mandaic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000640,
+ 0x00085E
+ ],
+ ranges: [
+ [0x000840, 0x00085B]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mandaic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mandaic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mand}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mand}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mandaic}+$/u,
+ matchSymbols,
+ "\\p{scx=Mandaic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mand}+$/u,
+ matchSymbols,
+ "\\p{scx=Mand}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00063F],
+ [0x000641, 0x00083F],
+ [0x00085C, 0x00085D],
+ [0x00085F, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mandaic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mandaic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mand}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mand}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mandaic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mandaic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mand}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mand}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Manichaean.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Manichaean.js
new file mode 100644
index 0000000000..7eff2d0f11
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Manichaean.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Manichaean`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000640
+ ],
+ ranges: [
+ [0x010AC0, 0x010AE6],
+ [0x010AEB, 0x010AF6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Manichaean}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Manichaean}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mani}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mani}"
+);
+testPropertyEscapes(
+ /^\p{scx=Manichaean}+$/u,
+ matchSymbols,
+ "\\p{scx=Manichaean}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mani}+$/u,
+ matchSymbols,
+ "\\p{scx=Mani}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00063F],
+ [0x000641, 0x00DBFF],
+ [0x00E000, 0x010ABF],
+ [0x010AE7, 0x010AEA],
+ [0x010AF7, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Manichaean}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Manichaean}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mani}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mani}"
+);
+testPropertyEscapes(
+ /^\P{scx=Manichaean}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Manichaean}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mani}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mani}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Marchen.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Marchen.js
new file mode 100644
index 0000000000..0c8ea08381
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Marchen.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Marchen`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011C70, 0x011C8F],
+ [0x011C92, 0x011CA7],
+ [0x011CA9, 0x011CB6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Marchen}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Marchen}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Marc}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Marc}"
+);
+testPropertyEscapes(
+ /^\p{scx=Marchen}+$/u,
+ matchSymbols,
+ "\\p{scx=Marchen}"
+);
+testPropertyEscapes(
+ /^\p{scx=Marc}+$/u,
+ matchSymbols,
+ "\\p{scx=Marc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011CA8
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011C6F],
+ [0x011C90, 0x011C91],
+ [0x011CB7, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Marchen}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Marchen}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Marc}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Marc}"
+);
+testPropertyEscapes(
+ /^\P{scx=Marchen}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Marchen}"
+);
+testPropertyEscapes(
+ /^\P{scx=Marc}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Marc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Masaram_Gondi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Masaram_Gondi.js
new file mode 100644
index 0000000000..f76a4403a1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Masaram_Gondi.js
@@ -0,0 +1,89 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Masaram_Gondi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x011D3A
+ ],
+ ranges: [
+ [0x000964, 0x000965],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D47],
+ [0x011D50, 0x011D59]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Masaram_Gondi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Masaram_Gondi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Gonm}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Gonm}"
+);
+testPropertyEscapes(
+ /^\p{scx=Masaram_Gondi}+$/u,
+ matchSymbols,
+ "\\p{scx=Masaram_Gondi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Gonm}+$/u,
+ matchSymbols,
+ "\\p{scx=Gonm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011D07,
+ 0x011D0A,
+ 0x011D3B,
+ 0x011D3E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000963],
+ [0x000966, 0x00DBFF],
+ [0x00E000, 0x011CFF],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D4F],
+ [0x011D5A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Masaram_Gondi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Masaram_Gondi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Gonm}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Gonm}"
+);
+testPropertyEscapes(
+ /^\P{scx=Masaram_Gondi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Masaram_Gondi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Gonm}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Gonm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Medefaidrin.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Medefaidrin.js
new file mode 100644
index 0000000000..1b5cead30f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Medefaidrin.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Medefaidrin`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x016E40, 0x016E9A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Medefaidrin}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Medefaidrin}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Medf}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Medf}"
+);
+testPropertyEscapes(
+ /^\p{scx=Medefaidrin}+$/u,
+ matchSymbols,
+ "\\p{scx=Medefaidrin}"
+);
+testPropertyEscapes(
+ /^\p{scx=Medf}+$/u,
+ matchSymbols,
+ "\\p{scx=Medf}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016E3F],
+ [0x016E9B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Medefaidrin}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Medefaidrin}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Medf}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Medf}"
+);
+testPropertyEscapes(
+ /^\P{scx=Medefaidrin}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Medefaidrin}"
+);
+testPropertyEscapes(
+ /^\P{scx=Medf}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Medf}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meetei_Mayek.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meetei_Mayek.js
new file mode 100644
index 0000000000..3a528a2201
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meetei_Mayek.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Meetei_Mayek`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00AAE0, 0x00AAF6],
+ [0x00ABC0, 0x00ABED],
+ [0x00ABF0, 0x00ABF9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Meetei_Mayek}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Meetei_Mayek}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mtei}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mtei}"
+);
+testPropertyEscapes(
+ /^\p{scx=Meetei_Mayek}+$/u,
+ matchSymbols,
+ "\\p{scx=Meetei_Mayek}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mtei}+$/u,
+ matchSymbols,
+ "\\p{scx=Mtei}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00AADF],
+ [0x00AAF7, 0x00ABBF],
+ [0x00ABEE, 0x00ABEF],
+ [0x00ABFA, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Meetei_Mayek}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Meetei_Mayek}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mtei}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mtei}"
+);
+testPropertyEscapes(
+ /^\P{scx=Meetei_Mayek}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Meetei_Mayek}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mtei}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mtei}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mende_Kikakui.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mende_Kikakui.js
new file mode 100644
index 0000000000..1fbf8b0903
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mende_Kikakui.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Mende_Kikakui`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01E800, 0x01E8C4],
+ [0x01E8C7, 0x01E8D6]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mende_Kikakui}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mende_Kikakui}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mend}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mend}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mende_Kikakui}+$/u,
+ matchSymbols,
+ "\\p{scx=Mende_Kikakui}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mend}+$/u,
+ matchSymbols,
+ "\\p{scx=Mend}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01E7FF],
+ [0x01E8C5, 0x01E8C6],
+ [0x01E8D7, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mende_Kikakui}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mende_Kikakui}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mend}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mend}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mende_Kikakui}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mende_Kikakui}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mend}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mend}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Cursive.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Cursive.js
new file mode 100644
index 0000000000..1ce1f87223
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Cursive.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Meroitic_Cursive`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0109A0, 0x0109B7],
+ [0x0109BC, 0x0109CF],
+ [0x0109D2, 0x0109FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Meroitic_Cursive}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Meroitic_Cursive}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Merc}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Merc}"
+);
+testPropertyEscapes(
+ /^\p{scx=Meroitic_Cursive}+$/u,
+ matchSymbols,
+ "\\p{scx=Meroitic_Cursive}"
+);
+testPropertyEscapes(
+ /^\p{scx=Merc}+$/u,
+ matchSymbols,
+ "\\p{scx=Merc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01099F],
+ [0x0109B8, 0x0109BB],
+ [0x0109D0, 0x0109D1],
+ [0x010A00, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Meroitic_Cursive}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Meroitic_Cursive}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Merc}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Merc}"
+);
+testPropertyEscapes(
+ /^\P{scx=Meroitic_Cursive}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Meroitic_Cursive}"
+);
+testPropertyEscapes(
+ /^\P{scx=Merc}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Merc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Hieroglyphs.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Hieroglyphs.js
new file mode 100644
index 0000000000..f8aa14d326
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Hieroglyphs.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Meroitic_Hieroglyphs`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010980, 0x01099F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Meroitic_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Meroitic_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mero}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mero}"
+);
+testPropertyEscapes(
+ /^\p{scx=Meroitic_Hieroglyphs}+$/u,
+ matchSymbols,
+ "\\p{scx=Meroitic_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mero}+$/u,
+ matchSymbols,
+ "\\p{scx=Mero}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01097F],
+ [0x0109A0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Meroitic_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Meroitic_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mero}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mero}"
+);
+testPropertyEscapes(
+ /^\P{scx=Meroitic_Hieroglyphs}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Meroitic_Hieroglyphs}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mero}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mero}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Miao.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Miao.js
new file mode 100644
index 0000000000..e04a0efe6b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Miao.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Miao`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x016F00, 0x016F4A],
+ [0x016F4F, 0x016F87],
+ [0x016F8F, 0x016F9F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Miao}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Miao}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Plrd}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Plrd}"
+);
+testPropertyEscapes(
+ /^\p{scx=Miao}+$/u,
+ matchSymbols,
+ "\\p{scx=Miao}"
+);
+testPropertyEscapes(
+ /^\p{scx=Plrd}+$/u,
+ matchSymbols,
+ "\\p{scx=Plrd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016EFF],
+ [0x016F4B, 0x016F4E],
+ [0x016F88, 0x016F8E],
+ [0x016FA0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Miao}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Miao}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Plrd}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Plrd}"
+);
+testPropertyEscapes(
+ /^\P{scx=Miao}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Miao}"
+);
+testPropertyEscapes(
+ /^\P{scx=Plrd}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Plrd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Modi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Modi.js
new file mode 100644
index 0000000000..25a17a8aa8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Modi.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Modi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A830, 0x00A839],
+ [0x011600, 0x011644],
+ [0x011650, 0x011659]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Modi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Modi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Modi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Modi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Modi}+$/u,
+ matchSymbols,
+ "\\p{scx=Modi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Modi}+$/u,
+ matchSymbols,
+ "\\p{scx=Modi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A82F],
+ [0x00A83A, 0x00DBFF],
+ [0x00E000, 0x0115FF],
+ [0x011645, 0x01164F],
+ [0x01165A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Modi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Modi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Modi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Modi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Modi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Modi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Modi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Modi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mongolian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mongolian.js
new file mode 100644
index 0000000000..40a5fa0db4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mongolian.js
@@ -0,0 +1,85 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Mongolian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00202F
+ ],
+ ranges: [
+ [0x001800, 0x00180E],
+ [0x001810, 0x001819],
+ [0x001820, 0x001878],
+ [0x001880, 0x0018AA],
+ [0x011660, 0x01166C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mongolian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mongolian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mong}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mong}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mongolian}+$/u,
+ matchSymbols,
+ "\\p{scx=Mongolian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mong}+$/u,
+ matchSymbols,
+ "\\p{scx=Mong}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00180F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0017FF],
+ [0x00181A, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x0018AB, 0x00202E],
+ [0x002030, 0x00DBFF],
+ [0x00E000, 0x01165F],
+ [0x01166D, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mongolian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mongolian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mong}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mong}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mongolian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mongolian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mong}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mong}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mro.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mro.js
new file mode 100644
index 0000000000..88ee33669a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mro.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Mro`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x016A40, 0x016A5E],
+ [0x016A60, 0x016A69],
+ [0x016A6E, 0x016A6F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mro}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mro}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mroo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mroo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mro}+$/u,
+ matchSymbols,
+ "\\p{scx=Mro}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mroo}+$/u,
+ matchSymbols,
+ "\\p{scx=Mroo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x016A5F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016A3F],
+ [0x016A6A, 0x016A6D],
+ [0x016A70, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mro}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mro}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mroo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mroo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mro}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mro}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mroo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mroo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Multani.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Multani.js
new file mode 100644
index 0000000000..2a04de7c5d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Multani.js
@@ -0,0 +1,85 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Multani`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x011288
+ ],
+ ranges: [
+ [0x000A66, 0x000A6F],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Multani}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Multani}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mult}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mult}"
+);
+testPropertyEscapes(
+ /^\p{scx=Multani}+$/u,
+ matchSymbols,
+ "\\p{scx=Multani}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mult}+$/u,
+ matchSymbols,
+ "\\p{scx=Mult}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000A65],
+ [0x000A70, 0x00DBFF],
+ [0x00E000, 0x01127F],
+ [0x0112AA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Multani}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Multani}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mult}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mult}"
+);
+testPropertyEscapes(
+ /^\P{scx=Multani}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Multani}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mult}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mult}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Myanmar.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Myanmar.js
new file mode 100644
index 0000000000..605e7ff95a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Myanmar.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Myanmar`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00A92E
+ ],
+ ranges: [
+ [0x001000, 0x00109F],
+ [0x00A9E0, 0x00A9FE],
+ [0x00AA60, 0x00AA7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Myanmar}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Myanmar}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Mymr}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Mymr}"
+);
+testPropertyEscapes(
+ /^\p{scx=Myanmar}+$/u,
+ matchSymbols,
+ "\\p{scx=Myanmar}"
+);
+testPropertyEscapes(
+ /^\p{scx=Mymr}+$/u,
+ matchSymbols,
+ "\\p{scx=Mymr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000FFF],
+ [0x0010A0, 0x00A92D],
+ [0x00A92F, 0x00A9DF],
+ [0x00A9FF, 0x00AA5F],
+ [0x00AA80, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Myanmar}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Myanmar}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Mymr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Mymr}"
+);
+testPropertyEscapes(
+ /^\P{scx=Myanmar}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Myanmar}"
+);
+testPropertyEscapes(
+ /^\P{scx=Mymr}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Mymr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nabataean.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nabataean.js
new file mode 100644
index 0000000000..732279e439
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nabataean.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Nabataean`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010880, 0x01089E],
+ [0x0108A7, 0x0108AF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Nabataean}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Nabataean}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Nbat}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Nbat}"
+);
+testPropertyEscapes(
+ /^\p{scx=Nabataean}+$/u,
+ matchSymbols,
+ "\\p{scx=Nabataean}"
+);
+testPropertyEscapes(
+ /^\p{scx=Nbat}+$/u,
+ matchSymbols,
+ "\\p{scx=Nbat}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01087F],
+ [0x01089F, 0x0108A6],
+ [0x0108B0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Nabataean}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Nabataean}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Nbat}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Nbat}"
+);
+testPropertyEscapes(
+ /^\P{scx=Nabataean}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Nabataean}"
+);
+testPropertyEscapes(
+ /^\P{scx=Nbat}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Nbat}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nandinagari.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nandinagari.js
new file mode 100644
index 0000000000..8ce415d3c4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nandinagari.js
@@ -0,0 +1,90 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Nandinagari`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001CE9,
+ 0x001CF2,
+ 0x001CFA
+ ],
+ ranges: [
+ [0x000964, 0x000965],
+ [0x000CE6, 0x000CEF],
+ [0x00A830, 0x00A835],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D7],
+ [0x0119DA, 0x0119E4]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Nandinagari}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Nandinagari}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Nand}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Nand}"
+);
+testPropertyEscapes(
+ /^\p{scx=Nandinagari}+$/u,
+ matchSymbols,
+ "\\p{scx=Nandinagari}"
+);
+testPropertyEscapes(
+ /^\p{scx=Nand}+$/u,
+ matchSymbols,
+ "\\p{scx=Nand}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000963],
+ [0x000966, 0x000CE5],
+ [0x000CF0, 0x001CE8],
+ [0x001CEA, 0x001CF1],
+ [0x001CF3, 0x001CF9],
+ [0x001CFB, 0x00A82F],
+ [0x00A836, 0x00DBFF],
+ [0x00E000, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D8, 0x0119D9],
+ [0x0119E5, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Nandinagari}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Nandinagari}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Nand}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Nand}"
+);
+testPropertyEscapes(
+ /^\P{scx=Nandinagari}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Nandinagari}"
+);
+testPropertyEscapes(
+ /^\P{scx=Nand}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Nand}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_New_Tai_Lue.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_New_Tai_Lue.js
new file mode 100644
index 0000000000..157094969e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_New_Tai_Lue.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=New_Tai_Lue`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x0019D0, 0x0019DA],
+ [0x0019DE, 0x0019DF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=New_Tai_Lue}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=New_Tai_Lue}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Talu}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Talu}"
+);
+testPropertyEscapes(
+ /^\p{scx=New_Tai_Lue}+$/u,
+ matchSymbols,
+ "\\p{scx=New_Tai_Lue}"
+);
+testPropertyEscapes(
+ /^\p{scx=Talu}+$/u,
+ matchSymbols,
+ "\\p{scx=Talu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019CF],
+ [0x0019DB, 0x0019DD],
+ [0x0019E0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=New_Tai_Lue}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=New_Tai_Lue}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Talu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Talu}"
+);
+testPropertyEscapes(
+ /^\P{scx=New_Tai_Lue}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=New_Tai_Lue}"
+);
+testPropertyEscapes(
+ /^\P{scx=Talu}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Talu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Newa.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Newa.js
new file mode 100644
index 0000000000..6298afe766
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Newa.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Newa`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011400, 0x01145B],
+ [0x01145D, 0x011461]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Newa}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Newa}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Newa}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Newa}"
+);
+testPropertyEscapes(
+ /^\p{scx=Newa}+$/u,
+ matchSymbols,
+ "\\p{scx=Newa}"
+);
+testPropertyEscapes(
+ /^\p{scx=Newa}+$/u,
+ matchSymbols,
+ "\\p{scx=Newa}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01145C
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0113FF],
+ [0x011462, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Newa}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Newa}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Newa}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Newa}"
+);
+testPropertyEscapes(
+ /^\P{scx=Newa}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Newa}"
+);
+testPropertyEscapes(
+ /^\P{scx=Newa}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Newa}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nko.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nko.js
new file mode 100644
index 0000000000..4c714c9585
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nko.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Nko`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0007C0, 0x0007FA],
+ [0x0007FD, 0x0007FF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Nko}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Nko}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Nkoo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Nkoo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Nko}+$/u,
+ matchSymbols,
+ "\\p{scx=Nko}"
+);
+testPropertyEscapes(
+ /^\p{scx=Nkoo}+$/u,
+ matchSymbols,
+ "\\p{scx=Nkoo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0007BF],
+ [0x0007FB, 0x0007FC],
+ [0x000800, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Nko}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Nko}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Nkoo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Nkoo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Nko}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Nko}"
+);
+testPropertyEscapes(
+ /^\P{scx=Nkoo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Nkoo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nushu.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nushu.js
new file mode 100644
index 0000000000..ac616433c2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nushu.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Nushu`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x016FE1
+ ],
+ ranges: [
+ [0x01B170, 0x01B2FB]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Nushu}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Nushu}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Nshu}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Nshu}"
+);
+testPropertyEscapes(
+ /^\p{scx=Nushu}+$/u,
+ matchSymbols,
+ "\\p{scx=Nushu}"
+);
+testPropertyEscapes(
+ /^\p{scx=Nshu}+$/u,
+ matchSymbols,
+ "\\p{scx=Nshu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016FE0],
+ [0x016FE2, 0x01B16F],
+ [0x01B2FC, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Nushu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Nushu}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Nshu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Nshu}"
+);
+testPropertyEscapes(
+ /^\P{scx=Nushu}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Nushu}"
+);
+testPropertyEscapes(
+ /^\P{scx=Nshu}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Nshu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nyiakeng_Puachue_Hmong.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nyiakeng_Puachue_Hmong.js
new file mode 100644
index 0000000000..68a15272ce
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nyiakeng_Puachue_Hmong.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Nyiakeng_Puachue_Hmong`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01E100, 0x01E12C],
+ [0x01E130, 0x01E13D],
+ [0x01E140, 0x01E149],
+ [0x01E14E, 0x01E14F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Nyiakeng_Puachue_Hmong}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Nyiakeng_Puachue_Hmong}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hmnp}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hmnp}"
+);
+testPropertyEscapes(
+ /^\p{scx=Nyiakeng_Puachue_Hmong}+$/u,
+ matchSymbols,
+ "\\p{scx=Nyiakeng_Puachue_Hmong}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hmnp}+$/u,
+ matchSymbols,
+ "\\p{scx=Hmnp}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01E0FF],
+ [0x01E12D, 0x01E12F],
+ [0x01E13E, 0x01E13F],
+ [0x01E14A, 0x01E14D],
+ [0x01E150, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Nyiakeng_Puachue_Hmong}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Nyiakeng_Puachue_Hmong}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hmnp}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hmnp}"
+);
+testPropertyEscapes(
+ /^\P{scx=Nyiakeng_Puachue_Hmong}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Nyiakeng_Puachue_Hmong}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hmnp}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hmnp}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ogham.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ogham.js
new file mode 100644
index 0000000000..88dc975a57
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ogham.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Ogham`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001680, 0x00169C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Ogham}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Ogham}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Ogam}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Ogam}"
+);
+testPropertyEscapes(
+ /^\p{scx=Ogham}+$/u,
+ matchSymbols,
+ "\\p{scx=Ogham}"
+);
+testPropertyEscapes(
+ /^\p{scx=Ogam}+$/u,
+ matchSymbols,
+ "\\p{scx=Ogam}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00167F],
+ [0x00169D, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Ogham}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Ogham}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Ogam}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Ogam}"
+);
+testPropertyEscapes(
+ /^\P{scx=Ogham}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Ogham}"
+);
+testPropertyEscapes(
+ /^\P{scx=Ogam}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Ogam}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ol_Chiki.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ol_Chiki.js
new file mode 100644
index 0000000000..e09320d48b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ol_Chiki.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Ol_Chiki`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001C50, 0x001C7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Ol_Chiki}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Ol_Chiki}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Olck}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Olck}"
+);
+testPropertyEscapes(
+ /^\p{scx=Ol_Chiki}+$/u,
+ matchSymbols,
+ "\\p{scx=Ol_Chiki}"
+);
+testPropertyEscapes(
+ /^\p{scx=Olck}+$/u,
+ matchSymbols,
+ "\\p{scx=Olck}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001C4F],
+ [0x001C80, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Ol_Chiki}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Ol_Chiki}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Olck}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Olck}"
+);
+testPropertyEscapes(
+ /^\P{scx=Ol_Chiki}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Ol_Chiki}"
+);
+testPropertyEscapes(
+ /^\P{scx=Olck}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Olck}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Hungarian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Hungarian.js
new file mode 100644
index 0000000000..f739b0f35c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Hungarian.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Old_Hungarian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010CFA, 0x010CFF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Old_Hungarian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Old_Hungarian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hung}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hung}"
+);
+testPropertyEscapes(
+ /^\p{scx=Old_Hungarian}+$/u,
+ matchSymbols,
+ "\\p{scx=Old_Hungarian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hung}+$/u,
+ matchSymbols,
+ "\\p{scx=Hung}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CF9],
+ [0x010D00, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Old_Hungarian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Old_Hungarian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hung}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hung}"
+);
+testPropertyEscapes(
+ /^\P{scx=Old_Hungarian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Old_Hungarian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hung}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hung}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Italic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Italic.js
new file mode 100644
index 0000000000..21daff9906
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Italic.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Old_Italic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010300, 0x010323],
+ [0x01032D, 0x01032F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Old_Italic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Old_Italic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Ital}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Ital}"
+);
+testPropertyEscapes(
+ /^\p{scx=Old_Italic}+$/u,
+ matchSymbols,
+ "\\p{scx=Old_Italic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Ital}+$/u,
+ matchSymbols,
+ "\\p{scx=Ital}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0102FF],
+ [0x010324, 0x01032C],
+ [0x010330, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Old_Italic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Old_Italic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Ital}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Ital}"
+);
+testPropertyEscapes(
+ /^\P{scx=Old_Italic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Old_Italic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Ital}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Ital}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_North_Arabian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_North_Arabian.js
new file mode 100644
index 0000000000..c6bb0ab77e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_North_Arabian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Old_North_Arabian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010A80, 0x010A9F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Old_North_Arabian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Old_North_Arabian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Narb}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Narb}"
+);
+testPropertyEscapes(
+ /^\p{scx=Old_North_Arabian}+$/u,
+ matchSymbols,
+ "\\p{scx=Old_North_Arabian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Narb}+$/u,
+ matchSymbols,
+ "\\p{scx=Narb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010A7F],
+ [0x010AA0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Old_North_Arabian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Old_North_Arabian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Narb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Narb}"
+);
+testPropertyEscapes(
+ /^\P{scx=Old_North_Arabian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Old_North_Arabian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Narb}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Narb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Permic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Permic.js
new file mode 100644
index 0000000000..031329af4c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Permic.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Old_Permic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000483
+ ],
+ ranges: [
+ [0x010350, 0x01037A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Old_Permic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Old_Permic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Perm}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Perm}"
+);
+testPropertyEscapes(
+ /^\p{scx=Old_Permic}+$/u,
+ matchSymbols,
+ "\\p{scx=Old_Permic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Perm}+$/u,
+ matchSymbols,
+ "\\p{scx=Perm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000482],
+ [0x000484, 0x00DBFF],
+ [0x00E000, 0x01034F],
+ [0x01037B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Old_Permic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Old_Permic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Perm}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Perm}"
+);
+testPropertyEscapes(
+ /^\P{scx=Old_Permic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Old_Permic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Perm}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Perm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Persian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Persian.js
new file mode 100644
index 0000000000..c3fe605867
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Persian.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Old_Persian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0103A0, 0x0103C3],
+ [0x0103C8, 0x0103D5]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Old_Persian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Old_Persian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Xpeo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Xpeo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Old_Persian}+$/u,
+ matchSymbols,
+ "\\p{scx=Old_Persian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Xpeo}+$/u,
+ matchSymbols,
+ "\\p{scx=Xpeo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01039F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Old_Persian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Old_Persian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Xpeo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Xpeo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Old_Persian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Old_Persian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Xpeo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Xpeo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Sogdian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Sogdian.js
new file mode 100644
index 0000000000..03cc401bc2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Sogdian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Old_Sogdian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010F00, 0x010F27]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Old_Sogdian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Old_Sogdian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sogo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sogo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Old_Sogdian}+$/u,
+ matchSymbols,
+ "\\p{scx=Old_Sogdian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sogo}+$/u,
+ matchSymbols,
+ "\\p{scx=Sogo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010EFF],
+ [0x010F28, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Old_Sogdian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Old_Sogdian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sogo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sogo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Old_Sogdian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Old_Sogdian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sogo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sogo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_South_Arabian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_South_Arabian.js
new file mode 100644
index 0000000000..b9b4ac4e81
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_South_Arabian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Old_South_Arabian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010A60, 0x010A7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Old_South_Arabian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Old_South_Arabian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sarb}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sarb}"
+);
+testPropertyEscapes(
+ /^\p{scx=Old_South_Arabian}+$/u,
+ matchSymbols,
+ "\\p{scx=Old_South_Arabian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sarb}+$/u,
+ matchSymbols,
+ "\\p{scx=Sarb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010A5F],
+ [0x010A80, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Old_South_Arabian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Old_South_Arabian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sarb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sarb}"
+);
+testPropertyEscapes(
+ /^\P{scx=Old_South_Arabian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Old_South_Arabian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sarb}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sarb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Turkic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Turkic.js
new file mode 100644
index 0000000000..e139582fef
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Turkic.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Old_Turkic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010C00, 0x010C48]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Old_Turkic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Old_Turkic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Orkh}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Orkh}"
+);
+testPropertyEscapes(
+ /^\p{scx=Old_Turkic}+$/u,
+ matchSymbols,
+ "\\p{scx=Old_Turkic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Orkh}+$/u,
+ matchSymbols,
+ "\\p{scx=Orkh}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x010BFF],
+ [0x010C49, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Old_Turkic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Old_Turkic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Orkh}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Orkh}"
+);
+testPropertyEscapes(
+ /^\P{scx=Old_Turkic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Old_Turkic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Orkh}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Orkh}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Oriya.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Oriya.js
new file mode 100644
index 0000000000..25d964c010
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Oriya.js
@@ -0,0 +1,109 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Oriya`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001CDA,
+ 0x001CF2
+ ],
+ ranges: [
+ [0x000951, 0x000952],
+ [0x000964, 0x000965],
+ [0x000B01, 0x000B03],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B3C, 0x000B44],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4D],
+ [0x000B55, 0x000B57],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B63],
+ [0x000B66, 0x000B77]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Oriya}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Oriya}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Orya}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Orya}"
+);
+testPropertyEscapes(
+ /^\p{scx=Oriya}+$/u,
+ matchSymbols,
+ "\\p{scx=Oriya}"
+);
+testPropertyEscapes(
+ /^\p{scx=Orya}+$/u,
+ matchSymbols,
+ "\\p{scx=Orya}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000B04,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000953, 0x000963],
+ [0x000966, 0x000B00],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3B],
+ [0x000B45, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4E, 0x000B54],
+ [0x000B58, 0x000B5B],
+ [0x000B64, 0x000B65],
+ [0x000B78, 0x001CD9],
+ [0x001CDB, 0x001CF1],
+ [0x001CF3, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Oriya}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Oriya}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Orya}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Orya}"
+);
+testPropertyEscapes(
+ /^\P{scx=Oriya}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Oriya}"
+);
+testPropertyEscapes(
+ /^\P{scx=Orya}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Orya}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osage.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osage.js
new file mode 100644
index 0000000000..10ca7a2f60
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osage.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Osage`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Osage}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Osage}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Osge}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Osge}"
+);
+testPropertyEscapes(
+ /^\p{scx=Osage}+$/u,
+ matchSymbols,
+ "\\p{scx=Osage}"
+);
+testPropertyEscapes(
+ /^\p{scx=Osge}+$/u,
+ matchSymbols,
+ "\\p{scx=Osge}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Osage}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Osage}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Osge}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Osge}"
+);
+testPropertyEscapes(
+ /^\P{scx=Osage}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Osage}"
+);
+testPropertyEscapes(
+ /^\P{scx=Osge}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Osge}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osmanya.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osmanya.js
new file mode 100644
index 0000000000..575f884fa1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osmanya.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Osmanya`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010480, 0x01049D],
+ [0x0104A0, 0x0104A9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Osmanya}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Osmanya}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Osma}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Osma}"
+);
+testPropertyEscapes(
+ /^\p{scx=Osmanya}+$/u,
+ matchSymbols,
+ "\\p{scx=Osmanya}"
+);
+testPropertyEscapes(
+ /^\p{scx=Osma}+$/u,
+ matchSymbols,
+ "\\p{scx=Osma}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01047F],
+ [0x01049E, 0x01049F],
+ [0x0104AA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Osmanya}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Osmanya}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Osma}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Osma}"
+);
+testPropertyEscapes(
+ /^\P{scx=Osmanya}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Osmanya}"
+);
+testPropertyEscapes(
+ /^\P{scx=Osma}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Osma}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pahawh_Hmong.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pahawh_Hmong.js
new file mode 100644
index 0000000000..45eb4f4a61
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pahawh_Hmong.js
@@ -0,0 +1,82 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Pahawh_Hmong`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x016B00, 0x016B45],
+ [0x016B50, 0x016B59],
+ [0x016B5B, 0x016B61],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Pahawh_Hmong}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Pahawh_Hmong}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Hmng}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Hmng}"
+);
+testPropertyEscapes(
+ /^\p{scx=Pahawh_Hmong}+$/u,
+ matchSymbols,
+ "\\p{scx=Pahawh_Hmong}"
+);
+testPropertyEscapes(
+ /^\p{scx=Hmng}+$/u,
+ matchSymbols,
+ "\\p{scx=Hmng}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x016B5A,
+ 0x016B62
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016AFF],
+ [0x016B46, 0x016B4F],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Pahawh_Hmong}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Pahawh_Hmong}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Hmng}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Hmng}"
+);
+testPropertyEscapes(
+ /^\P{scx=Pahawh_Hmong}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Pahawh_Hmong}"
+);
+testPropertyEscapes(
+ /^\P{scx=Hmng}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Hmng}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Palmyrene.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Palmyrene.js
new file mode 100644
index 0000000000..0a77f46de6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Palmyrene.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Palmyrene`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010860, 0x01087F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Palmyrene}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Palmyrene}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Palm}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Palm}"
+);
+testPropertyEscapes(
+ /^\p{scx=Palmyrene}+$/u,
+ matchSymbols,
+ "\\p{scx=Palmyrene}"
+);
+testPropertyEscapes(
+ /^\p{scx=Palm}+$/u,
+ matchSymbols,
+ "\\p{scx=Palm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01085F],
+ [0x010880, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Palmyrene}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Palmyrene}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Palm}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Palm}"
+);
+testPropertyEscapes(
+ /^\P{scx=Palmyrene}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Palmyrene}"
+);
+testPropertyEscapes(
+ /^\P{scx=Palm}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Palm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pau_Cin_Hau.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pau_Cin_Hau.js
new file mode 100644
index 0000000000..1c12f45e28
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pau_Cin_Hau.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Pau_Cin_Hau`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011AC0, 0x011AF8]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Pau_Cin_Hau}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Pau_Cin_Hau}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Pauc}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Pauc}"
+);
+testPropertyEscapes(
+ /^\p{scx=Pau_Cin_Hau}+$/u,
+ matchSymbols,
+ "\\p{scx=Pau_Cin_Hau}"
+);
+testPropertyEscapes(
+ /^\p{scx=Pauc}+$/u,
+ matchSymbols,
+ "\\p{scx=Pauc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011ABF],
+ [0x011AF9, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Pau_Cin_Hau}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Pau_Cin_Hau}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Pauc}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Pauc}"
+);
+testPropertyEscapes(
+ /^\P{scx=Pau_Cin_Hau}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Pau_Cin_Hau}"
+);
+testPropertyEscapes(
+ /^\P{scx=Pauc}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Pauc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phags_Pa.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phags_Pa.js
new file mode 100644
index 0000000000..138468144b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phags_Pa.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Phags_Pa`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001805
+ ],
+ ranges: [
+ [0x001802, 0x001803],
+ [0x00A840, 0x00A877]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Phags_Pa}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Phags_Pa}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Phag}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Phag}"
+);
+testPropertyEscapes(
+ /^\p{scx=Phags_Pa}+$/u,
+ matchSymbols,
+ "\\p{scx=Phags_Pa}"
+);
+testPropertyEscapes(
+ /^\p{scx=Phag}+$/u,
+ matchSymbols,
+ "\\p{scx=Phag}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x001804
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001801],
+ [0x001806, 0x00A83F],
+ [0x00A878, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Phags_Pa}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Phags_Pa}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Phag}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Phag}"
+);
+testPropertyEscapes(
+ /^\P{scx=Phags_Pa}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Phags_Pa}"
+);
+testPropertyEscapes(
+ /^\P{scx=Phag}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Phag}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phoenician.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phoenician.js
new file mode 100644
index 0000000000..4a22acfa50
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phoenician.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Phoenician`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01091F
+ ],
+ ranges: [
+ [0x010900, 0x01091B]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Phoenician}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Phoenician}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Phnx}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Phnx}"
+);
+testPropertyEscapes(
+ /^\p{scx=Phoenician}+$/u,
+ matchSymbols,
+ "\\p{scx=Phoenician}"
+);
+testPropertyEscapes(
+ /^\p{scx=Phnx}+$/u,
+ matchSymbols,
+ "\\p{scx=Phnx}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0108FF],
+ [0x01091C, 0x01091E],
+ [0x010920, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Phoenician}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Phoenician}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Phnx}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Phnx}"
+);
+testPropertyEscapes(
+ /^\P{scx=Phoenician}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Phoenician}"
+);
+testPropertyEscapes(
+ /^\P{scx=Phnx}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Phnx}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Psalter_Pahlavi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Psalter_Pahlavi.js
new file mode 100644
index 0000000000..53dade8ba3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Psalter_Pahlavi.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Psalter_Pahlavi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000640
+ ],
+ ranges: [
+ [0x010B80, 0x010B91],
+ [0x010B99, 0x010B9C],
+ [0x010BA9, 0x010BAF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Psalter_Pahlavi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Psalter_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Phlp}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Phlp}"
+);
+testPropertyEscapes(
+ /^\p{scx=Psalter_Pahlavi}+$/u,
+ matchSymbols,
+ "\\p{scx=Psalter_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Phlp}+$/u,
+ matchSymbols,
+ "\\p{scx=Phlp}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00063F],
+ [0x000641, 0x00DBFF],
+ [0x00E000, 0x010B7F],
+ [0x010B92, 0x010B98],
+ [0x010B9D, 0x010BA8],
+ [0x010BB0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Psalter_Pahlavi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Psalter_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Phlp}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Phlp}"
+);
+testPropertyEscapes(
+ /^\P{scx=Psalter_Pahlavi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Psalter_Pahlavi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Phlp}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Phlp}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Rejang.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Rejang.js
new file mode 100644
index 0000000000..c7924c31a7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Rejang.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Rejang`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00A95F
+ ],
+ ranges: [
+ [0x00A930, 0x00A953]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Rejang}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Rejang}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Rjng}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Rjng}"
+);
+testPropertyEscapes(
+ /^\p{scx=Rejang}+$/u,
+ matchSymbols,
+ "\\p{scx=Rejang}"
+);
+testPropertyEscapes(
+ /^\p{scx=Rjng}+$/u,
+ matchSymbols,
+ "\\p{scx=Rjng}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A92F],
+ [0x00A954, 0x00A95E],
+ [0x00A960, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Rejang}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Rejang}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Rjng}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Rjng}"
+);
+testPropertyEscapes(
+ /^\P{scx=Rejang}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Rejang}"
+);
+testPropertyEscapes(
+ /^\P{scx=Rjng}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Rjng}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Runic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Runic.js
new file mode 100644
index 0000000000..4979521e3c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Runic.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Runic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0016A0, 0x0016EA],
+ [0x0016EE, 0x0016F8]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Runic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Runic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Runr}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Runr}"
+);
+testPropertyEscapes(
+ /^\p{scx=Runic}+$/u,
+ matchSymbols,
+ "\\p{scx=Runic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Runr}+$/u,
+ matchSymbols,
+ "\\p{scx=Runr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00169F],
+ [0x0016EB, 0x0016ED],
+ [0x0016F9, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Runic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Runic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Runr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Runr}"
+);
+testPropertyEscapes(
+ /^\P{scx=Runic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Runic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Runr}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Runr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Samaritan.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Samaritan.js
new file mode 100644
index 0000000000..b95ed2deff
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Samaritan.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Samaritan`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000800, 0x00082D],
+ [0x000830, 0x00083E]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Samaritan}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Samaritan}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Samr}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Samr}"
+);
+testPropertyEscapes(
+ /^\p{scx=Samaritan}+$/u,
+ matchSymbols,
+ "\\p{scx=Samaritan}"
+);
+testPropertyEscapes(
+ /^\p{scx=Samr}+$/u,
+ matchSymbols,
+ "\\p{scx=Samr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0007FF],
+ [0x00082E, 0x00082F],
+ [0x00083F, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Samaritan}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Samaritan}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Samr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Samr}"
+);
+testPropertyEscapes(
+ /^\P{scx=Samaritan}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Samaritan}"
+);
+testPropertyEscapes(
+ /^\P{scx=Samr}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Samr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Saurashtra.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Saurashtra.js
new file mode 100644
index 0000000000..89ae6a56c8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Saurashtra.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Saurashtra`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A880, 0x00A8C5],
+ [0x00A8CE, 0x00A8D9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Saurashtra}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Saurashtra}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Saur}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Saur}"
+);
+testPropertyEscapes(
+ /^\p{scx=Saurashtra}+$/u,
+ matchSymbols,
+ "\\p{scx=Saurashtra}"
+);
+testPropertyEscapes(
+ /^\p{scx=Saur}+$/u,
+ matchSymbols,
+ "\\p{scx=Saur}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A87F],
+ [0x00A8C6, 0x00A8CD],
+ [0x00A8DA, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Saurashtra}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Saurashtra}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Saur}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Saur}"
+);
+testPropertyEscapes(
+ /^\P{scx=Saurashtra}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Saurashtra}"
+);
+testPropertyEscapes(
+ /^\P{scx=Saur}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Saur}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js
new file mode 100644
index 0000000000..8ad6bc9da0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js
@@ -0,0 +1,85 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Sharada`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000951,
+ 0x001CD7,
+ 0x001CD9,
+ 0x001CE0
+ ],
+ ranges: [
+ [0x001CDC, 0x001CDD],
+ [0x011180, 0x0111DF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sharada}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sharada}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Shrd}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Shrd}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sharada}+$/u,
+ matchSymbols,
+ "\\p{scx=Sharada}"
+);
+testPropertyEscapes(
+ /^\p{scx=Shrd}+$/u,
+ matchSymbols,
+ "\\p{scx=Shrd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x001CD8
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000952, 0x001CD6],
+ [0x001CDA, 0x001CDB],
+ [0x001CDE, 0x001CDF],
+ [0x001CE1, 0x00DBFF],
+ [0x00E000, 0x01117F],
+ [0x0111E0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sharada}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sharada}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Shrd}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Shrd}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sharada}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sharada}"
+);
+testPropertyEscapes(
+ /^\P{scx=Shrd}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Shrd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Shavian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Shavian.js
new file mode 100644
index 0000000000..09b9181e38
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Shavian.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Shavian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x010450, 0x01047F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Shavian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Shavian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Shaw}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Shaw}"
+);
+testPropertyEscapes(
+ /^\p{scx=Shavian}+$/u,
+ matchSymbols,
+ "\\p{scx=Shavian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Shaw}+$/u,
+ matchSymbols,
+ "\\p{scx=Shaw}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01044F],
+ [0x010480, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Shavian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Shavian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Shaw}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Shaw}"
+);
+testPropertyEscapes(
+ /^\P{scx=Shavian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Shavian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Shaw}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Shaw}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Siddham.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Siddham.js
new file mode 100644
index 0000000000..74297ac189
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Siddham.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Siddham`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011580, 0x0115B5],
+ [0x0115B8, 0x0115DD]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Siddham}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Siddham}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sidd}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sidd}"
+);
+testPropertyEscapes(
+ /^\p{scx=Siddham}+$/u,
+ matchSymbols,
+ "\\p{scx=Siddham}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sidd}+$/u,
+ matchSymbols,
+ "\\p{scx=Sidd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01157F],
+ [0x0115B6, 0x0115B7],
+ [0x0115DE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Siddham}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Siddham}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sidd}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sidd}"
+);
+testPropertyEscapes(
+ /^\P{scx=Siddham}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Siddham}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sidd}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sidd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_SignWriting.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_SignWriting.js
new file mode 100644
index 0000000000..8b26452fa8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_SignWriting.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=SignWriting`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x01D800, 0x01DA8B],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=SignWriting}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=SignWriting}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sgnw}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sgnw}"
+);
+testPropertyEscapes(
+ /^\p{scx=SignWriting}+$/u,
+ matchSymbols,
+ "\\p{scx=SignWriting}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sgnw}+$/u,
+ matchSymbols,
+ "\\p{scx=Sgnw}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01DAA0
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01D7FF],
+ [0x01DA8C, 0x01DA9A],
+ [0x01DAB0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=SignWriting}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=SignWriting}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sgnw}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sgnw}"
+);
+testPropertyEscapes(
+ /^\P{scx=SignWriting}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=SignWriting}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sgnw}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sgnw}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js
new file mode 100644
index 0000000000..90dc13c0e1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js
@@ -0,0 +1,101 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Sinhala`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000DBD,
+ 0x000DCA,
+ 0x000DD6
+ ],
+ ranges: [
+ [0x000964, 0x000965],
+ [0x000D81, 0x000D83],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000DCF, 0x000DD4],
+ [0x000DD8, 0x000DDF],
+ [0x000DE6, 0x000DEF],
+ [0x000DF2, 0x000DF4],
+ [0x0111E1, 0x0111F4]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sinhala}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sinhala}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sinh}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sinh}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sinhala}+$/u,
+ matchSymbols,
+ "\\p{scx=Sinhala}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sinh}+$/u,
+ matchSymbols,
+ "\\p{scx=Sinh}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000D84,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000DD5,
+ 0x000DD7
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000963],
+ [0x000966, 0x000D80],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000DC9],
+ [0x000DCB, 0x000DCE],
+ [0x000DE0, 0x000DE5],
+ [0x000DF0, 0x000DF1],
+ [0x000DF5, 0x00DBFF],
+ [0x00E000, 0x0111E0],
+ [0x0111F5, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sinhala}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sinhala}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sinh}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sinh}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sinhala}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sinhala}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sinh}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sinh}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sogdian.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sogdian.js
new file mode 100644
index 0000000000..bac638bcad
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sogdian.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Sogdian`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000640
+ ],
+ ranges: [
+ [0x010F30, 0x010F59]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sogdian}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sogdian}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sogd}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sogd}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sogdian}+$/u,
+ matchSymbols,
+ "\\p{scx=Sogdian}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sogd}+$/u,
+ matchSymbols,
+ "\\p{scx=Sogd}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00063F],
+ [0x000641, 0x00DBFF],
+ [0x00E000, 0x010F2F],
+ [0x010F5A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sogdian}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sogdian}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sogd}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sogd}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sogdian}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sogdian}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sogd}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sogd}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sora_Sompeng.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sora_Sompeng.js
new file mode 100644
index 0000000000..df95e89c43
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sora_Sompeng.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Sora_Sompeng`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x0110D0, 0x0110E8],
+ [0x0110F0, 0x0110F9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sora_Sompeng}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sora_Sompeng}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sora}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sora}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sora_Sompeng}+$/u,
+ matchSymbols,
+ "\\p{scx=Sora_Sompeng}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sora}+$/u,
+ matchSymbols,
+ "\\p{scx=Sora}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0110CF],
+ [0x0110E9, 0x0110EF],
+ [0x0110FA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sora_Sompeng}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sora_Sompeng}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sora}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sora}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sora_Sompeng}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sora_Sompeng}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sora}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sora}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Soyombo.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Soyombo.js
new file mode 100644
index 0000000000..9fa5167036
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Soyombo.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Soyombo`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011A50, 0x011AA2]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Soyombo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Soyombo}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Soyo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Soyo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Soyombo}+$/u,
+ matchSymbols,
+ "\\p{scx=Soyombo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Soyo}+$/u,
+ matchSymbols,
+ "\\p{scx=Soyo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x011A4F],
+ [0x011AA3, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Soyombo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Soyombo}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Soyo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Soyo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Soyombo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Soyombo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Soyo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Soyo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sundanese.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sundanese.js
new file mode 100644
index 0000000000..011bd301ac
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sundanese.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Sundanese`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001B80, 0x001BBF],
+ [0x001CC0, 0x001CC7]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sundanese}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sundanese}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sund}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sund}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sundanese}+$/u,
+ matchSymbols,
+ "\\p{scx=Sundanese}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sund}+$/u,
+ matchSymbols,
+ "\\p{scx=Sund}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001B7F],
+ [0x001BC0, 0x001CBF],
+ [0x001CC8, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sundanese}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sundanese}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sund}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sund}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sundanese}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sundanese}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sund}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sund}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syloti_Nagri.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syloti_Nagri.js
new file mode 100644
index 0000000000..1173bc04fe
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syloti_Nagri.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Syloti_Nagri`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000964, 0x000965],
+ [0x0009E6, 0x0009EF],
+ [0x00A800, 0x00A82C]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Syloti_Nagri}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Syloti_Nagri}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Sylo}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Sylo}"
+);
+testPropertyEscapes(
+ /^\p{scx=Syloti_Nagri}+$/u,
+ matchSymbols,
+ "\\p{scx=Syloti_Nagri}"
+);
+testPropertyEscapes(
+ /^\p{scx=Sylo}+$/u,
+ matchSymbols,
+ "\\p{scx=Sylo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000963],
+ [0x000966, 0x0009E5],
+ [0x0009F0, 0x00A7FF],
+ [0x00A82D, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Syloti_Nagri}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Syloti_Nagri}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Sylo}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Sylo}"
+);
+testPropertyEscapes(
+ /^\P{scx=Syloti_Nagri}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Syloti_Nagri}"
+);
+testPropertyEscapes(
+ /^\P{scx=Sylo}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Sylo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syriac.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syriac.js
new file mode 100644
index 0000000000..97e2bf8439
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syriac.js
@@ -0,0 +1,95 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Syriac`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00060C,
+ 0x00061F,
+ 0x000640,
+ 0x000670,
+ 0x001DF8
+ ],
+ ranges: [
+ [0x00061B, 0x00061C],
+ [0x00064B, 0x000655],
+ [0x000700, 0x00070D],
+ [0x00070F, 0x00074A],
+ [0x00074D, 0x00074F],
+ [0x000860, 0x00086A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Syriac}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Syriac}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Syrc}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Syrc}"
+);
+testPropertyEscapes(
+ /^\p{scx=Syriac}+$/u,
+ matchSymbols,
+ "\\p{scx=Syriac}"
+);
+testPropertyEscapes(
+ /^\p{scx=Syrc}+$/u,
+ matchSymbols,
+ "\\p{scx=Syrc}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00070E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00060B],
+ [0x00060D, 0x00061A],
+ [0x00061D, 0x00061E],
+ [0x000620, 0x00063F],
+ [0x000641, 0x00064A],
+ [0x000656, 0x00066F],
+ [0x000671, 0x0006FF],
+ [0x00074B, 0x00074C],
+ [0x000750, 0x00085F],
+ [0x00086B, 0x001DF7],
+ [0x001DF9, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Syriac}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Syriac}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Syrc}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Syrc}"
+);
+testPropertyEscapes(
+ /^\P{scx=Syriac}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Syriac}"
+);
+testPropertyEscapes(
+ /^\P{scx=Syrc}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Syrc}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagalog.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagalog.js
new file mode 100644
index 0000000000..8a72ece38e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagalog.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Tagalog`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001714],
+ [0x001735, 0x001736]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tagalog}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tagalog}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tglg}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tglg}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tagalog}+$/u,
+ matchSymbols,
+ "\\p{scx=Tagalog}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tglg}+$/u,
+ matchSymbols,
+ "\\p{scx=Tglg}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00170D
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0016FF],
+ [0x001715, 0x001734],
+ [0x001737, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tagalog}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tagalog}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tglg}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tglg}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tagalog}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tagalog}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tglg}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tglg}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagbanwa.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagbanwa.js
new file mode 100644
index 0000000000..da2932b8e2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagbanwa.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Tagbanwa`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001735, 0x001736],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001772, 0x001773]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tagbanwa}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tagbanwa}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tagb}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tagb}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tagbanwa}+$/u,
+ matchSymbols,
+ "\\p{scx=Tagbanwa}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tagb}+$/u,
+ matchSymbols,
+ "\\p{scx=Tagb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00176D,
+ 0x001771
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001734],
+ [0x001737, 0x00175F],
+ [0x001774, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tagbanwa}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tagbanwa}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tagb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tagb}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tagbanwa}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tagbanwa}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tagb}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tagb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Le.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Le.js
new file mode 100644
index 0000000000..211b621d30
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Le.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Tai_Le`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001040, 0x001049],
+ [0x001950, 0x00196D],
+ [0x001970, 0x001974]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tai_Le}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tai_Le}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tale}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tale}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tai_Le}+$/u,
+ matchSymbols,
+ "\\p{scx=Tai_Le}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tale}+$/u,
+ matchSymbols,
+ "\\p{scx=Tale}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00103F],
+ [0x00104A, 0x00194F],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tai_Le}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tai_Le}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tale}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tale}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tai_Le}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tai_Le}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tale}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tale}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Tham.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Tham.js
new file mode 100644
index 0000000000..05677b4514
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Tham.js
@@ -0,0 +1,82 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Tai_Tham`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x001A20, 0x001A5E],
+ [0x001A60, 0x001A7C],
+ [0x001A7F, 0x001A89],
+ [0x001A90, 0x001A99],
+ [0x001AA0, 0x001AAD]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tai_Tham}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tai_Tham}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Lana}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Lana}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tai_Tham}+$/u,
+ matchSymbols,
+ "\\p{scx=Tai_Tham}"
+);
+testPropertyEscapes(
+ /^\p{scx=Lana}+$/u,
+ matchSymbols,
+ "\\p{scx=Lana}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x001A5F
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x001A1F],
+ [0x001A7D, 0x001A7E],
+ [0x001A8A, 0x001A8F],
+ [0x001A9A, 0x001A9F],
+ [0x001AAE, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tai_Tham}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tai_Tham}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Lana}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Lana}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tai_Tham}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tai_Tham}"
+);
+testPropertyEscapes(
+ /^\P{scx=Lana}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Lana}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Viet.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Viet.js
new file mode 100644
index 0000000000..a102d6d38e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Viet.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Tai_Viet`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00AA80, 0x00AAC2],
+ [0x00AADB, 0x00AADF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tai_Viet}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tai_Viet}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tavt}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tavt}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tai_Viet}+$/u,
+ matchSymbols,
+ "\\p{scx=Tai_Viet}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tavt}+$/u,
+ matchSymbols,
+ "\\p{scx=Tavt}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00AA7F],
+ [0x00AAC3, 0x00AADA],
+ [0x00AAE0, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tai_Viet}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tai_Viet}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tavt}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tavt}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tai_Viet}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tai_Viet}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tavt}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tavt}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Takri.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Takri.js
new file mode 100644
index 0000000000..701cea27e7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Takri.js
@@ -0,0 +1,79 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Takri`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000964, 0x000965],
+ [0x00A830, 0x00A839],
+ [0x011680, 0x0116B8],
+ [0x0116C0, 0x0116C9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Takri}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Takri}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Takr}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Takr}"
+);
+testPropertyEscapes(
+ /^\p{scx=Takri}+$/u,
+ matchSymbols,
+ "\\p{scx=Takri}"
+);
+testPropertyEscapes(
+ /^\p{scx=Takr}+$/u,
+ matchSymbols,
+ "\\p{scx=Takr}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000963],
+ [0x000966, 0x00A82F],
+ [0x00A83A, 0x00DBFF],
+ [0x00E000, 0x01167F],
+ [0x0116B9, 0x0116BF],
+ [0x0116CA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Takri}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Takri}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Takr}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Takr}"
+);
+testPropertyEscapes(
+ /^\P{scx=Takri}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Takri}"
+);
+testPropertyEscapes(
+ /^\P{scx=Takr}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Takr}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tamil.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tamil.js
new file mode 100644
index 0000000000..d1a7023a3a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tamil.js
@@ -0,0 +1,123 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Tamil`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000B9C,
+ 0x000BD0,
+ 0x000BD7,
+ 0x001CDA,
+ 0x00A8F3,
+ 0x011301,
+ 0x011303,
+ 0x011FFF
+ ],
+ ranges: [
+ [0x000951, 0x000952],
+ [0x000964, 0x000965],
+ [0x000B82, 0x000B83],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000BBE, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCD],
+ [0x000BE6, 0x000BFA],
+ [0x01133B, 0x01133C],
+ [0x011FC0, 0x011FF1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tamil}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tamil}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Taml}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Taml}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tamil}+$/u,
+ matchSymbols,
+ "\\p{scx=Tamil}"
+);
+testPropertyEscapes(
+ /^\p{scx=Taml}+$/u,
+ matchSymbols,
+ "\\p{scx=Taml}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000BC9,
+ 0x011302
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000953, 0x000963],
+ [0x000966, 0x000B81],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BBD],
+ [0x000BC3, 0x000BC5],
+ [0x000BCE, 0x000BCF],
+ [0x000BD1, 0x000BD6],
+ [0x000BD8, 0x000BE5],
+ [0x000BFB, 0x001CD9],
+ [0x001CDB, 0x00A8F2],
+ [0x00A8F4, 0x00DBFF],
+ [0x00E000, 0x011300],
+ [0x011304, 0x01133A],
+ [0x01133D, 0x011FBF],
+ [0x011FF2, 0x011FFE],
+ [0x012000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tamil}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tamil}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Taml}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Taml}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tamil}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tamil}"
+);
+testPropertyEscapes(
+ /^\P{scx=Taml}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Taml}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tangut.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tangut.js
new file mode 100644
index 0000000000..b75c092336
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tangut.js
@@ -0,0 +1,80 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Tangut`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x016FE0
+ ],
+ ranges: [
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018AFF],
+ [0x018D00, 0x018D08]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tangut}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tangut}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tang}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tang}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tangut}+$/u,
+ matchSymbols,
+ "\\p{scx=Tangut}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tang}+$/u,
+ matchSymbols,
+ "\\p{scx=Tang}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x016FDF],
+ [0x016FE1, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018B00, 0x018CFF],
+ [0x018D09, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tangut}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tangut}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tang}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tang}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tangut}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tangut}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tang}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tang}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Telugu.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Telugu.js
new file mode 100644
index 0000000000..f3c1988a96
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Telugu.js
@@ -0,0 +1,105 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Telugu`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001CDA,
+ 0x001CF2
+ ],
+ ranges: [
+ [0x000951, 0x000952],
+ [0x000964, 0x000965],
+ [0x000C00, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C3D, 0x000C44],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C63],
+ [0x000C66, 0x000C6F],
+ [0x000C77, 0x000C7F]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Telugu}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Telugu}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Telu}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Telu}"
+);
+testPropertyEscapes(
+ /^\p{scx=Telugu}+$/u,
+ matchSymbols,
+ "\\p{scx=Telugu}"
+);
+testPropertyEscapes(
+ /^\p{scx=Telu}+$/u,
+ matchSymbols,
+ "\\p{scx=Telu}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C45,
+ 0x000C49,
+ 0x000C57
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000953, 0x000963],
+ [0x000966, 0x000BFF],
+ [0x000C3A, 0x000C3C],
+ [0x000C4E, 0x000C54],
+ [0x000C5B, 0x000C5F],
+ [0x000C64, 0x000C65],
+ [0x000C70, 0x000C76],
+ [0x000C80, 0x001CD9],
+ [0x001CDB, 0x001CF1],
+ [0x001CF3, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Telugu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Telugu}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Telu}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Telu}"
+);
+testPropertyEscapes(
+ /^\P{scx=Telugu}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Telugu}"
+);
+testPropertyEscapes(
+ /^\P{scx=Telu}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Telu}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thaana.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thaana.js
new file mode 100644
index 0000000000..ad5f03e67d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thaana.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Thaana`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00060C,
+ 0x00061F,
+ 0x00FDF2,
+ 0x00FDFD
+ ],
+ ranges: [
+ [0x00061B, 0x00061C],
+ [0x000660, 0x000669],
+ [0x000780, 0x0007B1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Thaana}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Thaana}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Thaa}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Thaa}"
+);
+testPropertyEscapes(
+ /^\p{scx=Thaana}+$/u,
+ matchSymbols,
+ "\\p{scx=Thaana}"
+);
+testPropertyEscapes(
+ /^\p{scx=Thaa}+$/u,
+ matchSymbols,
+ "\\p{scx=Thaa}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00060B],
+ [0x00060D, 0x00061A],
+ [0x00061D, 0x00061E],
+ [0x000620, 0x00065F],
+ [0x00066A, 0x00077F],
+ [0x0007B2, 0x00DBFF],
+ [0x00E000, 0x00FDF1],
+ [0x00FDF3, 0x00FDFC],
+ [0x00FDFE, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Thaana}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Thaana}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Thaa}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Thaa}"
+);
+testPropertyEscapes(
+ /^\P{scx=Thaana}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Thaana}"
+);
+testPropertyEscapes(
+ /^\P{scx=Thaa}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Thaa}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thai.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thai.js
new file mode 100644
index 0000000000..b7acba181f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thai.js
@@ -0,0 +1,75 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Thai`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000E01, 0x000E3A],
+ [0x000E40, 0x000E5B]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Thai}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Thai}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Thai}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Thai}"
+);
+testPropertyEscapes(
+ /^\p{scx=Thai}+$/u,
+ matchSymbols,
+ "\\p{scx=Thai}"
+);
+testPropertyEscapes(
+ /^\p{scx=Thai}+$/u,
+ matchSymbols,
+ "\\p{scx=Thai}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000E00],
+ [0x000E3B, 0x000E3F],
+ [0x000E5C, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Thai}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Thai}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Thai}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Thai}"
+);
+testPropertyEscapes(
+ /^\P{scx=Thai}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Thai}"
+);
+testPropertyEscapes(
+ /^\P{scx=Thai}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Thai}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tibetan.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tibetan.js
new file mode 100644
index 0000000000..8eadc68206
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tibetan.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Tibetan`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x000F00, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F71, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x000FBE, 0x000FCC],
+ [0x000FCE, 0x000FD4],
+ [0x000FD9, 0x000FDA]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tibetan}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tibetan}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tibt}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tibt}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tibetan}+$/u,
+ matchSymbols,
+ "\\p{scx=Tibetan}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tibt}+$/u,
+ matchSymbols,
+ "\\p{scx=Tibt}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000F48,
+ 0x000F98,
+ 0x000FBD,
+ 0x000FCD
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000EFF],
+ [0x000F6D, 0x000F70],
+ [0x000FD5, 0x000FD8],
+ [0x000FDB, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tibetan}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tibetan}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tibt}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tibt}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tibetan}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tibetan}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tibt}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tibt}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tifinagh.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tifinagh.js
new file mode 100644
index 0000000000..8c03e0b088
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tifinagh.js
@@ -0,0 +1,78 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Tifinagh`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x002D7F
+ ],
+ ranges: [
+ [0x002D30, 0x002D67],
+ [0x002D6F, 0x002D70]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tifinagh}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tifinagh}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tfng}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tfng}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tifinagh}+$/u,
+ matchSymbols,
+ "\\p{scx=Tifinagh}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tfng}+$/u,
+ matchSymbols,
+ "\\p{scx=Tfng}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D71, 0x002D7E],
+ [0x002D80, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tifinagh}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tifinagh}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tfng}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tfng}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tifinagh}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tifinagh}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tfng}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tfng}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tirhuta.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tirhuta.js
new file mode 100644
index 0000000000..712a8f5d4c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tirhuta.js
@@ -0,0 +1,84 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Tirhuta`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x001CF2
+ ],
+ ranges: [
+ [0x000951, 0x000952],
+ [0x000964, 0x000965],
+ [0x00A830, 0x00A839],
+ [0x011480, 0x0114C7],
+ [0x0114D0, 0x0114D9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tirhuta}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tirhuta}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Tirh}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Tirh}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tirhuta}+$/u,
+ matchSymbols,
+ "\\p{scx=Tirhuta}"
+);
+testPropertyEscapes(
+ /^\p{scx=Tirh}+$/u,
+ matchSymbols,
+ "\\p{scx=Tirh}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000950],
+ [0x000953, 0x000963],
+ [0x000966, 0x001CF1],
+ [0x001CF3, 0x00A82F],
+ [0x00A83A, 0x00DBFF],
+ [0x00E000, 0x01147F],
+ [0x0114C8, 0x0114CF],
+ [0x0114DA, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tirhuta}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tirhuta}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Tirh}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Tirh}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tirhuta}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tirhuta}"
+);
+testPropertyEscapes(
+ /^\P{scx=Tirh}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Tirh}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ugaritic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ugaritic.js
new file mode 100644
index 0000000000..e806a496d6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ugaritic.js
@@ -0,0 +1,77 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Ugaritic`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01039F
+ ],
+ ranges: [
+ [0x010380, 0x01039D]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Ugaritic}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Ugaritic}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Ugar}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Ugar}"
+);
+testPropertyEscapes(
+ /^\p{scx=Ugaritic}+$/u,
+ matchSymbols,
+ "\\p{scx=Ugaritic}"
+);
+testPropertyEscapes(
+ /^\p{scx=Ugar}+$/u,
+ matchSymbols,
+ "\\p{scx=Ugar}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x01039E
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01037F],
+ [0x0103A0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Ugaritic}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Ugaritic}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Ugar}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Ugar}"
+);
+testPropertyEscapes(
+ /^\P{scx=Ugaritic}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Ugaritic}"
+);
+testPropertyEscapes(
+ /^\P{scx=Ugar}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Ugar}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Vai.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Vai.js
new file mode 100644
index 0000000000..6e29d0aff6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Vai.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Vai`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00A500, 0x00A62B]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Vai}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Vai}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Vaii}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Vaii}"
+);
+testPropertyEscapes(
+ /^\p{scx=Vai}+$/u,
+ matchSymbols,
+ "\\p{scx=Vai}"
+);
+testPropertyEscapes(
+ /^\p{scx=Vaii}+$/u,
+ matchSymbols,
+ "\\p{scx=Vaii}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00A4FF],
+ [0x00A62C, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Vai}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Vai}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Vaii}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Vaii}"
+);
+testPropertyEscapes(
+ /^\P{scx=Vai}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Vai}"
+);
+testPropertyEscapes(
+ /^\P{scx=Vaii}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Vaii}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Wancho.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Wancho.js
new file mode 100644
index 0000000000..0da28f375c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Wancho.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Wancho`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x01E2FF
+ ],
+ ranges: [
+ [0x01E2C0, 0x01E2F9]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Wancho}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Wancho}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Wcho}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Wcho}"
+);
+testPropertyEscapes(
+ /^\p{scx=Wancho}+$/u,
+ matchSymbols,
+ "\\p{scx=Wancho}"
+);
+testPropertyEscapes(
+ /^\p{scx=Wcho}+$/u,
+ matchSymbols,
+ "\\p{scx=Wcho}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01E2BF],
+ [0x01E2FA, 0x01E2FE],
+ [0x01E300, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Wancho}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Wancho}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Wcho}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Wcho}"
+);
+testPropertyEscapes(
+ /^\P{scx=Wancho}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Wancho}"
+);
+testPropertyEscapes(
+ /^\P{scx=Wcho}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Wcho}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Warang_Citi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Warang_Citi.js
new file mode 100644
index 0000000000..810273f882
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Warang_Citi.js
@@ -0,0 +1,76 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Warang_Citi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0118FF
+ ],
+ ranges: [
+ [0x0118A0, 0x0118F2]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Warang_Citi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Warang_Citi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Wara}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Wara}"
+);
+testPropertyEscapes(
+ /^\p{scx=Warang_Citi}+$/u,
+ matchSymbols,
+ "\\p{scx=Warang_Citi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Wara}+$/u,
+ matchSymbols,
+ "\\p{scx=Wara}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x01189F],
+ [0x0118F3, 0x0118FE],
+ [0x011900, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Warang_Citi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Warang_Citi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Wara}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Wara}"
+);
+testPropertyEscapes(
+ /^\P{scx=Warang_Citi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Warang_Citi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Wara}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Wara}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yezidi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yezidi.js
new file mode 100644
index 0000000000..48a7b3b5f0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yezidi.js
@@ -0,0 +1,87 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Yezidi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00060C,
+ 0x00061B,
+ 0x00061F
+ ],
+ ranges: [
+ [0x000660, 0x000669],
+ [0x010E80, 0x010EA9],
+ [0x010EAB, 0x010EAD],
+ [0x010EB0, 0x010EB1]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Yezidi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Yezidi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Yezi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Yezi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Yezidi}+$/u,
+ matchSymbols,
+ "\\p{scx=Yezidi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Yezi}+$/u,
+ matchSymbols,
+ "\\p{scx=Yezi}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x010EAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00060B],
+ [0x00060D, 0x00061A],
+ [0x00061C, 0x00061E],
+ [0x000620, 0x00065F],
+ [0x00066A, 0x00DBFF],
+ [0x00E000, 0x010E7F],
+ [0x010EAE, 0x010EAF],
+ [0x010EB2, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Yezidi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Yezidi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Yezi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Yezi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Yezidi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Yezidi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Yezi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Yezi}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yi.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yi.js
new file mode 100644
index 0000000000..a8bcf9fbb6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yi.js
@@ -0,0 +1,86 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Yi`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0030FB
+ ],
+ ranges: [
+ [0x003001, 0x003002],
+ [0x003008, 0x003011],
+ [0x003014, 0x00301B],
+ [0x00A000, 0x00A48C],
+ [0x00A490, 0x00A4C6],
+ [0x00FF61, 0x00FF65]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Yi}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Yi}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Yiii}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Yiii}"
+);
+testPropertyEscapes(
+ /^\p{scx=Yi}+$/u,
+ matchSymbols,
+ "\\p{scx=Yi}"
+);
+testPropertyEscapes(
+ /^\p{scx=Yiii}+$/u,
+ matchSymbols,
+ "\\p{scx=Yiii}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x003000],
+ [0x003003, 0x003007],
+ [0x003012, 0x003013],
+ [0x00301C, 0x0030FA],
+ [0x0030FC, 0x009FFF],
+ [0x00A48D, 0x00A48F],
+ [0x00A4C7, 0x00DBFF],
+ [0x00E000, 0x00FF60],
+ [0x00FF66, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Yi}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Yi}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Yiii}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Yiii}"
+);
+testPropertyEscapes(
+ /^\P{scx=Yi}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Yi}"
+);
+testPropertyEscapes(
+ /^\P{scx=Yiii}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Yiii}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Zanabazar_Square.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Zanabazar_Square.js
new file mode 100644
index 0000000000..872ed50d45
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Zanabazar_Square.js
@@ -0,0 +1,73 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Script_Extensions=Zanabazar_Square`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x011A00, 0x011A47]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Script_Extensions=Zanabazar_Square}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Zanabazar_Square}"
+);
+testPropertyEscapes(
+ /^\p{Script_Extensions=Zanb}+$/u,
+ matchSymbols,
+ "\\p{Script_Extensions=Zanb}"
+);
+testPropertyEscapes(
+ /^\p{scx=Zanabazar_Square}+$/u,
+ matchSymbols,
+ "\\p{scx=Zanabazar_Square}"
+);
+testPropertyEscapes(
+ /^\p{scx=Zanb}+$/u,
+ matchSymbols,
+ "\\p{scx=Zanb}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00DBFF],
+ [0x00E000, 0x0119FF],
+ [0x011A48, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Script_Extensions=Zanabazar_Square}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Zanabazar_Square}"
+);
+testPropertyEscapes(
+ /^\P{Script_Extensions=Zanb}+$/u,
+ nonMatchSymbols,
+ "\\P{Script_Extensions=Zanb}"
+);
+testPropertyEscapes(
+ /^\P{scx=Zanabazar_Square}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Zanabazar_Square}"
+);
+testPropertyEscapes(
+ /^\P{scx=Zanb}+$/u,
+ nonMatchSymbols,
+ "\\P{scx=Zanb}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js
new file mode 100644
index 0000000000..587b912b1b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js
@@ -0,0 +1,205 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Sentence_Terminal`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000021,
+ 0x00002E,
+ 0x00003F,
+ 0x000589,
+ 0x0006D4,
+ 0x0007F9,
+ 0x000837,
+ 0x000839,
+ 0x001362,
+ 0x00166E,
+ 0x001803,
+ 0x001809,
+ 0x002E2E,
+ 0x002E3C,
+ 0x003002,
+ 0x00A4FF,
+ 0x00A6F3,
+ 0x00A6F7,
+ 0x00A92F,
+ 0x00ABEB,
+ 0x00FE52,
+ 0x00FF01,
+ 0x00FF0E,
+ 0x00FF1F,
+ 0x00FF61,
+ 0x0111CD,
+ 0x0112A9,
+ 0x011944,
+ 0x011946,
+ 0x016AF5,
+ 0x016B44,
+ 0x016E98,
+ 0x01BC9F,
+ 0x01DA88
+ ],
+ ranges: [
+ [0x00061E, 0x00061F],
+ [0x000700, 0x000702],
+ [0x00083D, 0x00083E],
+ [0x000964, 0x000965],
+ [0x00104A, 0x00104B],
+ [0x001367, 0x001368],
+ [0x001735, 0x001736],
+ [0x001944, 0x001945],
+ [0x001AA8, 0x001AAB],
+ [0x001B5A, 0x001B5B],
+ [0x001B5E, 0x001B5F],
+ [0x001C3B, 0x001C3C],
+ [0x001C7E, 0x001C7F],
+ [0x00203C, 0x00203D],
+ [0x002047, 0x002049],
+ [0x00A60E, 0x00A60F],
+ [0x00A876, 0x00A877],
+ [0x00A8CE, 0x00A8CF],
+ [0x00A9C8, 0x00A9C9],
+ [0x00AA5D, 0x00AA5F],
+ [0x00AAF0, 0x00AAF1],
+ [0x00FE56, 0x00FE57],
+ [0x010A56, 0x010A57],
+ [0x010F55, 0x010F59],
+ [0x011047, 0x011048],
+ [0x0110BE, 0x0110C1],
+ [0x011141, 0x011143],
+ [0x0111C5, 0x0111C6],
+ [0x0111DE, 0x0111DF],
+ [0x011238, 0x011239],
+ [0x01123B, 0x01123C],
+ [0x01144B, 0x01144C],
+ [0x0115C2, 0x0115C3],
+ [0x0115C9, 0x0115D7],
+ [0x011641, 0x011642],
+ [0x01173C, 0x01173E],
+ [0x011A42, 0x011A43],
+ [0x011A9B, 0x011A9C],
+ [0x011C41, 0x011C42],
+ [0x011EF7, 0x011EF8],
+ [0x016A6E, 0x016A6F],
+ [0x016B37, 0x016B38]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Sentence_Terminal}+$/u,
+ matchSymbols,
+ "\\p{Sentence_Terminal}"
+);
+testPropertyEscapes(
+ /^\p{STerm}+$/u,
+ matchSymbols,
+ "\\p{STerm}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000838,
+ 0x01123A,
+ 0x011945
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000020],
+ [0x000022, 0x00002D],
+ [0x00002F, 0x00003E],
+ [0x000040, 0x000588],
+ [0x00058A, 0x00061D],
+ [0x000620, 0x0006D3],
+ [0x0006D5, 0x0006FF],
+ [0x000703, 0x0007F8],
+ [0x0007FA, 0x000836],
+ [0x00083A, 0x00083C],
+ [0x00083F, 0x000963],
+ [0x000966, 0x001049],
+ [0x00104C, 0x001361],
+ [0x001363, 0x001366],
+ [0x001369, 0x00166D],
+ [0x00166F, 0x001734],
+ [0x001737, 0x001802],
+ [0x001804, 0x001808],
+ [0x00180A, 0x001943],
+ [0x001946, 0x001AA7],
+ [0x001AAC, 0x001B59],
+ [0x001B5C, 0x001B5D],
+ [0x001B60, 0x001C3A],
+ [0x001C3D, 0x001C7D],
+ [0x001C80, 0x00203B],
+ [0x00203E, 0x002046],
+ [0x00204A, 0x002E2D],
+ [0x002E2F, 0x002E3B],
+ [0x002E3D, 0x003001],
+ [0x003003, 0x00A4FE],
+ [0x00A500, 0x00A60D],
+ [0x00A610, 0x00A6F2],
+ [0x00A6F4, 0x00A6F6],
+ [0x00A6F8, 0x00A875],
+ [0x00A878, 0x00A8CD],
+ [0x00A8D0, 0x00A92E],
+ [0x00A930, 0x00A9C7],
+ [0x00A9CA, 0x00AA5C],
+ [0x00AA60, 0x00AAEF],
+ [0x00AAF2, 0x00ABEA],
+ [0x00ABEC, 0x00DBFF],
+ [0x00E000, 0x00FE51],
+ [0x00FE53, 0x00FE55],
+ [0x00FE58, 0x00FF00],
+ [0x00FF02, 0x00FF0D],
+ [0x00FF0F, 0x00FF1E],
+ [0x00FF20, 0x00FF60],
+ [0x00FF62, 0x010A55],
+ [0x010A58, 0x010F54],
+ [0x010F5A, 0x011046],
+ [0x011049, 0x0110BD],
+ [0x0110C2, 0x011140],
+ [0x011144, 0x0111C4],
+ [0x0111C7, 0x0111CC],
+ [0x0111CE, 0x0111DD],
+ [0x0111E0, 0x011237],
+ [0x01123D, 0x0112A8],
+ [0x0112AA, 0x01144A],
+ [0x01144D, 0x0115C1],
+ [0x0115C4, 0x0115C8],
+ [0x0115D8, 0x011640],
+ [0x011643, 0x01173B],
+ [0x01173F, 0x011943],
+ [0x011947, 0x011A41],
+ [0x011A44, 0x011A9A],
+ [0x011A9D, 0x011C40],
+ [0x011C43, 0x011EF6],
+ [0x011EF9, 0x016A6D],
+ [0x016A70, 0x016AF4],
+ [0x016AF6, 0x016B36],
+ [0x016B39, 0x016B43],
+ [0x016B45, 0x016E97],
+ [0x016E99, 0x01BC9E],
+ [0x01BCA0, 0x01DA87],
+ [0x01DA89, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Sentence_Terminal}+$/u,
+ nonMatchSymbols,
+ "\\P{Sentence_Terminal}"
+);
+testPropertyEscapes(
+ /^\P{STerm}+$/u,
+ nonMatchSymbols,
+ "\\P{STerm}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Soft_Dotted.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Soft_Dotted.js
new file mode 100644
index 0000000000..5b862fe5dd
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Soft_Dotted.js
@@ -0,0 +1,115 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Soft_Dotted`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00012F,
+ 0x000249,
+ 0x000268,
+ 0x00029D,
+ 0x0002B2,
+ 0x0003F3,
+ 0x000456,
+ 0x000458,
+ 0x001D62,
+ 0x001D96,
+ 0x001DA4,
+ 0x001DA8,
+ 0x001E2D,
+ 0x001ECB,
+ 0x002071,
+ 0x002C7C
+ ],
+ ranges: [
+ [0x000069, 0x00006A],
+ [0x002148, 0x002149],
+ [0x01D422, 0x01D423],
+ [0x01D456, 0x01D457],
+ [0x01D48A, 0x01D48B],
+ [0x01D4BE, 0x01D4BF],
+ [0x01D4F2, 0x01D4F3],
+ [0x01D526, 0x01D527],
+ [0x01D55A, 0x01D55B],
+ [0x01D58E, 0x01D58F],
+ [0x01D5C2, 0x01D5C3],
+ [0x01D5F6, 0x01D5F7],
+ [0x01D62A, 0x01D62B],
+ [0x01D65E, 0x01D65F],
+ [0x01D692, 0x01D693]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Soft_Dotted}+$/u,
+ matchSymbols,
+ "\\p{Soft_Dotted}"
+);
+testPropertyEscapes(
+ /^\p{SD}+$/u,
+ matchSymbols,
+ "\\p{SD}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000457
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000068],
+ [0x00006B, 0x00012E],
+ [0x000130, 0x000248],
+ [0x00024A, 0x000267],
+ [0x000269, 0x00029C],
+ [0x00029E, 0x0002B1],
+ [0x0002B3, 0x0003F2],
+ [0x0003F4, 0x000455],
+ [0x000459, 0x001D61],
+ [0x001D63, 0x001D95],
+ [0x001D97, 0x001DA3],
+ [0x001DA5, 0x001DA7],
+ [0x001DA9, 0x001E2C],
+ [0x001E2E, 0x001ECA],
+ [0x001ECC, 0x002070],
+ [0x002072, 0x002147],
+ [0x00214A, 0x002C7B],
+ [0x002C7D, 0x00DBFF],
+ [0x00E000, 0x01D421],
+ [0x01D424, 0x01D455],
+ [0x01D458, 0x01D489],
+ [0x01D48C, 0x01D4BD],
+ [0x01D4C0, 0x01D4F1],
+ [0x01D4F4, 0x01D525],
+ [0x01D528, 0x01D559],
+ [0x01D55C, 0x01D58D],
+ [0x01D590, 0x01D5C1],
+ [0x01D5C4, 0x01D5F5],
+ [0x01D5F8, 0x01D629],
+ [0x01D62C, 0x01D65D],
+ [0x01D660, 0x01D691],
+ [0x01D694, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Soft_Dotted}+$/u,
+ nonMatchSymbols,
+ "\\P{Soft_Dotted}"
+);
+testPropertyEscapes(
+ /^\P{SD}+$/u,
+ nonMatchSymbols,
+ "\\P{SD}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Terminal_Punctuation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Terminal_Punctuation.js
new file mode 100644
index 0000000000..7211e27795
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Terminal_Punctuation.js
@@ -0,0 +1,261 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Terminal_Punctuation`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000021,
+ 0x00002C,
+ 0x00002E,
+ 0x00003F,
+ 0x00037E,
+ 0x000387,
+ 0x000589,
+ 0x0005C3,
+ 0x00060C,
+ 0x00061B,
+ 0x0006D4,
+ 0x00070C,
+ 0x00085E,
+ 0x000F08,
+ 0x00166E,
+ 0x0017DA,
+ 0x002E2E,
+ 0x002E3C,
+ 0x002E41,
+ 0x002E4C,
+ 0x00A92F,
+ 0x00AADF,
+ 0x00ABEB,
+ 0x00FF01,
+ 0x00FF0C,
+ 0x00FF0E,
+ 0x00FF1F,
+ 0x00FF61,
+ 0x00FF64,
+ 0x01039F,
+ 0x0103D0,
+ 0x010857,
+ 0x01091F,
+ 0x0111CD,
+ 0x0112A9,
+ 0x011944,
+ 0x011946,
+ 0x011C71,
+ 0x016AF5,
+ 0x016B44,
+ 0x01BC9F
+ ],
+ ranges: [
+ [0x00003A, 0x00003B],
+ [0x00061E, 0x00061F],
+ [0x000700, 0x00070A],
+ [0x0007F8, 0x0007F9],
+ [0x000830, 0x00083E],
+ [0x000964, 0x000965],
+ [0x000E5A, 0x000E5B],
+ [0x000F0D, 0x000F12],
+ [0x00104A, 0x00104B],
+ [0x001361, 0x001368],
+ [0x0016EB, 0x0016ED],
+ [0x001735, 0x001736],
+ [0x0017D4, 0x0017D6],
+ [0x001802, 0x001805],
+ [0x001808, 0x001809],
+ [0x001944, 0x001945],
+ [0x001AA8, 0x001AAB],
+ [0x001B5A, 0x001B5B],
+ [0x001B5D, 0x001B5F],
+ [0x001C3B, 0x001C3F],
+ [0x001C7E, 0x001C7F],
+ [0x00203C, 0x00203D],
+ [0x002047, 0x002049],
+ [0x002E4E, 0x002E4F],
+ [0x003001, 0x003002],
+ [0x00A4FE, 0x00A4FF],
+ [0x00A60D, 0x00A60F],
+ [0x00A6F3, 0x00A6F7],
+ [0x00A876, 0x00A877],
+ [0x00A8CE, 0x00A8CF],
+ [0x00A9C7, 0x00A9C9],
+ [0x00AA5D, 0x00AA5F],
+ [0x00AAF0, 0x00AAF1],
+ [0x00FE50, 0x00FE52],
+ [0x00FE54, 0x00FE57],
+ [0x00FF1A, 0x00FF1B],
+ [0x010A56, 0x010A57],
+ [0x010AF0, 0x010AF5],
+ [0x010B3A, 0x010B3F],
+ [0x010B99, 0x010B9C],
+ [0x010F55, 0x010F59],
+ [0x011047, 0x01104D],
+ [0x0110BE, 0x0110C1],
+ [0x011141, 0x011143],
+ [0x0111C5, 0x0111C6],
+ [0x0111DE, 0x0111DF],
+ [0x011238, 0x01123C],
+ [0x01144B, 0x01144D],
+ [0x01145A, 0x01145B],
+ [0x0115C2, 0x0115C5],
+ [0x0115C9, 0x0115D7],
+ [0x011641, 0x011642],
+ [0x01173C, 0x01173E],
+ [0x011A42, 0x011A43],
+ [0x011A9B, 0x011A9C],
+ [0x011AA1, 0x011AA2],
+ [0x011C41, 0x011C43],
+ [0x011EF7, 0x011EF8],
+ [0x012470, 0x012474],
+ [0x016A6E, 0x016A6F],
+ [0x016B37, 0x016B39],
+ [0x016E97, 0x016E98],
+ [0x01DA87, 0x01DA8A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Terminal_Punctuation}+$/u,
+ matchSymbols,
+ "\\p{Terminal_Punctuation}"
+);
+testPropertyEscapes(
+ /^\p{Term}+$/u,
+ matchSymbols,
+ "\\p{Term}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00002D,
+ 0x00070B,
+ 0x001B5C,
+ 0x002E4D,
+ 0x00FE53,
+ 0x00FF0D,
+ 0x011945
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000020],
+ [0x000022, 0x00002B],
+ [0x00002F, 0x000039],
+ [0x00003C, 0x00003E],
+ [0x000040, 0x00037D],
+ [0x00037F, 0x000386],
+ [0x000388, 0x000588],
+ [0x00058A, 0x0005C2],
+ [0x0005C4, 0x00060B],
+ [0x00060D, 0x00061A],
+ [0x00061C, 0x00061D],
+ [0x000620, 0x0006D3],
+ [0x0006D5, 0x0006FF],
+ [0x00070D, 0x0007F7],
+ [0x0007FA, 0x00082F],
+ [0x00083F, 0x00085D],
+ [0x00085F, 0x000963],
+ [0x000966, 0x000E59],
+ [0x000E5C, 0x000F07],
+ [0x000F09, 0x000F0C],
+ [0x000F13, 0x001049],
+ [0x00104C, 0x001360],
+ [0x001369, 0x00166D],
+ [0x00166F, 0x0016EA],
+ [0x0016EE, 0x001734],
+ [0x001737, 0x0017D3],
+ [0x0017D7, 0x0017D9],
+ [0x0017DB, 0x001801],
+ [0x001806, 0x001807],
+ [0x00180A, 0x001943],
+ [0x001946, 0x001AA7],
+ [0x001AAC, 0x001B59],
+ [0x001B60, 0x001C3A],
+ [0x001C40, 0x001C7D],
+ [0x001C80, 0x00203B],
+ [0x00203E, 0x002046],
+ [0x00204A, 0x002E2D],
+ [0x002E2F, 0x002E3B],
+ [0x002E3D, 0x002E40],
+ [0x002E42, 0x002E4B],
+ [0x002E50, 0x003000],
+ [0x003003, 0x00A4FD],
+ [0x00A500, 0x00A60C],
+ [0x00A610, 0x00A6F2],
+ [0x00A6F8, 0x00A875],
+ [0x00A878, 0x00A8CD],
+ [0x00A8D0, 0x00A92E],
+ [0x00A930, 0x00A9C6],
+ [0x00A9CA, 0x00AA5C],
+ [0x00AA60, 0x00AADE],
+ [0x00AAE0, 0x00AAEF],
+ [0x00AAF2, 0x00ABEA],
+ [0x00ABEC, 0x00DBFF],
+ [0x00E000, 0x00FE4F],
+ [0x00FE58, 0x00FF00],
+ [0x00FF02, 0x00FF0B],
+ [0x00FF0F, 0x00FF19],
+ [0x00FF1C, 0x00FF1E],
+ [0x00FF20, 0x00FF60],
+ [0x00FF62, 0x00FF63],
+ [0x00FF65, 0x01039E],
+ [0x0103A0, 0x0103CF],
+ [0x0103D1, 0x010856],
+ [0x010858, 0x01091E],
+ [0x010920, 0x010A55],
+ [0x010A58, 0x010AEF],
+ [0x010AF6, 0x010B39],
+ [0x010B40, 0x010B98],
+ [0x010B9D, 0x010F54],
+ [0x010F5A, 0x011046],
+ [0x01104E, 0x0110BD],
+ [0x0110C2, 0x011140],
+ [0x011144, 0x0111C4],
+ [0x0111C7, 0x0111CC],
+ [0x0111CE, 0x0111DD],
+ [0x0111E0, 0x011237],
+ [0x01123D, 0x0112A8],
+ [0x0112AA, 0x01144A],
+ [0x01144E, 0x011459],
+ [0x01145C, 0x0115C1],
+ [0x0115C6, 0x0115C8],
+ [0x0115D8, 0x011640],
+ [0x011643, 0x01173B],
+ [0x01173F, 0x011943],
+ [0x011947, 0x011A41],
+ [0x011A44, 0x011A9A],
+ [0x011A9D, 0x011AA0],
+ [0x011AA3, 0x011C40],
+ [0x011C44, 0x011C70],
+ [0x011C72, 0x011EF6],
+ [0x011EF9, 0x01246F],
+ [0x012475, 0x016A6D],
+ [0x016A70, 0x016AF4],
+ [0x016AF6, 0x016B36],
+ [0x016B3A, 0x016B43],
+ [0x016B45, 0x016E96],
+ [0x016E99, 0x01BC9E],
+ [0x01BCA0, 0x01DA86],
+ [0x01DA8B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Terminal_Punctuation}+$/u,
+ nonMatchSymbols,
+ "\\P{Terminal_Punctuation}"
+);
+testPropertyEscapes(
+ /^\P{Term}+$/u,
+ nonMatchSymbols,
+ "\\P{Term}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js
new file mode 100644
index 0000000000..6f1193788d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js
@@ -0,0 +1,83 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Unified_Ideograph`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00FA11,
+ 0x00FA1F,
+ 0x00FA21
+ ],
+ ranges: [
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00FA0E, 0x00FA0F],
+ [0x00FA13, 0x00FA14],
+ [0x00FA23, 0x00FA24],
+ [0x00FA27, 0x00FA29],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x030000, 0x03134A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Unified_Ideograph}+$/u,
+ matchSymbols,
+ "\\p{Unified_Ideograph}"
+);
+testPropertyEscapes(
+ /^\p{UIdeo}+$/u,
+ matchSymbols,
+ "\\p{UIdeo}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x00FA10,
+ 0x00FA12,
+ 0x00FA20,
+ 0x00FA22
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x00DBFF],
+ [0x00E000, 0x00FA0D],
+ [0x00FA15, 0x00FA1E],
+ [0x00FA25, 0x00FA26],
+ [0x00FA2A, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02FFFF],
+ [0x03134B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Unified_Ideograph}+$/u,
+ nonMatchSymbols,
+ "\\P{Unified_Ideograph}"
+);
+testPropertyEscapes(
+ /^\P{UIdeo}+$/u,
+ nonMatchSymbols,
+ "\\P{UIdeo}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Uppercase.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Uppercase.js
new file mode 100644
index 0000000000..ed182161c0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Uppercase.js
@@ -0,0 +1,1339 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Uppercase`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000100,
+ 0x000102,
+ 0x000104,
+ 0x000106,
+ 0x000108,
+ 0x00010A,
+ 0x00010C,
+ 0x00010E,
+ 0x000110,
+ 0x000112,
+ 0x000114,
+ 0x000116,
+ 0x000118,
+ 0x00011A,
+ 0x00011C,
+ 0x00011E,
+ 0x000120,
+ 0x000122,
+ 0x000124,
+ 0x000126,
+ 0x000128,
+ 0x00012A,
+ 0x00012C,
+ 0x00012E,
+ 0x000130,
+ 0x000132,
+ 0x000134,
+ 0x000136,
+ 0x000139,
+ 0x00013B,
+ 0x00013D,
+ 0x00013F,
+ 0x000141,
+ 0x000143,
+ 0x000145,
+ 0x000147,
+ 0x00014A,
+ 0x00014C,
+ 0x00014E,
+ 0x000150,
+ 0x000152,
+ 0x000154,
+ 0x000156,
+ 0x000158,
+ 0x00015A,
+ 0x00015C,
+ 0x00015E,
+ 0x000160,
+ 0x000162,
+ 0x000164,
+ 0x000166,
+ 0x000168,
+ 0x00016A,
+ 0x00016C,
+ 0x00016E,
+ 0x000170,
+ 0x000172,
+ 0x000174,
+ 0x000176,
+ 0x00017B,
+ 0x00017D,
+ 0x000184,
+ 0x0001A2,
+ 0x0001A4,
+ 0x0001A9,
+ 0x0001AC,
+ 0x0001B5,
+ 0x0001BC,
+ 0x0001C4,
+ 0x0001C7,
+ 0x0001CA,
+ 0x0001CD,
+ 0x0001CF,
+ 0x0001D1,
+ 0x0001D3,
+ 0x0001D5,
+ 0x0001D7,
+ 0x0001D9,
+ 0x0001DB,
+ 0x0001DE,
+ 0x0001E0,
+ 0x0001E2,
+ 0x0001E4,
+ 0x0001E6,
+ 0x0001E8,
+ 0x0001EA,
+ 0x0001EC,
+ 0x0001EE,
+ 0x0001F1,
+ 0x0001F4,
+ 0x0001FA,
+ 0x0001FC,
+ 0x0001FE,
+ 0x000200,
+ 0x000202,
+ 0x000204,
+ 0x000206,
+ 0x000208,
+ 0x00020A,
+ 0x00020C,
+ 0x00020E,
+ 0x000210,
+ 0x000212,
+ 0x000214,
+ 0x000216,
+ 0x000218,
+ 0x00021A,
+ 0x00021C,
+ 0x00021E,
+ 0x000220,
+ 0x000222,
+ 0x000224,
+ 0x000226,
+ 0x000228,
+ 0x00022A,
+ 0x00022C,
+ 0x00022E,
+ 0x000230,
+ 0x000232,
+ 0x000241,
+ 0x000248,
+ 0x00024A,
+ 0x00024C,
+ 0x00024E,
+ 0x000370,
+ 0x000372,
+ 0x000376,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x0003CF,
+ 0x0003D8,
+ 0x0003DA,
+ 0x0003DC,
+ 0x0003DE,
+ 0x0003E0,
+ 0x0003E2,
+ 0x0003E4,
+ 0x0003E6,
+ 0x0003E8,
+ 0x0003EA,
+ 0x0003EC,
+ 0x0003EE,
+ 0x0003F4,
+ 0x0003F7,
+ 0x000460,
+ 0x000462,
+ 0x000464,
+ 0x000466,
+ 0x000468,
+ 0x00046A,
+ 0x00046C,
+ 0x00046E,
+ 0x000470,
+ 0x000472,
+ 0x000474,
+ 0x000476,
+ 0x000478,
+ 0x00047A,
+ 0x00047C,
+ 0x00047E,
+ 0x000480,
+ 0x00048A,
+ 0x00048C,
+ 0x00048E,
+ 0x000490,
+ 0x000492,
+ 0x000494,
+ 0x000496,
+ 0x000498,
+ 0x00049A,
+ 0x00049C,
+ 0x00049E,
+ 0x0004A0,
+ 0x0004A2,
+ 0x0004A4,
+ 0x0004A6,
+ 0x0004A8,
+ 0x0004AA,
+ 0x0004AC,
+ 0x0004AE,
+ 0x0004B0,
+ 0x0004B2,
+ 0x0004B4,
+ 0x0004B6,
+ 0x0004B8,
+ 0x0004BA,
+ 0x0004BC,
+ 0x0004BE,
+ 0x0004C3,
+ 0x0004C5,
+ 0x0004C7,
+ 0x0004C9,
+ 0x0004CB,
+ 0x0004CD,
+ 0x0004D0,
+ 0x0004D2,
+ 0x0004D4,
+ 0x0004D6,
+ 0x0004D8,
+ 0x0004DA,
+ 0x0004DC,
+ 0x0004DE,
+ 0x0004E0,
+ 0x0004E2,
+ 0x0004E4,
+ 0x0004E6,
+ 0x0004E8,
+ 0x0004EA,
+ 0x0004EC,
+ 0x0004EE,
+ 0x0004F0,
+ 0x0004F2,
+ 0x0004F4,
+ 0x0004F6,
+ 0x0004F8,
+ 0x0004FA,
+ 0x0004FC,
+ 0x0004FE,
+ 0x000500,
+ 0x000502,
+ 0x000504,
+ 0x000506,
+ 0x000508,
+ 0x00050A,
+ 0x00050C,
+ 0x00050E,
+ 0x000510,
+ 0x000512,
+ 0x000514,
+ 0x000516,
+ 0x000518,
+ 0x00051A,
+ 0x00051C,
+ 0x00051E,
+ 0x000520,
+ 0x000522,
+ 0x000524,
+ 0x000526,
+ 0x000528,
+ 0x00052A,
+ 0x00052C,
+ 0x00052E,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001E00,
+ 0x001E02,
+ 0x001E04,
+ 0x001E06,
+ 0x001E08,
+ 0x001E0A,
+ 0x001E0C,
+ 0x001E0E,
+ 0x001E10,
+ 0x001E12,
+ 0x001E14,
+ 0x001E16,
+ 0x001E18,
+ 0x001E1A,
+ 0x001E1C,
+ 0x001E1E,
+ 0x001E20,
+ 0x001E22,
+ 0x001E24,
+ 0x001E26,
+ 0x001E28,
+ 0x001E2A,
+ 0x001E2C,
+ 0x001E2E,
+ 0x001E30,
+ 0x001E32,
+ 0x001E34,
+ 0x001E36,
+ 0x001E38,
+ 0x001E3A,
+ 0x001E3C,
+ 0x001E3E,
+ 0x001E40,
+ 0x001E42,
+ 0x001E44,
+ 0x001E46,
+ 0x001E48,
+ 0x001E4A,
+ 0x001E4C,
+ 0x001E4E,
+ 0x001E50,
+ 0x001E52,
+ 0x001E54,
+ 0x001E56,
+ 0x001E58,
+ 0x001E5A,
+ 0x001E5C,
+ 0x001E5E,
+ 0x001E60,
+ 0x001E62,
+ 0x001E64,
+ 0x001E66,
+ 0x001E68,
+ 0x001E6A,
+ 0x001E6C,
+ 0x001E6E,
+ 0x001E70,
+ 0x001E72,
+ 0x001E74,
+ 0x001E76,
+ 0x001E78,
+ 0x001E7A,
+ 0x001E7C,
+ 0x001E7E,
+ 0x001E80,
+ 0x001E82,
+ 0x001E84,
+ 0x001E86,
+ 0x001E88,
+ 0x001E8A,
+ 0x001E8C,
+ 0x001E8E,
+ 0x001E90,
+ 0x001E92,
+ 0x001E94,
+ 0x001E9E,
+ 0x001EA0,
+ 0x001EA2,
+ 0x001EA4,
+ 0x001EA6,
+ 0x001EA8,
+ 0x001EAA,
+ 0x001EAC,
+ 0x001EAE,
+ 0x001EB0,
+ 0x001EB2,
+ 0x001EB4,
+ 0x001EB6,
+ 0x001EB8,
+ 0x001EBA,
+ 0x001EBC,
+ 0x001EBE,
+ 0x001EC0,
+ 0x001EC2,
+ 0x001EC4,
+ 0x001EC6,
+ 0x001EC8,
+ 0x001ECA,
+ 0x001ECC,
+ 0x001ECE,
+ 0x001ED0,
+ 0x001ED2,
+ 0x001ED4,
+ 0x001ED6,
+ 0x001ED8,
+ 0x001EDA,
+ 0x001EDC,
+ 0x001EDE,
+ 0x001EE0,
+ 0x001EE2,
+ 0x001EE4,
+ 0x001EE6,
+ 0x001EE8,
+ 0x001EEA,
+ 0x001EEC,
+ 0x001EEE,
+ 0x001EF0,
+ 0x001EF2,
+ 0x001EF4,
+ 0x001EF6,
+ 0x001EF8,
+ 0x001EFA,
+ 0x001EFC,
+ 0x001EFE,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001F5F,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x002145,
+ 0x002183,
+ 0x002C60,
+ 0x002C67,
+ 0x002C69,
+ 0x002C6B,
+ 0x002C72,
+ 0x002C75,
+ 0x002C82,
+ 0x002C84,
+ 0x002C86,
+ 0x002C88,
+ 0x002C8A,
+ 0x002C8C,
+ 0x002C8E,
+ 0x002C90,
+ 0x002C92,
+ 0x002C94,
+ 0x002C96,
+ 0x002C98,
+ 0x002C9A,
+ 0x002C9C,
+ 0x002C9E,
+ 0x002CA0,
+ 0x002CA2,
+ 0x002CA4,
+ 0x002CA6,
+ 0x002CA8,
+ 0x002CAA,
+ 0x002CAC,
+ 0x002CAE,
+ 0x002CB0,
+ 0x002CB2,
+ 0x002CB4,
+ 0x002CB6,
+ 0x002CB8,
+ 0x002CBA,
+ 0x002CBC,
+ 0x002CBE,
+ 0x002CC0,
+ 0x002CC2,
+ 0x002CC4,
+ 0x002CC6,
+ 0x002CC8,
+ 0x002CCA,
+ 0x002CCC,
+ 0x002CCE,
+ 0x002CD0,
+ 0x002CD2,
+ 0x002CD4,
+ 0x002CD6,
+ 0x002CD8,
+ 0x002CDA,
+ 0x002CDC,
+ 0x002CDE,
+ 0x002CE0,
+ 0x002CE2,
+ 0x002CEB,
+ 0x002CED,
+ 0x002CF2,
+ 0x00A640,
+ 0x00A642,
+ 0x00A644,
+ 0x00A646,
+ 0x00A648,
+ 0x00A64A,
+ 0x00A64C,
+ 0x00A64E,
+ 0x00A650,
+ 0x00A652,
+ 0x00A654,
+ 0x00A656,
+ 0x00A658,
+ 0x00A65A,
+ 0x00A65C,
+ 0x00A65E,
+ 0x00A660,
+ 0x00A662,
+ 0x00A664,
+ 0x00A666,
+ 0x00A668,
+ 0x00A66A,
+ 0x00A66C,
+ 0x00A680,
+ 0x00A682,
+ 0x00A684,
+ 0x00A686,
+ 0x00A688,
+ 0x00A68A,
+ 0x00A68C,
+ 0x00A68E,
+ 0x00A690,
+ 0x00A692,
+ 0x00A694,
+ 0x00A696,
+ 0x00A698,
+ 0x00A69A,
+ 0x00A722,
+ 0x00A724,
+ 0x00A726,
+ 0x00A728,
+ 0x00A72A,
+ 0x00A72C,
+ 0x00A72E,
+ 0x00A732,
+ 0x00A734,
+ 0x00A736,
+ 0x00A738,
+ 0x00A73A,
+ 0x00A73C,
+ 0x00A73E,
+ 0x00A740,
+ 0x00A742,
+ 0x00A744,
+ 0x00A746,
+ 0x00A748,
+ 0x00A74A,
+ 0x00A74C,
+ 0x00A74E,
+ 0x00A750,
+ 0x00A752,
+ 0x00A754,
+ 0x00A756,
+ 0x00A758,
+ 0x00A75A,
+ 0x00A75C,
+ 0x00A75E,
+ 0x00A760,
+ 0x00A762,
+ 0x00A764,
+ 0x00A766,
+ 0x00A768,
+ 0x00A76A,
+ 0x00A76C,
+ 0x00A76E,
+ 0x00A779,
+ 0x00A77B,
+ 0x00A780,
+ 0x00A782,
+ 0x00A784,
+ 0x00A786,
+ 0x00A78B,
+ 0x00A78D,
+ 0x00A790,
+ 0x00A792,
+ 0x00A796,
+ 0x00A798,
+ 0x00A79A,
+ 0x00A79C,
+ 0x00A79E,
+ 0x00A7A0,
+ 0x00A7A2,
+ 0x00A7A4,
+ 0x00A7A6,
+ 0x00A7A8,
+ 0x00A7B6,
+ 0x00A7B8,
+ 0x00A7BA,
+ 0x00A7BC,
+ 0x00A7BE,
+ 0x00A7C2,
+ 0x00A7C9,
+ 0x00A7F5,
+ 0x01D49C,
+ 0x01D4A2,
+ 0x01D546,
+ 0x01D7CA
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000DE],
+ [0x000178, 0x000179],
+ [0x000181, 0x000182],
+ [0x000186, 0x000187],
+ [0x000189, 0x00018B],
+ [0x00018E, 0x000191],
+ [0x000193, 0x000194],
+ [0x000196, 0x000198],
+ [0x00019C, 0x00019D],
+ [0x00019F, 0x0001A0],
+ [0x0001A6, 0x0001A7],
+ [0x0001AE, 0x0001AF],
+ [0x0001B1, 0x0001B3],
+ [0x0001B7, 0x0001B8],
+ [0x0001F6, 0x0001F8],
+ [0x00023A, 0x00023B],
+ [0x00023D, 0x00023E],
+ [0x000243, 0x000246],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x00038F],
+ [0x000391, 0x0003A1],
+ [0x0003A3, 0x0003AB],
+ [0x0003D2, 0x0003D4],
+ [0x0003F9, 0x0003FA],
+ [0x0003FD, 0x00042F],
+ [0x0004C0, 0x0004C1],
+ [0x000531, 0x000556],
+ [0x0010A0, 0x0010C5],
+ [0x0013A0, 0x0013F5],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001F08, 0x001F0F],
+ [0x001F18, 0x001F1D],
+ [0x001F28, 0x001F2F],
+ [0x001F38, 0x001F3F],
+ [0x001F48, 0x001F4D],
+ [0x001F68, 0x001F6F],
+ [0x001FB8, 0x001FBB],
+ [0x001FC8, 0x001FCB],
+ [0x001FD8, 0x001FDB],
+ [0x001FE8, 0x001FEC],
+ [0x001FF8, 0x001FFB],
+ [0x00210B, 0x00210D],
+ [0x002110, 0x002112],
+ [0x002119, 0x00211D],
+ [0x00212A, 0x00212D],
+ [0x002130, 0x002133],
+ [0x00213E, 0x00213F],
+ [0x002160, 0x00216F],
+ [0x0024B6, 0x0024CF],
+ [0x002C00, 0x002C2E],
+ [0x002C62, 0x002C64],
+ [0x002C6D, 0x002C70],
+ [0x002C7E, 0x002C80],
+ [0x00A77D, 0x00A77E],
+ [0x00A7AA, 0x00A7AE],
+ [0x00A7B0, 0x00A7B4],
+ [0x00A7C4, 0x00A7C7],
+ [0x00FF21, 0x00FF3A],
+ [0x010400, 0x010427],
+ [0x0104B0, 0x0104D3],
+ [0x010C80, 0x010CB2],
+ [0x0118A0, 0x0118BF],
+ [0x016E40, 0x016E5F],
+ [0x01D400, 0x01D419],
+ [0x01D434, 0x01D44D],
+ [0x01D468, 0x01D481],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B5],
+ [0x01D4D0, 0x01D4E9],
+ [0x01D504, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D538, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D56C, 0x01D585],
+ [0x01D5A0, 0x01D5B9],
+ [0x01D5D4, 0x01D5ED],
+ [0x01D608, 0x01D621],
+ [0x01D63C, 0x01D655],
+ [0x01D670, 0x01D689],
+ [0x01D6A8, 0x01D6C0],
+ [0x01D6E2, 0x01D6FA],
+ [0x01D71C, 0x01D734],
+ [0x01D756, 0x01D76E],
+ [0x01D790, 0x01D7A8],
+ [0x01E900, 0x01E921],
+ [0x01F130, 0x01F149],
+ [0x01F150, 0x01F169],
+ [0x01F170, 0x01F189]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Uppercase}+$/u,
+ matchSymbols,
+ "\\p{Uppercase}"
+);
+testPropertyEscapes(
+ /^\p{Upper}+$/u,
+ matchSymbols,
+ "\\p{Upper}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x000101,
+ 0x000103,
+ 0x000105,
+ 0x000107,
+ 0x000109,
+ 0x00010B,
+ 0x00010D,
+ 0x00010F,
+ 0x000111,
+ 0x000113,
+ 0x000115,
+ 0x000117,
+ 0x000119,
+ 0x00011B,
+ 0x00011D,
+ 0x00011F,
+ 0x000121,
+ 0x000123,
+ 0x000125,
+ 0x000127,
+ 0x000129,
+ 0x00012B,
+ 0x00012D,
+ 0x00012F,
+ 0x000131,
+ 0x000133,
+ 0x000135,
+ 0x00013A,
+ 0x00013C,
+ 0x00013E,
+ 0x000140,
+ 0x000142,
+ 0x000144,
+ 0x000146,
+ 0x00014B,
+ 0x00014D,
+ 0x00014F,
+ 0x000151,
+ 0x000153,
+ 0x000155,
+ 0x000157,
+ 0x000159,
+ 0x00015B,
+ 0x00015D,
+ 0x00015F,
+ 0x000161,
+ 0x000163,
+ 0x000165,
+ 0x000167,
+ 0x000169,
+ 0x00016B,
+ 0x00016D,
+ 0x00016F,
+ 0x000171,
+ 0x000173,
+ 0x000175,
+ 0x000177,
+ 0x00017A,
+ 0x00017C,
+ 0x000183,
+ 0x000185,
+ 0x000188,
+ 0x000192,
+ 0x000195,
+ 0x00019E,
+ 0x0001A1,
+ 0x0001A3,
+ 0x0001A5,
+ 0x0001A8,
+ 0x0001AD,
+ 0x0001B0,
+ 0x0001B4,
+ 0x0001B6,
+ 0x0001CE,
+ 0x0001D0,
+ 0x0001D2,
+ 0x0001D4,
+ 0x0001D6,
+ 0x0001D8,
+ 0x0001DA,
+ 0x0001DF,
+ 0x0001E1,
+ 0x0001E3,
+ 0x0001E5,
+ 0x0001E7,
+ 0x0001E9,
+ 0x0001EB,
+ 0x0001ED,
+ 0x0001F5,
+ 0x0001F9,
+ 0x0001FB,
+ 0x0001FD,
+ 0x0001FF,
+ 0x000201,
+ 0x000203,
+ 0x000205,
+ 0x000207,
+ 0x000209,
+ 0x00020B,
+ 0x00020D,
+ 0x00020F,
+ 0x000211,
+ 0x000213,
+ 0x000215,
+ 0x000217,
+ 0x000219,
+ 0x00021B,
+ 0x00021D,
+ 0x00021F,
+ 0x000221,
+ 0x000223,
+ 0x000225,
+ 0x000227,
+ 0x000229,
+ 0x00022B,
+ 0x00022D,
+ 0x00022F,
+ 0x000231,
+ 0x00023C,
+ 0x000242,
+ 0x000247,
+ 0x000249,
+ 0x00024B,
+ 0x00024D,
+ 0x000371,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x000390,
+ 0x0003A2,
+ 0x0003D9,
+ 0x0003DB,
+ 0x0003DD,
+ 0x0003DF,
+ 0x0003E1,
+ 0x0003E3,
+ 0x0003E5,
+ 0x0003E7,
+ 0x0003E9,
+ 0x0003EB,
+ 0x0003ED,
+ 0x0003F8,
+ 0x000461,
+ 0x000463,
+ 0x000465,
+ 0x000467,
+ 0x000469,
+ 0x00046B,
+ 0x00046D,
+ 0x00046F,
+ 0x000471,
+ 0x000473,
+ 0x000475,
+ 0x000477,
+ 0x000479,
+ 0x00047B,
+ 0x00047D,
+ 0x00047F,
+ 0x00048B,
+ 0x00048D,
+ 0x00048F,
+ 0x000491,
+ 0x000493,
+ 0x000495,
+ 0x000497,
+ 0x000499,
+ 0x00049B,
+ 0x00049D,
+ 0x00049F,
+ 0x0004A1,
+ 0x0004A3,
+ 0x0004A5,
+ 0x0004A7,
+ 0x0004A9,
+ 0x0004AB,
+ 0x0004AD,
+ 0x0004AF,
+ 0x0004B1,
+ 0x0004B3,
+ 0x0004B5,
+ 0x0004B7,
+ 0x0004B9,
+ 0x0004BB,
+ 0x0004BD,
+ 0x0004BF,
+ 0x0004C2,
+ 0x0004C4,
+ 0x0004C6,
+ 0x0004C8,
+ 0x0004CA,
+ 0x0004CC,
+ 0x0004D1,
+ 0x0004D3,
+ 0x0004D5,
+ 0x0004D7,
+ 0x0004D9,
+ 0x0004DB,
+ 0x0004DD,
+ 0x0004DF,
+ 0x0004E1,
+ 0x0004E3,
+ 0x0004E5,
+ 0x0004E7,
+ 0x0004E9,
+ 0x0004EB,
+ 0x0004ED,
+ 0x0004EF,
+ 0x0004F1,
+ 0x0004F3,
+ 0x0004F5,
+ 0x0004F7,
+ 0x0004F9,
+ 0x0004FB,
+ 0x0004FD,
+ 0x0004FF,
+ 0x000501,
+ 0x000503,
+ 0x000505,
+ 0x000507,
+ 0x000509,
+ 0x00050B,
+ 0x00050D,
+ 0x00050F,
+ 0x000511,
+ 0x000513,
+ 0x000515,
+ 0x000517,
+ 0x000519,
+ 0x00051B,
+ 0x00051D,
+ 0x00051F,
+ 0x000521,
+ 0x000523,
+ 0x000525,
+ 0x000527,
+ 0x000529,
+ 0x00052B,
+ 0x00052D,
+ 0x0010C6,
+ 0x001E01,
+ 0x001E03,
+ 0x001E05,
+ 0x001E07,
+ 0x001E09,
+ 0x001E0B,
+ 0x001E0D,
+ 0x001E0F,
+ 0x001E11,
+ 0x001E13,
+ 0x001E15,
+ 0x001E17,
+ 0x001E19,
+ 0x001E1B,
+ 0x001E1D,
+ 0x001E1F,
+ 0x001E21,
+ 0x001E23,
+ 0x001E25,
+ 0x001E27,
+ 0x001E29,
+ 0x001E2B,
+ 0x001E2D,
+ 0x001E2F,
+ 0x001E31,
+ 0x001E33,
+ 0x001E35,
+ 0x001E37,
+ 0x001E39,
+ 0x001E3B,
+ 0x001E3D,
+ 0x001E3F,
+ 0x001E41,
+ 0x001E43,
+ 0x001E45,
+ 0x001E47,
+ 0x001E49,
+ 0x001E4B,
+ 0x001E4D,
+ 0x001E4F,
+ 0x001E51,
+ 0x001E53,
+ 0x001E55,
+ 0x001E57,
+ 0x001E59,
+ 0x001E5B,
+ 0x001E5D,
+ 0x001E5F,
+ 0x001E61,
+ 0x001E63,
+ 0x001E65,
+ 0x001E67,
+ 0x001E69,
+ 0x001E6B,
+ 0x001E6D,
+ 0x001E6F,
+ 0x001E71,
+ 0x001E73,
+ 0x001E75,
+ 0x001E77,
+ 0x001E79,
+ 0x001E7B,
+ 0x001E7D,
+ 0x001E7F,
+ 0x001E81,
+ 0x001E83,
+ 0x001E85,
+ 0x001E87,
+ 0x001E89,
+ 0x001E8B,
+ 0x001E8D,
+ 0x001E8F,
+ 0x001E91,
+ 0x001E93,
+ 0x001E9F,
+ 0x001EA1,
+ 0x001EA3,
+ 0x001EA5,
+ 0x001EA7,
+ 0x001EA9,
+ 0x001EAB,
+ 0x001EAD,
+ 0x001EAF,
+ 0x001EB1,
+ 0x001EB3,
+ 0x001EB5,
+ 0x001EB7,
+ 0x001EB9,
+ 0x001EBB,
+ 0x001EBD,
+ 0x001EBF,
+ 0x001EC1,
+ 0x001EC3,
+ 0x001EC5,
+ 0x001EC7,
+ 0x001EC9,
+ 0x001ECB,
+ 0x001ECD,
+ 0x001ECF,
+ 0x001ED1,
+ 0x001ED3,
+ 0x001ED5,
+ 0x001ED7,
+ 0x001ED9,
+ 0x001EDB,
+ 0x001EDD,
+ 0x001EDF,
+ 0x001EE1,
+ 0x001EE3,
+ 0x001EE5,
+ 0x001EE7,
+ 0x001EE9,
+ 0x001EEB,
+ 0x001EED,
+ 0x001EEF,
+ 0x001EF1,
+ 0x001EF3,
+ 0x001EF5,
+ 0x001EF7,
+ 0x001EF9,
+ 0x001EFB,
+ 0x001EFD,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x002C61,
+ 0x002C68,
+ 0x002C6A,
+ 0x002C6C,
+ 0x002C71,
+ 0x002C81,
+ 0x002C83,
+ 0x002C85,
+ 0x002C87,
+ 0x002C89,
+ 0x002C8B,
+ 0x002C8D,
+ 0x002C8F,
+ 0x002C91,
+ 0x002C93,
+ 0x002C95,
+ 0x002C97,
+ 0x002C99,
+ 0x002C9B,
+ 0x002C9D,
+ 0x002C9F,
+ 0x002CA1,
+ 0x002CA3,
+ 0x002CA5,
+ 0x002CA7,
+ 0x002CA9,
+ 0x002CAB,
+ 0x002CAD,
+ 0x002CAF,
+ 0x002CB1,
+ 0x002CB3,
+ 0x002CB5,
+ 0x002CB7,
+ 0x002CB9,
+ 0x002CBB,
+ 0x002CBD,
+ 0x002CBF,
+ 0x002CC1,
+ 0x002CC3,
+ 0x002CC5,
+ 0x002CC7,
+ 0x002CC9,
+ 0x002CCB,
+ 0x002CCD,
+ 0x002CCF,
+ 0x002CD1,
+ 0x002CD3,
+ 0x002CD5,
+ 0x002CD7,
+ 0x002CD9,
+ 0x002CDB,
+ 0x002CDD,
+ 0x002CDF,
+ 0x002CE1,
+ 0x002CEC,
+ 0x00A641,
+ 0x00A643,
+ 0x00A645,
+ 0x00A647,
+ 0x00A649,
+ 0x00A64B,
+ 0x00A64D,
+ 0x00A64F,
+ 0x00A651,
+ 0x00A653,
+ 0x00A655,
+ 0x00A657,
+ 0x00A659,
+ 0x00A65B,
+ 0x00A65D,
+ 0x00A65F,
+ 0x00A661,
+ 0x00A663,
+ 0x00A665,
+ 0x00A667,
+ 0x00A669,
+ 0x00A66B,
+ 0x00A681,
+ 0x00A683,
+ 0x00A685,
+ 0x00A687,
+ 0x00A689,
+ 0x00A68B,
+ 0x00A68D,
+ 0x00A68F,
+ 0x00A691,
+ 0x00A693,
+ 0x00A695,
+ 0x00A697,
+ 0x00A699,
+ 0x00A723,
+ 0x00A725,
+ 0x00A727,
+ 0x00A729,
+ 0x00A72B,
+ 0x00A72D,
+ 0x00A733,
+ 0x00A735,
+ 0x00A737,
+ 0x00A739,
+ 0x00A73B,
+ 0x00A73D,
+ 0x00A73F,
+ 0x00A741,
+ 0x00A743,
+ 0x00A745,
+ 0x00A747,
+ 0x00A749,
+ 0x00A74B,
+ 0x00A74D,
+ 0x00A74F,
+ 0x00A751,
+ 0x00A753,
+ 0x00A755,
+ 0x00A757,
+ 0x00A759,
+ 0x00A75B,
+ 0x00A75D,
+ 0x00A75F,
+ 0x00A761,
+ 0x00A763,
+ 0x00A765,
+ 0x00A767,
+ 0x00A769,
+ 0x00A76B,
+ 0x00A76D,
+ 0x00A77A,
+ 0x00A77C,
+ 0x00A77F,
+ 0x00A781,
+ 0x00A783,
+ 0x00A785,
+ 0x00A78C,
+ 0x00A791,
+ 0x00A797,
+ 0x00A799,
+ 0x00A79B,
+ 0x00A79D,
+ 0x00A79F,
+ 0x00A7A1,
+ 0x00A7A3,
+ 0x00A7A5,
+ 0x00A7A7,
+ 0x00A7A9,
+ 0x00A7AF,
+ 0x00A7B5,
+ 0x00A7B7,
+ 0x00A7B9,
+ 0x00A7BB,
+ 0x00A7BD,
+ 0x00A7C3,
+ 0x00A7C8,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D506,
+ 0x01D515,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x0000BF],
+ [0x0000DF, 0x0000FF],
+ [0x000137, 0x000138],
+ [0x000148, 0x000149],
+ [0x00017E, 0x000180],
+ [0x00018C, 0x00018D],
+ [0x000199, 0x00019B],
+ [0x0001AA, 0x0001AB],
+ [0x0001B9, 0x0001BB],
+ [0x0001BD, 0x0001C3],
+ [0x0001C5, 0x0001C6],
+ [0x0001C8, 0x0001C9],
+ [0x0001CB, 0x0001CC],
+ [0x0001DC, 0x0001DD],
+ [0x0001EF, 0x0001F0],
+ [0x0001F2, 0x0001F3],
+ [0x000233, 0x000239],
+ [0x00023F, 0x000240],
+ [0x00024F, 0x00036F],
+ [0x000373, 0x000375],
+ [0x000377, 0x00037E],
+ [0x000380, 0x000385],
+ [0x0003AC, 0x0003CE],
+ [0x0003D0, 0x0003D1],
+ [0x0003D5, 0x0003D7],
+ [0x0003EF, 0x0003F3],
+ [0x0003F5, 0x0003F6],
+ [0x0003FB, 0x0003FC],
+ [0x000430, 0x00045F],
+ [0x000481, 0x000489],
+ [0x0004CE, 0x0004CF],
+ [0x00052F, 0x000530],
+ [0x000557, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x00139F],
+ [0x0013F6, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001DFF],
+ [0x001E95, 0x001E9D],
+ [0x001EFF, 0x001F07],
+ [0x001F10, 0x001F17],
+ [0x001F1E, 0x001F27],
+ [0x001F30, 0x001F37],
+ [0x001F40, 0x001F47],
+ [0x001F4E, 0x001F58],
+ [0x001F60, 0x001F67],
+ [0x001F70, 0x001FB7],
+ [0x001FBC, 0x001FC7],
+ [0x001FCC, 0x001FD7],
+ [0x001FDC, 0x001FE7],
+ [0x001FED, 0x001FF7],
+ [0x001FFC, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x00210A],
+ [0x00210E, 0x00210F],
+ [0x002113, 0x002114],
+ [0x002116, 0x002118],
+ [0x00211E, 0x002123],
+ [0x00212E, 0x00212F],
+ [0x002134, 0x00213D],
+ [0x002140, 0x002144],
+ [0x002146, 0x00215F],
+ [0x002170, 0x002182],
+ [0x002184, 0x0024B5],
+ [0x0024D0, 0x002BFF],
+ [0x002C2F, 0x002C5F],
+ [0x002C65, 0x002C66],
+ [0x002C73, 0x002C74],
+ [0x002C76, 0x002C7D],
+ [0x002CE3, 0x002CEA],
+ [0x002CEE, 0x002CF1],
+ [0x002CF3, 0x00A63F],
+ [0x00A66D, 0x00A67F],
+ [0x00A69B, 0x00A721],
+ [0x00A72F, 0x00A731],
+ [0x00A76F, 0x00A778],
+ [0x00A787, 0x00A78A],
+ [0x00A78E, 0x00A78F],
+ [0x00A793, 0x00A795],
+ [0x00A7BF, 0x00A7C1],
+ [0x00A7CA, 0x00A7F4],
+ [0x00A7F6, 0x00DBFF],
+ [0x00E000, 0x00FF20],
+ [0x00FF3B, 0x0103FF],
+ [0x010428, 0x0104AF],
+ [0x0104D4, 0x010C7F],
+ [0x010CB3, 0x01189F],
+ [0x0118C0, 0x016E3F],
+ [0x016E60, 0x01D3FF],
+ [0x01D41A, 0x01D433],
+ [0x01D44E, 0x01D467],
+ [0x01D482, 0x01D49B],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D4B6, 0x01D4CF],
+ [0x01D4EA, 0x01D503],
+ [0x01D50B, 0x01D50C],
+ [0x01D51D, 0x01D537],
+ [0x01D547, 0x01D549],
+ [0x01D551, 0x01D56B],
+ [0x01D586, 0x01D59F],
+ [0x01D5BA, 0x01D5D3],
+ [0x01D5EE, 0x01D607],
+ [0x01D622, 0x01D63B],
+ [0x01D656, 0x01D66F],
+ [0x01D68A, 0x01D6A7],
+ [0x01D6C1, 0x01D6E1],
+ [0x01D6FB, 0x01D71B],
+ [0x01D735, 0x01D755],
+ [0x01D76F, 0x01D78F],
+ [0x01D7A9, 0x01D7C9],
+ [0x01D7CB, 0x01E8FF],
+ [0x01E922, 0x01F12F],
+ [0x01F14A, 0x01F14F],
+ [0x01F16A, 0x01F16F],
+ [0x01F18A, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Uppercase}+$/u,
+ nonMatchSymbols,
+ "\\P{Uppercase}"
+);
+testPropertyEscapes(
+ /^\P{Upper}+$/u,
+ nonMatchSymbols,
+ "\\P{Upper}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Variation_Selector.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Variation_Selector.js
new file mode 100644
index 0000000000..90f8ae63c4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/Variation_Selector.js
@@ -0,0 +1,57 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `Variation_Selector`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00180B, 0x00180D],
+ [0x00FE00, 0x00FE0F],
+ [0x0E0100, 0x0E01EF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{Variation_Selector}+$/u,
+ matchSymbols,
+ "\\p{Variation_Selector}"
+);
+testPropertyEscapes(
+ /^\p{VS}+$/u,
+ matchSymbols,
+ "\\p{VS}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00180A],
+ [0x00180E, 0x00DBFF],
+ [0x00E000, 0x00FDFF],
+ [0x00FE10, 0x0E00FF],
+ [0x0E01F0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{Variation_Selector}+$/u,
+ nonMatchSymbols,
+ "\\P{Variation_Selector}"
+);
+testPropertyEscapes(
+ /^\P{VS}+$/u,
+ nonMatchSymbols,
+ "\\P{VS}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/White_Space.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/White_Space.js
new file mode 100644
index 0000000000..c7e819cf1f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/White_Space.js
@@ -0,0 +1,72 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `White_Space`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x000020,
+ 0x000085,
+ 0x0000A0,
+ 0x001680,
+ 0x00202F,
+ 0x00205F,
+ 0x003000
+ ],
+ ranges: [
+ [0x000009, 0x00000D],
+ [0x002000, 0x00200A],
+ [0x002028, 0x002029]
+ ]
+});
+testPropertyEscapes(
+ /^\p{White_Space}+$/u,
+ matchSymbols,
+ "\\p{White_Space}"
+);
+testPropertyEscapes(
+ /^\p{space}+$/u,
+ matchSymbols,
+ "\\p{space}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000008],
+ [0x00000E, 0x00001F],
+ [0x000021, 0x000084],
+ [0x000086, 0x00009F],
+ [0x0000A1, 0x00167F],
+ [0x001681, 0x001FFF],
+ [0x00200B, 0x002027],
+ [0x00202A, 0x00202E],
+ [0x002030, 0x00205E],
+ [0x002060, 0x002FFF],
+ [0x003001, 0x00DBFF],
+ [0x00E000, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{White_Space}+$/u,
+ nonMatchSymbols,
+ "\\P{White_Space}"
+);
+testPropertyEscapes(
+ /^\P{space}+$/u,
+ nonMatchSymbols,
+ "\\P{space}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/XID_Continue.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/XID_Continue.js
new file mode 100644
index 0000000000..3d09981cf8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/XID_Continue.js
@@ -0,0 +1,1527 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `XID_Continue`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x00005F,
+ 0x0000AA,
+ 0x0000B5,
+ 0x0000B7,
+ 0x0000BA,
+ 0x0002EC,
+ 0x0002EE,
+ 0x00037F,
+ 0x00038C,
+ 0x000559,
+ 0x0005BF,
+ 0x0005C7,
+ 0x0006FF,
+ 0x0007FA,
+ 0x0007FD,
+ 0x0009B2,
+ 0x0009D7,
+ 0x0009FC,
+ 0x0009FE,
+ 0x000A3C,
+ 0x000A51,
+ 0x000A5E,
+ 0x000AD0,
+ 0x000B71,
+ 0x000B9C,
+ 0x000BD0,
+ 0x000BD7,
+ 0x000CDE,
+ 0x000DBD,
+ 0x000DCA,
+ 0x000DD6,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EC6,
+ 0x000F00,
+ 0x000F35,
+ 0x000F37,
+ 0x000F39,
+ 0x000FC6,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001258,
+ 0x0012C0,
+ 0x0017D7,
+ 0x001AA7,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001FBE,
+ 0x002054,
+ 0x002071,
+ 0x00207F,
+ 0x0020E1,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x00214E,
+ 0x002D27,
+ 0x002D2D,
+ 0x002D6F,
+ 0x00A82C,
+ 0x00A8FB,
+ 0x00FB3E,
+ 0x00FE71,
+ 0x00FE73,
+ 0x00FE77,
+ 0x00FE79,
+ 0x00FE7B,
+ 0x00FE7D,
+ 0x00FF3F,
+ 0x0101FD,
+ 0x0102E0,
+ 0x010808,
+ 0x01083C,
+ 0x010A3F,
+ 0x010F27,
+ 0x011176,
+ 0x0111DC,
+ 0x01123E,
+ 0x011288,
+ 0x011350,
+ 0x011357,
+ 0x0114C7,
+ 0x011644,
+ 0x011909,
+ 0x011A47,
+ 0x011A9D,
+ 0x011D3A,
+ 0x011FB0,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01DA75,
+ 0x01DA84,
+ 0x01E14E,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x000030, 0x000039],
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002C1],
+ [0x0002C6, 0x0002D1],
+ [0x0002E0, 0x0002E4],
+ [0x000300, 0x000374],
+ [0x000376, 0x000377],
+ [0x00037B, 0x00037D],
+ [0x000386, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003F5],
+ [0x0003F7, 0x000481],
+ [0x000483, 0x000487],
+ [0x00048A, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000560, 0x000588],
+ [0x000591, 0x0005BD],
+ [0x0005C1, 0x0005C2],
+ [0x0005C4, 0x0005C5],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F2],
+ [0x000610, 0x00061A],
+ [0x000620, 0x000669],
+ [0x00066E, 0x0006D3],
+ [0x0006D5, 0x0006DC],
+ [0x0006DF, 0x0006E8],
+ [0x0006EA, 0x0006FC],
+ [0x000710, 0x00074A],
+ [0x00074D, 0x0007B1],
+ [0x0007C0, 0x0007F5],
+ [0x000800, 0x00082D],
+ [0x000840, 0x00085B],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x0008D3, 0x0008E1],
+ [0x0008E3, 0x000963],
+ [0x000966, 0x00096F],
+ [0x000971, 0x000983],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009BC, 0x0009C4],
+ [0x0009C7, 0x0009C8],
+ [0x0009CB, 0x0009CE],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E3],
+ [0x0009E6, 0x0009F1],
+ [0x000A01, 0x000A03],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A3E, 0x000A42],
+ [0x000A47, 0x000A48],
+ [0x000A4B, 0x000A4D],
+ [0x000A59, 0x000A5C],
+ [0x000A66, 0x000A75],
+ [0x000A81, 0x000A83],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000ABC, 0x000AC5],
+ [0x000AC7, 0x000AC9],
+ [0x000ACB, 0x000ACD],
+ [0x000AE0, 0x000AE3],
+ [0x000AE6, 0x000AEF],
+ [0x000AF9, 0x000AFF],
+ [0x000B01, 0x000B03],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B3C, 0x000B44],
+ [0x000B47, 0x000B48],
+ [0x000B4B, 0x000B4D],
+ [0x000B55, 0x000B57],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B63],
+ [0x000B66, 0x000B6F],
+ [0x000B82, 0x000B83],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000BBE, 0x000BC2],
+ [0x000BC6, 0x000BC8],
+ [0x000BCA, 0x000BCD],
+ [0x000BE6, 0x000BEF],
+ [0x000C00, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C3D, 0x000C44],
+ [0x000C46, 0x000C48],
+ [0x000C4A, 0x000C4D],
+ [0x000C55, 0x000C56],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C63],
+ [0x000C66, 0x000C6F],
+ [0x000C80, 0x000C83],
+ [0x000C85, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CBC, 0x000CC4],
+ [0x000CC6, 0x000CC8],
+ [0x000CCA, 0x000CCD],
+ [0x000CD5, 0x000CD6],
+ [0x000CE0, 0x000CE3],
+ [0x000CE6, 0x000CEF],
+ [0x000CF1, 0x000CF2],
+ [0x000D00, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D44],
+ [0x000D46, 0x000D48],
+ [0x000D4A, 0x000D4E],
+ [0x000D54, 0x000D57],
+ [0x000D5F, 0x000D63],
+ [0x000D66, 0x000D6F],
+ [0x000D7A, 0x000D7F],
+ [0x000D81, 0x000D83],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000DCF, 0x000DD4],
+ [0x000DD8, 0x000DDF],
+ [0x000DE6, 0x000DEF],
+ [0x000DF2, 0x000DF3],
+ [0x000E01, 0x000E3A],
+ [0x000E40, 0x000E4E],
+ [0x000E50, 0x000E59],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EBD],
+ [0x000EC0, 0x000EC4],
+ [0x000EC8, 0x000ECD],
+ [0x000ED0, 0x000ED9],
+ [0x000EDC, 0x000EDF],
+ [0x000F18, 0x000F19],
+ [0x000F20, 0x000F29],
+ [0x000F3E, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F71, 0x000F84],
+ [0x000F86, 0x000F97],
+ [0x000F99, 0x000FBC],
+ [0x001000, 0x001049],
+ [0x001050, 0x00109D],
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FA],
+ [0x0010FC, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x00135D, 0x00135F],
+ [0x001369, 0x001371],
+ [0x001380, 0x00138F],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001401, 0x00166C],
+ [0x00166F, 0x00167F],
+ [0x001681, 0x00169A],
+ [0x0016A0, 0x0016EA],
+ [0x0016EE, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001714],
+ [0x001720, 0x001734],
+ [0x001740, 0x001753],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001772, 0x001773],
+ [0x001780, 0x0017D3],
+ [0x0017DC, 0x0017DD],
+ [0x0017E0, 0x0017E9],
+ [0x00180B, 0x00180D],
+ [0x001810, 0x001819],
+ [0x001820, 0x001878],
+ [0x001880, 0x0018AA],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001920, 0x00192B],
+ [0x001930, 0x00193B],
+ [0x001946, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x0019D0, 0x0019DA],
+ [0x001A00, 0x001A1B],
+ [0x001A20, 0x001A5E],
+ [0x001A60, 0x001A7C],
+ [0x001A7F, 0x001A89],
+ [0x001A90, 0x001A99],
+ [0x001AB0, 0x001ABD],
+ [0x001ABF, 0x001AC0],
+ [0x001B00, 0x001B4B],
+ [0x001B50, 0x001B59],
+ [0x001B6B, 0x001B73],
+ [0x001B80, 0x001BF3],
+ [0x001C00, 0x001C37],
+ [0x001C40, 0x001C49],
+ [0x001C4D, 0x001C7D],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001CD0, 0x001CD2],
+ [0x001CD4, 0x001CFA],
+ [0x001D00, 0x001DF9],
+ [0x001DFB, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FBC],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FCC],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FE0, 0x001FEC],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFC],
+ [0x00203F, 0x002040],
+ [0x002090, 0x00209C],
+ [0x0020D0, 0x0020DC],
+ [0x0020E5, 0x0020F0],
+ [0x00210A, 0x002113],
+ [0x002118, 0x00211D],
+ [0x00212A, 0x002139],
+ [0x00213C, 0x00213F],
+ [0x002145, 0x002149],
+ [0x002160, 0x002188],
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CE4],
+ [0x002CEB, 0x002CF3],
+ [0x002D00, 0x002D25],
+ [0x002D30, 0x002D67],
+ [0x002D7F, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x002DE0, 0x002DFF],
+ [0x003005, 0x003007],
+ [0x003021, 0x00302F],
+ [0x003031, 0x003035],
+ [0x003038, 0x00303C],
+ [0x003041, 0x003096],
+ [0x003099, 0x00309A],
+ [0x00309D, 0x00309F],
+ [0x0030A1, 0x0030FA],
+ [0x0030FC, 0x0030FF],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x0031A0, 0x0031BF],
+ [0x0031F0, 0x0031FF],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00A000, 0x00A48C],
+ [0x00A4D0, 0x00A4FD],
+ [0x00A500, 0x00A60C],
+ [0x00A610, 0x00A62B],
+ [0x00A640, 0x00A66F],
+ [0x00A674, 0x00A67D],
+ [0x00A67F, 0x00A6F1],
+ [0x00A717, 0x00A71F],
+ [0x00A722, 0x00A788],
+ [0x00A78B, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A827],
+ [0x00A840, 0x00A873],
+ [0x00A880, 0x00A8C5],
+ [0x00A8D0, 0x00A8D9],
+ [0x00A8E0, 0x00A8F7],
+ [0x00A8FD, 0x00A92D],
+ [0x00A930, 0x00A953],
+ [0x00A960, 0x00A97C],
+ [0x00A980, 0x00A9C0],
+ [0x00A9CF, 0x00A9D9],
+ [0x00A9E0, 0x00A9FE],
+ [0x00AA00, 0x00AA36],
+ [0x00AA40, 0x00AA4D],
+ [0x00AA50, 0x00AA59],
+ [0x00AA60, 0x00AA76],
+ [0x00AA7A, 0x00AAC2],
+ [0x00AADB, 0x00AADD],
+ [0x00AAE0, 0x00AAEF],
+ [0x00AAF2, 0x00AAF6],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB5C, 0x00AB69],
+ [0x00AB70, 0x00ABEA],
+ [0x00ABEC, 0x00ABED],
+ [0x00ABF0, 0x00ABF9],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1D, 0x00FB28],
+ [0x00FB2A, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBB1],
+ [0x00FBD3, 0x00FC5D],
+ [0x00FC64, 0x00FD3D],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDF9],
+ [0x00FE00, 0x00FE0F],
+ [0x00FE20, 0x00FE2F],
+ [0x00FE33, 0x00FE34],
+ [0x00FE4D, 0x00FE4F],
+ [0x00FE7F, 0x00FEFC],
+ [0x00FF10, 0x00FF19],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x00FF66, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010140, 0x010174],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x010300, 0x01031F],
+ [0x01032D, 0x01034A],
+ [0x010350, 0x01037A],
+ [0x010380, 0x01039D],
+ [0x0103A0, 0x0103C3],
+ [0x0103C8, 0x0103CF],
+ [0x0103D1, 0x0103D5],
+ [0x010400, 0x01049D],
+ [0x0104A0, 0x0104A9],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010860, 0x010876],
+ [0x010880, 0x01089E],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x010900, 0x010915],
+ [0x010920, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BE, 0x0109BF],
+ [0x010A00, 0x010A03],
+ [0x010A05, 0x010A06],
+ [0x010A0C, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A38, 0x010A3A],
+ [0x010A60, 0x010A7C],
+ [0x010A80, 0x010A9C],
+ [0x010AC0, 0x010AC7],
+ [0x010AC9, 0x010AE6],
+ [0x010B00, 0x010B35],
+ [0x010B40, 0x010B55],
+ [0x010B60, 0x010B72],
+ [0x010B80, 0x010B91],
+ [0x010C00, 0x010C48],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010D00, 0x010D27],
+ [0x010D30, 0x010D39],
+ [0x010E80, 0x010EA9],
+ [0x010EAB, 0x010EAC],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F1C],
+ [0x010F30, 0x010F50],
+ [0x010FB0, 0x010FC4],
+ [0x010FE0, 0x010FF6],
+ [0x011000, 0x011046],
+ [0x011066, 0x01106F],
+ [0x01107F, 0x0110BA],
+ [0x0110D0, 0x0110E8],
+ [0x0110F0, 0x0110F9],
+ [0x011100, 0x011134],
+ [0x011136, 0x01113F],
+ [0x011144, 0x011147],
+ [0x011150, 0x011173],
+ [0x011180, 0x0111C4],
+ [0x0111C9, 0x0111CC],
+ [0x0111CE, 0x0111DA],
+ [0x011200, 0x011211],
+ [0x011213, 0x011237],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A8],
+ [0x0112B0, 0x0112EA],
+ [0x0112F0, 0x0112F9],
+ [0x011300, 0x011303],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01133B, 0x011344],
+ [0x011347, 0x011348],
+ [0x01134B, 0x01134D],
+ [0x01135D, 0x011363],
+ [0x011366, 0x01136C],
+ [0x011370, 0x011374],
+ [0x011400, 0x01144A],
+ [0x011450, 0x011459],
+ [0x01145E, 0x011461],
+ [0x011480, 0x0114C5],
+ [0x0114D0, 0x0114D9],
+ [0x011580, 0x0115B5],
+ [0x0115B8, 0x0115C0],
+ [0x0115D8, 0x0115DD],
+ [0x011600, 0x011640],
+ [0x011650, 0x011659],
+ [0x011680, 0x0116B8],
+ [0x0116C0, 0x0116C9],
+ [0x011700, 0x01171A],
+ [0x01171D, 0x01172B],
+ [0x011730, 0x011739],
+ [0x011800, 0x01183A],
+ [0x0118A0, 0x0118E9],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x011935],
+ [0x011937, 0x011938],
+ [0x01193B, 0x011943],
+ [0x011950, 0x011959],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D7],
+ [0x0119DA, 0x0119E1],
+ [0x0119E3, 0x0119E4],
+ [0x011A00, 0x011A3E],
+ [0x011A50, 0x011A99],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C36],
+ [0x011C38, 0x011C40],
+ [0x011C50, 0x011C59],
+ [0x011C72, 0x011C8F],
+ [0x011C92, 0x011CA7],
+ [0x011CA9, 0x011CB6],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D36],
+ [0x011D3C, 0x011D3D],
+ [0x011D3F, 0x011D47],
+ [0x011D50, 0x011D59],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D8E],
+ [0x011D90, 0x011D91],
+ [0x011D93, 0x011D98],
+ [0x011DA0, 0x011DA9],
+ [0x011EE0, 0x011EF6],
+ [0x012000, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016A60, 0x016A69],
+ [0x016AD0, 0x016AED],
+ [0x016AF0, 0x016AF4],
+ [0x016B00, 0x016B36],
+ [0x016B40, 0x016B43],
+ [0x016B50, 0x016B59],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016E40, 0x016E7F],
+ [0x016F00, 0x016F4A],
+ [0x016F4F, 0x016F87],
+ [0x016F8F, 0x016F9F],
+ [0x016FE0, 0x016FE1],
+ [0x016FE3, 0x016FE4],
+ [0x016FF0, 0x016FF1],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01BC9D, 0x01BC9E],
+ [0x01D165, 0x01D169],
+ [0x01D16D, 0x01D172],
+ [0x01D17B, 0x01D182],
+ [0x01D185, 0x01D18B],
+ [0x01D1AA, 0x01D1AD],
+ [0x01D242, 0x01D244],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D6C0],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6FA],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D734],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D76E],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D7A8],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7CB],
+ [0x01D7CE, 0x01D7FF],
+ [0x01DA00, 0x01DA36],
+ [0x01DA3B, 0x01DA6C],
+ [0x01DA9B, 0x01DA9F],
+ [0x01DAA1, 0x01DAAF],
+ [0x01E000, 0x01E006],
+ [0x01E008, 0x01E018],
+ [0x01E01B, 0x01E021],
+ [0x01E023, 0x01E024],
+ [0x01E026, 0x01E02A],
+ [0x01E100, 0x01E12C],
+ [0x01E130, 0x01E13D],
+ [0x01E140, 0x01E149],
+ [0x01E2C0, 0x01E2F9],
+ [0x01E800, 0x01E8C4],
+ [0x01E8D0, 0x01E8D6],
+ [0x01E900, 0x01E94B],
+ [0x01E950, 0x01E959],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x01FBF0, 0x01FBF9],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A],
+ [0x0E0100, 0x0E01EF]
+ ]
+});
+testPropertyEscapes(
+ /^\p{XID_Continue}+$/u,
+ matchSymbols,
+ "\\p{XID_Continue}"
+);
+testPropertyEscapes(
+ /^\p{XIDC}+$/u,
+ matchSymbols,
+ "\\p{XIDC}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x000060,
+ 0x0000B6,
+ 0x0000D7,
+ 0x0000F7,
+ 0x0002ED,
+ 0x000375,
+ 0x00037E,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x0003F6,
+ 0x000482,
+ 0x000530,
+ 0x0005BE,
+ 0x0005C0,
+ 0x0005C3,
+ 0x0005C6,
+ 0x0006D4,
+ 0x0006E9,
+ 0x0008B5,
+ 0x0008E2,
+ 0x000970,
+ 0x000984,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE,
+ 0x0009FD,
+ 0x000A04,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A3D,
+ 0x000A5D,
+ 0x000A84,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000AC6,
+ 0x000ACA,
+ 0x000B00,
+ 0x000B04,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B70,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000BC9,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C45,
+ 0x000C49,
+ 0x000C57,
+ 0x000C84,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CC5,
+ 0x000CC9,
+ 0x000CDF,
+ 0x000CF0,
+ 0x000D0D,
+ 0x000D11,
+ 0x000D45,
+ 0x000D49,
+ 0x000D80,
+ 0x000D84,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000DD5,
+ 0x000DD7,
+ 0x000E4F,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EC5,
+ 0x000EC7,
+ 0x000F36,
+ 0x000F38,
+ 0x000F48,
+ 0x000F85,
+ 0x000F98,
+ 0x0010C6,
+ 0x0010FB,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x001680,
+ 0x00170D,
+ 0x00176D,
+ 0x001771,
+ 0x00191F,
+ 0x001A5F,
+ 0x001ABE,
+ 0x001CD3,
+ 0x001DFA,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FBD,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002114,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x002DDF,
+ 0x003030,
+ 0x0030A0,
+ 0x0030FB,
+ 0x003130,
+ 0x00A67E,
+ 0x00A8FC,
+ 0x00A9FF,
+ 0x00AB27,
+ 0x00AB2F,
+ 0x00AB5B,
+ 0x00ABEB,
+ 0x00FB29,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE72,
+ 0x00FE78,
+ 0x00FE7A,
+ 0x00FE7C,
+ 0x00FE7E,
+ 0x00FF40,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x0103D0,
+ 0x010809,
+ 0x010836,
+ 0x0108F3,
+ 0x010A04,
+ 0x010A14,
+ 0x010A18,
+ 0x010AC8,
+ 0x010EAA,
+ 0x011135,
+ 0x0111CD,
+ 0x0111DB,
+ 0x011212,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x011304,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x01133A,
+ 0x0114C6,
+ 0x011914,
+ 0x011917,
+ 0x011936,
+ 0x0119E2,
+ 0x011C09,
+ 0x011C37,
+ 0x011CA8,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D3B,
+ 0x011D3E,
+ 0x011D66,
+ 0x011D69,
+ 0x011D8F,
+ 0x011D92,
+ 0x016A5F,
+ 0x016FE2,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01D6C1,
+ 0x01D6DB,
+ 0x01D6FB,
+ 0x01D715,
+ 0x01D735,
+ 0x01D74F,
+ 0x01D76F,
+ 0x01D789,
+ 0x01D7A9,
+ 0x01D7C3,
+ 0x01DAA0,
+ 0x01E007,
+ 0x01E022,
+ 0x01E025,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x00002F],
+ [0x00003A, 0x000040],
+ [0x00005B, 0x00005E],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B4],
+ [0x0000B8, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0002C2, 0x0002C5],
+ [0x0002D2, 0x0002DF],
+ [0x0002E5, 0x0002EB],
+ [0x0002EF, 0x0002FF],
+ [0x000378, 0x00037A],
+ [0x000380, 0x000385],
+ [0x000488, 0x000489],
+ [0x000557, 0x000558],
+ [0x00055A, 0x00055F],
+ [0x000589, 0x000590],
+ [0x0005C8, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F3, 0x00060F],
+ [0x00061B, 0x00061F],
+ [0x00066A, 0x00066D],
+ [0x0006DD, 0x0006DE],
+ [0x0006FD, 0x0006FE],
+ [0x000700, 0x00070F],
+ [0x00074B, 0x00074C],
+ [0x0007B2, 0x0007BF],
+ [0x0007F6, 0x0007F9],
+ [0x0007FB, 0x0007FC],
+ [0x0007FE, 0x0007FF],
+ [0x00082E, 0x00083F],
+ [0x00085C, 0x00085F],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x0008D2],
+ [0x000964, 0x000965],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BB],
+ [0x0009C5, 0x0009C6],
+ [0x0009C9, 0x0009CA],
+ [0x0009CF, 0x0009D6],
+ [0x0009D8, 0x0009DB],
+ [0x0009E4, 0x0009E5],
+ [0x0009F2, 0x0009FB],
+ [0x0009FF, 0x000A00],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A3B],
+ [0x000A43, 0x000A46],
+ [0x000A49, 0x000A4A],
+ [0x000A4E, 0x000A50],
+ [0x000A52, 0x000A58],
+ [0x000A5F, 0x000A65],
+ [0x000A76, 0x000A80],
+ [0x000ABA, 0x000ABB],
+ [0x000ACE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE4, 0x000AE5],
+ [0x000AF0, 0x000AF8],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3B],
+ [0x000B45, 0x000B46],
+ [0x000B49, 0x000B4A],
+ [0x000B4E, 0x000B54],
+ [0x000B58, 0x000B5B],
+ [0x000B64, 0x000B65],
+ [0x000B72, 0x000B81],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BBD],
+ [0x000BC3, 0x000BC5],
+ [0x000BCE, 0x000BCF],
+ [0x000BD1, 0x000BD6],
+ [0x000BD8, 0x000BE5],
+ [0x000BF0, 0x000BFF],
+ [0x000C3A, 0x000C3C],
+ [0x000C4E, 0x000C54],
+ [0x000C5B, 0x000C5F],
+ [0x000C64, 0x000C65],
+ [0x000C70, 0x000C7F],
+ [0x000CBA, 0x000CBB],
+ [0x000CCE, 0x000CD4],
+ [0x000CD7, 0x000CDD],
+ [0x000CE4, 0x000CE5],
+ [0x000CF3, 0x000CFF],
+ [0x000D4F, 0x000D53],
+ [0x000D58, 0x000D5E],
+ [0x000D64, 0x000D65],
+ [0x000D70, 0x000D79],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000DC9],
+ [0x000DCB, 0x000DCE],
+ [0x000DE0, 0x000DE5],
+ [0x000DF0, 0x000DF1],
+ [0x000DF4, 0x000E00],
+ [0x000E3B, 0x000E3F],
+ [0x000E5A, 0x000E80],
+ [0x000EBE, 0x000EBF],
+ [0x000ECE, 0x000ECF],
+ [0x000EDA, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F01, 0x000F17],
+ [0x000F1A, 0x000F1F],
+ [0x000F2A, 0x000F34],
+ [0x000F3A, 0x000F3D],
+ [0x000F6D, 0x000F70],
+ [0x000FBD, 0x000FC5],
+ [0x000FC7, 0x000FFF],
+ [0x00104A, 0x00104F],
+ [0x00109E, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00135C],
+ [0x001360, 0x001368],
+ [0x001372, 0x00137F],
+ [0x001390, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x001400],
+ [0x00166D, 0x00166E],
+ [0x00169B, 0x00169F],
+ [0x0016EB, 0x0016ED],
+ [0x0016F9, 0x0016FF],
+ [0x001715, 0x00171F],
+ [0x001735, 0x00173F],
+ [0x001754, 0x00175F],
+ [0x001774, 0x00177F],
+ [0x0017D4, 0x0017D6],
+ [0x0017D8, 0x0017DB],
+ [0x0017DE, 0x0017DF],
+ [0x0017EA, 0x00180A],
+ [0x00180E, 0x00180F],
+ [0x00181A, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00192C, 0x00192F],
+ [0x00193C, 0x001945],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019CF],
+ [0x0019DB, 0x0019FF],
+ [0x001A1C, 0x001A1F],
+ [0x001A7D, 0x001A7E],
+ [0x001A8A, 0x001A8F],
+ [0x001A9A, 0x001AA6],
+ [0x001AA8, 0x001AAF],
+ [0x001AC1, 0x001AFF],
+ [0x001B4C, 0x001B4F],
+ [0x001B5A, 0x001B6A],
+ [0x001B74, 0x001B7F],
+ [0x001BF4, 0x001BFF],
+ [0x001C38, 0x001C3F],
+ [0x001C4A, 0x001C4C],
+ [0x001C7E, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001CCF],
+ [0x001CFB, 0x001CFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FDC, 0x001FDF],
+ [0x001FED, 0x001FF1],
+ [0x001FFD, 0x00203E],
+ [0x002041, 0x002053],
+ [0x002055, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x0020CF],
+ [0x0020DD, 0x0020E0],
+ [0x0020E2, 0x0020E4],
+ [0x0020F1, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002117],
+ [0x00211E, 0x002123],
+ [0x00213A, 0x00213B],
+ [0x002140, 0x002144],
+ [0x00214A, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002189, 0x002BFF],
+ [0x002CE5, 0x002CEA],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D70, 0x002D7E],
+ [0x002D97, 0x002D9F],
+ [0x002E00, 0x003004],
+ [0x003008, 0x003020],
+ [0x003036, 0x003037],
+ [0x00303D, 0x003040],
+ [0x003097, 0x003098],
+ [0x00309B, 0x00309C],
+ [0x003100, 0x003104],
+ [0x00318F, 0x00319F],
+ [0x0031C0, 0x0031EF],
+ [0x003200, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A4CF],
+ [0x00A4FE, 0x00A4FF],
+ [0x00A60D, 0x00A60F],
+ [0x00A62C, 0x00A63F],
+ [0x00A670, 0x00A673],
+ [0x00A6F2, 0x00A716],
+ [0x00A720, 0x00A721],
+ [0x00A789, 0x00A78A],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A828, 0x00A82B],
+ [0x00A82D, 0x00A83F],
+ [0x00A874, 0x00A87F],
+ [0x00A8C6, 0x00A8CF],
+ [0x00A8DA, 0x00A8DF],
+ [0x00A8F8, 0x00A8FA],
+ [0x00A92E, 0x00A92F],
+ [0x00A954, 0x00A95F],
+ [0x00A97D, 0x00A97F],
+ [0x00A9C1, 0x00A9CE],
+ [0x00A9DA, 0x00A9DF],
+ [0x00AA37, 0x00AA3F],
+ [0x00AA4E, 0x00AA4F],
+ [0x00AA5A, 0x00AA5F],
+ [0x00AA77, 0x00AA79],
+ [0x00AAC3, 0x00AADA],
+ [0x00AADE, 0x00AADF],
+ [0x00AAF0, 0x00AAF1],
+ [0x00AAF7, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB6A, 0x00AB6F],
+ [0x00ABEE, 0x00ABEF],
+ [0x00ABFA, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBB2, 0x00FBD2],
+ [0x00FC5E, 0x00FC63],
+ [0x00FD3E, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFA, 0x00FDFF],
+ [0x00FE10, 0x00FE1F],
+ [0x00FE30, 0x00FE32],
+ [0x00FE35, 0x00FE4C],
+ [0x00FE50, 0x00FE70],
+ [0x00FE74, 0x00FE76],
+ [0x00FEFD, 0x00FF0F],
+ [0x00FF1A, 0x00FF20],
+ [0x00FF3B, 0x00FF3E],
+ [0x00FF5B, 0x00FF65],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x01013F],
+ [0x010175, 0x0101FC],
+ [0x0101FE, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102DF],
+ [0x0102E1, 0x0102FF],
+ [0x010320, 0x01032C],
+ [0x01034B, 0x01034F],
+ [0x01037B, 0x01037F],
+ [0x01039E, 0x01039F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x0103FF],
+ [0x01049E, 0x01049F],
+ [0x0104AA, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x010856, 0x01085F],
+ [0x010877, 0x01087F],
+ [0x01089F, 0x0108DF],
+ [0x0108F6, 0x0108FF],
+ [0x010916, 0x01091F],
+ [0x01093A, 0x01097F],
+ [0x0109B8, 0x0109BD],
+ [0x0109C0, 0x0109FF],
+ [0x010A07, 0x010A0B],
+ [0x010A36, 0x010A37],
+ [0x010A3B, 0x010A3E],
+ [0x010A40, 0x010A5F],
+ [0x010A7D, 0x010A7F],
+ [0x010A9D, 0x010ABF],
+ [0x010AE7, 0x010AFF],
+ [0x010B36, 0x010B3F],
+ [0x010B56, 0x010B5F],
+ [0x010B73, 0x010B7F],
+ [0x010B92, 0x010BFF],
+ [0x010C49, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CFF],
+ [0x010D28, 0x010D2F],
+ [0x010D3A, 0x010E7F],
+ [0x010EAD, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F1D, 0x010F26],
+ [0x010F28, 0x010F2F],
+ [0x010F51, 0x010FAF],
+ [0x010FC5, 0x010FDF],
+ [0x010FF7, 0x010FFF],
+ [0x011047, 0x011065],
+ [0x011070, 0x01107E],
+ [0x0110BB, 0x0110CF],
+ [0x0110E9, 0x0110EF],
+ [0x0110FA, 0x0110FF],
+ [0x011140, 0x011143],
+ [0x011148, 0x01114F],
+ [0x011174, 0x011175],
+ [0x011177, 0x01117F],
+ [0x0111C5, 0x0111C8],
+ [0x0111DD, 0x0111FF],
+ [0x011238, 0x01123D],
+ [0x01123F, 0x01127F],
+ [0x0112A9, 0x0112AF],
+ [0x0112EB, 0x0112EF],
+ [0x0112FA, 0x0112FF],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x011345, 0x011346],
+ [0x011349, 0x01134A],
+ [0x01134E, 0x01134F],
+ [0x011351, 0x011356],
+ [0x011358, 0x01135C],
+ [0x011364, 0x011365],
+ [0x01136D, 0x01136F],
+ [0x011375, 0x0113FF],
+ [0x01144B, 0x01144F],
+ [0x01145A, 0x01145D],
+ [0x011462, 0x01147F],
+ [0x0114C8, 0x0114CF],
+ [0x0114DA, 0x01157F],
+ [0x0115B6, 0x0115B7],
+ [0x0115C1, 0x0115D7],
+ [0x0115DE, 0x0115FF],
+ [0x011641, 0x011643],
+ [0x011645, 0x01164F],
+ [0x01165A, 0x01167F],
+ [0x0116B9, 0x0116BF],
+ [0x0116CA, 0x0116FF],
+ [0x01171B, 0x01171C],
+ [0x01172C, 0x01172F],
+ [0x01173A, 0x0117FF],
+ [0x01183B, 0x01189F],
+ [0x0118EA, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011939, 0x01193A],
+ [0x011944, 0x01194F],
+ [0x01195A, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D8, 0x0119D9],
+ [0x0119E5, 0x0119FF],
+ [0x011A3F, 0x011A46],
+ [0x011A48, 0x011A4F],
+ [0x011A9A, 0x011A9C],
+ [0x011A9E, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C41, 0x011C4F],
+ [0x011C5A, 0x011C71],
+ [0x011C90, 0x011C91],
+ [0x011CB7, 0x011CFF],
+ [0x011D37, 0x011D39],
+ [0x011D48, 0x011D4F],
+ [0x011D5A, 0x011D5F],
+ [0x011D99, 0x011D9F],
+ [0x011DAA, 0x011EDF],
+ [0x011EF7, 0x011FAF],
+ [0x011FB1, 0x011FFF],
+ [0x01239A, 0x0123FF],
+ [0x01246F, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x01342F, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A6A, 0x016ACF],
+ [0x016AEE, 0x016AEF],
+ [0x016AF5, 0x016AFF],
+ [0x016B37, 0x016B3F],
+ [0x016B44, 0x016B4F],
+ [0x016B5A, 0x016B62],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016E3F],
+ [0x016E80, 0x016EFF],
+ [0x016F4B, 0x016F4E],
+ [0x016F88, 0x016F8E],
+ [0x016FA0, 0x016FDF],
+ [0x016FE5, 0x016FEF],
+ [0x016FF2, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01BC9C],
+ [0x01BC9F, 0x01D164],
+ [0x01D16A, 0x01D16C],
+ [0x01D173, 0x01D17A],
+ [0x01D183, 0x01D184],
+ [0x01D18C, 0x01D1A9],
+ [0x01D1AE, 0x01D241],
+ [0x01D245, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01D7CD],
+ [0x01D800, 0x01D9FF],
+ [0x01DA37, 0x01DA3A],
+ [0x01DA6D, 0x01DA74],
+ [0x01DA76, 0x01DA83],
+ [0x01DA85, 0x01DA9A],
+ [0x01DAB0, 0x01DFFF],
+ [0x01E019, 0x01E01A],
+ [0x01E02B, 0x01E0FF],
+ [0x01E12D, 0x01E12F],
+ [0x01E13E, 0x01E13F],
+ [0x01E14A, 0x01E14D],
+ [0x01E14F, 0x01E2BF],
+ [0x01E2FA, 0x01E7FF],
+ [0x01E8C5, 0x01E8CF],
+ [0x01E8D7, 0x01E8FF],
+ [0x01E94C, 0x01E94F],
+ [0x01E95A, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01FBEF],
+ [0x01FBFA, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x0E00FF],
+ [0x0E01F0, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{XID_Continue}+$/u,
+ nonMatchSymbols,
+ "\\P{XID_Continue}"
+);
+testPropertyEscapes(
+ /^\P{XIDC}+$/u,
+ nonMatchSymbols,
+ "\\P{XIDC}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/XID_Start.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/XID_Start.js
new file mode 100644
index 0000000000..c2b14834d2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/XID_Start.js
@@ -0,0 +1,1311 @@
+// Copyright 2020 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Unicode property escapes for `XID_Start`
+info: |
+ Generated by https://github.com/mathiasbynens/unicode-property-escapes-tests
+ Unicode v13.0.0
+esid: sec-static-semantics-unicodematchproperty-p
+features: [regexp-unicode-property-escapes]
+includes: [regExpUtils.js]
+---*/
+
+const matchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000AA,
+ 0x0000B5,
+ 0x0000BA,
+ 0x0002EC,
+ 0x0002EE,
+ 0x00037F,
+ 0x000386,
+ 0x00038C,
+ 0x000559,
+ 0x0006D5,
+ 0x0006FF,
+ 0x000710,
+ 0x0007B1,
+ 0x0007FA,
+ 0x00081A,
+ 0x000824,
+ 0x000828,
+ 0x00093D,
+ 0x000950,
+ 0x0009B2,
+ 0x0009BD,
+ 0x0009CE,
+ 0x0009FC,
+ 0x000A5E,
+ 0x000ABD,
+ 0x000AD0,
+ 0x000AF9,
+ 0x000B3D,
+ 0x000B71,
+ 0x000B83,
+ 0x000B9C,
+ 0x000BD0,
+ 0x000C3D,
+ 0x000C80,
+ 0x000CBD,
+ 0x000CDE,
+ 0x000D3D,
+ 0x000D4E,
+ 0x000DBD,
+ 0x000E32,
+ 0x000E84,
+ 0x000EA5,
+ 0x000EB2,
+ 0x000EBD,
+ 0x000EC6,
+ 0x000F00,
+ 0x00103F,
+ 0x001061,
+ 0x00108E,
+ 0x0010C7,
+ 0x0010CD,
+ 0x001258,
+ 0x0012C0,
+ 0x0017D7,
+ 0x0017DC,
+ 0x0018AA,
+ 0x001AA7,
+ 0x001CFA,
+ 0x001F59,
+ 0x001F5B,
+ 0x001F5D,
+ 0x001FBE,
+ 0x002071,
+ 0x00207F,
+ 0x002102,
+ 0x002107,
+ 0x002115,
+ 0x002124,
+ 0x002126,
+ 0x002128,
+ 0x00214E,
+ 0x002D27,
+ 0x002D2D,
+ 0x002D6F,
+ 0x00A8FB,
+ 0x00A9CF,
+ 0x00AA7A,
+ 0x00AAB1,
+ 0x00AAC0,
+ 0x00AAC2,
+ 0x00FB1D,
+ 0x00FB3E,
+ 0x00FE71,
+ 0x00FE73,
+ 0x00FE77,
+ 0x00FE79,
+ 0x00FE7B,
+ 0x00FE7D,
+ 0x010808,
+ 0x01083C,
+ 0x010A00,
+ 0x010F27,
+ 0x011144,
+ 0x011147,
+ 0x011176,
+ 0x0111DA,
+ 0x0111DC,
+ 0x011288,
+ 0x01133D,
+ 0x011350,
+ 0x0114C7,
+ 0x011644,
+ 0x0116B8,
+ 0x011909,
+ 0x01193F,
+ 0x011941,
+ 0x0119E1,
+ 0x0119E3,
+ 0x011A00,
+ 0x011A3A,
+ 0x011A50,
+ 0x011A9D,
+ 0x011C40,
+ 0x011D46,
+ 0x011D98,
+ 0x011FB0,
+ 0x016F50,
+ 0x016FE3,
+ 0x01D4A2,
+ 0x01D4BB,
+ 0x01D546,
+ 0x01E14E,
+ 0x01E94B,
+ 0x01EE24,
+ 0x01EE27,
+ 0x01EE39,
+ 0x01EE3B,
+ 0x01EE42,
+ 0x01EE47,
+ 0x01EE49,
+ 0x01EE4B,
+ 0x01EE54,
+ 0x01EE57,
+ 0x01EE59,
+ 0x01EE5B,
+ 0x01EE5D,
+ 0x01EE5F,
+ 0x01EE64,
+ 0x01EE7E
+ ],
+ ranges: [
+ [0x000041, 0x00005A],
+ [0x000061, 0x00007A],
+ [0x0000C0, 0x0000D6],
+ [0x0000D8, 0x0000F6],
+ [0x0000F8, 0x0002C1],
+ [0x0002C6, 0x0002D1],
+ [0x0002E0, 0x0002E4],
+ [0x000370, 0x000374],
+ [0x000376, 0x000377],
+ [0x00037B, 0x00037D],
+ [0x000388, 0x00038A],
+ [0x00038E, 0x0003A1],
+ [0x0003A3, 0x0003F5],
+ [0x0003F7, 0x000481],
+ [0x00048A, 0x00052F],
+ [0x000531, 0x000556],
+ [0x000560, 0x000588],
+ [0x0005D0, 0x0005EA],
+ [0x0005EF, 0x0005F2],
+ [0x000620, 0x00064A],
+ [0x00066E, 0x00066F],
+ [0x000671, 0x0006D3],
+ [0x0006E5, 0x0006E6],
+ [0x0006EE, 0x0006EF],
+ [0x0006FA, 0x0006FC],
+ [0x000712, 0x00072F],
+ [0x00074D, 0x0007A5],
+ [0x0007CA, 0x0007EA],
+ [0x0007F4, 0x0007F5],
+ [0x000800, 0x000815],
+ [0x000840, 0x000858],
+ [0x000860, 0x00086A],
+ [0x0008A0, 0x0008B4],
+ [0x0008B6, 0x0008C7],
+ [0x000904, 0x000939],
+ [0x000958, 0x000961],
+ [0x000971, 0x000980],
+ [0x000985, 0x00098C],
+ [0x00098F, 0x000990],
+ [0x000993, 0x0009A8],
+ [0x0009AA, 0x0009B0],
+ [0x0009B6, 0x0009B9],
+ [0x0009DC, 0x0009DD],
+ [0x0009DF, 0x0009E1],
+ [0x0009F0, 0x0009F1],
+ [0x000A05, 0x000A0A],
+ [0x000A0F, 0x000A10],
+ [0x000A13, 0x000A28],
+ [0x000A2A, 0x000A30],
+ [0x000A32, 0x000A33],
+ [0x000A35, 0x000A36],
+ [0x000A38, 0x000A39],
+ [0x000A59, 0x000A5C],
+ [0x000A72, 0x000A74],
+ [0x000A85, 0x000A8D],
+ [0x000A8F, 0x000A91],
+ [0x000A93, 0x000AA8],
+ [0x000AAA, 0x000AB0],
+ [0x000AB2, 0x000AB3],
+ [0x000AB5, 0x000AB9],
+ [0x000AE0, 0x000AE1],
+ [0x000B05, 0x000B0C],
+ [0x000B0F, 0x000B10],
+ [0x000B13, 0x000B28],
+ [0x000B2A, 0x000B30],
+ [0x000B32, 0x000B33],
+ [0x000B35, 0x000B39],
+ [0x000B5C, 0x000B5D],
+ [0x000B5F, 0x000B61],
+ [0x000B85, 0x000B8A],
+ [0x000B8E, 0x000B90],
+ [0x000B92, 0x000B95],
+ [0x000B99, 0x000B9A],
+ [0x000B9E, 0x000B9F],
+ [0x000BA3, 0x000BA4],
+ [0x000BA8, 0x000BAA],
+ [0x000BAE, 0x000BB9],
+ [0x000C05, 0x000C0C],
+ [0x000C0E, 0x000C10],
+ [0x000C12, 0x000C28],
+ [0x000C2A, 0x000C39],
+ [0x000C58, 0x000C5A],
+ [0x000C60, 0x000C61],
+ [0x000C85, 0x000C8C],
+ [0x000C8E, 0x000C90],
+ [0x000C92, 0x000CA8],
+ [0x000CAA, 0x000CB3],
+ [0x000CB5, 0x000CB9],
+ [0x000CE0, 0x000CE1],
+ [0x000CF1, 0x000CF2],
+ [0x000D04, 0x000D0C],
+ [0x000D0E, 0x000D10],
+ [0x000D12, 0x000D3A],
+ [0x000D54, 0x000D56],
+ [0x000D5F, 0x000D61],
+ [0x000D7A, 0x000D7F],
+ [0x000D85, 0x000D96],
+ [0x000D9A, 0x000DB1],
+ [0x000DB3, 0x000DBB],
+ [0x000DC0, 0x000DC6],
+ [0x000E01, 0x000E30],
+ [0x000E40, 0x000E46],
+ [0x000E81, 0x000E82],
+ [0x000E86, 0x000E8A],
+ [0x000E8C, 0x000EA3],
+ [0x000EA7, 0x000EB0],
+ [0x000EC0, 0x000EC4],
+ [0x000EDC, 0x000EDF],
+ [0x000F40, 0x000F47],
+ [0x000F49, 0x000F6C],
+ [0x000F88, 0x000F8C],
+ [0x001000, 0x00102A],
+ [0x001050, 0x001055],
+ [0x00105A, 0x00105D],
+ [0x001065, 0x001066],
+ [0x00106E, 0x001070],
+ [0x001075, 0x001081],
+ [0x0010A0, 0x0010C5],
+ [0x0010D0, 0x0010FA],
+ [0x0010FC, 0x001248],
+ [0x00124A, 0x00124D],
+ [0x001250, 0x001256],
+ [0x00125A, 0x00125D],
+ [0x001260, 0x001288],
+ [0x00128A, 0x00128D],
+ [0x001290, 0x0012B0],
+ [0x0012B2, 0x0012B5],
+ [0x0012B8, 0x0012BE],
+ [0x0012C2, 0x0012C5],
+ [0x0012C8, 0x0012D6],
+ [0x0012D8, 0x001310],
+ [0x001312, 0x001315],
+ [0x001318, 0x00135A],
+ [0x001380, 0x00138F],
+ [0x0013A0, 0x0013F5],
+ [0x0013F8, 0x0013FD],
+ [0x001401, 0x00166C],
+ [0x00166F, 0x00167F],
+ [0x001681, 0x00169A],
+ [0x0016A0, 0x0016EA],
+ [0x0016EE, 0x0016F8],
+ [0x001700, 0x00170C],
+ [0x00170E, 0x001711],
+ [0x001720, 0x001731],
+ [0x001740, 0x001751],
+ [0x001760, 0x00176C],
+ [0x00176E, 0x001770],
+ [0x001780, 0x0017B3],
+ [0x001820, 0x001878],
+ [0x001880, 0x0018A8],
+ [0x0018B0, 0x0018F5],
+ [0x001900, 0x00191E],
+ [0x001950, 0x00196D],
+ [0x001970, 0x001974],
+ [0x001980, 0x0019AB],
+ [0x0019B0, 0x0019C9],
+ [0x001A00, 0x001A16],
+ [0x001A20, 0x001A54],
+ [0x001B05, 0x001B33],
+ [0x001B45, 0x001B4B],
+ [0x001B83, 0x001BA0],
+ [0x001BAE, 0x001BAF],
+ [0x001BBA, 0x001BE5],
+ [0x001C00, 0x001C23],
+ [0x001C4D, 0x001C4F],
+ [0x001C5A, 0x001C7D],
+ [0x001C80, 0x001C88],
+ [0x001C90, 0x001CBA],
+ [0x001CBD, 0x001CBF],
+ [0x001CE9, 0x001CEC],
+ [0x001CEE, 0x001CF3],
+ [0x001CF5, 0x001CF6],
+ [0x001D00, 0x001DBF],
+ [0x001E00, 0x001F15],
+ [0x001F18, 0x001F1D],
+ [0x001F20, 0x001F45],
+ [0x001F48, 0x001F4D],
+ [0x001F50, 0x001F57],
+ [0x001F5F, 0x001F7D],
+ [0x001F80, 0x001FB4],
+ [0x001FB6, 0x001FBC],
+ [0x001FC2, 0x001FC4],
+ [0x001FC6, 0x001FCC],
+ [0x001FD0, 0x001FD3],
+ [0x001FD6, 0x001FDB],
+ [0x001FE0, 0x001FEC],
+ [0x001FF2, 0x001FF4],
+ [0x001FF6, 0x001FFC],
+ [0x002090, 0x00209C],
+ [0x00210A, 0x002113],
+ [0x002118, 0x00211D],
+ [0x00212A, 0x002139],
+ [0x00213C, 0x00213F],
+ [0x002145, 0x002149],
+ [0x002160, 0x002188],
+ [0x002C00, 0x002C2E],
+ [0x002C30, 0x002C5E],
+ [0x002C60, 0x002CE4],
+ [0x002CEB, 0x002CEE],
+ [0x002CF2, 0x002CF3],
+ [0x002D00, 0x002D25],
+ [0x002D30, 0x002D67],
+ [0x002D80, 0x002D96],
+ [0x002DA0, 0x002DA6],
+ [0x002DA8, 0x002DAE],
+ [0x002DB0, 0x002DB6],
+ [0x002DB8, 0x002DBE],
+ [0x002DC0, 0x002DC6],
+ [0x002DC8, 0x002DCE],
+ [0x002DD0, 0x002DD6],
+ [0x002DD8, 0x002DDE],
+ [0x003005, 0x003007],
+ [0x003021, 0x003029],
+ [0x003031, 0x003035],
+ [0x003038, 0x00303C],
+ [0x003041, 0x003096],
+ [0x00309D, 0x00309F],
+ [0x0030A1, 0x0030FA],
+ [0x0030FC, 0x0030FF],
+ [0x003105, 0x00312F],
+ [0x003131, 0x00318E],
+ [0x0031A0, 0x0031BF],
+ [0x0031F0, 0x0031FF],
+ [0x003400, 0x004DBF],
+ [0x004E00, 0x009FFC],
+ [0x00A000, 0x00A48C],
+ [0x00A4D0, 0x00A4FD],
+ [0x00A500, 0x00A60C],
+ [0x00A610, 0x00A61F],
+ [0x00A62A, 0x00A62B],
+ [0x00A640, 0x00A66E],
+ [0x00A67F, 0x00A69D],
+ [0x00A6A0, 0x00A6EF],
+ [0x00A717, 0x00A71F],
+ [0x00A722, 0x00A788],
+ [0x00A78B, 0x00A7BF],
+ [0x00A7C2, 0x00A7CA],
+ [0x00A7F5, 0x00A801],
+ [0x00A803, 0x00A805],
+ [0x00A807, 0x00A80A],
+ [0x00A80C, 0x00A822],
+ [0x00A840, 0x00A873],
+ [0x00A882, 0x00A8B3],
+ [0x00A8F2, 0x00A8F7],
+ [0x00A8FD, 0x00A8FE],
+ [0x00A90A, 0x00A925],
+ [0x00A930, 0x00A946],
+ [0x00A960, 0x00A97C],
+ [0x00A984, 0x00A9B2],
+ [0x00A9E0, 0x00A9E4],
+ [0x00A9E6, 0x00A9EF],
+ [0x00A9FA, 0x00A9FE],
+ [0x00AA00, 0x00AA28],
+ [0x00AA40, 0x00AA42],
+ [0x00AA44, 0x00AA4B],
+ [0x00AA60, 0x00AA76],
+ [0x00AA7E, 0x00AAAF],
+ [0x00AAB5, 0x00AAB6],
+ [0x00AAB9, 0x00AABD],
+ [0x00AADB, 0x00AADD],
+ [0x00AAE0, 0x00AAEA],
+ [0x00AAF2, 0x00AAF4],
+ [0x00AB01, 0x00AB06],
+ [0x00AB09, 0x00AB0E],
+ [0x00AB11, 0x00AB16],
+ [0x00AB20, 0x00AB26],
+ [0x00AB28, 0x00AB2E],
+ [0x00AB30, 0x00AB5A],
+ [0x00AB5C, 0x00AB69],
+ [0x00AB70, 0x00ABE2],
+ [0x00AC00, 0x00D7A3],
+ [0x00D7B0, 0x00D7C6],
+ [0x00D7CB, 0x00D7FB],
+ [0x00F900, 0x00FA6D],
+ [0x00FA70, 0x00FAD9],
+ [0x00FB00, 0x00FB06],
+ [0x00FB13, 0x00FB17],
+ [0x00FB1F, 0x00FB28],
+ [0x00FB2A, 0x00FB36],
+ [0x00FB38, 0x00FB3C],
+ [0x00FB40, 0x00FB41],
+ [0x00FB43, 0x00FB44],
+ [0x00FB46, 0x00FBB1],
+ [0x00FBD3, 0x00FC5D],
+ [0x00FC64, 0x00FD3D],
+ [0x00FD50, 0x00FD8F],
+ [0x00FD92, 0x00FDC7],
+ [0x00FDF0, 0x00FDF9],
+ [0x00FE7F, 0x00FEFC],
+ [0x00FF21, 0x00FF3A],
+ [0x00FF41, 0x00FF5A],
+ [0x00FF66, 0x00FF9D],
+ [0x00FFA0, 0x00FFBE],
+ [0x00FFC2, 0x00FFC7],
+ [0x00FFCA, 0x00FFCF],
+ [0x00FFD2, 0x00FFD7],
+ [0x00FFDA, 0x00FFDC],
+ [0x010000, 0x01000B],
+ [0x01000D, 0x010026],
+ [0x010028, 0x01003A],
+ [0x01003C, 0x01003D],
+ [0x01003F, 0x01004D],
+ [0x010050, 0x01005D],
+ [0x010080, 0x0100FA],
+ [0x010140, 0x010174],
+ [0x010280, 0x01029C],
+ [0x0102A0, 0x0102D0],
+ [0x010300, 0x01031F],
+ [0x01032D, 0x01034A],
+ [0x010350, 0x010375],
+ [0x010380, 0x01039D],
+ [0x0103A0, 0x0103C3],
+ [0x0103C8, 0x0103CF],
+ [0x0103D1, 0x0103D5],
+ [0x010400, 0x01049D],
+ [0x0104B0, 0x0104D3],
+ [0x0104D8, 0x0104FB],
+ [0x010500, 0x010527],
+ [0x010530, 0x010563],
+ [0x010600, 0x010736],
+ [0x010740, 0x010755],
+ [0x010760, 0x010767],
+ [0x010800, 0x010805],
+ [0x01080A, 0x010835],
+ [0x010837, 0x010838],
+ [0x01083F, 0x010855],
+ [0x010860, 0x010876],
+ [0x010880, 0x01089E],
+ [0x0108E0, 0x0108F2],
+ [0x0108F4, 0x0108F5],
+ [0x010900, 0x010915],
+ [0x010920, 0x010939],
+ [0x010980, 0x0109B7],
+ [0x0109BE, 0x0109BF],
+ [0x010A10, 0x010A13],
+ [0x010A15, 0x010A17],
+ [0x010A19, 0x010A35],
+ [0x010A60, 0x010A7C],
+ [0x010A80, 0x010A9C],
+ [0x010AC0, 0x010AC7],
+ [0x010AC9, 0x010AE4],
+ [0x010B00, 0x010B35],
+ [0x010B40, 0x010B55],
+ [0x010B60, 0x010B72],
+ [0x010B80, 0x010B91],
+ [0x010C00, 0x010C48],
+ [0x010C80, 0x010CB2],
+ [0x010CC0, 0x010CF2],
+ [0x010D00, 0x010D23],
+ [0x010E80, 0x010EA9],
+ [0x010EB0, 0x010EB1],
+ [0x010F00, 0x010F1C],
+ [0x010F30, 0x010F45],
+ [0x010FB0, 0x010FC4],
+ [0x010FE0, 0x010FF6],
+ [0x011003, 0x011037],
+ [0x011083, 0x0110AF],
+ [0x0110D0, 0x0110E8],
+ [0x011103, 0x011126],
+ [0x011150, 0x011172],
+ [0x011183, 0x0111B2],
+ [0x0111C1, 0x0111C4],
+ [0x011200, 0x011211],
+ [0x011213, 0x01122B],
+ [0x011280, 0x011286],
+ [0x01128A, 0x01128D],
+ [0x01128F, 0x01129D],
+ [0x01129F, 0x0112A8],
+ [0x0112B0, 0x0112DE],
+ [0x011305, 0x01130C],
+ [0x01130F, 0x011310],
+ [0x011313, 0x011328],
+ [0x01132A, 0x011330],
+ [0x011332, 0x011333],
+ [0x011335, 0x011339],
+ [0x01135D, 0x011361],
+ [0x011400, 0x011434],
+ [0x011447, 0x01144A],
+ [0x01145F, 0x011461],
+ [0x011480, 0x0114AF],
+ [0x0114C4, 0x0114C5],
+ [0x011580, 0x0115AE],
+ [0x0115D8, 0x0115DB],
+ [0x011600, 0x01162F],
+ [0x011680, 0x0116AA],
+ [0x011700, 0x01171A],
+ [0x011800, 0x01182B],
+ [0x0118A0, 0x0118DF],
+ [0x0118FF, 0x011906],
+ [0x01190C, 0x011913],
+ [0x011915, 0x011916],
+ [0x011918, 0x01192F],
+ [0x0119A0, 0x0119A7],
+ [0x0119AA, 0x0119D0],
+ [0x011A0B, 0x011A32],
+ [0x011A5C, 0x011A89],
+ [0x011AC0, 0x011AF8],
+ [0x011C00, 0x011C08],
+ [0x011C0A, 0x011C2E],
+ [0x011C72, 0x011C8F],
+ [0x011D00, 0x011D06],
+ [0x011D08, 0x011D09],
+ [0x011D0B, 0x011D30],
+ [0x011D60, 0x011D65],
+ [0x011D67, 0x011D68],
+ [0x011D6A, 0x011D89],
+ [0x011EE0, 0x011EF2],
+ [0x012000, 0x012399],
+ [0x012400, 0x01246E],
+ [0x012480, 0x012543],
+ [0x013000, 0x01342E],
+ [0x014400, 0x014646],
+ [0x016800, 0x016A38],
+ [0x016A40, 0x016A5E],
+ [0x016AD0, 0x016AED],
+ [0x016B00, 0x016B2F],
+ [0x016B40, 0x016B43],
+ [0x016B63, 0x016B77],
+ [0x016B7D, 0x016B8F],
+ [0x016E40, 0x016E7F],
+ [0x016F00, 0x016F4A],
+ [0x016F93, 0x016F9F],
+ [0x016FE0, 0x016FE1],
+ [0x017000, 0x0187F7],
+ [0x018800, 0x018CD5],
+ [0x018D00, 0x018D08],
+ [0x01B000, 0x01B11E],
+ [0x01B150, 0x01B152],
+ [0x01B164, 0x01B167],
+ [0x01B170, 0x01B2FB],
+ [0x01BC00, 0x01BC6A],
+ [0x01BC70, 0x01BC7C],
+ [0x01BC80, 0x01BC88],
+ [0x01BC90, 0x01BC99],
+ [0x01D400, 0x01D454],
+ [0x01D456, 0x01D49C],
+ [0x01D49E, 0x01D49F],
+ [0x01D4A5, 0x01D4A6],
+ [0x01D4A9, 0x01D4AC],
+ [0x01D4AE, 0x01D4B9],
+ [0x01D4BD, 0x01D4C3],
+ [0x01D4C5, 0x01D505],
+ [0x01D507, 0x01D50A],
+ [0x01D50D, 0x01D514],
+ [0x01D516, 0x01D51C],
+ [0x01D51E, 0x01D539],
+ [0x01D53B, 0x01D53E],
+ [0x01D540, 0x01D544],
+ [0x01D54A, 0x01D550],
+ [0x01D552, 0x01D6A5],
+ [0x01D6A8, 0x01D6C0],
+ [0x01D6C2, 0x01D6DA],
+ [0x01D6DC, 0x01D6FA],
+ [0x01D6FC, 0x01D714],
+ [0x01D716, 0x01D734],
+ [0x01D736, 0x01D74E],
+ [0x01D750, 0x01D76E],
+ [0x01D770, 0x01D788],
+ [0x01D78A, 0x01D7A8],
+ [0x01D7AA, 0x01D7C2],
+ [0x01D7C4, 0x01D7CB],
+ [0x01E100, 0x01E12C],
+ [0x01E137, 0x01E13D],
+ [0x01E2C0, 0x01E2EB],
+ [0x01E800, 0x01E8C4],
+ [0x01E900, 0x01E943],
+ [0x01EE00, 0x01EE03],
+ [0x01EE05, 0x01EE1F],
+ [0x01EE21, 0x01EE22],
+ [0x01EE29, 0x01EE32],
+ [0x01EE34, 0x01EE37],
+ [0x01EE4D, 0x01EE4F],
+ [0x01EE51, 0x01EE52],
+ [0x01EE61, 0x01EE62],
+ [0x01EE67, 0x01EE6A],
+ [0x01EE6C, 0x01EE72],
+ [0x01EE74, 0x01EE77],
+ [0x01EE79, 0x01EE7C],
+ [0x01EE80, 0x01EE89],
+ [0x01EE8B, 0x01EE9B],
+ [0x01EEA1, 0x01EEA3],
+ [0x01EEA5, 0x01EEA9],
+ [0x01EEAB, 0x01EEBB],
+ [0x020000, 0x02A6DD],
+ [0x02A700, 0x02B734],
+ [0x02B740, 0x02B81D],
+ [0x02B820, 0x02CEA1],
+ [0x02CEB0, 0x02EBE0],
+ [0x02F800, 0x02FA1D],
+ [0x030000, 0x03134A]
+ ]
+});
+testPropertyEscapes(
+ /^\p{XID_Start}+$/u,
+ matchSymbols,
+ "\\p{XID_Start}"
+);
+testPropertyEscapes(
+ /^\p{XIDS}+$/u,
+ matchSymbols,
+ "\\p{XIDS}"
+);
+
+const nonMatchSymbols = buildString({
+ loneCodePoints: [
+ 0x0000D7,
+ 0x0000F7,
+ 0x0002ED,
+ 0x000375,
+ 0x00037E,
+ 0x000387,
+ 0x00038B,
+ 0x00038D,
+ 0x0003A2,
+ 0x0003F6,
+ 0x000530,
+ 0x000670,
+ 0x0006D4,
+ 0x000711,
+ 0x0008B5,
+ 0x0009A9,
+ 0x0009B1,
+ 0x0009DE,
+ 0x000A29,
+ 0x000A31,
+ 0x000A34,
+ 0x000A37,
+ 0x000A5D,
+ 0x000A8E,
+ 0x000A92,
+ 0x000AA9,
+ 0x000AB1,
+ 0x000AB4,
+ 0x000B29,
+ 0x000B31,
+ 0x000B34,
+ 0x000B5E,
+ 0x000B84,
+ 0x000B91,
+ 0x000B9B,
+ 0x000B9D,
+ 0x000C0D,
+ 0x000C11,
+ 0x000C29,
+ 0x000C8D,
+ 0x000C91,
+ 0x000CA9,
+ 0x000CB4,
+ 0x000CDF,
+ 0x000D0D,
+ 0x000D11,
+ 0x000DB2,
+ 0x000DBC,
+ 0x000E31,
+ 0x000E83,
+ 0x000E85,
+ 0x000E8B,
+ 0x000EA4,
+ 0x000EA6,
+ 0x000EB1,
+ 0x000EC5,
+ 0x000F48,
+ 0x0010C6,
+ 0x0010FB,
+ 0x001249,
+ 0x001257,
+ 0x001259,
+ 0x001289,
+ 0x0012B1,
+ 0x0012BF,
+ 0x0012C1,
+ 0x0012D7,
+ 0x001311,
+ 0x001680,
+ 0x00170D,
+ 0x00176D,
+ 0x0018A9,
+ 0x001CED,
+ 0x001CF4,
+ 0x001F58,
+ 0x001F5A,
+ 0x001F5C,
+ 0x001F5E,
+ 0x001FB5,
+ 0x001FBD,
+ 0x001FC5,
+ 0x001FF5,
+ 0x002114,
+ 0x002125,
+ 0x002127,
+ 0x002129,
+ 0x002C2F,
+ 0x002C5F,
+ 0x002D26,
+ 0x002DA7,
+ 0x002DAF,
+ 0x002DB7,
+ 0x002DBF,
+ 0x002DC7,
+ 0x002DCF,
+ 0x002DD7,
+ 0x0030A0,
+ 0x0030FB,
+ 0x003130,
+ 0x00A802,
+ 0x00A806,
+ 0x00A80B,
+ 0x00A8FC,
+ 0x00A9E5,
+ 0x00A9FF,
+ 0x00AA43,
+ 0x00AAB0,
+ 0x00AAC1,
+ 0x00AB27,
+ 0x00AB2F,
+ 0x00AB5B,
+ 0x00FB1E,
+ 0x00FB29,
+ 0x00FB37,
+ 0x00FB3D,
+ 0x00FB3F,
+ 0x00FB42,
+ 0x00FB45,
+ 0x00FE72,
+ 0x00FE78,
+ 0x00FE7A,
+ 0x00FE7C,
+ 0x00FE7E,
+ 0x01000C,
+ 0x010027,
+ 0x01003B,
+ 0x01003E,
+ 0x0103D0,
+ 0x010809,
+ 0x010836,
+ 0x0108F3,
+ 0x010A14,
+ 0x010A18,
+ 0x010AC8,
+ 0x0111DB,
+ 0x011212,
+ 0x011287,
+ 0x011289,
+ 0x01128E,
+ 0x01129E,
+ 0x011329,
+ 0x011331,
+ 0x011334,
+ 0x0114C6,
+ 0x011914,
+ 0x011917,
+ 0x011940,
+ 0x0119E2,
+ 0x011C09,
+ 0x011D07,
+ 0x011D0A,
+ 0x011D66,
+ 0x011D69,
+ 0x016FE2,
+ 0x01D455,
+ 0x01D49D,
+ 0x01D4AD,
+ 0x01D4BA,
+ 0x01D4BC,
+ 0x01D4C4,
+ 0x01D506,
+ 0x01D515,
+ 0x01D51D,
+ 0x01D53A,
+ 0x01D53F,
+ 0x01D545,
+ 0x01D551,
+ 0x01D6C1,
+ 0x01D6DB,
+ 0x01D6FB,
+ 0x01D715,
+ 0x01D735,
+ 0x01D74F,
+ 0x01D76F,
+ 0x01D789,
+ 0x01D7A9,
+ 0x01D7C3,
+ 0x01EE04,
+ 0x01EE20,
+ 0x01EE23,
+ 0x01EE28,
+ 0x01EE33,
+ 0x01EE38,
+ 0x01EE3A,
+ 0x01EE48,
+ 0x01EE4A,
+ 0x01EE4C,
+ 0x01EE50,
+ 0x01EE53,
+ 0x01EE58,
+ 0x01EE5A,
+ 0x01EE5C,
+ 0x01EE5E,
+ 0x01EE60,
+ 0x01EE63,
+ 0x01EE6B,
+ 0x01EE73,
+ 0x01EE78,
+ 0x01EE7D,
+ 0x01EE7F,
+ 0x01EE8A,
+ 0x01EEA4,
+ 0x01EEAA
+ ],
+ ranges: [
+ [0x00DC00, 0x00DFFF],
+ [0x000000, 0x000040],
+ [0x00005B, 0x000060],
+ [0x00007B, 0x0000A9],
+ [0x0000AB, 0x0000B4],
+ [0x0000B6, 0x0000B9],
+ [0x0000BB, 0x0000BF],
+ [0x0002C2, 0x0002C5],
+ [0x0002D2, 0x0002DF],
+ [0x0002E5, 0x0002EB],
+ [0x0002EF, 0x00036F],
+ [0x000378, 0x00037A],
+ [0x000380, 0x000385],
+ [0x000482, 0x000489],
+ [0x000557, 0x000558],
+ [0x00055A, 0x00055F],
+ [0x000589, 0x0005CF],
+ [0x0005EB, 0x0005EE],
+ [0x0005F3, 0x00061F],
+ [0x00064B, 0x00066D],
+ [0x0006D6, 0x0006E4],
+ [0x0006E7, 0x0006ED],
+ [0x0006F0, 0x0006F9],
+ [0x0006FD, 0x0006FE],
+ [0x000700, 0x00070F],
+ [0x000730, 0x00074C],
+ [0x0007A6, 0x0007B0],
+ [0x0007B2, 0x0007C9],
+ [0x0007EB, 0x0007F3],
+ [0x0007F6, 0x0007F9],
+ [0x0007FB, 0x0007FF],
+ [0x000816, 0x000819],
+ [0x00081B, 0x000823],
+ [0x000825, 0x000827],
+ [0x000829, 0x00083F],
+ [0x000859, 0x00085F],
+ [0x00086B, 0x00089F],
+ [0x0008C8, 0x000903],
+ [0x00093A, 0x00093C],
+ [0x00093E, 0x00094F],
+ [0x000951, 0x000957],
+ [0x000962, 0x000970],
+ [0x000981, 0x000984],
+ [0x00098D, 0x00098E],
+ [0x000991, 0x000992],
+ [0x0009B3, 0x0009B5],
+ [0x0009BA, 0x0009BC],
+ [0x0009BE, 0x0009CD],
+ [0x0009CF, 0x0009DB],
+ [0x0009E2, 0x0009EF],
+ [0x0009F2, 0x0009FB],
+ [0x0009FD, 0x000A04],
+ [0x000A0B, 0x000A0E],
+ [0x000A11, 0x000A12],
+ [0x000A3A, 0x000A58],
+ [0x000A5F, 0x000A71],
+ [0x000A75, 0x000A84],
+ [0x000ABA, 0x000ABC],
+ [0x000ABE, 0x000ACF],
+ [0x000AD1, 0x000ADF],
+ [0x000AE2, 0x000AF8],
+ [0x000AFA, 0x000B04],
+ [0x000B0D, 0x000B0E],
+ [0x000B11, 0x000B12],
+ [0x000B3A, 0x000B3C],
+ [0x000B3E, 0x000B5B],
+ [0x000B62, 0x000B70],
+ [0x000B72, 0x000B82],
+ [0x000B8B, 0x000B8D],
+ [0x000B96, 0x000B98],
+ [0x000BA0, 0x000BA2],
+ [0x000BA5, 0x000BA7],
+ [0x000BAB, 0x000BAD],
+ [0x000BBA, 0x000BCF],
+ [0x000BD1, 0x000C04],
+ [0x000C3A, 0x000C3C],
+ [0x000C3E, 0x000C57],
+ [0x000C5B, 0x000C5F],
+ [0x000C62, 0x000C7F],
+ [0x000C81, 0x000C84],
+ [0x000CBA, 0x000CBC],
+ [0x000CBE, 0x000CDD],
+ [0x000CE2, 0x000CF0],
+ [0x000CF3, 0x000D03],
+ [0x000D3B, 0x000D3C],
+ [0x000D3E, 0x000D4D],
+ [0x000D4F, 0x000D53],
+ [0x000D57, 0x000D5E],
+ [0x000D62, 0x000D79],
+ [0x000D80, 0x000D84],
+ [0x000D97, 0x000D99],
+ [0x000DBE, 0x000DBF],
+ [0x000DC7, 0x000E00],
+ [0x000E33, 0x000E3F],
+ [0x000E47, 0x000E80],
+ [0x000EB3, 0x000EBC],
+ [0x000EBE, 0x000EBF],
+ [0x000EC7, 0x000EDB],
+ [0x000EE0, 0x000EFF],
+ [0x000F01, 0x000F3F],
+ [0x000F6D, 0x000F87],
+ [0x000F8D, 0x000FFF],
+ [0x00102B, 0x00103E],
+ [0x001040, 0x00104F],
+ [0x001056, 0x001059],
+ [0x00105E, 0x001060],
+ [0x001062, 0x001064],
+ [0x001067, 0x00106D],
+ [0x001071, 0x001074],
+ [0x001082, 0x00108D],
+ [0x00108F, 0x00109F],
+ [0x0010C8, 0x0010CC],
+ [0x0010CE, 0x0010CF],
+ [0x00124E, 0x00124F],
+ [0x00125E, 0x00125F],
+ [0x00128E, 0x00128F],
+ [0x0012B6, 0x0012B7],
+ [0x0012C6, 0x0012C7],
+ [0x001316, 0x001317],
+ [0x00135B, 0x00137F],
+ [0x001390, 0x00139F],
+ [0x0013F6, 0x0013F7],
+ [0x0013FE, 0x001400],
+ [0x00166D, 0x00166E],
+ [0x00169B, 0x00169F],
+ [0x0016EB, 0x0016ED],
+ [0x0016F9, 0x0016FF],
+ [0x001712, 0x00171F],
+ [0x001732, 0x00173F],
+ [0x001752, 0x00175F],
+ [0x001771, 0x00177F],
+ [0x0017B4, 0x0017D6],
+ [0x0017D8, 0x0017DB],
+ [0x0017DD, 0x00181F],
+ [0x001879, 0x00187F],
+ [0x0018AB, 0x0018AF],
+ [0x0018F6, 0x0018FF],
+ [0x00191F, 0x00194F],
+ [0x00196E, 0x00196F],
+ [0x001975, 0x00197F],
+ [0x0019AC, 0x0019AF],
+ [0x0019CA, 0x0019FF],
+ [0x001A17, 0x001A1F],
+ [0x001A55, 0x001AA6],
+ [0x001AA8, 0x001B04],
+ [0x001B34, 0x001B44],
+ [0x001B4C, 0x001B82],
+ [0x001BA1, 0x001BAD],
+ [0x001BB0, 0x001BB9],
+ [0x001BE6, 0x001BFF],
+ [0x001C24, 0x001C4C],
+ [0x001C50, 0x001C59],
+ [0x001C7E, 0x001C7F],
+ [0x001C89, 0x001C8F],
+ [0x001CBB, 0x001CBC],
+ [0x001CC0, 0x001CE8],
+ [0x001CF7, 0x001CF9],
+ [0x001CFB, 0x001CFF],
+ [0x001DC0, 0x001DFF],
+ [0x001F16, 0x001F17],
+ [0x001F1E, 0x001F1F],
+ [0x001F46, 0x001F47],
+ [0x001F4E, 0x001F4F],
+ [0x001F7E, 0x001F7F],
+ [0x001FBF, 0x001FC1],
+ [0x001FCD, 0x001FCF],
+ [0x001FD4, 0x001FD5],
+ [0x001FDC, 0x001FDF],
+ [0x001FED, 0x001FF1],
+ [0x001FFD, 0x002070],
+ [0x002072, 0x00207E],
+ [0x002080, 0x00208F],
+ [0x00209D, 0x002101],
+ [0x002103, 0x002106],
+ [0x002108, 0x002109],
+ [0x002116, 0x002117],
+ [0x00211E, 0x002123],
+ [0x00213A, 0x00213B],
+ [0x002140, 0x002144],
+ [0x00214A, 0x00214D],
+ [0x00214F, 0x00215F],
+ [0x002189, 0x002BFF],
+ [0x002CE5, 0x002CEA],
+ [0x002CEF, 0x002CF1],
+ [0x002CF4, 0x002CFF],
+ [0x002D28, 0x002D2C],
+ [0x002D2E, 0x002D2F],
+ [0x002D68, 0x002D6E],
+ [0x002D70, 0x002D7F],
+ [0x002D97, 0x002D9F],
+ [0x002DDF, 0x003004],
+ [0x003008, 0x003020],
+ [0x00302A, 0x003030],
+ [0x003036, 0x003037],
+ [0x00303D, 0x003040],
+ [0x003097, 0x00309C],
+ [0x003100, 0x003104],
+ [0x00318F, 0x00319F],
+ [0x0031C0, 0x0031EF],
+ [0x003200, 0x0033FF],
+ [0x004DC0, 0x004DFF],
+ [0x009FFD, 0x009FFF],
+ [0x00A48D, 0x00A4CF],
+ [0x00A4FE, 0x00A4FF],
+ [0x00A60D, 0x00A60F],
+ [0x00A620, 0x00A629],
+ [0x00A62C, 0x00A63F],
+ [0x00A66F, 0x00A67E],
+ [0x00A69E, 0x00A69F],
+ [0x00A6F0, 0x00A716],
+ [0x00A720, 0x00A721],
+ [0x00A789, 0x00A78A],
+ [0x00A7C0, 0x00A7C1],
+ [0x00A7CB, 0x00A7F4],
+ [0x00A823, 0x00A83F],
+ [0x00A874, 0x00A881],
+ [0x00A8B4, 0x00A8F1],
+ [0x00A8F8, 0x00A8FA],
+ [0x00A8FF, 0x00A909],
+ [0x00A926, 0x00A92F],
+ [0x00A947, 0x00A95F],
+ [0x00A97D, 0x00A983],
+ [0x00A9B3, 0x00A9CE],
+ [0x00A9D0, 0x00A9DF],
+ [0x00A9F0, 0x00A9F9],
+ [0x00AA29, 0x00AA3F],
+ [0x00AA4C, 0x00AA5F],
+ [0x00AA77, 0x00AA79],
+ [0x00AA7B, 0x00AA7D],
+ [0x00AAB2, 0x00AAB4],
+ [0x00AAB7, 0x00AAB8],
+ [0x00AABE, 0x00AABF],
+ [0x00AAC3, 0x00AADA],
+ [0x00AADE, 0x00AADF],
+ [0x00AAEB, 0x00AAF1],
+ [0x00AAF5, 0x00AB00],
+ [0x00AB07, 0x00AB08],
+ [0x00AB0F, 0x00AB10],
+ [0x00AB17, 0x00AB1F],
+ [0x00AB6A, 0x00AB6F],
+ [0x00ABE3, 0x00ABFF],
+ [0x00D7A4, 0x00D7AF],
+ [0x00D7C7, 0x00D7CA],
+ [0x00D7FC, 0x00DBFF],
+ [0x00E000, 0x00F8FF],
+ [0x00FA6E, 0x00FA6F],
+ [0x00FADA, 0x00FAFF],
+ [0x00FB07, 0x00FB12],
+ [0x00FB18, 0x00FB1C],
+ [0x00FBB2, 0x00FBD2],
+ [0x00FC5E, 0x00FC63],
+ [0x00FD3E, 0x00FD4F],
+ [0x00FD90, 0x00FD91],
+ [0x00FDC8, 0x00FDEF],
+ [0x00FDFA, 0x00FE70],
+ [0x00FE74, 0x00FE76],
+ [0x00FEFD, 0x00FF20],
+ [0x00FF3B, 0x00FF40],
+ [0x00FF5B, 0x00FF65],
+ [0x00FF9E, 0x00FF9F],
+ [0x00FFBF, 0x00FFC1],
+ [0x00FFC8, 0x00FFC9],
+ [0x00FFD0, 0x00FFD1],
+ [0x00FFD8, 0x00FFD9],
+ [0x00FFDD, 0x00FFFF],
+ [0x01004E, 0x01004F],
+ [0x01005E, 0x01007F],
+ [0x0100FB, 0x01013F],
+ [0x010175, 0x01027F],
+ [0x01029D, 0x01029F],
+ [0x0102D1, 0x0102FF],
+ [0x010320, 0x01032C],
+ [0x01034B, 0x01034F],
+ [0x010376, 0x01037F],
+ [0x01039E, 0x01039F],
+ [0x0103C4, 0x0103C7],
+ [0x0103D6, 0x0103FF],
+ [0x01049E, 0x0104AF],
+ [0x0104D4, 0x0104D7],
+ [0x0104FC, 0x0104FF],
+ [0x010528, 0x01052F],
+ [0x010564, 0x0105FF],
+ [0x010737, 0x01073F],
+ [0x010756, 0x01075F],
+ [0x010768, 0x0107FF],
+ [0x010806, 0x010807],
+ [0x010839, 0x01083B],
+ [0x01083D, 0x01083E],
+ [0x010856, 0x01085F],
+ [0x010877, 0x01087F],
+ [0x01089F, 0x0108DF],
+ [0x0108F6, 0x0108FF],
+ [0x010916, 0x01091F],
+ [0x01093A, 0x01097F],
+ [0x0109B8, 0x0109BD],
+ [0x0109C0, 0x0109FF],
+ [0x010A01, 0x010A0F],
+ [0x010A36, 0x010A5F],
+ [0x010A7D, 0x010A7F],
+ [0x010A9D, 0x010ABF],
+ [0x010AE5, 0x010AFF],
+ [0x010B36, 0x010B3F],
+ [0x010B56, 0x010B5F],
+ [0x010B73, 0x010B7F],
+ [0x010B92, 0x010BFF],
+ [0x010C49, 0x010C7F],
+ [0x010CB3, 0x010CBF],
+ [0x010CF3, 0x010CFF],
+ [0x010D24, 0x010E7F],
+ [0x010EAA, 0x010EAF],
+ [0x010EB2, 0x010EFF],
+ [0x010F1D, 0x010F26],
+ [0x010F28, 0x010F2F],
+ [0x010F46, 0x010FAF],
+ [0x010FC5, 0x010FDF],
+ [0x010FF7, 0x011002],
+ [0x011038, 0x011082],
+ [0x0110B0, 0x0110CF],
+ [0x0110E9, 0x011102],
+ [0x011127, 0x011143],
+ [0x011145, 0x011146],
+ [0x011148, 0x01114F],
+ [0x011173, 0x011175],
+ [0x011177, 0x011182],
+ [0x0111B3, 0x0111C0],
+ [0x0111C5, 0x0111D9],
+ [0x0111DD, 0x0111FF],
+ [0x01122C, 0x01127F],
+ [0x0112A9, 0x0112AF],
+ [0x0112DF, 0x011304],
+ [0x01130D, 0x01130E],
+ [0x011311, 0x011312],
+ [0x01133A, 0x01133C],
+ [0x01133E, 0x01134F],
+ [0x011351, 0x01135C],
+ [0x011362, 0x0113FF],
+ [0x011435, 0x011446],
+ [0x01144B, 0x01145E],
+ [0x011462, 0x01147F],
+ [0x0114B0, 0x0114C3],
+ [0x0114C8, 0x01157F],
+ [0x0115AF, 0x0115D7],
+ [0x0115DC, 0x0115FF],
+ [0x011630, 0x011643],
+ [0x011645, 0x01167F],
+ [0x0116AB, 0x0116B7],
+ [0x0116B9, 0x0116FF],
+ [0x01171B, 0x0117FF],
+ [0x01182C, 0x01189F],
+ [0x0118E0, 0x0118FE],
+ [0x011907, 0x011908],
+ [0x01190A, 0x01190B],
+ [0x011930, 0x01193E],
+ [0x011942, 0x01199F],
+ [0x0119A8, 0x0119A9],
+ [0x0119D1, 0x0119E0],
+ [0x0119E4, 0x0119FF],
+ [0x011A01, 0x011A0A],
+ [0x011A33, 0x011A39],
+ [0x011A3B, 0x011A4F],
+ [0x011A51, 0x011A5B],
+ [0x011A8A, 0x011A9C],
+ [0x011A9E, 0x011ABF],
+ [0x011AF9, 0x011BFF],
+ [0x011C2F, 0x011C3F],
+ [0x011C41, 0x011C71],
+ [0x011C90, 0x011CFF],
+ [0x011D31, 0x011D45],
+ [0x011D47, 0x011D5F],
+ [0x011D8A, 0x011D97],
+ [0x011D99, 0x011EDF],
+ [0x011EF3, 0x011FAF],
+ [0x011FB1, 0x011FFF],
+ [0x01239A, 0x0123FF],
+ [0x01246F, 0x01247F],
+ [0x012544, 0x012FFF],
+ [0x01342F, 0x0143FF],
+ [0x014647, 0x0167FF],
+ [0x016A39, 0x016A3F],
+ [0x016A5F, 0x016ACF],
+ [0x016AEE, 0x016AFF],
+ [0x016B30, 0x016B3F],
+ [0x016B44, 0x016B62],
+ [0x016B78, 0x016B7C],
+ [0x016B90, 0x016E3F],
+ [0x016E80, 0x016EFF],
+ [0x016F4B, 0x016F4F],
+ [0x016F51, 0x016F92],
+ [0x016FA0, 0x016FDF],
+ [0x016FE4, 0x016FFF],
+ [0x0187F8, 0x0187FF],
+ [0x018CD6, 0x018CFF],
+ [0x018D09, 0x01AFFF],
+ [0x01B11F, 0x01B14F],
+ [0x01B153, 0x01B163],
+ [0x01B168, 0x01B16F],
+ [0x01B2FC, 0x01BBFF],
+ [0x01BC6B, 0x01BC6F],
+ [0x01BC7D, 0x01BC7F],
+ [0x01BC89, 0x01BC8F],
+ [0x01BC9A, 0x01D3FF],
+ [0x01D4A0, 0x01D4A1],
+ [0x01D4A3, 0x01D4A4],
+ [0x01D4A7, 0x01D4A8],
+ [0x01D50B, 0x01D50C],
+ [0x01D547, 0x01D549],
+ [0x01D6A6, 0x01D6A7],
+ [0x01D7CC, 0x01E0FF],
+ [0x01E12D, 0x01E136],
+ [0x01E13E, 0x01E14D],
+ [0x01E14F, 0x01E2BF],
+ [0x01E2EC, 0x01E7FF],
+ [0x01E8C5, 0x01E8FF],
+ [0x01E944, 0x01E94A],
+ [0x01E94C, 0x01EDFF],
+ [0x01EE25, 0x01EE26],
+ [0x01EE3C, 0x01EE41],
+ [0x01EE43, 0x01EE46],
+ [0x01EE55, 0x01EE56],
+ [0x01EE65, 0x01EE66],
+ [0x01EE9C, 0x01EEA0],
+ [0x01EEBC, 0x01FFFF],
+ [0x02A6DE, 0x02A6FF],
+ [0x02B735, 0x02B73F],
+ [0x02B81E, 0x02B81F],
+ [0x02CEA2, 0x02CEAF],
+ [0x02EBE1, 0x02F7FF],
+ [0x02FA1E, 0x02FFFF],
+ [0x03134B, 0x10FFFF]
+ ]
+});
+testPropertyEscapes(
+ /^\P{XID_Start}+$/u,
+ nonMatchSymbols,
+ "\\P{XID_Start}"
+);
+testPropertyEscapes(
+ /^\P{XIDS}+$/u,
+ nonMatchSymbols,
+ "\\P{XIDS}"
+);
+
+reportCompare(0, 0);
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/browser.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/browser.js
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/browser.js
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/shell.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/shell.js
new file mode 100644
index 0000000000..3c80817b09
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/generated/shell.js
@@ -0,0 +1,60 @@
+// 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, matchValidator]
+---*/
+
+function buildString({ loneCodePoints, 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 testPropertyEscapes(regex, string, expression) {
+ if (!regex.test(string)) {
+ for (const symbol of string) {
+ const hex = symbol
+ .codePointAt(0)
+ .toString(16)
+ .toUpperCase()
+ .padStart(6, "0");
+ assert(
+ regex.test(symbol),
+ `\`${ expression }\` should match U+${ hex } (\`${ symbol }\`)`
+ );
+ }
+ }
+}
+
+// Returns a function that will validate 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/property-escapes/grammar-extension-In-prefix-Block-implicit-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit-negated.js
new file mode 100644
index 0000000000..8ab448df23
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{InAdlam}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit.js
new file mode 100644
index 0000000000..b139524bc5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{InAdlam}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit-negated.js
new file mode 100644
index 0000000000..8ab448df23
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{InAdlam}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit.js
new file mode 100644
index 0000000000..b139524bc5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{InAdlam}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-negated.js
new file mode 100644
index 0000000000..6b31a3c0df
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{InScript=Adlam}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script.js
new file mode 100644
index 0000000000..dcf2113476
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{InScript=Adlam}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script-negated.js
new file mode 100644
index 0000000000..cc3ccecaed
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{IsScript=Adlam}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script.js
new file mode 100644
index 0000000000..008b8bd4ee
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{IsScript=Adlam}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation-negated.js
new file mode 100644
index 0000000000..28967cae69
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{^General_Category=Letter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation.js
new file mode 100644
index 0000000000..ed8e89df8c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{^General_Category=Letter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-empty-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-empty-negated.js
new file mode 100644
index 0000000000..0909592d23
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-empty-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/[\p{}]/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-empty.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-empty.js
new file mode 100644
index 0000000000..3120c8940e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-empty.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/[\P{}]/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-invalid-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-invalid-negated.js
new file mode 100644
index 0000000000..9f4ccd404f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-invalid-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/[\P{invalid}]/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-invalid.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-invalid.js
new file mode 100644
index 0000000000..f531b70649
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-invalid.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/[\p{invalid}]/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-negated.js
new file mode 100644
index 0000000000..5e089d4761
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-value-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-value-negated.js
new file mode 100644
index 0000000000..6c650ab77c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-value-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\PL/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-value.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-value.js
new file mode 100644
index 0000000000..5d037c8628
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces-value.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\pL/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces.js
new file mode 100644
index 0000000000..561b9f7e1b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-no-braces.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only-negated.js
new file mode 100644
index 0000000000..3b1fee83e0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{=Letter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only.js
new file mode 100644
index 0000000000..88c9c3aec2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{=Letter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-negated.js
new file mode 100644
index 0000000000..4d5e6a666f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{General_Category:Letter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-only-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-only-negated.js
new file mode 100644
index 0000000000..065dd2941a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-only-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{=}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-only.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-only.js
new file mode 100644
index 0000000000..e23fd43900
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator-only.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{=}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator.js
new file mode 100644
index 0000000000..8f56f2542c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-separator.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{General_Category:Letter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unclosed-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unclosed-negated.js
new file mode 100644
index 0000000000..e6fc977f8e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unclosed-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unclosed.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unclosed.js
new file mode 100644
index 0000000000..cacdb6c7bf
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unclosed.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unopened-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unopened-negated.js
new file mode 100644
index 0000000000..33b071dbe8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unopened-negated.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unopened.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unopened.js
new file mode 100644
index 0000000000..a7a2afb492
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/grammar-extension-unopened.js
@@ -0,0 +1,22 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ This tests violations of the grammar starting here:
+
+ CharacterClassEscape[U]::
+ [+U] p{ UnicodePropertyValueExpression }
+ [+U] P{ UnicodePropertyValueExpression }
+esid: prod-CharacterClassEscape
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-01-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-01-negated.js
new file mode 100644
index 0000000000..0fd0bb3770
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-01-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ General_Category=Uppercase_Letter }/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-01.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-01.js
new file mode 100644
index 0000000000..5962132504
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-01.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ General_Category=Uppercase_Letter }/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-02-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-02-negated.js
new file mode 100644
index 0000000000..4bc3ad10bb
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-02-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ Lowercase }/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-02.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-02.js
new file mode 100644
index 0000000000..d7979fe1a5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-02.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ Lowercase }/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-03-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-03-negated.js
new file mode 100644
index 0000000000..6981de9cb1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-03-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ANY}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-03.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-03.js
new file mode 100644
index 0000000000..55d551e70f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-03.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ANY}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-04-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-04-negated.js
new file mode 100644
index 0000000000..bcb22bc1d2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-04-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ASSIGNED}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-04.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-04.js
new file mode 100644
index 0000000000..a217494e04
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-04.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ASSIGNED}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-05-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-05-negated.js
new file mode 100644
index 0000000000..c13df11cfa
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-05-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Ascii}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-05.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-05.js
new file mode 100644
index 0000000000..55ff24397e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-05.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Ascii}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-06-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-06-negated.js
new file mode 100644
index 0000000000..bb30a870d6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-06-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{General_Category = Uppercase_Letter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-06.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-06.js
new file mode 100644
index 0000000000..baf7361a6d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-06.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{General_Category = Uppercase_Letter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-07-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-07-negated.js
new file mode 100644
index 0000000000..2f3ac150de
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-07-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{_-_lOwEr_C-A_S-E_-_}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-07.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-07.js
new file mode 100644
index 0000000000..f149cdefd7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-07.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{_-_lOwEr_C-A_S-E_-_}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-08-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-08-negated.js
new file mode 100644
index 0000000000..571558b88f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-08-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{any}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-08.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-08.js
new file mode 100644
index 0000000000..c799535a8a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-08.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{any}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-09-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-09-negated.js
new file mode 100644
index 0000000000..72829c262b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-09-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{ascii}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-09.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-09.js
new file mode 100644
index 0000000000..a3403243ea
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-09.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{ascii}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-10-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-10-negated.js
new file mode 100644
index 0000000000..6d0451789b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-10-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{assigned}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-10.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-10.js
new file mode 100644
index 0000000000..0789f4f774
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-10.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{assigned}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-11-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-11-negated.js
new file mode 100644
index 0000000000..5ca93c9627
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-11-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{gC=uppercase_letter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-11.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-11.js
new file mode 100644
index 0000000000..dd8db3de99
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-11.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{gC=uppercase_letter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-12-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-12-negated.js
new file mode 100644
index 0000000000..800f90a70f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-12-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{gc=uppercaseletter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-12.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-12.js
new file mode 100644
index 0000000000..45ca136b9d
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-12.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{gc=uppercaseletter}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-13-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-13-negated.js
new file mode 100644
index 0000000000..e2e2ddcad2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-13-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{lowercase}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-13.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-13.js
new file mode 100644
index 0000000000..ffec23980b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-13.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{lowercase}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-14-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-14-negated.js
new file mode 100644
index 0000000000..e2e2ddcad2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-14-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{lowercase}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-14.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-14.js
new file mode 100644
index 0000000000..ffec23980b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/loose-matching-14.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Loose matching must not be applied when matching properties and values in
+ Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{lowercase}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals-negated.js
new file mode 100644
index 0000000000..71d88e250f
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals-negated.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{General_Category=}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals.js
new file mode 100644
index 0000000000..5fc26a981a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{General_Category=}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-negated.js
new file mode 100644
index 0000000000..acf816c2c6
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-negated.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{General_Category}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category.js
new file mode 100644
index 0000000000..fb5143ecd9
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{General_Category}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals-negated.js
new file mode 100644
index 0000000000..0f52ab07b8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals-negated.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Script=}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals.js
new file mode 100644
index 0000000000..9614a7f5e7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Script=}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-negated.js
new file mode 100644
index 0000000000..9888ae8f99
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-negated.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Script}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script.js
new file mode 100644
index 0000000000..a68249040a
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Script}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals-negated.js
new file mode 100644
index 0000000000..06a9bdc448
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals-negated.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Script_Extensions=}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals.js
new file mode 100644
index 0000000000..6456cc6af4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Script_Extensions=}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-negated.js
new file mode 100644
index 0000000000..68d76f139c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-negated.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Script_Extensions}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions.js
new file mode 100644
index 0000000000..994aa6d308
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-binary properties without a value must throw in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Script_Extensions}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-binary-property-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-binary-property-negated.js
new file mode 100644
index 0000000000..eafa369663
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-binary-property-negated.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent properties must not be supported in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{UnknownBinaryProperty}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-binary-property.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-binary-property.js
new file mode 100644
index 0000000000..da1e017aa0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-binary-property.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent properties must not be supported in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{UnknownBinaryProperty}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-and-value-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-and-value-negated.js
new file mode 100644
index 0000000000..828fbcd236
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-and-value-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent property values must not be supported in Unicode property
+ escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Line_Breakz=WAT}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-and-value.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-and-value.js
new file mode 100644
index 0000000000..299186715c
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-and-value.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent property values must not be supported in Unicode property
+ escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Line_Breakz=WAT}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-existing-value-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-existing-value-negated.js
new file mode 100644
index 0000000000..ad5a450868
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-existing-value-negated.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent properties must not be supported in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Line_Breakz=Alphabetic}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-existing-value.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-existing-value.js
new file mode 100644
index 0000000000..3c15bb1002
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-existing-value.js
@@ -0,0 +1,18 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent properties must not be supported in Unicode property escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Line_Breakz=Alphabetic}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-General_Category-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-General_Category-negated.js
new file mode 100644
index 0000000000..a04bb578f2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-General_Category-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent property values must not be supported in Unicode property
+ escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\\P{General_Category=WAT}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script-negated.js
new file mode 100644
index 0000000000..d5b5fcd371
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent property values must not be supported in Unicode property
+ escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\\P{Script=FooBarBazInvalid}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script.js
new file mode 100644
index 0000000000..7e84a9d711
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent property values must not be supported in Unicode property
+ escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\\p{Script=FooBarBazInvalid}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions-negated.js
new file mode 100644
index 0000000000..af3d4e6439
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent property values must not be supported in Unicode property
+ escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\\P{Script_Extensions=H_e_h}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions.js
new file mode 100644
index 0000000000..a1e1a5d8d5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent property values must not be supported in Unicode property
+ escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\\p{Script_Extensions=H_e_h}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-general-category.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-general-category.js
new file mode 100644
index 0000000000..bf78af52f5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/non-existent-property-value-general-category.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Non-existent property values must not be supported in Unicode property
+ escapes.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\\p{General_Category=WAT}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/shell.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/shell.js
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/shell.js
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion-negated.js
new file mode 100644
index 0000000000..a774724470
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Composition_Exclusion}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion.js
new file mode 100644
index 0000000000..ed01765fd3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Composition_Exclusion}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC-negated.js
new file mode 100644
index 0000000000..103fbd35de
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Expands_On_NFC}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC.js
new file mode 100644
index 0000000000..3f4f1f0bce
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Expands_On_NFC}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD-negated.js
new file mode 100644
index 0000000000..6b6c5c6285
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Expands_On_NFD}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD.js
new file mode 100644
index 0000000000..a5b0c12895
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Expands_On_NFD}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC-negated.js
new file mode 100644
index 0000000000..5b09ad7ed4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Expands_On_NFKC}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC.js
new file mode 100644
index 0000000000..1bb2b25b23
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Expands_On_NFKC}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD-negated.js
new file mode 100644
index 0000000000..51222095c4
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Expands_On_NFKD}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD.js
new file mode 100644
index 0000000000..57bcc73f79
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Expands_On_NFKD}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure-negated.js
new file mode 100644
index 0000000000..9bf81d7cee
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{FC_NFKC_Closure}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure.js
new file mode 100644
index 0000000000..4bca8d9ba5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{FC_NFKC_Closure}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion-negated.js
new file mode 100644
index 0000000000..8a07b645f3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Full_Composition_Exclusion}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion.js
new file mode 100644
index 0000000000..6f609a5bff
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Full_Composition_Exclusion}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link-negated.js
new file mode 100644
index 0000000000..6b64ce8ced
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Grapheme_Link}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link.js
new file mode 100644
index 0000000000..338961643e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Grapheme_Link}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen-negated.js
new file mode 100644
index 0000000000..0f5976b2c2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Hyphen}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen.js
new file mode 100644
index 0000000000..b2e4e1e1e8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Hyphen}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic-negated.js
new file mode 100644
index 0000000000..e5d8507899
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Other_Alphabetic}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic.js
new file mode 100644
index 0000000000..4f9eaed6e8
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Other_Alphabetic}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point-negated.js
new file mode 100644
index 0000000000..2dccaf3785
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Other_Default_Ignorable_Code_Point}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point.js
new file mode 100644
index 0000000000..86897448f1
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Other_Default_Ignorable_Code_Point}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend-negated.js
new file mode 100644
index 0000000000..70a1b13be3
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Other_Grapheme_Extend}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend.js
new file mode 100644
index 0000000000..d1e95b7ef7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Other_Grapheme_Extend}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue-negated.js
new file mode 100644
index 0000000000..842fdbd71b
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Other_ID_Continue}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue.js
new file mode 100644
index 0000000000..60aadfa0d7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Other_ID_Continue}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start-negated.js
new file mode 100644
index 0000000000..5ed7b1de63
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Other_ID_Start}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start.js
new file mode 100644
index 0000000000..735e931eb5
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Other_ID_Start}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase-negated.js
new file mode 100644
index 0000000000..894a3a1712
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Other_Lowercase}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase.js
new file mode 100644
index 0000000000..612026b404
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Other_Lowercase}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math-negated.js
new file mode 100644
index 0000000000..a5d8abf5a2
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Other_Math}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math.js
new file mode 100644
index 0000000000..ae05560fd9
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Other_Math}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase-negated.js
new file mode 100644
index 0000000000..e201bcdb18
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Other_Uppercase}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase.js
new file mode 100644
index 0000000000..fd0d742924
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Other_Uppercase}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark-negated.js
new file mode 100644
index 0000000000..fcabc64b75
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Prepended_Concatenation_Mark}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark.js
new file mode 100644
index 0000000000..42282d6854
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Some binary properties used to be part of the Unicode property escapes
+ proposal but were later removed. They must not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Prepended_Concatenation_Mark}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Block-with-value-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Block-with-value-negated.js
new file mode 100644
index 0000000000..fbd2eaf307
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Block-with-value-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Properties not explicitly listed in the Unicode property escapes spec must
+ not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Block=Adlam}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Block-with-value.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Block-with-value.js
new file mode 100644
index 0000000000..60d924a8e7
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Block-with-value.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Properties not explicitly listed in the Unicode property escapes spec must
+ not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Block=Adlam}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure-negated.js
new file mode 100644
index 0000000000..aea0c316d0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Properties not explicitly listed in the Unicode property escapes spec must
+ not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{FC_NFKC_Closure}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure.js
new file mode 100644
index 0000000000..e09437ed21
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Properties not explicitly listed in the Unicode property escapes spec must
+ not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{FC_NFKC_Closure}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-negated.js
new file mode 100644
index 0000000000..f28b28f567
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Properties not explicitly listed in the Unicode property escapes spec must
+ not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Line_Break=Alphabetic}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value-negated.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value-negated.js
new file mode 100644
index 0000000000..f28b28f567
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value-negated.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Properties not explicitly listed in the Unicode property escapes spec must
+ not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\P{Line_Break=Alphabetic}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value.js
new file mode 100644
index 0000000000..39a9c89535
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Properties not explicitly listed in the Unicode property escapes spec must
+ not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Line_Break=Alphabetic}/u;
diff --git a/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break.js b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break.js
new file mode 100644
index 0000000000..16879d8ad0
--- /dev/null
+++ b/js/src/tests/test262/built-ins/RegExp/property-escapes/unsupported-property-Line_Break.js
@@ -0,0 +1,19 @@
+// |reftest| error:SyntaxError
+// Copyright 2018 Mathias Bynens. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+author: Mathias Bynens
+description: >
+ Properties not explicitly listed in the Unicode property escapes spec must
+ not be supported.
+esid: sec-static-semantics-unicodematchproperty-p
+negative:
+ phase: parse
+ type: SyntaxError
+features: [regexp-unicode-property-escapes]
+---*/
+
+$DONOTEVALUATE();
+
+/\p{Line_Break}/u;