v8/test/mjsunit/wasm/user-properties-common.js
Camillo Bruni a345a442d3 [d8][mjsunit][tools] Improve d8 file API
- Add d8.file.read() and d8.file.execute() helpers
- Change tools and tests to use new d8.file helper
- Unify error throwing in v8::Shell::ReadFile

Change-Id: I5ef4cb27f217508a367106f01e872a4059d5e399
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2928505
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74883}
2021-06-01 13:37:57 +00:00

52 lines
1.2 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
d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
const verifyHeap = gc;
let globalCounter = 10000000;
function testProperties(obj) {
for (let i = 0; i < 3; i++) {
obj.x = 1001;
assertEquals(1001, obj.x);
obj.y = "old";
assertEquals("old", obj.y);
delete obj.y;
assertEquals("undefined", typeof obj.y);
let uid = globalCounter++;
let fresh = "f_" + uid;
obj.z = fresh;
assertEquals(fresh, obj.z);
obj[fresh] = uid;
assertEquals(uid, obj[fresh]);
verifyHeap();
assertEquals(1001, obj.x);
assertEquals(fresh, obj.z);
assertEquals(uid, obj[fresh]);
}
// These properties are special for JSFunctions.
Object.defineProperty(obj, 'name', {value: "crazy"});
Object.defineProperty(obj, 'length', {value: 999});
}
function minus18(x) { return x - 18; }
function id(x) { return x; }
function printName(when, f) {
print(" " + when + ": name=" + f.name + ", length=" + f.length);
}
// Note that this test is a helper with common code for user-properties-*.js.