pjh123
|
51157473df
|
refactor: array 不可变方法族拆出 immutable 模块
|
2026-09-17 12:18:48 +00:00 |
|
pjh123
|
a43054b919
|
refactor: array 排序与迭代协议拆出 sort_iterator 模块
|
2026-09-17 12:09:55 +00:00 |
|
pjh123
|
f2a1320810
|
refactor: array 迭代与查找族拆出 iterate 模块
|
2026-09-17 12:05:28 +00:00 |
|
pjh123
|
25bfe2d076
|
refactor: array element 族拆出 element 模块
|
2026-09-17 11:58:41 +00:00 |
|
pjh123
|
c509f78758
|
refactor: array from 族拆出 from 模块
|
2026-09-17 11:50:22 +00:00 |
|
pjh123
|
24f15d3a7c
|
refactor: array 共享层拆出 common 模块
|
2026-09-17 11:26:34 +00:00 |
|
pjh123
|
4f940d9f00
|
docs: 修正 string 模块头消费路径表述
|
2026-09-17 11:15:13 +00:00 |
|
pjh123
|
7e5bc66689
|
refactor: array 单文件迁目录模块
|
2026-09-17 11:07:13 +00:00 |
|
pjh123
|
3129e87f55
|
refactor: string 模块拆分收口定型骨架
|
2026-09-17 11:05:03 +00:00 |
|
pjh123
|
a93d08779e
|
refactor: string 正则族拆出 regex 模块
|
2026-09-17 10:59:00 +00:00 |
|
pjh123
|
cad52546d6
|
refactor: string 基础方法族拆出 basic 模块
|
2026-09-17 10:51:46 +00:00 |
|
pjh123
|
3c691ef4d6
|
refactor: string 共享层拆出 common 模块
|
2026-09-17 10:41:26 +00:00 |
|
pjh123
|
27f48a6e39
|
refactor: string 单文件迁目录模块
|
2026-09-17 10:34:28 +00:00 |
|
pjh123
|
0679c805b1
|
refactor: temporal 收口,构造层并入 common 并外移内联测试
|
2026-09-17 10:31:51 +00:00 |
|
pjh123
|
7f012c2119
|
refactor: temporal 年月与月日族拆出双模块
|
2026-09-17 10:22:45 +00:00 |
|
pjh123
|
b9e3886a30
|
refactor: temporal PlainDateTime 族拆出独立模块
|
2026-09-17 10:16:33 +00:00 |
|
pjh123
|
d41b2fe9ff
|
refactor: temporal PlainTime 族拆出独立模块
|
2026-09-17 10:02:43 +00:00 |
|
pjh123
|
e1132b98ff
|
refactor: temporal PlainDate 族拆出独立模块
|
2026-09-17 09:53:05 +00:00 |
|
pjh123
|
a1abdff61e
|
refactor: temporal duration 族拆出独立模块
|
2026-09-17 09:40:09 +00:00 |
|
pjh123
|
9811b96ac8
|
refactor: temporal ZonedDateTime 族拆出独立模块
|
2026-09-17 09:30:12 +00:00 |
|
pjh123
|
abff09df3a
|
refactor: temporal instant 层拆出独立模块
|
2026-09-17 09:21:20 +00:00 |
|
pjh123
|
d6f1943c92
|
refactor: temporal 差量层拆出独立模块
|
2026-09-17 08:32:50 +00:00 |
|
pjh123
|
e4207b41c0
|
refactor: temporal 字符串解析与算历层并入 common
|
2026-09-17 07:54:13 +00:00 |
|
pjh123
|
a83916c060
|
refactor: temporal 共享层拆出 common 模块
|
2026-09-17 06:37:03 +00:00 |
|
pjh123
|
a77f1c37f6
|
refactor: temporal 单文件迁目录模块
|
2026-09-17 05:52:51 +00:00 |
|
pjh123
|
1702aa9051
|
docs: json reviver 注释去重
|
2026-09-16 19:01:16 +00:00 |
|
pjh123
|
1e84522f42
|
docs: set 注释章节号清扫
|
2026-09-16 19:01:15 +00:00 |
|
pjh123
|
cc43022ece
|
docs: error 注释黑话清扫
|
2026-09-16 19:01:15 +00:00 |
|
pjh123
|
c257d8a5c1
|
docs: bigint 注释黑话清扫
|
2026-09-16 19:01:15 +00:00 |
|
pjh123
|
026fb7e2c9
|
docs: date 英文注释改中文
|
2026-09-16 19:01:15 +00:00 |
|
pjh123
|
890c322a06
|
docs: number 注释黑话清扫
|
2026-09-16 19:01:15 +00:00 |
|
pjh123
|
eeba38de89
|
docs: 修正内置层模块头失效的占位特性清单
|
2026-09-16 19:01:15 +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
|
92df76565b
|
fix: 迭代可选入口对非空不可调用 @@iterator 抛错并实现 IsHTMLDDA 宿主值
|
2026-09-14 22:16:43 +00:00 |
|
pjh123
|
53da6ef817
|
fix: @@iterator 解析不到可调用时迭代可选入口回退 array-like
|
2026-09-14 19:45:52 +00:00 |
|
pjh123
|
eff4de358a
|
style: rustfmt 折行同步
|
2026-09-14 17:42:30 +00:00 |
|
pjh123
|
c7ebcea305
|
fix: with reject 分支负分量先校验范围再截断
|
2026-09-14 17:41:05 +00:00 |
|
pjh123
|
d67e1469c1
|
fix: 迭代器快速路径尊重用户覆盖的 @@iterator
|
2026-09-14 17:35:40 +00:00 |
|
pjh123
|
954ceb2109
|
fix: PlainTime 构造器负时间分量改抛 RangeError 不再饱和归零
|
2026-09-14 16:31:51 +00:00 |
|
pjh123
|
91946f3fe3
|
fix: PlainDateTime 构造器显式 undefined 时间分量取默认值
|
2026-09-14 13:40:32 +00:00 |
|
pjh123
|
2760edfbb9
|
fix: PlainDate 与 PlainTime 构造器数字分量走 number-only 转换面
|
2026-09-14 13:29:58 +00:00 |
|
pjh123
|
d877e63cf1
|
fix: 全局对象成员写与删后镜像槽反向同步防裸读失步
|
2026-09-14 13:10:17 +00:00 |
|
pjh123
|
4284aed79a
|
chore: 移除键域调试探针与死代码并修正动态源注释
|
2026-09-14 10:56:32 +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
|
eb6bc412d9
|
builtins/vm: JSON.stringify 序列化与键面改单元域——孤立 surrogate 串值不再被 lossy 串值打碎
jsvalue_to_json 串值分支原经 to_owned_string(lossy)后按 char 流序列化:孤立
surrogate 单元被打成 U+FFFD 且输出裸非法码单元(非 well-formed JSON,
JSON.parse 无法复原同值)。现按单元流序列化(stringify_string_units):良配
代理对原样输出 astral 字符,非配对孤立 surrogate 输出 \\uXXXX(well-formed
JSON 要求,round-trip 复原同值),C0/C1 控制码输出 \\uXXXX,其余按 JSON
转义规则。
toJSON/replacer 键参数同改:键 si 物化为单元序列(整数键 → ASCII 数字串,
字符串键 → 码表键经 decode_key 还原含孤立 surrogate 单元),new_string_units_owned
建参——与 0c750fa 键物化面(Object.keys/ownKeys/entries/Reflect.ownKeys/json
reviver 键同源)口径一致,replace/reviver 键参数不再走 lossy 串值。
三并钉:json_tests 增补 stringify 孤立 surrogate round-trip / 代理对 astral
直出 / 键面单元传递三则;JSON 套件 37/0,node 13 用例对照一致。
|
2026-09-14 07:33:51 +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
|
650b8c00cc
|
builtins/vm: ZDT 直读 5 方法绑定(toInstant/toPlainDate/toPlainDateTime/toPlainTime/startOfDay)——纪元槽直读零时区换算、本地分量经 plain_parts 换算、startOfDay 当地午夜含范围校验,ZDT 语料 45 文件 fail→pass
|
2026-09-13 17:06:10 +00:00 |
|
pjh123
|
50674ee4f5
|
builtins/vm: matchAll 编译正则载体专型标签,释放/深拷贝经 RegExp 同一守卫,止逐调用 Box 泄漏
|
2026-09-13 11:05:52 +00:00 |
|