pjh123
|
3d7e8edd75
|
refactor: emit 冗余标志参数收敛为内部推导
|
2026-10-12 16:30:51 +00:00 |
|
pjh123
|
26441edcbc
|
perf: 类私有名作用域容器改哈希表,点查由线性扫描改 O(1)
|
2026-10-12 04:01:14 +00:00 |
|
pjh123
|
5fc898906a
|
feat: 私有名方法名加井号前缀加嵌套类独立作用域
|
2026-10-10 03:15:38 +00:00 |
|
pjh123
|
4030cb4224
|
feat: with 回退未声明名写落隐式全局
|
2026-10-09 17:17:49 +00:00 |
|
pjh123
|
66735f802f
|
refactor: string_forge 与命名空间绑定常量迁入 oxide_types 中立层
|
2026-10-08 05:03:05 +00:00 |
|
pjh123
|
75810cb8e7
|
fix: for 头名回填加作用域深度门控防体内同名遮蔽覆写头 cell
|
2026-10-05 17:30:42 +00:00 |
|
pjh123
|
1144b07534
|
feat: 捕获 cell 换键 for 头按绑定身份取索引
|
2026-10-05 16:21:42 +00:00 |
|
pjh123
|
34e22c5519
|
feat: 捕获 cell 按绑定身份换键
|
2026-10-05 14:32:42 +00:00 |
|
pjh123
|
5239ff74b8
|
feat: 捕获 cell 换键地基——绑定增 cell_idx 并解析点按绑定身份取索引
|
2026-10-05 12:01:49 +00:00 |
|
pjh123
|
631d430772
|
fix: 自增减发射面 a 槽别名写改可见活寄存器序列,防冲毁活值
|
2026-09-26 21:17:47 +00:00 |
|
pjh123
|
e29e74341e
|
fix: for 头与解构赋值写点补 upvalue 与 cell 臂,捕获预扫补赋值头
|
2026-09-24 15:35:21 +00:00 |
|
pjh123
|
39183f449c
|
fix: 模块写穿按绑定槽过滤并覆盖更新赋值路径
|
2026-09-18 00:32:12 +00:00 |
|
pjh123
|
ed65b5282f
|
feat: 模块命名空间枚举读活值并支持写穿
|
2026-09-18 00:02:21 +00:00 |
|
pjh123
|
1e8861e14f
|
fix: C 风格 for 词法头建立独立每迭代环境
|
2026-09-17 21:21:36 +00:00 |
|
pjh123
|
9307e0ecaa
|
docs: 修正私有槽与链元素注释的失实措辞
|
2026-09-17 16:09:11 +00:00 |
|
pjh123
|
0b33f4253a
|
docs: 补全 emit 小文件文档并改写类注释
|
2026-09-17 15:59:13 +00:00 |
|
pjh123
|
c7c42c09f1
|
docs: 修正内置名写点注释的零动作表述
|
2026-09-17 15:48:00 +00:00 |
|
pjh123
|
24cc61d51e
|
docs: 统一循环与声明写点的注释措辞
|
2026-09-17 15:37:12 +00:00 |
|
pjh123
|
0c750fa74c
|
emit/kernel/vm/builtins: 常量池键编码 + 键物化真实串值面 + 16 回归钉——emit 侧字面量/键/模板统一改存无标志键编码:lone_surrogates 字面量与模板 cooked 按 oxc marker 解码还原真单元序列(FFFD+hex4≠fffd→surrogate 单元、FFFD+fffd→FFFD、FFFD+非 hex 防御臂),无标志串 encode_key(encode_utf16()) 入池(BMP 无 FFFD 键恒等 = 现值,池条目零漂移),string_pool 集中收口 9 处入池点;interner string_ptr 由单元物化(含孤立→FlatU16、良形→Flat);键物化面改真实 JS 串值(key_si_to_js_value 经 decode_key,Object.keys/ownKeys/entries/Reflect.ownKeys/json reviver 键同源;整数键反解数字串);批内修复三处子集 A/B 差分撞出回归:replace $n 展开按 spec GetSubstitution 重写(digitCount 2/1、越界回退 1 位、越界含 $0 原文输出,node 13 用例对照钉住)、String 构造器 Symbol 路径按 new.target 分流(String(sym)→描述串、new String(sym)→TypeError,恢复 to_string_for_string_constructor)、padStart/padEnd 未给 fill 时按单空格补(原 lossy 串取 'un' 杂质,pre-existing 一并归零);迭代器 dispose 钉改回真值断言(String(Symbol.dispose) 现合法返回描述串);property-escapes 613/0/0(B167 基线 582/31/0,31 归零)、String 子集 963/250/10 vs BASE 949/264/10(14 修 0 回归)、for-of +1(string-astral-truncated)、五 crate 113 套件 2680/0、clippy/fmt 零新增(JSON 面与全量 test262 收尾在 131.2 后续 commit 闭合)
|
2026-09-14 03:04:23 +00:00 |
|
pjh123
|
c564ec539b
|
emit/kernel: 可写 builtin 全局标识符写双写全局属性,三常量描述符对齐规范 c:false,受限词法名集补 eval
- 谓词注册表化:targets_readonly_builtin 解析条件抽公共助手,新增
targets_writable_builtin / is_writable_builtin_global(BUILTIN_GLOBALS
减只读三常量派生,不复制名单)+ 只读/可写划分漂移守卫单测
- 12 个赋值族写点(简单/复合/更新/逻辑赋值、解构两臂、for-in/for-of
标识符目标)补双写臂:STORE_VAR 后 0x98 同步全局对象属性(既有可写
属性原地更值、保 e/c 位),裸读镜像与 globalThis 反射不失步
- for-in 头 tier 写点移除 builtin 名例外:可写 builtin 名迭代键照规范
覆写全局属性(三常量仍由拦截臂跳过)
- 三常量(undefined/NaN/Infinity)全局描述符 configurable 翻正为
false:delete 拒绝、属性保留,描述符读同步
- 脚本顶层受限词法名集 3→4(补 eval,静态受限臂):let/const/class
eval 顶层声明编译期 SyntaxError
- 配套钉:7 处既有钉随 c 位翻正 + 2 枚 for-in/eval 形态钉反转,新增
global_builtin_writable_tests(16 钉:双写六形态 + 遮蔽/strict/eval/
宿主名面)
test262 子集:built-ins/global 29/29、三常量族 20/20、11.13.1-4 7/7、
assignmenttargettype plain 8/8 全绿;language/global-code 17 失败文件
双树单跑一致(pre-existing);annexB assignmenttargettype 7 个 parse
error 为既有解析器缺口
|
2026-09-13 10:46:10 +00:00 |
|
pjh123
|
bf08803071
|
fix: 顶层 var 声明带初始化撞不可写全局用户属性 strict 抛 TypeError——用户名声明处写点改 session 解析 PutValue 语义,builtin 名保 GDI 写点;序言缺失分支全局不可扩展两模式对齐抛 TypeError
|
2026-09-12 21:36:10 +00:00 |
|
pjh123
|
44c16cab8a
|
fix: 顶层 var 读写直连全局对象属性单一真值——GDI 序言 + 声明处同步删除,类原型 session 直分防晋升克隆 identity 分裂,自增减 int 保持
|
2026-09-12 15:48:32 +00:00 |
|
pjh123
|
430231236d
|
fix: 未声明标识符读写混合解析——读侧登记的全局槽写不穿透全局对象
未声明名由首次引用侧登记全局槽:读侧(LOAD_GLOBAL 槽)登记后,
后的写点只查写侧集合,补全局对象属性写被跳过——条件读走全局
属性、写落脚本内寄存器,脱节成死循环;更新式/复合式/逻辑赋值的
旧值又取自入口快照槽(读从不刷新槽),先读后写算出陈旧值。
写点隐式全局判定改读写登记集合取并(7 处),RMW 旧值读前经
LOAD_GLOBAL_TYPEOF 从全局对象取当前值(缺失按 undefined,sloppy
未解析引用 GetBaseValue 语义),读侧登记集合随继承绑定传入子
函数 ctx。
|
2026-09-11 10:14:56 +00:00 |
|
pjh123
|
b77a9322e5
|
fix: 不可写全局内置(undefined/NaN/Infinity)寄存器镜像写编译期拦截——sloppy 静默 no-op、strict 抛 TypeError
|
2026-09-09 23:17:01 +08:00 |
|
pjh123
|
d9c2847730
|
fix: sloppy 未声明写隐式全局创建 + strict ReferenceError——DEFINE_GLOBAL_PROP_C 0x98
|
2026-09-09 18:44:38 +08:00 |
|
pjh123
|
355230b745
|
fix: REPL 变量跨轮次丢失 —— let/const 脚本顶层写全局对象
|
2026-08-21 22:44:48 +08:00 |
|
pjh123
|
c5c4916a8f
|
fix: 绑定侧解构计算键参与闭包捕获遍历防静默错值
|
2026-08-16 14:30:20 +08:00 |
|
pjh123
|
ef3882ac55
|
feat: 解构计算键通用 fallback 支持任意键表达式
|
2026-08-16 13:49:17 +08:00 |
|
pjh123
|
fe8892079e
|
chore: 全仓 rustfmt 格式化归拢
|
2026-08-16 12:50:36 +08:00 |
|
pjh123
|
26db7ae07c
|
fix: TDZ 写与 const 赋值检查补全(含闭包捕获路径)
|
2026-08-15 21:55:43 +08:00 |
|
pjh123
|
6a39bccc94
|
perf: 常量字符串键计算成员折叠走 IC 静态路径
|
2026-08-14 10:20:32 +08:00 |
|
pjh123
|
b32d525141
|
feat: emit 模块编译(快照式链接:依赖子模块闭包 + import/export 域)
- emit_program_module:模块顶层编译(is_global_scope=false,顶层 this undefined 由 VM 按标志绑定)
- emit_module_into_ctx:预声明/闭包分析识别 export 包裹声明与 import 绑定
- 依赖收集:import/re-export/star 的 source 去重、循环检测、json/text 数据模块
- 导入绑定初始化:__moduleLinkGet 链接期检查;self-import 别名语义(export 处回写)
- export 域:声明/重导出/export */export default 就地注册命名空间
- re-export 链接检查移至 prelude(先于 body 求值)
- emit_module_call 参数打包连续寄存器(CALL_NATIVE 契约)
- CompileCtx 增 module_ns_reg/module_dep_ns_regs/self-import 映射
- 拆分 declaration helper(export 声明复用);function/class 表达式 emitter 提升可见性
|
2026-08-12 17:37:33 +08:00 |
|
pjh123
|
0c22a0e968
|
fix: class 类名绑定经 dedicated cell 捕获(C===Cv 恒等)+ upvalue 写入 const guard(getter 赋值抛 TypeError)
|
2026-08-12 17:30:28 +08:00 |
|
pjh123
|
973778f181
|
fix: 块级 let/const/class 预声明 + TDZ 读取运行时抛 ReferenceError
|
2026-08-10 21:07:39 +08:00 |
|
pjh123
|
9f6f694be9
|
fix: 私有字段 brand 检查 own 槽(字段不跨原型,规避 cell 值缺陷)
|
2026-08-10 11:23:52 +08:00 |
|
pjh123
|
80cb1c2feb
|
feat: 循环 let/const 每迭代绑定(MAKE_CELL_FRESH + 解构捕获修复)
|
2026-08-10 10:18:39 +08:00 |
|
pjh123
|
e03ec0f635
|
fix: 脚本顶层 var/function 声明落 globalThis(DEFINE_GLOBAL_PROP 非可配置数据属性)
|
2026-08-10 03:52:17 +08:00 |
|
pjh123
|
36fb61fc74
|
feat: 解构模式语义补齐(REST 枚举/getter/computed 排除、IteratorClose、RegAlloc def 干涉、for-in 捕获遮蔽)
|
2026-08-09 15:01:31 +08:00 |
|
pjh123
|
6c79dbb21c
|
feat: class 私有成员语义(字段/方法/访问器 + brand 检查 + 契约修复)
|
2026-08-09 11:08:36 +08:00 |
|
pjh123
|
8669f55470
|
feat: class 公有字段 define 语义 + computed key 类定义期求值一次
|
2026-08-09 09:35:24 +08:00 |
|
pjh123
|
5611d90ad0
|
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 |
|
pjh123
|
ab979dc47b
|
feat: 调用实参 spread(f(...args) / new F(...args) / super(...args))
|
2026-08-08 10:33:16 +08:00 |
|
pjh123
|
4768e92ba8
|
fix: 括号包裹的匿名函数参与 name 推断(is_anonymous_function_definition)
|
2026-08-07 20:27:49 +08:00 |
|
pjh123
|
0c904563d1
|
fix: 默认参数/解构默认值函数名推断(SetFunctionName)
|
2026-08-07 20:15:35 +08:00 |
|
pjh123
|
66c952d2b2
|
feat: 实现默认参数(形参 initializer 与解构默认值)
|
2026-08-07 15:26:25 +08:00 |
|
pjh123
|
31e28a03a6
|
docs: 补充注释与格式化
|
2026-08-06 23:10:27 +08:00 |
|
pjh123
|
224d1347eb
|
refactor: 寄存器号 u8→u32 全链放宽,vreg 化去 checkpoint/reg_overflow
|
2026-08-06 16:31:16 +08:00 |
|
pjh123
|
5988696f5b
|
fix: const 声明 STORE_VAR 恒 b=0 致寄存器复用误抛
|
2026-08-06 16:03:09 +08:00 |
|
pjh123
|
263fd255b6
|
docs: 添加 Rustdoc 注释
|
2026-08-05 21:46:47 +08:00 |
|
pjh123
|
7c8f19f61a
|
refactor: 拆分 oxide_emit 为独立 emit pass crate(依赖倒置)
|
2026-08-05 20:13:18 +08:00 |
|