Commit Graph

84 Commits

Author SHA1 Message Date
pjh123 e33e7a1eb7 feat: PlainMonthDay/PlainYearMonth 对象地基——构造器/getter/toString/toJSON 注册与 BuiltinWorld 接线 2026-09-12 03:42:48 +00:00
pjh123 b17119ce16 fix: 脏重建方法 wrapper/构造器/global 槽跨轮复用迁移——FnWrapperKey 四分件键(加 label 消解同名原型 next/return/throw 碰撞)登记表继承止 S2 每轮 wrapper 无界累积,global 槽原位更新堵住旧构造器滞留 UAF 与每轮 +3 槽无界增长 2026-09-11 18:06:19 +00:00
pjh123 ee32b2c682 fix: 选择性重建收尾重指保留对象 proto 槽并恰好释放一次被替换旧 P 对象属性区——含保活钉住对属性区,本体钉保留作重指遗漏兜底 2026-09-11 13:34:47 +00:00
pjh123 fa4ee6861b refactor: BuiltinWorld P 字段枚举抽统一入口 all_p_fields——session 收尾清单单点维护,新增字段不再漏行 2026-09-11 13:32:23 +00:00
pjh123 6268275689 docs: 绑定层对象登记表字段注释对齐选择性重建继承模型(并入新 world 后仍由 session 收尾统一释放) 2026-09-11 11:26:48 +00:00
pjh123 9493b889b6 fix: 选择性重建后被替换家族的属性区无人释放——重建点按脏标记恰好释放一次 2026-09-11 08:50:59 +00:00
pjh123 e2e68fe0ad fix: full_reset 脏重建后方法 wrapper 原型链悬空——旧 Function/Object 对保活 2026-09-11 08:50:45 +00:00
pjh123 227dfe008f fix: test262 runner 进程 RSS 无界增长——session 收尾统一释放内建裸堆区/upvalue 别名 + 每测试分配上限 256MiB(任务 116)
- 泄漏修复:KernelSession 收尾(teardown_intrinsic_protos/free_session_upvalues)
  释放内建对象 Box::into_raw 裸堆区(release_raw_heap 四区置空幂等)与
  session upvalue 原件/晋升克隆别名去重释放;bindings 原生盒负载边、
  session_gc 边记录、vm_props 属性区同步收尾
- 失控测试封顶:runner kernel max_alloc_bytes=256MiB(dispatch 采样口径
  run_alloc_bytes/run_alloc_bytes_full),超限计 memory-limit 失败而非拖垮
  进程 RSS(arena 高水位 GB 级 × 多 worker = 宿主 OOM)
- 归属:RSS 泄漏 pre-existing(HEAD 无 WIP 同现);identifiers escaped
  unicode 挂死族另立 B132(pre-existing,supervise 超时自愈)
- 验证:build/clippy/四 crate 测试全绿零新增告警;language 前 5000 测试
  单窗峰值 330MB(旧 ~4.5MB/测试 单调增长→88GB OOM 签名消失),
  窗口间峰值 0.17-1.6GB 有界、逐测试释放回基线
2026-09-11 03:55:59 +00:00
pjh123 c7b54cb181 feat: String.raw/groupBy/withResolvers/f16round/__defineGetter__ 低垂果实批量实现 2026-08-22 10:26:00 +08:00
pjh123 c514ab35a3 feat: 实现 console 全局对象 (log/warn/error/info/debug/trace) 2026-08-21 22:29:21 +08:00
pjh123 76504fa963 refactor: 资源栈类型注释改为纯语义描述 2026-08-16 19:23:10 +08:00
pjh123 fbfa3f5ccf feat: DisposableStack/AsyncDisposableStack 对象类型标签与两栈原型字段入世界 2026-08-16 19:14:48 +08:00
pjh123 e100bfb8b4 feat: SuppressedError 内置错误实现(三字段属性序 + 构造器接线) 2026-08-16 19:04:09 +08:00
pjh123 9f13d107ec feat: Iterator helpers 基建——Symbol.dispose 注册与 %IteratorHelperPrototype% 2026-08-16 14:44:47 +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
pjh123 528f893e63 fix: 错误对象属性枚举性、toString 标签与构造器调用语义
- message/name 属性改非枚举(CreateNonEnumerableDataPropertyOrThrow),
  Object.keys/for-in/JSON.stringify 不再泄漏错误信息
- 新增 Error 家族对象标签,Object.prototype.toString 输出 [object Error],
  含子类型与用户子类(沿原型链判定)
