Expand description
Boa’s boa_gc
crate implements a garbage collector.
Crate Overview
boa_gc
is a mark-sweep garbage collector that implements a Trace
and Finalize
trait
for garbage collected values.
About Boa
Boa is an open-source, experimental ECMAScript Engine written in Rust for lexing, parsing and executing ECMAScript/JavaScript. Currently, Boa supports some of the language. More information can be viewed at Boa’s website.
Try out the most recent release with Boa’s live demo playground.
Boa Crates
boa_ast
- Boa’s ECMAScript Abstract Syntax Tree.boa_engine
- Boa’s implementation of ECMAScript builtin objects and execution.boa_gc
- Boa’s garbage collector.boa_interner
- Boa’s string interner.boa_parser
- Boa’s lexer and parser.boa_profiler
- Boa’s code profiler.boa_icu_provider
- Boa’s ICU4X data provider.boa_runtime
- Boa’s WebAPI features.
Re-exports
pub use crate::trace::Tracer;
Modules
- cell 🔒A garbage collected cell implementation
- pointers 🔒Pointers represents the External types returned by the Boa Garbage Collector
- trace 🔒
Macros
- Utility macro to manually implement
Trace
on a type. - Utility macro to define an empty implementation of
Trace
.
Structs
- The Allocator handles allocation of garbage collected values.
- BoaGc 🔒
- This collector currently functions in four main phases
DropGuard
flags whether the Collector is currently runningCollector::sweep()
orCollector::dump()
- A key-value pair where the value becomes unaccesible when the key is garbage collected.
- A garbage-collected pointer type over an immutable value.
- A garbage collected allocation.
- GcConfig 🔒
- A wrapper type for an immutably borrowed value from a
GcCell<T>
. - A mutable memory location with dynamically checked borrow rules that can be used inside of a garbage-collected pointer.
- A wrapper type for a mutably borrowed value from a
GcCell<T>
. - A weak reference to a
Gc
. - A map that holds weak references to its keys and is traced by the garbage collector.
Constants
- BOA_GC 🔒
Traits
- Substitute for the
Drop
trait for garbage collected types. - The Trace trait, which needs to be implemented on garbage-collected objects.
Functions
- Returns
true
if it is safe for a type to runFinalize::finalize
. - Forcefully runs a garbage collection of all unaccessible nodes.
Type Aliases
Derive Macros
- Derive the
Finalize
trait. - Derive the
Trace
trait.