V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
v8::internal::interpreter::BytecodeArrayBuilder Class Referencefinal

Public Types

enum  ContextSlotMutability { kImmutableSlot, kMutableSlot }
 
enum  ToBooleanMode { kConvertToBoolean, kAlreadyBoolean }
 
enum  NilValue { kNullValue, kUndefinedValue }
 

Public Member Functions

 BytecodeArrayBuilder (Zone *zone, int parameter_count, int locals_count, FeedbackVectorSpec *feedback_vector_spec=nullptr, SourcePositionTableBuilder::RecordingMode source_position_mode=SourcePositionTableBuilder::RECORD_SOURCE_POSITIONS)
 
Handle< BytecodeArray > ToBytecodeArray (Isolate *isolate)
 
int parameter_count () const
 
int locals_count () const
 
int fixed_register_count () const
 
int total_register_count () const
 
Register Local (int index) const
 
Register Parameter (int parameter_index) const
 
Register Receiver () const
 
BytecodeArrayBuilder & LoadConstantPoolEntry (size_t entry)
 
BytecodeArrayBuilder & LoadLiteral (Smi value)
 
BytecodeArrayBuilder & LoadLiteral (double value)
 
BytecodeArrayBuilder & LoadLiteral (const AstRawString *raw_string)
 
BytecodeArrayBuilder & LoadLiteral (const Scope *scope)
 
BytecodeArrayBuilder & LoadLiteral (AstBigInt bigint)
 
BytecodeArrayBuilder & LoadLiteral (AstSymbol symbol)
 
BytecodeArrayBuilder & LoadUndefined ()
 
BytecodeArrayBuilder & LoadNull ()
 
BytecodeArrayBuilder & LoadTheHole ()
 
BytecodeArrayBuilder & LoadTrue ()
 
BytecodeArrayBuilder & LoadFalse ()
 
BytecodeArrayBuilder & LoadBoolean (bool value)
 
BytecodeArrayBuilder & LoadGlobal (const AstRawString *name, int feedback_slot, TypeofMode typeof_mode)
 
BytecodeArrayBuilder & StoreGlobal (const AstRawString *name, int feedback_slot)
 
BytecodeArrayBuilder & LoadContextSlot (Register context, int slot_index, int depth, ContextSlotMutability immutable)
 
BytecodeArrayBuilder & StoreContextSlot (Register context, int slot_index, int depth)
 
BytecodeArrayBuilder & LoadModuleVariable (int cell_index, int depth)
 
BytecodeArrayBuilder & StoreModuleVariable (int cell_index, int depth)
 
BytecodeArrayBuilder & LoadAccumulatorWithRegister (Register reg)
 
BytecodeArrayBuilder & StoreAccumulatorInRegister (Register reg)
 
BytecodeArrayBuilder & MoveRegister (Register from, Register to)
 
BytecodeArrayBuilder & LoadNamedProperty (Register object, const AstRawString *name, int feedback_slot)
 
BytecodeArrayBuilder & LoadNamedPropertyNoFeedback (Register object, const AstRawString *name)
 
BytecodeArrayBuilder & LoadKeyedProperty (Register object, int feedback_slot)
 
BytecodeArrayBuilder & LoadIteratorProperty (Register object, int feedback_slot)
 
BytecodeArrayBuilder & LoadAsyncIteratorProperty (Register object, int feedback_slot)
 
BytecodeArrayBuilder & StoreDataPropertyInLiteral (Register object, Register name, DataPropertyInLiteralFlags flags, int feedback_slot)
 
BytecodeArrayBuilder & CollectTypeProfile (int position)
 
BytecodeArrayBuilder & StoreNamedProperty (Register object, const AstRawString *name, int feedback_slot, LanguageMode language_mode)
 
BytecodeArrayBuilder & StoreNamedPropertyNoFeedback (Register object, const AstRawString *name, LanguageMode language_mode)
 
