// Copyright 2019 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. // Flags: --experimental-wasm-threads const kNumMessages = 5000; function AllocMemory(pages = 1, max = pages) { return new WebAssembly.Memory({initial : pages, maximum : max, shared : true}); } (function RunTest() { let worker = new Worker( `onmessage = function(msg) { if (msg.memory) postMessage({memory : msg.memory}); }`, {type : 'string'}); let time = performance.now(); for (let i = 0; i < kNumMessages; i++) { let now = performance.now(); print(`iteration ${i}, Δ = ${(now - time).toFixed(3)} ms`); time = now; let memory = AllocMemory(); worker.postMessage({memory : memory}); let msg = worker.getMessage(); if (msg.memory) { assertInstanceof(msg.memory, WebAssembly.Memory); } } })();