5#ifndef V8_API_API_ARGUMENTS_H_
6#define V8_API_API_ARGUMENTS_H_
29 static_assert(T::kSize ==
sizeof(
T));
46 return reinterpret_cast<Isolate*
>((*
slot_at(T::kIsolateIndex)).ptr());
53 static_cast<unsigned>(T::kArgsLength));
181 javascript_execution_counter_ = 0;
191 v8::Intercepted intercepted,
const char* callback_kind_for_error_message,
192 bool ignore_return_value =
false);
196 template <
typename T>
208 template <
typename T>
212 template <
typename T>
221 template <
typename T>
250 uint32_t javascript_execution_counter_;
299 template <
typename T>
static constexpr int kArgsLength
static constexpr int kContextIndex
static constexpr int kTargetIndex
static constexpr int kUnusedIndex
static constexpr int kIsolateIndex
static constexpr int kThisValuesIndex
static constexpr int kSize
static constexpr int kLengthOffset
static constexpr int kValuesOffset
static constexpr int kNewTargetIndex
static constexpr int kArgsLengthWithReceiver
static constexpr int kImplicitArgsOffset
static constexpr int kIsolateIndex
static constexpr int kDataIndex
static constexpr int kArgsLength
static constexpr int kShouldThrowOnErrorIndex
static constexpr int kHolderV2Index
static constexpr int kThisIndex
static constexpr int kHolderIndex
static constexpr int kPropertyKeyIndex
static constexpr int kNumExtraArgsWithReceiver
static constexpr int kReceiverArgsIndex
static constexpr int kNumExtraArgs
static constexpr int kNumExtraArgs
static constexpr int kNumExtraArgsWithReceiver
CustomArgumentsBase(Isolate *isolate)
Handle< V > GetReturnValue(Isolate *isolate) const
Address values_[T::kArgsLength]
CustomArguments(Isolate *isolate)
~CustomArguments() override
static constexpr int kReturnValueIndex
Isolate * isolate() const
FullObjectSlot slot_at(int index) const
void IterateInstance(RootVisitor *v) override
static constexpr int kIsolateIndex
static constexpr int kTargetIndex
static constexpr int kImplicitArgsOffset
static constexpr int kArgsLength
static constexpr int kLengthOffset
static constexpr int kArgsLengthWithReceiver
static constexpr int kNewTargetIndex
static Tagged< Object > GetTarget(const FunctionCallbackInfo< T > &info)
static constexpr int kUnusedIndex
FunctionCallbackArguments(Isolate *isolate, Tagged< FunctionTemplateInfo > target, Tagged< HeapObject > new_target, Address *argv, int argc)
static constexpr int kContextIndex
FunctionCallbackInfo< Value > T
DirectHandle< Object > CallOrConstruct(Tagged< FunctionTemplateInfo > function, bool is_construct)
static constexpr int kValuesOffset
static constexpr int kSize
DirectHandle< JSAny > CallNamedGetter(DirectHandle< InterceptorInfo > interceptor, DirectHandle< Name > name)
DirectHandle< JSObjectOrUndefined > CallIndexedEnumerator(DirectHandle< InterceptorInfo > interceptor)
const v8::PropertyCallbackInfo< T > & GetPropertyCallbackInfo()
Handle< JSAny > CallIndexedDescriptor(DirectHandle< InterceptorInfo > interceptor, uint32_t index)
static uint32_t GetPropertyIndex(const PropertyCallbackInfo< T > &info)
static Tagged< Object > GetPropertyKey(const PropertyCallbackInfo< T > &info)
DirectHandle< JSAny > CallAccessorGetter(DirectHandle< AccessorInfo > info, DirectHandle< Name > name)
Tagged< JSObject > holder() const
PropertyCallbackArguments & operator=(const PropertyCallbackArguments &)=delete
v8::Intercepted CallNamedDeleter(DirectHandle< InterceptorInfo > interceptor, DirectHandle< Name > name)
PropertyCallbackArguments(Isolate *isolate, Tagged< Object > data, Tagged< Object > self, Tagged< JSObject > holder, Maybe< ShouldThrow > should_throw)
Maybe< InterceptorResult > GetBooleanReturnValue(v8::Intercepted intercepted, const char *callback_kind_for_error_message, bool ignore_return_value=false)
Tagged< Object > receiver() const
static constexpr int kThisIndex
DirectHandle< JSObjectOrUndefined > CallNamedEnumerator(DirectHandle< InterceptorInfo > interceptor)
DirectHandle< Object > CallNamedQuery(DirectHandle< InterceptorInfo > interceptor, DirectHandle< Name > name)
static Handle< Object > GetPropertyKeyHandle(const PropertyCallbackInfo< T > &info)
static constexpr int kPropertyKeyIndex
v8::Intercepted CallNamedSetter(DirectHandle< InterceptorInfo > interceptor, DirectHandle< Name > name, DirectHandle< Object > value)
v8::Intercepted CallNamedDefiner(DirectHandle< InterceptorInfo > interceptor, DirectHandle< Name > name, const v8::PropertyDescriptor &desc)
static constexpr int kArgsLength
DirectHandle< JSAny > CallIndexedGetter(DirectHandle< InterceptorInfo > interceptor, uint32_t index)
static constexpr int kIsolateIndex
DirectHandle< JSObjectOrUndefined > CallPropertyEnumerator(DirectHandle< InterceptorInfo > interceptor)
v8::Intercepted CallIndexedDefiner(DirectHandle< InterceptorInfo > interceptor, uint32_t index, const v8::PropertyDescriptor &desc)
bool ShouldThrowOnError()
PropertyCallbackArguments(const PropertyCallbackArguments &)=delete
DirectHandle< Object > CallIndexedQuery(DirectHandle< InterceptorInfo > interceptor, uint32_t index)
static constexpr int kHolderV2Index
static constexpr int kShouldThrowOnErrorIndex
~PropertyCallbackArguments()
v8::Intercepted CallIndexedDeleter(DirectHandle< InterceptorInfo > interceptor, uint32_t index)
static constexpr int kHolderIndex
V8_WARN_UNUSED_RESULT bool CallAccessorSetter(DirectHandle< AccessorInfo > info, DirectHandle< Name > name, DirectHandle< Object > value)
v8::Intercepted CallIndexedSetter(DirectHandle< InterceptorInfo > interceptor, uint32_t index, DirectHandle< Object > value)
static constexpr int kDataIndex
Handle< JSAny > CallNamedDescriptor(DirectHandle< InterceptorInfo > interceptor, DirectHandle< Name > name)
virtual void VisitRootPointers(Root root, const char *description, FullObjectSlot start, FullObjectSlot end)=0
DirectHandle< Object > new_target
constexpr uint32_t kMaxUInt32
#define DCHECK_LE(v1, v2)
#define V8_WARN_UNUSED_RESULT