pjh123
|
4f9b6ab444
|
refactor: 动态编译改经 CompilerService 注入,oxide_vm 去编译器依赖
|
2026-10-08 05:51:58 +00:00 |
|
pjh123
|
9a0e2962d4
|
fix: 多层逃出结算前清挂起信号防跨上下文误完成
|
2026-09-27 21:53:50 +00:00 |
|
pjh123
|
b6580036da
|
feat: for-await-of 多层逃出逐层 LIFO 关闭并接通异步生成器路径
|
2026-09-27 20:53:13 +00:00 |
|
pjh123
|
9ab19fb472
|
feat: for-await-of 逃出关闭异步 await return() 结算后恢复帧
|
2026-09-27 19:48:19 +00:00 |
|
pjh123
|
93eab980bf
|
fix: for-await-of 收尾 return 抛错恢复原始异常值
|
2026-09-27 18:28:48 +00:00 |
|
pjh123
|
3169e8f2f9
|
perf: run 签名改 &Arc<CompiledModule>,顶层模块跨 run 共享——collect_flat_modules 顶层改 Arc::clone 消除逐 run 常量池深拷贝,全调用点 Arc 包装迁移
|
2026-09-11 22:19:13 +00:00 |
|
pjh123
|
068db40fdd
|
test: upvalue cell 时序判别用例(class 捕获/var 入口初始化/参数默认值链式捕获)
|
2026-08-16 12:34:14 +08:00 |
|
pjh123
|
00b2f4d8b1
|
fix: class 生成器方法补 is_generator 标志,修正方法形态生成器语义
|
2026-08-16 11:44:20 +08:00 |
|
pjh123
|
744899aae9
|
fix: for-of/for-in 提前退出时按规范顺序完成 IteratorClose
return/break/continue 逃出 for-of 时此前完全不执行 IteratorClose:
BREAK/CONTINUE/RETURN 指令现在经 ext 字携带词法逃出的迭代器层数
(for-of + for-in 各 16 位),运行时在全部 finally 穿越之后、真正
跳转/返回之前按 LIFO 关闭——与规范 §13.7.5.4(循环体完成值已含
内部 try-finally 处理,IteratorClose 在后)顺序一致。
- emit 词法:LabelCtx 增加 for-of/for-in 深度计数,loop/switch/label
打开时快照,break/continue/return 按当前深度减目标深度计算逃出层数
(switch 内 break 以 switch 打开点为基准,目标循环自身不计入)
- 指令编码:brk/cont/ret 三参构造,lower 跳转路径补发 ext 字
- 运行时:dispatch_break/continue/return 读取逃出计数,无 finally 时
直接关闭后跳转/返回,有 finally 时随 Completion 悬挂由 TRY_FINALLY_END
在穿越完成后消费;生成器 .return()/.throw() 注入经 complete_generator_return
全关快照栈迭代器;return() 抛错经 unwind 替代完成值并关闭剩余迭代器
- 顺带:for-in 逃出残留(无 return() 语义,仅弹栈);for-await-of 的
异步迭代器不做同步关闭(return() promise 须 await,走异步机制)
- 新增 15 项回归测试:return/labeled break/continue/switch/while/finally
顺序/抛错优先/生成器注入/for-in/for-await-of 嵌套
|
2026-08-16 09:31:39 +08:00 |
|
pjh123
|
2e16b63d9b
|
feat: for-of 迭代器栈条目化:迭代器与最近 next 结果配对存放
单一 last_for_of_result 槽被嵌套迭代覆盖,CLOSE 判定本迭代器是否
自然 done 时误读他者结果,导致数组解构/spread/嵌套 for-of 提前退出
漏调或误调 return()。改为栈条目 (iterator, last_result) 配对:
- IterState.for_of_iters 元素改 ForOfEntry,删除 last_for_of_result
- INIT 压条目,DONE 写本条目,NEXT/CLOSE 读本条目结果判 done
- GC mark/rewrite、inline save/restore、挂起帧快照同步配对遍历
- for-await-of 数组解构提前 break 现正确触发 return()(任务 40 样例)
|
2026-08-16 04:00:06 +08:00 |
|
pjh123
|
7362137720
|
chore: 清理 oxide_vm clippy 告警
|
2026-08-14 05:26:46 +08:00 |
|
pjh123
|
6a58f89e11
|
fix: async-gen 被拒 yield 排队 next 得 done(unwrap 前 AwaitSuspended)
|
2026-08-10 11:30:30 +08:00 |
|
pjh123
|
fd47cd56d0
|
feat: async/await 语法支持(AWAIT 帧快照挂起/恢复 + 微任务驱动 + AsyncFunction intrinsics)
|
2026-08-09 22:02:15 +08:00 |
|