#ifndef V8_OBJECTS_PROMISE_INL_H_
#define V8_OBJECTS_PROMISE_INL_H_
#include "src/objects/promise.h"
#include "src/objects/js-promise-inl.h"
#include "src/objects/microtask-inl.h"
#include "src/objects/object-macros.h"
namespace v8 {
namespace internal {
#include "torque-generated/src/objects/promise-tq-inl.inc"
Tagged<Object> PromiseReactionJobTask::argument() const {
return argument_.load();
}
void PromiseReactionJobTask::set_argument(Tagged<Object> value,
WriteBarrierMode mode) {
argument_.store(this, value, mode);
}
Tagged<Context> PromiseReactionJobTask::context() const {
return context_.load();
}
void PromiseReactionJobTask::set_context(Tagged<Context> value,
WriteBarrierMode mode) {
context_.store(this, value, mode);
}
Tagged<UnionOf<JSCallable, Undefined>> PromiseReactionJobTask::handler() const {
return handler_.load();
}
void PromiseReactionJobTask::set_handler(
Tagged<UnionOf<JSCallable, Undefined>> value, WriteBarrierMode mode) {
handler_.store(this, value, mode);
}
Tagged<UnionOf<JSPromise, PromiseCapability, Undefined>>
PromiseReactionJobTask::promise_or_capability() const {
return promise_or_capability_.load();
}
void PromiseReactionJobTask::set_promise_or_capability(
Tagged<UnionOf<JSPromise, PromiseCapability, Undefined>> value,
WriteBarrierMode mode) {
promise_or_capability_.store(this, value, mode);
}
Tagged<Context> PromiseResolveThenableJobTask::context() const {
return context_.load();
}
void PromiseResolveThenableJobTask::set_context(Tagged<Context> value,
WriteBarrierMode mode) {
context_.store(this, value, mode);
}
Tagged<JSPromise> PromiseResolveThenableJobTask::promise_to_resolve() const {
return promise_to_resolve_.load();
}
void PromiseResolveThenableJobTask::set_promise_to_resolve(
Tagged<JSPromise> value, WriteBarrierMode mode) {
promise_to_resolve_.store(this, value, mode);
}
Tagged<JSReceiver> PromiseResolveThenableJobTask::thenable() const {
return thenable_.load();
}
void PromiseResolveThenableJobTask::set_thenable(Tagged<JSReceiver> value,
WriteBarrierMode mode) {
thenable_.store(this, value, mode);
}
Tagged<JSReceiver> PromiseResolveThenableJobTask::then() const {
return then_.load();
}
void PromiseResolveThenableJobTask::set_then(Tagged<JSReceiver> value,
WriteBarrierMode mode) {
then_.store(this, value, mode);
}
Tagged<UnionOf<JSReceiver, Undefined>> PromiseCapability::promise() const {
return promise_.load();
}
void PromiseCapability::set_promise(
Tagged<UnionOf<JSReceiver, Undefined>> value, WriteBarrierMode mode) {
promise_.store(this, value, mode);
}
Tagged<Object> PromiseCapability::resolve() const { return resolve_.load(); }
void PromiseCapability::set_resolve(Tagged<Object> value,
WriteBarrierMode mode) {
resolve_.store(this, value, mode);
}
Tagged<Object> PromiseCapability::reject() const { return reject_.load(); }
void PromiseCapability::set_reject(Tagged<Object> value,
WriteBarrierMode mode) {
reject_.store(this, value, mode);
}
#ifdef V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA
Tagged<Object> PromiseReaction::continuation_preserved_embedder_data() const {
return continuation_preserved_embedder_data_.load();
}
void PromiseReaction::set_continuation_preserved_embedder_data(
Tagged<Object> value, WriteBarrierMode mode) {
continuation_preserved_embedder_data_.store(this, value, mode);
}
#endif
Tagged<UnionOf<PromiseReaction, Smi>> PromiseReaction::next() const {
return next_.load();
}
void PromiseReaction::set_next(Tagged<UnionOf<PromiseReaction, Smi>> value,
WriteBarrierMode mode) {
next_.store(this, value, mode);
}
Tagged<UnionOf<JSCallable, Undefined>> PromiseReaction::reject_handler() const {
return reject_handler_.load();
}
void PromiseReaction::set_reject_handler(
Tagged<UnionOf<JSCallable, Undefined>> value, WriteBarrierMode mode) {
reject_handler_.store(this, value, mode);
}
Tagged<UnionOf<JSCallable, Undefined>> PromiseReaction::fulfill_handler()
const {
return fulfill_handler_.load();
}
void PromiseReaction::set_fulfill_handler(
Tagged<UnionOf<JSCallable, Undefined>> value, WriteBarrierMode mode) {
fulfill_handler_.store(this, value, mode);
}
Tagged<UnionOf<JSPromise, PromiseCapability, Undefined>>
PromiseReaction::promise_or_capability() const {
return promise_or_capability_.load();
}
void PromiseReaction::set_promise_or_capability(
Tagged<UnionOf<JSPromise, PromiseCapability, Undefined>> value,
WriteBarrierMode mode) {
promise_or_capability_.store(this, value, mode);
}
}
}
#include "src/objects/object-macros-undef.h"
#endif