今天发布的版本旨在降低失控脚本带来的风险。衷心感谢 @tpetsas 提交最初的 Gum PR,推动了这项工作。
- script:添加
Script.interrupt(),它会中止当前正在执行的任何 JavaScript, 同时让脚本保持加载并可再次运行。这对于希望通过 Ctrl+C 从失控求值中恢复的 REPL 尤其方便。在没有代码执行时进行中断不会产生任何效果,因此操作刚结束后 到达的 Ctrl+C 不会干扰下一个操作。 - script:添加
Script.terminate(),它会中断执行并卸载脚本,因此陷入长时间 运行或无限操作的脚本仍可被彻底清理。 - gumjs:为 QuickJS 和 V8 实现中断与终止支持。QuickJS 现在会轮询每个脚本的
中断标志,而 V8 使用
Isolate::TerminateExecution(),并在执行展开后清除 粘滞的终止状态。 - core:通过
AgentSession、载荷脚本引擎和公共Script类接通新 API。 Barebone 会话会将这些操作报告为不受支持。 - core:从
enumerate_processes()以 metadata 范围公开进程argv,与path一致,而不再将其限制在 full 范围。
oleavr