爱特每羊队
|
2f8f1c3b71
|
feat: with 语句、成员位/移位复合赋值、CALL_NATIVE 无目标修复
with 语句:新增 emit 支持,with 体内自由标识符动态解析(对象属性优先,
回退外层),支持读/写/复合赋值/自增自减/delete/var 初始化动态化,
TO_OBJECT opcode 处理原始值对象,顶层 this 绑定全局对象。
复合赋值:新增 6 个 COMPOUND_MEMBER_BIT_* opcode 支持成员位/移位复合赋值,
修复 computed member 复合赋值覆盖 bug,with 内标识符复合赋值动态化。
CALL_NATIVE:实现全局 isNaN/isFinite 并绑定,用户覆盖 builtin 名时
回退通用调用路径而非报错,局部遮蔽 builtin 名走普通 CALL。
test262: with 34 pass(基线 0),compound-assignment 320 pass(基线 223)
|
2026-08-09 07:22:46 +08:00 |
|
爱特每羊队
|
eefdfc0d2c
|
feat: RegExp.prototype 实现 Symbol.match/replace/search/split/matchAll
|
2026-08-08 22:33:32 +08:00 |
|
爱特每羊队
|
651b368528
|
fix: String replace/replaceAll 函数 replacer 路径(含 global 全替换)
|
2026-08-08 22:05:23 +08:00 |
|
爱特每羊队
|
3424321051
|
fix: TypedArray 元素写入进 buffer + BYTES_PER_ELEMENT 属性
|
2026-08-08 21:41:33 +08:00 |
|
爱特每羊队
|
afffcff46e
|
feat: Object.create/defineProperties 完整描述符管线(复用 ToPropertyDescriptor)
|
2026-08-08 20:59:47 +08:00 |
|
爱特每羊队
|
d5ce35f4ba
|
fix: Number::toString 符合 ECMA-262(1e21 指数、radix RangeError、parseInt/Number 字符串解析)
|
2026-08-08 20:39:55 +08:00 |
|
爱特每羊队
|
c3322d6a3c
|
feat: implement String.fromCodePoint, codePointAt UTF-16 indexing, isWellFormed/toWellFormed
|
2026-08-08 20:05:49 +08:00 |
|
爱特每羊队
|
185ecf0c53
|
fix: RegExp flag 全量透传(u/s/y/d 生效,\p{...} unicode 属性可用)
|
2026-08-08 18:05:59 +08:00 |
|
爱特每羊队
|
504ffaf126
|
feat: Set/Map 构造器接收可迭代实参 + size 访问器 + ES2024 set-methods
|
2026-08-08 18:01:00 +08:00 |
|
爱特每羊队
|
3a8bf56a68
|
fix: 全量单测修复(flatten 健壮性 + 测试链路补 flatten + 断言对齐规范)
|
2026-08-08 16:03:24 +08:00 |
|
爱特每羊队
|
6e5bbe718b
|
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 |
|
爱特每羊队
|
a814dd0700
|
fix: try/finally 支持 break/continue/return 穿越 finally(completion 机制)
|
2026-08-08 12:38:25 +08:00 |
|
爱特每羊队
|
6c7b10d6c5
|
feat: 对象字面量 spread({...obj} 展开可枚举自有属性)
|
2026-08-08 11:24:09 +08:00 |
|
爱特每羊队
|
2777b00c82
|
feat: 调用实参 spread(f(...args) / new F(...args) / super(...args))
|
2026-08-08 10:33:16 +08:00 |
|
爱特每羊队
|
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 |
|