v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
js-operator.h File Reference
Include dependency graph for js-operator.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::compiler::JSOperator
 
class  v8::internal::compiler::CallFrequency
 
class  v8::internal::compiler::ConstructForwardVarargsParameters
 
class  v8::internal::compiler::ConstructParameters
 
class  v8::internal::compiler::CallForwardVarargsParameters
 
class  v8::internal::compiler::CallParameters
 
class  v8::internal::compiler::CallRuntimeParameters
 
class  v8::internal::compiler::ContextAccess
 
class  v8::internal::compiler::CreateFunctionContextParameters
 
class  v8::internal::compiler::DefineNamedOwnPropertyParameters
 
class  v8::internal::compiler::FeedbackParameter
 
class  v8::internal::compiler::NamedAccess
 
class  v8::internal::compiler::LoadGlobalParameters
 
class  v8::internal::compiler::StoreGlobalParameters
 
class  v8::internal::compiler::PropertyAccess
 
class  v8::internal::compiler::CreateArrayParameters
 
class  v8::internal::compiler::CreateArrayIteratorParameters
 
class  v8::internal::compiler::CreateCollectionIteratorParameters
 
class  v8::internal::compiler::CreateBoundFunctionParameters
 
class  v8::internal::compiler::CreateClosureParameters
 
class  v8::internal::compiler::GetTemplateObjectParameters
 
class  v8::internal::compiler::CreateLiteralParameters
 
class  v8::internal::compiler::CloneObjectParameters
 
class  v8::internal::compiler::GetIteratorParameters
 
class  v8::internal::compiler::ForInParameters
 
class  v8::internal::compiler::JSOperatorBuilder
 
class  v8::internal::compiler::JSNodeWrapperBase
 
class  v8::internal::compiler::JSUnaryOpNode
 
class  v8::internal::compiler::JSBinaryOpNode
 
class  v8::internal::compiler::JSGetIteratorNode
 
class  v8::internal::compiler::JSCloneObjectNode
 
class  v8::internal::compiler::JSGetTemplateObjectNode
 
class  v8::internal::compiler::JSCreateLiteralOpNode
 
class  v8::internal::compiler::JSHasPropertyNode
 
class  v8::internal::compiler::JSLoadPropertyNode
 
class  v8::internal::compiler::JSSetKeyedPropertyNode
 
class  v8::internal::compiler::JSDefineKeyedOwnPropertyNode
 
class  v8::internal::compiler::JSCallOrConstructNode
 
class  v8::internal::compiler::JSCallNodeBase< kOpcodes >
 
class  v8::internal::compiler::JSConstructNodeBase< kOpcode >
 
class  v8::internal::compiler::JSLoadNamedNode
 
class  v8::internal::compiler::JSLoadNamedFromSuperNode
 
class  v8::internal::compiler::JSSetNamedPropertyNode
 
class  v8::internal::compiler::JSDefineNamedOwnPropertyNode
 
class  v8::internal::compiler::JSStoreGlobalNode
 
class  v8::internal::compiler::JSLoadGlobalNode
 
class  v8::internal::compiler::JSCreateEmptyLiteralArrayNode
 
class  v8::internal::compiler::JSDefineKeyedOwnPropertyInLiteralNode
 
class  v8::internal::compiler::JSStoreInArrayLiteralNode
 
class  v8::internal::compiler::JSCreateClosureNode
 
class  v8::internal::compiler::JSForInPrepareNode
 
class  v8::internal::compiler::JSForInNextNode
 
class  v8::internal::compiler::JSFindNonDefaultConstructorOrConstructNode
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::wasm
 
namespace  v8::internal::compiler
 
namespace  v8::internal::compiler::js_node_wrapper_utils
 

Macros

#define JS_UNOP_WITH_FEEDBACK(V)
 
#define JS_BINOP_WITH_FEEDBACK(V)
 
#define CASE(Name, ...)
 
#define CASE(Name, ...)
 
#define DEFINE_INPUT_ACCESSORS(Name, name, TheIndex, Type)
 
#define INPUTS(V)
 
