fix: 脚本顶层 var/function 声明落 globalThis(DEFINE_GLOBAL_PROP 非可配置数据属性)

This commit is contained in:
爱特每羊队
2026-08-10 03:52:17 +08:00
parent 012a8e5110
commit 4d37614e49
11 changed files with 187 additions and 13 deletions
+6 -6
View File
@@ -66,6 +66,7 @@ impl Inst {
| OpCode::DELETE_PROP_DYNAMIC
| OpCode::DEFINE_ACCESSOR
| OpCode::DEFINE_PROP
| OpCode::DEFINE_GLOBAL_PROP
| OpCode::SET_HOME_OBJECT
// SPILL 写 VM spill 栈而非寄存器(恢复由 UNSPILL 写 rd)
| OpCode::SPILL
@@ -231,11 +232,9 @@ impl Inst {
// HALT:隐式读 reg 0(顶层返回值)
OpCode::HALT => uses.push(0),
// RETURN/THROW/YIELD/YIELD_STAR/AWAIT:读 rd(None→0)
OpCode::RETURN
| OpCode::THROW
| OpCode::YIELD
| OpCode::YIELD_STAR
| OpCode::AWAIT => push_operand(&mut uses, &self.rd),
OpCode::RETURN | OpCode::THROW | OpCode::YIELD | OpCode::YIELD_STAR | OpCode::AWAIT => {
push_operand(&mut uses, &self.rd)
}
// 加载族:a 槽是 Const/Imm 立即数,无寄存器 use
OpCode::LOAD_CONST
| OpCode::CREATE_CLOSURE
@@ -264,7 +263,8 @@ impl Inst {
| OpCode::SET_ELEM
| OpCode::INIT_PRIVATE
| OpCode::DEFINE_ACCESSOR
| OpCode::DEFINE_PROP => {
| OpCode::DEFINE_PROP
| OpCode::DEFINE_GLOBAL_PROP => {
push_operand(&mut uses, &self.rd);
push_operand(&mut uses, &self.a);
push_operand(&mut uses, &self.b);