-
-
Notifications
You must be signed in to change notification settings - Fork 688
Expand file tree
/
Copy pathseed.js
More file actions
27 lines (25 loc) · 984 Bytes
/
seed.js
File metadata and controls
27 lines (25 loc) · 984 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var memory;
var failed;
exports.preInstantiate = function(imports, exports) {
imports["wasi_snapshot_preview1"] = {
fd_write: function(fd, iov, iov_len, nptr) {
if (fd != 2) failed = "unexpected fd: " + fd;
const messagePtr = new Uint32Array(memory.buffer)[ iov >>> 2 ];
const messageLen = new Uint32Array(memory.buffer)[(iov >>> 2) + 1];
const message = Array.from(new Uint8Array(memory.buffer, messagePtr, messageLen)).map(c => String.fromCharCode(c)).join("");
(fd == 1 ? process.stdout : process.stderr).write(message);
},
proc_exit: function(code) {
console.log("exit: " + code);
},
random_get: function(buf, len) {
new Uint8Array(memory.buffer, buf, len).set(require("crypto").randomBytes(len));
}
};
};
exports.postInstantiate = function(instance) {
const exports = instance.exports;
memory = exports.memory;
console.log("Math.random = " + exports.test());
if (failed) throw Error(failed);
};