Created
November 1, 2025 23:12
-
-
Save guest271314/75d44bbedeaf5c75f7163f17582de7f8 to your computer and use it in GitHub Desktop.
YoWASP clang bundled for browser usage
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // import {runClang, runLLVM} from '@yowasp/clang'; export {runClang, runLLVM}; | |
| // bun build --target=browser --packages=bundle --outfile=yowasp-bundle.js hosted.js | |
| var __create = Object.create; | |
| var __getProtoOf = Object.getPrototypeOf; | |
| var __defProp = Object.defineProperty; | |
| var __getOwnPropNames = Object.getOwnPropertyNames; | |
| var __hasOwnProp = Object.prototype.hasOwnProperty; | |
| var __toESM = (mod, isNodeMode, target) => { | |
| target = mod != null ? __create(__getProtoOf(mod)) : {}; | |
| const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target; | |
| for (let key of __getOwnPropNames(mod)) | |
| if (!__hasOwnProp.call(to, key)) | |
| __defProp(to, key, { | |
| get: () => mod[key], | |
| enumerable: true | |
| }); | |
| return to; | |
| }; | |
| var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { | |
| get: (a, b) => (typeof require !== "undefined" ? require : a)[b] | |
| }) : x)(function(x) { | |
| if (typeof require !== "undefined") | |
| return require.apply(this, arguments); | |
| throw Error('Dynamic require of "' + x + '" is not supported'); | |
| }); | |
| // node_modules/@yowasp/clang/gen/bundle.js | |
| var __defProp2 = Object.defineProperty; | |
| var __export = (target, all) => { | |
| for (var name in all) | |
| __defProp2(target, name, { get: all[name], enumerable: true }); | |
| }; | |
| var fetch2; | |
| if (typeof process === "object" && process.release?.name === "node") { | |
| fetch2 = async function(url, options) { | |
| if (url.protocol === "file:") { | |
| // const { readFile } = await import("node:fs/promises"); | |
| const readFile = await(await fetch(url)).bytes(); | |
| const data = await readFile(url); | |
| const isWasm = url.pathname.endsWith(".wasm"); | |
| const headers = { | |
| "content-length": data.length, | |
| "content-type": isWasm ? "application/wasm" : "application/octet-stream" | |
| }; | |
| return new Response(data, { headers }); | |
| } else { | |
| return globalThis.fetch(url, options); | |
| } | |
| }; | |
| } else { | |
| fetch2 = globalThis.fetch; | |
| } | |
| var fetch_default = fetch2; | |
| var Exit = class extends Error { | |
| constructor(code = 0) { | |
| super(`Exited with status ${code}`); | |
| this.code = code; | |
| } | |
| }; | |
| function monotonicNow() { | |
| return BigInt(Math.floor(performance.now() * 1e6)); | |
| } | |
| function wallClockNow() { | |
| let now = Date.now(); | |
| const seconds = BigInt(Math.floor(now / 1000)); | |
| const nanoseconds = now % 1000 * 1e6; | |
| return { seconds, nanoseconds }; | |
| } | |
| var Xoroshiro128StarStar = class { | |
| constructor(seed) { | |
| if (BigInt(seed) === 0n) { | |
| throw new Error("xoroshiro128** must be seeded with a non-zero state"); | |
| } | |
| this.s = [BigInt(seed) & 0xffffffffffffffffn, BigInt(seed) >> 64n & 0xffffffffffffffffn]; | |
| } | |
| next() { | |
| function trunc64(x) { | |
| return x & 0xffffffffffffffffn; | |
| } | |
| function rotl(x, k) { | |
| return x << k | x >> 64n - k; | |
| } | |
| let [s0, s1] = this.s; | |
| const r = trunc64(rotl(s0 * 5n, 7n) * 9n); | |
| s1 ^= s0; | |
| s0 = trunc64(rotl(s0, 24n) ^ s1 ^ s1 << 16n); | |
| s1 = trunc64(rotl(s1, 37n)); | |
| this.s = [s0, s1]; | |
| return r; | |
| } | |
| getBytes(length) { | |
| return Uint8Array.from({ length }, () => Number(BigInt.asUintN(8, this.next() >> 32n))); | |
| } | |
| }; | |
| var IoError = class extends Error { | |
| }; | |
| var InputStream = class { | |
| read(_len) { | |
| throw { tag: "closed" }; | |
| } | |
| blockingRead(len) { | |
| return this.read(len); | |
| } | |
| }; | |
| var OutputStream = class { | |
| checkWrite() { | |
| throw { tag: "closed" }; | |
| } | |
| write(_contents) { | |
| this.checkWrite(); | |
| } | |
| flush() {} | |
| blockingFlush() { | |
| this.flush(); | |
| } | |
| blockingWriteAndFlush(contents) { | |
| this.write(contents); | |
| this.blockingFlush(); | |
| } | |
| }; | |
| var CallbackInputStream = class extends InputStream { | |
| constructor(callback = null) { | |
| super(); | |
| this.callback = callback; | |
| } | |
| read(len) { | |
| if (this.callback === null) | |
| throw { tag: "closed" }; | |
| let contents = this.callback(Number(len)); | |
| if (contents === null) | |
| throw { tag: "closed" }; | |
| return contents; | |
| } | |
| }; | |
| var CallbackOutputStream = class extends OutputStream { | |
| constructor(callback = null) { | |
| super(); | |
| this.callback = callback; | |
| } | |
| checkWrite() { | |
| return 4096; | |
| } | |
| write(contents) { | |
| if (this.callback !== null) | |
| this.callback(contents); | |
| } | |
| flush() { | |
| if (this.callback !== null) | |
| this.callback(null); | |
| } | |
| }; | |
| var TerminalInput = class { | |
| }; | |
| var TerminalOutput = class { | |
| }; | |
| var nextFilesystemId = /* @__PURE__ */ function() { | |
| let id = 0; | |
| return () => id++; | |
| }(); | |
| var File = class { | |
| constructor(data = "") { | |
| this.id = nextFilesystemId(); | |
| if (data instanceof Uint8Array) { | |
| this.data = data; | |
| } else if (typeof data === "string") { | |
| this.data = new TextEncoder().encode(data); | |
| } else { | |
| throw new Error(`Cannot construct a file from ${typeof data}`); | |
| } | |
| } | |
| get size() { | |
| return this.data.length; | |
| } | |
| }; | |
| var Directory = class _Directory { | |
| constructor(files = {}) { | |
| this.id = nextFilesystemId(); | |
| this.files = files; | |
| } | |
| get size() { | |
| return Object.keys(this.files).length; | |
| } | |
| traverse(path, { create = null, remove = false } = {}) { | |
| let entry = this; | |
| let separatorAt = -1; | |
| do { | |
| if (entry instanceof File) | |
| throw "not-directory"; | |
| const files = entry.files; | |
| separatorAt = path.indexOf("/"); | |
| const segment = separatorAt === -1 ? path : path.substring(0, separatorAt); | |
| if (separatorAt === -1 && remove) | |
| delete files[segment]; | |
| else if (segment === "" || segment === ".") | |
| ; | |
| else if (segment === "..") | |
| ; | |
| else if (Object.hasOwn(files, segment)) | |
| entry = files[segment]; | |
| else if (create === "directory" || create !== null && separatorAt !== -1) | |
| entry = files[segment] = new _Directory({}); | |
| else if (create === "file") | |
| entry = files[segment] = new File(new Uint8Array); | |
| else if (create instanceof File || create instanceof _Directory) | |
| entry = files[segment] = create; | |
| else | |
| throw "no-entry"; | |
| path = path.substring(separatorAt + 1); | |
| } while (separatorAt !== -1); | |
| return entry; | |
| } | |
| }; | |
| var ReadStream = class extends InputStream { | |
| constructor(file, offset) { | |
| super(); | |
| this.file = file; | |
| this.offset = offset; | |
| } | |
| read(len) { | |
| const data = this.file.data.subarray(Number(this.offset), Number(this.offset + len)); | |
| this.offset += len; | |
| return data; | |
| } | |
| }; | |
| var WriteStream = class extends OutputStream { | |
| constructor(file, offset) { | |
| super(); | |
| this.file = file; | |
| this.offset = offset; | |
| } | |
| write(contents) { | |
| const offset = Number(this.offset); | |
| const newData = new Uint8Array(Math.max(this.file.data.length, offset + contents.length)); | |
| newData.set(this.file.data); | |
| newData.subarray(offset).set(contents); | |
| this.file.data = newData; | |
| this.offset += BigInt(contents.length); | |
| } | |
| }; | |
| var Descriptor = class _Descriptor { | |
| constructor(entry) { | |
| this.entry = entry; | |
| } | |
| getType() { | |
| if (this.entry instanceof Directory) | |
| return "directory"; | |
| if (this.entry instanceof File) | |
| return "regular-file"; | |
| } | |
| getFlags() { | |
| return {}; | |
| } | |
| metadataHash() { | |
| return { upper: 0, lower: this.entry.id }; | |
| } | |
| metadataHashAt(_pathFlags, path) { | |
| if (!(this.entry instanceof Directory)) | |
| throw "invalid"; | |
| const pathEntry = this.entry.traverse(path); | |
| return new _Descriptor(pathEntry).metadataHash(); | |
| } | |
| stat() { | |
| let type; | |
| if (this.entry instanceof Directory) | |
| type = "directory"; | |
| if (this.entry instanceof File) | |
| type = "regular-file"; | |
| return { | |
| type, | |
| linkCount: 1, | |
| size: this.entry.size, | |
| dataAccessTimestamp: null, | |
| dataModificationTimestamp: null, | |
| statusChangeTimestamp: null | |
| }; | |
| } | |
| statAt(_pathFlags, path) { | |
| if (!(this.entry instanceof Directory)) | |
| throw "invalid"; | |
| const pathEntry = this.entry.traverse(path); | |
| return new _Descriptor(pathEntry).stat(); | |
| } | |
| openAt(_pathFlags, path, openFlags, _descriptorFlags) { | |
| if (!(this.entry instanceof Directory)) | |
| throw "invalid"; | |
| const openEntry = this.entry.traverse(path, openFlags.create ? { create: "file" } : {}); | |
| if (openFlags.directory) { | |
| if (!(openEntry instanceof Directory)) | |
| throw "not-directory"; | |
| } else { | |
| if (openEntry instanceof Directory) | |
| throw "is-directory"; | |
| if (openFlags.truncate) | |
| openEntry.data = new Uint8Array; | |
| } | |
| return new _Descriptor(openEntry); | |
| } | |
| read(length, offset) { | |
| if (this.entry instanceof Directory) | |
| throw "is-directory"; | |
| [length, offset] = [Number(length), Number(offset)]; | |
| return [this.entry.data.subarray(offset, offset + length), offset + length >= this.entry.data.byteLength]; | |
| } | |
| readViaStream(offset) { | |
| return new ReadStream(this.entry, offset); | |
| } | |
| write(_buffer, _offset) { | |
| if (this.entry instanceof Directory) | |
| throw "is-directory"; | |
| console.error("Descriptor.write not implemented"); | |
| throw "unsupported"; | |
| } | |
| writeViaStream(offset) { | |
| return new WriteStream(this.entry, offset); | |
| } | |
| setSize(size) { | |
| if (this.entry instanceof Directory) | |
| throw "is-directory"; | |
| size = Number(size); | |
| if (size > this.entry.data.length) { | |
| const newData = new Uint8Array(size); | |
| newData.set(this.entry.data); | |
| this.entry.data = newData; | |
| } else if (size < this.entry.data.length) { | |
| this.entry.data = this.entry.data.subarray(0, size); | |
| } | |
| } | |
| readDirectory() { | |
| return new DirectoryEntryStream(this.entry); | |
| } | |
| createDirectoryAt(path) { | |
| this.entry.traverse(path, { create: "directory" }); | |
| } | |
| unlinkFileAt(path) { | |
| const pathEntry = this.entry.traverse(path); | |
| if (pathEntry instanceof Directory) | |
| throw "is-directory"; | |
| this.entry.traverse(path, { remove: true }); | |
| } | |
| removeDirectoryAt(path) { | |
| const pathEntry = this.entry.traverse(path); | |
| if (!(pathEntry instanceof Directory)) | |
| throw "not-directory"; | |
| this.entry.traverse(path, { remove: true }); | |
| } | |
| readlinkAt(path) { | |
| const _pathEntry = this.entry.traverse(path); | |
| throw "invalid"; | |
| } | |
| renameAt(oldPath, newDescriptor, newPath) { | |
| if (!(this.entry instanceof Directory)) | |
| throw "not-directory"; | |
| if (!(newDescriptor.entry instanceof Directory)) | |
| throw "not-directory"; | |
| const oldEntry = this.entry.traverse(oldPath); | |
| this.entry.traverse(newPath, { create: oldEntry }); | |
| this.entry.traverse(oldPath, { remove: true }); | |
| } | |
| }; | |
| var DirectoryEntryStream = class { | |
| constructor(directory) { | |
| this.entries = Object.entries(directory.files); | |
| this.index = 0; | |
| } | |
| readDirectoryEntry() { | |
| if (this.index === this.entries.length) | |
| return null; | |
| const [name, entry] = this.entries[this.index++]; | |
| let type; | |
| if (entry instanceof Directory) | |
| type = "directory"; | |
| if (entry instanceof File) | |
| type = "regular-file"; | |
| return { name, type }; | |
| } | |
| }; | |
| function directoryFromTree(tree) { | |
| const files = {}; | |
| for (const [filename, data] of Object.entries(tree)) { | |
| if (typeof data === "string" || data instanceof Uint8Array) | |
| files[filename] = new File(tree[filename]); | |
| else | |
| files[filename] = directoryFromTree(tree[filename]); | |
| } | |
| return new Directory(files); | |
| } | |
| function directoryIntoTree(directory, { decodeASCII = true } = {}) { | |
| function isASCII(buffer) { | |
| for (const byte of buffer) | |
| if (byte < 32 && byte !== 9 && byte !== 10 && byte !== 13 || byte >= 127) | |
| return false; | |
| return true; | |
| } | |
| const tree = {}; | |
| for (const [filename, entry] of Object.entries(directory.files)) { | |
| if (entry instanceof File) | |
| tree[filename] = decodeASCII && isASCII(entry.data) ? new TextDecoder().decode(entry.data) : entry.data; | |
| if (entry instanceof Directory) | |
| tree[filename] = directoryIntoTree(entry, { decodeASCII }); | |
| } | |
| return tree; | |
| } | |
| var Environment = class { | |
| vars = {}; | |
| args = []; | |
| root = new Directory({}); | |
| constructor() { | |
| this.prng = new Xoroshiro128StarStar(1n); | |
| this.standardInputStream = new CallbackInputStream; | |
| this.standardOutputStream = new CallbackOutputStream; | |
| this.standardErrorStream = new CallbackOutputStream; | |
| this.terminalInput = new TerminalInput; | |
| this.terminalOutput = new TerminalOutput; | |
| const $this = this; | |
| this.exports = { | |
| monotonicClock: { | |
| now: monotonicNow | |
| }, | |
| wallClock: { | |
| now: wallClockNow | |
| }, | |
| random: { | |
| getRandomBytes(length) { | |
| return $this.prng.getBytes(Number(length)); | |
| } | |
| }, | |
| io: { | |
| Error: IoError, | |
| InputStream, | |
| OutputStream | |
| }, | |
| cli: { | |
| exit(status) { | |
| throw new Exit(status.tag === "ok" ? 0 : 1); | |
| }, | |
| getEnvironment() { | |
| return $this.vars; | |
| }, | |
| getArguments() { | |
| return $this.args; | |
| }, | |
| getStdin() { | |
| return $this.standardInputStream; | |
| }, | |
| getStdout() { | |
| return $this.standardOutputStream; | |
| }, | |
| getStderr() { | |
| return $this.standardErrorStream; | |
| }, | |
| getTerminalStdin() { | |
| return $this.terminalInput; | |
| }, | |
| getTerminalStdout() { | |
| return $this.terminalOutput; | |
| }, | |
| getTerminalStderr() { | |
| return $this.terminalOutput; | |
| }, | |
| TerminalInput, | |
| TerminalOutput | |
| }, | |
| fs: { | |
| Descriptor, | |
| DirectoryEntryStream, | |
| filesystemErrorCode() {}, | |
| getDirectories() { | |
| if ($this.root === null) | |
| return []; | |
| return [[new Descriptor($this.root), "/"]]; | |
| } | |
| } | |
| }; | |
| } | |
| get stdin() { | |
| return this.standardInputStream.callback; | |
| } | |
| set stdin(callback) { | |
| this.standardInputStream.callback = callback; | |
| } | |
| get stdout() { | |
| return this.standardOutputStream.callback; | |
| } | |
| set stdout(callback) { | |
| this.standardOutputStream.callback = callback; | |
| } | |
| get stderr() { | |
| return this.standardErrorStream.callback; | |
| } | |
| set stderr(callback) { | |
| this.standardErrorStream.callback = callback; | |
| } | |
| }; | |
| function lineBuffered(processLine) { | |
| let buffer = new Uint8Array; | |
| return (bytes) => { | |
| if (bytes === null) | |
| return; | |
| let newBuffer = new Uint8Array(buffer.length + bytes.length); | |
| newBuffer.set(buffer); | |
| newBuffer.set(bytes, buffer.length); | |
| buffer = newBuffer; | |
| let newlineAt = -1; | |
| while (true) { | |
| const nextNewlineAt = buffer.indexOf(10, newlineAt + 1); | |
| if (nextNewlineAt === -1) | |
| break; | |
| processLine(new TextDecoder().decode(buffer.subarray(newlineAt + 1, nextNewlineAt))); | |
| newlineAt = nextNewlineAt; | |
| } | |
| buffer = buffer.subarray(newlineAt + 1); | |
| }; | |
| } | |
| var Application = class { | |
| #resourceModule; | |
| #resourceData; | |
| #instantiate; | |
| #argv0; | |
| constructor(resourceModule, instantiate2, argv0) { | |
| this.#resourceModule = resourceModule; | |
| this.#resourceData = null; | |
| this.#instantiate = instantiate2; | |
| this.#argv0 = argv0; | |
| } | |
| get argv0() { | |
| return this.#argv0; | |
| } | |
| async#fetchResources(fetchProgress) { | |
| const resourceModule = await this.#resourceModule; | |
| let fetchFn = fetch_default; | |
| if (fetchProgress !== undefined) { | |
| const status = { source: this, totalLength: resourceModule.totalSize, doneLength: 0 }; | |
| fetchProgress(status); | |
| fetchFn = (input, init) => fetch_default(input, init).then((response) => { | |
| return new Response(response.body.pipeThrough(new TransformStream({ | |
| transform(chunk, controller) { | |
| controller.enqueue(chunk); | |
| status.doneLength += chunk.length; | |
| fetchProgress(status); | |
| } | |
| })), response); | |
| }); | |
| } | |
| const [modules2, filesystem2] = await Promise.all([ | |
| resourceModule.modules(fetchFn), | |
| resourceModule.filesystem(fetchFn) | |
| ]); | |
| this.#resourceData = { modules: modules2, filesystem: filesystem2 }; | |
| } | |
| run(args = null, files = {}, options = {}) { | |
| if (this.#resourceData === null) { | |
| if (options.synchronously) | |
| throw new Error("Cannot run application synchronously unless resources are prefetched first; use `await run()` to do so"); | |
| const defaultFetchProgress = ({ source, totalLength, doneLength }) => { | |
| const percent = (100 * doneLength / totalLength).toFixed(0); | |
| console.log(`${source.argv0}: fetched ${percent}% (${doneLength} / ${totalLength})`); | |
| }; | |
| return this.#fetchResources(options.fetchProgress ?? defaultFetchProgress).then(() => { | |
| return this.run(args, files, options); | |
| }); | |
| } | |
| if (args === null) | |
| return; | |
| const environment = new Environment; | |
| environment.args = [this.#argv0].concat(args); | |
| environment.root = directoryFromTree(files); | |
| for (const [dirName, dirContents] of Object.entries(this.#resourceData.filesystem)) | |
| environment.root.files[dirName] = directoryFromTree(dirContents); | |
| const lineBufferedConsole = lineBuffered(options.printLine ?? console.log); | |
| environment.stdin = options.stdin === undefined ? null : options.stdin; | |
| environment.stdout = options.stdout === undefined ? lineBufferedConsole : options.stdout; | |
| environment.stderr = options.stderr === undefined ? lineBufferedConsole : options.stderr; | |
| const runCommand = (wasmCommand) => { | |
| let error = null; | |
| try { | |
| wasmCommand.run.run(); | |
| } catch (e) { | |
| if (!(e instanceof Exit)) | |
| throw e; | |
| if (e instanceof Exit && e.code !== 0) | |
| error = e; | |
| } | |
| for (const dirName of Object.keys(this.#resourceData.filesystem)) | |
| delete environment.root.files[dirName]; | |
| files = directoryIntoTree(environment.root, { decodeASCII: options.decodeASCII ?? true }); | |
| if (error !== null) { | |
| error.files = files; | |
| throw error; | |
| } else { | |
| return files; | |
| } | |
| }; | |
| const getCoreModule = (filename) => this.#resourceData.modules[filename]; | |
| const imports = { runtime: environment.exports }; | |
| if (options.synchronously) { | |
| const instantiateCore = (module, imports2) => new WebAssembly.Instance(module, imports2); | |
| return runCommand(this.#instantiate(getCoreModule, imports, instantiateCore)); | |
| } else { | |
| return this.#instantiate(getCoreModule, imports).then(runCommand); | |
| } | |
| } | |
| }; | |
| var llvm_resources_exports = {}; | |
| __export(llvm_resources_exports, { | |
| filesystem: () => filesystem, | |
| modules: () => modules, | |
| totalSize: () => totalSize | |
| }); | |
| var TAR_TYPE_FILE = 0; | |
| var TAR_TYPE_DIR = 5; | |
| function parseTar(data, opts) { | |
| const buffer = data.buffer || data; | |
| const files = []; | |
| let offset = 0; | |
| while (offset < buffer.byteLength - 512) { | |
| const name = _readString(buffer, offset, 100); | |
| if (name.length === 0) { | |
| break; | |
| } | |
| const mode = _readString(buffer, offset + 100, 8).trim(); | |
| const uid = Number.parseInt(_readString(buffer, offset + 108, 8)); | |
| const gid = Number.parseInt(_readString(buffer, offset + 116, 8)); | |
| const size = _readNumber(buffer, offset + 124, 12); | |
| const seek = 512 + 512 * Math.trunc(size / 512) + (size % 512 ? 512 : 0); | |
| const mtime = _readNumber(buffer, offset + 136, 12); | |
| const _type = _readNumber(buffer, offset + 156, 1); | |
| const type = _type === TAR_TYPE_FILE ? "file" : _type === TAR_TYPE_DIR ? "directory" : _type; | |
| const user = _readString(buffer, offset + 265, 32); | |
| const group = _readString(buffer, offset + 297, 32); | |
| const meta = { | |
| name, | |
| type, | |
| size, | |
| attrs: { | |
| mode, | |
| uid, | |
| gid, | |
| mtime, | |
| user, | |
| group | |
| } | |
| }; | |
| if (opts?.filter && !opts.filter(meta)) { | |
| offset += seek; | |
| continue; | |
| } | |
| if (opts?.metaOnly) { | |
| files.push(meta); | |
| offset += seek; | |
| continue; | |
| } | |
| const data2 = _type === TAR_TYPE_DIR ? undefined : new Uint8Array(buffer, offset + 512, size); | |
| files.push({ | |
| ...meta, | |
| data: data2, | |
| get text() { | |
| return new TextDecoder().decode(this.data); | |
| } | |
| }); | |
| offset += seek; | |
| } | |
| return files; | |
| } | |
| function _readString(buffer, offset, size) { | |
| const view = new Uint8Array(buffer, offset, size); | |
| const i = view.indexOf(0); | |
| const td = new TextDecoder; | |
| return td.decode(i === -1 ? view : view.slice(0, i)); | |
| } | |
| function _readNumber(buffer, offset, size) { | |
| const view = new Uint8Array(buffer, offset, size); | |
| let str = ""; | |
| for (let i = 0;i < size; i++) { | |
| str += String.fromCodePoint(view[i]); | |
| } | |
| return Number.parseInt(str, 8); | |
| } | |
| function compileWasmModule(response) { | |
| if (WebAssembly.compileStreaming !== undefined) { | |
| return WebAssembly.compileStreaming(response); | |
| } else { | |
| return WebAssembly.compile(response.arrayBuffer()); | |
| } | |
| } | |
| function unpackTarFilesystem(buffer) { | |
| const root = {}; | |
| for (const tarEntry of parseTar(buffer)) { | |
| const nameParts = tarEntry.name.split("/"); | |
| const dirNames = nameParts.slice(0, -1); | |
| const fileName = nameParts[nameParts.length - 1]; | |
| let dir = root; | |
| for (const dirName of dirNames) | |
| dir = dir[dirName]; | |
| if (tarEntry.type === "directory") { | |
| dir[fileName] = {}; | |
| } else { | |
| dir[fileName] = tarEntry.data; | |
| } | |
| } | |
| return root; | |
| } | |
| var modules = async (fetch3) => ({ | |
| "llvm.core.wasm": await fetch3(new URL("./llvm.core.wasm", import.meta.url)).then(compileWasmModule), | |
| "llvm.core2.wasm": await fetch3(new URL("./llvm.core2.wasm", import.meta.url)).then(compileWasmModule), | |
| "llvm.core3.wasm": await fetch3(new URL("./llvm.core3.wasm", import.meta.url)).then(compileWasmModule), | |
| "llvm.core4.wasm": await fetch3(new URL("./llvm.core4.wasm", import.meta.url)).then(compileWasmModule) | |
| }); | |
| var filesystem = async (fetch3) => ({ | |
| usr: await fetch3(new URL("./llvm-resources.tar", import.meta.url)).then((resp) => resp.arrayBuffer()).then(unpackTarFilesystem) | |
| }); | |
| var totalSize = 102337718; | |
| function instantiate(getCoreModule, imports, instantiateCore = WebAssembly.instantiate) { | |
| let dv = new DataView(new ArrayBuffer); | |
| const dataView = (mem) => dv.buffer === mem.buffer ? dv : dv = new DataView(mem.buffer); | |
| const toUint64 = (val) => BigInt.asUintN(64, BigInt(val)); | |
| function toUint32(val) { | |
| return val >>> 0; | |
| } | |
| const utf8Decoder = new TextDecoder; | |
| const utf8Encoder = new TextEncoder; | |
| let utf8EncodedLen = 0; | |
| function utf8Encode(s, realloc, memory) { | |
| if (typeof s !== "string") | |
| throw new TypeError("expected a string"); | |
| if (s.length === 0) { | |
| utf8EncodedLen = 0; | |
| return 1; | |
| } | |
| let buf = utf8Encoder.encode(s); | |
| let ptr = realloc(0, 0, 1, buf.length); | |
| new Uint8Array(memory.buffer).set(buf, ptr); | |
| utf8EncodedLen = buf.length; | |
| return ptr; | |
| } | |
| const T_FLAG = 1073741824; | |
| function rscTableCreateOwn(table, rep) { | |
| const free2 = table[0] & ~T_FLAG; | |
| if (free2 === 0) { | |
| table.push(0); | |
| table.push(rep | T_FLAG); | |
| return (table.length >> 1) - 1; | |
| } | |
| table[0] = table[free2 << 1]; | |
| table[free2 << 1] = 0; | |
| table[(free2 << 1) + 1] = rep | T_FLAG; | |
| return free2; | |
| } | |
| function rscTableRemove(table, handle) { | |
| const scope = table[handle << 1]; | |
| const val = table[(handle << 1) + 1]; | |
| const own = (val & T_FLAG) !== 0; | |
| const rep = val & ~T_FLAG; | |
| if (val === 0 || (scope & T_FLAG) !== 0) | |
| throw new TypeError("Invalid handle"); | |
| table[handle << 1] = table[0] | T_FLAG; | |
| table[0] = handle | T_FLAG; | |
| return { rep, scope, own }; | |
| } | |
| let curResourceBorrows = []; | |
| let NEXT_TASK_ID = 0n; | |
| function startCurrentTask(componentIdx, isAsync, entryFnName) { | |
| _debugLog("[startCurrentTask()] args", { componentIdx, isAsync }); | |
| if (componentIdx === undefined || componentIdx === null) { | |
| throw new Error("missing/invalid component instance index while starting task"); | |
| } | |
| const tasks = ASYNC_TASKS_BY_COMPONENT_IDX.get(componentIdx); | |
| const nextId = ++NEXT_TASK_ID; | |
| const newTask = new AsyncTask({ id: nextId, componentIdx, isAsync, entryFnName }); | |
| const newTaskMeta = { id: nextId, componentIdx, task: newTask }; | |
| ASYNC_CURRENT_TASK_IDS.push(nextId); | |
| ASYNC_CURRENT_COMPONENT_IDXS.push(componentIdx); | |
| if (!tasks) { | |
| ASYNC_TASKS_BY_COMPONENT_IDX.set(componentIdx, [newTaskMeta]); | |
| return nextId; | |
| } else { | |
| tasks.push(newTaskMeta); | |
| } | |
| return nextId; | |
| } | |
| function endCurrentTask(componentIdx, taskId) { | |
| _debugLog("[endCurrentTask()] args", { componentIdx }); | |
| componentIdx ??= ASYNC_CURRENT_COMPONENT_IDXS.at(-1); | |
| taskId ??= ASYNC_CURRENT_TASK_IDS.at(-1); | |
| if (componentIdx === undefined || componentIdx === null) { | |
| throw new Error("missing/invalid component instance index while ending current task"); | |
| } | |
| const tasks = ASYNC_TASKS_BY_COMPONENT_IDX.get(componentIdx); | |
| if (!tasks || !Array.isArray(tasks)) { | |
| throw new Error("missing/invalid tasks for component instance while ending task"); | |
| } | |
| if (tasks.length == 0) { | |
| throw new Error("no current task(s) for component instance while ending task"); | |
| } | |
| if (taskId) { | |
| const last = tasks[tasks.length - 1]; | |
| if (last.id !== taskId) { | |
| throw new Error("current task does not match expected task ID"); | |
| } | |
| } | |
| ASYNC_CURRENT_TASK_IDS.pop(); | |
| ASYNC_CURRENT_COMPONENT_IDXS.pop(); | |
| return tasks.pop(); | |
| } | |
| const ASYNC_TASKS_BY_COMPONENT_IDX = /* @__PURE__ */ new Map; | |
| const ASYNC_CURRENT_TASK_IDS = []; | |
| const ASYNC_CURRENT_COMPONENT_IDXS = []; | |
| class AsyncTask { | |
| static State = { | |
| INITIAL: "initial", | |
| CANCELLED: "cancelled", | |
| CANCEL_PENDING: "cancel-pending", | |
| CANCEL_DELIVERED: "cancel-delivered", | |
| RESOLVED: "resolved" | |
| }; | |
| static BlockResult = { | |
| CANCELLED: "block.cancelled", | |
| NOT_CANCELLED: "block.not-cancelled" | |
| }; | |
| #id; | |
| #componentIdx; | |
| #state; | |
| #isAsync; | |
| #onResolve = null; | |
| #returnedResults = null; | |
| #entryFnName = null; | |
| cancelled = false; | |
| requested = false; | |
| alwaysTaskReturn = false; | |
| returnCalls = 0; | |
| storage = [0, 0]; | |
| borrowedHandles = {}; | |
| awaitableResume = null; | |
| awaitableCancel = null; | |
| constructor(opts) { | |
| if (opts?.id === undefined) { | |
| throw new TypeError("missing task ID during task creation"); | |
| } | |
| this.#id = opts.id; | |
| if (opts?.componentIdx === undefined) { | |
| throw new TypeError("missing component id during task creation"); | |
| } | |
| this.#componentIdx = opts.componentIdx; | |
| this.#state = AsyncTask.State.INITIAL; | |
| this.#isAsync = opts?.isAsync ?? false; | |
| this.#entryFnName = opts.entryFnName; | |
| this.#onResolve = (results) => { | |
| this.#returnedResults = results; | |
| }; | |
| } | |
| taskState() { | |
| return this.#state.slice(); | |
| } | |
| id() { | |
| return this.#id; | |
| } | |
| componentIdx() { | |
| return this.#componentIdx; | |
| } | |
| isAsync() { | |
| return this.#isAsync; | |
| } | |
| getEntryFnName() { | |
| return this.#entryFnName; | |
| } | |
| takeResults() { | |
| const results = this.#returnedResults; | |
| this.#returnedResults = null; | |
| return results; | |
| } | |
| mayEnter(task) { | |
| const cstate = getOrCreateAsyncState(this.#componentIdx); | |
| if (!cstate.backpressure) { | |
| _debugLog("[AsyncTask#mayEnter()] disallowed due to backpressure", { taskID: this.#id }); | |
| return false; | |
| } | |
| if (!cstate.callingSyncImport()) { | |
| _debugLog("[AsyncTask#mayEnter()] disallowed due to sync import call", { taskID: this.#id }); | |
| return false; | |
| } | |
| const callingSyncExportWithSyncPending = cstate.callingSyncExport && !task.isAsync; | |
| if (!callingSyncExportWithSyncPending) { | |
| _debugLog("[AsyncTask#mayEnter()] disallowed due to sync export w/ sync pending", { taskID: this.#id }); | |
| return false; | |
| } | |
| return true; | |
| } | |
| async enter() { | |
| _debugLog("[AsyncTask#enter()] args", { taskID: this.#id }); | |
| const cstate = getOrCreateAsyncState(this.#componentIdx); | |
| let mayNotEnter = !this.mayEnter(this); | |
| const componentHasPendingTasks = cstate.pendingTasks > 0; | |
| if (mayNotEnter || componentHasPendingTasks) { | |
| throw new Error("in enter()"); | |
| cstate.pendingTasks.set(this.#id, new Awaitable(new Promise)); | |
| const blockResult = await this.onBlock(awaitable); | |
| if (blockResult) { | |
| const pendingTask = cstate.pendingTasks.get(this.#id); | |
| if (!pendingTask) { | |
| throw new Error("pending task [" + this.#id + "] not found for component instance"); | |
| } | |
| cstate.pendingTasks.remove(this.#id); | |
| this.#onResolve([]); | |
| return false; | |
| } | |
| mayNotEnter = !this.mayEnter(this); | |
| if (!mayNotEnter || !cstate.startPendingTask) { | |
| throw new Error("invalid component entrance/pending task resolution"); | |
| } | |
| cstate.startPendingTask = false; | |
| } | |
| if (!this.isAsync) { | |
| cstate.callingSyncExport = true; | |
| } | |
| return true; | |
| } | |
| async waitForEvent(opts) { | |
| const { waitableSetRep, isAsync } = opts; | |
| _debugLog("[AsyncTask#waitForEvent()] args", { taskID: this.#id, waitableSetRep, isAsync }); | |
| if (this.#isAsync !== isAsync) { | |
| throw new Error("async waitForEvent called on non-async task"); | |
| } | |
| if (this.status === AsyncTask.State.CANCEL_PENDING) { | |
| this.#state = AsyncTask.State.CANCEL_DELIVERED; | |
| return { | |
| code: ASYNC_EVENT_CODE.TASK_CANCELLED | |
| }; | |
| } | |
| const state = getOrCreateAsyncState(this.#componentIdx); | |
| const waitableSet = state.waitableSets.get(waitableSetRep); | |
| if (!waitableSet) { | |
| throw new Error("missing/invalid waitable set"); | |
| } | |
| waitableSet.numWaiting += 1; | |
| let event = null; | |
| while (event == null) { | |
| const awaitable2 = new Awaitable(waitableSet.getPendingEvent()); | |
| const waited = await this.blockOn({ awaitable: awaitable2, isAsync, isCancellable: true }); | |
| if (waited) { | |
| if (this.#state !== AsyncTask.State.INITIAL) { | |
| throw new Error("task should be in initial state found [" + this.#state + "]"); | |
| } | |
| this.#state = AsyncTask.State.CANCELLED; | |
| return { | |
| code: ASYNC_EVENT_CODE.TASK_CANCELLED | |
| }; | |
| } | |
| event = waitableSet.poll(); | |
| } | |
| waitableSet.numWaiting -= 1; | |
| return event; | |
| } | |
| waitForEventSync(opts) { | |
| throw new Error("AsyncTask#yieldSync() not implemented"); | |
| } | |
| async pollForEvent(opts) { | |
| const { waitableSetRep, isAsync } = opts; | |
| _debugLog("[AsyncTask#pollForEvent()] args", { taskID: this.#id, waitableSetRep, isAsync }); | |
| if (this.#isAsync !== isAsync) { | |
| throw new Error("async pollForEvent called on non-async task"); | |
| } | |
| throw new Error("AsyncTask#pollForEvent() not implemented"); | |
| } | |
| pollForEventSync(opts) { | |
| throw new Error("AsyncTask#yieldSync() not implemented"); | |
| } | |
| async blockOn(opts) { | |
| const { awaitable: awaitable2, isCancellable, forCallback } = opts; | |
| _debugLog("[AsyncTask#blockOn()] args", { taskID: this.#id, awaitable: awaitable2, isCancellable, forCallback }); | |
| if (awaitable2.resolved() && !ASYNC_DETERMINISM && _coinFlip()) { | |
| return AsyncTask.BlockResult.NOT_CANCELLED; | |
| } | |
| const cstate = getOrCreateAsyncState(this.#componentIdx); | |
| if (forCallback) { | |
| cstate.exclusiveRelease(); | |
| } | |
| let cancelled = await this.onBlock(awaitable2); | |
| if (cancelled === AsyncTask.BlockResult.CANCELLED && !isCancellable) { | |
| const secondCancel = await this.onBlock(awaitable2); | |
| if (secondCancel !== AsyncTask.BlockResult.NOT_CANCELLED) { | |
| throw new Error("uncancellable task was canceled despite second onBlock()"); | |
| } | |
| } | |
| if (forCallback) { | |
| const acquired = new Awaitable(cstate.exclusiveLock()); | |
| cancelled = await this.onBlock(acquired); | |
| if (cancelled === AsyncTask.BlockResult.CANCELLED) { | |
| const secondCancel = await this.onBlock(acquired); | |
| if (secondCancel !== AsyncTask.BlockResult.NOT_CANCELLED) { | |
| throw new Error("uncancellable callback task was canceled despite second onBlock()"); | |
| } | |
| } | |
| } | |
| if (cancelled === AsyncTask.BlockResult.CANCELLED) { | |
| if (this.#state !== AsyncTask.State.INITIAL) { | |
| throw new Error("cancelled task is not at initial state"); | |
| } | |
| if (isCancellable) { | |
| this.#state = AsyncTask.State.CANCELLED; | |
| return AsyncTask.BlockResult.CANCELLED; | |
| } else { | |
| this.#state = AsyncTask.State.CANCEL_PENDING; | |
| return AsyncTask.BlockResult.NOT_CANCELLED; | |
| } | |
| } | |
| return AsyncTask.BlockResult.NOT_CANCELLED; | |
| } | |
| async onBlock(awaitable2) { | |
| _debugLog("[AsyncTask#onBlock()] args", { taskID: this.#id, awaitable: awaitable2 }); | |
| if (!(awaitable2 instanceof Awaitable)) { | |
| throw new Error("invalid awaitable during onBlock"); | |
| } | |
| const { promise: promise2, resolve: resolve2, reject: reject2 } = Promise.withResolvers(); | |
| this.awaitableResume = () => { | |
| _debugLog("[AsyncTask] resuming after onBlock", { taskID: this.#id }); | |
| resolve2(); | |
| }; | |
| this.awaitableCancel = (err) => { | |
| _debugLog("[AsyncTask] rejecting after onBlock", { taskID: this.#id, err }); | |
| reject2(err); | |
| }; | |
| const state = getOrCreateAsyncState(this.#componentIdx); | |
| state.parkTaskOnAwaitable({ awaitable: awaitable2, task: this }); | |
| try { | |
| await promise2; | |
| return AsyncTask.BlockResult.NOT_CANCELLED; | |
| } catch (err) { | |
| return AsyncTask.BlockResult.CANCELLED; | |
| } | |
| } | |
| async asyncOnBlock(awaitable2) { | |
| _debugLog("[AsyncTask#asyncOnBlock()] args", { taskID: this.#id, awaitable: awaitable2 }); | |
| if (!(awaitable2 instanceof Awaitable)) { | |
| throw new Error("invalid awaitable during onBlock"); | |
| } | |
| throw new Error("AsyncTask#asyncOnBlock() not yet implemented"); | |
| } | |
| async yield(opts) { | |
| const { isCancellable, forCallback } = opts; | |
| _debugLog("[AsyncTask#yield()] args", { taskID: this.#id, isCancellable, forCallback }); | |
| if (isCancellable && this.status === AsyncTask.State.CANCEL_PENDING) { | |
| this.#state = AsyncTask.State.CANCELLED; | |
| return { | |
| code: ASYNC_EVENT_CODE.TASK_CANCELLED, | |
| payload: [0, 0] | |
| }; | |
| } | |
| const blockResult = await this.blockOn({ | |
| awaitable: new Awaitable(new Promise((resolve2) => setTimeout(resolve2, 0))), | |
| isCancellable, | |
| forCallback | |
| }); | |
| if (blockResult === AsyncTask.BlockResult.CANCELLED) { | |
| if (this.#state !== AsyncTask.State.INITIAL) { | |
| throw new Error("task should be in initial state found [" + this.#state + "]"); | |
| } | |
| this.#state = AsyncTask.State.CANCELLED; | |
| return { | |
| code: ASYNC_EVENT_CODE.TASK_CANCELLED, | |
| payload: [0, 0] | |
| }; | |
| } | |
| return { | |
| code: ASYNC_EVENT_CODE.NONE, | |
| payload: [0, 0] | |
| }; | |
| } | |
| yieldSync(opts) { | |
| throw new Error("AsyncTask#yieldSync() not implemented"); | |
| } | |
| cancel() { | |
| _debugLog("[AsyncTask#cancel()] args", {}); | |
| if (!this.taskState() !== AsyncTask.State.CANCEL_DELIVERED) { | |
| throw new Error("invalid task state for cancellation"); | |
| } | |
| if (this.borrowedHandles.length > 0) { | |
| throw new Error("task still has borrow handles"); | |
| } | |
| this.#onResolve([]); | |
| this.#state = AsyncTask.State.RESOLVED; | |
| } | |
| resolve(result) { | |
| if (this.#state === AsyncTask.State.RESOLVED) { | |
| throw new Error("task is already resolved"); | |
| } | |
| if (this.borrowedHandles.length > 0) { | |
| throw new Error("task still has borrow handles"); | |
| } | |
| this.#onResolve(result); | |
| this.#state = AsyncTask.State.RESOLVED; | |
| } | |
| exit() { | |
| if (this.#state !== AsyncTask.State.RESOLVED) { | |
| throw new Error("task exited without resolution"); | |
| } | |
| if (this.borrowedHandles > 0) { | |
| throw new Error("task exited without clearing borrowed handles"); | |
| } | |
| const state = getOrCreateAsyncState(this.#componentIdx); | |
| if (!state) { | |
| throw new Error("missing async state for component [" + this.#componentIdx + "]"); | |
| } | |
| if (!this.#isAsync && !state.inSyncExportCall) { | |
| throw new Error("sync task must be run from components known to be in a sync export call"); | |
| } | |
| state.inSyncExportCall = false; | |
| this.startPendingTask(); | |
| } | |
| startPendingTask(opts) {} | |
| } | |
| function unpackCallbackResult(result) { | |
| _debugLog("[unpackCallbackResult()] args", { result }); | |
| if (!_typeCheckValidI32(result)) { | |
| throw new Error("invalid callback return value [" + result + "], not a valid i32"); | |
| } | |
| const eventCode = result & 15; | |
| if (eventCode < 0 || eventCode > 3) { | |
| throw new Error("invalid async return value [" + eventCode + "], outside callback code range"); | |
| } | |
| if (result < 0 || result >= 4294967296) { | |
| throw new Error("invalid callback result"); | |
| } | |
| const waitableSetIdx = result >> 4; | |
| return [eventCode, waitableSetIdx]; | |
| } | |
| const ASYNC_STATE = /* @__PURE__ */ new Map; | |
| function getOrCreateAsyncState(componentIdx, init) { | |
| if (!ASYNC_STATE.has(componentIdx)) { | |
| ASYNC_STATE.set(componentIdx, new ComponentAsyncState); | |
| } | |
| return ASYNC_STATE.get(componentIdx); | |
| } | |
| class ComponentAsyncState { | |
| #callingAsyncImport = false; | |
| #syncImportWait = Promise.withResolvers(); | |
| #lock = null; | |
| mayLeave = false; | |
| waitableSets = new RepTable; | |
| waitables = new RepTable; | |
| #parkedTasks = /* @__PURE__ */ new Map; | |
| callingSyncImport(val) { | |
| if (val === undefined) { | |
| return this.#callingAsyncImport; | |
| } | |
| if (typeof val !== "boolean") { | |
| throw new TypeError("invalid setting for async import"); | |
| } | |
| const prev = this.#callingAsyncImport; | |
| this.#callingAsyncImport = val; | |
| if (prev === true && this.#callingAsyncImport === false) { | |
| this.#notifySyncImportEnd(); | |
| } | |
| } | |
| #notifySyncImportEnd() { | |
| const existing = this.#syncImportWait; | |
| this.#syncImportWait = Promise.withResolvers(); | |
| existing.resolve(); | |
| } | |
| async waitForSyncImportCallEnd() { | |
| await this.#syncImportWait.promise; | |
| } | |
| parkTaskOnAwaitable(args) { | |
| if (!args.awaitable) { | |
| throw new TypeError("missing awaitable when trying to park"); | |
| } | |
| if (!args.task) { | |
| throw new TypeError("missing task when trying to park"); | |
| } | |
| const { awaitable: awaitable2, task } = args; | |
| let taskList = this.#parkedTasks.get(awaitable2.id()); | |
| if (!taskList) { | |
| taskList = []; | |
| this.#parkedTasks.set(awaitable2.id(), taskList); | |
| } | |
| taskList.push(task); | |
| this.wakeNextTaskForAwaitable(awaitable2); | |
| } | |
| wakeNextTaskForAwaitable(awaitable2) { | |
| if (!awaitable2) { | |
| throw new TypeError("missing awaitable when waking next task"); | |
| } | |
| const awaitableID = awaitable2.id(); | |
| const taskList = this.#parkedTasks.get(awaitableID); | |
| if (!taskList || taskList.length === 0) { | |
| _debugLog("[ComponentAsyncState] no tasks waiting for awaitable", { awaitableID: awaitable2.id() }); | |
| return; | |
| } | |
| let task = taskList.shift(); | |
| if (!task) { | |
| throw new Error("no task in parked list despite previous check"); | |
| } | |
| if (!task.awaitableResume) { | |
| throw new Error("task ready due to awaitable is missing resume", { taskID: task.id(), awaitableID }); | |
| } | |
| task.awaitableResume(); | |
| } | |
| async exclusiveLock() { | |
| if (this.#lock === null) { | |
| this.#lock = { ticket: 0n }; | |
| } | |
| const ticket = ++this.#lock.ticket; | |
| _debugLog("[ComponentAsyncState#exclusiveLock()] locking", { | |
| currentTicket: ticket - 1n, | |
| ticket | |
| }); | |
| let finishedTicket; | |
| while (this.#lock.promise) { | |
| finishedTicket = await this.#lock.promise; | |
| if (finishedTicket === ticket - 1n) { | |
| break; | |
| } | |
| } | |
| const { promise: promise2, resolve: resolve2 } = Promise.withResolvers(); | |
| this.#lock = { | |
| ticket, | |
| promise: promise2, | |
| resolve: resolve2 | |
| }; | |
| return this.#lock.promise; | |
| } | |
| exclusiveRelease() { | |
| _debugLog("[ComponentAsyncState#exclusiveRelease()] releasing", { | |
| currentTicket: this.#lock === null ? "none" : this.#lock.ticket | |
| }); | |
| if (this.#lock === null) { | |
| return; | |
| } | |
| const existingLock = this.#lock; | |
| this.#lock = null; | |
| existingLock.resolve(existingLock.ticket); | |
| } | |
| isExclusivelyLocked() { | |
| return this.#lock !== null; | |
| } | |
| } | |
| if (!Promise.withResolvers) { | |
| Promise.withResolvers = () => { | |
| let resolve2; | |
| let reject2; | |
| const promise2 = new Promise((res, rej) => { | |
| resolve2 = res; | |
| reject2 = rej; | |
| }); | |
| return { promise: promise2, resolve: resolve2, reject: reject2 }; | |
| }; | |
| } | |
| const _debugLog = (...args) => { | |
| if (!globalThis?.process?.env?.JCO_DEBUG) { | |
| return; | |
| } | |
| console.debug(...args); | |
| }; | |
| const ASYNC_DETERMINISM = "random"; | |
| const _coinFlip = () => { | |
| return Math.random() > 0.5; | |
| }; | |
| const I32_MAX = 2147483647; | |
| const I32_MIN = -2147483648; | |
| const _typeCheckValidI32 = (n) => typeof n === "number" && n >= I32_MIN && n <= I32_MAX; | |
| const isNode = typeof process !== "undefined" && process.versions && process.versions.node; | |
| let _fs; | |
| async function fetchCompile(url) { | |
| if (isNode) { | |
| _fs = _fs || await import("node:fs/promises"); | |
| return WebAssembly.compile(await _fs.readFile(url)); | |
| } | |
| return fetch(url).then(WebAssembly.compileStreaming); | |
| } | |
| const symbolCabiDispose = Symbol.for("cabiDispose"); | |
| const symbolRscHandle = Symbol("handle"); | |
| const symbolRscRep = Symbol.for("cabiRep"); | |
| const symbolDispose = Symbol.dispose || Symbol.for("dispose"); | |
| const handleTables = []; | |
| class ComponentError extends Error { | |
| constructor(value) { | |
| const enumerable = typeof value !== "string"; | |
| super(enumerable ? `${String(value)} (see error.payload)` : value); | |
| Object.defineProperty(this, "payload", { value, enumerable }); | |
| } | |
| } | |
| function getErrorPayload(e) { | |
| if (e && hasOwnProperty.call(e, "payload")) | |
| return e.payload; | |
| if (e instanceof Error) | |
| throw e; | |
| return e; | |
| } | |
| class RepTable { | |
| #data = [0, null]; | |
| insert(val) { | |
| _debugLog("[RepTable#insert()] args", { val }); | |
| const freeIdx = this.#data[0]; | |
| if (freeIdx === 0) { | |
| this.#data.push(val); | |
| this.#data.push(null); | |
| return (this.#data.length >> 1) - 1; | |
| } | |
| this.#data[0] = this.#data[freeIdx]; | |
| const newFreeIdx = freeIdx << 1; | |
| this.#data[newFreeIdx] = val; | |
| this.#data[newFreeIdx + 1] = null; | |
| return free; | |
| } | |
| get(rep) { | |
| _debugLog("[RepTable#insert()] args", { rep }); | |
| const baseIdx = idx << 1; | |
| const val = this.#data[baseIdx]; | |
| return val; | |
| } | |
| contains(rep) { | |
| _debugLog("[RepTable#insert()] args", { rep }); | |
| const baseIdx = idx << 1; | |
| return !!this.#data[baseIdx]; | |
| } | |
| remove(rep) { | |
| _debugLog("[RepTable#insert()] args", { idx }); | |
| if (this.#data.length === 2) { | |
| throw new Error("invalid"); | |
| } | |
| const baseIdx = idx << 1; | |
| const val = this.#data[baseIdx]; | |
| if (val === 0) { | |
| throw new Error("invalid resource rep (cannot be 0)"); | |
| } | |
| this.#data[baseIdx] = this.#data[0]; | |
| this.#data[0] = idx; | |
| return val; | |
| } | |
| clear() { | |
| this.#data = [0, null]; | |
| } | |
| } | |
| const hasOwnProperty = Object.prototype.hasOwnProperty; | |
| if (!getCoreModule) | |
| getCoreModule = (name) => fetchCompile(new URL(`./${name}`, import.meta.url)); | |
| const module0 = getCoreModule("llvm.core.wasm"); | |
| const module1 = getCoreModule("llvm.core2.wasm"); | |
| const module2 = getCoreModule("llvm.core3.wasm"); | |
| const module3 = getCoreModule("llvm.core4.wasm"); | |
| const { cli, fs, io, monotonicClock, random, wallClock } = imports.runtime; | |
| const { | |
| TerminalInput: TerminalInput2, | |
| TerminalOutput: TerminalOutput2, | |
| exit, | |
| getArguments, | |
| getEnvironment, | |
| getStderr, | |
| getStdin, | |
| getStdout, | |
| getTerminalStderr, | |
| getTerminalStdin, | |
| getTerminalStdout | |
| } = cli; | |
| const { | |
| Descriptor: Descriptor2, | |
| DirectoryEntryStream: DirectoryEntryStream2, | |
| filesystemErrorCode, | |
| getDirectories | |
| } = fs; | |
| const { | |
| Error: Error$1, | |
| InputStream: InputStream2, | |
| OutputStream: OutputStream2, | |
| Pollable, | |
| poll | |
| } = io; | |
| const { | |
| now, | |
| subscribeDuration, | |
| subscribeInstant | |
| } = monotonicClock; | |
| const { getRandomBytes } = random; | |
| const { now: now$1 } = wallClock; | |
| let gen = function* init() { | |
| let exports0; | |
| let exports1; | |
| function trampoline0() { | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="now"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "now"); | |
| const ret = now(); | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="now"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="now"][Instruction::Return]', { | |
| funcName: "now", | |
| paramCount: 1, | |
| postReturn: false | |
| }); | |
| return toUint64(ret); | |
| } | |
| const handleTable1 = [T_FLAG, 0]; | |
| const captureTable1 = /* @__PURE__ */ new Map; | |
| let captureCnt1 = 0; | |
| handleTables[1] = handleTable1; | |
| function trampoline6(arg0) { | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="subscribe-duration"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "subscribe-duration"); | |
| const ret = subscribeDuration(BigInt.asUintN(64, arg0)); | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="subscribe-duration"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| if (!(ret instanceof Pollable)) { | |
| throw new TypeError('Resource error: Not a valid "Pollable" resource.'); | |
| } | |
| var handle0 = ret[symbolRscHandle]; | |
| if (!handle0) { | |
| const rep = ret[symbolRscRep] || ++captureCnt1; | |
| captureTable1.set(rep, ret); | |
| handle0 = rscTableCreateOwn(handleTable1, rep); | |
| } | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="subscribe-duration"][Instruction::Return]', { | |
| funcName: "subscribe-duration", | |
| paramCount: 1, | |
| postReturn: false | |
| }); | |
| return handle0; | |
| } | |
| function trampoline7(arg0) { | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="subscribe-instant"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "subscribe-instant"); | |
| const ret = subscribeInstant(BigInt.asUintN(64, arg0)); | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="subscribe-instant"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| if (!(ret instanceof Pollable)) { | |
| throw new TypeError('Resource error: Not a valid "Pollable" resource.'); | |
| } | |
| var handle0 = ret[symbolRscHandle]; | |
| if (!handle0) { | |
| const rep = ret[symbolRscRep] || ++captureCnt1; | |
| captureTable1.set(rep, ret); | |
| handle0 = rscTableCreateOwn(handleTable1, rep); | |
| } | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="subscribe-instant"][Instruction::Return]', { | |
| funcName: "subscribe-instant", | |
| paramCount: 1, | |
| postReturn: false | |
| }); | |
| return handle0; | |
| } | |
| const handleTable3 = [T_FLAG, 0]; | |
| const captureTable3 = /* @__PURE__ */ new Map; | |
| let captureCnt3 = 0; | |
| handleTables[3] = handleTable3; | |
| function trampoline8(arg0) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable3[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable3.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(OutputStream2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.subscribe"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]output-stream.subscribe"); | |
| const ret = rsc0.subscribe(); | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.subscribe"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| if (!(ret instanceof Pollable)) { | |
| throw new TypeError('Resource error: Not a valid "Pollable" resource.'); | |
| } | |
| var handle3 = ret[symbolRscHandle]; | |
| if (!handle3) { | |
| const rep = ret[symbolRscRep] || ++captureCnt1; | |
| captureTable1.set(rep, ret); | |
| handle3 = rscTableCreateOwn(handleTable1, rep); | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.subscribe"][Instruction::Return]', { | |
| funcName: "[method]output-stream.subscribe", | |
| paramCount: 1, | |
| postReturn: false | |
| }); | |
| return handle3; | |
| } | |
| const handleTable2 = [T_FLAG, 0]; | |
| const captureTable2 = /* @__PURE__ */ new Map; | |
| let captureCnt2 = 0; | |
| handleTables[2] = handleTable2; | |
| function trampoline9(arg0) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable2.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(InputStream2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]input-stream.subscribe"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]input-stream.subscribe"); | |
| const ret = rsc0.subscribe(); | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]input-stream.subscribe"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| if (!(ret instanceof Pollable)) { | |
| throw new TypeError('Resource error: Not a valid "Pollable" resource.'); | |
| } | |
| var handle3 = ret[symbolRscHandle]; | |
| if (!handle3) { | |
| const rep = ret[symbolRscRep] || ++captureCnt1; | |
| captureTable1.set(rep, ret); | |
| handle3 = rscTableCreateOwn(handleTable1, rep); | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]input-stream.subscribe"][Instruction::Return]', { | |
| funcName: "[method]input-stream.subscribe", | |
| paramCount: 1, | |
| postReturn: false | |
| }); | |
| return handle3; | |
| } | |
| function trampoline11() { | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-stderr"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "get-stderr"); | |
| const ret = getStderr(); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-stderr"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| if (!(ret instanceof OutputStream2)) { | |
| throw new TypeError('Resource error: Not a valid "OutputStream" resource.'); | |
| } | |
| var handle0 = ret[symbolRscHandle]; | |
| if (!handle0) { | |
| const rep = ret[symbolRscRep] || ++captureCnt3; | |
| captureTable3.set(rep, ret); | |
| handle0 = rscTableCreateOwn(handleTable3, rep); | |
| } | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-stderr"][Instruction::Return]', { | |
| funcName: "get-stderr", | |
| paramCount: 1, | |
| postReturn: false | |
| }); | |
| return handle0; | |
| } | |
| function trampoline14() { | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-stdin"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "get-stdin"); | |
| const ret = getStdin(); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-stdin"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| if (!(ret instanceof InputStream2)) { | |
| throw new TypeError('Resource error: Not a valid "InputStream" resource.'); | |
| } | |
| var handle0 = ret[symbolRscHandle]; | |
| if (!handle0) { | |
| const rep = ret[symbolRscRep] || ++captureCnt2; | |
| captureTable2.set(rep, ret); | |
| handle0 = rscTableCreateOwn(handleTable2, rep); | |
| } | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-stdin"][Instruction::Return]', { | |
| funcName: "get-stdin", | |
| paramCount: 1, | |
| postReturn: false | |
| }); | |
| return handle0; | |
| } | |
| function trampoline15() { | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-stdout"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "get-stdout"); | |
| const ret = getStdout(); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-stdout"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| if (!(ret instanceof OutputStream2)) { | |
| throw new TypeError('Resource error: Not a valid "OutputStream" resource.'); | |
| } | |
| var handle0 = ret[symbolRscHandle]; | |
| if (!handle0) { | |
| const rep = ret[symbolRscRep] || ++captureCnt3; | |
| captureTable3.set(rep, ret); | |
| handle0 = rscTableCreateOwn(handleTable3, rep); | |
| } | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-stdout"][Instruction::Return]', { | |
| funcName: "get-stdout", | |
| paramCount: 1, | |
| postReturn: false | |
| }); | |
| return handle0; | |
| } | |
| function trampoline16(arg0) { | |
| let variant0; | |
| switch (arg0) { | |
| case 0: { | |
| variant0 = { | |
| tag: "ok", | |
| val: undefined | |
| }; | |
| break; | |
| } | |
| case 1: { | |
| variant0 = { | |
| tag: "err", | |
| val: undefined | |
| }; | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant discriminant for expected"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:cli/[email protected]", function="exit"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "exit"); | |
| exit(variant0); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="exit"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="exit"][Instruction::Return]', { | |
| funcName: "exit", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| let exports2; | |
| let memory0; | |
| let realloc0; | |
| function trampoline17(arg0) { | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-arguments"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "get-arguments"); | |
| const ret = getArguments(); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-arguments"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| var vec1 = ret; | |
| var len1 = vec1.length; | |
| var result1 = realloc0(0, 0, 4, len1 * 8); | |
| for (let i = 0;i < vec1.length; i++) { | |
| const e = vec1[i]; | |
| const base = result1 + i * 8; | |
| var ptr0 = utf8Encode(e, realloc0, memory0); | |
| var len0 = utf8EncodedLen; | |
| dataView(memory0).setUint32(base + 4, len0, true); | |
| dataView(memory0).setUint32(base + 0, ptr0, true); | |
| } | |
| dataView(memory0).setUint32(arg0 + 4, len1, true); | |
| dataView(memory0).setUint32(arg0 + 0, result1, true); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-arguments"][Instruction::Return]', { | |
| funcName: "get-arguments", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline18(arg0) { | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-environment"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "get-environment"); | |
| const ret = getEnvironment(); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-environment"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| var vec3 = ret; | |
| var len3 = vec3.length; | |
| var result3 = realloc0(0, 0, 4, len3 * 16); | |
| for (let i = 0;i < vec3.length; i++) { | |
| const e = vec3[i]; | |
| const base = result3 + i * 16; | |
| var [tuple0_0, tuple0_1] = e; | |
| var ptr1 = utf8Encode(tuple0_0, realloc0, memory0); | |
| var len1 = utf8EncodedLen; | |
| dataView(memory0).setUint32(base + 4, len1, true); | |
| dataView(memory0).setUint32(base + 0, ptr1, true); | |
| var ptr2 = utf8Encode(tuple0_1, realloc0, memory0); | |
| var len2 = utf8EncodedLen; | |
| dataView(memory0).setUint32(base + 12, len2, true); | |
| dataView(memory0).setUint32(base + 8, ptr2, true); | |
| } | |
| dataView(memory0).setUint32(arg0 + 4, len3, true); | |
| dataView(memory0).setUint32(arg0 + 0, result3, true); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-environment"][Instruction::Return]', { | |
| funcName: "get-environment", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline19(arg0) { | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="now"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "now"); | |
| const ret = now$1(); | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="now"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| var { seconds: v0_0, nanoseconds: v0_1 } = ret; | |
| dataView(memory0).setBigInt64(arg0 + 0, toUint64(v0_0), true); | |
| dataView(memory0).setInt32(arg0 + 8, toUint32(v0_1), true); | |
| _debugLog('[iface="wasi:clocks/[email protected]", function="now"][Instruction::Return]', { | |
| funcName: "now", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| const handleTable7 = [T_FLAG, 0]; | |
| const captureTable7 = /* @__PURE__ */ new Map; | |
| let captureCnt7 = 0; | |
| handleTables[7] = handleTable7; | |
| function trampoline20(arg0, arg1) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.get-flags"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.get-flags"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.getFlags() }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.get-flags"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 0, true); | |
| let flags3 = 0; | |
| if (typeof e === "object" && e !== null) { | |
| flags3 = Boolean(e.read) << 0 | Boolean(e.write) << 1 | Boolean(e.fileIntegritySync) << 2 | Boolean(e.dataIntegritySync) << 3 | Boolean(e.requestedWriteSync) << 4 | Boolean(e.mutateDirectory) << 5; | |
| } else if (e !== null && e !== undefined) { | |
| throw new TypeError("only an object, undefined or null can be converted to flags"); | |
| } | |
| dataView(memory0).setInt8(arg1 + 1, flags3, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 1, true); | |
| var val4 = e; | |
| let enum4; | |
| switch (val4) { | |
| case "access": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum4 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum4 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum4 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum4 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum4 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum4 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum4 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum4 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum4 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum4 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum4 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum4 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum4 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum4 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum4 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum4 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum4 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum4 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum4 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum4 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum4 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum4 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum4 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum4 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum4 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum4 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum4 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum4 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum4 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum4 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 1, enum4, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.get-flags"][Instruction::Return]', { | |
| funcName: "[method]descriptor.get-flags", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline21(arg0, arg1) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.get-type"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.get-type"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.getType() }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.get-type"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 0, true); | |
| var val3 = e; | |
| let enum3; | |
| switch (val3) { | |
| case "unknown": { | |
| enum3 = 0; | |
| break; | |
| } | |
| case "block-device": { | |
| enum3 = 1; | |
| break; | |
| } | |
| case "character-device": { | |
| enum3 = 2; | |
| break; | |
| } | |
| case "directory": { | |
| enum3 = 3; | |
| break; | |
| } | |
| case "fifo": { | |
| enum3 = 4; | |
| break; | |
| } | |
| case "symbolic-link": { | |
| enum3 = 5; | |
| break; | |
| } | |
| case "regular-file": { | |
| enum3 = 6; | |
| break; | |
| } | |
| case "socket": { | |
| enum3 = 7; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val3}" is not one of the cases of descriptor-type`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 1, enum3, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 1, true); | |
| var val4 = e; | |
| let enum4; | |
| switch (val4) { | |
| case "access": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum4 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum4 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum4 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum4 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum4 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum4 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum4 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum4 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum4 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum4 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum4 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum4 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum4 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum4 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum4 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum4 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum4 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum4 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum4 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum4 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum4 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum4 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum4 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum4 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum4 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum4 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum4 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum4 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum4 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum4 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 1, enum4, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.get-type"][Instruction::Return]', { | |
| funcName: "[method]descriptor.get-type", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline22(arg0, arg1) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.metadata-hash"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.metadata-hash"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.metadataHash() }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.metadata-hash"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 0, true); | |
| var { lower: v3_0, upper: v3_1 } = e; | |
| dataView(memory0).setBigInt64(arg1 + 8, toUint64(v3_0), true); | |
| dataView(memory0).setBigInt64(arg1 + 16, toUint64(v3_1), true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 1, true); | |
| var val4 = e; | |
| let enum4; | |
| switch (val4) { | |
| case "access": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum4 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum4 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum4 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum4 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum4 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum4 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum4 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum4 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum4 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum4 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum4 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum4 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum4 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum4 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum4 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum4 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum4 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum4 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum4 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum4 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum4 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum4 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum4 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum4 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum4 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum4 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum4 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum4 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum4 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum4 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 8, enum4, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.metadata-hash"][Instruction::Return]', { | |
| funcName: "[method]descriptor.metadata-hash", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline23(arg0, arg1, arg2) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.set-size"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.set-size"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.setSize(BigInt.asUintN(64, arg1)) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.set-size"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant4 = ret; | |
| switch (variant4.tag) { | |
| case "ok": { | |
| const e = variant4.val; | |
| dataView(memory0).setInt8(arg2 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant4.val; | |
| dataView(memory0).setInt8(arg2 + 0, 1, true); | |
| var val3 = e; | |
| let enum3; | |
| switch (val3) { | |
| case "access": { | |
| enum3 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum3 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum3 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum3 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum3 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum3 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum3 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum3 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum3 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum3 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum3 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum3 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum3 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum3 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum3 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum3 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum3 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum3 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum3 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum3 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum3 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum3 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum3 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum3 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum3 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum3 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum3 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum3 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum3 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum3 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum3 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum3 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum3 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum3 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum3 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum3 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum3 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val3}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg2 + 1, enum3, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.set-size"][Instruction::Return]', { | |
| funcName: "[method]descriptor.set-size", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| const handleTable0 = [T_FLAG, 0]; | |
| const captureTable0 = /* @__PURE__ */ new Map; | |
| let captureCnt0 = 0; | |
| handleTables[0] = handleTable0; | |
| function trampoline24(arg0, arg1) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable0[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable0.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Error$1.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="filesystem-error-code"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "filesystem-error-code"); | |
| const ret = filesystemErrorCode(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="filesystem-error-code"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant4 = ret; | |
| if (variant4 === null || variant4 === undefined) { | |
| dataView(memory0).setInt8(arg1 + 0, 0, true); | |
| } else { | |
| const e = variant4; | |
| dataView(memory0).setInt8(arg1 + 0, 1, true); | |
| var val3 = e; | |
| let enum3; | |
| switch (val3) { | |
| case "access": { | |
| enum3 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum3 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum3 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum3 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum3 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum3 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum3 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum3 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum3 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum3 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum3 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum3 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum3 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum3 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum3 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum3 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum3 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum3 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum3 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum3 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum3 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum3 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum3 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum3 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum3 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum3 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum3 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum3 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum3 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum3 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum3 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum3 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum3 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum3 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum3 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum3 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum3 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val3}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 1, enum3, true); | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="filesystem-error-code"][Instruction::Return]', { | |
| funcName: "filesystem-error-code", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline25(arg0, arg1, arg2, arg3, arg4) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| if ((arg1 & 4294967294) !== 0) { | |
| throw new TypeError("flags have extraneous bits set"); | |
| } | |
| var flags3 = { | |
| symlinkFollow: Boolean(arg1 & 1) | |
| }; | |
| var ptr4 = arg2; | |
| var len4 = arg3; | |
| var result4 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr4, len4)); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.metadata-hash-at"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.metadata-hash-at"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.metadataHashAt(flags3, result4) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.metadata-hash-at"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant7 = ret; | |
| switch (variant7.tag) { | |
| case "ok": { | |
| const e = variant7.val; | |
| dataView(memory0).setInt8(arg4 + 0, 0, true); | |
| var { lower: v5_0, upper: v5_1 } = e; | |
| dataView(memory0).setBigInt64(arg4 + 8, toUint64(v5_0), true); | |
| dataView(memory0).setBigInt64(arg4 + 16, toUint64(v5_1), true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant7.val; | |
| dataView(memory0).setInt8(arg4 + 0, 1, true); | |
| var val6 = e; | |
| let enum6; | |
| switch (val6) { | |
| case "access": { | |
| enum6 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum6 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum6 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum6 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum6 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum6 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum6 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum6 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum6 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum6 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum6 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum6 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum6 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum6 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum6 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum6 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum6 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum6 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum6 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum6 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum6 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum6 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum6 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum6 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum6 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum6 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum6 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum6 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum6 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum6 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum6 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum6 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum6 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum6 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum6 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum6 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum6 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val6}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg4 + 8, enum6, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.metadata-hash-at"][Instruction::Return]', { | |
| funcName: "[method]descriptor.metadata-hash-at", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline26(arg0, arg1, arg2, arg3) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| var ptr3 = arg1; | |
| var len3 = arg2; | |
| var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3)); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.create-directory-at"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.create-directory-at"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.createDirectoryAt(result3) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.create-directory-at"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg3 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg3 + 0, 1, true); | |
| var val4 = e; | |
| let enum4; | |
| switch (val4) { | |
| case "access": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum4 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum4 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum4 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum4 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum4 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum4 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum4 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum4 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum4 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum4 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum4 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum4 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum4 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum4 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum4 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum4 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum4 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum4 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum4 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum4 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum4 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum4 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum4 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum4 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum4 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum4 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum4 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum4 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum4 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum4 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg3 + 1, enum4, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.create-directory-at"][Instruction::Return]', { | |
| funcName: "[method]descriptor.create-directory-at", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline27(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| if ((arg1 & 4294967294) !== 0) { | |
| throw new TypeError("flags have extraneous bits set"); | |
| } | |
| var flags3 = { | |
| symlinkFollow: Boolean(arg1 & 1) | |
| }; | |
| var ptr4 = arg2; | |
| var len4 = arg3; | |
| var result4 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr4, len4)); | |
| var handle6 = arg4; | |
| var rep7 = handleTable7[(handle6 << 1) + 1] & ~T_FLAG; | |
| var rsc5 = captureTable7.get(rep7); | |
| if (!rsc5) { | |
| rsc5 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc5, symbolRscHandle, { writable: true, value: handle6 }); | |
| Object.defineProperty(rsc5, symbolRscRep, { writable: true, value: rep7 }); | |
| } | |
| curResourceBorrows.push(rsc5); | |
| var ptr8 = arg5; | |
| var len8 = arg6; | |
| var result8 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr8, len8)); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.link-at"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.link-at"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.linkAt(flags3, result4, rsc5, result8) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.link-at"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant10 = ret; | |
| switch (variant10.tag) { | |
| case "ok": { | |
| const e = variant10.val; | |
| dataView(memory0).setInt8(arg7 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant10.val; | |
| dataView(memory0).setInt8(arg7 + 0, 1, true); | |
| var val9 = e; | |
| let enum9; | |
| switch (val9) { | |
| case "access": { | |
| enum9 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum9 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum9 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum9 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum9 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum9 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum9 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum9 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum9 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum9 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum9 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum9 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum9 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum9 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum9 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum9 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum9 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum9 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum9 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum9 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum9 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum9 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum9 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum9 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum9 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum9 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum9 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum9 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum9 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum9 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum9 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum9 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum9 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum9 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum9 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum9 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum9 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val9}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg7 + 1, enum9, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.link-at"][Instruction::Return]', { | |
| funcName: "[method]descriptor.link-at", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline28(arg0, arg1, arg2, arg3) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| var ptr3 = arg1; | |
| var len3 = arg2; | |
| var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3)); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.readlink-at"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.readlink-at"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.readlinkAt(result3) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.readlink-at"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant6 = ret; | |
| switch (variant6.tag) { | |
| case "ok": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg3 + 0, 0, true); | |
| var ptr4 = utf8Encode(e, realloc0, memory0); | |
| var len4 = utf8EncodedLen; | |
| dataView(memory0).setUint32(arg3 + 8, len4, true); | |
| dataView(memory0).setUint32(arg3 + 4, ptr4, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg3 + 0, 1, true); | |
| var val5 = e; | |
| let enum5; | |
| switch (val5) { | |
| case "access": { | |
| enum5 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum5 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum5 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum5 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum5 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum5 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum5 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum5 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum5 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum5 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum5 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum5 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum5 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum5 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum5 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum5 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum5 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum5 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum5 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum5 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum5 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum5 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum5 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum5 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum5 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum5 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum5 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum5 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum5 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum5 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum5 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum5 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum5 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum5 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum5 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum5 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum5 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val5}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg3 + 4, enum5, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.readlink-at"][Instruction::Return]', { | |
| funcName: "[method]descriptor.readlink-at", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline29(arg0, arg1, arg2, arg3) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| var ptr3 = arg1; | |
| var len3 = arg2; | |
| var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3)); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.remove-directory-at"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.remove-directory-at"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.removeDirectoryAt(result3) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.remove-directory-at"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg3 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg3 + 0, 1, true); | |
| var val4 = e; | |
| let enum4; | |
| switch (val4) { | |
| case "access": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum4 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum4 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum4 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum4 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum4 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum4 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum4 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum4 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum4 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum4 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum4 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum4 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum4 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum4 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum4 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum4 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum4 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum4 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum4 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum4 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum4 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum4 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum4 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum4 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum4 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum4 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum4 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum4 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum4 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum4 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg3 + 1, enum4, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.remove-directory-at"][Instruction::Return]', { | |
| funcName: "[method]descriptor.remove-directory-at", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline30(arg0, arg1, arg2, arg3, arg4, arg5, arg6) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| var ptr3 = arg1; | |
| var len3 = arg2; | |
| var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3)); | |
| var handle5 = arg3; | |
| var rep6 = handleTable7[(handle5 << 1) + 1] & ~T_FLAG; | |
| var rsc4 = captureTable7.get(rep6); | |
| if (!rsc4) { | |
| rsc4 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc4, symbolRscHandle, { writable: true, value: handle5 }); | |
| Object.defineProperty(rsc4, symbolRscRep, { writable: true, value: rep6 }); | |
| } | |
| curResourceBorrows.push(rsc4); | |
| var ptr7 = arg4; | |
| var len7 = arg5; | |
| var result7 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr7, len7)); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.rename-at"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.rename-at"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.renameAt(result3, rsc4, result7) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.rename-at"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant9 = ret; | |
| switch (variant9.tag) { | |
| case "ok": { | |
| const e = variant9.val; | |
| dataView(memory0).setInt8(arg6 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant9.val; | |
| dataView(memory0).setInt8(arg6 + 0, 1, true); | |
| var val8 = e; | |
| let enum8; | |
| switch (val8) { | |
| case "access": { | |
| enum8 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum8 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum8 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum8 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum8 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum8 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum8 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum8 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum8 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum8 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum8 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum8 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum8 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum8 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum8 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum8 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum8 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum8 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum8 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum8 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum8 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum8 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum8 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum8 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum8 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum8 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum8 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum8 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum8 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum8 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum8 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum8 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum8 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum8 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum8 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum8 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum8 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val8}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg6 + 1, enum8, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.rename-at"][Instruction::Return]', { | |
| funcName: "[method]descriptor.rename-at", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline31(arg0, arg1, arg2, arg3, arg4, arg5) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| var ptr3 = arg1; | |
| var len3 = arg2; | |
| var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3)); | |
| var ptr4 = arg3; | |
| var len4 = arg4; | |
| var result4 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr4, len4)); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.symlink-at"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.symlink-at"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.symlinkAt(result3, result4) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.symlink-at"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant6 = ret; | |
| switch (variant6.tag) { | |
| case "ok": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg5 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg5 + 0, 1, true); | |
| var val5 = e; | |
| let enum5; | |
| switch (val5) { | |
| case "access": { | |
| enum5 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum5 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum5 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum5 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum5 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum5 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum5 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum5 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum5 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum5 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum5 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum5 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum5 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum5 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum5 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum5 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum5 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum5 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum5 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum5 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum5 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum5 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum5 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum5 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum5 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum5 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum5 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum5 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum5 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum5 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum5 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum5 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum5 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum5 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum5 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum5 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum5 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val5}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg5 + 1, enum5, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.symlink-at"][Instruction::Return]', { | |
| funcName: "[method]descriptor.symlink-at", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline32(arg0, arg1, arg2, arg3) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| var ptr3 = arg1; | |
| var len3 = arg2; | |
| var result3 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr3, len3)); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.unlink-file-at"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.unlink-file-at"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.unlinkFileAt(result3) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.unlink-file-at"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg3 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg3 + 0, 1, true); | |
| var val4 = e; | |
| let enum4; | |
| switch (val4) { | |
| case "access": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum4 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum4 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum4 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum4 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum4 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum4 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum4 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum4 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum4 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum4 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum4 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum4 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum4 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum4 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum4 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum4 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum4 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum4 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum4 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum4 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum4 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum4 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum4 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum4 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum4 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum4 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum4 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum4 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum4 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum4 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg3 + 1, enum4, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.unlink-file-at"][Instruction::Return]', { | |
| funcName: "[method]descriptor.unlink-file-at", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline33(arg0, arg1, arg2) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.read-via-stream"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.read-via-stream"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.readViaStream(BigInt.asUintN(64, arg1)) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.read-via-stream"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg2 + 0, 0, true); | |
| if (!(e instanceof InputStream2)) { | |
| throw new TypeError('Resource error: Not a valid "InputStream" resource.'); | |
| } | |
| var handle3 = e[symbolRscHandle]; | |
| if (!handle3) { | |
| const rep = e[symbolRscRep] || ++captureCnt2; | |
| captureTable2.set(rep, e); | |
| handle3 = rscTableCreateOwn(handleTable2, rep); | |
| } | |
| dataView(memory0).setInt32(arg2 + 4, handle3, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg2 + 0, 1, true); | |
| var val4 = e; | |
| let enum4; | |
| switch (val4) { | |
| case "access": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum4 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum4 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum4 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum4 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum4 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum4 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum4 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum4 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum4 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum4 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum4 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum4 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum4 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum4 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum4 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum4 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum4 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum4 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum4 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum4 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum4 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum4 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum4 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum4 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum4 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum4 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum4 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum4 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum4 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum4 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg2 + 4, enum4, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.read-via-stream"][Instruction::Return]', { | |
| funcName: "[method]descriptor.read-via-stream", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline34(arg0, arg1, arg2) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.write-via-stream"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.write-via-stream"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.writeViaStream(BigInt.asUintN(64, arg1)) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.write-via-stream"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg2 + 0, 0, true); | |
| if (!(e instanceof OutputStream2)) { | |
| throw new TypeError('Resource error: Not a valid "OutputStream" resource.'); | |
| } | |
| var handle3 = e[symbolRscHandle]; | |
| if (!handle3) { | |
| const rep = e[symbolRscRep] || ++captureCnt3; | |
| captureTable3.set(rep, e); | |
| handle3 = rscTableCreateOwn(handleTable3, rep); | |
| } | |
| dataView(memory0).setInt32(arg2 + 4, handle3, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg2 + 0, 1, true); | |
| var val4 = e; | |
| let enum4; | |
| switch (val4) { | |
| case "access": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum4 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum4 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum4 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum4 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum4 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum4 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum4 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum4 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum4 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum4 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum4 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum4 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum4 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum4 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum4 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum4 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum4 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum4 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum4 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum4 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum4 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum4 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum4 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum4 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum4 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum4 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum4 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum4 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum4 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum4 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg2 + 4, enum4, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.write-via-stream"][Instruction::Return]', { | |
| funcName: "[method]descriptor.write-via-stream", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline35(arg0, arg1) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.append-via-stream"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.append-via-stream"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.appendViaStream() }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.append-via-stream"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 0, true); | |
| if (!(e instanceof OutputStream2)) { | |
| throw new TypeError('Resource error: Not a valid "OutputStream" resource.'); | |
| } | |
| var handle3 = e[symbolRscHandle]; | |
| if (!handle3) { | |
| const rep = e[symbolRscRep] || ++captureCnt3; | |
| captureTable3.set(rep, e); | |
| handle3 = rscTableCreateOwn(handleTable3, rep); | |
| } | |
| dataView(memory0).setInt32(arg1 + 4, handle3, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 1, true); | |
| var val4 = e; | |
| let enum4; | |
| switch (val4) { | |
| case "access": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum4 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum4 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum4 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum4 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum4 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum4 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum4 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum4 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum4 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum4 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum4 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum4 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum4 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum4 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum4 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum4 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum4 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum4 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum4 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum4 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum4 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum4 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum4 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum4 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum4 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum4 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum4 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum4 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum4 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum4 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 4, enum4, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.append-via-stream"][Instruction::Return]', { | |
| funcName: "[method]descriptor.append-via-stream", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline36(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| let variant3; | |
| switch (arg1) { | |
| case 0: { | |
| variant3 = { | |
| tag: "no-change" | |
| }; | |
| break; | |
| } | |
| case 1: { | |
| variant3 = { | |
| tag: "now" | |
| }; | |
| break; | |
| } | |
| case 2: { | |
| variant3 = { | |
| tag: "timestamp", | |
| val: { | |
| seconds: BigInt.asUintN(64, arg2), | |
| nanoseconds: arg3 >>> 0 | |
| } | |
| }; | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant discriminant for NewTimestamp"); | |
| } | |
| } | |
| let variant4; | |
| switch (arg4) { | |
| case 0: { | |
| variant4 = { | |
| tag: "no-change" | |
| }; | |
| break; | |
| } | |
| case 1: { | |
| variant4 = { | |
| tag: "now" | |
| }; | |
| break; | |
| } | |
| case 2: { | |
| variant4 = { | |
| tag: "timestamp", | |
| val: { | |
| seconds: BigInt.asUintN(64, arg5), | |
| nanoseconds: arg6 >>> 0 | |
| } | |
| }; | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant discriminant for NewTimestamp"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.set-times"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.set-times"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.setTimes(variant3, variant4) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.set-times"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant6 = ret; | |
| switch (variant6.tag) { | |
| case "ok": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg7 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg7 + 0, 1, true); | |
| var val5 = e; | |
| let enum5; | |
| switch (val5) { | |
| case "access": { | |
| enum5 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum5 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum5 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum5 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum5 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum5 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum5 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum5 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum5 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum5 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum5 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum5 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum5 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum5 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum5 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum5 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum5 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum5 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum5 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum5 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum5 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum5 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum5 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum5 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum5 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum5 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum5 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum5 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum5 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum5 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum5 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum5 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum5 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum5 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum5 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum5 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum5 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val5}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg7 + 1, enum5, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.set-times"][Instruction::Return]', { | |
| funcName: "[method]descriptor.set-times", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline37(arg0, arg1, arg2, arg3) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.read"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.read"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.read(BigInt.asUintN(64, arg1), BigInt.asUintN(64, arg2)) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.read"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant6 = ret; | |
| switch (variant6.tag) { | |
| case "ok": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg3 + 0, 0, true); | |
| var [tuple3_0, tuple3_1] = e; | |
| var val4 = tuple3_0; | |
| var len4 = val4.byteLength; | |
| var ptr4 = realloc0(0, 0, 1, len4 * 1); | |
| var src4 = new Uint8Array(val4.buffer || val4, val4.byteOffset, len4 * 1); | |
| new Uint8Array(memory0.buffer, ptr4, len4 * 1).set(src4); | |
| dataView(memory0).setUint32(arg3 + 8, len4, true); | |
| dataView(memory0).setUint32(arg3 + 4, ptr4, true); | |
| dataView(memory0).setInt8(arg3 + 12, tuple3_1 ? 1 : 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg3 + 0, 1, true); | |
| var val5 = e; | |
| let enum5; | |
| switch (val5) { | |
| case "access": { | |
| enum5 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum5 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum5 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum5 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum5 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum5 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum5 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum5 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum5 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum5 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum5 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum5 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum5 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum5 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum5 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum5 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum5 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum5 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum5 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum5 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum5 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum5 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum5 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum5 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum5 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum5 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum5 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum5 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum5 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum5 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum5 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum5 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum5 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum5 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum5 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum5 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum5 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val5}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg3 + 4, enum5, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.read"][Instruction::Return]', { | |
| funcName: "[method]descriptor.read", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| const handleTable6 = [T_FLAG, 0]; | |
| const captureTable6 = /* @__PURE__ */ new Map; | |
| let captureCnt6 = 0; | |
| handleTables[6] = handleTable6; | |
| function trampoline38(arg0, arg1) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.read-directory"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.read-directory"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.readDirectory() }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.read-directory"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 0, true); | |
| if (!(e instanceof DirectoryEntryStream2)) { | |
| throw new TypeError('Resource error: Not a valid "DirectoryEntryStream" resource.'); | |
| } | |
| var handle3 = e[symbolRscHandle]; | |
| if (!handle3) { | |
| const rep = e[symbolRscRep] || ++captureCnt6; | |
| captureTable6.set(rep, e); | |
| handle3 = rscTableCreateOwn(handleTable6, rep); | |
| } | |
| dataView(memory0).setInt32(arg1 + 4, handle3, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 1, true); | |
| var val4 = e; | |
| let enum4; | |
| switch (val4) { | |
| case "access": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum4 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum4 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum4 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum4 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum4 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum4 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum4 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum4 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum4 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum4 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum4 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum4 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum4 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum4 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum4 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum4 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum4 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum4 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum4 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum4 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum4 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum4 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum4 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum4 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum4 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum4 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum4 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum4 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum4 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum4 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 4, enum4, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.read-directory"][Instruction::Return]', { | |
| funcName: "[method]descriptor.read-directory", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline39(arg0, arg1) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.stat"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.stat"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.stat() }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.stat"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant12 = ret; | |
| switch (variant12.tag) { | |
| case "ok": { | |
| const e = variant12.val; | |
| dataView(memory0).setInt8(arg1 + 0, 0, true); | |
| var { type: v3_0, linkCount: v3_1, size: v3_2, dataAccessTimestamp: v3_3, dataModificationTimestamp: v3_4, statusChangeTimestamp: v3_5 } = e; | |
| var val4 = v3_0; | |
| let enum4; | |
| switch (val4) { | |
| case "unknown": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "block-device": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "character-device": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "directory": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "fifo": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "symbolic-link": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "regular-file": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "socket": { | |
| enum4 = 7; | |
| break; | |
| } | |
| default: { | |
| if (v3_0 instanceof Error) { | |
| console.error(v3_0); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of descriptor-type`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 8, enum4, true); | |
| dataView(memory0).setBigInt64(arg1 + 16, toUint64(v3_1), true); | |
| dataView(memory0).setBigInt64(arg1 + 24, toUint64(v3_2), true); | |
| var variant6 = v3_3; | |
| if (variant6 === null || variant6 === undefined) { | |
| dataView(memory0).setInt8(arg1 + 32, 0, true); | |
| } else { | |
| const e2 = variant6; | |
| dataView(memory0).setInt8(arg1 + 32, 1, true); | |
| var { seconds: v5_0, nanoseconds: v5_1 } = e2; | |
| dataView(memory0).setBigInt64(arg1 + 40, toUint64(v5_0), true); | |
| dataView(memory0).setInt32(arg1 + 48, toUint32(v5_1), true); | |
| } | |
| var variant8 = v3_4; | |
| if (variant8 === null || variant8 === undefined) { | |
| dataView(memory0).setInt8(arg1 + 56, 0, true); | |
| } else { | |
| const e2 = variant8; | |
| dataView(memory0).setInt8(arg1 + 56, 1, true); | |
| var { seconds: v7_0, nanoseconds: v7_1 } = e2; | |
| dataView(memory0).setBigInt64(arg1 + 64, toUint64(v7_0), true); | |
| dataView(memory0).setInt32(arg1 + 72, toUint32(v7_1), true); | |
| } | |
| var variant10 = v3_5; | |
| if (variant10 === null || variant10 === undefined) { | |
| dataView(memory0).setInt8(arg1 + 80, 0, true); | |
| } else { | |
| const e2 = variant10; | |
| dataView(memory0).setInt8(arg1 + 80, 1, true); | |
| var { seconds: v9_0, nanoseconds: v9_1 } = e2; | |
| dataView(memory0).setBigInt64(arg1 + 88, toUint64(v9_0), true); | |
| dataView(memory0).setInt32(arg1 + 96, toUint32(v9_1), true); | |
| } | |
| break; | |
| } | |
| case "err": { | |
| const e = variant12.val; | |
| dataView(memory0).setInt8(arg1 + 0, 1, true); | |
| var val11 = e; | |
| let enum11; | |
| switch (val11) { | |
| case "access": { | |
| enum11 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum11 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum11 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum11 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum11 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum11 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum11 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum11 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum11 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum11 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum11 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum11 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum11 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum11 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum11 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum11 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum11 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum11 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum11 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum11 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum11 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum11 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum11 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum11 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum11 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum11 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum11 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum11 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum11 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum11 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum11 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum11 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum11 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum11 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum11 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum11 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum11 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val11}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 8, enum11, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.stat"][Instruction::Return]', { | |
| funcName: "[method]descriptor.stat", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline40(arg0, arg1, arg2, arg3, arg4) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| if ((arg1 & 4294967294) !== 0) { | |
| throw new TypeError("flags have extraneous bits set"); | |
| } | |
| var flags3 = { | |
| symlinkFollow: Boolean(arg1 & 1) | |
| }; | |
| var ptr4 = arg2; | |
| var len4 = arg3; | |
| var result4 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr4, len4)); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.stat-at"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.stat-at"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.statAt(flags3, result4) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.stat-at"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant14 = ret; | |
| switch (variant14.tag) { | |
| case "ok": { | |
| const e = variant14.val; | |
| dataView(memory0).setInt8(arg4 + 0, 0, true); | |
| var { type: v5_0, linkCount: v5_1, size: v5_2, dataAccessTimestamp: v5_3, dataModificationTimestamp: v5_4, statusChangeTimestamp: v5_5 } = e; | |
| var val6 = v5_0; | |
| let enum6; | |
| switch (val6) { | |
| case "unknown": { | |
| enum6 = 0; | |
| break; | |
| } | |
| case "block-device": { | |
| enum6 = 1; | |
| break; | |
| } | |
| case "character-device": { | |
| enum6 = 2; | |
| break; | |
| } | |
| case "directory": { | |
| enum6 = 3; | |
| break; | |
| } | |
| case "fifo": { | |
| enum6 = 4; | |
| break; | |
| } | |
| case "symbolic-link": { | |
| enum6 = 5; | |
| break; | |
| } | |
| case "regular-file": { | |
| enum6 = 6; | |
| break; | |
| } | |
| case "socket": { | |
| enum6 = 7; | |
| break; | |
| } | |
| default: { | |
| if (v5_0 instanceof Error) { | |
| console.error(v5_0); | |
| } | |
| throw new TypeError(`"${val6}" is not one of the cases of descriptor-type`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg4 + 8, enum6, true); | |
| dataView(memory0).setBigInt64(arg4 + 16, toUint64(v5_1), true); | |
| dataView(memory0).setBigInt64(arg4 + 24, toUint64(v5_2), true); | |
| var variant8 = v5_3; | |
| if (variant8 === null || variant8 === undefined) { | |
| dataView(memory0).setInt8(arg4 + 32, 0, true); | |
| } else { | |
| const e2 = variant8; | |
| dataView(memory0).setInt8(arg4 + 32, 1, true); | |
| var { seconds: v7_0, nanoseconds: v7_1 } = e2; | |
| dataView(memory0).setBigInt64(arg4 + 40, toUint64(v7_0), true); | |
| dataView(memory0).setInt32(arg4 + 48, toUint32(v7_1), true); | |
| } | |
| var variant10 = v5_4; | |
| if (variant10 === null || variant10 === undefined) { | |
| dataView(memory0).setInt8(arg4 + 56, 0, true); | |
| } else { | |
| const e2 = variant10; | |
| dataView(memory0).setInt8(arg4 + 56, 1, true); | |
| var { seconds: v9_0, nanoseconds: v9_1 } = e2; | |
| dataView(memory0).setBigInt64(arg4 + 64, toUint64(v9_0), true); | |
| dataView(memory0).setInt32(arg4 + 72, toUint32(v9_1), true); | |
| } | |
| var variant12 = v5_5; | |
| if (variant12 === null || variant12 === undefined) { | |
| dataView(memory0).setInt8(arg4 + 80, 0, true); | |
| } else { | |
| const e2 = variant12; | |
| dataView(memory0).setInt8(arg4 + 80, 1, true); | |
| var { seconds: v11_0, nanoseconds: v11_1 } = e2; | |
| dataView(memory0).setBigInt64(arg4 + 88, toUint64(v11_0), true); | |
| dataView(memory0).setInt32(arg4 + 96, toUint32(v11_1), true); | |
| } | |
| break; | |
| } | |
| case "err": { | |
| const e = variant14.val; | |
| dataView(memory0).setInt8(arg4 + 0, 1, true); | |
| var val13 = e; | |
| let enum13; | |
| switch (val13) { | |
| case "access": { | |
| enum13 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum13 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum13 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum13 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum13 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum13 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum13 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum13 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum13 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum13 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum13 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum13 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum13 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum13 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum13 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum13 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum13 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum13 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum13 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum13 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum13 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum13 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum13 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum13 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum13 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum13 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum13 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum13 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum13 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum13 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum13 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum13 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum13 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum13 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum13 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum13 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum13 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val13}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg4 + 8, enum13, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.stat-at"][Instruction::Return]', { | |
| funcName: "[method]descriptor.stat-at", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline41(arg0, arg1, arg2, arg3, arg4, arg5, arg6) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable7[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable7.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Descriptor2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| if ((arg1 & 4294967294) !== 0) { | |
| throw new TypeError("flags have extraneous bits set"); | |
| } | |
| var flags3 = { | |
| symlinkFollow: Boolean(arg1 & 1) | |
| }; | |
| var ptr4 = arg2; | |
| var len4 = arg3; | |
| var result4 = utf8Decoder.decode(new Uint8Array(memory0.buffer, ptr4, len4)); | |
| if ((arg4 & 4294967280) !== 0) { | |
| throw new TypeError("flags have extraneous bits set"); | |
| } | |
| var flags5 = { | |
| create: Boolean(arg4 & 1), | |
| directory: Boolean(arg4 & 2), | |
| exclusive: Boolean(arg4 & 4), | |
| truncate: Boolean(arg4 & 8) | |
| }; | |
| if ((arg5 & 4294967232) !== 0) { | |
| throw new TypeError("flags have extraneous bits set"); | |
| } | |
| var flags6 = { | |
| read: Boolean(arg5 & 1), | |
| write: Boolean(arg5 & 2), | |
| fileIntegritySync: Boolean(arg5 & 4), | |
| dataIntegritySync: Boolean(arg5 & 8), | |
| requestedWriteSync: Boolean(arg5 & 16), | |
| mutateDirectory: Boolean(arg5 & 32) | |
| }; | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.open-at"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]descriptor.open-at"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.openAt(flags3, result4, flags5, flags6) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.open-at"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant9 = ret; | |
| switch (variant9.tag) { | |
| case "ok": { | |
| const e = variant9.val; | |
| dataView(memory0).setInt8(arg6 + 0, 0, true); | |
| if (!(e instanceof Descriptor2)) { | |
| throw new TypeError('Resource error: Not a valid "Descriptor" resource.'); | |
| } | |
| var handle7 = e[symbolRscHandle]; | |
| if (!handle7) { | |
| const rep = e[symbolRscRep] || ++captureCnt7; | |
| captureTable7.set(rep, e); | |
| handle7 = rscTableCreateOwn(handleTable7, rep); | |
| } | |
| dataView(memory0).setInt32(arg6 + 4, handle7, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant9.val; | |
| dataView(memory0).setInt8(arg6 + 0, 1, true); | |
| var val8 = e; | |
| let enum8; | |
| switch (val8) { | |
| case "access": { | |
| enum8 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum8 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum8 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum8 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum8 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum8 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum8 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum8 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum8 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum8 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum8 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum8 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum8 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum8 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum8 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum8 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum8 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum8 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum8 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum8 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum8 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum8 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum8 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum8 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum8 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum8 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum8 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum8 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum8 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum8 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum8 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum8 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum8 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum8 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum8 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum8 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum8 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val8}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg6 + 4, enum8, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]descriptor.open-at"][Instruction::Return]', { | |
| funcName: "[method]descriptor.open-at", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline42(arg0, arg1) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable6[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable6.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(DirectoryEntryStream2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]directory-entry-stream.read-directory-entry"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]directory-entry-stream.read-directory-entry"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.readDirectoryEntry() }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]directory-entry-stream.read-directory-entry"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant8 = ret; | |
| switch (variant8.tag) { | |
| case "ok": { | |
| const e = variant8.val; | |
| dataView(memory0).setInt8(arg1 + 0, 0, true); | |
| var variant6 = e; | |
| if (variant6 === null || variant6 === undefined) { | |
| dataView(memory0).setInt8(arg1 + 4, 0, true); | |
| } else { | |
| const e2 = variant6; | |
| dataView(memory0).setInt8(arg1 + 4, 1, true); | |
| var { type: v3_0, name: v3_1 } = e2; | |
| var val4 = v3_0; | |
| let enum4; | |
| switch (val4) { | |
| case "unknown": { | |
| enum4 = 0; | |
| break; | |
| } | |
| case "block-device": { | |
| enum4 = 1; | |
| break; | |
| } | |
| case "character-device": { | |
| enum4 = 2; | |
| break; | |
| } | |
| case "directory": { | |
| enum4 = 3; | |
| break; | |
| } | |
| case "fifo": { | |
| enum4 = 4; | |
| break; | |
| } | |
| case "symbolic-link": { | |
| enum4 = 5; | |
| break; | |
| } | |
| case "regular-file": { | |
| enum4 = 6; | |
| break; | |
| } | |
| case "socket": { | |
| enum4 = 7; | |
| break; | |
| } | |
| default: { | |
| if (v3_0 instanceof Error) { | |
| console.error(v3_0); | |
| } | |
| throw new TypeError(`"${val4}" is not one of the cases of descriptor-type`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 8, enum4, true); | |
| var ptr5 = utf8Encode(v3_1, realloc0, memory0); | |
| var len5 = utf8EncodedLen; | |
| dataView(memory0).setUint32(arg1 + 16, len5, true); | |
| dataView(memory0).setUint32(arg1 + 12, ptr5, true); | |
| } | |
| break; | |
| } | |
| case "err": { | |
| const e = variant8.val; | |
| dataView(memory0).setInt8(arg1 + 0, 1, true); | |
| var val7 = e; | |
| let enum7; | |
| switch (val7) { | |
| case "access": { | |
| enum7 = 0; | |
| break; | |
| } | |
| case "would-block": { | |
| enum7 = 1; | |
| break; | |
| } | |
| case "already": { | |
| enum7 = 2; | |
| break; | |
| } | |
| case "bad-descriptor": { | |
| enum7 = 3; | |
| break; | |
| } | |
| case "busy": { | |
| enum7 = 4; | |
| break; | |
| } | |
| case "deadlock": { | |
| enum7 = 5; | |
| break; | |
| } | |
| case "quota": { | |
| enum7 = 6; | |
| break; | |
| } | |
| case "exist": { | |
| enum7 = 7; | |
| break; | |
| } | |
| case "file-too-large": { | |
| enum7 = 8; | |
| break; | |
| } | |
| case "illegal-byte-sequence": { | |
| enum7 = 9; | |
| break; | |
| } | |
| case "in-progress": { | |
| enum7 = 10; | |
| break; | |
| } | |
| case "interrupted": { | |
| enum7 = 11; | |
| break; | |
| } | |
| case "invalid": { | |
| enum7 = 12; | |
| break; | |
| } | |
| case "io": { | |
| enum7 = 13; | |
| break; | |
| } | |
| case "is-directory": { | |
| enum7 = 14; | |
| break; | |
| } | |
| case "loop": { | |
| enum7 = 15; | |
| break; | |
| } | |
| case "too-many-links": { | |
| enum7 = 16; | |
| break; | |
| } | |
| case "message-size": { | |
| enum7 = 17; | |
| break; | |
| } | |
| case "name-too-long": { | |
| enum7 = 18; | |
| break; | |
| } | |
| case "no-device": { | |
| enum7 = 19; | |
| break; | |
| } | |
| case "no-entry": { | |
| enum7 = 20; | |
| break; | |
| } | |
| case "no-lock": { | |
| enum7 = 21; | |
| break; | |
| } | |
| case "insufficient-memory": { | |
| enum7 = 22; | |
| break; | |
| } | |
| case "insufficient-space": { | |
| enum7 = 23; | |
| break; | |
| } | |
| case "not-directory": { | |
| enum7 = 24; | |
| break; | |
| } | |
| case "not-empty": { | |
| enum7 = 25; | |
| break; | |
| } | |
| case "not-recoverable": { | |
| enum7 = 26; | |
| break; | |
| } | |
| case "unsupported": { | |
| enum7 = 27; | |
| break; | |
| } | |
| case "no-tty": { | |
| enum7 = 28; | |
| break; | |
| } | |
| case "no-such-device": { | |
| enum7 = 29; | |
| break; | |
| } | |
| case "overflow": { | |
| enum7 = 30; | |
| break; | |
| } | |
| case "not-permitted": { | |
| enum7 = 31; | |
| break; | |
| } | |
| case "pipe": { | |
| enum7 = 32; | |
| break; | |
| } | |
| case "read-only": { | |
| enum7 = 33; | |
| break; | |
| } | |
| case "invalid-seek": { | |
| enum7 = 34; | |
| break; | |
| } | |
| case "text-file-busy": { | |
| enum7 = 35; | |
| break; | |
| } | |
| case "cross-device": { | |
| enum7 = 36; | |
| break; | |
| } | |
| default: { | |
| if (e instanceof Error) { | |
| console.error(e); | |
| } | |
| throw new TypeError(`"${val7}" is not one of the cases of error-code`); | |
| } | |
| } | |
| dataView(memory0).setInt8(arg1 + 4, enum7, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="[method]directory-entry-stream.read-directory-entry"][Instruction::Return]', { | |
| funcName: "[method]directory-entry-stream.read-directory-entry", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline43(arg0, arg1, arg2) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable2.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(InputStream2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]input-stream.read"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]input-stream.read"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.read(BigInt.asUintN(64, arg1)) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]input-stream.read"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant6 = ret; | |
| switch (variant6.tag) { | |
| case "ok": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg2 + 0, 0, true); | |
| var val3 = e; | |
| var len3 = val3.byteLength; | |
| var ptr3 = realloc0(0, 0, 1, len3 * 1); | |
| var src3 = new Uint8Array(val3.buffer || val3, val3.byteOffset, len3 * 1); | |
| new Uint8Array(memory0.buffer, ptr3, len3 * 1).set(src3); | |
| dataView(memory0).setUint32(arg2 + 8, len3, true); | |
| dataView(memory0).setUint32(arg2 + 4, ptr3, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg2 + 0, 1, true); | |
| var variant5 = e; | |
| switch (variant5.tag) { | |
| case "last-operation-failed": { | |
| const e2 = variant5.val; | |
| dataView(memory0).setInt8(arg2 + 4, 0, true); | |
| if (!(e2 instanceof Error$1)) { | |
| throw new TypeError('Resource error: Not a valid "Error" resource.'); | |
| } | |
| var handle4 = e2[symbolRscHandle]; | |
| if (!handle4) { | |
| const rep = e2[symbolRscRep] || ++captureCnt0; | |
| captureTable0.set(rep, e2); | |
| handle4 = rscTableCreateOwn(handleTable0, rep); | |
| } | |
| dataView(memory0).setInt32(arg2 + 8, handle4, true); | |
| break; | |
| } | |
| case "closed": { | |
| dataView(memory0).setInt8(arg2 + 4, 1, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``); | |
| } | |
| } | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]input-stream.read"][Instruction::Return]', { | |
| funcName: "[method]input-stream.read", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline44(arg0, arg1, arg2) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable2[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable2.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(InputStream2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]input-stream.blocking-read"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]input-stream.blocking-read"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.blockingRead(BigInt.asUintN(64, arg1)) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]input-stream.blocking-read"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant6 = ret; | |
| switch (variant6.tag) { | |
| case "ok": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg2 + 0, 0, true); | |
| var val3 = e; | |
| var len3 = val3.byteLength; | |
| var ptr3 = realloc0(0, 0, 1, len3 * 1); | |
| var src3 = new Uint8Array(val3.buffer || val3, val3.byteOffset, len3 * 1); | |
| new Uint8Array(memory0.buffer, ptr3, len3 * 1).set(src3); | |
| dataView(memory0).setUint32(arg2 + 8, len3, true); | |
| dataView(memory0).setUint32(arg2 + 4, ptr3, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg2 + 0, 1, true); | |
| var variant5 = e; | |
| switch (variant5.tag) { | |
| case "last-operation-failed": { | |
| const e2 = variant5.val; | |
| dataView(memory0).setInt8(arg2 + 4, 0, true); | |
| if (!(e2 instanceof Error$1)) { | |
| throw new TypeError('Resource error: Not a valid "Error" resource.'); | |
| } | |
| var handle4 = e2[symbolRscHandle]; | |
| if (!handle4) { | |
| const rep = e2[symbolRscRep] || ++captureCnt0; | |
| captureTable0.set(rep, e2); | |
| handle4 = rscTableCreateOwn(handleTable0, rep); | |
| } | |
| dataView(memory0).setInt32(arg2 + 8, handle4, true); | |
| break; | |
| } | |
| case "closed": { | |
| dataView(memory0).setInt8(arg2 + 4, 1, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``); | |
| } | |
| } | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]input-stream.blocking-read"][Instruction::Return]', { | |
| funcName: "[method]input-stream.blocking-read", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline45(arg0, arg1) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable3[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable3.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(OutputStream2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.check-write"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]output-stream.check-write"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.checkWrite() }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.check-write"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 0, true); | |
| dataView(memory0).setBigInt64(arg1 + 8, toUint64(e), true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 1, true); | |
| var variant4 = e; | |
| switch (variant4.tag) { | |
| case "last-operation-failed": { | |
| const e2 = variant4.val; | |
| dataView(memory0).setInt8(arg1 + 8, 0, true); | |
| if (!(e2 instanceof Error$1)) { | |
| throw new TypeError('Resource error: Not a valid "Error" resource.'); | |
| } | |
| var handle3 = e2[symbolRscHandle]; | |
| if (!handle3) { | |
| const rep = e2[symbolRscRep] || ++captureCnt0; | |
| captureTable0.set(rep, e2); | |
| handle3 = rscTableCreateOwn(handleTable0, rep); | |
| } | |
| dataView(memory0).setInt32(arg1 + 12, handle3, true); | |
| break; | |
| } | |
| case "closed": { | |
| dataView(memory0).setInt8(arg1 + 8, 1, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``); | |
| } | |
| } | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.check-write"][Instruction::Return]', { | |
| funcName: "[method]output-stream.check-write", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline46(arg0, arg1, arg2, arg3) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable3[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable3.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(OutputStream2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| var ptr3 = arg1; | |
| var len3 = arg2; | |
| var result3 = new Uint8Array(memory0.buffer.slice(ptr3, ptr3 + len3 * 1)); | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.write"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]output-stream.write"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.write(result3) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.write"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant6 = ret; | |
| switch (variant6.tag) { | |
| case "ok": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg3 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg3 + 0, 1, true); | |
| var variant5 = e; | |
| switch (variant5.tag) { | |
| case "last-operation-failed": { | |
| const e2 = variant5.val; | |
| dataView(memory0).setInt8(arg3 + 4, 0, true); | |
| if (!(e2 instanceof Error$1)) { | |
| throw new TypeError('Resource error: Not a valid "Error" resource.'); | |
| } | |
| var handle4 = e2[symbolRscHandle]; | |
| if (!handle4) { | |
| const rep = e2[symbolRscRep] || ++captureCnt0; | |
| captureTable0.set(rep, e2); | |
| handle4 = rscTableCreateOwn(handleTable0, rep); | |
| } | |
| dataView(memory0).setInt32(arg3 + 8, handle4, true); | |
| break; | |
| } | |
| case "closed": { | |
| dataView(memory0).setInt8(arg3 + 4, 1, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``); | |
| } | |
| } | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.write"][Instruction::Return]', { | |
| funcName: "[method]output-stream.write", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline47(arg0, arg1, arg2, arg3) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable3[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable3.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(OutputStream2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| var ptr3 = arg1; | |
| var len3 = arg2; | |
| var result3 = new Uint8Array(memory0.buffer.slice(ptr3, ptr3 + len3 * 1)); | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.blocking-write-and-flush"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]output-stream.blocking-write-and-flush"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.blockingWriteAndFlush(result3) }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.blocking-write-and-flush"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant6 = ret; | |
| switch (variant6.tag) { | |
| case "ok": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg3 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant6.val; | |
| dataView(memory0).setInt8(arg3 + 0, 1, true); | |
| var variant5 = e; | |
| switch (variant5.tag) { | |
| case "last-operation-failed": { | |
| const e2 = variant5.val; | |
| dataView(memory0).setInt8(arg3 + 4, 0, true); | |
| if (!(e2 instanceof Error$1)) { | |
| throw new TypeError('Resource error: Not a valid "Error" resource.'); | |
| } | |
| var handle4 = e2[symbolRscHandle]; | |
| if (!handle4) { | |
| const rep = e2[symbolRscRep] || ++captureCnt0; | |
| captureTable0.set(rep, e2); | |
| handle4 = rscTableCreateOwn(handleTable0, rep); | |
| } | |
| dataView(memory0).setInt32(arg3 + 8, handle4, true); | |
| break; | |
| } | |
| case "closed": { | |
| dataView(memory0).setInt8(arg3 + 4, 1, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant5.tag)}\` (received \`${variant5}\`) specified for \`StreamError\``); | |
| } | |
| } | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.blocking-write-and-flush"][Instruction::Return]', { | |
| funcName: "[method]output-stream.blocking-write-and-flush", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline48(arg0, arg1) { | |
| var handle1 = arg0; | |
| var rep2 = handleTable3[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable3.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(OutputStream2.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.blocking-flush"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "[method]output-stream.blocking-flush"); | |
| let ret; | |
| try { | |
| ret = { tag: "ok", val: rsc0.blockingFlush() }; | |
| } catch (e) { | |
| ret = { tag: "err", val: getErrorPayload(e) }; | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.blocking-flush"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var variant5 = ret; | |
| switch (variant5.tag) { | |
| case "ok": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 0, true); | |
| break; | |
| } | |
| case "err": { | |
| const e = variant5.val; | |
| dataView(memory0).setInt8(arg1 + 0, 1, true); | |
| var variant4 = e; | |
| switch (variant4.tag) { | |
| case "last-operation-failed": { | |
| const e2 = variant4.val; | |
| dataView(memory0).setInt8(arg1 + 4, 0, true); | |
| if (!(e2 instanceof Error$1)) { | |
| throw new TypeError('Resource error: Not a valid "Error" resource.'); | |
| } | |
| var handle3 = e2[symbolRscHandle]; | |
| if (!handle3) { | |
| const rep = e2[symbolRscRep] || ++captureCnt0; | |
| captureTable0.set(rep, e2); | |
| handle3 = rscTableCreateOwn(handleTable0, rep); | |
| } | |
| dataView(memory0).setInt32(arg1 + 8, handle3, true); | |
| break; | |
| } | |
| case "closed": { | |
| dataView(memory0).setInt8(arg1 + 4, 1, true); | |
| break; | |
| } | |
| default: { | |
| throw new TypeError(`invalid variant tag value \`${JSON.stringify(variant4.tag)}\` (received \`${variant4}\`) specified for \`StreamError\``); | |
| } | |
| } | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant specified for result"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="[method]output-stream.blocking-flush"][Instruction::Return]', { | |
| funcName: "[method]output-stream.blocking-flush", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline49(arg0, arg1, arg2) { | |
| var len3 = arg1; | |
| var base3 = arg0; | |
| var result3 = []; | |
| for (let i = 0;i < len3; i++) { | |
| const base = base3 + i * 4; | |
| var handle1 = dataView(memory0).getInt32(base + 0, true); | |
| var rep2 = handleTable1[(handle1 << 1) + 1] & ~T_FLAG; | |
| var rsc0 = captureTable1.get(rep2); | |
| if (!rsc0) { | |
| rsc0 = Object.create(Pollable.prototype); | |
| Object.defineProperty(rsc0, symbolRscHandle, { writable: true, value: handle1 }); | |
| Object.defineProperty(rsc0, symbolRscRep, { writable: true, value: rep2 }); | |
| } | |
| curResourceBorrows.push(rsc0); | |
| result3.push(rsc0); | |
| } | |
| _debugLog('[iface="wasi:io/[email protected]", function="poll"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "poll"); | |
| const ret = poll(result3); | |
| _debugLog('[iface="wasi:io/[email protected]", function="poll"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| for (const rsc of curResourceBorrows) { | |
| rsc[symbolRscHandle] = undefined; | |
| } | |
| curResourceBorrows = []; | |
| endCurrentTask(0); | |
| var val4 = ret; | |
| var len4 = val4.length; | |
| var ptr4 = realloc0(0, 0, 4, len4 * 4); | |
| var src4 = new Uint8Array(val4.buffer, val4.byteOffset, len4 * 4); | |
| new Uint8Array(memory0.buffer, ptr4, len4 * 4).set(src4); | |
| dataView(memory0).setUint32(arg2 + 4, len4, true); | |
| dataView(memory0).setUint32(arg2 + 0, ptr4, true); | |
| _debugLog('[iface="wasi:io/[email protected]", function="poll"][Instruction::Return]', { | |
| funcName: "poll", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline50(arg0, arg1) { | |
| _debugLog('[iface="wasi:random/[email protected]", function="get-random-bytes"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "get-random-bytes"); | |
| const ret = getRandomBytes(BigInt.asUintN(64, arg0)); | |
| _debugLog('[iface="wasi:random/[email protected]", function="get-random-bytes"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| var val0 = ret; | |
| var len0 = val0.byteLength; | |
| var ptr0 = realloc0(0, 0, 1, len0 * 1); | |
| var src0 = new Uint8Array(val0.buffer || val0, val0.byteOffset, len0 * 1); | |
| new Uint8Array(memory0.buffer, ptr0, len0 * 1).set(src0); | |
| dataView(memory0).setUint32(arg1 + 4, len0, true); | |
| dataView(memory0).setUint32(arg1 + 0, ptr0, true); | |
| _debugLog('[iface="wasi:random/[email protected]", function="get-random-bytes"][Instruction::Return]', { | |
| funcName: "get-random-bytes", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline51(arg0) { | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="get-directories"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "get-directories"); | |
| const ret = getDirectories(); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="get-directories"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| var vec3 = ret; | |
| var len3 = vec3.length; | |
| var result3 = realloc0(0, 0, 4, len3 * 12); | |
| for (let i = 0;i < vec3.length; i++) { | |
| const e = vec3[i]; | |
| const base = result3 + i * 12; | |
| var [tuple0_0, tuple0_1] = e; | |
| if (!(tuple0_0 instanceof Descriptor2)) { | |
| throw new TypeError('Resource error: Not a valid "Descriptor" resource.'); | |
| } | |
| var handle1 = tuple0_0[symbolRscHandle]; | |
| if (!handle1) { | |
| const rep = tuple0_0[symbolRscRep] || ++captureCnt7; | |
| captureTable7.set(rep, tuple0_0); | |
| handle1 = rscTableCreateOwn(handleTable7, rep); | |
| } | |
| dataView(memory0).setInt32(base + 0, handle1, true); | |
| var ptr2 = utf8Encode(tuple0_1, realloc0, memory0); | |
| var len2 = utf8EncodedLen; | |
| dataView(memory0).setUint32(base + 8, len2, true); | |
| dataView(memory0).setUint32(base + 4, ptr2, true); | |
| } | |
| dataView(memory0).setUint32(arg0 + 4, len3, true); | |
| dataView(memory0).setUint32(arg0 + 0, result3, true); | |
| _debugLog('[iface="wasi:filesystem/[email protected]", function="get-directories"][Instruction::Return]', { | |
| funcName: "get-directories", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| const handleTable4 = [T_FLAG, 0]; | |
| const captureTable4 = /* @__PURE__ */ new Map; | |
| let captureCnt4 = 0; | |
| handleTables[4] = handleTable4; | |
| function trampoline52(arg0) { | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-terminal-stdin"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "get-terminal-stdin"); | |
| const ret = getTerminalStdin(); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-terminal-stdin"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| var variant1 = ret; | |
| if (variant1 === null || variant1 === undefined) { | |
| dataView(memory0).setInt8(arg0 + 0, 0, true); | |
| } else { | |
| const e = variant1; | |
| dataView(memory0).setInt8(arg0 + 0, 1, true); | |
| if (!(e instanceof TerminalInput2)) { | |
| throw new TypeError('Resource error: Not a valid "TerminalInput" resource.'); | |
| } | |
| var handle0 = e[symbolRscHandle]; | |
| if (!handle0) { | |
| const rep = e[symbolRscRep] || ++captureCnt4; | |
| captureTable4.set(rep, e); | |
| handle0 = rscTableCreateOwn(handleTable4, rep); | |
| } | |
| dataView(memory0).setInt32(arg0 + 4, handle0, true); | |
| } | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-terminal-stdin"][Instruction::Return]', { | |
| funcName: "get-terminal-stdin", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| const handleTable5 = [T_FLAG, 0]; | |
| const captureTable5 = /* @__PURE__ */ new Map; | |
| let captureCnt5 = 0; | |
| handleTables[5] = handleTable5; | |
| function trampoline53(arg0) { | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-terminal-stdout"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "get-terminal-stdout"); | |
| const ret = getTerminalStdout(); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-terminal-stdout"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| var variant1 = ret; | |
| if (variant1 === null || variant1 === undefined) { | |
| dataView(memory0).setInt8(arg0 + 0, 0, true); | |
| } else { | |
| const e = variant1; | |
| dataView(memory0).setInt8(arg0 + 0, 1, true); | |
| if (!(e instanceof TerminalOutput2)) { | |
| throw new TypeError('Resource error: Not a valid "TerminalOutput" resource.'); | |
| } | |
| var handle0 = e[symbolRscHandle]; | |
| if (!handle0) { | |
| const rep = e[symbolRscRep] || ++captureCnt5; | |
| captureTable5.set(rep, e); | |
| handle0 = rscTableCreateOwn(handleTable5, rep); | |
| } | |
| dataView(memory0).setInt32(arg0 + 4, handle0, true); | |
| } | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-terminal-stdout"][Instruction::Return]', { | |
| funcName: "get-terminal-stdout", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| function trampoline54(arg0) { | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-terminal-stderr"] [Instruction::CallInterface] (async? sync, @ enter)'); | |
| const _interface_call_currentTaskID = startCurrentTask(0, false, "get-terminal-stderr"); | |
| const ret = getTerminalStderr(); | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-terminal-stderr"] [Instruction::CallInterface] (sync, @ post-call)'); | |
| endCurrentTask(0); | |
| var variant1 = ret; | |
| if (variant1 === null || variant1 === undefined) { | |
| dataView(memory0).setInt8(arg0 + 0, 0, true); | |
| } else { | |
| const e = variant1; | |
| dataView(memory0).setInt8(arg0 + 0, 1, true); | |
| if (!(e instanceof TerminalOutput2)) { | |
| throw new TypeError('Resource error: Not a valid "TerminalOutput" resource.'); | |
| } | |
| var handle0 = e[symbolRscHandle]; | |
| if (!handle0) { | |
| const rep = e[symbolRscRep] || ++captureCnt5; | |
| captureTable5.set(rep, e); | |
| handle0 = rscTableCreateOwn(handleTable5, rep); | |
| } | |
| dataView(memory0).setInt32(arg0 + 4, handle0, true); | |
| } | |
| _debugLog('[iface="wasi:cli/[email protected]", function="get-terminal-stderr"][Instruction::Return]', { | |
| funcName: "get-terminal-stderr", | |
| paramCount: 0, | |
| postReturn: false | |
| }); | |
| } | |
| let exports3; | |
| function trampoline1(handle) { | |
| const handleEntry = rscTableRemove(handleTable6, handle); | |
| if (handleEntry.own) { | |
| const rsc = captureTable6.get(handleEntry.rep); | |
| if (rsc) { | |
| if (rsc[symbolDispose]) | |
| rsc[symbolDispose](); | |
| captureTable6.delete(handleEntry.rep); | |
| } else if (DirectoryEntryStream2[symbolCabiDispose]) { | |
| DirectoryEntryStream2[symbolCabiDispose](handleEntry.rep); | |
| } | |
| } | |
| } | |
| function trampoline2(handle) { | |
| const handleEntry = rscTableRemove(handleTable3, handle); | |
| if (handleEntry.own) { | |
| const rsc = captureTable3.get(handleEntry.rep); | |
| if (rsc) { | |
| if (rsc[symbolDispose]) | |
| rsc[symbolDispose](); | |
| captureTable3.delete(handleEntry.rep); | |
| } else if (OutputStream2[symbolCabiDispose]) { | |
| OutputStream2[symbolCabiDispose](handleEntry.rep); | |
| } | |
| } | |
| } | |
| function trampoline3(handle) { | |
| const handleEntry = rscTableRemove(handleTable0, handle); | |
| if (handleEntry.own) { | |
| const rsc = captureTable0.get(handleEntry.rep); | |
| if (rsc) { | |
| if (rsc[symbolDispose]) | |
| rsc[symbolDispose](); | |
| captureTable0.delete(handleEntry.rep); | |
| } else if (Error$1[symbolCabiDispose]) { | |
| Error$1[symbolCabiDispose](handleEntry.rep); | |
| } | |
| } | |
| } | |
| function trampoline4(handle) { | |
| const handleEntry = rscTableRemove(handleTable2, handle); | |
| if (handleEntry.own) { | |
| const rsc = captureTable2.get(handleEntry.rep); | |
| if (rsc) { | |
| if (rsc[symbolDispose]) | |
| rsc[symbolDispose](); | |
| captureTable2.delete(handleEntry.rep); | |
| } else if (InputStream2[symbolCabiDispose]) { | |
| InputStream2[symbolCabiDispose](handleEntry.rep); | |
| } | |
| } | |
| } | |
| function trampoline5(handle) { | |
| const handleEntry = rscTableRemove(handleTable7, handle); | |
| if (handleEntry.own) { | |
| const rsc = captureTable7.get(handleEntry.rep); | |
| if (rsc) { | |
| if (rsc[symbolDispose]) | |
| rsc[symbolDispose](); | |
| captureTable7.delete(handleEntry.rep); | |
| } else if (Descriptor2[symbolCabiDispose]) { | |
| Descriptor2[symbolCabiDispose](handleEntry.rep); | |
| } | |
| } | |
| } | |
| function trampoline10(handle) { | |
| const handleEntry = rscTableRemove(handleTable1, handle); | |
| if (handleEntry.own) { | |
| const rsc = captureTable1.get(handleEntry.rep); | |
| if (rsc) { | |
| if (rsc[symbolDispose]) | |
| rsc[symbolDispose](); | |
| captureTable1.delete(handleEntry.rep); | |
| } else if (Pollable[symbolCabiDispose]) { | |
| Pollable[symbolCabiDispose](handleEntry.rep); | |
| } | |
| } | |
| } | |
| function trampoline12(handle) { | |
| const handleEntry = rscTableRemove(handleTable4, handle); | |
| if (handleEntry.own) { | |
| const rsc = captureTable4.get(handleEntry.rep); | |
| if (rsc) { | |
| if (rsc[symbolDispose]) | |
| rsc[symbolDispose](); | |
| captureTable4.delete(handleEntry.rep); | |
| } else if (TerminalInput2[symbolCabiDispose]) { | |
| TerminalInput2[symbolCabiDispose](handleEntry.rep); | |
| } | |
| } | |
| } | |
| function trampoline13(handle) { | |
| const handleEntry = rscTableRemove(handleTable5, handle); | |
| if (handleEntry.own) { | |
| const rsc = captureTable5.get(handleEntry.rep); | |
| if (rsc) { | |
| if (rsc[symbolDispose]) | |
| rsc[symbolDispose](); | |
| captureTable5.delete(handleEntry.rep); | |
| } else if (TerminalOutput2[symbolCabiDispose]) { | |
| TerminalOutput2[symbolCabiDispose](handleEntry.rep); | |
| } | |
| } | |
| } | |
| Promise.all([module0, module1, module2, module3]).catch(() => {}); | |
| ({ exports: exports0 } = yield instantiateCore(yield module2)); | |
| ({ exports: exports1 } = yield instantiateCore(yield module0, { | |
| wasi_snapshot_preview1: { | |
| args_get: exports0["0"], | |
| args_sizes_get: exports0["1"], | |
| clock_time_get: exports0["4"], | |
| environ_get: exports0["2"], | |
| environ_sizes_get: exports0["3"], | |
| fd_close: exports0["5"], | |
| fd_fdstat_get: exports0["6"], | |
| fd_filestat_get: exports0["7"], | |
| fd_filestat_set_size: exports0["8"], | |
| fd_filestat_set_times: exports0["9"], | |
| fd_pread: exports0["10"], | |
| fd_prestat_dir_name: exports0["12"], | |
| fd_prestat_get: exports0["11"], | |
| fd_read: exports0["13"], | |
| fd_readdir: exports0["14"], | |
| fd_seek: exports0["15"], | |
| fd_write: exports0["16"], | |
| path_create_directory: exports0["17"], | |
| path_filestat_get: exports0["18"], | |
| path_link: exports0["19"], | |
| path_open: exports0["20"], | |
| path_readlink: exports0["21"], | |
| path_remove_directory: exports0["22"], | |
| path_rename: exports0["23"], | |
| path_symlink: exports0["24"], | |
| path_unlink_file: exports0["25"], | |
| poll_oneoff: exports0["26"], | |
| proc_exit: exports0["27"], | |
| random_get: exports0["28"] | |
| } | |
| })); | |
| ({ exports: exports2 } = yield instantiateCore(yield module1, { | |
| __main_module__: { | |
| _start: exports1._start | |
| }, | |
| env: { | |
| memory: exports1.memory | |
| }, | |
| "wasi:cli/[email protected]": { | |
| "get-arguments": exports0["29"], | |
| "get-environment": exports0["30"] | |
| }, | |
| "wasi:cli/[email protected]": { | |
| exit: trampoline16 | |
| }, | |
| "wasi:cli/[email protected]": { | |
| "get-stderr": trampoline11 | |
| }, | |
| "wasi:cli/[email protected]": { | |
| "get-stdin": trampoline14 | |
| }, | |
| "wasi:cli/[email protected]": { | |
| "get-stdout": trampoline15 | |
| }, | |
| "wasi:cli/[email protected]": { | |
| "[resource-drop]terminal-input": trampoline12 | |
| }, | |
| "wasi:cli/[email protected]": { | |
| "[resource-drop]terminal-output": trampoline13 | |
| }, | |
| "wasi:cli/[email protected]": { | |
| "get-terminal-stderr": exports0["66"] | |
| }, | |
| "wasi:cli/[email protected]": { | |
| "get-terminal-stdin": exports0["64"] | |
| }, | |
| "wasi:cli/[email protected]": { | |
| "get-terminal-stdout": exports0["65"] | |
| }, | |
| "wasi:clocks/[email protected]": { | |
| now: trampoline0, | |
| "subscribe-duration": trampoline6, | |
| "subscribe-instant": trampoline7 | |
| }, | |
| "wasi:clocks/[email protected]": { | |
| now: exports0["31"] | |
| }, | |
| "wasi:filesystem/[email protected]": { | |
| "get-directories": exports0["63"] | |
| }, | |
| "wasi:filesystem/[email protected]": { | |
| "[method]descriptor.append-via-stream": exports0["47"], | |
| "[method]descriptor.create-directory-at": exports0["38"], | |
| "[method]descriptor.get-flags": exports0["32"], | |
| "[method]descriptor.get-type": exports0["33"], | |
| "[method]descriptor.link-at": exports0["39"], | |
| "[method]descriptor.metadata-hash": exports0["34"], | |
| "[method]descriptor.metadata-hash-at": exports0["37"], | |
| "[method]descriptor.open-at": exports0["53"], | |
| "[method]descriptor.read": exports0["49"], | |
| "[method]descriptor.read-directory": exports0["50"], | |
| "[method]descriptor.read-via-stream": exports0["45"], | |
| "[method]descriptor.readlink-at": exports0["40"], | |
| "[method]descriptor.remove-directory-at": exports0["41"], | |
| "[method]descriptor.rename-at": exports0["42"], | |
| "[method]descriptor.set-size": exports0["35"], | |
| "[method]descriptor.set-times": exports0["48"], | |
| "[method]descriptor.stat": exports0["51"], | |
| "[method]descriptor.stat-at": exports0["52"], | |
| "[method]descriptor.symlink-at": exports0["43"], | |
| "[method]descriptor.unlink-file-at": exports0["44"], | |
| "[method]descriptor.write-via-stream": exports0["46"], | |
| "[method]directory-entry-stream.read-directory-entry": exports0["54"], | |
| "[resource-drop]descriptor": trampoline5, | |
| "[resource-drop]directory-entry-stream": trampoline1, | |
| "filesystem-error-code": exports0["36"] | |
| }, | |
| "wasi:io/[email protected]": { | |
| "[resource-drop]error": trampoline3 | |
| }, | |
| "wasi:io/[email protected]": { | |
| "[resource-drop]pollable": trampoline10, | |
| poll: exports0["61"] | |
| }, | |
| "wasi:io/[email protected]": { | |
| "[method]input-stream.blocking-read": exports0["56"], | |
| "[method]input-stream.read": exports0["55"], | |
| "[method]input-stream.subscribe": trampoline9, | |
| "[method]output-stream.blocking-flush": exports0["60"], | |
| "[method]output-stream.blocking-write-and-flush": exports0["59"], | |
| "[method]output-stream.check-write": exports0["57"], | |
| "[method]output-stream.subscribe": trampoline8, | |
| "[method]output-stream.write": exports0["58"], | |
| "[resource-drop]input-stream": trampoline4, | |
| "[resource-drop]output-stream": trampoline2 | |
| }, | |
| "wasi:random/[email protected]": { | |
| "get-random-bytes": exports0["62"] | |
| } | |
| })); | |
| memory0 = exports1.memory; | |
| realloc0 = exports2.cabi_import_realloc; | |
| ({ exports: exports3 } = yield instantiateCore(yield module3, { | |
| "": { | |
| $imports: exports0.$imports, | |
| "0": exports2.args_get, | |
| "1": exports2.args_sizes_get, | |
| "10": exports2.fd_pread, | |
| "11": exports2.fd_prestat_get, | |
| "12": exports2.fd_prestat_dir_name, | |
| "13": exports2.fd_read, | |
| "14": exports2.fd_readdir, | |
| "15": exports2.fd_seek, | |
| "16": exports2.fd_write, | |
| "17": exports2.path_create_directory, | |
| "18": exports2.path_filestat_get, | |
| "19": exports2.path_link, | |
| "2": exports2.environ_get, | |
| "20": exports2.path_open, | |
| "21": exports2.path_readlink, | |
| "22": exports2.path_remove_directory, | |
| "23": exports2.path_rename, | |
| "24": exports2.path_symlink, | |
| "25": exports2.path_unlink_file, | |
| "26": exports2.poll_oneoff, | |
| "27": exports2.proc_exit, | |
| "28": exports2.random_get, | |
| "29": trampoline17, | |
| "3": exports2.environ_sizes_get, | |
| "30": trampoline18, | |
| "31": trampoline19, | |
| "32": trampoline20, | |
| "33": trampoline21, | |
| "34": trampoline22, | |
| "35": trampoline23, | |
| "36": trampoline24, | |
| "37": trampoline25, | |
| "38": trampoline26, | |
| "39": trampoline27, | |
| "4": exports2.clock_time_get, | |
| "40": trampoline28, | |
| "41": trampoline29, | |
| "42": trampoline30, | |
| "43": trampoline31, | |
| "44": trampoline32, | |
| "45": trampoline33, | |
| "46": trampoline34, | |
| "47": trampoline35, | |
| "48": trampoline36, | |
| "49": trampoline37, | |
| "5": exports2.fd_close, | |
| "50": trampoline38, | |
| "51": trampoline39, | |
| "52": trampoline40, | |
| "53": trampoline41, | |
| "54": trampoline42, | |
| "55": trampoline43, | |
| "56": trampoline44, | |
| "57": trampoline45, | |
| "58": trampoline46, | |
| "59": trampoline47, | |
| "6": exports2.fd_fdstat_get, | |
| "60": trampoline48, | |
| "61": trampoline49, | |
| "62": trampoline50, | |
| "63": trampoline51, | |
| "64": trampoline52, | |
| "65": trampoline53, | |
| "66": trampoline54, | |
| "7": exports2.fd_filestat_get, | |
| "8": exports2.fd_filestat_set_size, | |
| "9": exports2.fd_filestat_set_times | |
| } | |
| })); | |
| let run023Run; | |
| function run() { | |
| _debugLog('[iface="wasi:cli/[email protected]", function="run"] [Instruction::CallWasm] (async? false, @ enter)'); | |
| const _wasm_call_currentTaskID = startCurrentTask(0, false, "run023Run"); | |
| const ret = run023Run(); | |
| endCurrentTask(0); | |
| let variant0; | |
| switch (ret) { | |
| case 0: { | |
| variant0 = { | |
| tag: "ok", | |
| val: undefined | |
| }; | |
| break; | |
| } | |
| case 1: { | |
| variant0 = { | |
| tag: "err", | |
| val: undefined | |
| }; | |
| break; | |
| } | |
| default: { | |
| throw new TypeError("invalid variant discriminant for expected"); | |
| } | |
| } | |
| _debugLog('[iface="wasi:cli/[email protected]", function="run"][Instruction::Return]', { | |
| funcName: "run", | |
| paramCount: 1, | |
| postReturn: false | |
| }); | |
| const retCopy = variant0; | |
| if (typeof retCopy === "object" && retCopy.tag === "err") { | |
| throw new ComponentError(retCopy.val); | |
| } | |
| return retCopy.val; | |
| } | |
| run023Run = exports2["wasi:cli/[email protected]#run"]; | |
| const run023 = { | |
| run | |
| }; | |
| return { run: run023, "wasi:cli/[email protected]": run023 }; | |
| }(); | |
| let promise, resolve, reject; | |
| function runNext(value) { | |
| try { | |
| let done; | |
| do { | |
| ({ value, done } = gen.next(value)); | |
| } while (!(value instanceof Promise) && !done); | |
| if (done) { | |
| if (resolve) | |
| return resolve(value); | |
| else | |
| return value; | |
| } | |
| if (!promise) | |
| promise = new Promise((_resolve, _reject) => (resolve = _resolve, reject = _reject)); | |
| value.then((nextVal) => done ? resolve() : runNext(nextVal), reject); | |
| } catch (e) { | |
| if (reject) | |
| reject(e); | |
| else | |
| throw e; | |
| } | |
| } | |
| const maybeSyncReturn = runNext(null); | |
| return promise || maybeSyncReturn; | |
| } | |
| var llvm = new Application(llvm_resources_exports, instantiate, "yowasp-llvm"); | |
| var runLLVM = llvm.run.bind(llvm); | |
| function subcommand(command, subcommandName) { | |
| return function(args = null, files = {}, options = {}) { | |
| if (args === null) | |
| return command(args, files, options); | |
| return command([subcommandName, ...args], files, options); | |
| }; | |
| } | |
| function runClang(args = null, files = {}, options = {}) { | |
| if (args === null) | |
| return runLLVM(args, files, options); | |
| if (args.includes("-###")) | |
| return runLLVM(args, files, options); | |
| if (args.includes(`--version`) || args.includes(`-help`) || args.includes(`--help`) || args.includes(`--help-hidden`)) | |
| return runLLVM(args, files, options); | |
| function writeStderr(output) { | |
| if (options.stderr === undefined) { | |
| console.log(output); | |
| } else { | |
| options.stderr(new TextEncoder().encode(output)); | |
| options.stderr(null); | |
| } | |
| } | |
| function unquoteClangArgs(line) { | |
| return Array.from(line.matchAll(/ (?:([^ "]+)|"((?:[^"\\$]|\\["\\$])+)")/g), (match) => { | |
| if (match[1] !== undefined) { | |
| return match[1]; | |
| } else if (match[2] !== undefined) { | |
| return match[2].replaceAll(/\\["$\\]/g, (m) => m[1]); | |
| } | |
| }); | |
| } | |
| let gen = function* () { | |
| const [arg0, ...argsRest] = args; | |
| const outputSubarrays = []; | |
| function captureOutput(bytes) { | |
| if (bytes !== null) | |
| outputSubarrays.push(new Uint8Array(bytes)); | |
| } | |
| let hash3Error = undefined; | |
| try { | |
| yield runLLVM([arg0, "-###", ...argsRest], files, { | |
| stdout: captureOutput, | |
| stderr: captureOutput, | |
| synchronously: options.synchronously | |
| }); | |
| } catch (err) { | |
| hash3Error = err; | |
| } | |
| const outputArray = new Uint8Array(outputSubarrays.reduce((a, b) => a + b.length, 0)); | |
| let outputLength = 0; | |
| for (const outputSubarray of outputSubarrays) { | |
| outputArray.subarray(outputLength, outputLength + outputSubarray.length).set(outputSubarray); | |
| outputLength += outputSubarray.length; | |
| } | |
| const output = new TextDecoder().decode(outputArray); | |
| if (hash3Error !== undefined) { | |
| writeStderr(output); | |
| throw hash3Error; | |
| } | |
| let state = 0; | |
| const commands2 = []; | |
| for (const line of output.split(` | |
| `)) { | |
| if (state === 0) { | |
| if (!(line.startsWith("clang") || line.startsWith("Target:") || line.startsWith("Thread model:") || line.startsWith("InstalledDir:") || line.startsWith("Build config:"))) { | |
| state = 1; | |
| } | |
| } | |
| if (state === 1) { | |
| if (line === " (in-process)") {} else if (line.startsWith(' "')) { | |
| commands2.push(unquoteClangArgs(line)); | |
| } else if (line === "") { | |
| state = 2; | |
| } else { | |
| state = 3; | |
| } | |
| continue; | |
| } | |
| if (state === 2) { | |
| state = 3; | |
| } | |
| if (state === 3) { | |
| break; | |
| } | |
| } | |
| if (state !== 2) { | |
| writeStderr(output); | |
| } else { | |
| if (args.includes("-v")) | |
| writeStderr(output); | |
| for (const command of commands2) { | |
| if (command[0] === "") { | |
| command.shift(); | |
| } | |
| try { | |
| files = yield runLLVM(command, files, options); | |
| } catch (err) { | |
| if (err instanceof Exit) | |
| delete err.files.tmp; | |
| throw err; | |
| } | |
| } | |
| } | |
| delete files.tmp; | |
| return files; | |
| }(); | |
| let promise, resolve, reject; | |
| function runNext(value) { | |
| try { | |
| let done; | |
| do { | |
| ({ value, done } = gen.next(value)); | |
| } while (!(value instanceof Promise) && !done); | |
| if (done) { | |
| if (resolve) | |
| resolve(value); | |
| else | |
| return value; | |
| } | |
| if (!promise) | |
| promise = new Promise((_resolve, _reject) => (resolve = _resolve, reject = _reject)); | |
| value.then((nextVal) => done ? resolve() : runNext(nextVal), (error) => { | |
| try { | |
| ({ value, done } = gen.throw(error)); | |
| } catch (e) { | |
| reject(e); | |
| } | |
| }); | |
| } catch (e) { | |
| if (reject) | |
| reject(e); | |
| else | |
| throw e; | |
| } | |
| } | |
| const maybeSyncReturn = runNext(null); | |
| return promise || maybeSyncReturn; | |
| } | |
| var commands = { | |
| addr2line: subcommand(runLLVM, "addr2line"), | |
| ar: subcommand(runLLVM, "ar"), | |
| "c++filt": subcommand(runLLVM, "c++filt"), | |
| dwarfdump: subcommand(runLLVM, "dwarfdump"), | |
| nm: subcommand(runLLVM, "nm"), | |
| objcopy: subcommand(runLLVM, "objcopy"), | |
| objdump: subcommand(runLLVM, "objdump"), | |
| readobj: subcommand(runLLVM, "readobj"), | |
| ranlib: subcommand(runLLVM, "ranlib"), | |
| size: subcommand(runLLVM, "size"), | |
| strip: subcommand(runLLVM, "strip"), | |
| symbolizer: subcommand(runLLVM, "symbolizer"), | |
| "wasm-ld": subcommand(runLLVM, "wasm-ld"), | |
| clang: subcommand(runClang, "clang"), | |
| "clang++": subcommand(runClang, "clang++") | |
| }; | |
| export { | |
| runLLVM, | |
| runClang | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment