@@ -24,10 +24,10 @@ index e5eba5a203b8bc4d0c05b1f0d6cbdffd352d4a06..cfba4bb26f865c0e38574f796200ffc5
2424
2525 #endif // INCLUDE_V8_ISOLATE_CALLBACKS_H_
2626diff --git a/include/v8-isolate.h b/include/v8-isolate.h
27- index f7600a237f7459bed0c172e6fd0ca7df7b37fc21..e5e6dddfa4c3a3d59b722b98b2024dfb45b2fb6b 100644
27+ index 44bde532a6253f7c1891dbb51dc3de21daf7a238..8f620d08c0b8919fc3312c53bd9efa5d11ded1c6 100644
2828--- a/include/v8-isolate.h
2929+++ b/include/v8-isolate.h
30- @@ -1873 ,6 +1873 ,9 @@ class V8_EXPORT Isolate {
30+ @@ -1875 ,6 +1875 ,9 @@ class V8_EXPORT Isolate {
3131 */
3232 uint64_t GetHashSeed();
3333
@@ -37,7 +37,7 @@ index f7600a237f7459bed0c172e6fd0ca7df7b37fc21..e5e6dddfa4c3a3d59b722b98b2024dfb
3737 Isolate() = delete;
3838 ~Isolate() = delete;
3939 Isolate(const Isolate&) = delete;
40- @@ -1919 ,6 +1922 ,19 @@ MaybeLocal<T> Isolate::GetDataFromSnapshotOnce(size_t index) {
40+ @@ -1921 ,6 +1924 ,19 @@ MaybeLocal<T> Isolate::GetDataFromSnapshotOnce(size_t index) {
4141 return {};
4242 }
4343
@@ -58,10 +58,10 @@ index f7600a237f7459bed0c172e6fd0ca7df7b37fc21..e5e6dddfa4c3a3d59b722b98b2024dfb
5858
5959 #endif // INCLUDE_V8_ISOLATE_H_
6060diff --git a/src/api/api.cc b/src/api/api.cc
61- index d9a1f54985deed9096464e68706197afd3d249b9..143455f17aad7a96d742bca54fef720d84b6d4c3 100644
61+ index 73f38d9a2b25d7420b73f96c34e8aa1764a69223..2c226e1467d952fd80c5356f7993f8af00c5f35d 100644
6262--- a/src/api/api.cc
6363+++ b/src/api/api.cc
64- @@ -12634 ,6 +12634 ,25 @@ std::string SourceLocation::ToString() const {
64+ @@ -12679 ,6 +12679 ,25 @@ std::string SourceLocation::ToString() const {
6565 .str();
6666 }
6767
@@ -151,34 +151,34 @@ index 50677631b5399453eebc6b149272431f74b1fce6..c652bd836b27805865e0a902ef9cf7c1
151151 }
152152
153153diff --git a/src/builtins/promise-misc.tq b/src/builtins/promise-misc.tq
154- index 702a3e622bf4fa65e41caee2be3cdd481384e314..257b966dc3c67174acfde1208ede2d6342b5e074 100644
154+ index f83ee777f596738f1a71606ba61a3a7fdbc2cd30..abfa23d9d5087148a25261e8a4aefdfc37a4b228 100644
155155--- a/src/builtins/promise-misc.tq
156156+++ b/src/builtins/promise-misc.tq
157- @@ -55 ,6 +55 ,7 @@ macro PromiseInit(promise: JSPromise): void {
157+ @@ -53 ,6 +53 ,7 @@ macro PromiseInit(promise: JSPromise): void {
158158 is_silent: false,
159159 async_task_id: kInvalidAsyncTaskId
160160 });
161161+ promise.context_tag = kZero;
162162 promise_internal::ZeroOutEmbedderOffsets(promise);
163163 }
164164
165- @@ -74 ,6 +75 ,7 @@ macro InnerNewJSPromise(implicit context: Context)(): JSPromise {
165+ @@ -72 ,6 +73 ,7 @@ macro InnerNewJSPromise(implicit context: Context)(): JSPromise {
166166 is_silent: false,
167167 async_task_id: kInvalidAsyncTaskId
168168 });
169169+ promise.context_tag = kZero;
170170 return promise;
171171 }
172172
173- @@ -273 ,6 +275 ,7 @@ transitioning macro NewJSPromise(implicit context: Context)(
173+ @@ -271 ,6 +273 ,7 @@ transitioning macro NewJSPromise(implicit context: Context)(
174174 parent: Object): JSPromise {
175175 const instance = InnerNewJSPromise();
176176 PromiseInit(instance);
177177+ runtime::PromiseContextInit(instance);
178178 RunAnyPromiseHookInit(instance, parent);
179179 return instance;
180180 }
181- @@ -296 ,6 +299 ,7 @@ transitioning macro NewJSPromise(
181+ @@ -294 ,6 +297 ,7 @@ transitioning macro NewJSPromise(
182182 instance.reactions_or_result = result;
183183 instance.SetStatus(status);
184184 promise_internal::ZeroOutEmbedderOffsets(instance);
@@ -187,10 +187,10 @@ index 702a3e622bf4fa65e41caee2be3cdd481384e314..257b966dc3c67174acfde1208ede2d63
187187 return instance;
188188 }
189189diff --git a/src/compiler/js-create-lowering.cc b/src/compiler/js-create-lowering.cc
190- index 0dfc5da18119fe7d723314bb489995e8bb0b03c5..6ce3a938cd31a65b8574f3a1e589aa89455c6f47 100644
190+ index 9150e7c14af4399897d8b6e474e6503499fcb30a..af2893886586b59ce5efb4758828d017be439522 100644
191191--- a/src/compiler/js-create-lowering.cc
192192+++ b/src/compiler/js-create-lowering.cc
193- @@ -1121 ,10 +1121 ,12 @@ Reduction JSCreateLowering::ReduceJSCreatePromise(Node* node) {
193+ @@ -1122 ,10 +1122 ,12 @@ Reduction JSCreateLowering::ReduceJSCreatePromise(Node* node) {
194194 jsgraph()->EmptyFixedArrayConstant());
195195 a.Store(AccessBuilder::ForJSObjectOffset(JSPromise::kReactionsOrResultOffset),
196196 jsgraph()->ZeroConstant());
@@ -205,10 +205,10 @@ index 0dfc5da18119fe7d723314bb489995e8bb0b03c5..6ce3a938cd31a65b8574f3a1e589aa89
205205 offset < JSPromise::kSizeWithEmbedderFields; offset += kTaggedSize) {
206206 a.Store(AccessBuilder::ForJSObjectOffset(offset),
207207diff --git a/src/diagnostics/objects-printer.cc b/src/diagnostics/objects-printer.cc
208- index 0deca1f243b9512e3b30f6b8e2239005a117b07b..ea6e689b4a395c99ca4f742964c5cd19eefe6aeb 100644
208+ index e6b0a5cf4660606752518b976b14d7519a7538c8..ac218930c9de64bfae3a6ccbc9332c794de76018 100644
209209--- a/src/diagnostics/objects-printer.cc
210210+++ b/src/diagnostics/objects-printer.cc
211- @@ -980 ,6 +980 ,7 @@ void JSPromise::JSPromisePrint(std::ostream& os) {
211+ @@ -996 ,6 +996 ,7 @@ void JSPromise::JSPromisePrint(std::ostream& os) {
212212 }
213213 os << "\n - has_handler: " << has_handler();
214214 os << "\n - is_silent: " << is_silent();
@@ -247,7 +247,7 @@ index 393b3d611743c86e7760760a41bdd6a6c5216691..5e0c1c62b6168e12af1ad067cd57604c
247247 Tagged<Object> Isolate::VerifyBuiltinsResult(Tagged<Object> result) {
248248 if (is_execution_terminating() && !v8_flags.strict_termination_checks) {
249249diff --git a/src/execution/isolate.cc b/src/execution/isolate.cc
250- index c322a3fdeac846b84d5d1c7f941adebc7a64032e..6965443c683b14004d3f1a19b03de507db6f1256 100644
250+ index f4812695e9c53a85be0c6e554a99dda317d4807f..51666de8200590c2fc26c38090cbed41238ea489 100644
251251--- a/src/execution/isolate.cc
252252+++ b/src/execution/isolate.cc
253253@@ -629,6 +629,8 @@ void Isolate::Iterate(RootVisitor* v, ThreadLocalTop* thread) {
@@ -259,15 +259,15 @@ index c322a3fdeac846b84d5d1c7f941adebc7a64032e..6965443c683b14004d3f1a19b03de507
259259
260260 for (v8::TryCatch* block = thread->try_catch_handler_; block != nullptr;
261261 block = block->next_) {
262- @@ -6074 ,6 +6076 ,7 @@ bool Isolate::Init(SnapshotData* startup_snapshot_data,
262+ @@ -6233 ,6 +6235 ,7 @@ bool Isolate::Init(SnapshotData* startup_snapshot_data,
263263 shared_heap_object_cache_.push_back(ReadOnlyRoots(this).undefined_value());
264264 }
265265
266266+ clear_promise_context_tag();
267267 InitializeThreadLocal();
268268
269269 // Profiler has to be created after ThreadLocal is initialized
270- @@ -8237 ,5 +8240 ,40 @@ void Isolate::PrintNumberStringCacheStats(const char* comment,
270+ @@ -8400 ,5 +8403 ,40 @@ void Isolate::PrintNumberStringCacheStats(const char* comment,
271271 PrintF("\n");
272272 }
273273
@@ -309,10 +309,10 @@ index c322a3fdeac846b84d5d1c7f941adebc7a64032e..6965443c683b14004d3f1a19b03de507
309309 } // namespace internal
310310 } // namespace v8
311311diff --git a/src/execution/isolate.h b/src/execution/isolate.h
312- index 17858575fb87328b8cebfcdc2efa8167ede1ca0d..479b744e5439e126e713f050f2f52f38c49fa8b3 100644
312+ index e11bb4083042e2b6fd4101eed0f0d06cae1b0ef1..633f3f8cdef1eceee6edfc921259b7a9895f5a84 100644
313313--- a/src/execution/isolate.h
314314+++ b/src/execution/isolate.h
315- @@ -2438 ,6 +2438 ,15 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory {
315+ @@ -2450 ,6 +2450 ,15 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory {
316316 v8::ExceptionContext callback_kind);
317317 void SetExceptionPropagationCallback(ExceptionPropagationCallback callback);
318318
@@ -328,7 +328,7 @@ index 17858575fb87328b8cebfcdc2efa8167ede1ca0d..479b744e5439e126e713f050f2f52f38
328328 #ifdef V8_ENABLE_WASM_SIMD256_REVEC
329329 void set_wasm_revec_verifier_for_test(
330330 compiler::turboshaft::WasmRevecVerifier* verifier) {
331- @@ -2968 ,6 +2977 ,12 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory {
331+ @@ -2978 ,6 +2987 ,12 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory {
332332
333333 bool is_frozen_ = false;
334334
@@ -341,7 +341,7 @@ index 17858575fb87328b8cebfcdc2efa8167ede1ca0d..479b744e5439e126e713f050f2f52f38
341341 friend class GlobalSafepoint;
342342 friend class heap::HeapTester;
343343 friend class IsolateForPointerCompression;
344- @@ -2975 ,6 +2990 ,7 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory {
344+ @@ -2985 ,6 +3000 ,7 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory {
345345 friend class IsolateGroup;
346346 friend class TestSerializer;
347347 friend class SharedHeapNoClientsTest;
@@ -350,10 +350,10 @@ index 17858575fb87328b8cebfcdc2efa8167ede1ca0d..479b744e5439e126e713f050f2f52f38
350350
351351 // The current entered Isolate and its thread data. Do not access these
352352diff --git a/src/heap/factory.cc b/src/heap/factory.cc
353- index 2102070df07e2e18c2821398987f60568ee6061b..d7b2294622a2f5725ece2829d3de2e328ba976a1 100644
353+ index 00f8b2addf9c646b453cee15c1a71d8aeea9d928..40118ddd5b357d3cdead407ae580c9f5856f13e2 100644
354354--- a/src/heap/factory.cc
355355+++ b/src/heap/factory.cc
356- @@ -4705 ,6 +4705 ,12 @@ Handle<JSPromise> Factory::NewJSPromiseWithoutHook() {
356+ @@ -4859 ,6 +4859 ,12 @@ Handle<JSPromise> Factory::NewJSPromiseWithoutHook() {
357357 DisallowGarbageCollection no_gc;
358358 Tagged<JSPromise> raw = *promise;
359359 raw->set_reactions_or_result(Smi::zero(), SKIP_WRITE_BARRIER);
@@ -367,10 +367,10 @@ index 2102070df07e2e18c2821398987f60568ee6061b..d7b2294622a2f5725ece2829d3de2e32
367367 // TODO(v8) remove once embedder data slots are always zero-initialized.
368368 InitEmbedderFields(*promise, Smi::zero());
369369diff --git a/src/maglev/maglev-graph-builder.cc b/src/maglev/maglev-graph-builder.cc
370- index c520ecd12bdddba75ac30e308383526ad67c3ad2..0867347126728c9ec595e34be1aa8a19c4b64bcc 100644
370+ index 0168d146584cc3af44e6d21b886e73a072243435..53b178db65cac7ea1a47620442a3fbb7f2687c89 100644
371371--- a/src/maglev/maglev-graph-builder.cc
372372+++ b/src/maglev/maglev-graph-builder.cc
373- @@ -14992 ,9 +14992 ,10 @@ VirtualObject* MaglevGraphBuilder::CreateJSPromiseObject() {
373+ @@ -14772 ,9 +14772 ,10 @@ VirtualObject* MaglevGraphBuilder::CreateJSPromiseObject() {
374374 vobj->set(JSPromise::kElementsOffset,
375375 GetRootConstant(RootIndex::kEmptyFixedArray));
376376 vobj->set(JSPromise::kReactionsOrResultOffset, GetSmiConstant(0));
@@ -383,7 +383,7 @@ index c520ecd12bdddba75ac30e308383526ad67c3ad2..0867347126728c9ec595e34be1aa8a19
383383 offset < JSPromise::kSizeWithEmbedderFields; offset += kTaggedSize) {
384384 vobj->set(offset, GetSmiConstant(0));
385385diff --git a/src/objects/js-promise.tq b/src/objects/js-promise.tq
386- index 93a4a34f9f1f7fad40611d4b9432aaf944c9fbae..188619ea64c9e307f014898e4023ce796c52c7e2 100644
386+ index f3078f569e4f8fe919a84190b40e5da31098a5d3..3832d2655e2db35286345c0c1c79b9aa8959a25b 100644
387387--- a/src/objects/js-promise.tq
388388+++ b/src/objects/js-promise.tq
389389@@ -32,6 +32,7 @@ extern class JSPromise extends JSObjectWithEmbedderSlots {
@@ -395,7 +395,7 @@ index 93a4a34f9f1f7fad40611d4b9432aaf944c9fbae..188619ea64c9e307f014898e4023ce79
395395 }
396396
397397diff --git a/src/objects/value-serializer.cc b/src/objects/value-serializer.cc
398- index 7d0e6dea04a5ad4b03be0850d0e50cf79861c3dc..324bf5298c9d93f160946caf13f3df74351de17e 100644
398+ index 6dc0e13d885aa537a09d580cfc147546cf6fc432..fc4dc2477d48c97145237e922d3bcba16140c47d 100644
399399--- a/src/objects/value-serializer.cc
400400+++ b/src/objects/value-serializer.cc
401401@@ -1123,8 +1123,8 @@ Maybe<bool> ValueSerializer::WriteJSArrayBufferView(
@@ -410,10 +410,10 @@ index 7d0e6dea04a5ad4b03be0850d0e50cf79861c3dc..324bf5298c9d93f160946caf13f3df74
410410 }
411411 return ThrowIfOutOfMemory();
412412diff --git a/src/profiler/heap-snapshot-generator.cc b/src/profiler/heap-snapshot-generator.cc
413- index 3d9ff4368894a21e83a1401cad41dc412f23ab5c..ff03a31747875cd7a41bffeeae7687e60905e43d 100644
413+ index 694b3b19bb2ddf5ca8db05068aec37252e411dfa..857d659f05cbea5b31631700848dae3d5b3b22b5 100644
414414--- a/src/profiler/heap-snapshot-generator.cc
415415+++ b/src/profiler/heap-snapshot-generator.cc
416- @@ -2117 ,6 +2117 ,8 @@ void V8HeapExplorer::ExtractJSPromiseReferences(HeapEntry* entry,
416+ @@ -2248 ,6 +2248 ,8 @@ void V8HeapExplorer::ExtractJSPromiseReferences(HeapEntry* entry,
417417 SetInternalReference(entry, "reactions_or_result",
418418 promise->reactions_or_result(),
419419 JSPromise::kReactionsOrResultOffset);
@@ -469,10 +469,10 @@ index cbe68d70430188fceab54bf3911c5d617e76cd62..896bac667ce40ef23c8c4fcd6174fcd2
469469 } // namespace internal
470470 } // namespace v8
471471diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h
472- index f70caed351dff9371fcd6771e9867bdef07e8397..c22911681bbe900fbd0fc3b9e3e863641ad93cb4 100644
472+ index b3fcf55dc8a5418183bb4aa1c874cb8a075698ed..9599b2c393ba3c68ee69d8441b053e6afa23dbfd 100644
473473--- a/src/runtime/runtime.h
474474+++ b/src/runtime/runtime.h
475- @@ -433 ,20 +433 ,22 @@ constexpr bool CanTriggerGC(T... properties) {
475+ @@ -434 ,20 +434 ,22 @@ constexpr bool CanTriggerGC(T... properties) {
476476 F(StrictNotEqual, 2, 1) \
477477 F(ReferenceEqual, 2, 1)
478478
0 commit comments