@@ -391,6 +391,44 @@ pub fn handle_global_function(func_name: &str, args: &[Expr], env: &JSObjectData
391391 } ) ,
392392 }
393393 }
394+ "__internal_promise_allsettled_resolve" => {
395+ if args. len ( ) < 3 {
396+ return Err ( JSError :: TypeError {
397+ message : "__internal_promise_allsettled_resolve requires 3 arguments" . to_string ( ) ,
398+ } ) ;
399+ }
400+ let idx = evaluate_expr ( env, & args[ 0 ] ) ?;
401+ let value = evaluate_expr ( env, & args[ 1 ] ) ?;
402+ let shared_state = evaluate_expr ( env, & args[ 2 ] ) ?;
403+
404+ if let Value :: Number ( idx_val) = idx {
405+ crate :: js_promise:: __internal_promise_allsettled_resolve ( idx_val, value, shared_state) ;
406+ Ok ( Value :: Undefined )
407+ } else {
408+ Err ( JSError :: TypeError {
409+ message : "First argument must be a number" . to_string ( ) ,
410+ } )
411+ }
412+ }
413+ "__internal_promise_allsettled_reject" => {
414+ if args. len ( ) < 3 {
415+ return Err ( JSError :: TypeError {
416+ message : "__internal_promise_allsettled_reject requires 3 arguments" . to_string ( ) ,
417+ } ) ;
418+ }
419+ let idx = evaluate_expr ( env, & args[ 0 ] ) ?;
420+ let reason = evaluate_expr ( env, & args[ 1 ] ) ?;
421+ let shared_state = evaluate_expr ( env, & args[ 2 ] ) ?;
422+
423+ if let Value :: Number ( idx_val) = idx {
424+ crate :: js_promise:: __internal_promise_allsettled_reject ( idx_val, reason, shared_state) ;
425+ Ok ( Value :: Undefined )
426+ } else {
427+ Err ( JSError :: TypeError {
428+ message : "First argument must be a number" . to_string ( ) ,
429+ } )
430+ }
431+ }
394432
395433 _ => Err ( JSError :: EvaluationError {
396434 message : format ! ( "Global function {} is not implemented" , func_name) ,
0 commit comments