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

#include <regexp-nodes.h>

Inheritance diagram for v8::internal::AssertionNode:
Collaboration diagram for v8::internal::AssertionNode:

Public Types

enum  AssertionType {
  AT_END , AT_START , AT_BOUNDARY , AT_NON_BOUNDARY ,
  AFTER_NEWLINE
}
 

Public Member Functions

AssertionNodeAsAssertionNode () override
 
void Accept (NodeVisitor *visitor) override
 
void Emit (RegExpCompiler *compiler, Trace *trace) override
 
void GetQuickCheckDetails (QuickCheckDetails *details, RegExpCompiler *compiler, int filled_in, bool not_at_start) override
 
void FillInBMInfo (Isolate *isolate, int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start) override
 
AssertionType assertion_type ()
 
- Public Member Functions inherited from v8::internal::SeqRegExpNode
 SeqRegExpNode (RegExpNode *on_success)
 
RegExpNodeon_success ()
 
void set_on_success (RegExpNode *node)
 
RegExpNodeFilterOneByte (int depth, RegExpCompiler *compiler) override
 
void FillInBMInfo (Isolate *isolate, int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start) override
 
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)
 
virtual int GreedyLoopTextLength ()
 
virtual RegExpNodeGetSuccessorOfOmnivorousTextNode (RegExpCompiler *compiler)
 
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 AssertionNodeAtEnd (RegExpNode *on_success)
 
static AssertionNodeAtStart (RegExpNode *on_success)
 
static AssertionNodeAtBoundary (RegExpNode *on_success)
 
static AssertionNodeAtNonBoundary (RegExpNode *on_success)
 
static AssertionNodeAfterNewline (RegExpNode *on_success)
 

Private Types

enum  IfPrevious { kIsNonWord , kIsWord }
 

Private Member Functions

void EmitBoundaryCheck (RegExpCompiler *compiler, Trace *trace)
 
void BacktrackIfPrevious (RegExpCompiler *compiler, Trace *trace, IfPrevious backtrack_if_previous)
 
 AssertionNode (AssertionType t, RegExpNode *on_success)
 

Private Attributes

friend Zone
 
AssertionType assertion_type_
 

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 485 of file regexp-nodes.h.

Member Enumeration Documentation

◆ AssertionType

Enumerator
AT_END 
AT_START 
AT_BOUNDARY 
AT_NON_BOUNDARY 
AFTER_NEWLINE 

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

◆ IfPrevious

Enumerator
kIsNonWord 
kIsWord 

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

Constructor & Destructor Documentation

◆ AssertionNode()

v8::internal::AssertionNode::AssertionNode ( AssertionType t,
RegExpNode * on_success )
inlineprivate

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

Member Function Documentation

◆ Accept()

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

◆ AfterNewline()

static AssertionNode * v8::internal::AssertionNode::AfterNewline ( RegExpNode * on_success)
inlinestatic

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

Here is the call graph for this function:

◆ AsAssertionNode()

AssertionNode * v8::internal::AssertionNode::AsAssertionNode ( )
inlineoverride

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

◆ assertion_type()

AssertionType v8::internal::AssertionNode::assertion_type ( )
inline

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

◆ AtBoundary()

static AssertionNode * v8::internal::AssertionNode::AtBoundary ( RegExpNode * on_success)
inlinestatic

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

Here is the call graph for this function:

◆ AtEnd()

static AssertionNode * v8::internal::AssertionNode::AtEnd ( RegExpNode * on_success)
inlinestatic

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

Here is the call graph for this function:

◆ AtNonBoundary()

static AssertionNode * v8::internal::AssertionNode::AtNonBoundary ( RegExpNode * on_success)
inlinestatic

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

Here is the call graph for this function:

◆ AtStart()

static AssertionNode * v8::internal::AssertionNode::AtStart ( RegExpNode * on_success)
inlinestatic

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

Here is the call graph for this function:

◆ BacktrackIfPrevious()

void v8::internal::AssertionNode::BacktrackIfPrevious ( RegExpCompiler * compiler,
Trace * trace,
AssertionNode::IfPrevious backtrack_if_previous )
private

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

Here is the call graph for this function:

◆ Emit()

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

Implements v8::internal::RegExpNode.

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

Here is the call graph for this function:

◆ EmitBoundaryCheck()

void v8::internal::AssertionNode::EmitBoundaryCheck ( RegExpCompiler * compiler,
Trace * trace )
private

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

Here is the call graph for this function:

◆ FillInBMInfo()

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

Reimplemented from v8::internal::RegExpNode.

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

◆ GetQuickCheckDetails()

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

Implements v8::internal::RegExpNode.

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

Here is the call graph for this function:

Member Data Documentation

◆ assertion_type_

AssertionType v8::internal::AssertionNode::assertion_type_
private

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

◆ Zone

friend v8::internal::AssertionNode::Zone
private

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


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