pjh123
0302640056
fix: 调度标志经内联 state-swap 边界泄漏——C 侧无帧 accessor 调用继承属主调度上下文,构造帧弹出后误判提前交付、被调函数构造后字节码被跳过
根因:generator/async/construct 三个调度标志是 VM 全局字段,不经
InlineSyncState 在 state-swap 边界保存/恢复。C 侧路径(builtin 经
ordinary_get 无帧调用 accessor,走 call_bytecode_function_inline 状态
交换、不压边界帧)在生成器/异步属主 dispatch 上下文内运行时继承泄漏
标志;被调函数内 new 字节码构造器() 的构造帧是嵌套 dispatch 帧栈唯一
帧,构造器 RETURN 弹出后帧栈清空,do_return 的 frames.is_empty() &&
调度标志 误判为属主 dispatch,提前交付构造残留,被调函数构造点之后
的字节码整体不执行(getter 的 throw 被吞,属性读拿到 undefined)。
上层 FDI rest 绑定循环因此永不见 done,步数上限后初始化/恢复方把
异常折成通用错误。
修复:三标志纳入 InlineSyncState,新增 flag_zero 算子臂(save 快照
属主值并清零 VM 侧、restore 写回)——嵌套内联调用不继承外层调度
上下文。既有置位点全部在 save 之后、属主 dispatch 之前,语义不变;
do_return 交付条件注释同步更新。
回归钉:inline_dispatch_scoping_tests——C 侧 accessor 构造后 throw
穿透 instanceof Error、C 侧取值 42、字节码帧边界对照、顶层对照
(修复前两枚 C 侧钉失败)。
2026-09-11 11:14:10 +00:00
..
2026-08-14 06:14:38 +08:00
2026-08-15 21:17:49 +08:00
2026-08-09 07:22:46 +08:00
2026-08-16 12:34:14 +08:00
2026-08-15 23:13:26 +08:00
2026-06-24 20:15:15 +08:00
2026-08-15 05:49:59 +08:00
2026-08-16 20:11:56 +08:00
2026-06-25 22:38:23 +08:00
2026-08-15 20:04:48 +08:00
2026-08-16 10:58:50 +08:00
2026-08-16 19:35:11 +08:00
2026-08-22 10:44:48 +08:00
2026-08-16 12:50:36 +08:00
2026-06-24 20:15:15 +08:00
2026-08-16 16:58:32 +08:00
2026-08-14 22:37:46 +08:00
2026-06-09 00:53:46 +08:00
2026-08-15 22:32:14 +08:00
2026-09-09 17:48:33 +08:00
2026-08-14 06:14:38 +08:00
2026-08-15 20:31:51 +08:00
2026-08-08 18:01:00 +08:00
2026-08-16 02:08:13 +08:00
2026-08-16 12:50:36 +08:00
2026-09-09 15:14:57 +08:00
2026-08-15 20:04:48 +08:00
2026-08-15 12:13:47 +08:00
2026-08-08 10:33:16 +08:00
2026-08-16 13:32:25 +08:00
2026-08-15 16:09:19 +08:00
2026-06-06 20:08:10 +08:00
2026-08-06 23:10:27 +08:00
2026-08-06 23:10:27 +08:00
2026-08-06 23:10:27 +08:00
2026-08-15 17:35:27 +08:00
2026-08-15 22:29:09 +08:00
2026-08-11 14:17:45 +08:00
2026-08-16 15:02:04 +08:00
2026-08-16 14:53:57 +08:00
2026-09-09 22:00:29 +08:00
2026-08-17 00:14:47 +08:00
2026-08-16 12:00:59 +08:00
2026-08-06 23:10:27 +08:00
2026-09-10 05:56:10 +08:00
2026-08-16 09:31:39 +08:00
2026-08-06 23:10:27 +08:00
2026-08-15 16:09:19 +08:00
2026-08-16 16:58:32 +08:00
2026-09-10 01:52:29 +08:00
2026-08-15 19:13:51 +08:00
2026-08-16 12:50:36 +08:00
2026-09-10 05:56:10 +08:00
2026-09-10 04:16:08 +08:00
2026-09-10 01:52:29 +08:00
2026-08-16 10:31:34 +08:00
2026-09-11 10:14:56 +00:00
2026-09-11 11:14:10 +00:00
2026-08-15 17:35:27 +08:00
2026-06-18 15:26:16 +08:00
2026-08-15 22:29:09 +08:00
2026-09-09 15:14:57 +08:00
2026-09-09 17:48:33 +08:00
2026-08-16 13:41:01 +08:00
2026-09-11 05:53:38 +00:00
2026-08-16 12:50:36 +08:00
2026-08-16 14:04:27 +08:00
2026-09-09 17:48:33 +08:00
2026-08-09 11:08:36 +08:00
2026-08-16 15:02:04 +08:00
2026-08-06 23:10:27 +08:00
2026-09-09 17:48:33 +08:00
2026-08-06 23:10:27 +08:00
2026-09-10 02:30:09 +08:00
2026-08-15 12:13:36 +08:00
2026-08-15 16:09:19 +08:00
2026-09-09 19:52:03 +08:00
2026-08-16 03:36:02 +08:00
2026-09-10 02:30:09 +08:00
2026-08-16 15:02:04 +08:00
2026-08-15 14:32:08 +08:00
2026-08-15 17:35:27 +08:00
2026-08-16 02:50:29 +08:00
2026-08-16 16:58:32 +08:00
2026-08-15 07:47:54 +08:00
2026-08-16 00:10:08 +08:00
2026-06-06 20:31:57 +08:00
2026-06-09 00:53:46 +08:00
2026-06-06 15:41:28 +08:00
2026-08-06 23:10:27 +08:00