Commit Graph

164 Commits

Author SHA1 Message Date
爱特每羊队 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
爱特每羊队 a82e4cd204 feat: Function 构造器(动态编译字符串生成函数) 2026-08-08 03:07:26 +08:00
爱特每羊队 ce86fcfb73 fix: delete 真正删除属性(shape 链重建 + 数组元素 hole 标记)
字节码 delete 原先只清值为 undefined,属性残留在 shape 链,hasOwnProperty/
keys/枚举仍可见。统一走共享 delete_own_property(与 Reflect.deleteProperty
一致):
- 命名属性经 shape 链重建移除,数组重建前保存并恢复元素区
- 数组下标元素标记为 hole(PropMetaEntry.hole),length 不变,
  存在性检查(resolve_property/get_own_property_slot/ordinary_get/for-in)
  判 hole,重赋值自动清除标记
- 不可配置属性统一返回 false(sloppy 语义,strict 抛错留待 emit 追踪严格模式)
- set_or_create_prop_value 数组下标键路由元素区,修复 delete 后重赋值误入
  shape 链

test262 Object +212 PASS/-102 FAIL,Array +149 PASS/-60 FAIL,无回归。
2026-08-08 02:25:13 +08:00
爱特每羊队 a206d0ef82 feat(vm): arguments 对象绑定(CREATE_ARGUMENTS + 帧实参 spill 区) 2026-08-08 00:01:22 +08:00
爱特每羊队 820de00d79 fix(vm): 数组元素写入越过元素区时搬移属性区 + defineProperty 数组索引走元素区 2026-08-07 23:20:32 +08:00
爱特每羊队 ca938e0655 fix(vm): 数组属性存储机制(array_prop_count 显式元素数 + shape 属性偏移 + IC/prop_forge 对齐) 2026-08-07 21:53:45 +08:00
爱特每羊队 accc677769 fix(emit): 顶层模块 param_layout.base 改 0 防父槽误判 + regalloc/VM 诊断日志 2026-08-07 17:13:57 +08:00
爱特每羊队 543f88ce86 fix(vm): 闭包 upvalue cell 占位稳定化修复错读调用方表 2026-08-07 14:38:47 +08:00
爱特每羊队 d1675c217d fix(vm): 子模块全局扁平化根治逃逸闭包上下文错位 2026-08-07 10:49:15 +08:00
爱特每羊队 4fa21d85d8 fix(vm): CREATE_CLOSURE 越界改运行时错误防进程中断 2026-08-07 00:42:33 +08:00
爱特每羊队 c59518e899 fix(vm): inline 回调支持 upvalue 闭包上下文 2026-08-07 00:23:35 +08:00
爱特每羊队 f57cb0f051 fix(vm): new 构造 cell_stack 失衡与子模块 immutables 缓存失步 2026-08-07 00:15:09 +08:00
爱特每羊队 328b8a3ddc docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
爱特每羊队 6c0c30e5d5 feat(vm): 新增 MOV/SPILL/UNSPILL 执行语义 + spill 栈帧边界(D-06/D-07/D-08) 2026-08-06 16:51:01 +08:00
爱特每羊队 f461235f04 docs: 添加 Rustdoc 注释 2026-08-05 21:46:47 +08:00
爱特每羊队 a4c13c4f6a fix: 接通透传闭包值链路 2026-06-30 23:57:22 +08:00
爱特每羊队 a17f98b02d fix: 修复闭包值传递链路 2026-06-30 22:52:25 +08:00
爱特每羊队 b944aa2832 fix: 修复嵌套函数调用并接通闭包捕获链路 2026-06-30 21:52:18 +08:00
爱特每羊队 7291fb237e perf: 优化调用原型链的 IC 命中加速 2026-06-30 21:41:05 +08:00
爱特每羊队 7877aad75d perf: 消除热路径冗余检查 2026-06-30 21:02:45 +08:00
爱特每羊队 4271b7e348 fix: 修复嵌套函数调用并接通闭包捕获链路 2026-06-30 20:49:23 +08:00
爱特每羊队 b915f127ca feat: 搭建闭包捕获基础设施 2026-06-30 19:58:58 +08:00
爱特每羊队 5feba7c20d style: 修复 clippy --all-targets 告警 2026-06-30 15:18:13 +08:00
爱特每羊队 5ecb428320 perf(vm): 字符串拼接用 push_to_string 消去中间分配, GC阈值 8M→32M
- oxide_runtime_api 新增 push_to_string: 直接将 JsValue 写入 String buffer
- dispatch_add / dispatch_compound_add 复用 Vm::string_buf, 每次concat从4次分配降到1次
- vm_support 新增 new_string_owned 接受 String 转移所有权
- kernel session_gc_threshold 8MB→32MB 减少频繁 GC
- build.sh: make clean 清跨平台 .obj 残留

