fd1b8bbf9e
See the WebAssembly bulk memory proposal here: https://github.com/WebAssembly/bulk-memory-operations This initial CL adds a wasm experimental flag: `--experimental-wasm-bulk-memory`, and also parsing of passive segments. A passive segment is one that is not copied into the table/memory on instantiation, but instead later via the `{table,memory}.init` instructions. The binary format of passive data segments is unlikely to change, but the format for passive element segments may change (see https://github.com/WebAssembly/bulk-memory-operations/pull/39). Bug: v8:7747 Change-Id: I2a7fb9bc7648a722a8c4aab4185c68d3d0843858 Reviewed-on: https://chromium-review.googlesource.com/c/1330015 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#57451}
30 lines
900 B
JavaScript
30 lines
900 B
JavaScript
// Copyright 2018 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-bulk-memory
|
|
|
|
load("test/mjsunit/wasm/wasm-constants.js");
|
|
load("test/mjsunit/wasm/wasm-module-builder.js");
|
|
|
|
(function TestPassiveDataSegment() {
|
|
const builder = new WasmModuleBuilder();
|
|
builder.addMemory(1, 1, false);
|
|
builder.addPassiveDataSegment([0, 1, 2]);
|
|
builder.addPassiveDataSegment([3, 4]);
|
|
|
|
// Should not throw.
|
|
const module = builder.instantiate();
|
|
})();
|
|
|
|
(function TestPassiveElementSegment() {
|
|
const builder = new WasmModuleBuilder();
|
|
builder.addFunction('f', kSig_v_v).addBody([]);
|
|
builder.setTableLength(1);
|
|
builder.addPassiveElementSegment([0, 0, 0]);
|
|
builder.addPassiveElementSegment([0, 0]);
|
|
|
|
// Should not throw.
|
|
const module = builder.instantiate();
|
|
})();
|