v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::interpreter::SwitchBuilder Class Referencefinal

#include <control-flow-builders.h>

Inheritance diagram for v8::internal::interpreter::SwitchBuilder:
Collaboration diagram for v8::internal::interpreter::SwitchBuilder:

Public Member Functions

 SwitchBuilder (BytecodeArrayBuilder *builder, BlockCoverageBuilder *block_coverage_builder, SwitchStatement *statement, int number_of_cases, BytecodeJumpTable *jump_table)
 
 ~SwitchBuilder () override
 
void BindCaseTargetForJumpTable (int case_value, CaseClause *clause)
 
void BindCaseTargetForCompareJump (int index, CaseClause *clause)
 
void JumpToCaseIfTrue (BytecodeArrayBuilder::ToBooleanMode mode, int index)
 
void EmitJumpTableIfExists (int min_case, int max_case, std::map< int, CaseClause * > &covered_cases)
 
void BindDefault (CaseClause *clause)
 
void JumpToDefault ()
 
void JumpToFallThroughIfFalse ()
 
- Public Member Functions inherited from v8::internal::interpreter::BreakableControlFlowBuilder
 BreakableControlFlowBuilder (BytecodeArrayBuilder *builder, BlockCoverageBuilder *block_coverage_builder, AstNode *node)
 
 ~BreakableControlFlowBuilder () override
 
void Break ()
 
void BreakIfTrue (BytecodeArrayBuilder::ToBooleanMode mode)
 
void BreakIfForInDone (Register index, Register cache_length)
 
BytecodeLabelsbreak_labels ()
 
- Public Member Functions inherited from v8::internal::interpreter::ControlFlowBuilder
 ControlFlowBuilder (BytecodeArrayBuilder *builder)
 
 ControlFlowBuilder (const ControlFlowBuilder &)=delete
 
ControlFlowBuilderoperator= (const ControlFlowBuilder &)=delete
 
virtual ~ControlFlowBuilder ()=default
 

Private Member Functions

void BuildBlockCoverage (CaseClause *clause)
 

Private Attributes

ZoneVector< BytecodeLabelcase_sites_
 
BytecodeLabels default_
 
BytecodeLabels fall_through_
 
BytecodeJumpTablejump_table_
 

Additional Inherited Members

- Protected Member Functions inherited from v8::internal::interpreter::BreakableControlFlowBuilder
void EmitJump (BytecodeLabels *labels)
 
void EmitJumpIfTrue (BytecodeArrayBuilder::ToBooleanMode mode, BytecodeLabels *labels)
 
void EmitJumpIfFalse (BytecodeArrayBuilder::ToBooleanMode mode, BytecodeLabels *labels)
 
void EmitJumpIfUndefined (BytecodeLabels *labels)
 
void EmitJumpIfForInDone (BytecodeLabels *labels, Register index, Register cache_length)
 
void BindBreakTarget ()
 
- Protected Member Functions inherited from v8::internal::interpreter::ControlFlowBuilder
BytecodeArrayBuilderbuilder () const
 
- Protected Attributes inherited from v8::internal::interpreter::BreakableControlFlowBuilder
BytecodeLabels break_labels_
 
AstNodenode_
 
BlockCoverageBuilderblock_coverage_builder_
 

Detailed Description

Definition at line 151 of file control-flow-builders.h.

Constructor & Destructor Documentation

◆ SwitchBuilder()

v8::internal::interpreter::SwitchBuilder::SwitchBuilder ( BytecodeArrayBuilder * builder,
BlockCoverageBuilder * block_coverage_builder,
SwitchStatement * statement,
int number_of_cases,
BytecodeJumpTable * jump_table )
inline

Definition at line 154 of file control-flow-builders.h.

◆ ~SwitchBuilder()

v8::internal::interpreter::SwitchBuilder::~SwitchBuilder ( )
override

Definition at line 99 of file control-flow-builders.cc.

Member Function Documentation

◆ BindCaseTargetForCompareJump()

void v8::internal::interpreter::SwitchBuilder::BindCaseTargetForCompareJump ( int index,
CaseClause * clause )

Definition at line 113 of file control-flow-builders.cc.

Here is the call graph for this function:

◆ BindCaseTargetForJumpTable()

void v8::internal::interpreter::SwitchBuilder::BindCaseTargetForJumpTable ( int case_value,
CaseClause * clause )

Definition at line 107 of file control-flow-builders.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BindDefault()

void v8::internal::interpreter::SwitchBuilder::BindDefault ( CaseClause * clause)

Definition at line 136 of file control-flow-builders.cc.

Here is the call graph for this function:

◆ BuildBlockCoverage()

void v8::internal::interpreter::SwitchBuilder::BuildBlockCoverage ( CaseClause * clause)
inlineprivate

Definition at line 193 of file control-flow-builders.h.

Here is the caller graph for this function:

◆ EmitJumpTableIfExists()

void v8::internal::interpreter::SwitchBuilder::EmitJumpTableIfExists ( int min_case,
int max_case,
std::map< int, CaseClause * > & covered_cases )

Definition at line 125 of file control-flow-builders.cc.

Here is the call graph for this function:

◆ JumpToCaseIfTrue()

void v8::internal::interpreter::SwitchBuilder::JumpToCaseIfTrue ( BytecodeArrayBuilder::ToBooleanMode mode,
int index )

Definition at line 119 of file control-flow-builders.cc.

Here is the call graph for this function:

◆ JumpToDefault()

void v8::internal::interpreter::SwitchBuilder::JumpToDefault ( )

Definition at line 141 of file control-flow-builders.cc.

Here is the call graph for this function:

◆ JumpToFallThroughIfFalse()

void v8::internal::interpreter::SwitchBuilder::JumpToFallThroughIfFalse ( )

Definition at line 143 of file control-flow-builders.cc.

Here is the call graph for this function:

Member Data Documentation

◆ case_sites_

ZoneVector<BytecodeLabel> v8::internal::interpreter::SwitchBuilder::case_sites_
private

Definition at line 188 of file control-flow-builders.h.

◆ default_

BytecodeLabels v8::internal::interpreter::SwitchBuilder::default_
private

Definition at line 189 of file control-flow-builders.h.

◆ fall_through_

BytecodeLabels v8::internal::interpreter::SwitchBuilder::fall_through_
private

Definition at line 190 of file control-flow-builders.h.

◆ jump_table_

BytecodeJumpTable* v8::internal::interpreter::SwitchBuilder::jump_table_
private

Definition at line 191 of file control-flow-builders.h.


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