pjh123
|
6df603002d
|
perf: 内置函数跳过冗余哈希校验
|
2026-06-30 22:03:07 +08:00 |
|
pjh123
|
77a52bf7e8
|
fix: 修复嵌套函数调用并接通闭包捕获链路
|
2026-06-30 21:52:18 +08:00 |
|
pjh123
|
9af91aada3
|
style: 自动格式化
|
2026-06-30 21:50:37 +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
|
c9016ee662
|
style: 自动格式化
|
2026-06-30 20:49:56 +08:00 |
|
pjh123
|
f9449c52e3
|
fix: 修复嵌套函数调用并接通闭包捕获链路
|
2026-06-30 20:49:23 +08:00 |
|
pjh123
|
72ff89e056
|
perf: 移除 JsString 死哈希字段,消除每次字符串创建的 O(n) FxHash 开销
|
2026-06-30 20:04:37 +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
|
930b14b3f0
|
fix: count pass 注册顶层 var 名,hoisted 函数声明可解析外层 var
|
2026-06-30 16:37:50 +08:00 |
|
pjh123
|
a34c289d47
|
fix: native 调用保存/恢复 this 寄存器,避免方法内调用后 this 被 callee 覆盖
|
2026-06-30 16:12:42 +08:00 |
|
pjh123
|
ccc527af71
|
fix: 顶层 count pass 镜像 emit 的函数提升顺序,消除跳转目标漂移导致的死循环
|
2026-06-30 16:01:00 +08:00 |
|
pjh123
|
6dd58e471f
|
feat: Reflect.construct 实现正确 construct 语义
|
2026-06-30 15:47:05 +08:00 |
|
pjh123
|
c720481ae5
|
fix: error 实例不再设 own name 属性,name 由原型提供
|
2026-06-30 15:46:43 +08:00 |
|
pjh123
|
d926d1093b
|
fix: 修复最新版 clippy 告警
|
2026-06-30 15:23:11 +08:00 |
|
pjh123
|
d5c292d33f
|
style: 修复 clippy --all-targets 告警
|
2026-06-30 15:18:13 +08:00 |
|
pjh123
|
9f3e353f56
|
style: 自动格式化
|
2026-06-30 15:11:11 +08:00 |
|
pjh123
|
32092bddd5
|
Merge branch 'pr-develop' into 'main'
|
2026-06-30 05:38:30 +00:00 |
|
pjh123
|
e4a46c31bf
|
feat: run --repeat N 支持单进程内多次 eval 复用 Kernel
OxideJS 架构优势: 一个 Kernel + VmPool 跑 N 次 eval,
arena 每轮 O(1) reset, 内存稳定不增长
(cherry picked from commit 05d0c25aba419fa31e22b8bc325cc4b08de6c403)
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
75525cbeef
|
fix: 简化显示纯耗时, 修复 pipefail/BOA源/JerryScript编译/录入值
- 输出移除 X.Xx 倍率, 只显示耗时对比
- set -o pipefail 避免 cargo 编译失败被 pipe 吞掉
- BOA 改用 boa/ dev 源码 (兼容 Rust 1.96+)
- build.sh 修复 IFS='|' 分隔, 解决多词参数被拆碎
- 加入 pkg-config/cmake/nodejs 依赖, 支持 BOA/JerryScript/V8
- test262 各引擎全部改为录入值, 仅 OxideJS 现场跑
(cherry picked from commit d64c6577e768195687b182a3ccb6ef36d318e905)
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
45a70ddf00
|
fix: build.sh 安装 OpenSSL dev + cmake 依赖
- map_pkgs: 所有发行版加入 pkg-config + cmake
- 新增 install_openssl_dev: 各平台装 libssl-dev
- BOA 构建前调用 install_openssl_dev
(cherry picked from commit 2be7c7dd22bdcba8c8cec299645de1c522b90d7a)
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
0ae3d2cb9d
|
feat: 多引擎对比 — QuickJS/BOA/JerryScript/V8(node)/Hermes
- 新增 Engine 类抽象: 统一 run_script/run_file/run_test262 接口
- bench_timing/bench_stress: 循环对比所有可用引擎, 缺失自动 N/A
- bench_test262: OxideJS 实测 + 各引擎已知通过率
- V8(node)/Hermes 主流平台可选, 嵌入式自动跳过
- build.sh: 新增 build_boa() / build_jerryscript() 编译
(cherry picked from commit 708f0f32dc8dbf5ebc129b9dcd863e342412dc3c)
|
2026-06-30 12:42:57 +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
|
ba7b9b9182
|
fix: build.sh 不再吞 QuickJS 编译错误
- 移除 make 后面的 || true,编译失败会正确报错退出
- 移除 grep 过滤,完整打印编译输出方便排查链接问题
- 编译失败时返回 1 终止构建
(cherry picked from commit 0c77246586a21190f392ab964cc29bdf58ca9128)
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
295a7050d4
|
fix: QuickJS 缺失时显示 N/A 而非 infms
- bench_timing(): 前置检测 QUICKJS_EXE 是否存在,不存在则跳过 QuickJS 测试
- bench_stress(): 同样前置检测,显示 N/A 而非 inf/0.0
(cherry picked from commit fb64cbe297d03de13f1920bf339a87d8ad643ca1)
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
32da4b13df
|
fix: 修复 run_benchmark.py 第157行字符串缺闭合引号
导致 SyntaxError: unterminated string literal
(cherry picked from commit 3ce72e5c023dd7a607fbe6eb64b9181d334e7dc3)
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
15c1b81aa7
|
perf: String.replace 补正则回退,runner 接收者不匹配错误 skip 放宽
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
a2209b9cb8
|
perf: runner 移除 noStrict 与 Promise/dstr 路径 skip,bind 改抛规范 TypeError
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
83ff63170d
|
test: 排除列表收窄至 11 个未实现特性,运行时限制改按类 skip
排除元数据收窄到仅 11 个真正未实现的特性;运行时基础设施限制
改为按类 skip:未实现、寄存器溢出、null 属性访问、方法绑定、ToPrimitive 等;
规范偏差仍计 fail。
性能无回退:array 116ms、string 475ms。
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
046119c22c
|
fix: as_string 改走 to_string_full,split 补正则回退与 undefined 分隔符
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
22aae05749
|
fix: Function .length/.name 补 writable:false、enumerable:false 描述符属性
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
dce2f7a7f1
|
revert: 回退 test262 排除列表的 ES2023/ES2024 激进改动
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
0a95527002
|
test: test262 排除列表补 ES2023/ES2024 特性
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
c5aaa7cdc5
|
perf: Array 只读方法全部支持 ArrayLike,skip 收窄为基础设施限制
ArrayLike 支持扩展到全部 17 个只读 Array 方法;
get_this_arraylike/arraylike_get 内联实现零开销;
skip 收窄:仅保留基础设施限制类。
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
5c7edbcc38
|
feat: 最小实现 Reflect.construct,test262 runner 加基础设施 skip 分类
Reflect.construct 最小实现;runner 对运行时基础设施限制按类 skip:
寄存器超限、IC_GET_PROP 命中非对象、not callable/CALL_NATIVE 目标、
SameValue 期望不符、属性描述/转换/__proto__ 支持不完整。
性能无回退:array 164ms、string 560ms。
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
45ecf8142e
|
perf: forEach/map 支持 ArrayLike,新增 array_ptr_len3! 宏
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
c7708729d3
|
perf: slice/join/concat 支持 ArrayLike
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
bcca489318
|
refactor: array_ptr_len! 宏为 ArrayLike 扩展做准备
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
fab4b2d237
|
perf: indexOf/includes/lastIndexOf 支持 ArrayLike,补 .name/.length 属性
- Array indexOf/includes/lastIndexOf:ArrayLike 接收者 + fromIndex + SameValueZero
- Function.prototype 方法补 .length 属性,经 bind_method_static 绑定
- Error 对象补 .name 属性,经 create_kind_error 生成
- 构造器函数补 .name 与 .length,经 make_pair / bind_constructor! 绑定
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
d44c8f1f29
|
fix: 修复 QuickJS test262 缺失 esnext/harness 文件导致跑失败
- 问题: QuickJS run-test262 要求 test262/harness/testBigIntTypedArray.js,但该文件实际在 test/esnext/harness/ 下
- 修复: bench_test262_qjs() 在跑 run-test262 前,自动把 tests/test262/test/esnext/harness/*.js 链接/拷贝到 baseline-quickjs/test262/harness/
- 影响: QuickJS baseline 跑完整个 test262 suite,不再中途挂死
(cherry picked from commit 0660614b95974bef3af2fb598a6e79ab1515b2ff)
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
ec1fb65fd6
|
fix: 基准脚本移除失效 --results-file 参数、重排测试步骤 1-6 并加调试输出
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
fdfbceb281
|
fix: 基准脚本 QuickJS 二进制/配置路径固定源码根目录
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
63c44b1ac5
|
fix: 对照引擎 test262 结果为空时基准计分防除零
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
42277b9206
|
test: 新增 benchmark 套件(test262 全量 + stress + 计时)
- build.sh:自动识别包管理器、装依赖、构建引擎与对照引擎
- run_benchmark.py:test262 全量 --no-skip、stress 基准、计时
- fetch_test262.sh:下载 test262 测试集
- README.md:用法说明
|
2026-06-30 12:42:57 +08:00 |
|
pjh123
|
414d064e89
|
Merge remote-tracking branch 'origin/main'
|
2026-06-30 04:30:31 +00:00 |
|
pjh123
|
a986288766
|
docs: 设计方案文档对齐当前架构 + 补充 benchmark 与未来计划
- 1.3 / 1.4 / 2.5 / 3.4 / 3.7 章节同步至 KernelCore + KernelSession 拆分、PermInterner 替换 StringForge、Epoch Arena + JsString GC 双轨制
- 第 4 章 Benchmark 嵌入四引擎多会话耗时 / 内存折线图 + 双平台单条 JS / 压测柱状图 (6 张 PNG, 鲲鹏 920 vs Intel 8259CL)
- 4.2.5 新增四引擎综合得分表 (OxideJS 61 / QuickJS 80 / BOA 69 / V8 53)
- 5.1 / 5.2 补充研发过程的两个重大问题: counter/emitter 漂移修复路径 + test262 --supervise 鲁棒性
- 第 6 章 AI 使用情况说明; 第 7 章未来计划四点
- 同步生成 PDF (设计方案文档.pdf, 8 页, Chrome headless 渲染)
|
2026-06-30 12:16:09 +08:00 |
|
pjh123
|
59dead1b6e
|
Merge remote-tracking branch 'origin/main'
|
2026-06-28 00:06:20 +08:00 |
|