#define V(JSName, ...)
 
#define INPUTS(V)
 
#define V(JSName, ...)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 
#define INPUTS(V)
 

Typedefs

using v8::internal::compiler::JSCreateLiteralArrayNode = JSCreateLiteralOpNode
 
using v8::internal::compiler::JSCreateLiteralObjectNode = JSCreateLiteralOpNode
 
using v8::internal::compiler::JSCreateLiteralRegExpNode = JSCreateLiteralOpNode
 
using v8::internal::compiler::JSCallNode = JSCallNodeBase<IrOpcode::kJSCall>
 
using v8::internal::compiler::JSCallWithSpreadNode = JSCallNodeBase<IrOpcode::kJSCallWithSpread>
 
using v8::internal::compiler::JSCallWithArrayLikeNode = JSCallNodeBase<IrOpcode::kJSCallWithArrayLike>
 
using v8::internal::compiler::JSCallWithArrayLikeOrSpreadNode
 
using v8::internal::compiler::JSConstructNode = JSConstructNodeBase<IrOpcode::kJSConstruct>
 
using v8::internal::compiler::JSConstructWithSpreadNode
 
using v8::internal::compiler::JSConstructWithArrayLikeNode
 
using v8::internal::compiler::JSConstructForwardAllArgsNode
 

Enumerations

enum class  v8::internal::compiler::ForInMode : uint8_t { v8::internal::compiler::kUseEnumCacheKeysAndIndices , v8::internal::compiler::kUseEnumCacheKeys , v8::internal::compiler::kGeneric }
 

Functions

std::ostream & v8::internal::compiler::operator<< (std::ostream &os, CallFrequency const &f)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, ConstructForwardVarargsParameters const &p)
 
ConstructForwardVarargsParameters const & v8::internal::compiler::ConstructForwardVarargsParametersOf (Operator const *op)
 
bool v8::internal::compiler::operator== (ConstructParameters const &lhs, ConstructParameters const &rhs)
 
bool v8::internal::compiler::operator!= (ConstructParameters const &lhs, ConstructParameters const &rhs)
 
size_t v8::internal::compiler::hash_value (ConstructParameters const &p)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, ConstructParameters const &p)
 
ConstructParameters const & v8::internal::compiler::ConstructParametersOf (Operator const *op)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, CallForwardVarargsParameters const &p)
 
CallForwardVarargsParameters const & v8::internal::compiler::CallForwardVarargsParametersOf (Operator const *op)
 
size_t v8::internal::compiler::hash_value (CallParameters const &p)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, CallParameters const &p)
 
const CallParametersv8::internal::compiler::CallParametersOf (const Operator *op)
 
bool v8::internal::compiler::operator== (CallRuntimeParameters const &lhs, CallRuntimeParameters const &rhs)
 
bool v8::internal::compiler::operator!= (CallRuntimeParameters const &lhs, CallRuntimeParameters const &rhs)
 
size_t v8::internal::compiler::hash_value (CallRuntimeParameters const &p)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, CallRuntimeParameters const &p)
 
const CallRuntimeParametersv8::internal::compiler::CallRuntimeParametersOf (const Operator *op)
 
bool v8::internal::compiler::operator== (ContextAccess const &lhs, ContextAccess const &rhs)
 
bool v8::internal::compiler::operator!= (ContextAccess const &lhs, ContextAccess const &rhs)
 
size_t v8::internal::compiler::hash_value (ContextAccess const &access)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, ContextAccess const &access)
 
ContextAccess const & v8::internal::compiler::ContextAccessOf (Operator const *op)
 
CreateFunctionContextParameters const & v8::internal::compiler::CreateFunctionContextParametersOf (Operator const *op)
 
DefineNamedOwnPropertyParameters const & v8::internal::compiler::DefineNamedOwnPropertyParametersOf (const Operator *op)
 
bool v8::internal::compiler::operator== (FeedbackParameter const &lhs, FeedbackParameter const &rhs)
 
bool v8::internal::compiler::operator!= (FeedbackParameter const &lhs, FeedbackParameter const &rhs)
 
