fix(builtins): should not appear in public value

This commit is contained in:
2025-05-20 10:00:50 +08:00
parent d0298ce2a6
commit 96fb6033a4
2 changed files with 6 additions and 11 deletions

View File

@@ -42,7 +42,10 @@ impl<'jit: 'vm, 'vm> AttrSet<'jit, 'vm> {
} }
pub fn select(&self, sym: usize) -> Option<Value<'jit, 'vm>> { pub fn select(&self, sym: usize) -> Option<Value<'jit, 'vm>> {
self.data.get(&sym).cloned() self.data.get(&sym).cloned().map(|val| match val {
Value::Builtins(x) => Value::AttrSet(x.upgrade().unwrap()),
val => val
})
} }
pub fn has_attr(&self, sym: usize) -> bool { pub fn has_attr(&self, sym: usize) -> bool {

View File

@@ -379,11 +379,7 @@ impl<'jit, 'vm> Value<'jit, 'vm> {
self.typename() self.typename()
))), ))),
}?; }?;
if let Value::Builtins(weak) = val { *self = val;
*self = Value::AttrSet(weak.upgrade().unwrap())
} else {
*self = val;
}
Ok(self) Ok(self)
} }
@@ -398,11 +394,7 @@ impl<'jit, 'vm> Value<'jit, 'vm> {
))); )));
} }
}; };
if let Value::Builtins(weak) = val { *self = val;
*self = Value::AttrSet(weak.upgrade().unwrap())
} else {
*self = val;
}
Ok(self) Ok(self)
} }