Commit Graph

826 Commits

Author SHA1 Message Date
pjh123 28c8fe0284 fix: 访问器属性合并定义时继承未提供半边,防 get/set 互相覆盖 2026-08-14 06:14:38 +08:00
pjh123 1a14318304 fix: builtin 快照数组与枚举判别值错位致符号/时间族永久脏 2026-08-14 05:50:46 +08:00
pjh123 cc835f5304 test: 类编译断言更新为新属性描述符字节码布局 2026-08-14 05:45:46 +08:00
pjh123 afe88497f8 chore: 清理 oxide_test262 clippy 告警 2026-08-14 05:26:56 +08:00
pjh123 7799ebb055 chore: 清理 oxide_vm clippy 告警 2026-08-14 05:26:46 +08:00
pjh123 ae58508760 chore: 清理 oxide_builtins clippy 告警 2026-08-14 05:26:35 +08:00
pjh123 6522a39dd7 chore: 清理 oxide_emit clippy 告警 2026-08-14 05:26:25 +08:00
pjh123 12ebdb8c0e perf: 对象字面量批量构造键序预建 shape 2026-08-14 04:47:15 +08:00
pjh123 9758cee544 chore: gitignore w1mer 规划目录与配置 2026-08-14 04:03:26 +08:00
pjh123 84984f864d perf: 字符串构造类方法改借用免整串拷贝 2026-08-13 23:13:34 +08:00
pjh123 1b6b4e335b perf: 字符串只读扫描方法改借用免整串拷贝 2026-08-13 22:32:38 +08:00
pjh123 4245074d97 perf: 原生回调寄存器保存改前缀窗口减少搬移 2026-08-13 21:32:34 +08:00
pjh123 fccf2063f1 perf: 数组回调字节码调用改寄存器窗口复用减少搬移 2026-08-13 20:11:09 +08:00
pjh123 1ea9c76ab4 perf: 数组迭代方法元素读取走密集直读快路径 2026-08-13 18:12:49 +08:00
pjh123 2c62830a1d perf: 数组整数键走独立 si 区间免字符串往返 2026-08-13 17:47:55 +08:00
pjh123 1d1ee73743 Merge branch 'main' of https://gitlab.eduxiji.net/T2026104239910027/project3136859-381686 2026-08-13 16:35:20 +08:00
pjh123 e62bc54f08 perf: 收紧字符串借用语义消除跨分配点 UB 2026-08-13 16:24:00 +08:00
pjh123 352f3359cd perf: 属性键解析移出 IC 命中路径 2026-08-13 15:54:46 +08:00
pjh123 e826a65f3c perf: 字符串 for-of 迭代改字节游标增量推进(B4 初步) 2026-08-13 15:03:48 +08:00
pjh123 3ae2f2d9b7 perf: new_string_owned 零拷贝路径替代 new_string 二次克隆(B2) 2026-08-13 14:55:08 +08:00
pjh123 5513f0e2fb perf: parse_js_number 去 lowercase 分配 + int32 位运算直取(B2/B6) 2026-08-13 14:48:19 +08:00
pjh123 f874850bf7 perf: 算术运算 int 结果保 int + double 快路径(B1/B3) 2026-08-13 14:44:24 +08:00
pjh123 b85612c133 test: 更新性能基线并校准 property/array_join 测试规模 2026-08-13 14:40:44 +08:00
pjh123 cbb2e0e19f fix: 修复 coercion_concat/coercion_tostring/typeof_ops 压测字符串无限增长导致内存耗尽 2026-08-13 14:30:04 +08:00
pjh123 687c933891 feat: 拆分 stress benchmark 到细粒度单热点测试并修复 bench 采样逻辑 2026-08-13 14:27:20 +08:00
爱特每羊队 bbc46e6b21 Update README.md 2026-08-12 16:40:45 +00:00
爱特每羊队 2e674d1ba9 docs: 上传决赛阶段1更新的文档 2026-08-12 15:44:44 +00:00
爱特每羊队 99cd575e38 docs: 作品进展汇报幻灯片-决赛阶段1(PPT) 2026-08-12 22:28:51 +08:00
爱特每羊队 f8a4bacfec fix: accessor getter 调用异常经 raise_call_error 走 unwind(JS try/catch 可捕获,此前逃逸) 2026-08-12 17:55:58 +08:00
爱特每羊队 4303462d19 feat: compiler/test262 runner 接线 + 模块顶层 this 绑定
- Compiler::compile_module:Emitter::emit_program_module → 统一 IR 管线(DCE/regalloc/lower/flatten)
- CompiledModule.is_es_module:VM run 时模块顶层 this=undefined(脚本仍为全局对象)
- 全局注册 __moduleLinkGet
- test262 runner:Test262ModuleLoader(相对路径解析 + import attributes 判定 json/text/bytes),is_module 走 compile_module
2026-08-12 17:37:33 +08:00
爱特每羊队 6da248872b 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
爱特每羊队 3f45f38f51 feat: module natives(命名空间对象/导出读写/star 合并/seal/eval/data + 链接检查)
- __moduleObject:null 原型命名空间,带 @@toStringTag=Module(w/e/c=false)
- __moduleSet:定义不可写/可枚举/不可配置导出属性
- __moduleGet:模块命名空间 exotic Get(缺失导出抛 TypeError)
- __moduleLinkGet:import 绑定链接期检查(缺失导出抛 SyntaxError)
- __moduleStar:export * 合并,冲突名跳过(dst 已有属性省略)
- __moduleSeal:封冻命名空间
- __moduleEval:同步执行依赖模块并返回命名空间
- __moduleData:json/text 数据模块命名空间
2026-08-12 17:37:33 +08:00
爱特每羊队 86a20fa1fe fix: class 类名绑定经 dedicated cell 捕获(C===Cv 恒等)+ upvalue 写入 const guard(getter 赋值抛 TypeError) 2026-08-12 17:30:28 +08:00
爱特每羊队 1323a0564b feat: Duration.total 支持字符串/原始值 relativeTo 语义(无效与越界字符串 RangeError、数字/null 等 TypeError、days 日历路径),total 子集 41/29 2026-08-12 16:58:57 +08:00
爱特每羊队 5e38623fee feat: Temporal.Duration.prototype.round(无日历单位路径:选项校验+24h 天舍入+按最大单位平衡,绑定注册) 2026-08-12 16:16:22 +08:00
爱特每羊队 4818465234 fix: class 类名绑定 TDZ 与 const 语义(extends 引用类名抛 ReferenceError,类构建后初始化绑定) 2026-08-12 15:37:58 +08:00
爱特每羊队 d1b5c533fc feat: parser 支持 ES module(parse_module)+ test262 放行 module 用例
- oxide_parser 新增 parse_module(SourceType::mjs),parse 重构为 parse_with_source_type
- oxide_test262 不再跳过 flags:[module]/features:module,module 用例走 parse_module
- 首轮实测:language/import 12 pass/35 fail(原全跳过,10/10 负向 parse 全过),
  language/module-code 248 pass/274 fail(parse-err 103/0,early-* 26/0)
