fix(builtins): should not appear in public value
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -379,11 +379,7 @@ impl<'jit, 'vm> Value<'jit, 'vm> {
|
|||||||
self.typename()
|
self.typename()
|
||||||
))),
|
))),
|
||||||
}?;
|
}?;
|
||||||
if let Value::Builtins(weak) = val {
|
|
||||||
*self = Value::AttrSet(weak.upgrade().unwrap())
|
|
||||||
} else {
|
|
||||||
*self = val;
|
*self = val;
|
||||||
}
|
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -398,11 +394,7 @@ impl<'jit, 'vm> Value<'jit, 'vm> {
|
|||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if let Value::Builtins(weak) = val {
|
|
||||||
*self = Value::AttrSet(weak.upgrade().unwrap())
|
|
||||||
} else {
|
|
||||||
*self = val;
|
*self = val;
|
||||||
}
|
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user