fix: 模块写穿按绑定槽过滤并覆盖更新赋值路径

This commit is contained in:
2026-09-18 00:32:12 +00:00
parent f53918f287
commit 39183f449c
6 changed files with 82 additions and 15 deletions
+6
View File
@@ -179,6 +179,8 @@ impl Emitter {
// 可写内置名:值同步落全局对象属性。
self.emit_global_put_write(name, var_reg, ctx);
}
// live 模块顶层解构赋值目标同样写穿命名空间条目。
self.emit_module_write_through(name, src_reg, ctx)?;
Ok(())
}
AssignmentTarget::ArrayAssignmentTarget(ap) => self.emit_array_assignment(ap, src_reg, ctx),
@@ -390,6 +392,8 @@ impl Emitter {
// 可写内置名:值同步落全局对象属性。
self.emit_global_put_write(name, var_reg, ctx);
}
// live 模块顶层解构赋值目标同样写穿命名空间条目。
self.emit_module_write_through(name, src_reg, ctx)?;
Ok(())
}
_ => Err("assignment target not supported".into()),
@@ -483,6 +487,8 @@ impl Emitter {
// 可写内置名:值同步落全局对象属性(其余属性继续赋值)。
self.emit_global_put_write(name, var_reg, ctx);
}
// live 模块顶层解构赋值目标同样写穿命名空间条目。
self.emit_module_write_through(name, prop_reg, ctx)?;
}
AssignmentTargetProperty::AssignmentTargetPropertyProperty(prop) => {
let (prop_reg, static_key, key_reg) =