11/*
2- * Copyright (c) 2018, 2023 , Oracle and/or its affiliates. All rights reserved.
2+ * Copyright (c) 2018, 2025 , Oracle and/or its affiliates. All rights reserved.
33 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44 *
55 * The Universal Permissive License (UPL), Version 1.0
6363import com .oracle .truffle .js .runtime .builtins .JSFunction ;
6464import com .oracle .truffle .js .runtime .builtins .JSFunctionData ;
6565import com .oracle .truffle .js .runtime .builtins .JSFunctionObject ;
66+ import com .oracle .truffle .js .runtime .builtins .JSPromiseObject ;
6667import com .oracle .truffle .js .runtime .objects .JSDynamicObject ;
6768import com .oracle .truffle .js .runtime .objects .JSObjectUtil ;
6869import com .oracle .truffle .js .runtime .objects .PromiseCapabilityRecord ;
@@ -101,8 +102,8 @@ public static PromiseCapabilityRecord createDefault(JSRealm realm) {
101102 JSContext context = realm .getContext ();
102103 assert JSFunction .isConstructor (constructor );
103104 PromiseCapabilityRecord promiseCapability = PromiseCapabilityRecord .create (Undefined .instance , Undefined .instance , Undefined .instance );
104- JSDynamicObject executor = getCapabilitiesExecutor (context , realm , promiseCapability );
105- JSDynamicObject promise = (JSDynamicObject ) JSFunction .construct (constructor , new Object []{executor });
105+ JSFunctionObject executor = getCapabilitiesExecutor (context , realm , promiseCapability );
106+ JSPromiseObject promise = (JSPromiseObject ) JSFunction .construct (constructor , new Object []{executor });
106107 assert JSFunction .isJSFunction (promiseCapability .getResolve ()) && JSFunction .isJSFunction (promiseCapability .getReject ());
107108 promiseCapability .setPromise (promise );
108109 return promiseCapability ;
@@ -114,7 +115,7 @@ public PromiseCapabilityRecord execute(Object constructor) {
114115 throw Errors .createTypeErrorNotAConstructor (constructor , context );
115116 }
116117 PromiseCapabilityRecord promiseCapability = PromiseCapabilityRecord .create (Undefined .instance , Undefined .instance , Undefined .instance );
117- JSDynamicObject executor = getCapabilitiesExecutor (promiseCapability );
118+ JSFunctionObject executor = getCapabilitiesExecutor (promiseCapability );
118119 Object promise = newPromise .executeCall (JSArguments .create (Undefined .instance , constructor , executor ));
119120 if (!(promise instanceof JSDynamicObject )) {
120121 errorBranch .enter ();
@@ -128,16 +129,16 @@ public PromiseCapabilityRecord execute(Object constructor) {
128129 return promiseCapability ;
129130 }
130131
131- private JSDynamicObject getCapabilitiesExecutor (PromiseCapabilityRecord promiseCapability ) {
132+ private JSFunctionObject getCapabilitiesExecutor (PromiseCapabilityRecord promiseCapability ) {
132133 JSFunctionData functionData = context .getOrCreateBuiltinFunctionData (JSContext .BuiltinFunctionKey .PromiseGetCapabilitiesExecutor , (c ) -> createGetCapabilitiesExecutorImpl (c ));
133- JSDynamicObject function = JSFunction .create (getRealm (), functionData );
134+ JSFunctionObject function = JSFunction .create (getRealm (), functionData );
134135 setPromiseCapability .setValue (function , promiseCapability );
135136 return function ;
136137 }
137138
138- private static JSDynamicObject getCapabilitiesExecutor (JSContext context , JSRealm realm , PromiseCapabilityRecord promiseCapability ) {
139+ private static JSFunctionObject getCapabilitiesExecutor (JSContext context , JSRealm realm , PromiseCapabilityRecord promiseCapability ) {
139140 JSFunctionData functionData = context .getOrCreateBuiltinFunctionData (JSContext .BuiltinFunctionKey .PromiseGetCapabilitiesExecutor , (c ) -> createGetCapabilitiesExecutorImpl (c ));
140- JSDynamicObject function = JSFunction .create (realm , functionData );
141+ JSFunctionObject function = JSFunction .create (realm , functionData );
141142 JSObjectUtil .putHiddenProperty (function , PROMISE_CAPABILITY_KEY , promiseCapability );
142143 return function ;
143144 }
@@ -151,7 +152,7 @@ class GetCapabilitiesExecutorNode extends JavaScriptRootNode {
151152
152153 @ Override
153154 public Object execute (VirtualFrame frame ) {
154- JSDynamicObject functionObject = JSFrameUtil .getFunctionObject (frame );
155+ JSFunctionObject functionObject = JSFrameUtil .getFunctionObject (frame );
155156 PromiseCapabilityRecord capability = (PromiseCapabilityRecord ) getPromiseCapability .getValue (functionObject );
156157 if (capability .getResolve () != Undefined .instance || capability .getReject () != Undefined .instance ) {
157158 errorBranch .enter ();
0 commit comments