Commit Graph

140 Commits

Author SHA1 Message Date
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 9e3be30fe8 fix: TypedArray 元素写入进 buffer + BYTES_PER_ELEMENT 属性 2026-08-08 21:41:33 +08:00
pjh123 32c0474959 fix: Number::toString 符合 ECMA-262(1e21 指数、radix RangeError、parseInt/Number 字符串解析) 2026-08-08 20:39:55 +08:00
pjh123 7a559978f0 feat: Set/Map 构造器接收可迭代实参 + size 访问器 + ES2024 set-methods 2026-08-08 18:01:00 +08:00
pjh123 d759338fd5 fix: 全量单测修复(flatten 健壮性 + 测试链路补 flatten + 断言对齐规范) 2026-08-08 16:03:24 +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 31e28a03a6 docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
pjh123 fd267816f4 feat: 新增 MOV/SPILL/UNSPILL 执行语义 + spill 栈帧边界(D-06/D-07/D-08) 2026-08-06 16:51:01 +08:00
pjh123 5988696f5b fix: const 声明 STORE_VAR 恒 b=0 致寄存器复用误抛 2026-08-06 16:03:09 +08:00
pjh123 261c62a37e fix: 修复 date_to_json 测试时区敏感断言(UTC+8 下用显式 UTC 时间戳) 2026-08-06 01:05:56 +08:00
pjh123 050f75c952 fix: 完善闭包捕获(cell 索引稳定、参数遮蔽、函数/类名捕获、b 槽立即数) 2026-08-05 19:19:29 +08:00
pjh123 2f7fe3cedf fix: 修复不符合 JS 语义约束的错误行为测试 2026-08-05 15:44:22 +08:00
pjh123 435674d961 fix: 接通透传闭包值链路 2026-06-30 23:57:22 +08:00
pjh123 e18edeef6a fix: 闭包值传递链路完善 2026-06-30 23:08:11 +08:00
pjh123 dcc3b610e9 style: 自动格式化 2026-06-30 20:04:27 +08:00
pjh123 c58aae4862 feat: 搭建闭包捕获基础设施 2026-06-30 19:58:58 +08:00
pjh123 930b14b3f0 fix: count pass 注册顶层 var 名,hoisted 函数声明可解析外层 var 2026-06-30 16:37:50 +08:00
pjh123 a34c289d47 fix: native 调用保存/恢复 this 寄存器,避免方法内调用后 this 被 callee 覆盖 2026-06-30 16:12:42 +08:00
pjh123 ccc527af71 fix: 顶层 count pass 镜像 emit 的函数提升顺序,消除跳转目标漂移导致的死循环 2026-06-30 16:01:00 +08:00
pjh123 6dd58e471f feat: Reflect.construct 实现正确 construct 语义 2026-06-30 15:47:05 +08:00
pjh123 d5c292d33f style: 修复 clippy --all-targets 告警 2026-06-30 15:18:13 +08:00
pjh123 b18654fe5f feat: Symbol.hasInstance 支持 instanceof 双路径分派 2026-06-27 22:53:04 +08:00
pjh123 52af0a7b29 fix: Date set(UTC)*/setYear 无参/NaN 不再越界 panic,按 spec 设为 NaN 2026-06-27 21:49:00 +08:00
pjh123 8c8cff3aba fix: Date.prototype.setYear 无参/NaN 不再越界 panic,按 spec 设为 NaN 2026-06-27 21:41:04 +08:00
pjh123 8d23c83ce2 fix: 对齐 ?? 与静态成员复合赋值的 counter/emitter 计数,并加 projected_pc 断言 2026-06-27 21:07:16 +08:00
pjh123 03c9809c30 fix: 对齐 class 体 counter/emitter 指令条数,修私有方法、计算键、派生构造器字段注入位置的跳转漂移 2026-06-27 20:50:12 +08:00
pjh123 3794ae3fd5 fix: 对齐 counter/emitter 指令条数,修解构参数、数组赋值元素、解构catch、for-init 无初始化的跳转漂移 2026-06-27 20:32:33 +08:00
pjh123 365b0e58f6 fix: Error原型属性、规范toString、V8风格stack trace 2026-06-27 20:13:17 +08:00
pjh123 0b3668d91a fix: 修复 String 原型方法边界条件 2026-06-27 19:45:18 +08:00
pjh123 54e35bfeea fix: 解构赋值 rest 目标按 emitter 递归计数,修嵌套 rest 死循环 2026-06-27 19:18:31 +08:00
pjh123 a75748bff9 feat: Date 时区修复 + setUTC* 方法 + Date.UTC 实现 2026-06-27 19:03:46 +08:00
pjh123 e7a0d5aa16 feat: for-of 异常中断按规范关闭迭代器,next() 抛错可捕获并保留原始值 2026-06-27 18:28:07 +08:00
pjh123 426be5fe5d style: 自动格式化 2026-06-27 17:49:36 +08:00
pjh123 279255a821 feat: Map/Set 支持 for-of 迭代与 entries/values/keys(内部槽方式) 2026-06-27 17:49:19 +08:00
pjh123 749a1c7aec fix: defineProperty 纯属性描述符按 ES 规范默认创建 value=undefined,不再错误抛 TypeError 2026-06-27 17:23:50 +08:00
pjh123 9c4a169c33 fix: for-in 整数索引升序+字符串插入序枚举,null/undefined 空遍历 2026-06-27 17:15:32 +08:00
pjh123 78f6b0b5d9 fix: delete 增加 configurable 检查,defineProperty 修复部分更新值覆盖,枚举排序增加整数索引优先和非枚举过滤 2026-06-27 16:34:48 +08:00
pjh123 888d6e2b58 test: 添加类型转换基础设施的 coercion 测试覆盖 2026-06-27 14:15:06 +08:00
pjh123 f23d4e61b2 feat: 提取 oxide_builtins 独立 crate,泛型化 <H: VmHost> 2026-06-25 22:38:23 +08:00
pjh123 ddffa8504e refactor: 字符串值改用 JsString 指针表示,键与字面量改用 PermInterner 2026-06-24 20:15:15 +08:00
pjh123 3ea2353194 feat: 实现 SequenceExpression + 带标签 break/continue + EmptyStatement 2026-06-23 23:00:20 +08:00
pjh123 5de79b4253 feat: 实现 new String 装箱构造 + String.prototype.toString,补齐 boxed primitives 2026-06-23 22:33:37 +08:00
pjh123 be87e4e21b refactor: 拆分 bytecode/cache crate 并模块化 counter 2026-06-23 17:06:39 +08:00
pjh123 ba5e095a83 fix: 封装字节码计数并修复 for-of 解构偏移 2026-06-23 16:21:39 +08:00
pjh123 69500513b3 fix: 修复同步调用参数限制与内建语义错误 2026-06-23 14:38:58 +08:00
pjh123 2d166cbfa5 fix: 修复全局边界安全与内存稳定性问题 2026-06-22 19:43:00 +08:00
pjh123 32af37963e feat: 支持可选链空值合并与逻辑赋值 2026-06-18 15:26:16 +08:00