BytecodeArrayBuilder & StoreNamedProperty (Register object, size_t constant_pool_entry, int feedback_slot, LanguageMode language_mode)
 
BytecodeArrayBuilder & StoreNamedOwnProperty (Register object, const AstRawString *name, int feedback_slot)
 
BytecodeArrayBuilder & StoreKeyedProperty (Register object, Register key, int feedback_slot, LanguageMode language_mode)
 
BytecodeArrayBuilder & StoreInArrayLiteral (Register array, Register index, int feedback_slot)
 
BytecodeArrayBuilder & StoreHomeObjectProperty (Register object, int feedback_slot, LanguageMode language_mode)
 
BytecodeArrayBuilder & StoreClassFieldsInitializer (Register constructor, int feedback_slot)
 
BytecodeArrayBuilder & LoadClassFieldsInitializer (Register constructor, int feedback_slot)
 
BytecodeArrayBuilder & LoadLookupSlot (const AstRawString *name, TypeofMode typeof_mode)
 
BytecodeArrayBuilder & LoadLookupContextSlot (const AstRawString *name, TypeofMode typeof_mode, int slot_index, int depth)
 
BytecodeArrayBuilder & LoadLookupGlobalSlot (const AstRawString *name, TypeofMode typeof_mode, int feedback_slot, int depth)
 
BytecodeArrayBuilder & StoreLookupSlot (const AstRawString *name, LanguageMode language_mode, LookupHoistingMode lookup_hoisting_mode)
 
BytecodeArrayBuilder & CreateClosure (size_t shared_function_info_entry, int slot, int flags)
 
BytecodeArrayBuilder & CreateBlockContext (const Scope *scope)
 
BytecodeArrayBuilder & CreateCatchContext (Register exception, const Scope *scope)
 
BytecodeArrayBuilder & CreateFunctionContext (const Scope *scope, int slots)
 
BytecodeArrayBuilder & CreateEvalContext (const Scope *scope, int slots)
 
BytecodeArrayBuilder & CreateWithContext (Register object, const Scope *scope)
 
BytecodeArrayBuilder & CreateArguments (CreateArgumentsType type)
 
BytecodeArrayBuilder & CreateRegExpLiteral (const AstRawString *pattern, int literal_index, int flags)
 
BytecodeArrayBuilder & CreateArrayLiteral (size_t constant_elements_entry, int literal_index, int flags)
 
BytecodeArrayBuilder & CreateEmptyArrayLiteral (int literal_index)
 
BytecodeArrayBuilder & CreateArrayFromIterable ()
 
BytecodeArrayBuilder & CreateObjectLiteral (size_t constant_properties_entry, int literal_index, int flags)
 
BytecodeArrayBuilder & CreateEmptyObjectLiteral ()
 
BytecodeArrayBuilder & CloneObject (Register source, int flags, int feedback_slot)
 
BytecodeArrayBuilder & GetTemplateObject (size_t template_object_description_entry, int feedback_slot)
 
BytecodeArrayBuilder & PushContext (Register context)
 
BytecodeArrayBuilder & PopContext (Register context)
 
BytecodeArrayBuilder & CallProperty (Register callable, RegisterList args, int feedback_slot)
 
BytecodeArrayBuilder & CallUndefinedReceiver (Register callable, RegisterList args, int feedback_slot)
 
BytecodeArrayBuilder & CallAnyReceiver (Register callable, RegisterList args, int feedback_slot)
 
BytecodeArrayBuilder & CallNoFeedback (Register callable, RegisterList args)
 
BytecodeArrayBuilder & TailCall (Register callable, RegisterList args, int feedback_slot)
 
BytecodeArrayBuilder & CallWithSpread (Register callable, RegisterList args, int feedback_slot)
 
BytecodeArrayBuilder & Construct (Register constructor, RegisterList args, int feedback_slot)
 
BytecodeArrayBuilder & ConstructWithSpread (Register constructor, RegisterList args, int feedback_slot)
 
