summaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins/builtins-microtask-queue-gen.cc
diff options
context:
space:
mode:
authorMyles Borins <mylesborins@google.com>2019-09-24 11:56:38 -0400
committerMyles Borins <myles.borins@gmail.com>2019-10-07 03:19:23 -0400
commitf7f6c928c1c9c136b7926f892b8a2fda11d8b4b2 (patch)
treef5edbccb3ffda2573d70a6e291e7157f290e0ae0 /deps/v8/src/builtins/builtins-microtask-queue-gen.cc
parentffd22e81983056d09c064c59343a0e488236272d (diff)
downloadandroid-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.tar.gz
android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.tar.bz2
android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.zip
deps: update V8 to 7.8.279.9
PR-URL: https://github.com/nodejs/node/pull/29694 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Diffstat (limited to 'deps/v8/src/builtins/builtins-microtask-queue-gen.cc')
-rw-r--r--deps/v8/src/builtins/builtins-microtask-queue-gen.cc88
1 files changed, 31 insertions, 57 deletions
diff --git a/deps/v8/src/builtins/builtins-microtask-queue-gen.cc b/deps/v8/src/builtins/builtins-microtask-queue-gen.cc
index 4987787c35..427fd6edb6 100644
--- a/deps/v8/src/builtins/builtins-microtask-queue-gen.cc
+++ b/deps/v8/src/builtins/builtins-microtask-queue-gen.cc
@@ -123,7 +123,7 @@ void MicrotaskQueueBuiltinsAssembler::RunSingleMicrotask(
StoreRoot(RootIndex::kCurrentMicrotask, microtask);
TNode<IntPtrT> saved_entered_context_count = GetEnteredContextCount();
TNode<Map> microtask_map = LoadMap(microtask);
- TNode<Int32T> microtask_type = LoadMapInstanceType(microtask_map);
+ TNode<Uint16T> microtask_type = LoadMapInstanceType(microtask_map);
VARIABLE(var_exception, MachineRepresentation::kTagged, TheHoleConstant());
Label if_exception(this, Label::kDeferred);
@@ -131,21 +131,15 @@ void MicrotaskQueueBuiltinsAssembler::RunSingleMicrotask(
is_promise_fulfill_reaction_job(this),
is_promise_reject_reaction_job(this),
is_promise_resolve_thenable_job(this),
- is_finalization_group_cleanup_job(this),
is_unreachable(this, Label::kDeferred), done(this);
- int32_t case_values[] = {CALLABLE_TASK_TYPE,
- CALLBACK_TASK_TYPE,
+ int32_t case_values[] = {CALLABLE_TASK_TYPE, CALLBACK_TASK_TYPE,
PROMISE_FULFILL_REACTION_JOB_TASK_TYPE,
PROMISE_REJECT_REACTION_JOB_TASK_TYPE,
- PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE,
- FINALIZATION_GROUP_CLEANUP_JOB_TASK_TYPE};
- Label* case_labels[] = {&is_callable,
- &is_callback,
- &is_promise_fulfill_reaction_job,
- &is_promise_reject_reaction_job,
- &is_promise_resolve_thenable_job,
- &is_finalization_group_cleanup_job};
+ PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE};
+ Label* case_labels[] = {
+ &is_callable, &is_callback, &is_promise_fulfill_reaction_job,
+ &is_promise_reject_reaction_job, &is_promise_resolve_thenable_job};
static_assert(arraysize(case_values) == arraysize(case_labels), "");
Switch(microtask_type, &is_unreachable, case_values, case_labels,
arraysize(case_labels));
@@ -155,7 +149,7 @@ void MicrotaskQueueBuiltinsAssembler::RunSingleMicrotask(
// Enter the context of the {microtask}.
TNode<Context> microtask_context =
LoadObjectField<Context>(microtask, CallableTask::kContextOffset);
- TNode<Context> native_context = LoadNativeContext(microtask_context);
+ TNode<NativeContext> native_context = LoadNativeContext(microtask_context);
PrepareForContext(native_context, &done);
TNode<JSReceiver> callable =
@@ -171,9 +165,9 @@ void MicrotaskQueueBuiltinsAssembler::RunSingleMicrotask(
BIND(&is_callback);
{
- Node* const microtask_callback =
+ TNode<Object> const microtask_callback =
LoadObjectField(microtask, CallbackTask::kCallbackOffset);
- Node* const microtask_data =
+ TNode<Object> const microtask_data =
LoadObjectField(microtask, CallbackTask::kDataOffset);
// If this turns out to become a bottleneck because of the calls
@@ -186,7 +180,7 @@ void MicrotaskQueueBuiltinsAssembler::RunSingleMicrotask(
// But from our current measurements it doesn't seem to be a
// serious performance problem, even if the microtask is full
// of CallHandlerTasks (which is not a realistic use case anyways).
- Node* const result =
+ TNode<Object> const result =
CallRuntime(Runtime::kRunMicrotaskCallback, current_context,
microtask_callback, microtask_data);
GotoIfException(result, &if_exception, &var_exception);
@@ -198,17 +192,17 @@ void MicrotaskQueueBuiltinsAssembler::RunSingleMicrotask(
// Enter the context of the {microtask}.
TNode<Context> microtask_context = LoadObjectField<Context>(
microtask, PromiseResolveThenableJobTask::kContextOffset);
- TNode<Context> native_context = LoadNativeContext(microtask_context);
+ TNode<NativeContext> native_context = LoadNativeContext(microtask_context);
PrepareForContext(native_context, &done);
- Node* const promise_to_resolve = LoadObjectField(
+ TNode<Object> const promise_to_resolve = LoadObjectField(
microtask, PromiseResolveThenableJobTask::kPromiseToResolveOffset);
- Node* const then =
+ TNode<Object> const then =
LoadObjectField(microtask, PromiseResolveThenableJobTask::kThenOffset);
- Node* const thenable = LoadObjectField(
+ TNode<Object> const thenable = LoadObjectField(
microtask, PromiseResolveThenableJobTask::kThenableOffset);
- Node* const result =
+ TNode<Object> const result =
CallBuiltin(Builtins::kPromiseResolveThenableJob, native_context,
promise_to_resolve, thenable, then);
GotoIfException(result, &if_exception, &var_exception);
@@ -222,21 +216,21 @@ void MicrotaskQueueBuiltinsAssembler::RunSingleMicrotask(
// Enter the context of the {microtask}.
TNode<Context> microtask_context = LoadObjectField<Context>(
microtask, PromiseReactionJobTask::kContextOffset);
- TNode<Context> native_context = LoadNativeContext(microtask_context);
+ TNode<NativeContext> native_context = LoadNativeContext(microtask_context);
PrepareForContext(native_context, &done);
- Node* const argument =
+ TNode<Object> const argument =
LoadObjectField(microtask, PromiseReactionJobTask::kArgumentOffset);
- Node* const handler =
+ TNode<Object> const handler =
LoadObjectField(microtask, PromiseReactionJobTask::kHandlerOffset);
- Node* const promise_or_capability = LoadObjectField(
- microtask, PromiseReactionJobTask::kPromiseOrCapabilityOffset);
+ TNode<HeapObject> const promise_or_capability = CAST(LoadObjectField(
+ microtask, PromiseReactionJobTask::kPromiseOrCapabilityOffset));
// Run the promise before/debug hook if enabled.
RunPromiseHook(Runtime::kPromiseHookBefore, microtask_context,
promise_or_capability);
- Node* const result =
+ TNode<Object> const result =
CallBuiltin(Builtins::kPromiseFulfillReactionJob, microtask_context,
argument, handler, promise_or_capability);
GotoIfException(result, &if_exception, &var_exception);
@@ -255,21 +249,21 @@ void MicrotaskQueueBuiltinsAssembler::RunSingleMicrotask(
// Enter the context of the {microtask}.
TNode<Context> microtask_context = LoadObjectField<Context>(
microtask, PromiseReactionJobTask::kContextOffset);
- TNode<Context> native_context = LoadNativeContext(microtask_context);
+ TNode<NativeContext> native_context = LoadNativeContext(microtask_context);
PrepareForContext(native_context, &done);
- Node* const argument =
+ TNode<Object> const argument =
LoadObjectField(microtask, PromiseReactionJobTask::kArgumentOffset);
- Node* const handler =
+ TNode<Object> const handler =
LoadObjectField(microtask, PromiseReactionJobTask::kHandlerOffset);
- Node* const promise_or_capability = LoadObjectField(
- microtask, PromiseReactionJobTask::kPromiseOrCapabilityOffset);
+ TNode<HeapObject> const promise_or_capability = CAST(LoadObjectField(
+ microtask, PromiseReactionJobTask::kPromiseOrCapabilityOffset));
// Run the promise before/debug hook if enabled.
RunPromiseHook(Runtime::kPromiseHookBefore, microtask_context,
promise_or_capability);
- Node* const result =
+ TNode<Object> const result =
CallBuiltin(Builtins::kPromiseRejectReactionJob, microtask_context,
argument, handler, promise_or_capability);
GotoIfException(result, &if_exception, &var_exception);
@@ -283,26 +277,6 @@ void MicrotaskQueueBuiltinsAssembler::RunSingleMicrotask(
Goto(&done);
}
- BIND(&is_finalization_group_cleanup_job);
- {
- // Enter the context of the {finalization_group}.
- TNode<JSFinalizationGroup> finalization_group =
- LoadObjectField<JSFinalizationGroup>(
- microtask,
- FinalizationGroupCleanupJobTask::kFinalizationGroupOffset);
- TNode<Context> native_context = LoadObjectField<Context>(
- finalization_group, JSFinalizationGroup::kNativeContextOffset);
- PrepareForContext(native_context, &done);
-
- Node* const result = CallRuntime(Runtime::kFinalizationGroupCleanupJob,
- native_context, finalization_group);
-
- GotoIfException(result, &if_exception, &var_exception);
- RewindEnteredContext(saved_entered_context_count);
- SetCurrentContext(current_context);
- Goto(&done);
- }
-
BIND(&is_unreachable);
Unreachable();
@@ -407,7 +381,7 @@ void MicrotaskQueueBuiltinsAssembler::EnterMicrotaskContext(
BIND(&if_grow);
{
- Node* function =
+ TNode<ExternalReference> function =
ExternalConstant(ExternalReference::call_enter_context_function());
CallCFunction(function, MachineType::Int32(),
std::make_pair(MachineType::Pointer(), hsi),
@@ -475,7 +449,7 @@ TF_BUILTIN(EnqueueMicrotask, MicrotaskQueueBuiltinsAssembler) {
TNode<Microtask> microtask =
UncheckedCast<Microtask>(Parameter(Descriptor::kMicrotask));
TNode<Context> context = CAST(Parameter(Descriptor::kContext));
- TNode<Context> native_context = LoadNativeContext(context);
+ TNode<NativeContext> native_context = LoadNativeContext(context);
TNode<RawPtrT> microtask_queue = GetMicrotaskQueue(native_context);
// Do not store the microtask if MicrotaskQueue is not available, that may
@@ -506,9 +480,9 @@ TF_BUILTIN(EnqueueMicrotask, MicrotaskQueueBuiltinsAssembler) {
// implementation to grow the buffer.
BIND(&if_grow);
{
- Node* isolate_constant =
+ TNode<ExternalReference> isolate_constant =
ExternalConstant(ExternalReference::isolate_address(isolate()));
- Node* function =
+ TNode<ExternalReference> function =
ExternalConstant(ExternalReference::call_enqueue_microtask_function());
CallCFunction(function, MachineType::AnyTagged(),
std::make_pair(MachineType::Pointer(), isolate_constant),