Commit Graph

730 Commits

Author SHA1 Message Date
爱特每羊队 ea86a2c0ac feat: 数组字面量 spread([...a] 展开为 for-of 追加) 2026-08-08 09:29:37 +08:00
爱特每羊队 a82e4cd204 feat: Function 构造器(动态编译字符串生成函数) 2026-08-08 03:07:26 +08:00
爱特每羊队 ce86fcfb73 fix: delete 真正删除属性(shape 链重建 + 数组元素 hole 标记)
字节码 delete 原先只清值为 undefined,属性残留在 shape 链,hasOwnProperty/
keys/枚举仍可见。统一走共享 delete_own_property(与 Reflect.deleteProperty
一致):
- 命名属性经 shape 链重建移除,数组重建前保存并恢复元素区
- 数组下标元素标记为 hole(PropMetaEntry.hole),length 不变,
  存在性检查(resolve_property/get_own_property_slot/ordinary_get/for-in)
  判 hole,重赋值自动清除标记
- 不可配置属性统一返回 false(sloppy 语义,strict 抛错留待 emit 追踪严格模式)
- set_or_create_prop_value 数组下标键路由元素区,修复 delete 后重赋值误入
  shape 链

test262 Object +212 PASS/-102 FAIL,Array +149 PASS/-60 FAIL,无回归。
2026-08-08 02:25:13 +08:00
爱特每羊队 e91d8ecaf2 fix: defineProperty 描述符字段按 ToPropertyDescriptor 语义解析(原型链 + accessor getter) 2026-08-08 01:39:12 +08:00
爱特每羊队 3b13b111c4 fix: defineProperty 内部错误不触发 unwind + enumerable/configurable 缺省回填 2026-08-08 01:18:21 +08:00
爱特每羊队 d36949aa00 fix: Error 家族构造器可构造标志 + 数组回调异常透传原始对象 2026-08-08 00:19:05 +08:00
爱特每羊队 a206d0ef82 feat(vm): arguments 对象绑定(CREATE_ARGUMENTS + 帧实参 spill 区) 2026-08-08 00:01:22 +08:00
爱特每羊队 820de00d79 fix(vm): 数组元素写入越过元素区时搬移属性区 + defineProperty 数组索引走元素区 2026-08-07 23:20:32 +08:00
爱特每羊队 f0f45c4ae0 fix: Object.prototype.toString 类型标签([object Array] 等)+ array_push 维护数组元素数 2026-08-07 22:06:09 +08:00
爱特每羊队 ca938e0655 fix(vm): 数组属性存储机制(array_prop_count 显式元素数 + shape 属性偏移 + IC/prop_forge 对齐) 2026-08-07 21:53:45 +08:00
爱特每羊队 bf4d4a508d feat(regexp): 迁移到 regress 引擎(backref/lookaround/命名组/v-flag)+ 手动 \$ 展开 replace + exec 捕获组数组 2026-08-07 21:29:22 +08:00
爱特每羊队 cbb139e956 fix: native 构造器可构造性标志(OBJ_TYPE_CONSTRUCTOR)+ Reflect.construct/new 校验 2026-08-07 20:44:04 +08:00
爱特每羊队 fec6b68ecb fix(emit): 括号包裹的匿名函数参与 name 推断(is_anonymous_function_definition) 2026-08-07 20:27:49 +08:00
爱特每羊队 b64849cdb0 chore(test262): 收窄运行时 skip(删除断言失败消息误当 skip)+ 正则依赖 lock 2026-08-07 20:19:44 +08:00
爱特每羊队 b49ac29414 fix(emit): 默认参数/解构默认值函数名推断(SetFunctionName) 2026-08-07 20:15:35 +08:00
爱特每羊队 5b70a21832 fix(emit): 赋值表达式与对象属性函数名推断(function/class/arrow) 2026-08-07 20:10:06 +08:00
爱特每羊队 b291a68528 fix(emit): 变量声明赋值 class 表达式参与函数名推断 2026-08-07 20:05:43 +08:00
爱特每羊队 0d42207a1c fix(regexp): 正则字面量编译期语法校验(非法抛 SyntaxError)+ CREATE_REGEXP 保留错误类型 2026-08-07 20:02:11 +08:00
爱特每羊队 e815a56fb9 fix(string): String.prototype 方法 null/undefined this 抛 TypeError 2026-08-07 19:57:24 +08:00
爱特每羊队 ca619d7c06 fix(object): Object() 对原始值创建 boxed 对象 + String 方法 this 完整转换 2026-08-07 19:52:35 +08:00
爱特每羊队 8ac630b4e0 fix(string): String() 对象参数走 ToString 完整转换(数组→join 等) 2026-08-07 19:39:18 +08:00
爱特每羊队 82e15f32f6 fix(emit): 参数默认值 emit 前完成捕获分析 + 类方法支持 upvalue 捕获 2026-08-07 19:18:38 +08:00
爱特每羊队 11852e76af fix(emit): 闭包捕获/upvalue 分析纳入参数默认值表达式(含嵌套函数声明) 2026-08-07 19:04:25 +08:00
爱特每羊队 45925b8701 fix(vm): SUPER_CALL 后构造实例 proto 设为 new.target.prototype(子类化内建) 2026-08-07 18:41:34 +08:00
爱特每羊队 f015e1c428 fix(emit): 闭包捕获分析补扫 catch 参数解构模式的表达式引用 2026-08-07 18:32:05 +08:00
爱特每羊队 eebee1b624 feat(typedarray): 实现整数索引读取与 for-of 迭代(get_iterator 支持) 2026-08-07 18:10:19 +08:00
爱特每羊队 33690fb803 fix(vm): REST_OBJECT 提前消费 ext 字防 ToObject 早返回后 pc 错位 2026-08-07 18:00:59 +08:00
爱特每羊队 3dee6fa21c fix(vm): REST_OBJECT 对原始类型 ToObject(number/boolean/symbol 空对象,string 索引字符) 2026-08-07 17:50:49 +08:00
爱特每羊队 4a0de6212c fix(regalloc): builtin 槽 vreg 预着色恒等排除出可分配集防 prologue 覆写 2026-08-07 17:40:09 +08:00
爱特每羊队 accc677769 fix(emit): 顶层模块 param_layout.base 改 0 防父槽误判 + regalloc/VM 诊断日志 2026-08-07 17:13:57 +08:00
爱特每羊队 70536e3e2f fix(emit): catch 参数支持解构 pattern(数组/对象/默认值) 2026-08-07 16:27:48 +08:00
爱特每羊队 9a47ad7c1f fix(vm): 闭包捕获 let/const 的 cell 未初始化(TDZ)读取抛 ReferenceError 2026-08-07 16:19:35 +08:00
爱特每羊队 e9d1bc822c fix(emit): LOAD_UPVALUE 的 uv_idx 改 Imm 编码避免被 RegAlloc 重写 2026-08-07 16:09:17 +08:00
爱特每羊队 04a6aa10f7 feat(emit): 实现默认参数(形参 initializer 与解构默认值) 2026-08-07 15:26:25 +08:00
爱特每羊队 6ed0d42489 fix(vm): 数组元素访问器属性触发 getter 并透传异常 2026-08-07 15:05:44 +08:00
爱特每羊队 f4d95f373e fix(vm): 链式 upvalue 捕获支持多层嵌套函数引用深层变量 2026-08-07 14:56:51 +08:00
爱特每羊队 543f88ce86 fix(vm): 闭包 upvalue cell 占位稳定化修复错读调用方表 2026-08-07 14:38:47 +08:00
爱特每羊队 4bc6db4fa4 fix(vm): Function.prototype.call 的 native 错误转 JS 异常可被捕获 2026-08-07 13:45:39 +08:00
爱特每羊队 ddb3ba1990 chore(deps): 锁定 oxc_semantic 依赖 2026-08-07 12:27:32 +08:00
爱特每羊队 c8979660cb fix(vm): 函数 name 属性与 harness 重复 Test262Error 定义 2026-08-07 12:22:59 +08:00
爱特每羊队 be9b96dfae feat(parser): 引入 oxc_semantic 早期错误检查与 onlyStrict 注入 2026-08-07 12:04:46 +08:00
爱特每羊队 dd291250e2 feat(iter): 迭代协议支持对象字面量 computed key 与 upvalue 捕获 2026-08-07 10:49:24 +08:00
爱特每羊队 d1675c217d fix(vm): 子模块全局扁平化根治逃逸闭包上下文错位 2026-08-07 10:49:15 +08:00
爱特每羊队 4fa21d85d8 fix(vm): CREATE_CLOSURE 越界改运行时错误防进程中断 2026-08-07 00:42:33 +08:00
爱特每羊队 f1362f86e5 fix(vm): new 构造入口补齐 sub_modules 上下文切换 2026-08-07 00:38:50 +08:00
爱特每羊队 c59518e899 fix(vm): inline 回调支持 upvalue 闭包上下文 2026-08-07 00:23:35 +08:00
爱特每羊队 f57cb0f051 fix(vm): new 构造 cell_stack 失衡与子模块 immutables 缓存失步 2026-08-07 00:15:09 +08:00
爱特每羊队 328b8a3ddc docs: 补充注释与格式化 2026-08-06 23:10:27 +08:00
爱特每羊队 4e0fd762c2 refactor(regalloc): 清除 color() 冗余干涉图构建 + use_points 改用精确 use 判定
- color() 入口移除无用的 graph::build(run 内重建),删掉 _graph 参数
- graph.rs reg_count 改名 inst_count(实为指令数)
- use_points 由 live_before 活集改为 inst.use_regs() 精确 use 点,消除冗余 UNSPILL,spill 压力测试 38s→6s
2026-08-06 20:41:01 +08:00
爱特每羊队 d8aa902ff0 fix(regalloc): nested 子模块引用父槽无预着色保护致读错物理槽(B014)
子模块 alloc 时引用父槽的 LOAD_VAR.a/STORE_VAR.rd 被当作自身 vreg 染色移走,
父侧 collect_escaped 只保护父不移动槽,子侧无对称保护。以 param_layout.base
(inherited_reg_start 分界)识别父槽引用并预着色恒等,spill 自由色排除。

新增 nested_parent_slot_regress 回归测试(field/method + 高压力变量),
workspace 全绿 + clippy 干净。
2026-08-06 20:34:55 +08:00