pjh123
|
e251f219ff
|
fix: 含 try 指令的函数跳过调用窗口编码防异常 handler 丢存活寄存器
异常边只从 TRY 标记所在 BB 发出,分支/循环 BB 内调用点的 liveness 不含仅
catch/finally 存活的寄存器;按存活上界截断窗口会使 unwind 恢复后 handler 读到
callee 残留垃圾值(可为悬垂对象指针)。含 TRY_BEGIN/TRY_FINALLY_BEGIN 的函数
整体跳过窗口编码(回退全量窗口),恢复基线保守行为,普通函数不受影响。
补分支内调用 + catch 读 try 前变量的 Red/Green 测试与 finally 回归锚点。
|
2026-08-15 11:41:58 +08:00 |
|
pjh123
|
2239eeac24
|
perf: 字节码调用压帧窗口按调用点存活上界拷贝减少整窗搬移
RegAlloc 改写后补第三次 liveness,为每条 CALL/NEW/SUPER_CALL 计算调用点
存活上界(最大存活物理槽号 + 1,254/255 由帧单独保存不计入),编码进
ext 高 8 位(nargs 低 8 位不变)。三处手写压帧窗口 = min(调用方活动寄存
器, 存活上界),restore_frame 按窗口回拷;CallFrame 新增
caller_active_reg_limit 保存调用方真实活动上限,恢复时不随截断窗口缩水。
生成器/异步函数体调用点保持全量窗口。spread 调用与运行时发起压帧
(accessor/内联)走全量路径不受影响。
|
2026-08-15 09:56:22 +08:00 |
|
pjh123
|
ff129d626f
|
fix: member 复合写数组 length 分流 ordinary_set 防影子槽绕过 ArraySetLength
|
2026-08-15 09:17:03 +08:00 |
|
pjh123
|
9b2e33916a
|
perf: CONCAT_N 多操作数拼接单趟精确预分配替代逐次 ADD
新增 CONCAT_N opcode(0x93):连续加号左结合链摊平为单条指令,
字符串模式单趟精确总长预分配,消除 N-2 次中间串分配与逐次整串重拷贝。
- emit 只下钻 left 链、right 括号不拆(a+(b+c) 退化 ADD),求值序与
f64 结合性保持左结合原义;摊平上限 14 防超长链寄存器压力
- dispatch 两阶段:数值前缀逐项复用 ADD 判定序列(int 溢出升 double、
BigInt 混合 TypeError、对象 ToPrimitive 副作用序),遇字符串转入
字符串模式单趟预分配拼接(concat_n_strings)
- RegAlloc graph/rewrite 登记 CONCAT_N ext 操作数(漏收集即错值);
ic_helper ext_word_count 登记(clear_ic_caches 字节定位)
- contract golden 显式 CONCAT_N 分支(规避 canonical_inst _ 兜底)
|
2026-08-15 09:08:05 +08:00 |
|
pjh123
|
f8dacb192a
|
perf: member 复合写路径接入 IC 写命中(depth 0)消除每次 DashMap 查询与回写
set_member_prop 增加 ic_set_hit_own(仅接受 depth==0 槽,跳过读侧学习的
原型条目防原型污染)命中直写槽,ext_pc 由 read_member_prop 显式带出消除
隐式 pc 契约;写新属性 miss 分支(IC_SET 分发 + member 写)统一改
CreateDataProperty 快路径(保留原型链 setter/readonly 检查),砍掉
ordinary_set 全链路的重复查询与 shape 转换开销。
|
2026-08-15 08:16:49 +08:00 |
|
pjh123
|
31ca1dd5db
|
fix: finally 体直落进入时置位 finally_active 防完成穿越计数错乱
catch 体正常结束后指令直落入 finally 体,此前 finally_active 未被置位,
finally 内 break/continue/return/throw 触发未进入分支导致 finally 体重复
执行、完成计数错乱。新增无操作数标记指令 TRY_FINALLY_ENTER,在 finally
体入口统一置位栈顶 handler 的 finally_active,覆盖 JMP/直落/unwind/完成
穿越/挂起恢复全部进入路径,并删除 control_flow.rs 中对跳转目标匹配的
脆弱栈顶检测。
|
2026-08-15 07:47:54 +08:00 |
|
pjh123
|
ed964b5e2b
|
test: IC 多态 primitive receiver 断言(扩展字跳越无错位)
|
2026-08-15 06:40:57 +08:00 |
|
pjh123
|
b62348eb5d
|
perf: IC 多态化 4 槽缓存(FIFO 滚动写回)消除多态场景 miss 重解析
每条 IC 指令扩展字 3→8(4 槽 × [shape_id|proto_depth, slot]),命中槽 0
单态快路径零额外成本,槽 1..3 懒解码遍历,miss 写回 FIFO 滚动(新条目进
槽 0、最老丢弃)。修复原型链 IC 深度解析多走一步与 prop_forge 模板不匹配
不写回两个使缓存恒失效的问题。ic_cache 基准命中率 34.8%→78.9%,
耗时 -29%;单态 prop_access 因扩展字布局膨胀有 ~20% 取指回归(后续
side-table 方案可根除)。
|
2026-08-15 06:40:19 +08:00 |
|
pjh123
|
96da78e817
|
fix: inline 回调抛原始异常值时 catch 保留原值不再包装成 Error
dispatch_native_call 的 NativeResult::Err 分支此前把非对象异常值
(用户 throw 的数字/字符串/null/undefined/false)包装成 Error 对象,
违反 ECMAScript throw 任意值语义:catch 应收到原始值。raise_call_error
与 TailCall 分支已通过 last_uncaught_value 保留原值,此处为唯一不一致点。
统一为原样保留异常值,并补数组回调/嵌套 inline/finally 组合回归测试。
|
2026-08-15 05:49:59 +08:00 |
|
pjh123
|
40ee642622
|
perf: 数组元素访问 dispatch 内联 fast path + length_si 缓存
GET_PROP_DYNAMIC/SET_PROP_DYNAMIC 开头内联数组元素 fast path:整数键 +
真数组 + 无元素 meta + 界内时直读/直写元素区,免 primitive_property_get /
ordinary_get/set 调用链与 __proto__ 每次 RwLock 查询;越界与有 meta
场景回退原路径(CreateDataProperty + length 扩展 / accessor/hole 协议)。
GET 侧 is_object() 快检先于 checked_object_ptr,保持原始值 receiver
不抛错。length_si 缓存为 Vm 字段(builtin 绑定后取 id,稳定非 0),
普通属性路径 5 处 hot spot 改读缓存,消除每次 intern 的共享锁开销。
|
2026-08-15 04:58:57 +08:00 |
|
pjh123
|
b860fdf5ee
|
fix: string.search 无参调用越界 panic,参数读取守卫前置返回 -1
|
2026-08-15 04:28:01 +08:00 |
|
pjh123
|
6c9b8419c7
|
fix: property_key_si 对象与兜底原始值键统一走字符串键规范化
对象经 ToPrimitive 转字符串后直接 intern 绕过 canonical_index_of,产生
与整数键区间分裂的字符串键(o[{toString(){return "5"}}] 与 o[5] 不同
键);bigint 等兜底原始值键同病。统一经 string_key_si 规范化:规范数字
串映射整数键,其余 intern,与字符串分支及 03.1 各建键入口口径一致。
补回归:对象 ToPropertyKey 数字串键与 o[5]/o["5"] 键等价(读写双向)、
o[5n] 与 o[5]/o["5"] 键等价。
|
2026-08-15 04:20:26 +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
|
57f8a474fa
|
fix: replaceAll 类正则对象统一走 ToString 文本路径与 replace 对齐
|
2026-08-14 21:15:00 +08:00 |
|
pjh123
|
f7866585d1
|
perf: replace 函数 replacer 回调免每匹配整串复制
回调第 4 参(原字符串)由每匹配复制整串改为调用方预构一次:
原始字符串 receiver 直接复用原值零拷贝,对象 receiver 提升为单次会话串。
覆盖 String.prototype.replace/replaceAll 与 RegExp.prototype[Symbol.replace]
的函数 replacer 路径。补回调第 4 参断言测试与 fn-replacer 压测。
|
2026-08-14 21:00:43 +08:00 |
|
pjh123
|
bd9b981362
|
perf: replace 字符串 pattern 走共享借用零拷贝并修 replace 语义
|
2026-08-14 12:54:27 +08:00 |
|
pjh123
|
e1747ca560
|
perf: ASCII 单字符缓存 + 字符串迭代器游标收尾
|
2026-08-14 12:11:54 +08:00 |
|
pjh123
|
02dabbb845
|
fix: 计算成员复合赋值保规范求值序
|
2026-08-14 11:41:50 +08:00 |
|
pjh123
|
c2aea3f8e9
|
fix: split 分隔符为 RegExp 子类对象时按字符串语义切分
|
2026-08-14 10:44:23 +08:00 |
|
pjh123
|
1a62af5485
|
perf: 常量字符串键计算成员折叠走 IC 静态路径
|
2026-08-14 10:20:32 +08:00 |
|
pjh123
|
7f7a8c3b66
|
test: 数值断言容忍 int 表示,类私有字段 for-in 用例补公有字段
|
2026-08-14 06:14:38 +08:00 |
|
pjh123
|
7799ebb055
|
chore: 清理 oxide_vm clippy 告警
|
2026-08-14 05:26:46 +08:00 |
|
pjh123
|
12ebdb8c0e
|
perf: 对象字面量批量构造键序预建 shape
|
2026-08-14 04:47:15 +08:00 |
|
pjh123
|
1ea9c76ab4
|
perf: 数组迭代方法元素读取走密集直读快路径
|
2026-08-13 18:12:49 +08:00 |
|
pjh123
|
e62bc54f08
|
perf: 收紧字符串借用语义消除跨分配点 UB
|
2026-08-13 16:24:00 +08:00 |
|
爱特每羊队
|
c4fda0f883
|
engine: ToPropertyKey via ToPrimitive, Symbol keys/description, catchable conversion errors
|
2026-08-12 09:59:56 +08:00 |
|
爱特每羊队
|
ed8c76c60f
|
feat: implement PlainDateTime add/subtract arithmetic
|
2026-08-11 23:14:42 +08:00 |
|
爱特每羊队
|
d1d85ffe4f
|
feat: implement PlainDateTime toString options and ISO range parsing
|
2026-08-11 23:07:41 +08:00 |
|
爱特每羊队
|
ed90ebd4e4
|
feat: implement Temporal PlainDateTime conversion and serialization
|
2026-08-11 22:29:00 +08:00 |
|
爱特每羊队
|
e6627b02f1
|
feat: implement Temporal PlainDateTime foundation
|
2026-08-11 21:32:15 +08:00 |
|
爱特每羊队
|
5ec0dc2b7d
|
feat: implement Temporal Instant zoned conversion
|
2026-08-11 20:54:25 +08:00 |
|
爱特每羊队
|
a9e194f2c6
|
feat: implement Temporal Instant serialization
|
2026-08-11 19:14:24 +08:00 |
|
爱特每羊队
|
6b00eaaf06
|
feat: implement Temporal Instant differences
|
2026-08-11 18:22:21 +08:00 |
|
爱特每羊队
|
67c6d3a53a
|
fix: preserve high template expression registers
|
2026-08-11 17:17:30 +08:00 |
|
爱特每羊队
|
e049a8df5d
|
feat: implement Temporal Instant round
|
2026-08-11 16:57:53 +08:00 |
|
爱特每羊队
|
3839e18c0f
|
fix: capture destructured function parameters
|
2026-08-11 16:57:13 +08:00 |
|
爱特每羊队
|
756d6b8e1b
|
feat: implement precise Temporal Instant arithmetic
|
2026-08-11 15:55:05 +08:00 |
|
爱特每羊队
|
4c42112c51
|
feat: implement precise Temporal Instant factories
|
2026-08-11 15:21:28 +08:00 |
|
爱特每羊队
|
ec2efa7b6b
|
fix: capture object keys and scope loop bindings
|
2026-08-11 14:17:45 +08:00 |
|
爱特每羊队
|
925ca358e9
|
fix: validate Temporal duration inputs
|
2026-08-11 13:11:51 +08:00 |
|
爱特每羊队
|
d7a63a0d54
|
feat: implement Temporal duration and plain date differences
|
2026-08-11 12:38:31 +08:00 |
|
爱特每羊队
|
1765d567a1
|
feat: Temporal 最小子集(Temporal.Now/Instant/PlainDate/PlainTime)
|
2026-08-10 18:18:39 +08:00 |
|
爱特每羊队
|
00d547b395
|
refactor: 清理 dead abstraction(oxide_api 空壳/空钩子/PersistentHeap/空目录)
|
2026-08-10 11:54:44 +08:00 |
|
爱特每羊队
|
0b12e4df18
|
fix: async-gen 被拒 yield 排队 next 得 done(unwrap 前 AwaitSuspended)
|
2026-08-10 11:30:30 +08:00 |
|
爱特每羊队
|
d18b2adf08
|
fix: 私有字段 brand 检查 own 槽(字段不跨原型,规避 cell 值缺陷)
|
2026-08-10 11:23:52 +08:00 |
|
爱特每羊队
|
5350cd0e55
|
fix: Promise thenable alreadyResolved(委托代理闭包结算)
|
2026-08-10 10:28:32 +08:00 |
|
爱特每羊队
|
06951dcec3
|
feat: 循环 let/const 每迭代绑定(MAKE_CELL_FRESH + 解构捕获修复)
|
2026-08-10 10:18:39 +08:00 |
|
爱特每羊队
|
4d37614e49
|
fix: 脚本顶层 var/function 声明落 globalThis(DEFINE_GLOBAL_PROP 非可配置数据属性)
|
2026-08-10 03:52:17 +08:00 |
|
爱特每羊队
|
da586082cc
|
feat: rest 参数(function f(...args)),实参区收集数组
|
2026-08-10 00:33:25 +08:00 |
|
爱特每羊队
|
0d9e6eabc9
|
feat: async/await 语法支持(AWAIT 帧快照挂起/恢复 + 微任务驱动 + AsyncFunction intrinsics)
|
2026-08-09 22:02:15 +08:00 |
|