Commit Graph

196 Commits

Author SHA1 Message Date
pjh123 e460a1aea1 feat: DataView getFloat16/setFloat16 2026-08-22 11:15:55 +08:00
pjh123 0ffb5d2cf3 fix: tagged template 语义修正——cooked undefined/this绑定/site缓存/冻结 + groupBy getter 异常传播 + defineGetter setter 保留 2026-08-22 11:15:55 +08:00
pjh123 9eb0944877 fix: Error.prototype.toString 异常传播语义——getter/Symbol/ToString 异常原样上抛
- name/message 读取改 ordinary_get:访问器 getter 触发,抛错经 take_uncaught_value 恢复原值传播
- name/message 转换改 to_string_full:Symbol 抛 TypeError,用户 ToPrimitive 异常原样传播
- 非对象 this 保持抛 TypeError(与现行规范 §20.5.3.4 及 test262 invalid-receiver/called-as-function 一致)
- 单测补 getter 抛错/Symbol name+message/toString 抛错四例
2026-08-22 10:44:48 +08:00
pjh123 c7b54cb181 feat: String.raw/groupBy/withResolvers/f16round/__defineGetter__ 低垂果实批量实现 2026-08-22 10:26:00 +08:00
pjh123 469ef7543b perf: GC 字节账目补齐 + is_epoch_ptr O(1) + 分配热路径触发 2026-08-22 08:10:32 +08:00
pjh123 95155ce450 fix: Promise rejection reason 异常值通道配对修复——create_error 辗转路径归正为 create_from_text 2026-08-21 23:34:04 +08:00
pjh123 c514ab35a3 feat: 实现 console 全局对象 (log/warn/error/info/debug/trace) 2026-08-21 22:29:21 +08:00
pjh123 b9680c80aa feat: Temporal.PlainTime round 舍入(真因子校验 + 跨午夜取模) 2026-08-17 06:23:06 +08:00
pjh123 c6f0e76bf8 feat: Temporal.PlainTime add/subtract 时间域叠加 2026-08-17 06:02:06 +08:00
pjh123 0037f0e5ad feat: Temporal.PlainTime until/since 差值计算 2026-08-17 02:40:21 +08:00
pjh123 bed1abd3f3 feat: Temporal.PlainTime equals/compare 比较语义 2026-08-17 02:34:30 +08:00
pjh123 27cc6333f5 feat: Temporal.PlainTime.from 三分支解析(字符串/实例/bag) 2026-08-17 02:19:01 +08:00
pjh123 a8e68a7a45 feat: Temporal.PlainTime toString options 与字符串化族 2026-08-17 02:14:30 +08:00
pjh123 e06071429c feat: ZonedDateTime.round 舍入(day 双路径 + 真因子校验) 2026-08-17 01:55:52 +08:00
pjh123 430f922ef3 feat: ZonedDateTime.compare 跨实例按 epoch 比较(复用 from 解析器,忽略时区/日历) 2026-08-17 01:27:54 +08:00
pjh123 2d4c074530 feat: eval 脚本模式保留完成值与全局 var(create_dynamic_script) 2026-08-17 00:14:47 +08:00
pjh123 68f8637acf feat: ZonedDateTime.add/subtract 时长运算(复用 PDT 叠加算法 + 中间日期检查 + 时区/日历槽保真) 2026-08-17 00:02:00 +08:00
pjh123 5bf674e1c6 feat: ZonedDateTime.with/withPlainTime/withCalendar 字段合并(offset 默认 prefer + 时间串歧义解析) 2026-08-16 23:49:30 +08:00
pjh123 064f565b21 feat: ZonedDateTime.until/since 差异计算(复用 difference_core) 2026-08-16 23:21:08 +08:00
pjh123 0761fb3010 feat: ZonedDateTime.from 三分支解析(字符串/对象/property bag + offset/disambiguation 选项) 2026-08-16 22:50:48 +08:00
pjh123 50582e7fae feat: 字符串时区注解并行提取 helper(提取与剥离同一次扫描) 2026-08-16 22:44:30 +08:00
pjh123 7604995995 feat: ZDT local_to_epoch_ns 逆换算工具与时区 ±HHMM 归一 2026-08-16 22:33:30 +08:00
pjh123 c7b238e518 feat: eval 全局注册与最小执行(间接 eval) 2026-08-16 22:25:33 +08:00
pjh123 04067a4fe5 feat: ZonedDateTime.withTimeZone 与 equals 基础实现 2026-08-16 22:07:38 +08:00
pjh123 3baa868232 feat: ZonedDateTime.toString 族(toJSON/toLocaleString/valueOf 绑定) 2026-08-16 21:56:57 +08:00
pjh123 662fbcde86 feat: ZonedDateTime 27 个属性 getter 宏化实现 2026-08-16 21:21:07 +08:00
pjh123 b0ab61d318 feat: ZonedDateTime 时区参数支持 ±HH 基本偏移前置 2026-08-16 21:20:51 +08:00
pjh123 742897f319 feat: AsyncDisposableStack 同步方法(use/adopt/defer/move + @@asyncDispose 读取序与 wrap_sync 标志) 2026-08-16 20:11:46 +08:00
pjh123 e96142ef4f feat: DisposableStack 测试九组(构造器/方法语义/原型形状/GC 交叉) 2026-08-16 19:32:23 +08:00
pjh123 7c02d3ece1 feat: DisposableStack 内置对象(状态盒 + use/adopt/defer/dispose/move + GC 六处接线 + 绑定三时机) 2026-08-16 19:22:57 +08:00
pjh123 e100bfb8b4 feat: SuppressedError 内置错误实现(三字段属性序 + 构造器接线) 2026-08-16 19:04:09 +08:00
pjh123 554a69078f fix: PlainDate 周/月/时代 getter 补 ensure branding 校验 2026-08-16 18:50:55 +08:00
pjh123 c8b1ccd0a0 feat: Temporal 构造器严格校验日历并真实存槽(含 fast path 与日历传播) 2026-08-16 17:30:01 +08:00
pjh123 cf6d521c34 refactor: Temporal 槽迁移预埋日历槽(make_* 加日历参数、getter 读槽兜底 iso8601,行为不变) 2026-08-16 17:13:39 +08:00
pjh123 f1c4b33735 feat: Iterator.prototype 返回迭代器方法(map/filter/take/drop/flatMap) 2026-08-16 16:38:45 +08:00
pjh123 4ea723764f feat: Iterator.prototype 终端方法(forEach/every/some/find/reduce/toArray) 2026-08-16 16:02:14 +08:00
pjh123 2777c5592b fix: Temporal 日历注解白名单化,u-ca 校验扩到 18 项内置日历 2026-08-16 15:19:45 +08:00
pjh123 b4bd0d3198 feat: Iterator 构造器本体支持 subclass 基座 2026-08-16 15:09:41 +08:00
pjh123 9f13d107ec feat: Iterator helpers 基建——Symbol.dispose 注册与 %IteratorHelperPrototype% 2026-08-16 14:44:47 +08:00
pjh123 fe8892079e chore: 全仓 rustfmt 格式化归拢 2026-08-16 12:50:36 +08:00
pjh123 e54b877f17 fix: 异常值通道配对——忽略调用槽配对、unwind 接住清槽、生成器参数初始化不覆盖异常值 2026-08-16 11:29:50 +08:00
pjh123 28029f2a77 fix: Date 多参构造年 0-99 按规范映射到 1900-1999 2026-08-16 10:58:50 +08:00
pjh123 8658984dc7 fix: Date 普通调用忽略参数并移除 RFC2822 panic 2026-08-16 10:58:12 +08:00
pjh123 4a1e0a3e9e fix: IC 快速路径 symbol 原始值走 Symbol.prototype 链 2026-08-16 10:31:34 +08:00
pjh123 2fc5a28876 fix: Date 构造器缺省字段与溢出滚动语义符合规范
多参缺省字段固定为日=1、时分秒毫秒=0(不再取当前时刻);
月/日/时等分量越界按 MakeDay/MakeTime 滚动进位,负月同样归一;
单参字符串与 Date.parse 支持时区偏移(Z/+hh:mm/+hhmm)折算 UTC,
修复此前 NaiveDateTime 解析静默丢弃偏移的问题。
2026-08-16 03:43:42 +08:00
pjh123 4029259255 fix: builtins 对象分配统一走 alloc_object 登记消除高频路径泄漏 2026-08-16 03:36:02 +08: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 69152ad608 fix: 迭代器原型形状补全(Iterator.prototype/string 中继层/next 原型化) 2026-08-15 23:36:01 +08:00
pjh123 2359c4e0a4 feat: 迭代器原型基建:%IteratorPrototype% 链 + 各集合迭代器原型
新增 %IteratorPrototype%(含 @@iterator 返回自身,经原型链被全部迭代器
继承,it[Symbol.iterator]() === it 恒等)与 %ArrayIteratorPrototype%/
%MapIteratorPrototype%/%SetIteratorPrototype%/%StringIteratorPrototype%/
%RegExpStringIteratorPrototype%(链到 %IteratorPrototype%);Array/Map/Set/
TA/String/matchAll 迭代器包装统一挂对应原型;补 Array/String 的 @@iterator
别名绑定。集合迭代器原型不含 return 方法(规范集合迭代器无 return)。
2026-08-15 22:57:03 +08:00
pjh123 c052f5a619 feat: Function.prototype[Symbol.hasInstance] 绑定与 bound 函数构造语义
@@hasInstance 按 OrdinaryHasInstance 实现(非可调用 this 返回 false、
prototype 非对象抛 TypeError、bound 链递归到最内层 target);
new boundFn() 解包 [[BoundTargetFunction]] 链后转发构造:绑定实参前置、
新对象原型取 target.prototype、new.target 替换为最内层 target。
2026-08-15 22:40:45 +08:00