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

#include <regexp-nodes.h>

Inheritance diagram for v8::internal::TextNode:
Collaboration diagram for v8::internal::TextNode:

Public Member Functions

 TextNode (ZoneList< TextElement > *elms, bool read_backward, RegExpNode *on_success)
 
 TextNode (RegExpClassRanges *that, bool read_backward, RegExpNode *on_success)
 
TextNodeAsTextNode () override
 
void Accept (NodeVisitor *visitor) override
 
void Emit (RegExpCompiler *compiler, Trace *trace) override
 
void GetQuickCheckDetails (QuickCheckDetails *details, RegExpCompiler *compiler, int characters_filled_in, bool not_at_start) override
 
ZoneList< TextElement > * elements ()
 
bool read_backward ()
 
void MakeCaseIndependent (Isolate *isolate, bool is_one_byte, RegExpFlags flags)
 
int GreedyLoopTextLength () override
 
RegExpNodeGetSuccessorOfOmnivorousTextNode (RegExpCompiler *compiler) override
 
void FillInBMInfo (Isolate *isolate, int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start) override
 
void CalculateOffsets ()
 
RegExpNodeFilterOneByte (int depth, RegExpCompiler *compiler) override
 
int Length ()
 
- Public Member Functions inherited from v8::internal::SeqRegExpNode
 SeqRegExpNode (RegExpNode *on_success)
 
RegExpNodeon_success ()
 
void set_on_success (RegExpNode *node)
 
SeqRegExpNodeAsSeqRegExpNode () override
 
- Public Member Functions inherited from v8::internal::RegExpNode
 RegExpNode (Zone *zone)
 
virtual ~RegExpNode ()
 
uint32_t EatsAtLeast (bool not_at_start)
 
virtual EatsAtLeastInfo EatsAtLeastFromLoopEntry ()
 
bool EmitQuickCheck (RegExpCompiler *compiler, Trace *bounds_check_trace, Trace *trace, bool preload_has_checked_bounds, Label *on_possible_success, QuickCheckDetails *details_return, bool fall_through_on_failure, ChoiceNode *predecessor)
 
virtual void GetQuickCheckDetailsFromLoopEntry (QuickCheckDetails *details, RegExpCompiler *compiler, int characters_filled_in, bool not_at_start)
 
bool KeepRecursing (RegExpCompiler *compiler)
 
RegExpNodereplacement ()
 
RegExpNodeset_replacement (RegExpNode *replacement)
 
void SaveBMInfo (BoyerMooreLookahead *bm, bool not_at_start, int offset)
 
Labellabel ()
 
bool on_work_list ()
 
void set_on_work_list (bool value)
 
NodeInfoinfo ()
 
const EatsAtLeastInfoeats_at_least_info () const
 
void set_eats_at_least_info (const EatsAtLeastInfo &eats_at_least)
 
void SetDoNotInline ()
 
BoyerMooreLookaheadbm_info (bool not_at_start)
 
Zonezone () const
 
- Public Member Functions inherited from v8::internal::ZoneObject
void * operator new (size_t, Zone *)=delete
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)=delete
 

Static Public Member Functions

static TextNodeCreateForCharacterRanges (Zone *zone, ZoneList< CharacterRange > *ranges, bool read_backward, RegExpNode *on_success)
 
static TextNodeCreateForSurrogatePair (Zone *zone, CharacterRange lead, ZoneList< CharacterRange > *trail_ranges, bool read_backward, RegExpNode *on_success)
 
static TextNodeCreateForSurrogatePair (Zone *zone, ZoneList< CharacterRange > *lead_ranges, CharacterRange trail, bool read_backward, RegExpNode *on_success)
 

Private Types

enum  TextEmitPassType {
  NON_LATIN1_MATCH , SIMPLE_CHARACTER_MATCH , NON_LETTER_CHARACTER_MATCH , CASE_CHARACTER_MATCH ,
  CHARACTER_CLASS_MATCH
}
 

Private Member Functions

void TextEmitPass (RegExpCompiler *compiler, TextEmitPassType pass, bool preloaded, Trace *trace, bool first_element_checked, int *checked_up_to)
 

Private Attributes

ZoneList< TextElement > * elms_
 
bool read_backward_
 

Additional Inherited Members

- Static Public Attributes inherited from v8::internal::RegExpNode
static const int kNodeIsTooComplexForGreedyLoops = kMinInt
 
static const int kRecursionBudget = 200
 
static const int kMaxCopiesCodeGenerated = 10
 
- Protected Types inherited from v8::internal::RegExpNode
enum  LimitResult { DONE , CONTINUE }
 
- Protected Member Functions inherited from v8::internal::SeqRegExpNode
RegExpNodeFilterSuccessor (int depth, RegExpCompiler *compiler)
 
- Protected Member Functions inherited from v8::internal::RegExpNode
LimitResult LimitVersions (RegExpCompiler *compiler, Trace *trace)
 
void set_bm_info (bool not_at_start, BoyerMooreLookahead *bm)
 
- Protected Attributes inherited from v8::internal::RegExpNode
RegExpNodereplacement_
 

