@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
36 lines • 3.12 kB
JavaScript
export function wasm_function_import(func) {
var _a;
const body = [];
if (func.params) {
body.push(func.params.map(type => `(param ${type})`).join(" "));
}
if (func.results) {
body.push(`(result ${func.results.join(" ")})`);
}
return [
`(func $${func.name} (import ${JSON.stringify(func.moduleName)} ${JSON.stringify((_a = func.moduleFunc) !== null && _a !== void 0 ? _a : func.name)})`,
...body,
")",
];
}
export function wasm_function(name, func) {
const body = [];
if (func.params) {
body.push(codeGenericParam("param", func.params));
}
if (func.results) {
body.push(`(result ${func.results.join(" ")})`);
}
if (func.locals) {
body.push(codeGenericParam("local", func.locals));
}
if (func.body)
body.push(...func.body);
return [`(func $${name}`, body, ")"];
}
function codeGenericParam(id, param) {
return Object.keys(param)
.map(name => `(${id} $${name} ${param[name]})`)
.join(" ");
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FzbS9mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBd0I7O0lBQ3pELE1BQU0sSUFBSSxHQUFnQixFQUFFLENBQUE7SUFDNUIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUNELE9BQU87UUFDSCxVQUFVLElBQUksQ0FBQyxJQUFJLFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FDekMsSUFBSSxDQUFDLFVBQVUsQ0FDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQUEsSUFBSSxDQUFDLFVBQVUsbUNBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1FBQ3BELEdBQUcsSUFBSTtRQUNQLEdBQUc7S0FDTixDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBWSxFQUFFLElBQWtCO0lBQzFELE1BQU0sSUFBSSxHQUFnQixFQUFFLENBQUE7SUFDNUIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJO1FBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN0QyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFDeEMsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQ3JCLEVBQXFCLEVBQ3JCLEtBQStCO0lBRS9CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQzlDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQixDQUFDIn0=