Commit Graph

631 Commits

Author SHA1 Message Date
pjh123 5032175707 fix: Temporal PlainDate/PlainDateTime.from 表示范围边界、leap second、constrain 下限与实例转换 2026-08-12 14:17:28 +08:00
pjh123 f1b7a908f9 fix: class 方法/访问器/constructor/prototype 属性描述符(非枚举/只读),新增 DEFINE_PROP_ATTRS/DEFINE_ACCESSOR_ATTRS
- opcode.rs/inst.rs/contract.rs/vm.rs/vm_dispatch_ctrl.rs:新增两个带 attrs 扩展字的 define 指令
  (attrs bit0=writable, bit1=enumerable, bit2=configurable,与 PropAttributes 一致)
- class/method.rs:方法与非计算访问器改按规范非枚举安装(DefineMethod 语义)
- class/prototype.rs:proto.constructor 非枚举;ctor.prototype 三标志全 false(MakeConstructor)
- 效果:language/statements/class 1782 pass/948 fail -> 1910 pass/716 fail(+128/-232)
2026-08-12 14:11:02 +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 e0d6a85261 fix: ArraySetLength 收缩遇不可配置元素静默失败、ToPrimitive 异常透传与既有属性描述符缺省回填
- arr.length 收缩时若 [newLen, oldLen) 内存在不可配置元素,整个收缩失败且不做任何修改(sloppy 赋值静默 no-op),不再抛错或截断
- length 赋值 ToPrimitive(valueOf/toString)抛错时按主 dispatch 约定直接返回,避免二次抛 RangeError 覆盖原异常(S15.4.5.1_A1.3_T2)
- Object.defineProperty/defineProperties/create 对已有属性省略描述符字段时保持现有属性值(无显式 meta 按 DEFAULT_DATA 回填),修复 toReversed/toSorted/toSpliced/with length-decreased-while-iterating
2026-08-12 13:07:32 +08:00
pjh123 d4cd52ba90 fix: 数组 length 赋值 ArraySetLength 语义与超长逻辑长度(a.length 读取/收缩校验/空洞同步) 2026-08-12 12:52:02 +08:00
pjh123 e87515a27f fix: Array 方法 array-like receiver/Get 异常传播、species 构造、slice/toSpliced/toSorted 规范化,数组字面量空洞语义 2026-08-12 12:51:28 +08:00
pjh123 62991cfa4b feat: 新增 Symbol.species well-known symbol 绑定(Symbol.species 解析/键槽/内建对象) 2026-08-12 12:50:53 +08:00
pjh123 e94bbc6c52 feat: BigInt 位运算按 ToNumeric 语义实现 2026-08-12 11:27:50 +08:00
pjh123 426ed0daa3 fix: 对象转原始值转换错误经内置函数传播 2026-08-12 11:27:40 +08:00
pjh123 64a5da45c0 feat: PlainDate equals/compare 字符串参数经 date_like_ymd 转换并做 ISO 范围校验 2026-08-12 10:47:43 +08:00
pjh123 3a832d5a27 fix: PlainDate until/since 全范围 ISO 日期,civil 日计数 + 范围校验,修复全量运行崩溃 2026-08-12 10:47:32 +08:00
pjh123 af61dcf6fc feat: ToPropertyKey 改走 ToPrimitive,Symbol 键与描述符,转换错误可捕获 2026-08-12 09:59:56 +08:00
pjh123 c287708ddc feat: 补 entries/keys/findLastIndex/toSorted/toReversed/toSpliced/with 2026-08-12 03:42:42 +08:00
pjh123 6bcd090b06 feat: 补 BigInt.prototype[Symbol.toStringTag] 数据属性
补 @@toStringTag 数据属性,writable:false、enumerable:false、configurable:true,
使 Object.prototype.toString 与属性描述符符合规范。剩余 built-ins/BigInt 的
Symbol.toStringTag.js verifyProperty 失败仍受 String(Symbol) 支持阻塞。
2026-08-12 03:41:22 +08:00
pjh123 1eadb5ac1b fix: BigInt SUB/MUL 除 0n 不再误抛 Division by zero
binary_arith! 的 is_zero() 守卫无条件生效,x - 0n 与 x * 0n(含包装对象形式)
误抛 RangeError。仅 DIV/MOD 应拒绝 BigInt 零除数,SUB/MUL 正常计算。
test262 language/expressions/subtraction 由 29/6 通过提升到 30/5。
2026-08-12 03:30:03 +08:00
pjh123 1824ef0df1 feat: num-bigint 接入任意精度 BigInt(字面量、算术、toString、asIntN/asUintN) 2026-08-12 03:15:18 +08:00
pjh123 4474702735 fix: Object.prototype.toString 补 Math/JSON/Arguments 标签 2026-08-12 02:29:40 +08:00
pjh123 aa51d57660 feat: BigInt 构造器 ToPrimitive 语义、toString(radix)、asIntN/asUintN 2026-08-12 02:23:27 +08:00
pjh123 a84738cd60 test: 最小 BigInt 落地后从排除列表移除 BigInt 2026-08-12 01:40:18 +08:00
pjh123 bbca9a5c3a feat: PlainDateTime until/since 按规范舍入语义实现 2026-08-12 01:18:34 +08:00
pjh123 47733ae224 feat: PlainDateTime add/subtract 算术 2026-08-11 23:14:42 +08:00
pjh123 fbb3500129 feat: PlainDateTime toString 选项与 ISO 区间解析 2026-08-11 23:07:41 +08:00
pjh123 3cf2c792ba feat: Temporal PlainDateTime 转换与序列化 2026-08-11 22:29:00 +08:00
pjh123 66712e05a5 feat: Temporal PlainDateTime 基础实现 2026-08-11 21:32:15 +08:00
pjh123 90a162d39a feat: Temporal Instant 时区转换 2026-08-11 20:54:25 +08:00
pjh123 b982e964a7 feat: Temporal Instant 序列化 2026-08-11 19:14:24 +08:00
pjh123 59da42fea9 feat: Temporal Instant 差值实现 2026-08-11 18:22:21 +08:00
pjh123 4e2d00fd0f fix: 嵌套内置对象寄存器映射同步 2026-08-11 18:06:42 +08:00
pjh123 e6d70664d3 fix: 模板表达式高位寄存器槽保留 2026-08-11 17:17:30 +08:00
pjh123 7ccedfb0b1 feat: Temporal Instant round 实现 2026-08-11 16:57:53 +08:00
pjh123 1d45a34973 fix: 闭包捕获解构函数参数 2026-08-11 16:57:13 +08:00
pjh123 abc794709e feat: Temporal Instant 算术精确实现 2026-08-11 15:55:05 +08:00
pjh123 930bfa1ac9 feat: Temporal Instant 工厂精确实现 2026-08-11 15:21:28 +08:00
pjh123 33dae0a8c2 fix: 闭包捕获对象键与循环变量绑定 2026-08-11 14:17:45 +08:00
pjh123 0d75e901ff fix: Temporal 时长输入校验 2026-08-11 13:11:51 +08:00
pjh123 b9686e000d feat: Temporal 时长差值与纯日期差值 2026-08-11 12:38:31 +08:00
pjh123 2287f9f4ce fix: 寄存器分配支持高位寄存器槽 2026-08-11 12:37:56 +08:00
pjh123 fab06a233d feat: Temporal ISO 日期解析器(basic/extended/扩展年)与 harness 解锁 2026-08-11 00:20:45 +08:00
pjh123 f96c351cf8 fix: builtin 槽恒等预着色号 >253 时改分配自由色,修复大函数晚引用全局报 too many registers 2026-08-11 00:19:29 +08:00
pjh123 b44bc3d7f2 feat: 新增 DEFINE_ACCESSOR_DYNAMIC opcode 支持计算键对象访问器 2026-08-10 23:28:18 +08:00
pjh123 078688070d feat: 实现最小 BigInt 子集(字面量/算术/比较/构造器,Temporal 前置) 2026-08-10 23:02:31 +08:00
pjh123 9e26a13655 feat: Temporal 解锁 + PlainDate 补齐日期派生字段与 add/subtract/equals/compare 2026-08-10 21:23:00 +08:00
pjh123 973778f181 fix: 块级 let/const/class 预声明 + TDZ 读取运行时抛 ReferenceError 2026-08-10 21:07:39 +08:00
pjh123 a968b89658 fix: 异常兜底路径经 create_from_text 恢复错误类型(不塌缩普通 Error) 2026-08-10 20:19:51 +08:00
pjh123 9ba5821568 fix: Object 内置方法 ToObject 装箱(原始值不再误抛 TypeError) 2026-08-10 20:08:40 +08:00
pjh123 dc6471f96e fix: await 经 promise_resolve 按 constructor 查询包装被等待值 2026-08-10 20:00:52 +08:00
pjh123 924b8fd4e0 feat: Temporal 最小子集(Temporal.Now/Instant/PlainDate/PlainTime) 2026-08-10 18:18:39 +08:00
pjh123 8a53bfb584 feat: 编译管线/类型层 crate 补全多级日志宏 + 关键路径日志 2026-08-10 17:56:28 +08:00