mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-25 11:11:11 +08:00
fix: 逻辑赋值标识符目标接入不可写全局内置拦截,目标位置内置预登记稳定槽解析
This commit is contained in:
@@ -268,6 +268,14 @@ impl Emitter {
|
||||
|
||||
fn pre_scan_builtin_target(&self, target: &oxide_parser::SimpleAssignmentTarget, ctx: &mut CompileCtx) {
|
||||
match target {
|
||||
oxide_parser::SimpleAssignmentTarget::AssignmentTargetIdentifier(id) => {
|
||||
// 标识符目标与表达式位置标识符引用同口径预登记:目标为某内置名的
|
||||
// 唯一出现处(无读侧引用)时缺预登记会解析成隐式全局新槽,旧值读
|
||||
// 与短路判定拿到未预载值。
|
||||
if CompileCtx::is_known_builtin(id.name.as_str()) {
|
||||
let _ = ctx.lookup_or_builtin(id.name.as_str());
|
||||
}
|
||||
}
|
||||
oxide_parser::SimpleAssignmentTarget::StaticMemberExpression(member) => {
|
||||
self.pre_scan_builtin_expr(&member.object, ctx);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user