LibJS: Fix string roots not being collected

Previously objects were the only heap
allocated value. Now there are also strings.

This replaces a usage of is_object with is_cell.
Without this change strings could be garbage
collected while still being used in an active scope.
This commit is contained in:
Florian Stellbrink 2020-03-12 02:03:48 +01:00 committed by Andreas Kling
parent 8cf962a102
commit 17705d23fb
Notes: sideshowbarker 2024-07-19 08:46:01 +09:00

View file

@ -122,8 +122,8 @@ void Interpreter::collect_roots(Badge<Heap>, HashTable<Cell*>& roots)
for (auto& scope : m_scope_stack) {
for (auto& it : scope.variables) {
if (it.value.is_object())
roots.set(it.value.as_object());
if (it.value.is_cell())
roots.set(it.value.as_cell());
}
}
}