BytecodeArrayBuilder & CallRuntime (Runtime::FunctionId function_id, RegisterList args)
 
BytecodeArrayBuilder & CallRuntime (Runtime::FunctionId function_id, Register arg)
 
BytecodeArrayBuilder & CallRuntime (Runtime::FunctionId function_id)
 
BytecodeArrayBuilder & CallRuntimeForPair (Runtime::FunctionId function_id, RegisterList args, RegisterList return_pair)
 
BytecodeArrayBuilder & CallRuntimeForPair (Runtime::FunctionId function_id, Register arg, RegisterList return_pair)
 
BytecodeArrayBuilder & CallJSRuntime (int context_index, RegisterList args)
 
BytecodeArrayBuilder & BinaryOperation (Token::Value binop, Register reg, int feedback_slot)
 
BytecodeArrayBuilder & BinaryOperationSmiLiteral (Token::Value binop, Smi literal, int feedback_slot)
 
BytecodeArrayBuilder & UnaryOperation (Token::Value op, int feedback_slot)
 
BytecodeArrayBuilder & LogicalNot (ToBooleanMode mode)
 
BytecodeArrayBuilder & TypeOf ()
 
BytecodeArrayBuilder & GetSuperConstructor (Register out)
 
BytecodeArrayBuilder & Delete (Register object, LanguageMode language_mode)
 
BytecodeArrayBuilder & CompareOperation (Token::Value op, Register reg, int feedback_slot)
 
BytecodeArrayBuilder & CompareOperation (Token::Value op, Register reg)
 
BytecodeArrayBuilder & CompareReference (Register reg)
 
BytecodeArrayBuilder & CompareUndetectable ()
 
BytecodeArrayBuilder & CompareUndefined ()
 
BytecodeArrayBuilder & CompareNull ()
 
BytecodeArrayBuilder & CompareNil (Token::Value op, NilValue nil)
 
BytecodeArrayBuilder & CompareTypeOf (TestTypeOfFlags::LiteralFlag literal_flag)
 
BytecodeArrayBuilder & ToObject (Register out)
 
BytecodeArrayBuilder & ToName (Register out)
 
BytecodeArrayBuilder & ToString ()
 
BytecodeArrayBuilder & ToNumber (int feedback_slot)
 
BytecodeArrayBuilder & ToNumeric (int feedback_slot)
 
BytecodeArrayBuilder & Bind (BytecodeLabel *label)
 
BytecodeArrayBuilder & Bind (const BytecodeLabel &target, BytecodeLabel *label)
 
BytecodeArrayBuilder & Bind (BytecodeJumpTable *jump_table, int case_value)
 
BytecodeArrayBuilder & Jump (BytecodeLabel *label)
 
BytecodeArrayBuilder & JumpLoop (BytecodeLabel *label, int loop_depth)
 
BytecodeArrayBuilder & JumpIfTrue (ToBooleanMode mode, BytecodeLabel *label)
 
BytecodeArrayBuilder & JumpIfFalse (ToBooleanMode mode, BytecodeLabel *label)
 
BytecodeArrayBuilder & JumpIfNotHole (BytecodeLabel *label)
 
BytecodeArrayBuilder & JumpIfJSReceiver (BytecodeLabel *label)
 
BytecodeArrayBuilder & JumpIfNull (BytecodeLabel *label)
 
BytecodeArrayBuilder & JumpIfNotNull (BytecodeLabel *label)
 
BytecodeArrayBuilder & JumpIfUndefined (BytecodeLabel *label)
 
BytecodeArrayBuilder & JumpIfNotUndefined (BytecodeLabel *label)
 
BytecodeArrayBuilder & JumpIfNil (BytecodeLabel *label, Token::Value op, NilValue nil)
 
BytecodeArrayBuilder & JumpIfNotNil (BytecodeLabel *label, Token::Value op, NilValue nil)
 
