#ifndef V8_EXECUTION_ARGUMENTS_H_
#define V8_EXECUTION_ARGUMENTS_H_
#include "src/execution/clobber-registers.h"
#include "src/handles/handles.h"
#include "src/logging/runtime-call-stats-scope.h"
#include "src/objects/objects.h"
#include "src/objects/slots.h"
#include "src/sandbox/check.h"
#include "src/tracing/trace-event.h"
#include "src/utils/allocation.h"
namespace v8 {
namespace internal {
template <ArgumentsType arguments_type>
class Arguments { … };
template <ArgumentsType T>
template <class S>
Handle<S> Arguments<T>::at(int index) const { … }
template <ArgumentsType T>
FullObjectSlot Arguments<T>::slot_from_address_at(int index, int offset) const { … }
#ifdef DEBUG
#define CLOBBER_DOUBLE_REGISTERS() …
#else
#define CLOBBER_DOUBLE_REGISTERS …
#endif
#ifdef V8_RUNTIME_CALL_STATS
#define RUNTIME_ENTRY_WITH_RCS(Type, InternalType, Convert, Name) …
#define TEST_AND_CALL_RCS(Name) …
#else
#define RUNTIME_ENTRY_WITH_RCS …
#define TEST_AND_CALL_RCS …
#endif
#define RUNTIME_FUNCTION_RETURNS_TYPE(Type, InternalType, Convert, Name) …
#ifdef DEBUG
#define BUILTIN_CONVERT_RESULT(x) …
#define BUILTIN_CONVERT_RESULT_PAIR(x) …
#else
#define BUILTIN_CONVERT_RESULT …
#define BUILTIN_CONVERT_RESULT_PAIR …
#endif
#define RUNTIME_FUNCTION(Name) …
#define RUNTIME_FUNCTION_RETURN_PAIR(Name) …
}
}
#endif