From 01550ab13adc429652d40beaa39319ff4f25dc57 Mon Sep 17 00:00:00 2001 From: Mathias Bynens Date: Tue, 6 Nov 2018 15:24:07 -0800 Subject: [PATCH 1/2] Sync with https://github.com/bocoup/test262-regexp-generator/pull/1 --- .../character-class-digit-class-escape-flags-u.js | 9 +++++---- ...r-class-digit-class-escape-plus-quantifier-flags-u.js | 9 +++++---- ...character-class-digit-class-escape-plus-quantifier.js | 9 +++++---- .../character-class-digit-class-escape.js | 9 +++++---- .../character-class-non-digit-class-escape-flags-u.js | 9 +++++---- ...ass-non-digit-class-escape-plus-quantifier-flags-u.js | 9 +++++---- ...acter-class-non-digit-class-escape-plus-quantifier.js | 9 +++++---- .../character-class-non-digit-class-escape.js | 9 +++++---- ...haracter-class-non-whitespace-class-escape-flags-u.js | 9 +++++---- ...on-whitespace-class-escape-plus-quantifier-flags-u.js | 9 +++++---- ...-class-non-whitespace-class-escape-plus-quantifier.js | 9 +++++---- .../character-class-non-whitespace-class-escape.js | 9 +++++---- .../character-class-non-word-class-escape-flags-u.js | 9 +++++---- ...lass-non-word-class-escape-plus-quantifier-flags-u.js | 9 +++++---- ...racter-class-non-word-class-escape-plus-quantifier.js | 9 +++++---- .../character-class-non-word-class-escape.js | 9 +++++---- .../character-class-whitespace-class-escape-flags-u.js | 9 +++++---- ...ss-whitespace-class-escape-plus-quantifier-flags-u.js | 9 +++++---- ...cter-class-whitespace-class-escape-plus-quantifier.js | 9 +++++---- .../character-class-whitespace-class-escape.js | 9 +++++---- .../character-class-word-class-escape-flags-u.js | 9 +++++---- ...er-class-word-class-escape-plus-quantifier-flags-u.js | 9 +++++---- .../character-class-word-class-escape-plus-quantifier.js | 9 +++++---- .../character-class-word-class-escape.js | 9 +++++---- 24 files changed, 120 insertions(+), 96 deletions(-) diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js index 068e805782..c838bca615 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Digit class escape, \\d with flags ug + Compare range for digit class escape \d with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\d/ug; const matchingRange = /[0-9]/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js index b50ccca0c2..ac598b437d 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Digit class escape, \\d+ with flags ug + Compare range for digit class escape \d+ with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\d+/ug; const matchingRange = /[0-9]+/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js index 9463332f41..f2dcbe46e9 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Digit class escape, \\d+ with flags g + Compare range for digit class escape \d+ with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\d+/g; const matchingRange = /[0-9]+/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js index 1d1a24bbb2..78dd8e936e 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Digit class escape, \\d with flags g + Compare range for digit class escape \d with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\d/g; const matchingRange = /[0-9]/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js index 4728762a40..a8102a0350 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non Digit class escape, \\D with flags ug + Compare range for non-digit class escape \D with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\D/ug; const matchingRange = /[\0-\/:-\u{10FFFF}]/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js index 726d595714..eae375fa07 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non Digit class escape, \\D+ with flags ug + Compare range for non-digit class escape \D+ with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\D+/ug; const matchingRange = /[\0-\/:-\u{10FFFF}]+/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js index 56a61ec444..e904d4a37c 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non Digit class escape, \\D+ with flags g + Compare range for non-digit class escape \D+ with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\D+/g; const matchingRange = /[\0-\/:-\uFFFF]+/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js index 4da365aeb7..5b875ad979 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non Digit class escape, \\D with flags g + Compare range for non-digit class escape \D with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\D/g; const matchingRange = /[\0-\/:-\uFFFF]/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js index 75f85b7ab4..c556f97227 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non whitespace class escape, \\S with flags ug + Compare range for non-whitespace class escape \S with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\S/ug; const matchingRange = /[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uFEFE\uFF00-\u{10FFFF}]/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js index ce20f50295..4d41030e60 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non whitespace class escape, \\S+ with flags ug + Compare range for non-whitespace class escape \S+ with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\S+/ug; const matchingRange = /[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uFEFE\uFF00-\u{10FFFF}]+/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js index 95e37779a2..1e3693d73c 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non whitespace class escape, \\S+ with flags g + Compare range for non-whitespace class escape \S+ with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\S+/g; const matchingRange = /[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uFEFE\uFF00-\uFFFF]+/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js index 7b6dc6a875..aef69487e5 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non whitespace class escape, \\S with flags g + Compare range for non-whitespace class escape \S with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\S/g; const matchingRange = /[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uFEFE\uFF00-\uFFFF]/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js index b1e689dafc..3d69a295ff 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non Word class escape, \\W with flags ug + Compare range for non-word class escape \W with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\W/ug; const matchingRange = /[\0-\/:-@\[-\^`\{-\u{10FFFF}]/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js index 23e7c1fec2..04d42ba10e 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non Word class escape, \\W+ with flags ug + Compare range for non-word class escape \W+ with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\W+/ug; const matchingRange = /[\0-\/:-@\[-\^`\{-\u{10FFFF}]+/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js index 412b05287c..42c283add9 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non Word class escape, \\W+ with flags g + Compare range for non-word class escape \W+ with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\W+/g; const matchingRange = /[\0-\/:-@\[-\^`\{-\uFFFF]+/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js index 99051f994c..7a153a68dc 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Non Word class escape, \\W with flags g + Compare range for non-word class escape \W with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\W/g; const matchingRange = /[\0-\/:-@\[-\^`\{-\uFFFF]/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js index 0cfd5f7daa..e9afee2a98 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Whitespace class escape, \\s with flags ug + Compare range for whitespace class escape \s with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\s/ug; const matchingRange = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js index fc3c1c28ea..696ae4a3d3 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Whitespace class escape, \\s+ with flags ug + Compare range for whitespace class escape \s+ with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\s+/ug; const matchingRange = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js index 3f03f1a8eb..b0717963d2 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Whitespace class escape, \\s+ with flags g + Compare range for whitespace class escape \s+ with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\s+/g; const matchingRange = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js index d31b85699b..9d16ed897f 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Whitespace class escape, \\s with flags g + Compare range for whitespace class escape \s with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\s/g; const matchingRange = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js index d7406fe450..a5e8dd8cc5 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Word class escape, \\w with flags ug + Compare range for word class escape \w with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\w/ug; const matchingRange = /[0-9A-Z_a-z]/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js index 10978d7b93..535383115d 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Word class escape, \\w+ with flags ug + Compare range for word class escape \w+ with flags ug info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0x10FFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); const re = /\w+/ug; const matchingRange = /[0-9A-Z_a-z]+/ug; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js index 82884b7333..15c67f8d81 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Word class escape, \\w+ with flags g + Compare range for word class escape \w+ with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\w+/g; const matchingRange = /[0-9A-Z_a-z]+/g; diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js index d5f87b9e69..b058590c78 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js @@ -4,9 +4,10 @@ /*--- esid: prod-CharacterClassEscape description: > - Compare range for Word class escape, \\w with flags g + Compare range for word class escape \w with flags g info: | - This is a generated test, please checkout https://github.com/bocoup/test262-regexp-generator + This is a generated test. Please check out + https://github.com/bocoup/test262-regexp-generator for any changes. CharacterClassEscape[U] :: @@ -18,7 +19,7 @@ info: | W 21.2.2.12 CharacterClassEscape - + The production CharacterClassEscape :: d evaluates as follows: Return the ten-element set of characters containing the characters 0 through 9 inclusive. The production CharacterClassEscape :: D evaluates as follows: @@ -36,7 +37,7 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({loneCodePoints: [], ranges: [[0, 0xFFFF]]}); +const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); const re = /\w/g; const matchingRange = /[0-9A-Z_a-z]/g; From e558b29b693970f553cdd24227ed2c576336cf92 Mon Sep 17 00:00:00 2001 From: Mathias Bynens Date: Tue, 6 Nov 2018 16:14:14 -0800 Subject: [PATCH 2/2] Optimize character class escape tests Previously, these tests simply compared against an equivalent regular expression pattern by generating a large string containing either all code points up to U+FFFF or U+10FFFF, depending on the `u` flag, and then performing: str.replace(re, '') === str.replace(otherRe, ''); These two `String#replace` calls can be optimized into a single `RegExp#test` call by following the pattern used in the property escapes tests at https://github.com/mathiasbynens/unicode-property-escapes-tests. --- ...racter-class-digit-class-escape-flags-u.js | 16 +++++------ ...it-class-escape-plus-quantifier-flags-u.js | 16 +++++------ ...lass-digit-class-escape-plus-quantifier.js | 16 +++++------ .../character-class-digit-class-escape.js | 16 +++++------ ...er-class-non-digit-class-escape-flags-u.js | 17 +++++------ ...it-class-escape-plus-quantifier-flags-u.js | 17 +++++------ ...-non-digit-class-escape-plus-quantifier.js | 17 +++++------ .../character-class-non-digit-class-escape.js | 17 +++++------ ...ass-non-whitespace-class-escape-flags-u.js | 28 +++++++++++++------ ...ce-class-escape-plus-quantifier-flags-u.js | 28 +++++++++++++------ ...whitespace-class-escape-plus-quantifier.js | 28 +++++++++++++------ ...acter-class-non-whitespace-class-escape.js | 28 +++++++++++++------ ...ter-class-non-word-class-escape-flags-u.js | 21 ++++++++------ ...rd-class-escape-plus-quantifier-flags-u.js | 21 ++++++++------ ...s-non-word-class-escape-plus-quantifier.js | 21 ++++++++------ .../character-class-non-word-class-escape.js | 21 ++++++++------ ...r-class-whitespace-class-escape-flags-u.js | 26 +++++++++++------ ...ce-class-escape-plus-quantifier-flags-u.js | 26 +++++++++++------ ...whitespace-class-escape-plus-quantifier.js | 26 +++++++++++------ ...character-class-whitespace-class-escape.js | 26 +++++++++++------ ...aracter-class-word-class-escape-flags-u.js | 18 ++++++------ ...rd-class-escape-plus-quantifier-flags-u.js | 18 ++++++------ ...class-word-class-escape-plus-quantifier.js | 18 ++++++------ .../character-class-word-class-escape.js | 18 ++++++------ 24 files changed, 312 insertions(+), 192 deletions(-) diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js index c838bca615..de3c16f4e5 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js @@ -37,21 +37,21 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x0030, 0x0039], + ], +}); const re = /\d/ug; -const matchingRange = /[0-9]/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js index ac598b437d..1c6462e766 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js @@ -37,21 +37,21 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x0030, 0x0039], + ], +}); const re = /\d+/ug; -const matchingRange = /[0-9]+/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js index f2dcbe46e9..66418758b7 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js @@ -37,21 +37,21 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x0030, 0x0039], + ], +}); const re = /\d+/g; -const matchingRange = /[0-9]+/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js index 78dd8e936e..090e5a7e9a 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js @@ -37,21 +37,21 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x0030, 0x0039], + ], +}); const re = /\d/g; -const matchingRange = /[0-9]/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js index a8102a0350..e9385c0004 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js @@ -37,21 +37,22 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x000000, 0x00002F], + [0x00003A, 0x10FFFF], + ], +}); const re = /\D/ug; -const matchingRange = /[\0-\/:-\u{10FFFF}]/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js index eae375fa07..bf534de854 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js @@ -37,21 +37,22 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x000000, 0x00002F], + [0x00003A, 0x10FFFF], + ], +}); const re = /\D+/ug; -const matchingRange = /[\0-\/:-\u{10FFFF}]+/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js index e904d4a37c..0c2c703ae8 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js @@ -37,21 +37,22 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x000000, 0x00002F], + [0x00003A, 0x00FFFF], + ], +}); const re = /\D+/g; -const matchingRange = /[\0-\/:-\uFFFF]+/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js index 5b875ad979..ac626beb49 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js @@ -37,21 +37,22 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x000000, 0x00002F], + [0x00003A, 0x00FFFF], + ], +}); const re = /\D/g; -const matchingRange = /[\0-\/:-\uFFFF]/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js index c556f97227..d635f47092 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js @@ -37,21 +37,33 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x00DC00, 0x00DFFF], + [0x000000, 0x000008], + [0x00000E, 0x00001F], + [0x000021, 0x00009F], + [0x0000A1, 0x00167F], + [0x001681, 0x001FFF], + [0x00200B, 0x002027], + [0x00202A, 0x00202E], + [0x002030, 0x00205E], + [0x002060, 0x002FFF], + [0x003001, 0x00DBFF], + [0x00E000, 0x00FEFE], + [0x00FF00, 0x10FFFF], + ], +}); const re = /\S/ug; -const matchingRange = /[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uFEFE\uFF00-\u{10FFFF}]/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js index 4d41030e60..1275d209c9 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js @@ -37,21 +37,33 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x00DC00, 0x00DFFF], + [0x000000, 0x000008], + [0x00000E, 0x00001F], + [0x000021, 0x00009F], + [0x0000A1, 0x00167F], + [0x001681, 0x001FFF], + [0x00200B, 0x002027], + [0x00202A, 0x00202E], + [0x002030, 0x00205E], + [0x002060, 0x002FFF], + [0x003001, 0x00DBFF], + [0x00E000, 0x00FEFE], + [0x00FF00, 0x10FFFF], + ], +}); const re = /\S+/ug; -const matchingRange = /[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uFEFE\uFF00-\u{10FFFF}]+/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js index 1e3693d73c..f70d16c78f 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js @@ -37,21 +37,33 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x00DC00, 0x00DFFF], + [0x000000, 0x000008], + [0x00000E, 0x00001F], + [0x000021, 0x00009F], + [0x0000A1, 0x00167F], + [0x001681, 0x001FFF], + [0x00200B, 0x002027], + [0x00202A, 0x00202E], + [0x002030, 0x00205E], + [0x002060, 0x002FFF], + [0x003001, 0x00DBFF], + [0x00E000, 0x00FEFE], + [0x00FF00, 0x00FFFF], + ], +}); const re = /\S+/g; -const matchingRange = /[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uFEFE\uFF00-\uFFFF]+/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js index aef69487e5..a605b0b132 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js @@ -37,21 +37,33 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [], + ranges: [ + [0x00DC00, 0x00DFFF], + [0x000000, 0x000008], + [0x00000E, 0x00001F], + [0x000021, 0x00009F], + [0x0000A1, 0x00167F], + [0x001681, 0x001FFF], + [0x00200B, 0x002027], + [0x00202A, 0x00202E], + [0x002030, 0x00205E], + [0x002060, 0x002FFF], + [0x003001, 0x00DBFF], + [0x00E000, 0x00FEFE], + [0x00FF00, 0x00FFFF], + ], +}); const re = /\S/g; -const matchingRange = /[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uFEFE\uFF00-\uFFFF]/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js index 3d69a295ff..9eb98145d1 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js @@ -37,21 +37,26 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [0x000060], + ranges: [ + [0x00DC00, 0x00DFFF], + [0x000000, 0x00002F], + [0x00003A, 0x000040], + [0x00005B, 0x00005E], + [0x00007B, 0x00DBFF], + [0x00E000, 0x10FFFF], + ], +}); const re = /\W/ug; -const matchingRange = /[\0-\/:-@\[-\^`\{-\u{10FFFF}]/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js index 04d42ba10e..080aeec12f 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js @@ -37,21 +37,26 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [0x000060], + ranges: [ + [0x00DC00, 0x00DFFF], + [0x000000, 0x00002F], + [0x00003A, 0x000040], + [0x00005B, 0x00005E], + [0x00007B, 0x00DBFF], + [0x00E000, 0x10FFFF], + ], +}); const re = /\W+/ug; -const matchingRange = /[\0-\/:-@\[-\^`\{-\u{10FFFF}]+/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js index 42c283add9..8b04bdf927 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js @@ -37,21 +37,26 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [0x000060], + ranges: [ + [0x00DC00, 0x00DFFF], + [0x000000, 0x00002F], + [0x00003A, 0x000040], + [0x00005B, 0x00005E], + [0x00007B, 0x00DBFF], + [0x00E000, 0x00FFFF], + ], +}); const re = /\W+/g; -const matchingRange = /[\0-\/:-@\[-\^`\{-\uFFFF]+/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js index 7a153a68dc..477df9f72e 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js @@ -37,21 +37,26 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [0x000060], + ranges: [ + [0x00DC00, 0x00DFFF], + [0x000000, 0x00002F], + [0x00003A, 0x000040], + [0x00005B, 0x00005E], + [0x00007B, 0x00DBFF], + [0x00E000, 0x00FFFF], + ], +}); const re = /\W/g; -const matchingRange = /[\0-\/:-@\[-\^`\{-\uFFFF]/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js index e9afee2a98..185e25dcb2 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js @@ -37,21 +37,31 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [ + 0x000020, + 0x0000A0, + 0x001680, + 0x00202F, + 0x00205F, + 0x003000, + 0x00FEFF, + ], + ranges: [ + [0x000009, 0x00000D], + [0x002000, 0x00200A], + [0x002028, 0x002029], + ], +}); const re = /\s/ug; -const matchingRange = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js index 696ae4a3d3..1a9bdf0d7f 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js @@ -37,21 +37,31 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [ + 0x000020, + 0x0000A0, + 0x001680, + 0x00202F, + 0x00205F, + 0x003000, + 0x00FEFF, + ], + ranges: [ + [0x000009, 0x00000D], + [0x002000, 0x00200A], + [0x002028, 0x002029], + ], +}); const re = /\s+/ug; -const matchingRange = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js index b0717963d2..0d10492a9e 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js @@ -37,21 +37,31 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [ + 0x000020, + 0x0000A0, + 0x001680, + 0x00202F, + 0x00205F, + 0x003000, + 0x00FEFF, + ], + ranges: [ + [0x000009, 0x00000D], + [0x002000, 0x00200A], + [0x002028, 0x002029], + ], +}); const re = /\s+/g; -const matchingRange = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js index 9d16ed897f..1d024382a5 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js @@ -37,21 +37,31 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [ + 0x000020, + 0x0000A0, + 0x001680, + 0x00202F, + 0x00205F, + 0x003000, + 0x00FEFF, + ], + ranges: [ + [0x000009, 0x00000D], + [0x002000, 0x00200A], + [0x002028, 0x002029], + ], +}); const re = /\s/g; -const matchingRange = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js index a5e8dd8cc5..9bc78b3408 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js @@ -37,21 +37,23 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [0x00005F], + ranges: [ + [0x000030, 0x000039], + [0x000041, 0x00005A], + [0x000061, 0x00007A], + ], +}); const re = /\w/ug; -const matchingRange = /[0-9A-Z_a-z]/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js index 535383115d..6ce6c2c781 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js @@ -37,21 +37,23 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0x10FFFF]] }); +const str = buildString({ + loneCodePoints: [0x00005F], + ranges: [ + [0x000030, 0x000039], + [0x000041, 0x00005A], + [0x000061, 0x00007A], + ], +}); const re = /\w+/ug; -const matchingRange = /[0-9A-Z_a-z]+/ug; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js index 15c67f8d81..a80b5c7336 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js @@ -37,21 +37,23 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [0x00005F], + ranges: [ + [0x000030, 0x000039], + [0x000041, 0x00005A], + [0x000061, 0x00007A], + ], +}); const re = /\w+/g; -const matchingRange = /[0-9A-Z_a-z]+/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } } diff --git a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js index b058590c78..879c9ae340 100644 --- a/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js +++ b/test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js @@ -37,21 +37,23 @@ features: [String.fromCodePoint] includes: [regExpUtils.js] ---*/ -const str = buildString({ loneCodePoints: [], ranges: [[0, 0xFFFF]] }); +const str = buildString({ + loneCodePoints: [0x00005F], + ranges: [ + [0x000030, 0x000039], + [0x000041, 0x00005A], + [0x000061, 0x00007A], + ], +}); const re = /\w/g; -const matchingRange = /[0-9A-Z_a-z]/g; const errors = []; -function matching(str) { - return str.replace(re, '') === str.replace(matchingRange, ''); -} - -if (!matching(str)) { +if (!re.test(str)) { // Error, let's find out where for (const char of str) { - if (!matching(char)) { + if (!re.test(char)) { errors.push('0x' + char.codePointAt(0).toString(16)); } }