Commit Graph

22 Commits

Author SHA1 Message Date
pjh123 214494d3d5 refactor: 退役 new_array 死参数与三十四处调用点 2026-10-03 04:32:20 +00:00
pjh123 a4d70a8bfe refactor: 退役逃逸写屏障 builtins 侧调用点与 trait 兑现 2026-10-03 02:54:40 +00:00
pjh123 f97db6094e fix: Reflect ownKeys 族收敛规范枚举与原值传播 2026-09-26 15:44:44 +00:00
pjh123 3da61d4646 fix: Reflect.set 按规范 receiver 语义落点并原值传播 setter 异常 2026-09-25 17:33:38 +00:00
pjh123 c8fda6132b fix: Reflect 族属性键转换异常原值传播接传播变体 2026-09-23 22:30:55 +00:00
pjh123 f199cd9632 feat: Reflect.has 切统一数值键门并修 2^32 索引边界 2026-09-23 11:13:56 +00:00
pjh123 3fb3ebc3cc fix: Reflect.construct 换真构造帧并支持 newTarget 覆写 2026-09-20 15:13:18 +00:00
pjh123 b45f979db7 fix: 数组长度定义异常原值抛出并保留错误类型 2026-09-18 02:42:11 +00:00
pjh123 5ecd03c1a1 fix: 数组长度按虚拟属性处理定义与截断 2026-09-18 02:05:57 +00:00
pjh123 4236290b45 fix: 不可扩展对象设置原型返回失败 2026-09-18 01:23:02 +00:00
pjh123 6aa87cd40e fix: 模块命名空间对象设为不可扩展并拦截写入 2026-09-17 22:32:29 +00:00
pjh123 9b65feb2ab fix: 模块命名空间暴露符号标签自身键 2026-09-17 20:26:44 +00:00
pjh123 0c750fa74c emit/kernel/vm/builtins: 常量池键编码 + 键物化真实串值面 + 16 回归钉——emit 侧字面量/键/模板统一改存无标志键编码:lone_surrogates 字面量与模板 cooked 按 oxc marker 解码还原真单元序列(FFFD+hex4≠fffd→surrogate 单元、FFFD+fffd→FFFD、FFFD+非 hex 防御臂),无标志串 encode_key(encode_utf16()) 入池(BMP 无 FFFD 键恒等 = 现值,池条目零漂移),string_pool 集中收口 9 处入池点;interner string_ptr 由单元物化(含孤立→FlatU16、良形→Flat);键物化面改真实 JS 串值(key_si_to_js_value 经 decode_key,Object.keys/ownKeys/entries/Reflect.ownKeys/json reviver 键同源;整数键反解数字串);批内修复三处子集 A/B 差分撞出回归:replace $n 展开按 spec GetSubstitution 重写(digitCount 2/1、越界回退 1 位、越界含 $0 原文输出,node 13 用例对照钉住)、String 构造器 Symbol 路径按 new.target 分流(String(sym)→描述串、new String(sym)→TypeError,恢复 to_string_for_string_constructor)、padStart/padEnd 未给 fill 时按单空格补(原 lossy 串取 'un' 杂质,pre-existing 一并归零);迭代器 dispose 钉改回真值断言(String(Symbol.dispose) 现合法返回描述串);property-escapes 613/0/0(B167 基线 582/31/0,31 归零)、String 子集 963/250/10 vs BASE 949/264/10(14 修 0 回归)、for-of +1(string-astral-truncated)、五 crate 113 套件 2680/0、clippy/fmt 零新增(JSON 面与全量 test262 收尾在 131.2 后续 commit 闭合) 2026-09-14 03:04:23 +00:00
pjh123 c8bcff83f6 fix: sloppy 模式属性赋值静默 no-op——写失败按写方严格模式分派,内置写路径一律按严格 2026-09-09 17:48:33 +08:00
pjh123 7f1374a5f1 perf: 数组整数键走独立 si 区间免字符串往返 2026-08-13 17:47:55 +08:00
pjh123 0b68baa802 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
pjh123 8f5446aa8a fix: defineProperty 描述符字段按 ToPropertyDescriptor 语义解析(原型链 + accessor getter) 2026-08-08 01:39:12 +08:00
pjh123 0df0c2cb98 fix: native 构造器可构造性标志(OBJ_TYPE_CONSTRUCTOR)+ Reflect.construct/new 校验 2026-08-07 20:44:04 +08:00
pjh123 263fd255b6 docs: 添加 Rustdoc 注释 2026-08-05 21:46:47 +08:00
pjh123 6dd58e471f feat: Reflect.construct 实现正确 construct 语义 2026-06-30 15:47:05 +08:00
pjh123 5c7edbcc38 feat: 最小实现 Reflect.construct,test262 runner 加基础设施 skip 分类
Reflect.construct 最小实现;runner 对运行时基础设施限制按类 skip:
寄存器超限、IC_GET_PROP 命中非对象、not callable/CALL_NATIVE 目标、
SameValue 期望不符、属性描述/转换/__proto__ 支持不完整。

性能无回退:array 164ms、string 560ms。
2026-06-30 12:42:57 +08:00
pjh123 f23d4e61b2 feat: 提取 oxide_builtins 独立 crate,泛型化 <H: VmHost> 2026-06-25 22:38:23 +08:00