sphinx/
builtins.rs

1use crate::runtime::Gc;
2use crate::runtime::module::NamespaceEnv;
3
4mod iter;
5mod primitive;
6mod misc;
7
8use iter::create_iter_builtins;
9use primitive::{create_primitive_ctors, create_metamethod_builtins};
10use misc::create_misc_builtins;
11
12// thread_local! {
13//     pub static PRELUDE: Gc<NamespaceEnv> = {
14//         let prelude = create_prelude();
15//         prelude
16//     }
17// }
18
19
20/// Create an Env containing the core builtins
21/// Fairly expensive, should be used sparingly
22pub fn create_prelude() -> Gc<NamespaceEnv> {
23    let env = NamespaceEnv::new();
24    
25    create_metamethod_builtins(env);
26    create_primitive_ctors(env);
27    create_iter_builtins(env);
28    create_misc_builtins(env);
29    
30    env
31}