// Copyright 2018 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef V8_OBJECTS_MICROTASK_QUEUE_INL_H_
#define V8_OBJECTS_MICROTASK_QUEUE_INL_H_

#include "src/objects/microtask-queue.h"

#include "src/objects-inl.h"
#include "src/objects/smi-inl.h"

// Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h"

namespace v8 {
namespace internal {

CAST_ACCESSOR(MicrotaskQueue)
ACCESSORS(MicrotaskQueue, queue, FixedArray, kQueueOffset)
SMI_ACCESSORS(MicrotaskQueue, pending_microtask_count,
              kPendingMicrotaskCountOffset)

}  // namespace internal
}  // namespace v8

#include "src/objects/object-macros-undef.h"

#endif  // V8_OBJECTS_MICROTASK_QUEUE_INL_H_
