Commit Graph

38 Commits

Author SHA1 Message Date
爱特每羊队 6d7ad03417 feat: TypedArray 第一批解锁(%TypedArray% 构造器、原型访问器、of/from、bind 绑参、harness) 2026-08-09 12:26:31 +08:00
爱特每羊队 915dedb151 feat: class 私有成员语义(字段/方法/访问器 + brand 检查 + 契约修复) 2026-08-09 11:08:36 +08:00
爱特每羊队 38abdfd9ab feat: class 公有字段 define 语义 + computed key 类定义期求值一次 2026-08-09 09:35:24 +08:00
爱特每羊队 d4fffcdcc6 fix: try 内 return 泄漏 TryHandler,异常跳回死函数 catch 死循环 2026-08-09 07:41:34 +08:00
爱特每羊队 2f8f1c3b71 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
爱特每羊队 eefdfc0d2c feat: RegExp.prototype 实现 Symbol.match/replace/search/split/matchAll 2026-08-08 22:33:32 +08:00
爱特每羊队 a814dd0700 fix: try/finally 支持 break/continue/return 穿越 finally(completion 机制) 2026-08-08 12:38:25 +08:00
爱特每羊队 6c7b10d6c5 feat: 对象字面量 spread({...obj} 展开可枚举自有属性) 2026-08-08 11:24:09 +08:00
爱特每羊队 2777b00c82 feat: 调用实参 spread(f(...args) / new F(...args) / super(...args)) 2026-08-08 10:33:16 +08:00
爱特每羊队 ea86a2c0ac feat: 数组字面量 spread([...a] 展开为 for-of 追加) 2026-08-08 09:29:37 +08:00
爱特每羊队 a206d0ef82 feat(vm): arguments 对象绑定(CREATE_ARGUMENTS + 帧实参 spill 区) 2026-08-08 00:01:22 +08:00
爱特每羊队 ca938e0655 fix(vm): 数组属性存储机制(array_prop_count 显式元素数 + shape 属性偏移 + IC/prop_forge 对齐) 2026-08-07 21:53:45 +08:00
爱特每羊队 bf4d4a508d feat(regexp): 迁移到 regress 引擎(backref/lookaround/命名组/v-flag)+ 手动 \$ 展开 replace + exec 捕获组数组 2026-08-07 21:29:22 +08:00
爱特每羊队 fec6b68ecb fix(emit): 括号包裹的匿名函数参与 name 推断(is_anonymous_function_definition) 2026-08-07 20:27:49 +08:00
爱特每羊队 b49ac29414 fix(emit): 默认参数/解构默认值函数名推断(SetFunctionName) 2026-08-07 20:15:35 +08:00
爱特每羊队 5b70a21832 fix(emit): 赋值表达式与对象属性函数名推断(function/class/arrow) 2026-08-07 20:10:06 +08:00
爱特每羊队 b291a68528 fix(emit): 变量声明赋值 class 表达式参与函数名推断 2026-08-07 20:05:43 +08:00
爱特每羊队 0d42207a1c fix(regexp): 正则字面量编译期语法校验(非法抛 SyntaxError)+ CREATE_REGEXP 保留错误类型 2026-08-07 20:02:11 +08:00
爱特每羊队 82e15f32f6 fix(emit): 参数默认值 emit 前完成捕获分析 + 类方法支持 upvalue 捕获 2026-08-07 19:18:38 +08:00
爱特每羊队 11852e76af fix(emit): 闭包捕获/upvalue 分析纳入参数默认值表达式(含嵌套函数声明) 2026-08-07 19:04:25 +08:00
爱特每羊队 f015e1c428 fix(emit): 闭包捕获分析补扫 catch 参数解构模式的表达式引用 2026-08-07 18:32:05 +08:00
爱特每羊队 accc677769 fix(emit): 顶层模块 param_layout.base 改 0 防父槽误判 + regalloc/VM 诊断日志 2026-08-07 17:13:57 +08:00
爱特每羊队 70536e3e2f fix(emit): catch 参数支持解构 pattern(数组/对象/默认值) 2026-08-07 16:27:48 +08:00
爱特每羊队 e9d1bc822c fix(emit): LOAD_UPVALUE 的 uv_idx 改 Imm 编码避免被 RegAlloc 重写 2026-08-07 16:09:17 +08:00
爱特每羊队 04a6aa10f7 feat(emit): 实现默认参数(形参 initializer 与解构默认值) 2026-08-07 15:26:25 +08:00
爱特每羊队 f4d95f373e fix(vm): 链式 upvalue 捕获支持多层嵌套函数引用深层变量 2026-08-07 14:56:51 +08:00
爱特每羊队 c8979660cb fix(vm): 函数 name 属性与 harness 重复 Test262Error 定义 2026-08-07 12:22:59 +08:00
爱特每羊队 be9b96dfae feat(parser): 引入 oxc_semantic 早期错误检查与 onlyStrict 注入 2026-08-07 12:04:46 +08:00
爱特每羊队 dd291250e2 feat(iter): 迭代协议支持对象字面量 computed key 与 upvalue 捕获 2026-08-07 10:49:24 +08:00
爱特每羊队 328b8a3ddc docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
爱特每羊队 8317c03edb fix(emit): 调用参数打包连续寄存器 + 捕获参数建 cell + TEMPLATE_STR ext 重映射(修复 JSON/closures/template 回归) 2026-08-06 19:33:05 +08:00
爱特每羊队 f4e0fdf14e feat(dce): liveness 驱动的精确二轮 dce_precise + is_top_level 标志(D-17/D-19/D-20) 2026-08-06 16:55:26 +08:00
爱特每羊队 38d6c7a60e refactor(emit): 寄存器号 u8→u32 全链放宽,vreg 化去 checkpoint/reg_overflow(B005) 2026-08-06 16:31:16 +08:00
爱特每羊队 c52bf6313e fix(emit): const 声明 STORE_VAR 恒 b=0,修复寄存器复用触发误抛(B011) 2026-08-06 16:03:09 +08:00
爱特每羊队 68afc72871 fix(emit): upvalue_captures 按名字排序,修复 HashSet 非确定顺序致 LOAD_UPVALUE 错位 2026-08-06 14:29:04 +08:00
爱特每羊队 8711b51af7 fix(emit): 修复 clippy 阻塞(doc comment 空行 + single_match_else) 2026-08-06 00:45:49 +08:00
爱特每羊队 f461235f04 docs: 添加 Rustdoc 注释 2026-08-05 21:46:47 +08:00
爱特每羊队 bbdfca1a1c refactor(compiler): 拆分 oxide_emit 为独立 emit pass crate(依赖倒置) 2026-08-05 20:13:18 +08:00