v8/test/mjsunit/regress/regress-crbug-1237153.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

18 lines
710 B
JavaScript
Raw Normal View History

// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Try to catch TSAN issues with access to SharedArrayBuffer.
function onmessage([buf]) {
const arr = new Int32Array(buf);
for (let val = 1; val < 100; ++val) arr.fill(val);
}
const arr = new Int32Array(new SharedArrayBuffer(4));
const worker = new Worker(`onmessage = ${onmessage}`, { type: 'string' });
worker.postMessage([arr.buffer]);
// Wait until the worker starts filling the array.
while (Atomics.load(arr) == 0) { }
// Try creating a slice of the shared array buffer that races with the fill.
const slice = arr.slice(0, 1);