pjh123
0c6aa7fbef
fix: 构造帧 super 状态改显式标志修复多层继承与 return 语义
derived 构造器 super 状态改由 CallFrame.super_called 显式标志承载,
取代依赖 regs[254] 值判定:多层继承中间 derived 帧由 SUPER_CALL 压入
this=构造对象,值判定三重失效(未调 super 不报错 / this-before-super
失效 / 合法 super() 误判 more-than-once)。父构造器正常返回经
construct_result_reg==Some(254) 识别置位调用方帧(该 ABI 不变量仅
SUPER_CALL 压帧满足),抛错走 unwind 不置位。
do_return 检查放宽为非对象返回值(含 undefined/null/原始值)且未调
super 时抛 ReferenceError(规范 §9.2.2.2),调过 super 回退构造 this。
super 构造器改取当前帧 callee 原型而非 newTarget 原型:newTarget 跨
SUPER_CALL 压帧保持为最外层类,取其原型在中间 derived 层解析回同一
父类导致无限压帧。
2026-08-16 01:23:52 +08: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-14 05:26:46 +08:00
2026-06-23 17:06:39 +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-06-25 22:38:23 +08:00
2026-08-15 20:04:48 +08:00
2026-08-06 23:10:27 +08:00
2026-08-15 21:30:28 +08:00
2026-08-15 22:40:45 +08:00
2026-06-24 20:15:15 +08:00
2026-08-15 23:36:01 +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-08-15 21:04:24 +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-15 20:31:51 +08:00
2026-08-09 16:09:49 +08:00
2026-08-11 23:14:42 +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 01:23:52 +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-06 23:10:27 +08:00
2026-08-14 22:37:46 +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-06 23:10:27 +08:00
2026-08-15 16:09:19 +08:00
2026-08-14 06:14:38 +08:00
2026-08-15 18:50:07 +08:00
2026-08-15 19:13:51 +08:00
2026-08-09 20:00:16 +08:00
2026-08-10 03:52:17 +08:00
2026-08-15 08:16:49 +08: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-08-10 11:54:44 +08:00
2026-08-15 09:17:03 +08:00
2026-08-15 23:20:36 +08:00
2026-08-15 22:16:05 +08:00
2026-08-15 16:09:19 +08:00
2026-08-09 11:08:36 +08:00
2026-08-15 14:32:08 +08:00
2026-08-06 23:10:27 +08:00
2026-08-15 20:55:20 +08:00
2026-08-06 23:10:27 +08:00
2026-08-15 12:13:36 +08:00
2026-08-15 16:09:19 +08:00
2026-08-15 21:55:43 +08:00
2026-06-24 20:15:15 +08:00
2026-08-08 16:03:24 +08:00
2026-08-15 14:32:08 +08:00
2026-08-15 17:35:27 +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