pjh123
|
01195ffb32
|
fix: match/search 走 GetMethod 派发,flags 归序与 normalize 校验
|
2026-09-25 06:23:11 +00:00 |
|
pjh123
|
d4ed76855e
|
fix: fmt 收口与 clippy ptr_eq 收敛,padStart 测试期望对齐码元口径
|
2026-09-25 04:59:51 +00:00 |
|
pjh123
|
a18a6323e6
|
fix: bind_constructor 宏补 length 描述符 meta
|
2026-09-23 15:27:47 +00:00 |
|
pjh123
|
ced1a2e43e
|
fix: String 位置参数 BigInt 吞错改传播 TypeError
|
2026-09-22 22:37:23 +00:00 |
|
pjh123
|
2252ed7bbc
|
feat: String 盒迁移 boxed_value 载荷并物化固有属性面
|
2026-09-22 16:40:01 +00:00 |
|
pjh123
|
fb9365bde2
|
fix: split 委托 Symbol.split 并补零宽与 limit 口径
|
2026-09-22 07:45:34 +00:00 |
|
pjh123
|
a74044a26e
|
test: 类正则对象 replace 期望改抛 TypeError 对齐 IsRegExp 传播
|
2026-09-22 03:05:35 +00:00 |
|
pjh123
|
7481ceb798
|
feat: 补全 String locale 三方法与 localeCompare 基本档
|
2026-09-21 01:58:31 +00:00 |
|
pjh123
|
71e3e6c829
|
test: 钉五位与花括号 unicode 转义解码边界及三非法形
|
2026-09-14 18:36:52 +00:00 |
|
pjh123
|
75b98e7f78
|
fix: 良形 FFFD 属性键收口到编码键空间形态
|
2026-09-14 10:55:53 +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
|
3169e8f2f9
|
perf: run 签名改 &Arc<CompiledModule>,顶层模块跨 run 共享——collect_flat_modules 顶层改 Arc::clone 消除逐 run 常量池深拷贝,全调用点 Arc 包装迁移
|
2026-09-11 22:19:13 +00:00 |
|
pjh123
|
9013a07272
|
fix: String 方法 Symbol 参数抛 TypeError 且缺参按 undefined 查找
as_string 由兜底转换改 Result 化:Symbol 与其余转换失败抛
TypeError,对象 ToString 抛出的原生异常经 take_uncaught_value
原样传播,不再静默降级为空串/占位文本。17 处调用点统一经
try_string! 抛错。
indexOf/includes/startsWith/endsWith/lastIndexOf 删除缺参短路:
searchString 缺省按 ToString(undefined)="undefined" 参与查找,
'undefined'.indexOf() 现得 0。
类正则对象(Object.create(RegExp.prototype))默认 toString 抛
TypeError 的 replace/split 用例随异常传播行为更新断言。
|
2026-08-16 02:08:13 +08:00 |
|
pjh123
|
0e32d663ce
|
fix: matchAll 空匹配推进至少一个字符,RegExp 补 GC 搬移深拷贝
matchAll 迭代器在空匹配(range.start == range.end)后把游标停在原位置,
同一位置反复空匹配导致死循环;改为按 UTF-8 字符边界推进(与 regress
find_iter 的 next_right_pos 一致),串尾空匹配把游标推到串长之后保证下轮
耗尽。
另修 RegExp 在 GC sweep 与 epoch 晋升中的指针别名:克隆只复制 native_fn 槽
的 Box 指针,源对象释放后克隆持悬垂指针,teardown 双重释放(heap 损坏)。
新增 clone_regexp_native 深拷贝已编译正则,sweep/promote 两处挂接,与
drop 配对保证单次释放。
|
2026-08-15 20:31:51 +08:00 |
|
pjh123
|
8a99f51091
|
fix: 字符串索引体系改 UTF-16 code unit 语义(astral 字符正确)
|
2026-08-15 19:34:55 +08:00 |
|
pjh123
|
63d549aec2
|
fix: string.search 无参调用越界 panic,参数读取守卫前置返回 -1
|
2026-08-15 04:28:01 +08:00 |
|
pjh123
|
36c1ef1208
|
fix: replaceAll 类正则对象统一走 ToString 文本路径与 replace 对齐
|
2026-08-14 21:15:00 +08:00 |
|
pjh123
|
6c6d4320a6
|
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
|
91103851c8
|
perf: replace 字符串 pattern 走共享借用零拷贝并修 replace 语义
|
2026-08-14 12:54:27 +08:00 |
|
pjh123
|
1c5676e614
|
perf: ASCII 单字符缓存 + 字符串迭代器游标收尾
|
2026-08-14 12:11:54 +08:00 |
|
pjh123
|
fbd568e814
|
fix: split 分隔符为 RegExp 子类对象时按字符串语义切分
|
2026-08-14 10:44:23 +08:00 |
|
pjh123
|
31e28a03a6
|
docs: 补充注释与格式化
|
2026-08-06 23:10:27 +08:00 |
|
pjh123
|
0b3668d91a
|
fix: 修复 String 原型方法边界条件
|
2026-06-27 19:45:18 +08:00 |
|
pjh123
|
ddffa8504e
|
refactor: 字符串值改用 JsString 指针表示,键与字面量改用 PermInterner
|
2026-06-24 20:15:15 +08:00 |
|
pjh123
|
5de79b4253
|
feat: 实现 new String 装箱构造 + String.prototype.toString,补齐 boxed primitives
|
2026-06-23 22:33:37 +08:00 |
|
pjh123
|
f7834df245
|
fix: 修复数组回调与原始值属性访问
|
2026-06-17 12:59:11 +08:00 |
|
pjh123
|
111c61d4d7
|
style: 自动格式化
|
2026-06-14 17:21:49 +08:00 |
|
pjh123
|
246ad72540
|
refactor: 拆分 Kernel 中可变 Session 与不可变 Core
|
2026-06-14 12:58:09 +08:00 |
|
pjh123
|
f77499e5cd
|
style: 减少自动格式化换行
|
2026-06-09 00:53:46 +08:00 |
|
pjh123
|
6cb781a3bd
|
fix: 修复数组长度与槽位索引截断问题
|
2026-06-08 22:55:52 +08:00 |
|
pjh123
|
f8eb48ab80
|
feat: 搭建 Iterator 与 for-of 语法基础设施
|
2026-06-08 13:48:54 +08:00 |
|
pjh123
|
c4d1cf4566
|
feat: 支持 String 对象及成员方法
|
2026-06-07 10:36:02 +08:00 |
|