UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

35 lines 3.07 kB
export function wasm_function_import(func) { 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(func.moduleFunc ?? 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FzbS9mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBd0I7SUFDekQsTUFBTSxJQUFJLEdBQWdCLEVBQUUsQ0FBQTtJQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFDRCxPQUFPO1FBQ0gsVUFBVSxJQUFJLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxTQUFTLENBQ3pDLElBQUksQ0FBQyxVQUFVLENBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztRQUNwRCxHQUFHLElBQUk7UUFDUCxHQUFHO0tBQ04sQ0FBQTtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVksRUFBRSxJQUFrQjtJQUMxRCxNQUFNLElBQUksR0FBZ0IsRUFBRSxDQUFBO0lBQzVCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSTtRQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdEMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQ3hDLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEVBQXFCLEVBQUUsS0FBK0I7SUFDNUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNwQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDbEIsQ0FBQyJ9