pjh123
0ffb5d2cf3
fix: tagged template 语义修正——cooked undefined/this绑定/site缓存/冻结 + groupBy getter 异常传播 + defineGetter setter 保留
2026-08-22 11:15:55 +08:00
pjh123
c7b54cb181
feat: String.raw/groupBy/withResolvers/f16round/__defineGetter__ 低垂果实批量实现
2026-08-22 10:26:00 +08:00
pjh123
d2572682dc
fix: generator/async native 状态 session 字符串 GC 标记修复
2026-08-22 08:50:41 +08:00
pjh123
c66dd81134
perf: BigInt 参与回收——对齐字符串 GC 路径
...
- SessionGc 新增 live_bigints 集合,mark 阶段扫描根与对象边标记存活 BigInt
- process_edge 扩展 BigInt 值处理,scan_edges_for_mark 透传 live_bigints
- 新增 sweep_session_bigints:按存活标记清扫不活跃 BigInt box
- collect/collect_strings_only 收集流程接入 BigInt 清扫
- should_collect/should_collect_gc/should_collect_strings 纳入 BigInt 存在性判定
- for_each_value 新增 immutables_cache 根扫描,防止常量池 BigInt 被误回收
- 13 个 gc_runtime_tests 全部 PASS,无新增 clippy 警告
2026-08-22 08:46:00 +08:00
pjh123
8e47168168
perf: mark 边收集去临时 Vec、合并双遍遍历
2026-08-22 08:23:31 +08:00
pjh123
469ef7543b
perf: GC 字节账目补齐 + is_epoch_ptr O(1) + 分配热路径触发
2026-08-22 08:10:32 +08:00
pjh123
95155ce450
fix: Promise rejection reason 异常值通道配对修复——create_error 辗转路径归正为 create_from_text
2026-08-21 23:34:04 +08:00
pjh123
c514ab35a3
feat: 实现 console 全局对象 (log/warn/error/info/debug/trace)
2026-08-21 22:29:21 +08:00
pjh123
b9680c80aa
feat: Temporal.PlainTime round 舍入(真因子校验 + 跨午夜取模)
2026-08-17 06:23:06 +08:00
pjh123
c6f0e76bf8
feat: Temporal.PlainTime add/subtract 时间域叠加
2026-08-17 06:02:06 +08:00
pjh123
0037f0e5ad
feat: Temporal.PlainTime until/since 差值计算
2026-08-17 02:40:21 +08:00
pjh123
bed1abd3f3
feat: Temporal.PlainTime equals/compare 比较语义
2026-08-17 02:34:30 +08:00
pjh123
27cc6333f5
feat: Temporal.PlainTime.from 三分支解析(字符串/实例/bag)
2026-08-17 02:19:01 +08:00
pjh123
a8e68a7a45
feat: Temporal.PlainTime toString options 与字符串化族
2026-08-17 02:14:30 +08:00
pjh123
e06071429c
feat: ZonedDateTime.round 舍入(day 双路径 + 真因子校验)
2026-08-17 01:55:52 +08:00
pjh123
430f922ef3
feat: ZonedDateTime.compare 跨实例按 epoch 比较(复用 from 解析器,忽略时区/日历)
2026-08-17 01:27:54 +08:00
pjh123
2d4c074530
feat: eval 脚本模式保留完成值与全局 var(create_dynamic_script)
2026-08-17 00:14:47 +08:00
pjh123
68f8637acf
feat: ZonedDateTime.add/subtract 时长运算(复用 PDT 叠加算法 + 中间日期检查 + 时区/日历槽保真)
2026-08-17 00:02:00 +08:00
pjh123
5bf674e1c6
feat: ZonedDateTime.with/withPlainTime/withCalendar 字段合并(offset 默认 prefer + 时间串歧义解析)
2026-08-16 23:49:30 +08:00
pjh123
064f565b21
feat: ZonedDateTime.until/since 差异计算(复用 difference_core)
2026-08-16 23:21:08 +08:00
pjh123
0761fb3010
feat: ZonedDateTime.from 三分支解析(字符串/对象/property bag + offset/disambiguation 选项)
2026-08-16 22:50:48 +08:00
pjh123
c7b238e518
feat: eval 全局注册与最小执行(间接 eval)
2026-08-16 22:25:33 +08:00
pjh123
04067a4fe5
feat: ZonedDateTime.withTimeZone 与 equals 基础实现
2026-08-16 22:07:38 +08:00
pjh123
3baa868232
feat: ZonedDateTime.toString 族(toJSON/toLocaleString/valueOf 绑定)
2026-08-16 21:56:57 +08:00
pjh123
662fbcde86
feat: ZonedDateTime 27 个属性 getter 宏化实现
2026-08-16 21:21:07 +08:00
pjh123
6c7bcdeed6
feat: AsyncDisposableStack disposeAsync 状态机(needsAwait 微任务序 + 错误链合并 + 绑定三时机)
2026-08-16 20:11:50 +08:00
pjh123
e96142ef4f
feat: DisposableStack 测试九组(构造器/方法语义/原型形状/GC 交叉)
2026-08-16 19:32:23 +08:00
pjh123
7c02d3ece1
feat: DisposableStack 内置对象(状态盒 + use/adopt/defer/dispose/move + GC 六处接线 + 绑定三时机)
2026-08-16 19:22:57 +08:00
pjh123
75b429fac7
fix: Error 子类型构造器描述符与原型链对齐规范(prototype/name meta + [[Prototype]] 指向 Error)
2026-08-16 19:10:51 +08:00
pjh123
e100bfb8b4
feat: SuppressedError 内置错误实现(三字段属性序 + 构造器接线)
2026-08-16 19:04:09 +08:00
pjh123
9f64962b20
fix: sloppy 普通函数调用 this 未定义/null 绑定全局对象
2026-08-16 16:58:32 +08:00
pjh123
f1c4b33735
feat: Iterator.prototype 返回迭代器方法(map/filter/take/drop/flatMap)
2026-08-16 16:38:45 +08:00
pjh123
4ea723764f
feat: Iterator.prototype 终端方法(forEach/every/some/find/reduce/toArray)
2026-08-16 16:02:14 +08:00
pjh123
649ea44e71
fix: 控制流逃出计数读越界防御,无 ext 字的返回安全降级
2026-08-16 15:02:04 +08:00
pjh123
9f13d107ec
feat: Iterator helpers 基建——Symbol.dispose 注册与 %IteratorHelperPrototype%
2026-08-16 14:44:47 +08:00
pjh123
c8f5f76e47
refactor: 测试断言改 assert!
2026-08-16 14:04:27 +08:00
pjh123
885c43e0e4
refactor: match 可改 ? 的等价改写
2026-08-16 14:04:25 +08:00
pjh123
f814a2c5db
fix: new 表达式 native 构造收口 call_function_sync 防 255/254 槽污染
2026-08-16 13:41:01 +08:00
pjh123
fe8892079e
chore: 全仓 rustfmt 格式化归拢
2026-08-16 12:50:36 +08:00
pjh123
926d907965
fix: 闭包链式捕获越界改编译错误早暴露防静默错值
2026-08-16 12:34:14 +08:00
pjh123
161c4c2c41
fix: for-await-of 同步迭代器 return() 忽略路径补异常值槽配对
2026-08-16 12:00:59 +08:00
pjh123
e54b877f17
fix: 异常值通道配对——忽略调用槽配对、unwind 接住清槽、生成器参数初始化不覆盖异常值
2026-08-16 11:29:50 +08:00
pjh123
5d6afb5fd8
fix: clear_ic_caches ext 计数补登 BREAK/CONTINUE/RETURN
2026-08-16 10:43:03 +08:00
pjh123
4a1e0a3e9e
fix: IC 快速路径 symbol 原始值走 Symbol.prototype 链
2026-08-16 10:31:34 +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
8d78c5151b
test: supervise 模式回传失败类别,汇总可按根因拆分
...
子进程心跳扩展失败分类计数(类别\t计数逐行写出),supervise_window
聚合为 RunStats 而非裸三计数,父进程汇总打印 FAIL categories(与
in-process 共用 print_fail_categories)。此前子进程 stdout 被丢弃、
heartbeat 只带 pass/fail/skip,categorize_fail 在 supervise 下完全
不可用,10k+ fail 无法按 VM/parse/compile 根因拆分;现在类别基线
可数据化。超时/崩溃归入 timeout/crash 类别。
2026-08-16 02:50:29 +08:00
pjh123
4e2644016b
test: $262 宿主对象最小绑定 + is not defined 判定白名单化
...
引擎侧:绑定 $262 宿主对象(evalScript/global/gc 可用,detachArrayBuffer/
createRealm/agent 抛 not supported 而非 ReferenceError),并加入编译期
已知全局表;引用 $262.* 的测试从全量 skip 转为真实执行。
runner 侧:is not defined 不再一票吞 skip——解析错误消息中的标识符名,
仅在缺失全局白名单($262/structuredClone/queueMicrotask)内才按能力
缺失跳过;其余 is not defined 按真实失败计入,修复后应转 PASS 的
测试恢复可见。
2026-08-16 02:47:02 +08:00
pjh123
c59ad64e7d
fix: 全局构造器与内置对象属性改非枚举与规范对齐
2026-08-16 02:29:42 +08:00
pjh123
c8c6349fcc
fix: NEW_OBJECT 走统一分配入口登记 epoch 对象消除属性向量泄漏
2026-08-16 02:16:34 +08:00