mirror of
https://github.com/bellard/quickjs.git
synced 2024-11-24 06:38:12 +08:00
72 lines
2.1 KiB
Diff
72 lines
2.1 KiB
Diff
diff --git a/harness/atomicsHelper.js b/harness/atomicsHelper.js
|
|
index 9c1217351e..3c24755558 100644
|
|
--- a/harness/atomicsHelper.js
|
|
+++ b/harness/atomicsHelper.js
|
|
@@ -227,10 +227,14 @@ $262.agent.waitUntil = function(typedArray, index, expected) {
|
|
* }
|
|
*/
|
|
$262.agent.timeouts = {
|
|
- yield: 100,
|
|
- small: 200,
|
|
- long: 1000,
|
|
- huge: 10000,
|
|
+// yield: 100,
|
|
+// small: 200,
|
|
+// long: 1000,
|
|
+// huge: 10000,
|
|
+ yield: 20,
|
|
+ small: 20,
|
|
+ long: 100,
|
|
+ huge: 1000,
|
|
};
|
|
|
|
/**
|
|
diff --git a/harness/regExpUtils.js b/harness/regExpUtils.js
|
|
index be7039fda0..7b38abf8df 100644
|
|
--- a/harness/regExpUtils.js
|
|
+++ b/harness/regExpUtils.js
|
|
@@ -6,24 +6,27 @@ description: |
|
|
defines: [buildString, testPropertyEscapes, matchValidator]
|
|
---*/
|
|
|
|
+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 }) {
|
|
- const CHUNK_SIZE = 10000;
|
|
- let result = Reflect.apply(String.fromCodePoint, null, loneCodePoints);
|
|
- for (let i = 0; i < ranges.length; i++) {
|
|
- const range = ranges[i];
|
|
- const start = range[0];
|
|
- const end = range[1];
|
|
- const codePoints = [];
|
|
- for (let length = 0, codePoint = start; codePoint <= end; codePoint++) {
|
|
- codePoints[length++] = codePoint;
|
|
- if (length === CHUNK_SIZE) {
|
|
- result += Reflect.apply(String.fromCodePoint, null, codePoints);
|
|
- codePoints.length = length = 0;
|
|
- }
|
|
+ let result = String.fromCodePoint.apply(null, loneCodePoints);
|
|
+ for (const [start, end] of ranges) {
|
|
+ result += codePointRange(start, end + 1);
|
|
}
|
|
- result += Reflect.apply(String.fromCodePoint, null, codePoints);
|
|
- }
|
|
- return result;
|
|
+ return result;
|
|
}
|
|
|
|
function testPropertyEscapes(regex, string, expression) {
|