size_t v8::internal::compiler::hash_value (FeedbackParameter const &p)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, FeedbackParameter const &p)
 
FeedbackParameter const & v8::internal::compiler::FeedbackParameterOf (const Operator *op)
 
NamedAccess const & v8::internal::compiler::NamedAccessOf (const Operator *op)
 
const LoadGlobalParametersv8::internal::compiler::LoadGlobalParametersOf (const Operator *op)
 
const StoreGlobalParametersv8::internal::compiler::StoreGlobalParametersOf (const Operator *op)
 
bool v8::internal::compiler::operator== (PropertyAccess const &lhs, PropertyAccess const &rhs)
 
bool v8::internal::compiler::operator!= (PropertyAccess const &lhs, PropertyAccess const &rhs)
 
size_t v8::internal::compiler::hash_value (PropertyAccess const &p)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, PropertyAccess const &p)
 
PropertyAccess const & v8::internal::compiler::PropertyAccessOf (const Operator *op)
 
CreateArgumentsType const & v8::internal::compiler::CreateArgumentsTypeOf (const Operator *op)
 
const CreateArrayParametersv8::internal::compiler::CreateArrayParametersOf (const Operator *op)
 
bool v8::internal::compiler::operator== (CreateArrayIteratorParameters const &lhs, CreateArrayIteratorParameters const &rhs)
 
bool v8::internal::compiler::operator!= (CreateArrayIteratorParameters const &lhs, CreateArrayIteratorParameters const &rhs)
 
size_t v8::internal::compiler::hash_value (CreateArrayIteratorParameters const &p)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, CreateArrayIteratorParameters const &p)
 
const CreateArrayIteratorParametersv8::internal::compiler::CreateArrayIteratorParametersOf (const Operator *op)
 
bool v8::internal::compiler::operator== (CreateCollectionIteratorParameters const &lhs, CreateCollectionIteratorParameters const &rhs)
 
bool v8::internal::compiler::operator!= (CreateCollectionIteratorParameters const &lhs, CreateCollectionIteratorParameters const &rhs)
 
size_t v8::internal::compiler::hash_value (CreateCollectionIteratorParameters const &p)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, CreateCollectionIteratorParameters const &p)
 
const CreateCollectionIteratorParametersv8::internal::compiler::CreateCollectionIteratorParametersOf (const Operator *op)
 
const CreateBoundFunctionParametersv8::internal::compiler::CreateBoundFunctionParametersOf (const Operator *op)
 
const CreateClosureParametersv8::internal::compiler::CreateClosureParametersOf (const Operator *op)
 
const GetTemplateObjectParametersv8::internal::compiler::GetTemplateObjectParametersOf (const Operator *op)
 
const CreateLiteralParametersv8::internal::compiler::CreateLiteralParametersOf (const Operator *op)
 
bool v8::internal::compiler::operator== (CloneObjectParameters const &lhs, CloneObjectParameters const &rhs)
 
bool v8::internal::compiler::operator!= (CloneObjectParameters const &lhs, CloneObjectParameters const &rhs)
 
size_t v8::internal::compiler::hash_value (CloneObjectParameters const &p)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, CloneObjectParameters const &p)
 
const CloneObjectParametersv8::internal::compiler::CloneObjectParametersOf (const Operator *op)
 
bool v8::internal::compiler::operator== (GetIteratorParameters const &lhs, GetIteratorParameters const &rhs)
 
bool v8::internal::compiler::operator!= (GetIteratorParameters const &lhs, GetIteratorParameters const &rhs)
 
size_t v8::internal::compiler::hash_value (GetIteratorParameters const &p)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, GetIteratorParameters const &p)
 
GetIteratorParameters const & v8::internal::compiler::GetIteratorParametersOf (const Operator *op)
 
size_t v8::internal::compiler::hash_value (ForInMode const &mode)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, ForInMode const &mode)
 
bool v8::internal::compiler::operator== (ForInParameters const &lhs, ForInParameters const &rhs)
 
bool v8::internal::compiler::operator!= (ForInParameters const &lhs, ForInParameters const &rhs)
 
