dust3d/thirdparty/quickjs/quickjs-2019-07-09-dust3d/tests/test262.patch

684 lines
31 KiB
Diff

diff --git a/harness/doneprintHandle.js b/harness/doneprintHandle.js
index 2b4ab88..6c95f9f 100644
--- a/harness/doneprintHandle.js
+++ b/harness/doneprintHandle.js
@@ -11,7 +11,7 @@ function __consolePrintHandle__(msg){
function $DONE(){
if(!arguments[0])
- __consolePrintHandle__('Test262:AsyncTestComplete');
+ $async_done = true;
else
- __consolePrintHandle__('Test262:AsyncTestFailure:' + arguments[0]);
+ __consolePrintHandle__('Error:' + arguments[0]);
}
diff --git a/harness/regExpUtils.js b/harness/regExpUtils.js
index 362a6d16..d3dde03 100644
--- a/harness/regExpUtils.js
+++ b/harness/regExpUtils.js
@@ -5,6 +5,7 @@ description: |
Collection of functions used to assert the correctness of RegExp objects.
---*/
+/*
function buildString({ loneCodePoints, ranges }) {
const CHUNK_SIZE = 10000;
let result = String.fromCodePoint(...loneCodePoints);
@@ -21,6 +22,32 @@ function buildString({ loneCodePoints, ranges }) {
}
return result;
}
+*/
+
+var codePointRange;
+
+if ($262 && typeof $262.codePointRange === "function") {
+ /* use C function to build the codePointRange (much faster with
+ slow JS engines) */
+ codePointRange = $262.codePointRange;
+} else {
+ codePointRange = function codePointRange(start, end) {
+ const codePoints = [];
+ let length = 0;
+ for (codePoint = start; codePoint < end; codePoint++) {
+ codePoints[length++] = codePoint;
+ }
+ return String.fromCodePoint.apply(null, codePoints);
+ }
+}
+
+function buildString({ loneCodePoints, ranges }) {
+ let result = String.fromCodePoint.apply(null, loneCodePoints);
+ for (const [start, end] of ranges) {
+ result += codePointRange(start, end + 1);
+ }
+ return result;
+}
function testPropertyEscapes(regex, string, expression) {
if (!regex.test(string)) {
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 652ef43..8d1a7ed 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\d/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 8683600..36d9f1c 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\d+/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 20d6b38..e9c91f8 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\d+/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 d3aef45..b2c949b 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\d/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 ead3d68..beaf9cf 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\D/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 5c02690..0030b23 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\D+/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 960d9cf..b663be0 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\D+/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 85b1dcc..dcbd2eb 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\D/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 eda913b..cb57074 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\S/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 8e21a55..026309c 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\S+/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 f7cc4a3..98cfdff 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\S+/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 3bca8ae..4ec88be 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\S/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 3da454a..0a94a16 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\W/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 7e7faad..0a10667 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\W+/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 41ffa53..55447f8 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\W+/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 ca47608..c1580cb 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\W/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 82bb950..ac17d3b 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\s/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 7a3b57d..f74a350 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\s+/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 e1084ff..ba93158 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\s+/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 d1a3fda..0de155f 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\s/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 0b8b183..2ccf8bf 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\w/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 d824426..b389118 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0x10ffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0x10FFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0x10ffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\w+/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 bafffd7..334290d 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\w+/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 cba30b0..afc5615 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
@@ -33,14 +33,16 @@ info: |
The production CharacterClassEscape :: W evaluates as follows:
Return the set of all characters not included in the set returned by CharacterClassEscape :: w.
features: [String.fromCodePoint]
+includes: [regExpUtils.js]
---*/
const chunks = [];
-const totalChunks = Math.ceil(0xffff / 0x10000);
-
-for (let codePoint = 0; codePoint < 0xFFFF; codePoint++) {
- // split strings to avoid a super long one;
- chunks[codePoint % totalChunks] += String.fromCodePoint(codePoint);
+const lastCodePoint = 0xffff;
+let codePoint = 0;
+while (codePoint <= lastCodePoint) {
+ let n = Math.min(0x10000, lastCodePoint - codePoint + 1);
+ chunks.push(codePointRange(codePoint, codePoint + n));
+ codePoint += n;
}
const re = /\w/g;