pjh123
|
078688070d
|
feat: 实现最小 BigInt 子集(字面量/算术/比较/构造器,Temporal 前置)
|
2026-08-10 23:02:31 +08:00 |
|
pjh123
|
9fa8ae5b5f
|
perf: 字符串拼接按操作数字节长预分配容量,免几何 realloc 二次拷贝
|
2026-08-10 17:40:39 +08:00 |
|
pjh123
|
02414144f3
|
perf: JsString 缓存 UTF-16 length,字符串 length 访问改 O(1)
|
2026-08-10 17:23:29 +08:00 |
|
pjh123
|
7efb26bc96
|
perf: 函数调用 bytecode 改 Arc 共享(O(1) 帧切换 + IC 写时复制)
|
2026-08-10 15:08:51 +08:00 |
|
pjh123
|
9f6f694be9
|
fix: 私有字段 brand 检查 own 槽(字段不跨原型,规避 cell 值缺陷)
|
2026-08-10 11:23:52 +08:00 |
|
pjh123
|
80cb1c2feb
|
feat: 循环 let/const 每迭代绑定(MAKE_CELL_FRESH + 解构捕获修复)
|
2026-08-10 10:18:39 +08:00 |
|
pjh123
|
5ced83e8c0
|
feat: async-generator 语义(async function*),yield/await 共存 + next 返回 Promise
- emit 识别 generator+async 组合,模块同时标记 is_generator/is_async
- 新增 AsyncGeneratorState:帧快照 + 请求队列 + 当前请求
- next/return/throw 返回 Promise,请求入队逐条处理
- YIELD 让出经 promise unwrap 后交付(yield rejected promise 关闭生成器)
- AWAIT 挂起保留当前请求,微任务恢复后继续执行
- %AsyncGeneratorPrototype% / %AsyncGeneratorFunction.prototype% 内建
- session GC / promote 支持异步生成器状态盒
- 普通 async 函数嵌套调用隔离外层异步生成器上下文
|
2026-08-10 01:52:03 +08:00 |
|
pjh123
|
85c192a747
|
feat: rest 参数(function f(...args)),实参区收集数组
|
2026-08-10 00:33:25 +08:00 |
|
pjh123
|
fd47cd56d0
|
feat: async/await 语法支持(AWAIT 帧快照挂起/恢复 + 微任务驱动 + AsyncFunction intrinsics)
|
2026-08-09 22:02:15 +08:00 |
|
pjh123
|
783e89e4cb
|
feat: 生成器基础支持(YIELD 帧快照挂起/恢复 + GeneratorPrototype next/return/throw)
- 新增 YIELD/SUSPEND_BODY opcode;function* 识别与 yield emit
- GeneratorState 全量快照 VM 执行上下文(regs/pc/bytecode/spill/save/try/cell 栈段/迭代器)
- 调用时参数初始化(默认值/解构副作用与异常在 g() 时刻生效)
- %GeneratorPrototype%/%GeneratorFunction.prototype% 内建对象与 next/return/throw
- session GC trace 生成器状态 JsValues;闭包捕获分析补 yield/赋值目标扫描
|
2026-08-09 18:02:08 +08:00 |
|
pjh123
|
c8740bfb49
|
feat: 函数 length 属性(字节码函数/bind 包装器)+ getter/setter name 前缀
|
2026-08-09 15:38:45 +08:00 |
|
pjh123
|
36fb61fc74
|
feat: 解构模式语义补齐(REST 枚举/getter/computed 排除、IteratorClose、RegAlloc def 干涉、for-in 捕获遮蔽)
|
2026-08-09 15:01:31 +08:00 |
|
pjh123
|
6c79dbb21c
|
feat: class 私有成员语义(字段/方法/访问器 + brand 检查 + 契约修复)
|
2026-08-09 11:08:36 +08:00 |
|
pjh123
|
5611d90ad0
|
feat: with 语句、成员位/移位复合赋值、CALL_NATIVE 无目标修复
with 语句:新增 emit 支持,with 体内自由标识符动态解析(对象属性优先,
回退外层),支持读/写/复合赋值/自增自减/delete/var 初始化动态化,
TO_OBJECT opcode 处理原始值对象,顶层 this 绑定全局对象。
复合赋值:新增 6 个 COMPOUND_MEMBER_BIT_* opcode 支持成员位/移位复合赋值,
修复 computed member 复合赋值覆盖 bug,with 内标识符复合赋值动态化。
CALL_NATIVE:实现全局 isNaN/isFinite 并绑定,用户覆盖 builtin 名时
回退通用调用路径而非报错,局部遮蔽 builtin 名走普通 CALL。
test262: with 34 pass(基线 0),compound-assignment 320 pass(基线 223)
|
2026-08-09 07:22:46 +08:00 |
|
pjh123
|
cd214069cd
|
fix: try/finally 支持 break/continue/return 穿越 finally(completion 机制)
|
2026-08-08 12:38:25 +08:00 |
|
pjh123
|
ab979dc47b
|
feat: 调用实参 spread(f(...args) / new F(...args) / super(...args))
|
2026-08-08 10:33:16 +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
|
7e11a4d2b4
|
fix: defineProperty 内部错误不触发 unwind + enumerable/configurable 缺省回填
|
2026-08-08 01:18:21 +08:00 |
|
pjh123
|
bfcf132d73
|
feat: arguments 对象绑定(CREATE_ARGUMENTS + 帧实参 spill 区)
|
2026-08-08 00:01:22 +08:00 |
|
pjh123
|
bfc2312f6c
|
fix: 数组元素写入越过元素区时搬移属性区 + defineProperty 数组索引走元素区
|
2026-08-07 23:20:32 +08:00 |
|
pjh123
|
31542a2576
|
fix: 数组属性存储机制(array_prop_count 显式元素数 + shape 属性偏移 + IC/prop_forge 对齐)
|
2026-08-07 21:53:45 +08:00 |
|
pjh123
|
20381f726b
|
fix: 正则字面量编译期语法校验(非法抛 SyntaxError)+ CREATE_REGEXP 保留错误类型
|
2026-08-07 20:02:11 +08:00 |
|
pjh123
|
9981086424
|
fix: SUPER_CALL 后构造实例 proto 设为 new.target.prototype(子类化内建)
|
2026-08-07 18:41:34 +08:00 |
|
pjh123
|
344a2a17e3
|
fix: 闭包捕获 let/const 的 cell 未初始化(TDZ)读取抛 ReferenceError
|
2026-08-07 16:19:35 +08:00 |
|
pjh123
|
de67cc8eee
|
fix: 链式 upvalue 捕获支持多层嵌套函数引用深层变量
|
2026-08-07 14:56:51 +08:00 |
|
pjh123
|
710c8c8a2c
|
fix: 闭包 upvalue cell 占位稳定化修复错读调用方表
|
2026-08-07 14:38:47 +08:00 |
|
pjh123
|
61d39b6536
|
fix: Function.prototype.call 的 native 错误转 JS 异常可被捕获
|
2026-08-07 13:45:39 +08:00 |
|
pjh123
|
c0ea2d3eb1
|
fix: 函数 name 属性与 harness 重复 Test262Error 定义
|
2026-08-07 12:22:59 +08:00 |
|
pjh123
|
fd94ff6931
|
fix: 子模块全局扁平化根治逃逸闭包上下文错位
|
2026-08-07 10:49:15 +08:00 |
|
pjh123
|
98b07687f0
|
fix: CREATE_CLOSURE 越界改运行时错误防进程中断
|
2026-08-07 00:42:33 +08:00 |
|
pjh123
|
dd5607ce1a
|
fix: inline 回调支持 upvalue 闭包上下文
|
2026-08-07 00:23:35 +08:00 |
|
pjh123
|
710965b7f2
|
fix: new 构造 cell_stack 失衡与子模块 immutables 缓存失步
|
2026-08-07 00:15:09 +08:00 |
|
pjh123
|
31e28a03a6
|
docs: 补充注释与格式化
|
2026-08-06 23:10:27 +08:00 |
|
pjh123
|
fd267816f4
|
feat: 新增 MOV/SPILL/UNSPILL 执行语义 + spill 栈帧边界(D-06/D-07/D-08)
|
2026-08-06 16:51:01 +08:00 |
|
pjh123
|
435674d961
|
fix: 接通透传闭包值链路
|
2026-06-30 23:57:22 +08:00 |
|
pjh123
|
969eacb047
|
perf: IC hit/miss 路径 depth=0 快速路径内联,跳过 proto 遍历函数调用
|
2026-06-30 23:45:52 +08:00 |
|
pjh123
|
e18edeef6a
|
fix: 闭包值传递链路完善
|
2026-06-30 23:08:11 +08:00 |
|
pjh123
|
991e6040e5
|
fix: 修复闭包值传递链路
|
2026-06-30 22:52:25 +08:00 |
|
pjh123
|
77a52bf7e8
|
fix: 修复嵌套函数调用并接通闭包捕获链路
|
2026-06-30 21:52:18 +08:00 |
|
pjh123
|
834fc9d09e
|
perf: 字符串拼接消除冗余拷贝
|
2026-06-30 21:49:41 +08:00 |
|
pjh123
|
56d41441e5
|
perf: 优化调用原型链的 IC 命中加速
|
2026-06-30 21:41:05 +08:00 |
|
pjh123
|
52338a9801
|
perf: 复合赋值运算符增加 int 快速路径,跳过 coercion 开销
|
2026-06-30 21:08:29 +08:00 |
|
pjh123
|
0166e0c849
|
perf: 消除热路径冗余检查
|
2026-06-30 21:02:45 +08:00 |
|
pjh123
|
f9449c52e3
|
fix: 修复嵌套函数调用并接通闭包捕获链路
|
2026-06-30 20:49:23 +08:00 |
|
pjh123
|
dcc3b610e9
|
style: 自动格式化
|
2026-06-30 20:04:27 +08:00 |
|
pjh123
|
c58aae4862
|
feat: 搭建闭包捕获基础设施
|
2026-06-30 19:58:58 +08:00 |
|
pjh123
|
a34c289d47
|
fix: native 调用保存/恢复 this 寄存器,避免方法内调用后 this 被 callee 覆盖
|
2026-06-30 16:12:42 +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
|
78f6b0b5d9
|
fix: delete 增加 configurable 检查,defineProperty 修复部分更新值覆盖,枚举排序增加整数索引优先和非枚举过滤
|
2026-06-27 16:34:48 +08:00 |
|
pjh123
|
27b7e8ad29
|
refactor: 重写 abstract_eq 为 ES §7.2.15 11 步算法
|
2026-06-27 13:23:35 +08:00 |
|