mirror of https://github.com/tc39/test262.git
Atomics: (bigint) initialize BigInt64Array before calling $262.agent.start(string-of-program-code)
This commit is contained in:
parent
8793bf5d57
commit
e91645c812
|
@ -22,6 +22,10 @@ const BUFFER_SIZE = 4;
|
||||||
// `Atomics.notify`.
|
// `Atomics.notify`.
|
||||||
const TIMEOUT = $262.agent.timeouts.long;
|
const TIMEOUT = $262.agent.timeouts.long;
|
||||||
|
|
||||||
|
const i64a = new BigInt64Array(
|
||||||
|
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * BUFFER_SIZE)
|
||||||
|
);
|
||||||
|
|
||||||
for (var i = 0; i < NUMAGENT; i++) {
|
for (var i = 0; i < NUMAGENT; i++) {
|
||||||
$262.agent.start(`
|
$262.agent.start(`
|
||||||
$262.agent.receiveBroadcast(function(sab) {
|
$262.agent.receiveBroadcast(function(sab) {
|
||||||
|
@ -53,10 +57,6 @@ $262.agent.start(`
|
||||||
});
|
});
|
||||||
`);
|
`);
|
||||||
|
|
||||||
const i64a = new BigInt64Array(
|
|
||||||
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * BUFFER_SIZE)
|
|
||||||
);
|
|
||||||
|
|
||||||
$262.agent.safeBroadcast(i64a);
|
$262.agent.safeBroadcast(i64a);
|
||||||
|
|
||||||
// Wait for agents to be running.
|
// Wait for agents to be running.
|
||||||
|
|
|
@ -17,6 +17,10 @@ includes: [atomicsHelper.js]
|
||||||
features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
|
features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
|
const i64a = new BigInt64Array(
|
||||||
|
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
|
||||||
|
);
|
||||||
|
|
||||||
const RUNNING = 1;
|
const RUNNING = 1;
|
||||||
|
|
||||||
$262.agent.start(`
|
$262.agent.start(`
|
||||||
|
@ -29,10 +33,6 @@ $262.agent.start(`
|
||||||
});
|
});
|
||||||
`);
|
`);
|
||||||
|
|
||||||
const i64a = new BigInt64Array(
|
|
||||||
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
|
|
||||||
);
|
|
||||||
|
|
||||||
$262.agent.safeBroadcast(i64a);
|
$262.agent.safeBroadcast(i64a);
|
||||||
$262.agent.waitUntil(i64a, RUNNING, 1n);
|
$262.agent.waitUntil(i64a, RUNNING, 1n);
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,10 @@ includes: [atomicsHelper.js]
|
||||||
features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
|
features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
|
const i64a = new BigInt64Array(
|
||||||
|
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
|
||||||
|
);
|
||||||
|
|
||||||
const RUNNING = 1;
|
const RUNNING = 1;
|
||||||
|
|
||||||
$262.agent.start(`
|
$262.agent.start(`
|
||||||
|
@ -21,10 +25,6 @@ $262.agent.start(`
|
||||||
});
|
});
|
||||||
`);
|
`);
|
||||||
|
|
||||||
const i64a = new BigInt64Array(
|
|
||||||
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
|
|
||||||
);
|
|
||||||
|
|
||||||
$262.agent.safeBroadcast(i64a);
|
$262.agent.safeBroadcast(i64a);
|
||||||
$262.agent.waitUntil(i64a, RUNNING, 1n);
|
$262.agent.waitUntil(i64a, RUNNING, 1n);
|
||||||
|
|
||||||
|
|
|
@ -19,9 +19,12 @@ features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
const RUNNING = 1;
|
const RUNNING = 1;
|
||||||
|
|
||||||
const value = "42n";
|
const value = "42n";
|
||||||
|
|
||||||
|
const i64a = new BigInt64Array(
|
||||||
|
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
|
||||||
|
);
|
||||||
|
|
||||||
$262.agent.start(`
|
$262.agent.start(`
|
||||||
$262.agent.receiveBroadcast(function(sab) {
|
$262.agent.receiveBroadcast(function(sab) {
|
||||||
const i64a = new BigInt64Array(sab);
|
const i64a = new BigInt64Array(sab);
|
||||||
|
@ -33,10 +36,6 @@ $262.agent.start(`
|
||||||
});
|
});
|
||||||
`);
|
`);
|
||||||
|
|
||||||
const i64a = new BigInt64Array(
|
|
||||||
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
|
|
||||||
);
|
|
||||||
|
|
||||||
// NB: We don't actually explicitly need to wait for the agent to start in this
|
// NB: We don't actually explicitly need to wait for the agent to start in this
|
||||||
// test case, we only do it for consistency with other test cases which do
|
// test case, we only do it for consistency with other test cases which do
|
||||||
// require the main agent to wait and yield control.
|
// require the main agent to wait and yield control.
|
||||||
|
|
|
@ -25,6 +25,10 @@ features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
|
||||||
var NUMAGENT = 2;
|
var NUMAGENT = 2;
|
||||||
var RUNNING = 4;
|
var RUNNING = 4;
|
||||||
|
|
||||||
|
const i64a = new BigInt64Array(
|
||||||
|
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 5)
|
||||||
|
);
|
||||||
|
|
||||||
$262.agent.start(`
|
$262.agent.start(`
|
||||||
$262.agent.receiveBroadcast(function(sab) {
|
$262.agent.receiveBroadcast(function(sab) {
|
||||||
const i64a = new BigInt64Array(sab);
|
const i64a = new BigInt64Array(sab);
|
||||||
|
@ -47,10 +51,6 @@ $262.agent.start(`
|
||||||
});
|
});
|
||||||
`);
|
`);
|
||||||
|
|
||||||
const i64a = new BigInt64Array(
|
|
||||||
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 5)
|
|
||||||
);
|
|
||||||
|
|
||||||
$262.agent.safeBroadcast(i64a);
|
$262.agent.safeBroadcast(i64a);
|
||||||
|
|
||||||
// Wait until all agents started.
|
// Wait until all agents started.
|
||||||
|
|
|
@ -16,11 +16,14 @@ includes: [atomicsHelper.js]
|
||||||
features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
|
features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var NUMAGENT = 3;
|
|
||||||
|
|
||||||
var WAIT_INDEX = 0;
|
var WAIT_INDEX = 0;
|
||||||
var RUNNING = 1;
|
var RUNNING = 1;
|
||||||
var LOCK_INDEX = 2;
|
var LOCK_INDEX = 2;
|
||||||
|
var NUMAGENT = 3;
|
||||||
|
|
||||||
|
const i64a = new BigInt64Array(
|
||||||
|
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
|
||||||
|
);
|
||||||
|
|
||||||
for (var i = 0; i < NUMAGENT; i++) {
|
for (var i = 0; i < NUMAGENT; i++) {
|
||||||
var agentNum = i;
|
var agentNum = i;
|
||||||
|
@ -50,10 +53,6 @@ for (var i = 0; i < NUMAGENT; i++) {
|
||||||
`);
|
`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const i64a = new BigInt64Array(
|
|
||||||
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
|
|
||||||
);
|
|
||||||
|
|
||||||
$262.agent.safeBroadcast(i64a);
|
$262.agent.safeBroadcast(i64a);
|
||||||
|
|
||||||
// Wait until all agents started.
|
// Wait until all agents started.
|
||||||
|
|
|
@ -25,6 +25,10 @@ features: [Atomics, BigInt, SharedArrayBuffer, TypedArray]
|
||||||
const RUNNING = 1;
|
const RUNNING = 1;
|
||||||
const TIMEOUT = $262.agent.timeouts.huge;
|
const TIMEOUT = $262.agent.timeouts.huge;
|
||||||
|
|
||||||
|
const i64a = new BigInt64Array(
|
||||||
|
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
|
||||||
|
);
|
||||||
|
|
||||||
$262.agent.start(`
|
$262.agent.start(`
|
||||||
$262.agent.receiveBroadcast(function(sab) {
|
$262.agent.receiveBroadcast(function(sab) {
|
||||||
const i64a = new BigInt64Array(sab);
|
const i64a = new BigInt64Array(sab);
|
||||||
|
@ -40,10 +44,6 @@ $262.agent.start(`
|
||||||
});
|
});
|
||||||
`);
|
`);
|
||||||
|
|
||||||
const i64a = new BigInt64Array(
|
|
||||||
new SharedArrayBuffer(BigInt64Array.BYTES_PER_ELEMENT * 4)
|
|
||||||
);
|
|
||||||
|
|
||||||
$262.agent.safeBroadcast(i64a);
|
$262.agent.safeBroadcast(i64a);
|
||||||
$262.agent.waitUntil(i64a, RUNNING, 1n);
|
$262.agent.waitUntil(i64a, RUNNING, 1n);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue