pjh123
|
31296ed16d
|
perf: 相等/严格相等/ToNumber 改 js_type 单次提取收敛并修复混合 tag 严格相等 ±0 语义
|
2026-08-15 15:50:35 +08:00 |
|
pjh123
|
f9c639426d
|
perf: f64 转字符串去中间分配并加整数 double 快路径
|
2026-08-15 15:06:43 +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 |
|
pjh123
|
b82fe9af32
|
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
|
e1747ca560
|
perf: ASCII 单字符缓存 + 字符串迭代器游标收尾
|
2026-08-14 12:11:54 +08:00 |
|
pjh123
|
e62bc54f08
|
perf: 收紧字符串借用语义消除跨分配点 UB
|
2026-08-13 16:24:00 +08:00 |
|
pjh123
|
3ae2f2d9b7
|
perf: new_string_owned 零拷贝路径替代 new_string 二次克隆(B2)
|
2026-08-13 14:55:08 +08:00 |
|
pjh123
|
5513f0e2fb
|
perf: parse_js_number 去 lowercase 分配 + int32 位运算直取(B2/B6)
|
2026-08-13 14:48:19 +08:00 |
|
爱特每羊队
|
3e61b573db
|
feat: 新增 Symbol.species well-known symbol 绑定(Symbol.species 解析/键槽/内建对象)
|
2026-08-12 12:50:53 +08:00 |
|
爱特每羊队
|
c4fda0f883
|
engine: ToPropertyKey via ToPrimitive, Symbol keys/description, catchable conversion errors
|
2026-08-12 09:59:56 +08:00 |
|
爱特每羊队
|
f3c37911f7
|
feat: arbitrary-precision BigInt via num-bigint (literals, arithmetic, toString, asIntN/asUintN)
|
2026-08-12 03:15:18 +08:00 |
|
爱特每羊队
|
7e3d7b43b5
|
feat: 实现最小 BigInt 子集(字面量/算术/比较/构造器,Temporal 前置)
|
2026-08-10 23:02:31 +08:00 |
|
爱特每羊队
|
d3ed1113ef
|
feat: 编译管线/类型层 crate 补全多级日志宏 + 关键路径日志
|
2026-08-10 17:56:28 +08:00 |
|
爱特每羊队
|
0e620ff963
|
feat: TypedArray 原型方法族全量解锁(回调/查找/迭代/排序/ES2023 copy 族)
|
2026-08-09 13:18:50 +08:00 |
|
爱特每羊队
|
d5ce35f4ba
|
fix: Number::toString 符合 ECMA-262(1e21 指数、radix RangeError、parseInt/Number 字符串解析)
|
2026-08-08 20:39:55 +08:00 |
|
爱特每羊队
|
a82e4cd204
|
feat: Function 构造器(动态编译字符串生成函数)
|
2026-08-08 03:07:26 +08:00 |
|
爱特每羊队
|
328b8a3ddc
|
docs: 补充注释与格式化
|
2026-08-06 23:10:27 +08:00 |
|
爱特每羊队
|
f461235f04
|
docs: 添加 Rustdoc 注释
|
2026-08-05 21:46:47 +08:00 |
|
爱特每羊队
|
2d8e5d861d
|
perf: 移除 JsString 死哈希字段,消除每次字符串创建的 O(n) FxHash 开销
|
2026-06-30 20:04:37 +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 |
|
爱特每羊队
|
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 |
|
爱特每羊队
|
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 |
|
爱特每羊队
|
2f5d91bd48
|
feat: 提取 oxide_builtins 独立 crate,泛型化 <H: VmHost>
|
2026-06-25 22:38:23 +08:00 |
|
爱特每羊队
|
2c8f85d5a9
|
feat: 迁移 NativeResult
|
2026-06-25 18:32:09 +08:00 |
|