BytecodeArrayBuilder & SwitchOnSmiNoFeedback (BytecodeJumpTable *jump_table)
 
BytecodeArrayBuilder & StackCheck (int position)
 
BytecodeArrayBuilder & SetPendingMessage ()
 
BytecodeArrayBuilder & Throw ()
 
BytecodeArrayBuilder & ReThrow ()
 
BytecodeArrayBuilder & Abort (AbortReason reason)
 
BytecodeArrayBuilder & Return ()
 
BytecodeArrayBuilder & ThrowReferenceErrorIfHole (const AstRawString *name)
 
BytecodeArrayBuilder & ThrowSuperNotCalledIfHole ()
 
BytecodeArrayBuilder & ThrowSuperAlreadyCalledIfNotHole ()
 
BytecodeArrayBuilder & Debugger ()
 
BytecodeArrayBuilder & IncBlockCounter (int slot)
 
BytecodeArrayBuilder & ForInEnumerate (Register receiver)
 
BytecodeArrayBuilder & ForInPrepare (RegisterList cache_info_triple, int feedback_slot)
 
BytecodeArrayBuilder & ForInContinue (Register index, Register cache_length)
 
BytecodeArrayBuilder & ForInNext (Register receiver, Register index, RegisterList cache_type_array_pair, int feedback_slot)
 
BytecodeArrayBuilder & ForInStep (Register index)
 
BytecodeArrayBuilder & SuspendGenerator (Register generator, RegisterList registers, int suspend_id)
 
BytecodeArrayBuilder & SwitchOnGeneratorState (Register generator, BytecodeJumpTable *jump_table)
 
BytecodeArrayBuilder & ResumeGenerator (Register generator, RegisterList registers)
 
BytecodeArrayBuilder & MarkHandler (int handler_id, HandlerTable::CatchPrediction will_catch)
 
BytecodeArrayBuilder & MarkTryBegin (int handler_id, Register context)
 
BytecodeArrayBuilder & MarkTryEnd (int handler_id)
 
int NewHandlerEntry ()
 
BytecodeJumpTable * AllocateJumpTable (int size, int case_value_base)
 
size_t GetConstantPoolEntry (const AstRawString *raw_string)
 
size_t GetConstantPoolEntry (AstBigInt bigint)
 
size_t GetConstantPoolEntry (const Scope *scope)
 
size_t GetConstantPoolEntry (double number)
 
size_t AllocateDeferredConstantPoolEntry ()
 
void SetDeferredConstantPoolEntry (size_t entry, Handle< Object > object)
 
void InitializeReturnPosition (FunctionLiteral *literal)
 
void SetStatementPosition (Statement *stmt)
 
void SetExpressionPosition (Expression *expr)
 
void SetExpressionPosition (int position)
 
void SetExpressionAsStatementPosition (Expression *expr)
 
void SetReturnPosition (int source_position, FunctionLiteral *literal)
 
bool RequiresImplicitReturn () const
 
bool RemainderOfBlockIsDead () const
 
uint32_t GetInputRegisterOperand (Register reg)
 
uint32_t GetOutputRegisterOperand (Register reg)
 
uint32_t GetInputRegisterListOperand (RegisterList reg_list)
 
uint32_t GetOutputRegisterListOperand (RegisterList reg_list)
 
void OutputLdarRaw (Register reg)
 
void OutputStarRaw (Register reg)
 
void OutputMovRaw (Register src, Register dest)
 
BytecodeRegisterAllocator * register_allocator ()
 
const BytecodeRegisterAllocator * register_allocator () const
 
Zone * zone () const
 

Friends

class BytecodeRegisterAllocator
 
template<Bytecode bytecode, AccumulatorUse accumulator_use, OperandType... operand_types>
class BytecodeNodeBuilder
 

Detailed Description

Definition at line 35 of file bytecode-array-builder.h.


The documentation for this class was generated from the following files: