pjh123
27dad8db2a
fix: session_gc sweep 测试改读 rewrite 后新指针消除 UAF
2026-08-14 21:54:48 +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
28c8fe0284
fix: 访问器属性合并定义时继承未提供半边,防 get/set 互相覆盖
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
4245074d97
perf: 原生回调寄存器保存改前缀窗口减少搬移
2026-08-13 21:32:34 +08:00
pjh123
fccf2063f1
perf: 数组回调字节码调用改寄存器窗口复用减少搬移
2026-08-13 20:11:09 +08:00
pjh123
1ea9c76ab4
perf: 数组迭代方法元素读取走密集直读快路径
2026-08-13 18:12:49 +08:00
pjh123
2c62830a1d
perf: 数组整数键走独立 si 区间免字符串往返
2026-08-13 17:47:55 +08:00
pjh123
e62bc54f08
perf: 收紧字符串借用语义消除跨分配点 UB
2026-08-13 16:24:00 +08:00
pjh123
352f3359cd
perf: 属性键解析移出 IC 命中路径
2026-08-13 15:54:46 +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
pjh123
f874850bf7
perf: 算术运算 int 结果保 int + double 快路径(B1/B3)
2026-08-13 14:44:24 +08:00
爱特每羊队
f8a4bacfec
fix: accessor getter 调用异常经 raise_call_error 走 unwind(JS try/catch 可捕获,此前逃逸)
2026-08-12 17:55:58 +08:00
爱特每羊队
4303462d19
feat: compiler/test262 runner 接线 + 模块顶层 this 绑定
...
- Compiler::compile_module:Emitter::emit_program_module → 统一 IR 管线(DCE/regalloc/lower/flatten)
- CompiledModule.is_es_module:VM run 时模块顶层 this=undefined(脚本仍为全局对象)
- 全局注册 __moduleLinkGet
- test262 runner:Test262ModuleLoader(相对路径解析 + import attributes 判定 json/text/bytes),is_module 走 compile_module
2026-08-12 17:37:33 +08:00
爱特每羊队
86a20fa1fe
fix: class 类名绑定经 dedicated cell 捕获(C===Cv 恒等)+ upvalue 写入 const guard(getter 赋值抛 TypeError)
2026-08-12 17:30:28 +08:00
爱特每羊队
5e38623fee
feat: Temporal.Duration.prototype.round(无日历单位路径:选项校验+24h 天舍入+按最大单位平衡,绑定注册)
2026-08-12 16:16:22 +08:00
爱特每羊队
ad547d5cd8
feat: Temporal.Duration.prototype.add(分量精确求和+按最大单位平衡+范围校验,绑定注册);add 子集 32/0
2026-08-12 14:50:13 +08:00
爱特每羊队
fe79eff172
fix: Temporal 构造器补 length 自有属性(Instant/ZonedDateTime/PlainDate/PlainTime/Duration 按规范 arity)
2026-08-12 14:37:31 +08:00
爱特每羊队
0cd98084da
feat: Temporal.PlainDateTime.prototype.equals(实例/字符串/对象/ZDT 统一比较,绑定注册)
2026-08-12 14:27:25 +08:00
爱特每羊队
1a4663dcab
fix: class 方法/访问器/constructor/prototype 属性描述符(非枚举/只读),新增 DEFINE_PROP_ATTRS/DEFINE_ACCESSOR_ATTRS
...
- opcode.rs/inst.rs/contract.rs/vm.rs/vm_dispatch_ctrl.rs:新增两个带 attrs 扩展字的 define 指令
(attrs bit0=writable, bit1=enumerable, bit2=configurable,与 PropAttributes 一致)
- class/method.rs:方法与非计算访问器改按规范非枚举安装(DefineMethod 语义)
- class/prototype.rs:proto.constructor 非枚举;ctor.prototype 三标志全 false(MakeConstructor)
- 效果:language/statements/class 1782 pass/948 fail -> 1910 pass/716 fail(+128/-232)
2026-08-12 14:11:02 +08:00
爱特每羊队
cc78e6b28f
fix: ArraySetLength 收缩遇不可配置元素静默失败、ToPrimitive 异常透传与既有属性描述符缺省回填
...
- arr.length 收缩时若 [newLen, oldLen) 内存在不可配置元素,整个收缩失败且不做任何修改(sloppy 赋值静默 no-op),不再抛错或截断
- length 赋值 ToPrimitive(valueOf/toString)抛错时按主 dispatch 约定直接返回,避免二次抛 RangeError 覆盖原异常(S15.4.5.1_A1.3_T2)
- Object.defineProperty/defineProperties/create 对已有属性省略描述符字段时保持现有属性值(无显式 meta 按 DEFAULT_DATA 回填),修复 toReversed/toSorted/toSpliced/with length-decreased-while-iterating
2026-08-12 13:07:32 +08:00
爱特每羊队
dc023b2637
fix: 数组 length 赋值 ArraySetLength 语义与超长逻辑长度(a.length 读取/收缩校验/空洞同步)
2026-08-12 12:52:02 +08:00
爱特每羊队
3e61b573db
feat: 新增 Symbol.species well-known symbol 绑定(Symbol.species 解析/键槽/内建对象)
2026-08-12 12:50:53 +08:00
爱特每羊队
291250f3e6
feat: BigInt bitwise operators with ToNumeric semantics
2026-08-12 11:27:50 +08:00
爱特每羊队
ee9a9e12b8
fix: object-to-primitive conversion errors propagate through native builtins
2026-08-12 11:27:40 +08:00
爱特每羊队
c4fda0f883
engine: ToPropertyKey via ToPrimitive, Symbol keys/description, catchable conversion errors
2026-08-12 09:59:56 +08:00
爱特每羊队
18eb6ef8ab
feat: add Array entries/keys/findLastIndex/toSorted/toReversed/toSpliced/with
2026-08-12 03:42:42 +08:00
爱特每羊队
998327aa7e
feat: BigInt.prototype[Symbol.toStringTag] = "BigInt"
...
Adds the well-known @@toStringTag data property (writable:false,
enumerable:false, configurable:true) so Object.prototype.toString and
property descriptors match the spec. Remaining built-ins/BigInt failure
(Symbol.toStringTag.js verifyProperty) is blocked on String(Symbol)
support in the Symbol track.
2026-08-12 03:41:22 +08:00
爱特每羊队
b844505ec7
fix: BigInt SUB/MUL with 0n no longer raise Division by zero
...
binary_arith! applied an unconditional is_zero() guard, so x - 0n and
x * 0n (and wrapped-object variants) incorrectly threw RangeError.
Only DIV/MOD legitimately reject BigInt zero divisors; SUB/MUL must
compute normally. test262 language/expressions/subtraction:
29/6 -> 30/5 (bigint-arithmetic now passes).
2026-08-12 03:30:03 +08:00
爱特每羊队
f3c37911f7
feat: arbitrary-precision BigInt via num-bigint (literals, arithmetic, toString, asIntN/asUintN)
2026-08-12 03:15:18 +08:00
爱特每羊队
ca293a57e9
fix: Object.prototype.toString tags for Math/JSON/Arguments
2026-08-12 02:29:40 +08:00
爱特每羊队
28477a3e47
feat: BigInt constructor ToPrimitive semantics, toString(radix), asIntN/asUintN; ctor [[Prototype]]=Function.prototype
2026-08-12 02:23:27 +08:00
爱特每羊队
6afeaafb54
feat: implement PlainDateTime until/since with spec rounding semantics
2026-08-12 01:18:34 +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