Commit Graph

13 Commits

Author SHA1 Message Date
pjh123 ffe1d6fc02 fix: json 测试保留 Vm 生命周期再读字符串结果
eval 返回 (Vm, JsValue) 但绑定符丢弃 Vm 使字符串随 Vm drop 释放,
stringify_val 随后读已释放内存。命名绑定保留 Vm 到断言结束。
2026-08-15 19:18:19 +08:00
pjh123 f2535ffc77 perf: 字符串 +/+= 二元拼接改 Cons rope 惰性扁平化消除 O(n²)
JsString 拆 Flat/Cons 变体:Cons 经独立 ConsNode 保存左右子节点 + O(1)
字节长 + 惰性扁平化产物缓存(OnceLock 原子发布,产物挂节点生命周期)。
concat_strings 接线:总长 ≤ 128B 的小链急切扁平(与 rope 前同款,拼接即
消费场景零开销),大链 O(1) 链接——大段重复拼接从 O(n²) 拷贝降为 O(n)
链接,文本在消费点(.length/==/string_ref/方法族)首次扁平化后缓存。

GC 兼容:mark 收口 mark_string_live 传播 Cons 子节点与产物闭包(显式栈
防深链爆栈);sweep/full_reset 共用 drop 辅助连带释放产物;节点字节记账
用 O(1) byte_len。rope 节点登记 session 字符串表,与执行期字符串 GC
(指令边界触发)天然兼容。JsString 结构 32B 与 rope 前同 bin,小串路径
零结构回退;unsafe impl Send/Sync 论证同 StringPtr(perm 恒 Flat)。
2026-08-15 14:32:08 +08:00
爱特每羊队 5ec0dc2b7d feat: implement Temporal Instant zoned conversion 2026-08-11 20:54:25 +08:00
爱特每羊队 e8506e6f29 fix: Object 内置方法 ToObject 装箱(原始值不再误抛 TypeError) 2026-08-10 20:08:40 +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
爱特每羊队 328b8a3ddc docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
爱特每羊队 db8aa7025e fix: Number 静态方法 ToNumber 转换、格式化方法精度/边界修复、常量属性描述符 2026-06-27 22:46:48 +08:00
爱特每羊队 14dc4d04c6 feat: 实现 JSON.stringify replacer/space/toJSON/循环检测和 JSON.parse reviver 2026-06-27 22:41:51 +08:00
爱特每羊队 7705a9a600 feat: 修复 Array.slice 负数索引处理,新增 Array push/pop/shift/unshift/slice 边界测试 2026-06-27 15:28:46 +08:00
爱特每羊队 b0a3b041eb feat: 完成 Object.entries/values/is/getOwnPropertyDescriptor/hasOwnProperty/propertyIsEnumerable 修复 2026-06-27 15:24:16 +08:00
爱特每羊队 e02d196891 feat: 修复 Object.defineProperties/fromEntries 实现,getPrototypeOf/hasOwn/isExtensible 参数校验 2026-06-27 15:17:37 +08:00
爱特每羊队 f31d45dc68 feat: JsObject 新增 frozen/sealed 标志位,修复 freeze/seal/preventExtensions/isFrozen/isSealed/isExtensible 六个完整性方法 2026-06-27 15:12:44 +08:00
爱特每羊队 5f8123f1f3 feat: 新增 to_integer_or_infinity/to_length/same_value_zero 三个 ES 抽象操作辅助函数,修复 objects_keys/create/defineProperty/assign/getOwnPropertyNames 五个方法的 TypeError 处理 2026-06-27 14:42:16 +08:00