7
0
Files
nodejs-electron/v8-regexp-parser-UCHAR_BASIC_EMOJI.patch
Bruno Pitrus 7b259750d2 Accepting request 1110783 from home:dziobian:gulgul-ultron:19
- Update to 25.8.0
  * ABI break: NODE_MODULE_VERSION is now 116
  * Chromium 114.0.5735.289
  * Node 18.15.0
  * V8 11.4
  * Removed BrowserWindow scroll-touch-* events (since Electron 23)
  * Removed webContents.{de,in}crementCapturerCount(stayHidden, stayAwake) (since Electron 23)
  * Removed JXL image format support (since Electron 23)
  * API Changed: nativeImage.createThumbnailFromPath(path, size) (since Electron 24)
- Use bundled vpx on Fedora ≤37 and Leap
- Use bundled aom on Fedora and Leap
- Drop support for Fedora 36 which is EOL
- Drop upstreamed patches
  * CVE-2022-43548.patch
  * aggregatable_attribution_utils-do-not-assume-abseil-ABI.patch
  * angle-ShaderVars-missing-uint32_t.patch
  * blink-gcc13-missing-headers.patch
  * bluetooth_uuid-missing-uint8_t.patch
  * broker_file_permission-missing-uint64_t.patch
  * chromium-108-abseil-shims.patch
  * components-gcc13-missing-headers.patch 
  * crashpad-elf_image_reader-ProgramHeaderTableSpecific-expected-unqualified-id.patch
  * d0aa9ad.patch
  * document_loader-private-DecodedBodyData.patch
  * effect_paint_property_node-Wchanges-meaning.patch
  * electron_serial_delegate-ambiguous-Observer.patch
  * extensions-gcc13-missing-headers.patch
  * first_party_set_parser-IssueWithMetadata-no-known-conversion.patch
  * gpu_feature_info-missing-uint32_t.patch
  * half_float-Wstrict-aliasing.patch
  * ipcz-buffer_id-Wnarrowing.patch
  * ipcz-safe_math-Wuninitialized.patch
  * net-gcc13-missing-headers.patch
  * net-third_party-quiche-gcc13-missing-headers.patch
  * one_writer_seqlock-missing-uintptr_t.patch
  * openscreen-gcc13-missing-headers.patch
  * passwords_counter-Wsubobject-linkage.patch
  * perfetto-uuid-missing-uint8_t.patch
  * print_dialog_gtk-no-kEnableOopPrintDriversJobPrint.patch
  * profiler-missing-uintptr_t.patch
  * reproducible-config.gypi.patch
  * select_file_dialog_linux_kde-Wodr.patch
  * shim_headers-fix-ninja.patch
  * static_constructors-Wstrict-aliasing.patch
  * string_hasher-type-pun-UB-causes-heap-corruption.patch
  * swiftshader-Constants-Wstrict-aliasing.patch
  * swiftshader-Half-Wstrict-aliasing.patch
  * swiftshader-LRUCache-missing-uint64_t.patch
  * target_property-missing-uint32_t.patch
  * ui-gcc13-missing-headers.patch
  * unzip-Wsubobject-linkage.patch
  * v8_initializer-PageAllocator-fpermissive.patch
  * vector_math_impl-Wstrict-aliasing.patch
  * web_contents_impl-Wsubobject-linkage.patch
  * webgl_image_conversion-Wstrict-aliasing.patch
  * webrtc-base64-missing-uint8_t.patch
  * xr_cube_map-Wstrict-aliasing.patch
