pjh123
|
6fcd1af059
|
feat: Uint8Array base64/hex 六方法与共享原型 toString
|
2026-09-22 14:28:38 +00:00 |
|
pjh123
|
550d8f4cba
|
fix: 对齐 Number 原型四方法规范序位并补齐绑定元数据面
|
2026-09-22 09:59:53 +00:00 |
|
pjh123
|
cc0ed44bd8
|
feat: 补全 Error 栈访问器 isError toJSON 与 Promise.try
|
2026-09-22 09:02:30 +00:00 |
|
pjh123
|
fb9365bde2
|
fix: split 委托 Symbol.split 并补零宽与 limit 口径
|
2026-09-22 07:45:34 +00:00 |
|
pjh123
|
3ddb7e0766
|
fix: Math/JSON/全局对象原型链挂 Object.prototype
|
2026-09-22 03:32:26 +00:00 |
|
pjh123
|
7481ceb798
|
feat: 补全 String locale 三方法与 localeCompare 基本档
|
2026-09-21 01:58:31 +00:00 |
|
pjh123
|
4a8894a560
|
feat: 实现 Object.getOwnPropertyDescriptors 内建
|
2026-09-20 20:45:15 +00:00 |
|
pjh123
|
951ec21b75
|
fix: wrapper 本体属性写触发内置重建失效复用
|
2026-09-18 02:27:43 +00:00 |
|
pjh123
|
ac6a48412b
|
fix: 删除 super 属性按规范报错并补 setPrototypeOf 内置
|
2026-09-18 01:06:48 +00:00 |
|
pjh123
|
f53918f287
|
feat: 星号导出歧义名从命名空间省略
|
2026-09-18 00:19:29 +00:00 |
|
pjh123
|
90630221c0
|
docs: perm interner 保留口径去泄漏措辞
|
2026-09-17 05:54:01 +00:00 |
|
pjh123
|
20eab77e13
|
docs: kernel crate 头文档辖域修正
|
2026-09-17 05:34:58 +00:00 |
|
pjh123
|
785133346f
|
docs: kernel 残措辞与重建口径统一
|
2026-09-17 05:16:24 +00:00 |
|
pjh123
|
bdb7721063
|
docs: kernel 小文件注释改写
|
2026-09-17 04:42:58 +00:00 |
|
pjh123
|
eb6c441d62
|
docs: kernel session 组注释改写与断链消解
|
2026-09-17 04:29:24 +00:00 |
|
pjh123
|
2d48a7e253
|
docs: 内建绑定连线组注释改写与断链修复
|
2026-09-17 03:47:41 +00:00 |
|
pjh123
|
d474ef6b46
|
docs: 原型槽记号加反引号修复 rustdoc 断链
|
2026-09-16 20:35:57 +00:00 |
|
pjh123
|
4ff039b4f3
|
docs: 内建选择性重建注释改写与黑话术语替换
|
2026-09-16 20:33:42 +00:00 |
|
pjh123
|
4c4f5ab8ae
|
docs: 内建世界释放登记表注释改写与黑话替换
|
2026-09-16 20:23:31 +00:00 |
|
pjh123
|
f06556cab2
|
refactor: kernel 会话段拆出独立 session 模块并收口
|
2026-09-16 05:51:57 +00:00 |
|
pjh123
|
43c4e5c7ba
|
refactor: kernel 共享核心段拆出独立 core 模块
|
2026-09-16 05:13:02 +00:00 |
|
pjh123
|
085900442e
|
refactor: 内置 id 枚举与脏集拆出独立 builtin_id 模块
|
2026-09-16 04:52:36 +00:00 |
|
pjh123
|
0b2761725d
|
refactor: kernel 配置拆出独立 config 模块
|
2026-09-16 04:43:15 +00:00 |
|
pjh123
|
63a1e84956
|
refactor: builtin 注册表与结构体拆出独立 world 模块
|
2026-09-16 04:18:56 +00:00 |
|
pjh123
|
f08e35c5f2
|
refactor: builtin 实例化段拆出独立 construct 模块
|
2026-09-16 02:36:06 +00:00 |
|
pjh123
|
5da802f039
|
refactor: builtin 脏重建段拆出独立 rebuild 模块
|
2026-09-16 02:20:20 +00:00 |
|
pjh123
|
cb3793ab68
|
refactor: builtin 方法安装段拆出独立 bind 模块
|
2026-09-16 02:01:10 +00:00 |
|
pjh123
|
2c9546ca55
|
refactor: builtin 模块目录化并拆出方法指针表
|
2026-09-16 01:40:31 +00:00 |
|
pjh123
|
96a26d17dc
|
test: builtin 内联测试外移 释放重指自测留内联
|
2026-09-16 00:45:12 +00:00 |
|
pjh123
|
6f7c54fc6b
|
test: kernel.rs 内联测试移入集成测试
|
2026-09-16 00:43:32 +00:00 |
|
pjh123
|
db477c2776
|
test: shape_forge 测试外移 overflow 四测留内联
|
2026-09-16 00:36:08 +00:00 |
|
pjh123
|
61f590f118
|
test: oxide_kernel forge 内联测试移入集成测试
|
2026-09-16 00:31:44 +00:00 |
|
pjh123
|
50cfad32ed
|
test: BuiltinId::ALL 顺序加编译期断言钉死
|
2026-09-15 20:29:52 +00:00 |
|
pjh123
|
0f5bd1577e
|
fix: 字符串面 GetIterator 尊重用户 @@iterator 覆盖
String 臂此前对原始串与装箱串一律走码元步进、忽略用户覆盖的
@@iterator。改为按 GetMethod 语义以值自身为 receiver 读 @@iterator
(原始串落 String.prototype、装箱串读自身→原型链),默认迭代器
自别名即 @@iterator 槽本身、以绑定层捕获的函数指针比较走快速
路径避免递归回本臂;覆盖则调用、receiver 为值。peek 对非字符串
原始值先装箱再读 @@iterator;Iterator.from 增 GetIteratorFlattenable
前置校验,非字符串原始值非对象 → TypeError(不装箱)。
|
2026-09-15 02:18:12 +00:00 |
|
pjh123
|
75b98e7f78
|
fix: 良形 FFFD 属性键收口到编码键空间形态
|
2026-09-14 10:55:53 +00:00 |
|
pjh123
|
68d2974eb5
|
kernel/builtins/test262: 本批新码 clippy 三则 + fmt 归净——obfuscated_if_else(source_escape_to_key 值域判定改 if/else)、needless_range_loop(decode_uri_units 保留字符原样段改 extend_from_slice)、needless_borrows_for_generic_args(844f2f4 rename 调用两处冗余借用);fmt 漂移(compiler.rs/vm.rs 构造体折行)一并归净。七 crate clippy 零告警、fmt --check 净、七 crate 2879/1(唯一失败 compile_class_declaration 既有)、release 子集 8/8 + 2/2 终验
|
2026-09-14 08:18:38 +00:00 |
|
pjh123
|
6f70d7d09f
|
vm/kernel/emit/builtins: 动态源编码重设计 + 数值键 2^32 边界 + 单元域解码/Source 面——14 头独占 test262 回归 13 修 0 新增
全量 A/B 差分撞出 14 个头独占回归,本提交闭合 13(text-self.js 双树同败归 pre-existing):
数值键 u32 回绕(release 态,debug 为 panic 故单测未现):canonical_index_str/
units 的 v.checked_mul(10)? + d as u32 在乘积合法而和溢出 2^32 时静默回绕
(10 位数字串 "4294967296".."4294967299" 误判整数键 0..3,属性查找回
退、Object.keys 串键),改 checked_mul+checked_add 双段防溢出;str/units 各
钉一枚 2^30-1/2^30/2^32-1/2^32 边界(Group B 5 文件:defineProperty/
defineProperties 2^32 键族 + Array property-cast-number)。
decodeURI/decodeURIComponent 单元域重写(Group A 2 文件):decode_uri_units
按单元扫描(非 % 单元原样透传——孤立 surrogate 往返不再被 lossy 串值面
打碎),%XX 解单元入缓冲;string_arg_units 经 to_units_full 取单元。
动态源编码(eval/Function/$262.evalScript)重设计(Group A 6 文件 + value-u):
source_escape 旧设计把源码域反斜杠恒双写(与 marker 起始区分),但源码即
JS 程序、反斜杠恒为字面量内转义序列起始,双写改变程序语义——
/\u{1d306}/u 变 /\\u{1d306}/u,u 模式撞裸 { 直接 SyntaxError(value-u 回归
根因)。现反斜杠原样透传;孤立 surrogate/FFFD 单元仍以 \\uXXXX 转义文本
注入(Rust str 无法承载裸孤立 surrogate,转义文本是唯一注入形态);
source_escape_to_key 逆路径仅还原注入 marker(\\ud800..\\udfff/\\ufffd
小写转义文本 → FFFD+hex4 池键形态,物化 decode_key 还原原始单元,正则
.source 按原始源返回;用户转义文本 \\u0041/\\u{1d306} 等逐字透传),
\\+marker 拼接形态(数据反斜杠紧邻注入,S7.8.5_A1.4 族 cu=d800 断言)按
前瞻还原 [数据反斜杠, 单元]。source_encoded 标志经 Compiler→Emitter→CompileCtx
(嵌套继承)贯通,仅动态编译入口置位;静态源切片维持 pool_key_plain 不变。
RegExp [[Source]]/[[Flags]] 单元域(regexp 构造器):to_units_full →
new_string_units_owned 入键(旧 lossy to_string 把孤立 surrogate 单元打成
FFFD,src_match 探针 false);regress 编译仍 lossy(既有缺口,另行报告)。
三并钉:source_escape marker 形态 / 反斜杠透传 / decode_key∘to_key∘escape
闭环(含 \\+marker 相邻与 astral 对)。实测:Group A 8/8、Group B 5/5、
value-u 1/1;8178 文件回归子集(13 目录)双树 A/B 差分 HEAD-only=∅、
13 文件转双树同 pass;text-self.js 双树同 compile 败
(requested module export is not exported: default)归 pre-existing;
七 crate 单测 2879/1(唯一失败 compile_class_declaration_emits_constructor
为 HEAD~0 既有,本提交未引入)。
|
2026-09-14 07:16:00 +00:00 |
|
pjh123
|
0c750fa74c
|
emit/kernel/vm/builtins: 常量池键编码 + 键物化真实串值面 + 16 回归钉——emit 侧字面量/键/模板统一改存无标志键编码:lone_surrogates 字面量与模板 cooked 按 oxc marker 解码还原真单元序列(FFFD+hex4≠fffd→surrogate 单元、FFFD+fffd→FFFD、FFFD+非 hex 防御臂),无标志串 encode_key(encode_utf16()) 入池(BMP 无 FFFD 键恒等 = 现值,池条目零漂移),string_pool 集中收口 9 处入池点;interner string_ptr 由单元物化(含孤立→FlatU16、良形→Flat);键物化面改真实 JS 串值(key_si_to_js_value 经 decode_key,Object.keys/ownKeys/entries/Reflect.ownKeys/json reviver 键同源;整数键反解数字串);批内修复三处子集 A/B 差分撞出回归:replace $n 展开按 spec GetSubstitution 重写(digitCount 2/1、越界回退 1 位、越界含 $0 原文输出,node 13 用例对照钉住)、String 构造器 Symbol 路径按 new.target 分流(String(sym)→描述串、new String(sym)→TypeError,恢复 to_string_for_string_constructor)、padStart/padEnd 未给 fill 时按单空格补(原 lossy 串取 'un' 杂质,pre-existing 一并归零);迭代器 dispose 钉改回真值断言(String(Symbol.dispose) 现合法返回描述串);property-escapes 613/0/0(B167 基线 582/31/0,31 归零)、String 子集 963/250/10 vs BASE 949/264/10(14 修 0 回归)、for-of +1(string-astral-truncated)、五 crate 113 套件 2680/0、clippy/fmt 零新增(JSON 面与全量 test262 收尾在 131.2 后续 commit 闭合)
|
2026-09-14 03:04:23 +00:00 |
|
pjh123
|
3acac721b0
|
types/kernel/vm/builtins: JsString UTF-16 载荷层(FlatU16 变体 + 单元入口)——原 UTF-8 载荷只存 well-formed 串、孤立 surrogate lossy 转 U+FFFD 回写,FromCodePoint/属性转义与字符串面码点语义皆破;现载荷直存 [u64;3](Flat well-formed / FlatU16 单元序列 / Cons 拼接),utf16_len 独立 32 位字,32B 布局锚保持;from_units 智能路由(含孤立→FlatU16),as_str 仅限 Flat,units/units_borrowed 单元借用,as_lossy_str 宽容读;string_forge 编解码 surrogate 感知(孤立 surrogate 逃逸 hex4 编码、解码展开 astral 代理对、string_ptr 由单元物化);VmHost 单元物化/分配/查询入口 + runtime_api 单元 API;字符串内置全法单元化(charAt/slice/substr/split/replace/search/match/matchAll 单元定位;空模式边界:search→0、match→[""]、replace 插 0 位、matchAll 游标耗尽守卫;接收者 ToString 错误原样传播);正则内置单元化(exec/test/search/symbol_* 单元文本,替换串 \u{...} 与孤立 surrogate 文本处理,lastIndex 与 matchAll 游标单元化);字符串迭代器码点化(高代理+后续低代理成对产出,astral 值回真实码点);String(Symbol) 抛 TypeError;回归钉更新五处(charAt/split/slice/substr 单元精确语义 + dispose 钉改 TypeError 断言);四 crate 全绿(oxide_vm 98 套件 2403 测)+ clippy/fmt 零新增
|
2026-09-13 22:42:10 +00:00 |
|
pjh123
|
c564ec539b
|
emit/kernel: 可写 builtin 全局标识符写双写全局属性,三常量描述符对齐规范 c:false,受限词法名集补 eval
- 谓词注册表化:targets_readonly_builtin 解析条件抽公共助手,新增
targets_writable_builtin / is_writable_builtin_global(BUILTIN_GLOBALS
减只读三常量派生,不复制名单)+ 只读/可写划分漂移守卫单测
- 12 个赋值族写点(简单/复合/更新/逻辑赋值、解构两臂、for-in/for-of
标识符目标)补双写臂:STORE_VAR 后 0x98 同步全局对象属性(既有可写
属性原地更值、保 e/c 位),裸读镜像与 globalThis 反射不失步
- for-in 头 tier 写点移除 builtin 名例外:可写 builtin 名迭代键照规范
覆写全局属性(三常量仍由拦截臂跳过)
- 三常量(undefined/NaN/Infinity)全局描述符 configurable 翻正为
false:delete 拒绝、属性保留,描述符读同步
- 脚本顶层受限词法名集 3→4(补 eval,静态受限臂):let/const/class
eval 顶层声明编译期 SyntaxError
- 配套钉:7 处既有钉随 c 位翻正 + 2 枚 for-in/eval 形态钉反转,新增
global_builtin_writable_tests(16 钉:双写六形态 + 遮蔽/strict/eval/
宿主名面)
test262 子集:built-ins/global 29/29、三常量族 20/20、11.13.1-4 7/7、
assignmenttargettype plain 8/8 全绿;language/global-code 17 失败文件
双树单跑一致(pre-existing);annexB assignmenttargettype 7 个 parse
error 为既有解析器缺口
|
2026-09-13 10:46:10 +00:00 |
|
pjh123
|
a98d5251e1
|
fix: 永久串静态表首用竞败者改返槽内值——Err 载荷是本值非槽值,自释后返自身指针成悬垂
|
2026-09-13 07:35:10 +00:00 |
|
pjh123
|
d9c469e9d0
|
fix: 子模块表代际注册表——跨 run 存活函数按创建期表代解析子模块,索引悬空与静默错模块闭合
|
2026-09-12 19:27:22 +00:00 |
|
pjh123
|
e33e7a1eb7
|
feat: PlainMonthDay/PlainYearMonth 对象地基——构造器/getter/toString/toJSON 注册与 BuiltinWorld 接线
|
2026-09-12 03:42:48 +00:00 |
|
pjh123
|
542236a15a
|
fix: clear_transient 补清 overflow 态(id 空间完整复位)+ kernel 增加 active_vms 计数,sweep/重建/kernel-drop 三处 debug_assert 守卫'清空时点无存活 VM'
|
2026-09-11 21:42:55 +00:00 |
|
pjh123
|
a8c668002b
|
perf: test262 runner 重建与 sweep 双钟互斥——重建迭代不再对 doomed 核白做 50k 清理,sweep 文档对齐两边界契约
|
2026-09-11 21:19:08 +00:00 |
|
pjh123
|
22ae7e2642
|
chore: PermInterner 模块注释去历史叙述(写语义不写历史)
|
2026-09-11 21:06:59 +00:00 |
|
pjh123
|
389ce0e6af
|
refactor: PermEntry 布局钉改 repr(C)——字段序(指针, 长度)连续 16B 由 repr(C) 保证(非 pack),尺寸断言即 ABI 钉
|
2026-09-11 20:53:42 +00:00 |
|
pjh123
|
55727a2e01
|
perf: should_rebuild_perm 改 advisory 建议上限 Option——键数超阈值(严格大于)返回 Some(阈值取 2 的幂后加倍) 供宿主重建后写入新 kernel 不再立即触顶,预设 None 恒 None,3 单测钉默认/恰阈值/未达三面
|
2026-09-11 20:53:42 +00:00 |
|
pjh123
|
5b0affe065
|
perf: PermEntry 瘦身——删存储侧零消费的 8B hash 字段(24B→16B,键寻址仍经 DashMap 哈希键,计算保留存储删除),get_hash 随之删除,布局以尺寸 const 断言钉死
|
2026-09-11 20:20:00 +00:00 |
|
pjh123
|
b8167d4d84
|
perf: kernel 寿命配置化——零消费者死旋钮 max_dead_strings 换 advisory 重建阈值 perm_interner_max_entries(预设全 None 零漂移)+ KernelCore::should_rebuild_perm 宿主边界查询,3 单测钉默认面/阈值面/未达阈值面
|
2026-09-11 20:20:00 +00:00 |
|