Skip to content
Snippets Groups Projects
Commit d7d154b3 authored by André Bargull's avatar André Bargull Committed by Rick Waldron
Browse files

Remove requirement that ToNumber(value) completes in less than $262.agent.MAX_TIME_EPSILON

$262.agent.MAX_TIME_EPSILON was intended to be used for callers like `Atomics.wait(typedArray, indexNumber, valueNumber, timeoutNumber)` where all parameters with the `Number` suffix denote values which are already Number values. It should not be used for `Atomics.wait(typedArray, indexObject, valueObject, timeoutObject)` where all parameters with the `Object` suffix denote values which are Object values, because in that case we'd require that `ToNumber(objectValue)` (potentially invoked multiple times) completes in less than 100 milliseconds (the default value for MAX_TIME_EPSILON).

Also removes $262.agent.MAX_TIME_EPSILON because it is now no longer used.
parent ab436c46
No related branches found
No related tags found
No related merge requests found
Showing with 0 additions and 85 deletions
......@@ -5,13 +5,6 @@ description: >
Collection of functions used to interact with Atomics.* operations across agent boundaries.
---*/
/**
* The amount of slack allowed for testing time-related Atomics methods (i.e. wait and notify).
* The absolute value of the difference of the observed time and the expected time must
* be epsilon-close.
*/
$262.agent.MAX_TIME_EPSILON = 100;
/**
* @return {String} A report sent from an agent.
*/
......
......@@ -35,16 +35,13 @@ $262.agent.start(`
const i64a = new BigInt64Array(sab);
Atomics.add(i64a, ${RUNNING}, 1n);
const before = $262.agent.monotonicNow();
const status1 = Atomics.wait(i64a, 0, 0n, false);
const status2 = Atomics.wait(i64a, 0, 0n, valueOf);
const status3 = Atomics.wait(i64a, 0, 0n, toPrimitive);
const duration = $262.agent.monotonicNow() - before;
$262.agent.report(status1);
$262.agent.report(status2);
$262.agent.report(status3);
$262.agent.report(duration);
$262.agent.leaving();
});
`);
......@@ -75,10 +72,4 @@ assert.sameValue(
'$262.agent.getReport() returns "timed-out"'
);
const lapse = $262.agent.getReport();
assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (timeout should be a min of 0ms)');
assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true');
assert.sameValue(Atomics.notify(i64a, 0), 0, 'Atomics.notify(i64a, 0) returns 0');
......@@ -35,16 +35,13 @@ $262.agent.start(`
const i32a = new Int32Array(sab);
Atomics.add(i32a, ${RUNNING}, 1);
const before = $262.agent.monotonicNow();
const status1 = Atomics.wait(i32a, 0, 0, false);
const status2 = Atomics.wait(i32a, 0, 0, valueOf);
const status3 = Atomics.wait(i32a, 0, 0, toPrimitive);
const duration = $262.agent.monotonicNow() - before;
$262.agent.report(status1);
$262.agent.report(status2);
$262.agent.report(status3);
$262.agent.report(duration);
$262.agent.leaving();
});
`);
......@@ -75,10 +72,4 @@ assert.sameValue(
'$262.agent.getReport() returns "timed-out"'
);
const lapse = $262.agent.getReport();
assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (timeout should be a min of 0ms)');
assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true');
assert.sameValue(Atomics.notify(i32a, 0), 0, 'Atomics.notify(i32a, 0) returns 0');
......@@ -35,16 +35,13 @@ $262.agent.start(`
const i32a = new Int32Array(sab);
Atomics.add(i32a, ${RUNNING}, 1);
const before = $262.agent.monotonicNow();
const status1 = Atomics.wait(i32a, 0, 0, null);
const status2 = Atomics.wait(i32a, 0, 0, valueOf);
const status3 = Atomics.wait(i32a, 0, 0, toPrimitive);
const duration = $262.agent.monotonicNow() - before;
$262.agent.report(status1);
$262.agent.report(status2);
$262.agent.report(status3);
$262.agent.report(duration);
$262.agent.leaving();
});
`);
......@@ -75,10 +72,4 @@ assert.sameValue(
'$262.agent.getReport() returns "timed-out"'
);
const lapse = $262.agent.getReport();
assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (timeout should be a min of 0ms)');
assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $262.agent.MAX_TIME_EPSILON)');
assert.sameValue(Atomics.notify(i32a, 0), 0, 'Atomics.notify(i32a, 0) returns 0');
......@@ -41,16 +41,13 @@ $262.agent.start(`
const i32a = new Int32Array(sab);
Atomics.add(i32a, ${RUNNING}, 1);
const before = $262.agent.monotonicNow();
const status1 = Atomics.wait(i32a, 0, 0, valueOf);
const status2 = Atomics.wait(i32a, 0, 0, toString);
const status3 = Atomics.wait(i32a, 0, 0, toPrimitive);
const duration = $262.agent.monotonicNow() - before;
$262.agent.report(status1);
$262.agent.report(status2);
$262.agent.report(status3);
$262.agent.report(duration);
$262.agent.leaving();
});
`);
......@@ -81,10 +78,4 @@ assert.sameValue(
'$262.agent.getReport() returns "timed-out"'
);
const lapse = $262.agent.getReport();
assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (timeout should be a min of 0ms)');
assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON)');
assert.sameValue(Atomics.notify(i32a, 0), 0, 'Atomics.notify(i32a, 0) returns 0');
......@@ -38,7 +38,6 @@ $262.agent.start(`
let status1 = "";
let status2 = "";
const start = $262.agent.monotonicNow();
try {
Atomics.wait(i32a, 0, 0, poisonedValueOf);
} catch (error) {
......@@ -49,11 +48,9 @@ $262.agent.start(`
} catch (error) {
status2 = "poisonedToPrimitive";
}
const duration = $262.agent.monotonicNow() - start;
$262.agent.report(status1);
$262.agent.report(status2);
$262.agent.report(duration);
$262.agent.leaving();
});
`);
......@@ -79,10 +76,4 @@ assert.sameValue(
'$262.agent.getReport() returns "poisonedToPrimitive"'
);
const lapse = $262.agent.getReport();
assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (timeout should be a min of 0ms)');
assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON)');
assert.sameValue(Atomics.notify(i32a, 0), 0, 'Atomics.notify(i32a, 0) returns 0');
......@@ -51,7 +51,6 @@ $262.agent.start(`
let status1 = "";
let status2 = "";
const start = $262.agent.monotonicNow();
try {
Atomics.wait(i32a, Symbol("1"), poisonedValueOf, poisonedValueOf);
} catch (error) {
......@@ -62,11 +61,9 @@ $262.agent.start(`
} catch (error) {
status2 = 'Symbol("2")';
}
const duration = $262.agent.monotonicNow() - start;
$262.agent.report(status1);
$262.agent.report(status2);
$262.agent.report(duration);
$262.agent.leaving();
});
`);
......@@ -92,9 +89,4 @@ assert.sameValue(
'$262.agent.getReport() returns "Symbol("2")"'
);
const lapse = $262.agent.getReport();
assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (The result of `(lapse >= 0)` is true (timeout should be a min of 0ms))');
assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON))');
assert.sameValue(Atomics.notify(i32a, 0), 0, 'Atomics.notify(i32a, 0) returns 0');
......@@ -26,7 +26,6 @@ $262.agent.start(`
let status1 = "";
let status2 = "";
const start = $262.agent.monotonicNow();
try {
Atomics.wait(i32a, 0, 0, Symbol("1"));
} catch (error) {
......@@ -37,11 +36,9 @@ $262.agent.start(`
} catch (error) {
status2 = 'Symbol("2")';
}
const duration = $262.agent.monotonicNow() - start;
$262.agent.report(status1);
$262.agent.report(status2);
$262.agent.report(duration);
$262.agent.leaving();
});
`);
......@@ -67,9 +64,4 @@ assert.sameValue(
'$262.agent.getReport() returns "Symbol("2")"'
);
const lapse = $262.agent.getReport();
assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (timeout should be a min of 0ms)');
assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON)');
assert.sameValue(Atomics.notify(i32a, 0), 0, 'Atomics.notify(i32a, 0) returns 0');
......@@ -42,7 +42,6 @@ $262.agent.start(`
let status1 = "";
let status2 = "";
const before = $262.agent.monotonicNow();
try {
Atomics.wait(i32a, 0, Symbol("1"), poisonedValueOf);
} catch (error) {
......@@ -53,11 +52,9 @@ $262.agent.start(`
} catch (error) {
status2 = 'Symbol("2")';
}
const duration = $262.agent.monotonicNow() - before;
$262.agent.report(status1);
$262.agent.report(status2);
$262.agent.report(duration);
$262.agent.leaving();
});
`);
......@@ -83,9 +80,4 @@ assert.sameValue(
'$262.agent.getReport() returns "Symbol("2")"'
);
const lapse = $262.agent.getReport();
assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (timeout should be a min of 0ms)');
assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON)');
assert.sameValue(Atomics.notify(i32a, 0), 0, 'Atomics.notify(i32a, 0) returns 0');
......@@ -35,16 +35,13 @@ $262.agent.start(`
const i32a = new Int32Array(sab);
Atomics.add(i32a, ${RUNNING}, 1);
const start = $262.agent.monotonicNow();
const status1 = Atomics.wait(i32a, 0, 0, true);
const status2 = Atomics.wait(i32a, 0, 0, valueOf);
const status3 = Atomics.wait(i32a, 0, 0, toPrimitive);
const duration = $262.agent.monotonicNow() - start;
$262.agent.report(status1);
$262.agent.report(status2);
$262.agent.report(status3);
$262.agent.report(duration);
$262.agent.leaving();
});
`);
......@@ -75,10 +72,4 @@ assert.sameValue(
'$262.agent.getReport() returns "timed-out"'
);
const lapse = $262.agent.getReport();
assert(lapse >= 0, 'The result of `(lapse >= 0)` is true (timeout should be a min of 0ms)');
assert(lapse <= $262.agent.MAX_TIME_EPSILON, 'The result of `(lapse <= $262.agent.MAX_TIME_EPSILON)` is true (timeout should be a max of $$262.agent.MAX_TIME_EPSILON)');
assert.sameValue(Atomics.notify(i32a, 0), 0, 'Atomics.notify(i32a, 0) returns 0');
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment