pjh123
|
d877e63cf1
|
fix: 全局对象成员写与删后镜像槽反向同步防裸读失步
|
2026-09-14 13:10:17 +00:00 |
|
pjh123
|
75b98e7f78
|
fix: 良形 FFFD 属性键收口到编码键空间形态
|
2026-09-14 10:55:53 +00:00 |
|
pjh123
|
3acac721b0
|
types/kernel/vm/builtins: JsString UTF-16 载荷层(FlatU16 变体 + 单元入口)——原 UTF-8 载荷只存 well-formed 串、孤立 surrogate lossy 转 U+FFFD 回写,FromCodePoint/属性转义与字符串面码点语义皆破;现载荷直存 [u64;3](Flat well-formed / FlatU16 单元序列 / Cons 拼接),utf16_len 独立 32 位字,32B 布局锚保持;from_units 智能路由(含孤立→FlatU16),as_str 仅限 Flat,units/units_borrowed 单元借用,as_lossy_str 宽容读;string_forge 编解码 surrogate 感知(孤立 surrogate 逃逸 hex4 编码、解码展开 astral 代理对、string_ptr 由单元物化);VmHost 单元物化/分配/查询入口 + runtime_api 单元 API;字符串内置全法单元化(charAt/slice/substr/split/replace/search/match/matchAll 单元定位;空模式边界:search→0、match→[""]、replace 插 0 位、matchAll 游标耗尽守卫;接收者 ToString 错误原样传播);正则内置单元化(exec/test/search/symbol_* 单元文本,替换串 \u{...} 与孤立 surrogate 文本处理,lastIndex 与 matchAll 游标单元化);字符串迭代器码点化(高代理+后续低代理成对产出,astral 值回真实码点);String(Symbol) 抛 TypeError;回归钉更新五处(charAt/split/slice/substr 单元精确语义 + dispose 钉改 TypeError 断言);四 crate 全绿(oxide_vm 98 套件 2403 测)+ clippy/fmt 零新增
|
2026-09-13 22:42:10 +00:00 |
|
pjh123
|
d9c469e9d0
|
fix: 子模块表代际注册表——跨 run 存活函数按创建期表代解析子模块,索引悬空与静默错模块闭合
|
2026-09-12 19:27:22 +00:00 |
|
pjh123
|
c8bcff83f6
|
fix: sloppy 模式属性赋值静默 no-op——写失败按写方严格模式分派,内置写路径一律按严格
|
2026-09-09 17:48:33 +08:00 |
|
pjh123
|
c7b54cb181
|
feat: String.raw/groupBy/withResolvers/f16round/__defineGetter__ 低垂果实批量实现
|
2026-08-22 10:26:00 +08:00 |
|
pjh123
|
2d4c074530
|
feat: eval 脚本模式保留完成值与全局 var(create_dynamic_script)
|
2026-08-17 00:14:47 +08:00 |
|
pjh123
|
9f13d107ec
|
feat: Iterator helpers 基建——Symbol.dispose 注册与 %IteratorHelperPrototype%
|
2026-08-16 14:44:47 +08:00 |
|
pjh123
|
e54b877f17
|
fix: 异常值通道配对——忽略调用槽配对、unwind 接住清槽、生成器参数初始化不覆盖异常值
|
2026-08-16 11:29:50 +08:00 |
|
pjh123
|
cec7d04b86
|
fix: Function.prototype.apply 解除实参上限,native 大实参集走 spill 溢出区
apply 曾把实参数组静默截断到 55 个(寄存器窗口限制),导致
String.fromCodePoint.apply(null, codePoints) 这类大参数集调用只取前 55 个。
改为直接物化全部实参经 TailCall 下发:字节码目标走帧参数区(spill 栈)任意
个数;native 目标新增 spill 溢出区通道,寄存器窗口(253)之外的实参转存
spill 栈(GC 根、嵌套安全),builtin 经 VmHost::native_arg_count/native_arg_at
读取,String.fromCodePoint 迁移为新接口。大实参集不再静默截断。
|
2026-08-15 20:31:32 +08:00 |
|
pjh123
|
9e16d7687c
|
fix: BigInt64Array/BigUint64Array 与 DataView BigInt 存取走真 BigInt 语义
TA 元素读写按 kind 分流:BigInt 类型走 ToBigInt(Number 入参抛 TypeError、
写入 mod 2^64 截断、读出为真 BigInt 值),数值类型走 ToNumber 且显式拒绝
BigInt 值;消除 64 位整数经 f64 中转的静默精度丢失。
- runtime_api 新增公共 to_bigint_full / string_to_bigint_full,bigint 构造器
与 asIntN/asUintN 改调公共版消除双实现
- sort/toSorted 默认序对 BigInt 类型按 i64/u64 值比较;reverse/copyWithin/
filter/toReversed/with 消除无谓数值中转
- 构造器第一参数非对象统一走 ToIndex(bool/null/BigInt/字符串),Symbol 抛
TypeError
- DataView get/setBigInt64/getBigUint64 返回 BigInt 值、入参按 ToBigInt 校验
- 测试:精度往返 / TypeError / mod 2^64 / 字节序 / 排序 / 回调值类型断言
|
2026-08-15 20:04:48 +08:00 |
|
pjh123
|
5fbc0ccda5
|
fix: f64 转字符串 ryu 路径负数改追加防破坏非空缓冲前缀
|
2026-08-15 17:35:27 +08:00 |
|
pjh123
|
9a7fe9777d
|
perf: typeof 改 js_type 单次提取并复用进程级静态字符串消除每次分配
|
2026-08-15 16:09:19 +08:00 |
|
pjh123
|
735db1b141
|
perf: 相等/严格相等/ToNumber 改 js_type 单次提取收敛并修复混合 tag 严格相等 ±0 语义
|
2026-08-15 15:50:35 +08:00 |
|
pjh123
|
9ba1eb4c1c
|
perf: f64 转字符串去中间分配并加整数 double 快路径
|
2026-08-15 15:06:43 +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
|
dc98074d79
|
fix: 对象建键入口统一走 property_key_si 规范化,数字键不再分裂
Object.fromEntries/JSON.parse/new Map 对象 entry/rest 解构静态 excluded
四处直接 intern 动态字符串键绕过整数键区间映射,规范数字键分裂为
字符串键与整数键两个键。统一经 string_key_si 规范化:规范数字串映射
整数键,其余 intern 字符串键,与 property_key_si 字符串分支口径一致。
make_int_key 增加 debug 断言兜底索引越界。
|
2026-08-14 22:37:46 +08:00 |
|
pjh123
|
1c5676e614
|
perf: ASCII 单字符缓存 + 字符串迭代器游标收尾
|
2026-08-14 12:11:54 +08:00 |
|
pjh123
|
b7e9d18220
|
perf: 收紧字符串借用语义消除跨分配点 UB
|
2026-08-13 16:24:00 +08:00 |
|
pjh123
|
3ad80d6ed4
|
perf: new_string_owned 零拷贝路径替代 new_string 二次克隆
|
2026-08-13 14:55:08 +08:00 |
|
pjh123
|
d2c21c3a4a
|
perf: parse_js_number 去 lowercase 分配 + int32 位运算直取
|
2026-08-13 14:48:19 +08:00 |
|
pjh123
|
62991cfa4b
|
feat: 新增 Symbol.species well-known symbol 绑定(Symbol.species 解析/键槽/内建对象)
|
2026-08-12 12:50:53 +08:00 |
|
pjh123
|
af61dcf6fc
|
feat: ToPropertyKey 改走 ToPrimitive,Symbol 键与描述符,转换错误可捕获
|
2026-08-12 09:59:56 +08:00 |
|
pjh123
|
1824ef0df1
|
feat: num-bigint 接入任意精度 BigInt(字面量、算术、toString、asIntN/asUintN)
|
2026-08-12 03:15:18 +08:00 |
|
pjh123
|
078688070d
|
feat: 实现最小 BigInt 子集(字面量/算术/比较/构造器,Temporal 前置)
|
2026-08-10 23:02:31 +08:00 |
|
pjh123
|
8a53bfb584
|
feat: 编译管线/类型层 crate 补全多级日志宏 + 关键路径日志
|
2026-08-10 17:56:28 +08:00 |
|
pjh123
|
c65f3be179
|
feat: TypedArray 原型方法族全量解锁(回调/查找/迭代/排序/ES2023 copy 族)
|
2026-08-09 13:18:50 +08:00 |
|
pjh123
|
32c0474959
|
fix: Number::toString 符合 ECMA-262(1e21 指数、radix RangeError、parseInt/Number 字符串解析)
|
2026-08-08 20:39:55 +08:00 |
|
pjh123
|
d186c4d9f2
|
feat: Function 构造器(动态编译字符串生成函数)
|
2026-08-08 03:07:26 +08:00 |
|
pjh123
|
31e28a03a6
|
docs: 补充注释与格式化
|
2026-08-06 23:10:27 +08:00 |
|
pjh123
|
263fd255b6
|
docs: 添加 Rustdoc 注释
|
2026-08-05 21:46:47 +08:00 |
|
pjh123
|
72ff89e056
|
perf: 移除 JsString 死哈希字段,消除每次字符串创建的 O(n) FxHash 开销
|
2026-06-30 20:04:37 +08:00 |
|
pjh123
|
da75f3a214
|
perf: 字符串拼接用 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 |
|
pjh123
|
365b0e58f6
|
fix: Error原型属性、规范toString、V8风格stack trace
|
2026-06-27 20:13:17 +08:00 |
|
pjh123
|
e7a0d5aa16
|
feat: for-of 异常中断按规范关闭迭代器,next() 抛错可捕获并保留原始值
|
2026-06-27 18:28:07 +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 |
|
pjh123
|
27b7e8ad29
|
refactor: 重写 abstract_eq 为 ES §7.2.15 11 步算法
|
2026-06-27 13:23:35 +08:00 |
|
pjh123
|
d387347f80
|
feat: ToPrimitive 链支持 Symbol.toPrimitive
|
2026-06-27 11:22:37 +08:00 |
|
pjh123
|
f23d4e61b2
|
feat: 提取 oxide_builtins 独立 crate,泛型化 <H: VmHost>
|
2026-06-25 22:38:23 +08:00 |
|
pjh123
|
00c38ba5f9
|
feat: 迁移 NativeResult
|
2026-06-25 18:32:09 +08:00 |
|