@@ -76,35 +76,61 @@ macro NewPromiseFulfillReactionJobTask(
7676 handler: Callable|Undefined,
7777 promiseOrCapability: JSPromise|PromiseCapability|
7878 Undefined): PromiseFulfillReactionJobTask {
79- const nativeContext = LoadNativeContext(handlerContext);
80- return new PromiseFulfillReactionJobTask{
81- map: PromiseFulfillReactionJobTaskMapConstant(),
82- argument,
83- context: handlerContext,
84- handler,
85- promise_or_capability: promiseOrCapability,
86- continuation_preserved_embedder_data:
87- *ContextSlot(
88- nativeContext, ContextSlot::CONTINUATION_PRESERVED_EMBEDDER_DATA_INDEX)
89- };
79+ @if(V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA) {
80+ const nativeContext = LoadNativeContext(handlerContext);
81+ return new PromiseFulfillReactionJobTask{
82+ map: PromiseFulfillReactionJobTaskMapConstant(),
83+ argument,
84+ context: handlerContext,
85+ handler,
86+ promise_or_capability: promiseOrCapability,
87+ continuation_preserved_embedder_data:
88+ *ContextSlot(
89+ nativeContext,
90+ ContextSlot::CONTINUATION_PRESERVED_EMBEDDER_DATA_INDEX)
91+ };
92+ }
93+
94+ @ifnot(V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA) {
95+ return new PromiseFulfillReactionJobTask{
96+ map: PromiseFulfillReactionJobTaskMapConstant(),
97+ argument,
98+ context: handlerContext,
99+ handler,
100+ promise_or_capability: promiseOrCapability
101+ };
102+ }
90103}
91104
92105macro NewPromiseRejectReactionJobTask(
93106 implicit context: Context)(handlerContext: Context, argument: Object,
94107 handler: Callable|Undefined,
95108 promiseOrCapability: JSPromise|PromiseCapability|
96109 Undefined): PromiseRejectReactionJobTask {
97- const nativeContext = LoadNativeContext(handlerContext);
98- return new PromiseRejectReactionJobTask{
99- map: PromiseRejectReactionJobTaskMapConstant(),
100- argument,
101- context: handlerContext,
102- handler,
103- promise_or_capability: promiseOrCapability,
104- continuation_preserved_embedder_data:
105- *ContextSlot(
106- nativeContext, ContextSlot::CONTINUATION_PRESERVED_EMBEDDER_DATA_INDEX)
107- };
110+ @if(V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA) {
111+ const nativeContext = LoadNativeContext(handlerContext);
112+ return new PromiseRejectReactionJobTask{
113+ map: PromiseRejectReactionJobTaskMapConstant(),
114+ argument,
115+ context: handlerContext,
116+ handler,
117+ promise_or_capability: promiseOrCapability,
118+ continuation_preserved_embedder_data:
119+ *ContextSlot(
120+ nativeContext,
121+ ContextSlot::CONTINUATION_PRESERVED_EMBEDDER_DATA_INDEX)
122+ };
123+ }
124+
125+ @ifnot(V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA) {
126+ return new PromiseRejectReactionJobTask{
127+ map: PromiseRejectReactionJobTaskMapConstant(),
128+ argument,
129+ context: handlerContext,
130+ handler,
131+ promise_or_capability: promiseOrCapability
132+ };
133+ }
108134}
109135
110136@export
@@ -280,17 +306,31 @@ macro NewPromiseReaction(
280306 promiseOrCapability: JSPromise|PromiseCapability|Undefined,
281307 fulfillHandler: Callable|Undefined,
282308 rejectHandler: Callable|Undefined): PromiseReaction {
283- const nativeContext = LoadNativeContext(handlerContext);
284- return new PromiseReaction{
285- map: PromiseReactionMapConstant(),
286- next: next,
287- reject_handler: rejectHandler,
288- fulfill_handler: fulfillHandler,
289- promise_or_capability: promiseOrCapability,
290- continuation_preserved_embedder_data:
291- *ContextSlot(
292- nativeContext, ContextSlot::CONTINUATION_PRESERVED_EMBEDDER_DATA_INDEX)
293- };
309+ @if(V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA) {
310+ const nativeContext = LoadNativeContext(handlerContext);
311+ return new PromiseReaction{
312+ map: PromiseReactionMapConstant(),
313+ next: next,
314+ reject_handler: rejectHandler,
315+ fulfill_handler: fulfillHandler,
316+ promise_or_capability: promiseOrCapability,
317+ continuation_preserved_embedder_data:
318+ *ContextSlot(
319+ nativeContext,
320+ ContextSlot::CONTINUATION_PRESERVED_EMBEDDER_DATA_INDEX)
321+ };
322+ }
323+
324+ @ifnot(V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA) {
325+ dcheck(IsContext(handlerContext));
326+ return new PromiseReaction{
327+ map: PromiseReactionMapConstant(),
328+ next: next,
329+ reject_handler: rejectHandler,
330+ fulfill_handler: fulfillHandler,
331+ promise_or_capability: promiseOrCapability
332+ };
333+ }
294334}
295335
296336extern macro PromiseResolveThenableJobTaskMapConstant(): Map;
0 commit comments