size_t v8::internal::compiler::hash_value (ForInParameters const &p)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, ForInParameters const &p)
 
ForInParameters const & v8::internal::compiler::ForInParametersOf (const Operator *op)
 
int v8::internal::compiler::RegisterCountOf (Operator const *op)
 
int v8::internal::compiler::GeneratorStoreValueCountOf (const Operator *op)
 
int v8::internal::compiler::RestoreRegisterIndexOf (const Operator *op)
 
ScopeInfoRef v8::internal::compiler::ScopeInfoOf (const Operator *op)
 
bool v8::internal::compiler::operator== (ScopeInfoRef lhs, ScopeInfoRef rhs)
 
bool v8::internal::compiler::operator!= (ScopeInfoRef lhs, ScopeInfoRef rhs)
 
size_t v8::internal::compiler::hash_value (ScopeInfoRef ref)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, ScopeInfoRef ref)
 
TNode< Oddballv8::internal::compiler::js_node_wrapper_utils::UndefinedConstant (JSGraph *jsgraph)
 
template<int kOpcode>
bool v8::internal::compiler::IsExpectedOpcode (int opcode)
 
template<int kOpcode1, int kOpcode2, int... kOpcodes>
bool v8::internal::compiler::IsExpectedOpcode (int opcode)
 

Macro Definition Documentation

◆ CASE [1/2]

#define CASE ( Name,
... )
Value:
case IrOpcode::k##Name: \
return true;

◆ CASE [2/2]

#define CASE ( Name,
... )
Value:
case IrOpcode::k##Name: \
return true;

◆ DEFINE_INPUT_ACCESSORS

#define DEFINE_INPUT_ACCESSORS ( Name,
name,
TheIndex,
Type )
Value:
static constexpr int Name##Index() { return TheIndex; } \
TNode<Type> name() const { \
return TNode<Type>::UncheckedCast( \
NodeProperties::GetValueInput(node(), TheIndex)); \
}
const char * name
Definition builtins.cc:39
Node * node

Definition at line 1163 of file js-operator.h.

◆ INPUTS [1/26]

#define INPUTS ( V)
Value:
V(Value, value, 0, Object) \
V(FeedbackVector, feedback_vector, 1, HeapObject)
#define V(JSName,...)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [2/26]

