// =============================================================================
// JavaScript Evaluation for BiDi script.evaluate
// =============================================================================
///|
/// FFI: Evaluate JavaScript expression and return BiDi remote value JSON
/// Returns: { "type": "success"|"exception", "result"|"exceptionDetails": ..., "consoleEntries": [...] }
extern "js" fn js_evaluate_expression(
expression : String,
capture_console : Bool,
user_activation : Bool,
root_ownership : Bool,
serialization_options_json : String,
) -> String =
#| (expression, captureConsole, userActivation, rootOwnership, serializationOptionsJson) => {
#| const consoleEntries = [];
#| let originalConsole = null;
#| const resolveCurrentLogUrl = () => {
#| try {
#| if (globalThis.location && typeof globalThis.location.href === "string" && globalThis.location.href !== "") {
#| return String(globalThis.location.href);
#| }
#| } catch (_e) {}
#| try {
#| if (typeof globalThis.__pageUrl === "string" && globalThis.__pageUrl !== "") {
#| return String(globalThis.__pageUrl);
#| }
#| } catch (_e) {}
#| return "about:blank";
#| };
#| const resolveInlineScriptOffsets = () => {
#| const url = resolveCurrentLogUrl();
#| if (!url.startsWith("data:")) {
#| return { lineOffset: 0, columnOffset: 0 };
#| }
#| try {
#| const comma = url.indexOf(",");
#| if (comma < 0) return { lineOffset: 0, columnOffset: 0 };
#| const meta = url.slice(0, comma).toLowerCase();
#| const payload = url.slice(comma + 1);
#| let decoded = "";
#| if (meta.includes(";base64")) {
#| decoded = atob(payload);
#| } else {
#| decoded = decodeURIComponent(payload);
#| }
#| const lines = decoded.replace(/\r\n/g, "\n").split("\n");
#| let inScript = false;
#| for (let index = 0; index < lines.length; index++) {
#| const line = String(lines[index] || "");
#| const lower = line.toLowerCase();
#| if (!inScript) {
#| if (lower.includes("