-- Cross-engine function call: Lua exports a "greet" function through the broker, -- then a spawned JavaScript task invokes that Lua function via calogCall and prints -- the string it returns. The export happens BEFORE the spawn so the child always -- sees the registered name; a short timer gives the JS task time to run, then exits. -- Run: bin/calog examples/scripts/polyglot/exportAcrossEngines.lua -- Publish a Lua function into the process-wide export registry. calogExport("greet", function(name) return "hello, " .. name end) -- The child runs on the JavaScript engine and reaches back into the Lua function. local jsCode = [[ var msg = calogCall("greet", "world"); calogPrint("javascript received:", msg); ]] local child = taskSpawn("js", jsCode) calogPrint("spawned javascript task:", child) -- Give the JS task time to run its call, then tear everything down. timerAfter(300, function() taskClose(child) calogUnexport("greet") calogExit(0) end)