Detailed Description

Definition at line 425 of file regexp-nodes.h.

Member Enumeration Documentation

◆ TextEmitPassType

Enumerator
NON_LATIN1_MATCH 
SIMPLE_CHARACTER_MATCH 
NON_LETTER_CHARACTER_MATCH 
CASE_CHARACTER_MATCH 
CHARACTER_CLASS_MATCH 

Definition at line 471 of file regexp-nodes.h.

Constructor & Destructor Documentation

◆ TextNode() [1/2]

v8::internal::TextNode::TextNode ( ZoneList< TextElement > * elms,
bool read_backward,
RegExpNode * on_success )
inline

Definition at line 427 of file regexp-nodes.h.

◆ TextNode() [2/2]

v8::internal::TextNode::TextNode ( RegExpClassRanges * that,
bool read_backward,
RegExpNode * on_success )
inline

Definition at line 430 of file regexp-nodes.h.

Here is the call graph for this function:

Member Function Documentation

◆ Accept()

void v8::internal::TextNode::Accept ( NodeVisitor * visitor)
overridevirtual

◆ AsTextNode()

TextNode * v8::internal::TextNode::AsTextNode ( )
inlineoverride

Definition at line 451 of file regexp-nodes.h.

◆ CalculateOffsets()

void v8::internal::TextNode::CalculateOffsets ( )

Definition at line 3617 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ CreateForCharacterRanges()

TextNode * v8::internal::TextNode::CreateForCharacterRanges ( Zone * zone,
ZoneList< CharacterRange > * ranges,
bool read_backward,
RegExpNode * on_success )
static

Definition at line 2504 of file regexp-compiler.cc.

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

◆ CreateForSurrogatePair() [1/2]

TextNode * v8::internal::TextNode::CreateForSurrogatePair ( Zone * zone,
CharacterRange lead,
ZoneList< CharacterRange > * trail_ranges,
bool read_backward,
RegExpNode * on_success )
static

Definition at line 2515 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ CreateForSurrogatePair() [2/2]

TextNode * v8::internal::TextNode::CreateForSurrogatePair ( Zone * zone,
ZoneList< CharacterRange > * lead_ranges,
CharacterRange trail,
bool read_backward,
RegExpNode * on_success )
static

Definition at line 2536 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ elements()

ZoneList< TextElement > * v8::internal::TextNode::elements ( )
inline

Definition at line 457 of file regexp-nodes.h.

Here is the caller graph for this function:

◆ Emit()

void v8::internal::TextNode::Emit ( RegExpCompiler * compiler,
Trace * trace )
overridevirtual

Implements v8::internal::RegExpNode.

Definition at line 2556 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ FillInBMInfo()

void v8::internal::TextNode::FillInBMInfo ( Isolate * isolate,
int offset,
int budget,
BoyerMooreLookahead * bm,
bool not_at_start )
overridevirtual

Reimplemented from v8::internal::SeqRegExpNode.

Definition at line 3971 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ FilterOneByte()

RegExpNode * v8::internal::TextNode::FilterOneByte ( int depth,
RegExpCompiler * compiler )
overridevirtual

Reimplemented from v8::internal::SeqRegExpNode.

Definition at line 1942 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ GetQuickCheckDetails()

void v8::internal::TextNode::GetQuickCheckDetails ( QuickCheckDetails * details,
RegExpCompiler * compiler,
int characters_filled_in,
bool not_at_start )
overridevirtual

Implements v8::internal::RegExpNode.

Definition at line 1656 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ GetSuccessorOfOmnivorousTextNode()

RegExpNode * v8::internal::TextNode::GetSuccessorOfOmnivorousTextNode ( RegExpCompiler * compiler)
overridevirtual

Reimplemented from v8::internal::RegExpNode.

Definition at line 2648 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ GreedyLoopTextLength()

int v8::internal::TextNode::GreedyLoopTextLength ( )
overridevirtual

Reimplemented from v8::internal::RegExpNode.

Definition at line 2646 of file regexp-compiler.cc.

◆ Length()

int v8::internal::TextNode::Length ( )

Definition at line 2498 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ MakeCaseIndependent()

void v8::internal::TextNode::MakeCaseIndependent ( Isolate * isolate,
bool is_one_byte,
RegExpFlags flags )

Definition at line 2623 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ read_backward()

bool v8::internal::TextNode::read_backward ( )
inline

Definition at line 458 of file regexp-nodes.h.

Here is the caller graph for this function:

◆ TextEmitPass()

void v8::internal::TextNode::TextEmitPass ( RegExpCompiler * compiler,
TextEmitPassType pass,
bool preloaded,
Trace * trace,
bool first_element_checked,
int * checked_up_to )
private

Definition at line 2417 of file regexp-compiler.cc.

Here is the call graph for this function:

Member Data Documentation

◆ elms_

ZoneList<TextElement>* v8::internal::TextNode::elms_
private

Definition at line 481 of file regexp-nodes.h.

◆ read_backward_

bool v8::internal::TextNode::read_backward_
private

Definition at line 482 of file regexp-nodes.h.


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