diff --git a/crates/js/src/builtins.rs b/crates/js/src/builtins.rs index 268d700..4834f52 100644 --- a/crates/js/src/builtins.rs +++ b/crates/js/src/builtins.rs @@ -1,5 +1,5 @@ //! Built-in JavaScript objects and functions: Object, Array, Function, Error, -//! String, Number, Boolean, Symbol, Math, Date, JSON. +//! String, Number, Boolean, Symbol, Math, Date, JSON, Promise. //! //! Registers constructors, static methods, and prototype methods as globals //! in the VM. Callback-based array methods (map, filter, etc.) are defined @@ -7,6 +7,7 @@ use crate::gc::{Gc, GcRef}; use crate::vm::*; +use std::cell::RefCell; use std::collections::HashMap; use std::time::{SystemTime, UNIX_EPOCH}; @@ -246,6 +247,9 @@ pub fn init_builtins(vm: &mut Vm) { // Create and register Map, Set, WeakMap, WeakSet constructors. init_map_set_builtins(vm); + // Create and register Promise (prototype methods + native helpers). + init_promise_builtins(vm); + // Create and register JSON object (static methods only). init_json_object(vm); @@ -4659,6 +4663,834 @@ fn weakset_proto_delete(args: &[Value], ctx: &mut NativeContext) -> Result