pjh123
|
ad6874cd23
|
fix: Boolean 构造器对象臂按 B.3.4 特判 DDA 宿主对象为 falsy
|
2026-09-26 21:26:11 +00:00 |
|
pjh123
|
88fa1f36b1
|
fix: JSON 解析器嵌套深度上限 128 防深嵌套栈溢出
|
2026-09-25 04:10:13 +00:00 |
|
pjh123
|
a5663b439f
|
fix: BigInt 构造器精确大整数与 new/无参/分隔符语义
|
2026-09-24 01:58:03 +00:00 |
|
pjh123
|
53029dbcc7
|
fix: 数组 push/pop/shift/unshift 按规范接收 arraylike 与字符串接收者
|
2026-09-22 13:07:40 +00:00 |
|
pjh123
|
59feec79d0
|
fix: 日期多参组合补全分量有限性守卫与构造器 TimeClip 收尾
|
2026-09-20 21:21:09 +00:00 |
|
pjh123
|
d750d4a2b5
|
fix: 本地日期分量换算改走本地时区映射并消除负索引溢出
|
2026-09-20 19:55:07 +00:00 |
|
pjh123
|
06cd63c3b0
|
fix: 溢出钳位消灭 slice 与 Date 族引擎 panic
|
2026-09-20 17:52:34 +00:00 |
|
pjh123
|
c5e3318857
|
fix: concat 按物种构造与 isConcatSpreadable 规范整源展开
|
2026-09-20 14:38:41 +00:00 |
|
pjh123
|
87d588a10e
|
fix: JSON parse reviver 读写臂按正典归位,根级不写回 wrapper
|
2026-09-20 13:31:04 +00:00 |
|
pjh123
|
055ecf3022
|
fix: JSON 白名单按列表序与 Get 语义取值并透传 reviver 抛错原值
|
2026-09-20 09:57:56 +00:00 |
|
pjh123
|
f82cccbcdc
|
fix: JSON.stringify BigInt 值位抛 TypeError 并接 toJSON 钩子
|
2026-09-20 08:37:44 +00:00 |
|
pjh123
|
c64d99b751
|
fix: map/filter 接入 species 构造且可构造器统一查 @@species
|
2026-09-20 08:08:39 +00:00 |
|
pjh123
|
2e6c83576b
|
fix: 内置属性读取触发访问器并透传原始异常值
|
2026-09-20 05:51:45 +00:00 |
|
pjh123
|
13685efc9a
|
fix: species 构造器 undefined 回退内置 ArrayCreate
|
2026-09-19 20:24:22 +00:00 |
|
pjh123
|
235db7cb98
|
test: flatMap 收口补 ToObject/species/CDO/洞源引擎钉
|
2026-09-19 19:34:01 +00:00 |
|
pjh123
|
8cd3cf1440
|
fix: flat/flatMap 入口通用化、深度 64 位域、物种族与 CDO 收口
|
2026-09-19 18:46:46 +00:00 |
|
pjh123
|
43c859f35d
|
fix: Array.from/of 完整性目标收口按规范抛 TypeError
|
2026-09-19 18:03:27 +00:00 |
|
pjh123
|
e4e446e10c
|
test: concat 混合实参钉补 length 观察面
|
2026-09-19 17:11:14 +00:00 |
|
pjh123
|
be927a5df3
|
fix: at 极负索引越界返 undefined 并钉位装箱体跨窗保根
|
2026-09-19 17:06:58 +00:00 |
|
pjh123
|
e8f2a54a67
|
fix: concat 空数组实参按 ConcatSteps 展开为零元素
|
2026-09-19 15:41:22 +00:00 |
|
pjh123
|
a145fadd82
|
fix: splice/reverse/copyWithin/fill 入口 arraylike 化
|
2026-09-19 15:14:16 +00:00 |
|
pjh123
|
a4e060ac8a
|
fix: splice removed 数组按 species 构造并严格化 length 写
|
2026-09-19 13:56:22 +00:00 |
|
pjh123
|
e1691176c0
|
fix: reverse 中间截断整段补洞与下值提前钉位
|
2026-09-19 13:08:00 +00:00 |
|
pjh123
|
5d99f5eb7c
|
fix: splice reverse copyWithin at 按规范保洞与走 Get
|
2026-09-19 12:35:06 +00:00 |
|
pjh123
|
3169e8f2f9
|
perf: run 签名改 &Arc<CompiledModule>,顶层模块跨 run 共享——collect_flat_modules 顶层改 Arc::clone 消除逐 run 常量池深拷贝,全调用点 Arc 包装迁移
|
2026-09-11 22:19:13 +00:00 |
|
pjh123
|
fe8892079e
|
chore: 全仓 rustfmt 格式化归拢
|
2026-08-16 12:50:36 +08:00 |
|
pjh123
|
f52c5849f0
|
fix: json 测试保留 Vm 生命周期再读字符串结果
eval 返回 (Vm, JsValue) 但绑定符丢弃 Vm 使字符串随 Vm drop 释放,
stringify_val 随后读已释放内存。命名绑定保留 Vm 到断言结束。
|
2026-08-15 19:18:19 +08:00 |
|
pjh123
|
350b65c091
|
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 |
|
pjh123
|
90a162d39a
|
feat: Temporal Instant 时区转换
|
2026-08-11 20:54:25 +08:00 |
|
pjh123
|
9ba5821568
|
fix: Object 内置方法 ToObject 装箱(原始值不再误抛 TypeError)
|
2026-08-10 20:08:40 +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
|
31e28a03a6
|
docs: 补充注释与格式化
|
2026-08-06 23:10:27 +08:00 |
|
pjh123
|
dfdaeeaeaf
|
fix: Number 静态方法 ToNumber 转换、格式化方法精度/边界修复、常量属性描述符
|
2026-06-27 22:46:48 +08:00 |
|
pjh123
|
91d61d2ff9
|
feat: 实现 JSON.stringify replacer/space/toJSON/循环检测和 JSON.parse reviver
|
2026-06-27 22:41:51 +08:00 |
|
pjh123
|
e6a993cd37
|
feat: 修复 Array.slice 负数索引处理,新增 Array push/pop/shift/unshift/slice 边界测试
|
2026-06-27 15:28:46 +08:00 |
|
pjh123
|
4f9c591a51
|
feat: 完成 Object.entries/values/is/getOwnPropertyDescriptor/hasOwnProperty/propertyIsEnumerable 修复
|
2026-06-27 15:24:16 +08:00 |
|
pjh123
|
dd18499f05
|
feat: 修复 Object.defineProperties/fromEntries 实现,getPrototypeOf/hasOwn/isExtensible 参数校验
|
2026-06-27 15:17:37 +08:00 |
|
pjh123
|
af2d11d197
|
feat: JsObject 新增 frozen/sealed 标志位,修复 freeze/seal/preventExtensions/isFrozen/isSealed/isExtensible 六个完整性方法
|
2026-06-27 15:12:44 +08:00 |
|
pjh123
|
b85df71019
|
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 |
|