#define INPUTS ( V)
Value:
V(Left, left, 0, Object) \
V(Right, right, 1, Object) \
V(FeedbackVector, feedback_vector, 2, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [3/26]

#define INPUTS ( V)
Value:
V(Receiver, receiver, 0, Object) \
V(FeedbackVector, feedback_vector, 1, HeapObject)
TNode< Object > receiver

Definition at line 1176 of file js-operator.h.

◆ INPUTS [4/26]

#define INPUTS ( V)
Value:
V(Source, source, 0, Object) \
V(FeedbackVector, feedback_vector, 1, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [5/26]

#define INPUTS ( V)
Value:
V(FeedbackVector, feedback_vector, 0, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [6/26]

#define INPUTS ( V)
Value:
V(FeedbackVector, feedback_vector, 0, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [7/26]

#define INPUTS ( V)
Value:
V(Object, object, 0, Object) \
V(Key, key, 1, Object) \
V(FeedbackVector, feedback_vector, 2, HeapObject)
std::unique_ptr< ValueMirror > key

Definition at line 1176 of file js-operator.h.

◆ INPUTS [8/26]

#define INPUTS ( V)
Value:
V(Object, object, 0, Object) \
V(Key, key, 1, Object) \
V(FeedbackVector, feedback_vector, 2, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [9/26]

#define INPUTS ( V)
Value:
V(Object, object, 0, Object) \
V(Key, key, 1, Object) \
V(Value, value, 2, Object) \
V(FeedbackVector, feedback_vector, 3, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [10/26]

#define INPUTS ( V)
Value:
V(Object, object, 0, Object) \
V(Key, key, 1, Object) \
V(Value, value, 2, Object) \
V(Flags, flags, 3, Object) \
V(FeedbackVector, feedback_vector, 4, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [11/26]

#define INPUTS ( V)
Value:
V(Target, target, 0, Object) \
V(ReceiverOrNewTarget, receiver_or_new_target, 1, Object)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [12/26]

#define INPUTS ( V)
Value:
V(Target, target, 0, Object) \
V(Receiver, receiver, 1, Object)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [13/26]

#define INPUTS ( V)
Value:
V(Target, target, 0, Object) \
V(NewTarget, new_target, 1, Object)
DirectHandle< Object > new_target
Definition execution.cc:75

Definition at line 1176 of file js-operator.h.

◆ INPUTS [14/26]

#define INPUTS ( V)
Value:
V(Object, object, 0, Object) \
V(FeedbackVector, feedback_vector, 1, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [15/26]

#define INPUTS ( V)
Value:
V(Receiver, receiver, 0, Object) \
V(HomeObject, home_object, 1, Object) \
V(FeedbackVector, feedback_vector, 2, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [16/26]

#define INPUTS ( V)
Value:
V(Object, object, 0, Object) \
V(Value, value, 1, Object) \
V(FeedbackVector, feedback_vector, 2, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [17/26]

#define INPUTS ( V)
Value:
V(Object, object, 0, Object) \
V(Value, value, 1, Object) \
V(FeedbackVector, feedback_vector, 2, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [18/26]

#define INPUTS ( V)
Value:
V(Value, value, 0, Object) \
V(FeedbackVector, feedback_vector, 1, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [19/26]

#define INPUTS ( V)
Value:
V(FeedbackVector, feedback_vector, 0, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [20/26]

#define INPUTS ( V)
Value:
V(FeedbackVector, feedback_vector, 0, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [21/26]

#define INPUTS ( V)
Value:
V(Object, object, 0, Object) \
V(Name, name, 1, Object) \
V(Value, value, 2, Object) \
V(Flags, flags, 3, Object) \
V(FeedbackVector, feedback_vector, 4, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [22/26]

#define INPUTS ( V)
Value:
V(Array, array, 0, Object) \
V(Index, index, 1, Object) \
V(Value, value, 2, Object) \
V(FeedbackVector, feedback_vector, 3, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [23/26]

#define INPUTS ( V)
Value:
V(FeedbackCell, feedback_cell, 0, FeedbackCell)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [24/26]

#define INPUTS ( V)
Value:
V(Enumerator, enumerator, 0, Object) \
V(FeedbackVector, feedback_vector, 1, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [25/26]

#define INPUTS ( V)
Value:
V(Receiver, receiver, 0, Object) \
V(CacheArray, cache_array, 1, Object) \
V(CacheType, cache_type, 2, Object) \
V(Index, index, 3, Smi) \
V(FeedbackVector, feedback_vector, 4, HeapObject)

Definition at line 1176 of file js-operator.h.

◆ INPUTS [26/26]

#define INPUTS ( V)
Value:
V(ThisFunction, this_function, 0, Object) \
V(NewTarget, new_target, 1, Object)

Definition at line 1176 of file js-operator.h.

◆ JS_BINOP_WITH_FEEDBACK

#define JS_BINOP_WITH_FEEDBACK ( V)
Value:
JS_BITWISE_BINOP_LIST(V) \
JS_COMPARE_BINOP_LIST(V) \
V(JSInstanceOf, InstanceOf)
#define JS_ARITH_BINOP_LIST(V)
Definition opcodes.h:116

Definition at line 50 of file js-operator.h.

◆ JS_UNOP_WITH_FEEDBACK

#define JS_UNOP_WITH_FEEDBACK ( V)
Value:
JS_ARITH_UNOP_LIST(V)
#define JS_BITWISE_UNOP_LIST(V)
Definition opcodes.h:144

Definition at line 46 of file js-operator.h.

◆ V [1/2]

#define V ( JSName,
... )
Value:
using JSName##Node = JSUnaryOpNode;

Definition at line 1183 of file js-operator.h.

◆ V [2/2]

#define V ( JSName,
... )
Value:
using JSName##Node = JSBinaryOpNode;

Definition at line 1183 of file js-operator.h.