e7cb911a93
If we want external people to stop shouting WASM, we should start by avoiding that in our own code base. This CL replaces almost all occurrences of "WASM" by "Wasm". The last remaining ones (in frames.cc) are in capitalized contexts where WASM fits. TBR=ecmziegler@chromium.org Bug: v8:10155 Change-Id: I905b92220768b99bb5e1165255691ffe4498dba3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2126917 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org> Cr-Commit-Position: refs/heads/master@{#66917}
55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
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.
|
|
|
|
// Flags: --expose-wasm --expose-gc --verify-heap
|
|
|
|
load("test/mjsunit/wasm/user-properties-common.js");
|
|
|
|
(function ModuleTest() {
|
|
for (f of [x => (x + 19 + globalCounter), minus18]) {
|
|
print("ModuleTest");
|
|
|
|
let builder = new WasmModuleBuilder();
|
|
builder.addImport("m", "f", kSig_i_i);
|
|
builder.addFunction("main", kSig_i_i)
|
|
.addBody([
|
|
kExprLocalGet, 0,
|
|
kExprCallFunction, 0])
|
|
.exportAs("main");
|
|
builder.addMemory(1, 1, false)
|
|
.exportMemoryAs("memory")
|
|
|
|
let module = builder.toModule();
|
|
testProperties(module);
|
|
|
|
for (let i = 0; i < 3; i++) {
|
|
print(" instance " + i);
|
|
let instance = new WebAssembly.Instance(module, {m: {f: f}});
|
|
testProperties(instance);
|
|
|
|
print(" memory " + i);
|
|
let m = instance.exports.memory;
|
|
assertInstanceof(m, WebAssembly.Memory);
|
|
testProperties(m);
|
|
|
|
print(" function " + i);
|
|
let g = instance.exports.main;
|
|
assertInstanceof(g, Function);
|
|
printName("before", g);
|
|
testProperties(g);
|
|
printName(" after", g);
|
|
assertInstanceof(g, Function);
|
|
testProperties(g);
|
|
for (let j = 10; j < 15; j++) {
|
|
assertEquals(f(j), g(j));
|
|
}
|
|
verifyHeap();
|
|
// The Wasm-internal fields of {g} are only inspected when {g} is
|
|
// used as an import into another instance. Use {g} as the import
|
|
// the next time through the loop.
|
|
f = g;
|
|
}
|
|
}
|
|
})();
|