From 7320fb7f7910bb9086b7c5ee9d966be212e905d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E7=82=8E?= <635735027@qq.com> Date: Mon, 13 Apr 2026 16:12:08 +0800 Subject: [PATCH] fix: support async browser scripts in build_eval_js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wrap eval script in async IIFE and await Promise-like results. Fixes Promise serialization returning '{}' for async skill scripts. 🤖 Generated with [Qoder][https://qoder.com] --- src/browser/callback_backend.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/browser/callback_backend.rs b/src/browser/callback_backend.rs index f66fbae..aab2132 100644 --- a/src/browser/callback_backend.rs +++ b/src/browser/callback_backend.rs @@ -436,7 +436,9 @@ fn build_eval_js(source_url: &str, script: &str) -> String { let events_url = escape_js_single_quoted(&events_endpoint_url(source_url)); format!( - "(function(){{try{{var v=(function(){{return {script}}})();\ + "(async function(){{try{{\ + var v=await (async function(){{return {script}}})();\ + if(v&&typeof v.then==='function'){{v=await v;}}\ var t=(typeof v==='string')?v:JSON.stringify(v);\ try{{callBackJsToCpp('{escaped_source_url}@_@'+window.location.href+'@_@{callback}@_@sgBrowserExcuteJsCodeByDomain@_@'+(t??''))}}catch(_){{}}\ var j=JSON.stringify({{type:'callback',callback:'{callback}',request_url:'{escaped_source_url}',payload:{{value:(t??'')}}}});\