Commit Graph

39 Commits

Author SHA1 Message Date
pjh123 e6d70664d3 fix: 模板表达式高位寄存器槽保留 2026-08-11 17:17:30 +08:00
pjh123 b44bc3d7f2 feat: 新增 DEFINE_ACCESSOR_DYNAMIC opcode 支持计算键对象访问器 2026-08-10 23:28:18 +08:00
pjh123 8a53bfb584 feat: 编译管线/类型层 crate 补全多级日志宏 + 关键路径日志 2026-08-10 17:56:28 +08:00
pjh123 8163a5d25e perf: 子模块树改 Arc 共享,run() 免深拷贝模块树 2026-08-10 17:23:29 +08:00
pjh123 7efb26bc96 perf: 函数调用 bytecode 改 Arc 共享(O(1) 帧切换 + IC 写时复制) 2026-08-10 15:08:51 +08:00
pjh123 03b510b2ef refactor: opcode 语义单张声明式表(def/use/pure/jump/term/ic 六维收敛) 2026-08-10 12:23:19 +08:00
pjh123 9f6f694be9 fix: 私有字段 brand 检查 own 槽(字段不跨原型,规避 cell 值缺陷) 2026-08-10 11:23:52 +08:00
pjh123 80cb1c2feb feat: 循环 let/const 每迭代绑定(MAKE_CELL_FRESH + 解构捕获修复) 2026-08-10 10:18:39 +08:00
pjh123 e03ec0f635 fix: 脚本顶层 var/function 声明落 globalThis(DEFINE_GLOBAL_PROP 非可配置数据属性) 2026-08-10 03:52:17 +08:00
pjh123 a5a910a24e feat: for-await-of + Symbol.asyncIterator + AsyncFromSyncIterator 2026-08-10 03:21:37 +08:00
pjh123 85c192a747 feat: rest 参数(function f(...args)),实参区收集数组 2026-08-10 00:33:25 +08:00
pjh123 fd47cd56d0 feat: async/await 语法支持(AWAIT 帧快照挂起/恢复 + 微任务驱动 + AsyncFunction intrinsics) 2026-08-09 22:02:15 +08:00
pjh123 464712f7ba feat: 实现 yield* 委托语法(内层迭代器 next/return/throw 转发) 2026-08-09 20:00:16 +08:00
pjh123 783e89e4cb feat: 生成器基础支持(YIELD 帧快照挂起/恢复 + GeneratorPrototype next/return/throw)
- 新增 YIELD/SUSPEND_BODY opcode;function* 识别与 yield emit
- GeneratorState 全量快照 VM 执行上下文(regs/pc/bytecode/spill/save/try/cell 栈段/迭代器)
- 调用时参数初始化(默认值/解构副作用与异常在 g() 时刻生效)
- %GeneratorPrototype%/%GeneratorFunction.prototype% 内建对象与 next/return/throw
- session GC trace 生成器状态 JsValues;闭包捕获分析补 yield/赋值目标扫描
2026-08-09 18:02:08 +08:00
pjh123 c8740bfb49 feat: 函数 length 属性(字节码函数/bind 包装器)+ getter/setter name 前缀 2026-08-09 15:38:45 +08:00
pjh123 36fb61fc74 feat: 解构模式语义补齐(REST 枚举/getter/computed 排除、IteratorClose、RegAlloc def 干涉、for-in 捕获遮蔽) 2026-08-09 15:01:31 +08:00
pjh123 6c79dbb21c feat: class 私有成员语义(字段/方法/访问器 + brand 检查 + 契约修复) 2026-08-09 11:08:36 +08:00
pjh123 8669f55470 feat: class 公有字段 define 语义 + computed key 类定义期求值一次 2026-08-09 09:35:24 +08:00
pjh123 5611d90ad0 feat: with 语句、成员位/移位复合赋值、CALL_NATIVE 无目标修复
with 语句:新增 emit 支持,with 体内自由标识符动态解析(对象属性优先,
回退外层),支持读/写/复合赋值/自增自减/delete/var 初始化动态化,
TO_OBJECT opcode 处理原始值对象,顶层 this 绑定全局对象。

