Commit Graph

68 Commits

Author SHA1 Message Date
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 7756ccbaee fix: PlainMonthDay/YearMonth toString 非 iso8601 日历补年份/日分量与日历注解
auto/缺省形(含 toJSON/toLocaleString 同形)对非 iso8601 日历恒输出裸
MM-DD / ±YYYY-MM:按 TemporalMonthDayToString/TemporalYearMonthToString,
showCalendar ∈ {always,critical} 或 calendar ≠ iso8601 时补参考年(PMD)/
参考日(PYM),注解按 FormatCalendarAnnotation(auto 仅非 iso 出 [u-ca=…]、
never 无注解、critical 前置 !)。ShowCalendar 拆分 auto/never(原 Omitted
合并两者致注解表不可表达),注解表独立成 helper 供两站点复用。
2026-09-12 08:27:46 +00:00
pjh123 4538dcd9a8 fix: Duration add/subtract 范围判据按存储分量加权和(对齐 IsValidDuration)
逐分量尾检误接受加权和落在 [2^53 s, 2^53 s + 86400 s) 的输入(各分量
均低于 2^53 秒上限而总和越界);按输入精确和校验又漏掉精确和低于上限、
而存储分量经 f64 舍入后达上限的情形。改按平衡后存储时间分量(含 days)
的纳秒加权和与 2^53 秒上限比较——校验对象与内部槽位的 float64 可表示
整数存储语义一致,判据与构造器/from 的 validate_duration_values 同式。
补加权和边界钉(恰 = 2^53 s 抛 RangeError、2^53 s − 1 s 通过并平衡到
day 级)。
2026-09-12 08:27:40 +00:00
pjh123 8f1be23c04 feat: Temporal.PlainYearMonth until/since——year/month 单位差值(缺省 smallest month / largest year)、参考日三元全等早返与按日 1 的 day 级范围 2026-09-12 07:24:33 +00:00
pjh123 6c9dbdaa06 feat: Temporal.PlainYearMonth with/toPlainDate——字段 bag 覆盖(month→monthCode→year)、monthCode 两段校验与 day 级日期合成 2026-09-12 07:24:28 +00:00
pjh123 db0521f950 feat: Temporal.PlainYearMonth add/subtract——时长转换复用、低阶单位拒绝与按日 1 的 (年,月) 范围 2026-09-12 06:51:10 +00:00
pjh123 32cfc066f1 feat: Temporal.PlainYearMonth compare/equals——(年,月,参考日) 三元比较与 ToTemporalYearMonth 共享件 2026-09-12 05:51:03 +00:00
pjh123 4dc475d2fa feat: Temporal.PlainYearMonth.from——年-月串解析/字段 bag/实例复制与 (年,月) 范围 2026-09-12 05:38:24 +00:00
pjh123 2ebb856b1b fix: PlainMonthDay.with 部分字段转换前移至 options 读取之前 2026-09-12 04:56:52 +00:00
pjh123 5362595b17 feat: Temporal.PlainMonthDay equals/with/toPlainDate——三元比较、字段覆盖与 constrain 日期合成 2026-09-12 04:52:28 +00:00
pjh123 2fcae4fbca feat: Temporal.PlainMonthDay.from——ISO 串解析/字段 bag/实例复制与 overflow 语义 2026-09-12 04:23:44 +00:00
pjh123 e4e278dd19 feat: PlainMonthDay/PlainYearMonth toLocaleString(默认形串)与 valueOf(TypeError)绑定 2026-09-12 03:49:18 +00:00
pjh123 e33e7a1eb7 feat: PlainMonthDay/PlainYearMonth 对象地基——构造器/getter/toString/toJSON 注册与 BuiltinWorld 接线 2026-09-12 03:42:48 +00:00
pjh123 64f582d34b chore: rustfmt 全量格式化——CI fmt check 差异清零 2026-09-09 15:14:57 +08:00
pjh123 3cf6618ae7 feat: Temporal.Duration 补全——compare/subtract/equals/sign/blank/toJSON/toLocaleString + relativeTo 相对日历对齐 2026-09-09 15:14:49 +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 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 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 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 2777c5592b fix: Temporal 日历注解白名单化,u-ca 校验扩到 18 项内置日历 2026-08-16 15:19:45 +08:00
pjh123 fe8892079e chore: 全仓 rustfmt 格式化归拢 2026-08-16 12:50:36 +08:00
pjh123 d6eee1347c chore: 清理 oxide_builtins clippy 告警 2026-08-14 05:26:35 +08:00
pjh123 3ad80d6ed4 perf: new_string_owned 零拷贝路径替代 new_string 二次克隆 2026-08-13 14:55:08 +08:00
pjh123 0a4e42334d feat: Duration.total 支持字符串/原始值 relativeTo 语义(无效与越界字符串 RangeError、数字/null 等 TypeError、days 日历路径),total 子集 41/29 2026-08-12 16:58:57 +08:00
pjh123 f2214ab95b feat: Temporal.Duration.prototype.round(无日历单位路径:选项校验+24h 天舍入+按最大单位平衡,绑定注册) 2026-08-12 16:16:22 +08:00
pjh123 1563fdc845 feat: Temporal.Duration.prototype.add(分量精确求和+按最大单位平衡+范围校验,绑定注册);add 子集 32/0 2026-08-12 14:50:13 +08:00
pjh123 7c1da3f979 fix: Instant 参数转换按规范——非字符串原始值直接抛 TypeError(from/compare/equals/since/until) 2026-08-12 14:33:16 +08:00
pjh123 79346097ac feat: Temporal.PlainDateTime.prototype.equals(实例/字符串/对象/ZDT 统一比较,绑定注册) 2026-08-12 14:27:25 +08:00
pjh123 5032175707 fix: Temporal PlainDate/PlainDateTime.from 表示范围边界、leap second、constrain 下限与实例转换 2026-08-12 14:17:28 +08:00
pjh123 5b884d6e75 feat: Temporal PlainDate 字符串走 ParseTemporalDateString(注解/UTC/小数位/分数分钟校验),property bag 支持 monthCode 与日历标识符解析 2026-08-12 13:49:58 +08:00
pjh123 0b6d309cea fix: PlainDate/PlainDateTime until/since 月分解 days 计算(current 保持真实钳制日期,锚定日只用于越界比较) 2026-08-12 13:31:15 +08:00
pjh123 000e2ce872 feat: PlainDate/PlainDateTime until/since 舍入选项(roundingMode/roundingIncrement/smallestUnit,GetDifferenceSettings 对齐) 2026-08-12 13:26:10 +08:00
pjh123 64a5da45c0 feat: PlainDate equals/compare 字符串参数经 date_like_ymd 转换并做 ISO 范围校验 2026-08-12 10:47:43 +08:00