- Drop no longer relevant patches`
  * chromium-norar.patch
  * electron-13-fix-sql-virtualcursor-type.patch
  * enable-jxl.patch
  * system-jsoncpp.patch
- Add patches to build with system libs
  * abseil-remove-unused-targets.patch
  * highway.gn
  * system-wayland.patch
- Add patches to fix build errors
  * absl-uint128-do-not-assume-abi.patch
  * cpu-missing-uint8_t.patch
  * electron-24-components-missing-headers.patch
  * electron_api_app-GetPathConstant-non-constexpr.patch
  * electron_browser_context-missing-variant.patch
  * mojo_ukm_recorder-missing-WrapUnique.patch
- Conditionally reverse upstream changes to build against stable avif
  * avif_image_decoder-repetitionCount-clli.patch
- …and harfbuzz 4
  * harfbuzz-replace-HbScopedPointer.patch
- …and icu 69
  * v8-regexp-parser-UCHAR_BASIC_EMOJI.patch
- …and wayland 19
  * wayland-WL-SINCE-VERSION.patch
  * wayland_data_drag_controller-WL_SURFACE_OFFSET_SINCE_VERSION.patch
- Add backported chrome-gpu-does-not-load.patch

OBS-URL: https://build.opensuse.org/request/show/1110783
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=89
2023-09-13 04:57:45 +00:00

504 lines
31 KiB
Diff

From 0fec70aeb15c286cb696420616e2aeb3bc0eb03a Mon Sep 17 00:00:00 2001
From: pthier <pthier@chromium.org>
Date: Fri, 25 Nov 2022 11:27:06 +0100
Subject: [PATCH] [regexp] Support properties of strings in unicode sets mode
Add support for properties of strings in unicode sets mode (/v).
Bug: v8:11935
Change-Id: Iae2f0182b1c42bb900c524ca406784b7b1b52842
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051247
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84481}
---
src/regexp/regexp-parser.cc | 162 ++++++++++++++++----
test/mjsunit/harmony/regexp-unicode-sets.js | 36 +++++
test/test262/test262.status | 153 ++++++++----------
3 files changed, 227 insertions(+), 124 deletions(-)
diff --git a/src/regexp/regexp-parser.cc b/src/regexp/regexp-parser.cc
index b5ead7c0054..f420b2eec42 100644
--- a/v8/src/regexp/regexp-parser.cc
+++ b/v8/src/regexp/regexp-parser.cc
@@ -450,7 +450,8 @@ class RegExpParserImpl final {
bool ParsePropertyClassName(ZoneVector<char>* name_1,
ZoneVector<char>* name_2);
- bool AddPropertyClassRange(ZoneList<CharacterRange>* add_to, bool negate,
+ bool AddPropertyClassRange(ZoneList<CharacterRange>* add_to_range,
+ CharacterClassStrings* add_to_strings, bool negate,
const ZoneVector<char>& name_1,
const ZoneVector<char>& name_2);
@@ -465,7 +466,7 @@ class RegExpParserImpl final {
bool TryParseCharacterClassEscape(base::uc32 next,
InClassEscapeState in_class_escape_state,
ZoneList<CharacterRange>* ranges,
- Zone* zone,
+ CharacterClassStrings* strings, Zone* zone,
bool add_unicode_case_equivalents);
RegExpTree* ParseClassStringDisjunction(ZoneList<CharacterRange>* ranges,
CharacterClassStrings* strings);
@@ -1094,16 +1095,14 @@ RegExpTree* RegExpParserImpl<CharT>::ParseDisjunction() {
case 's':
case 'S':
case 'w':
- case 'W':
- case 'p':
- case 'P': {
+ case 'W': {
base::uc32 next = Next();
ZoneList<CharacterRange>* ranges =
zone()->template New<ZoneList<CharacterRange>>(2, zone());
bool add_unicode_case_equivalents =
IsUnicodeMode() && ignore_case();
bool parsed_character_class_escape = TryParseCharacterClassEscape(
- next, InClassEscapeState::kNotInClass, ranges, zone(),
+ next, InClassEscapeState::kNotInClass, ranges, nullptr, zone(),
add_unicode_case_equivalents CHECK_FAILED);
if (parsed_character_class_escape) {
@@ -1117,6 +1116,38 @@ RegExpTree* RegExpParserImpl<CharT>::ParseDisjunction() {
}
break;
}
+ case 'p':
+ case 'P': {
+ base::uc32 next = Next();
+ ZoneList<CharacterRange>* ranges =
+ zone()->template New<ZoneList<CharacterRange>>(2, zone());
+ CharacterClassStrings* strings = nullptr;
+ if (unicode_sets()) {
+ strings = zone()->template New<CharacterClassStrings>(zone());
+ }
+ bool add_unicode_case_equivalents = ignore_case();
+ bool parsed_character_class_escape = TryParseCharacterClassEscape(
+ next, InClassEscapeState::kNotInClass, ranges, strings, zone(),
+ add_unicode_case_equivalents CHECK_FAILED);
+
+ if (parsed_character_class_escape) {
+ if (unicode_sets()) {
+ RegExpClassSetOperand* op =
+ zone()->template New<RegExpClassSetOperand>(ranges,
+ strings);
+ builder->AddTerm(op);
+ } else {
+ RegExpClassRanges* cc =
+ zone()->template New<RegExpClassRanges>(zone(), ranges);
+ builder->AddClassRanges(cc);
+ }
+ } else {
+ CHECK(!IsUnicodeMode());
+ Advance(2);
+ builder->AddCharacter(next); // IdentityEscape.
+ }
+ break;
+ }
// AtomEscape ::
// k GroupName
case 'k': {
@@ -1827,10 +1858,44 @@ bool IsExactPropertyValueAlias(const char* property_value_name,
return false;
}
+void ExtractStringsFromUnicodeSet(const icu::UnicodeSet& set,
+ CharacterClassStrings* strings,
+ RegExpFlags flags, Zone* zone) {
+ DCHECK(set.hasStrings());
+ DCHECK(IsUnicodeSets(flags));
+ DCHECK_NOT_NULL(strings);
+
+ RegExpTextBuilder::SmallRegExpTreeVector string_storage(
+ ZoneAllocator<RegExpTree*>{zone});
+ RegExpTextBuilder string_builder(zone, &string_storage, flags);
+ const bool needs_case_folding = IsIgnoreCase(flags);
+ icu::UnicodeSetIterator iter(set);
+ iter.skipToStrings();
+ while (iter.next()) {
+ const icu::UnicodeString& s = iter.getString();
+ const char16_t* p = s.getBuffer();
+ int32_t length = s.length();
+ ZoneList<base::uc32>* string =
+ zone->template New<ZoneList<base::uc32>>(length, zone);
+ for (int32_t i = 0; i < length;) {
+ UChar32 c;
+ U16_NEXT(p, i, length, c);
+ string_builder.AddUnicodeCharacter(c);
+ if (needs_case_folding) {
+ c = u_foldCase(c, U_FOLD_CASE_DEFAULT);
+ }
+ string->Add(c, zone);
+ }
+ strings->emplace(string->ToVector(), string_builder.ToRegExp());
+ string_storage.clear();
+ }
+}
+
bool LookupPropertyValueName(UProperty property,
const char* property_value_name, bool negate,
- bool needs_case_folding,
- ZoneList<CharacterRange>* result, Zone* zone) {
+ ZoneList<CharacterRange>* result_ranges,
+ CharacterClassStrings* result_strings,
+ RegExpFlags flags, Zone* zone) {
UProperty property_for_lookup = property;
if (property_for_lookup == UCHAR_SCRIPT_EXTENSIONS) {
// For the property Script_Extensions, we have to do the property value
@@ -1854,11 +1919,15 @@ bool LookupPropertyValueName(UProperty property,
bool success = ec == U_ZERO_ERROR && !set.isEmpty();
if (success) {
+ if (set.hasStrings()) {
+ ExtractStringsFromUnicodeSet(set, result_strings, flags, zone);
+ }
+ const bool needs_case_folding = IsUnicodeSets(flags) && IsIgnoreCase(flags);
if (needs_case_folding) CharacterRange::UnicodeSimpleCloseOver(set);
set.removeAllStrings();
if (negate) set.complement();
for (int i = 0; i < set.getRangeCount(); i++) {
- result->Add(
+ result_ranges->Add(
CharacterRange::Range(set.getRangeStart(i), set.getRangeEnd(i)),
zone);
}
@@ -1873,7 +1942,7 @@ inline bool NameEquals(const char* name, const char (&literal)[N]) {
bool LookupSpecialPropertyValueName(const char* name,
ZoneList<CharacterRange>* result,
- bool negate, bool needs_case_folding,
+ bool negate, RegExpFlags flags,
Zone* zone) {
if (NameEquals(name, "Any")) {
if (negate) {
@@ -1888,7 +1957,7 @@ bool LookupSpecialPropertyValueName(const char* name,
zone);
} else if (NameEquals(name, "Assigned")) {
return LookupPropertyValueName(UCHAR_GENERAL_CATEGORY, "Unassigned",
- !negate, needs_case_folding, result, zone);
+ !negate, result, nullptr, flags, zone);
} else {
return false;
}
@@ -1897,7 +1966,7 @@ bool LookupSpecialPropertyValueName(const char* name,
// Explicitly allowlist supported binary properties. The spec forbids supporting
// properties outside of this set to ensure interoperability.
-bool IsSupportedBinaryProperty(UProperty property) {
+bool IsSupportedBinaryProperty(UProperty property, bool unicode_sets) {
switch (property) {
case UCHAR_ALPHABETIC:
// 'Any' is not supported by ICU. See LookupSpecialPropertyValueName.
@@ -1953,6 +2022,30 @@ bool IsSupportedBinaryProperty(UProperty property) {
case UCHAR_XID_CONTINUE:
case UCHAR_XID_START:
return true;
+ case UCHAR_BASIC_EMOJI:
+ case UCHAR_EMOJI_KEYCAP_SEQUENCE:
+ case UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE:
+ case UCHAR_RGI_EMOJI_FLAG_SEQUENCE:
+ case UCHAR_RGI_EMOJI_TAG_SEQUENCE:
+ case UCHAR_RGI_EMOJI_ZWJ_SEQUENCE:
+ case UCHAR_RGI_EMOJI:
+ return unicode_sets;
+ default:
+ break;
+ }
+ return false;
+}
+
+bool IsBinaryPropertyOfStrings(UProperty property) {
+ switch (property) {
+ case UCHAR_BASIC_EMOJI:
+ case UCHAR_EMOJI_KEYCAP_SEQUENCE:
+ case UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE:
+ case UCHAR_RGI_EMOJI_FLAG_SEQUENCE:
+ case UCHAR_RGI_EMOJI_TAG_SEQUENCE:
+ case UCHAR_RGI_EMOJI_ZWJ_SEQUENCE:
+ case UCHAR_RGI_EMOJI:
+ return true;
default:
break;
}
@@ -2015,31 +2108,34 @@ bool RegExpParserImpl<CharT>::ParsePropertyClassName(ZoneVector<char>* name_1,
template <class CharT>
bool RegExpParserImpl<CharT>::AddPropertyClassRange(
- ZoneList<CharacterRange>* add_to, bool negate,
+ ZoneList<CharacterRange>* add_to_ranges,
+ CharacterClassStrings* add_to_strings, bool negate,
const ZoneVector<char>& name_1, const ZoneVector<char>& name_2) {
- // With /vi, we need to apply case folding to property values.
- // TODO(v8:11935): Change permalink once proposal is in stage 4.
- // See
- // https://arai-a.github.io/ecma262-compare/snapshot.html?pr=2418#prod-maybesimplecasefolding
- const bool needs_case_folding = unicode_sets() && ignore_case();
if (name_2.empty()) {
// First attempt to interpret as general category property value name.
const char* name = name_1.data();
if (LookupPropertyValueName(UCHAR_GENERAL_CATEGORY_MASK, name, negate,
- needs_case_folding, add_to, zone())) {
+ add_to_ranges, add_to_strings, flags(),
+ zone())) {
return true;
}
// Interpret "Any", "ASCII", and "Assigned".
- if (LookupSpecialPropertyValueName(name, add_to, negate, needs_case_folding,
+ if (LookupSpecialPropertyValueName(name, add_to_ranges, negate, flags(),
zone())) {
return true;
}
// Then attempt to interpret as binary property name with value name 'Y'.
UProperty property = u_getPropertyEnum(name);
- if (!IsSupportedBinaryProperty(property)) return false;
+ if (!IsSupportedBinaryProperty(property, unicode_sets())) return false;
if (!IsExactPropertyAlias(name, property)) return false;
+ // Negation of properties with strings is not allowed.
+ // TODO(v8:11935): Change permalink once proposal is in stage 4.
+ // See
+ // https://arai-a.github.io/ecma262-compare/snapshot.html?pr=2418#sec-static-semantics-maycontainstrings
+ if (negate && IsBinaryPropertyOfStrings(property)) return false;
return LookupPropertyValueName(property, negate ? "N" : "Y", false,
- needs_case_folding, add_to, zone());
+ add_to_ranges, add_to_strings, flags(),
+ zone());
} else {
// Both property name and value name are specified. Attempt to interpret
// the property name as enumerated property.
@@ -2054,8 +2150,8 @@ bool RegExpParserImpl<CharT>::AddPropertyClassRange(
property != UCHAR_SCRIPT_EXTENSIONS) {
return false;
}
- return LookupPropertyValueName(property, value_name, negate,
- needs_case_folding, add_to, zone());
+ return LookupPropertyValueName(property, value_name, negate, add_to_ranges,
+ add_to_strings, flags(), zone());
}
}
@@ -2069,7 +2165,8 @@ bool RegExpParserImpl<CharT>::ParsePropertyClassName(ZoneVector<char>* name_1,
template <class CharT>
bool RegExpParserImpl<CharT>::AddPropertyClassRange(
- ZoneList<CharacterRange>* add_to, bool negate,
+ ZoneList<CharacterRange>* add_to_ranges,
+ CharacterClassStrings* add_to_strings, bool negate,
const ZoneVector<char>& name_1, const ZoneVector<char>& name_2) {
return false;
}
@@ -2345,8 +2442,9 @@ void RegExpParserImpl<CharT>::ParseClassEscape(
static constexpr InClassEscapeState kInClassEscape =
InClassEscapeState::kInClass;
- *is_class_escape = TryParseCharacterClassEscape(
- next, kInClassEscape, ranges, zone, add_unicode_case_equivalents);
+ *is_class_escape =
+ TryParseCharacterClassEscape(next, kInClassEscape, ranges, nullptr, zone,
+ add_unicode_case_equivalents);
if (*is_class_escape) return;
bool dummy = false; // Unused.
@@ -2357,8 +2455,8 @@ void RegExpParserImpl<CharT>::ParseClassEscape(
template <class CharT>
bool RegExpParserImpl<CharT>::TryParseCharacterClassEscape(
base::uc32 next, InClassEscapeState in_class_escape_state,
- ZoneList<CharacterRange>* ranges, Zone* zone,
- bool add_unicode_case_equivalents) {
+ ZoneList<CharacterRange>* ranges, CharacterClassStrings* strings,
+ Zone* zone, bool add_unicode_case_equivalents) {
DCHECK_EQ(current(), '\\');
DCHECK_EQ(Next(), next);
@@ -2382,7 +2480,7 @@ bool RegExpParserImpl<CharT>::TryParseCharacterClassEscape(
ZoneVector<char> name_1(zone);
ZoneVector<char> name_2(zone);
if (!ParsePropertyClassName(&name_1, &name_2) ||
- !AddPropertyClassRange(ranges, negate, name_1, name_2)) {
+ !AddPropertyClassRange(ranges, strings, negate, name_1, name_2)) {
ReportError(in_class_escape_state == InClassEscapeState::kInClass
? RegExpError::kInvalidClassPropertyName
: RegExpError::kInvalidPropertyName);
@@ -2521,8 +2619,8 @@ RegExpTree* RegExpParserImpl<CharT>::ParseClassSetOperand(
static constexpr InClassEscapeState kInClassEscape =
InClassEscapeState::kInClass;
const bool add_unicode_case_equivalents = ignore_case();
- if (TryParseCharacterClassEscape(next, kInClassEscape, ranges, zone(),
- add_unicode_case_equivalents)) {
+ if (TryParseCharacterClassEscape(next, kInClassEscape, ranges, strings,
+ zone(), add_unicode_case_equivalents)) {
*type_out = ClassSetOperandType::kCharacterClassEscape;
return nullptr;
}
diff --git a/test/test262/test262.status b/test/test262/test262.status
index be60b2f8e46..48d24548df4 100644
--- a/v8/test/test262/test262.status
+++ b/v8/test/test262/test262.status
@@ -294,70 +294,6 @@
# See also https://github.com/tc39/test262/issues/3380
'built-ins/TypedArray/prototype/map/callbackfn-resize': [FAIL],
- # https://bugs.chromium.org/p/v8/issues/detail?id=11935
- # regexp-v-flag not yet fully implemented.
- 'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-u': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-union-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-union-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-property-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-string-literal': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-property-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-string-literal': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-property-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-string-literal': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-union-property-of-strings-escape': [SKIP],
-
# https://bugs.chromium.org/p/v8/issues/detail?id=13173
'built-ins/RegExp/duplicate-named-capturing-groups-syntax': [FAIL],
'built-ins/RegExp/named-groups/duplicate-names-group-property-enumeration-order': [FAIL],
@@ -1011,35 +947,68 @@
'built-ins/RegExp/property-escapes/*': [SKIP],
'built-ins/RegExp/named-groups/unicode-property-names': [SKIP],
'built-ins/RegExp/named-groups/unicode-property-names-valid': [SKIP],
- 'built-ins/RegExp/named-groups/non-unicode-property-names-valid': [FAIL],
+ 'built-ins/RegExp/named-groups/non-unicode-property-names-valid': [SKIP],
'built-ins/RegExp/match-indices/indices-array-unicode-property-names': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-difference-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-class-union-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-difference-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-intersection-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-string-literal': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-string-literal': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-string-literal': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-union-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-union-character-property-escape': [PASS,FAIL],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-union-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-union-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-union-property-of-strings-escape': [SKIP],
# Unicode in identifiers.
'language/identifiers/part-unicode-*': [FAIL],