- 顺带修复 oxide_test262 两个 clippy lint(single-match、unnecessary unwrap)
2026-08-12 15:15:27 +08:00
爱特每羊队 ad547d5cd8 feat: Temporal.Duration.prototype.add(分量精确求和+按最大单位平衡+范围校验,绑定注册);add 子集 32/0 2026-08-12 14:50:13 +08:00
爱特每羊队 fe79eff172 fix: Temporal 构造器补 length 自有属性(Instant/ZonedDateTime/PlainDate/PlainTime/Duration 按规范 arity) 2026-08-12 14:37:31 +08:00
爱特每羊队 f16e39dd98 fix: Instant 参数转换按规范——非字符串原始值直接抛 TypeError(from/compare/equals/since/until) 2026-08-12 14:33:16 +08:00
爱特每羊队 0cd98084da feat: Temporal.PlainDateTime.prototype.equals(实例/字符串/对象/ZDT 统一比较,绑定注册) 2026-08-12 14:27:25 +08:00
爱特每羊队 d5b45d5b24 fix: Temporal PlainDate/PlainDateTime.from 表示范围边界、leap second、constrain 下限与实例转换 2026-08-12 14:17:28 +08:00
爱特每羊队 1a4663dcab 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
爱特每羊队 5726d4126b feat: Temporal PlainDate 字符串走 ParseTemporalDateString(注解/UTC/小数位/分数分钟校验),property bag 支持 monthCode 与日历标识符解析 2026-08-12 13:49:58 +08:00
爱特每羊队 20486cd615 fix: PlainDate/PlainDateTime until/since 月分解 days 计算(current 保持真实钳制日期,锚定日只用于越界比较) 2026-08-12 13:31:15 +08:00
爱特每羊队 9a0ab79711 feat: PlainDate/PlainDateTime until/since 舍入选项(roundingMode/roundingIncrement/smallestUnit,GetDifferenceSettings 对齐) 2026-08-12 13:26:10 +08:00
爱特每羊队 cc78e6b28f 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
爱特每羊队 dc023b2637 fix: 数组 length 赋值 ArraySetLength 语义与超长逻辑长度(a.length 读取/收缩校验/空洞同步) 2026-08-12 12:52:02 +08:00
爱特每羊队 3e8cf3eb23 fix: Array 方法 array-like receiver/Get 异常传播、species 构造、slice/toSpliced/toSorted 规范化,数组字面量空洞语义 2026-08-12 12:51:28 +08:00
爱特每羊队 3e61b573db feat: 新增 Symbol.species well-known symbol 绑定(Symbol.species 解析/键槽/内建对象) 2026-08-12 12:50:53 +08:00