327df0b8c2
Memory instantiate on initialize should always patch memory references. If memory references are not patched for no initial memory, on subsequent calls to grow_memory in wasm functions for instances that share a module, the references will be patched without resetting cloned compiled values to their correct initial values. BUG=chromium:763439 Change-Id: I666439332379b02aa344e99d61ef3dc88ab86cc8 Reviewed-on: https://chromium-review.googlesource.com/674707 Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#48097}
23 lines
782 B
JavaScript
23 lines
782 B
JavaScript
// Copyright 2017 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.
|
|
|
|
load('test/mjsunit/wasm/wasm-constants.js');
|
|
load('test/mjsunit/wasm/wasm-module-builder.js');
|
|
|
|
var builder = new WasmModuleBuilder();
|
|
builder.addMemory(0, 1234, false);
|
|
builder.addFunction('f', kSig_i_v)
|
|
.addBody([
|
|
kExprI32Const, 0x1d, // --
|
|
kExprGrowMemory, 0x00, // --
|
|
kExprI32LoadMem, 0x00, 0xff, 0xff, 0x45, // --
|
|
])
|
|
.exportFunc();
|
|
|
|
var module = new WebAssembly.Module(builder.toBuffer());
|
|
var instance1 = new WebAssembly.Instance(module);
|
|
instance1.exports.f();
|
|
var instance2 = new WebAssembly.Instance(module);
|
|
instance2.exports.f();
|