- Error 家族构造器补 length=1,函数调用忽略 this 一律新建对象
- JSON.stringify 序列化仅含可枚举自身属性(规范 EnumerableOwnPropertyNames)
2026-08-15 21:30:28 +08:00
pjh123 b479fb4a4d fix: rebuild 时泄漏保活旧 function/object 家族消除 wrapper 悬垂原型 UAF 2026-08-15 04:05:16 +08:00
pjh123 62991cfa4b feat: 新增 Symbol.species well-known symbol 绑定(Symbol.species 解析/键槽/内建对象) 2026-08-12 12:50:53 +08:00
pjh123 c287708ddc feat: 补 entries/keys/findLastIndex/toSorted/toReversed/toSpliced/with 2026-08-12 03:42:42 +08:00
pjh123 aa51d57660 feat: BigInt 构造器 ToPrimitive 语义、toString(radix)、asIntN/asUintN 2026-08-12 02:23:27 +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 b9686e000d feat: Temporal 时长差值与纯日期差值 2026-08-11 12:38:31 +08:00
pjh123 078688070d feat: 实现最小 BigInt 子集(字面量/算术/比较/构造器,Temporal 前置) 2026-08-10 23:02:31 +08:00
pjh123 924b8fd4e0 feat: Temporal 最小子集(Temporal.Now/Instant/PlainDate/PlainTime) 2026-08-10 18:18:39 +08:00
pjh123 a5a910a24e feat: for-await-of + Symbol.asyncIterator + AsyncFromSyncIterator 2026-08-10 03:21:37 +08:00
pjh123 cd1bc206a5 fix: symbol 作属性键独立编码,不再塌缩为空串 2026-08-09 16:09:49 +08:00
pjh123 2bebd822d0 feat: TypedArray 第一批解锁(%TypedArray% 构造器、原型访问器、of/from、bind 绑参、harness) 2026-08-09 12:26:31 +08:00
pjh123 6c79dbb21c feat: class 私有成员语义(字段/方法/访问器 + brand 检查 + 契约修复) 2026-08-09 11:08:36 +08:00
pjh123 826d9fd0a2 feat: RegExp.prototype 实现 Symbol.match/replace/search/split/matchAll 2026-08-08 22:33:32 +08:00
pjh123 71c9f78338 feat: 补 String.fromCodePoint/codePointAt/isWellFormed/toWellFormed 2026-08-08 20:05:49 +08:00
pjh123 0bc8c847b5 feat: 实现 Array.from 与 Array.of 静态方法
- Array.from:可迭代(迭代协议)与 array-like 双路径,支持 mapFn/thisArg,
  构造器 this 支持(new C),CreateDataPropertyOrThrow 写入,IteratorClose
- Array.of:以参数为元素,this 构造器 + CreateDataProperty + Set length
- iterator.rs:get_iterator 改为 Option 返回,新增 try_make_iterator 与
  peek_iterator_method(GetMethod 只读判定,不调用迭代器)
2026-08-08 13:13:08 +08:00
pjh123 31e28a03a6 docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
pjh123 263fd255b6 docs: 添加 Rustdoc 注释 2026-08-05 21:46:47 +08:00
pjh123 2f7fe3cedf fix: 修复不符合 JS 语义约束的错误行为测试 2026-08-05 15:44:22 +08:00
pjh123 9f3e353f56 style: 自动格式化 2026-06-30 15:11:11 +08:00
pjh123 22aae05749 fix: Function .length/.name 补 writable:false、enumerable:false 描述符属性 2026-06-30 12:42:57 +08:00
pjh123 fab4b2d237 perf: indexOf/includes/lastIndexOf 支持 ArrayLike,补 .name/.length 属性
- Array indexOf/includes/lastIndexOf:ArrayLike 接收者 + fromIndex + SameValueZero
- Function.prototype 方法补 .length 属性,经 bind_method_static 绑定
- Error 对象补 .name 属性,经 create_kind_error 生成
- 构造器函数补 .name 与 .length,经 make_pair / bind_constructor! 绑定
2026-06-30 12:42:57 +08:00
pjh123 b18654fe5f feat: Symbol.hasInstance 支持 instanceof 双路径分派 2026-06-27 22:53:04 +08:00
pjh123 365b0e58f6 fix: Error原型属性、规范toString、V8风格stack trace 2026-06-27 20:13:17 +08:00
pjh123 0b3668d91a fix: 修复 String 原型方法边界条件 2026-06-27 19:45:18 +08:00
pjh123 2da5e2f820 feat: 注册 Symbol.toPrimitive well-known symbol 2026-06-27 10:30:25 +08:00
pjh123 fc59505116 feat: 为内核构造、BuiltinWorld 初始化、ShapeForge/StringForge/CodeForge 添加结构化日志 2026-06-26 21:09:36 +08:00
pjh123 f0f7cbc91c refactor: 将 BuiltinSnapshot 重构为数组并引入 BuiltinId 枚举 2026-06-26 16:27:49 +08:00
pjh123 ddffa8504e refactor: 字符串值改用 JsString 指针表示,键与字面量改用 PermInterner 2026-06-24 20:15:15 +08:00
pjh123 1815958b11 refactor: 清理未使用符号,合并bind_constructor宏,统一init/rebind绑定列表,bind_number改为表驱动 2026-06-24 12:12:44 +08:00
pjh123 f7834df245 fix: 修复数组回调与原始值属性访问 2026-06-17 12:59:11 +08:00
pjh123 fec34de2a5 feat: 添加 BuiltinWorld 选择性重建 2026-06-15 21:11:53 +08:00
pjh123 391566ba5b feat: 实现for-of与解构赋值 2026-06-14 23:45:12 +08:00