(cherry picked from commit ad7b044a5a24b23819d783c5419d3e33f936dfc5)
2026-06-30 12:42:57 +08:00
爱特每羊队 3c92f8368c fix: Error原型属性、规范toString、V8风格stack trace 2026-06-27 20:13:17 +08:00
爱特每羊队 11d69ea95c feat: for-of 异常中断按规范关闭迭代器,next() 抛错可捕获并保留原始值 2026-06-27 18:28:07 +08:00
爱特每羊队 ec380802a8 fix: for-in 整数索引升序+字符串插入序枚举,null/undefined 空遍历 2026-06-27 17:15:32 +08:00
爱特每羊队 32000b6661 refactor: 重写 abstract_eq 为 ES §7.2.15 11 步算法 2026-06-27 13:23:35 +08:00
爱特每羊队 040e2ee6b1 feat: ToPrimitive 链支持 Symbol.toPrimitive 2026-06-27 11:22:37 +08:00
爱特每羊队 b986a8f229 feat: 为 VM 添加结构化日志 2026-06-26 20:50:05 +08:00
爱特每羊队 d1f7201f52 fix: 统一错误模型 2026-06-26 16:52:14 +08:00
爱特每羊队 417368dd5f fix: 将同步原生调用参数限制错误消息对齐 ECMAScript 规范措辞 2026-06-26 16:41:21 +08:00
爱特每羊队 2f5d91bd48 feat: 提取 oxide_builtins 独立 crate,泛型化 <H: VmHost> 2026-06-25 22:38:23 +08:00
爱特每羊队 ffc0916a6b refactor: Symbol/Iter/Profiling 子结构方法下沉,IC helper 完成提取 2026-06-25 22:08:27 +08:00
爱特每羊队 bb3f1cf0e9 refactor: Vm 状态分组、dispatch 拆分为分发表、IC 辅助函数独立成模块 2026-06-25 19:22:16 +08:00
爱特每羊队 2c8f85d5a9 feat: 迁移 NativeResult 2026-06-25 18:32:09 +08:00
爱特每羊队 06f769c4e0 perf: 不可变常量改 OnceLock 一次性缓存,删 Constant 死变体并移出 GC 根 2026-06-25 14:32:49 +08:00
爱特每羊队 1ef8349208 feat: 增加 CreateRegExp 字节码,正则字面量每次执行创建新对象 2026-06-25 10:28:35 +08:00
爱特每羊队 5007e7af7c feat: 增加 CreateClosure 字节码,函数字面量每次执行创建新闭包 2026-06-25 10:16:32 +08:00
爱特每羊队 12f66ae675 perf: 模块树改用 Arc 持有,消除同步调用路径深层模块克隆 2026-06-24 22:52:25 +08:00
爱特每羊队 33c0596c81 perf: 寄存器保存改用共享 save_stack,消除 Box<[JsValue]> 堆分配 2026-06-24 22:20:34 +08:00
爱特每羊队 466a0815ca refactor: 字符串值改用 JsString 指针表示,键与字面量改用 PermInterner 2026-06-24 20:15:15 +08:00
爱特每羊队 0de33f1a16 perf: for_each_root 迭代器替代 gc_roots,复用 Vec DFS mark 栈消除每轮 GC 堆分配 2026-06-24 19:01:51 +08:00
爱特每羊队 41c2b9cba9 fix: GC sweep 复用 Vm.forwarding,消除每轮 HashMap 分配 2026-06-24 15:59:55 +08:00
爱特每羊队 6bf5daa1af refactor: 清理未使用符号,合并bind_constructor宏,统一init/rebind绑定列表,bind_number改为表驱动 2026-06-24 12:12:44 +08:00
爱特每羊队 f602ae5f00 feat: 添加基准测试基础设施 2026-06-24 10:46:59 +08:00
爱特每羊队 dbc15f6d1f refactor: 拆分 bytecode/cache crate 并模块化 counter 2026-06-23 17:06:39 +08:00
爱特每羊队 1ed6562063 refactor: 统一错误对象构造与异常类型传播 2026-06-23 14:51:58 +08:00