diff --git a/shared/static/wasm/sx-platform.js b/shared/static/wasm/sx-platform.js index 1b873404..40bebf8c 100644 --- a/shared/static/wasm/sx-platform.js +++ b/shared/static/wasm/sx-platform.js @@ -89,10 +89,17 @@ window._driveAsync = function driveAsync(result) { if (!result || !result.suspended) return; var req = result.request; - var items = req && (req.items || req); - var op = items && items[0]; - var opName = typeof op === "string" ? op : (op && op.name) || String(op); - var arg = items && items[1]; + // Request can be dict {op, args} or list (op-name arg ...) + var opName, arg; + if (req && req._type === "dict" && req.op) { + opName = req.op; + arg = req.args && req.args.items ? req.args.items[0] : null; + } else { + var items = req && (req.items || req); + var op = items && items[0]; + opName = typeof op === "string" ? op : (op && op.name) || String(op); + arg = items && items[1]; + } if (opName === "io-sleep" || opName === "wait") { setTimeout(function() { try { driveAsync(result.resume(null)); } catch(e) { console.error("[sx] driveAsync:", e.message); }