复合赋值:新增 6 个 COMPOUND_MEMBER_BIT_* opcode 支持成员位/移位复合赋值,
修复 computed member 复合赋值覆盖 bug,with 内标识符复合赋值动态化。

CALL_NATIVE:实现全局 isNaN/isFinite 并绑定,用户覆盖 builtin 名时
回退通用调用路径而非报错,局部遮蔽 builtin 名走普通 CALL。

test262: with 34 pass(基线 0),compound-assignment 320 pass(基线 223)
2026-08-09 07:22:46 +08:00
pjh123 cd214069cd fix: try/finally 支持 break/continue/return 穿越 finally(completion 机制) 2026-08-08 12:38:25 +08:00
pjh123 6c29515624 feat: 对象字面量 spread({...obj} 展开可枚举自有属性) 2026-08-08 11:24:09 +08:00
pjh123 ab979dc47b feat: 调用实参 spread(f(...args) / new F(...args) / super(...args)) 2026-08-08 10:33:16 +08:00
pjh123 bfcf132d73 feat: arguments 对象绑定(CREATE_ARGUMENTS + 帧实参 spill 区) 2026-08-08 00:01:22 +08:00
pjh123 de67cc8eee fix: 链式 upvalue 捕获支持多层嵌套函数引用深层变量 2026-08-07 14:56:51 +08:00
pjh123 fd94ff6931 fix: 子模块全局扁平化根治逃逸闭包上下文错位 2026-08-07 10:49:15 +08:00
pjh123 31e28a03a6 docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
pjh123 d3385bc838 feat: 管线接入 liveness/精确DCE/RegAlloc + --no-regalloc flag(D-17/D-18) 2026-08-06 17:56:55 +08:00
pjh123 9d619cd9bb feat: liveness 驱动的精确二轮 dce_precise + is_top_level 标志(D-17/D-19/D-20) 2026-08-06 16:55:26 +08:00
pjh123 c46f7023c6 feat: 新增 MOV/SPILL/UNSPILL opcode 登记 + 构造 API + 契约层(D-06/D-07) 2026-08-06 16:34:25 +08:00
pjh123 224d1347eb refactor: 寄存器号 u8→u32 全链放宽,vreg 化去 checkpoint/reg_overflow 2026-08-06 16:31:16 +08:00
pjh123 8952c1eccd test: 迁移 lowering 测试到 oxide_ir(测试随实现落位) 2026-08-06 14:11:54 +08:00
pjh123 77f819a826 refactor: 拆分寄存器契约(def/use/is_pure)为 contract 独立模块 2026-08-06 14:05:53 +08:00
pjh123 6c84ccca07 fix: STORE_VAR 一律判有副作用,修复顶层变量赋值被误删 2026-08-06 13:29:07 +08:00
pjh123 100f78fdca feat: 实现 is_pure 精确纯表(Pattern 1 全表 + LOAD_VAR/STORE_VAR 特判) 2026-08-06 10:50:18 +08:00
pjh123 a0f6ede4db test: 新增 is_pure 纯表单测(Pattern 1 各族正负例 + 特判分支) 2026-08-06 10:49:08 +08:00
pjh123 64431d4a08 feat: 实现 def_reg/use_regs 寄存器扫描契约(Pattern 2 全表) 2026-08-06 10:47:56 +08:00
pjh123 1306efdc78 test: 新增 def_reg/use_regs 契约单测(Pattern 2 反直觉槽位) 2026-08-06 10:45:10 +08:00
pjh123 263fd255b6 docs: 添加 Rustdoc 注释 2026-08-05 21:46:47 +08:00
pjh123 4f670eb7fd refactor: 拆分 oxide_ir 为独立 crate 2026-08-05 19:34:44 +08:00