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

#include <scanner.h>

Collaboration diagram for v8::internal::Scanner:

Classes

class  BookmarkScope
 
class  ErrorState
 
struct  Location
 
struct  TokenDesc
 

Public Member Functions

V8_INLINE void set_parser_error ()
 
V8_INLINE void reset_parser_error_flag ()
 
V8_INLINE bool has_parser_error () const
 
 Scanner (Utf16CharacterStream *source, UnoptimizedCompileFlags flags)
 
void Initialize ()
 
Token::Value Next ()
 
Token::Value PeekAhead ()
 
Token::Value PeekAheadAhead ()
 
Token::Value current_token () const
 
const Locationlocation () const
 
bool has_error () const
 
MessageTemplate error () const
 
const Locationerror_location () const
 
bool has_invalid_template_escape () const
 
MessageTemplate invalid_template_escape_message () const
 
void clear_invalid_template_escape_message ()
 
Location invalid_template_escape_location () const
 
Token::Value peek () const
 
const Locationpeek_location () const
 
bool literal_contains_escapes () const
 
bool next_literal_contains_escapes () const
 
const AstRawStringCurrentSymbol (AstValueFactory *ast_value_factory) const
 
const AstRawStringNextSymbol (AstValueFactory *ast_value_factory) const
 
const AstRawStringCurrentRawSymbol (AstValueFactory *ast_value_factory) const
 
double DoubleValue ()
 
base::Vector< const uint8_t > BigIntLiteral () const
 
const char * CurrentLiteralAsCString (Zone *zone) const
 
bool CurrentMatches (Token::Value token) const
 
template<size_t N>
bool NextLiteralExactlyEquals (const char(&s)[N])
 
template<size_t N>
bool CurrentLiteralEquals (const char(&s)[N])
 
Location octal_position () const
 
void clear_octal_position ()
 
MessageTemplate octal_message () const
 
uint32_t smi_value () const
 
void SeekForward (int pos)
 
bool HasLineTerminatorBeforeNext () const
 
bool HasLineTerminatorAfterNext ()
 
bool HasLineTerminatorAfterNextNext ()
 
bool ScanRegExpPattern ()
 
std::optional< RegExpFlagsScanRegExpFlags ()
 
Token::Value ScanTemplateContinuation ()
 
template<typename IsolateT >
DirectHandle< StringSourceUrl (IsolateT *isolate) const
 
template<typename IsolateT >
DirectHandle< StringSourceMappingUrl (IsolateT *isolate) const
 
bool SawSourceMappingUrlMagicCommentAtSign () const
 
bool SawMagicCommentCompileHintsAll () const
 
bool HasPerFunctionCompileHint (int position)
 
bool FoundHtmlComment () const
 
const Utf16CharacterStreamstream () const
 

Static Public Member Functions

static constexpr base::uc32 Invalid ()
 
static bool IsInvalid (base::uc32 c)
 

Static Public Attributes

static constexpr base::uc32 kEndOfInput = Utf16CharacterStream::kEndOfInput
 
static constexpr base::uc32 kInvalidSequence = static_cast<base::uc32>(-1)
 

Private Types

enum  NumberKind {
  IMPLICIT_OCTAL , BINARY , OCTAL , HEX ,
  DECIMAL , DECIMAL_WITH_LEADING_ZERO
}
 

Private Member Functions

bool IsValidBigIntKind (NumberKind kind)
 
bool IsDecimalNumberKind (NumberKind kind)
 
template<bool capture_raw>
base::uc32 ScanOctalEscape (base::uc32 c, int length)
 
void Init ()
 
void ReportScannerError (const Location &location, MessageTemplate error)
 
void ReportScannerError (int pos, MessageTemplate error)
 
void SeekNext (size_t position)
 
V8_INLINE void AddLiteralChar (base::uc32 c)
 
V8_INLINE void AddLiteralChar (char c)
 
V8_INLINE void AddRawLiteralChar (base::uc32 c)
 
V8_INLINE void AddLiteralCharAdvance ()
 
template<bool capture_raw = false>
void Advance ()
 
template<typename FunctionType >
V8_INLINE void AdvanceUntil (FunctionType check)
 
bool CombineSurrogatePair ()
 
void PushBack (base::uc32 ch)
 
base::uc32 Peek () const
 
Token::Value Select (Token::Value tok)
 
Token::Value Select (base::uc32 next, Token::Value then, Token::Value else_)
 
base::Vector< const uint8_t > literal_one_byte_string () const
 
base::Vector< const uint16_t > literal_two_byte_string () const
 
bool is_literal_one_byte () const
 
base::Vector< const uint8_t > next_literal_one_byte_string () const
 
base::Vector< const uint16_t > next_literal_two_byte_string () const
 
bool is_next_literal_one_byte () const
 
base::Vector< const uint8_t > raw_literal_one_byte_string () const
 
base::Vector< const uint16_t > raw_literal_two_byte_string () const
 
bool is_raw_literal_one_byte () const
 
template<bool capture_raw, bool unicode = false>
base::uc32 ScanHexNumber (int expected_length)
 
template<bool capture_raw>
base::uc32 ScanUnlimitedLengthHexNumber (base::uc32 max_value, int beg_pos)
 
V8_INLINE Token::Value ScanSingleToken ()
 
V8_INLINE void Scan ()
 
V8_INLINE void Scan (TokenDesc *next_desc)
 
V8_INLINE Token::Value SkipWhiteSpace ()
 
Token::Value SkipSingleHTMLComment ()
 
Token::Value SkipSingleLineComment ()
 
Token::Value SkipMagicComment (base::uc32 hash_or_at_sign)
 
void TryToParseMagicComment (base::uc32 hash_or_at_sign)
 
Token::Value SkipMultiLineComment ()
 
Token::Value ScanHtmlComment ()
 
bool ScanDigitsWithNumericSeparators (bool(*predicate)(base::uc32 ch), bool is_check_first_digit)
 
bool ScanDecimalDigits (bool allow_numeric_separator)
 
bool ScanDecimalAsSmi (uint64_t *value, bool allow_numeric_separator)
 
bool ScanDecimalAsSmiWithNumericSeparators (uint64_t *value)
 
bool ScanHexDigits ()
 
bool ScanBinaryDigits ()
 
bool ScanSignedInteger ()
 
bool ScanOctalDigits ()
 
bool ScanImplicitOctalDigits (int start_pos, NumberKind *kind)
 
Token::Value ScanNumber (bool seen_period)
 
V8_INLINE Token::Value ScanIdentifierOrKeyword ()
 
V8_INLINE Token::Value ScanIdentifierOrKeywordInner ()
 
Token::Value ScanIdentifierOrKeywordInnerSlow (bool escaped, bool can_be_keyword)
 
Token::Value ScanString ()
 
Token::Value ScanPrivateName ()
 
template<bool capture_raw>
bool ScanEscape ()
 
base::uc32 ScanIdentifierUnicodeEscape ()
 
template<bool capture_raw>
base::uc32 ScanUnicodeEscape ()
 
Token::Value ScanTemplateSpan ()
 
int source_pos ()
 
TokenDescnext ()
 
const TokenDesccurrent () const
 
const TokenDescnext () const
 
const TokenDescnext_next () const
 
const TokenDescnext_next_next () const
 

Static Private Member Functions

static bool LiteralContainsEscapes (const TokenDesc &token)
 

Private Attributes

UnoptimizedCompileFlags flags_
 
TokenDesccurrent_
 
TokenDescnext_
 
TokenDescnext_next_
 
TokenDescnext_next_next_
 
Utf16CharacterStream *const source_
 
base::uc32 c0_
 
TokenDesc token_storage_ [4]
 
bool found_html_comment_
 
LiteralBuffer source_url_
 
LiteralBuffer source_mapping_url_
 
bool saw_source_mapping_url_magic_comment_at_sign_ = false
 
bool saw_magic_comment_compile_hints_all_ = false
 
bool saw_non_comment_ = false
 
std::vector< int > per_function_compile_hint_positions_
 
size_t per_function_compile_hint_positions_idx_ = 0
 
Location octal_pos_
 
MessageTemplate octal_message_
 
MessageTemplate scanner_error_
 
Location scanner_error_location_
 

Static Private Attributes

static const int kCharacterLookaheadBufferSize = 1
 
static const int kMaxAscii = 127
 

Detailed Description

Definition at line 215 of file scanner.h.

Member Enumeration Documentation

◆ NumberKind

Enumerator
IMPLICIT_OCTAL 
BINARY 
OCTAL 
HEX 
DECIMAL 
DECIMAL_WITH_LEADING_ZERO 

Definition at line 453 of file scanner.h.

Constructor & Destructor Documentation

◆ Scanner()

v8::internal::Scanner::Scanner ( Utf16CharacterStream * source,
UnoptimizedCompileFlags flags )
explicit

Definition at line 96 of file scanner.cc.

Member Function Documentation

◆ AddLiteralChar() [1/2]

V8_INLINE void v8::internal::Scanner::AddLiteralChar ( base::uc32 c)
inlineprivate

Definition at line 535 of file scanner.h.

Here is the caller graph for this function:

◆ AddLiteralChar() [2/2]

V8_INLINE void v8::internal::Scanner::AddLiteralChar ( char c)
inlineprivate

Definition at line 539 of file scanner.h.

◆ AddLiteralCharAdvance()

V8_INLINE void v8::internal::Scanner::AddLiteralCharAdvance ( )
inlineprivate

Definition at line 545 of file scanner.h.

Here is the caller graph for this function:

◆ AddRawLiteralChar()

V8_INLINE void v8::internal::Scanner::AddRawLiteralChar ( base::uc32 c)
inlineprivate

Definition at line 541 of file scanner.h.

Here is the caller graph for this function:

◆ Advance()

template<bool capture_raw = false>
void v8::internal::Scanner::Advance ( )
inlineprivate

Definition at line 552 of file scanner.h.

Here is the caller graph for this function:

◆ AdvanceUntil()

template<typename FunctionType >
V8_INLINE void v8::internal::Scanner::AdvanceUntil ( FunctionType check)
inlineprivate

Definition at line 560 of file scanner.h.

Here is the caller graph for this function:

◆ BigIntLiteral()

base::Vector< const uint8_t > v8::internal::Scanner::BigIntLiteral ( ) const
inline

Definition at line 345 of file scanner.h.

◆ clear_invalid_template_escape_message()

void v8::internal::Scanner::clear_invalid_template_escape_message ( )
inline

Definition at line 313 of file scanner.h.

Here is the caller graph for this function:

◆ clear_octal_position()

void v8::internal::Scanner::clear_octal_position ( )
inline

Definition at line 382 of file scanner.h.

Here is the caller graph for this function:

◆ CombineSurrogatePair()

bool v8::internal::Scanner::CombineSurrogatePair ( )
inlineprivate

Definition at line 564 of file scanner.h.

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

◆ current()

const TokenDesc & v8::internal::Scanner::current ( ) const
inlineprivate

Definition at line 740 of file scanner.h.

Here is the caller graph for this function:

◆ current_token()

Token::Value v8::internal::Scanner::current_token ( ) const
inline

Definition at line 294 of file scanner.h.

Here is the caller graph for this function:

◆ CurrentLiteralAsCString()

const char * v8::internal::Scanner::CurrentLiteralAsCString ( Zone * zone) const

Definition at line 1152 of file scanner.cc.

Here is the call graph for this function:

◆ CurrentLiteralEquals()

template<size_t N>
bool v8::internal::Scanner::CurrentLiteralEquals ( const char(&) s[N])
inline

Definition at line 371 of file scanner.h.

◆ CurrentMatches()

bool v8::internal::Scanner::CurrentMatches ( Token::Value token) const
inline

Definition at line 351 of file scanner.h.

◆ CurrentRawSymbol()

const AstRawString * v8::internal::Scanner::CurrentRawSymbol ( AstValueFactory * ast_value_factory) const

Definition at line 1126 of file scanner.cc.

Here is the call graph for this function:

◆ CurrentSymbol()

const AstRawString * v8::internal::Scanner::CurrentSymbol ( AstValueFactory * ast_value_factory) const

Definition at line 1110 of file scanner.cc.

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

◆ DoubleValue()

double v8::internal::Scanner::DoubleValue ( )

Definition at line 1135 of file scanner.cc.

Here is the call graph for this function:

◆ error()

MessageTemplate v8::internal::Scanner::error ( ) const
inline

Definition at line 302 of file scanner.h.

◆ error_location()

const Location & v8::internal::Scanner::error_location ( ) const
inline

Definition at line 303 of file scanner.h.

◆ FoundHtmlComment()

bool v8::internal::Scanner::FoundHtmlComment ( ) const
inline

Definition at line 443 of file scanner.h.

Here is the caller graph for this function:

◆ has_error()

bool v8::internal::Scanner::has_error ( ) const
inline

Definition at line 301 of file scanner.h.

Here is the caller graph for this function:

◆ has_invalid_template_escape()

bool v8::internal::Scanner::has_invalid_template_escape ( ) const
inline

Definition at line 305 of file scanner.h.

◆ has_parser_error()

V8_INLINE bool v8::internal::Scanner::has_parser_error ( ) const
inline

Definition at line 258 of file scanner.h.

Here is the caller graph for this function:

◆ HasLineTerminatorAfterNext()

bool v8::internal::Scanner::HasLineTerminatorAfterNext ( )
inline

Definition at line 403 of file scanner.h.

Here is the caller graph for this function:

◆ HasLineTerminatorAfterNextNext()

bool v8::internal::Scanner::HasLineTerminatorAfterNextNext ( )
inline

Definition at line 409 of file scanner.h.

◆ HasLineTerminatorBeforeNext()

bool v8::internal::Scanner::HasLineTerminatorBeforeNext ( ) const
inline

Definition at line 399 of file scanner.h.

Here is the caller graph for this function:

◆ HasPerFunctionCompileHint()

bool v8::internal::Scanner::HasPerFunctionCompileHint ( int position)

Definition at line 348 of file scanner.cc.

Here is the caller graph for this function:

◆ Init()

void v8::internal::Scanner::Init ( )
inlineprivate

Definition at line 506 of file scanner.h.

Here is the caller graph for this function:

◆ Initialize()

void v8::internal::Scanner::Initialize ( )

Definition at line 105 of file scanner.cc.

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

◆ Invalid()

static constexpr base::uc32 v8::internal::Scanner::Invalid ( )
inlinestaticconstexpr

Definition at line 280 of file scanner.h.

Here is the caller graph for this function:

◆ invalid_template_escape_location()

Location v8::internal::Scanner::invalid_template_escape_location ( ) const
inline

Definition at line 318 of file scanner.h.

◆ invalid_template_escape_message()

MessageTemplate v8::internal::Scanner::invalid_template_escape_message ( ) const
inline

Definition at line 308 of file scanner.h.

◆ is_literal_one_byte()

bool v8::internal::Scanner::is_literal_one_byte ( ) const
inlineprivate

Definition at line 625 of file scanner.h.

Here is the caller graph for this function:

◆ is_next_literal_one_byte()

bool v8::internal::Scanner::is_next_literal_one_byte ( ) const
inlineprivate

Definition at line 640 of file scanner.h.

Here is the caller graph for this function:

◆ is_raw_literal_one_byte()

bool v8::internal::Scanner::is_raw_literal_one_byte ( ) const
inlineprivate

Definition at line 652 of file scanner.h.

Here is the caller graph for this function:

◆ IsDecimalNumberKind()

bool v8::internal::Scanner::IsDecimalNumberKind ( NumberKind kind)
inlineprivate

Definition at line 494 of file scanner.h.

Here is the caller graph for this function:

◆ IsInvalid()

bool v8::internal::Scanner::IsInvalid ( base::uc32 c)
static

Definition at line 114 of file scanner.cc.

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

◆ IsValidBigIntKind()

bool v8::internal::Scanner::IsValidBigIntKind ( NumberKind kind)
inlineprivate

Definition at line 490 of file scanner.h.

Here is the caller graph for this function:

◆ literal_contains_escapes()

bool v8::internal::Scanner::literal_contains_escapes ( ) const
inline

Definition at line 330 of file scanner.h.

Here is the caller graph for this function:

◆ literal_one_byte_string()

base::Vector< const uint8_t > v8::internal::Scanner::literal_one_byte_string ( ) const
inlineprivate

Definition at line 615 of file scanner.h.

Here is the caller graph for this function:

◆ literal_two_byte_string()

base::Vector< const uint16_t > v8::internal::Scanner::literal_two_byte_string ( ) const
inlineprivate

Definition at line 620 of file scanner.h.

Here is the caller graph for this function:

◆ LiteralContainsEscapes()

static bool v8::internal::Scanner::LiteralContainsEscapes ( const TokenDesc & token)
inlinestaticprivate

Definition at line 724 of file scanner.h.

Here is the call graph for this function:

◆ location()

const Location & v8::internal::Scanner::location ( ) const
inline

Definition at line 298 of file scanner.h.

Here is the caller graph for this function:

◆ Next()

Token::Value v8::internal::Scanner::Next ( )

Definition at line 162 of file scanner.cc.

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

◆ next() [1/2]

TokenDesc & v8::internal::Scanner::next ( )
inlineprivate

Definition at line 738 of file scanner.h.

Here is the caller graph for this function:

◆ next() [2/2]

const TokenDesc & v8::internal::Scanner::next ( ) const
inlineprivate

Definition at line 741 of file scanner.h.

◆ next_literal_contains_escapes()

bool v8::internal::Scanner::next_literal_contains_escapes ( ) const
inline

Definition at line 334 of file scanner.h.

Here is the caller graph for this function:

◆ next_literal_one_byte_string()

base::Vector< const uint8_t > v8::internal::Scanner::next_literal_one_byte_string ( ) const
inlineprivate

Definition at line 632 of file scanner.h.

Here is the caller graph for this function:

◆ next_literal_two_byte_string()

base::Vector< const uint16_t > v8::internal::Scanner::next_literal_two_byte_string ( ) const
inlineprivate

Definition at line 636 of file scanner.h.

Here is the caller graph for this function:

◆ next_next()

const TokenDesc & v8::internal::Scanner::next_next ( ) const
inlineprivate

Definition at line 742 of file scanner.h.

Here is the caller graph for this function:

◆ next_next_next()

const TokenDesc & v8::internal::Scanner::next_next_next ( ) const
inlineprivate

Definition at line 743 of file scanner.h.

Here is the caller graph for this function:

◆ NextLiteralExactlyEquals()

template<size_t N>
bool v8::internal::Scanner::NextLiteralExactlyEquals ( const char(&) s[N])
inline

Definition at line 357 of file scanner.h.

Here is the call graph for this function:

◆ NextSymbol()

const AstRawString * v8::internal::Scanner::NextSymbol ( AstValueFactory * ast_value_factory) const

Definition at line 1118 of file scanner.cc.

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

◆ octal_message()

MessageTemplate v8::internal::Scanner::octal_message ( ) const
inline

Definition at line 386 of file scanner.h.

Here is the caller graph for this function:

◆ octal_position()

Location v8::internal::Scanner::octal_position ( ) const
inline

Definition at line 381 of file scanner.h.

Here is the caller graph for this function:

◆ Peek()

base::uc32 v8::internal::Scanner::Peek ( ) const
inlineprivate

Definition at line 585 of file scanner.h.

Here is the caller graph for this function:

◆ peek()

Token::Value v8::internal::Scanner::peek ( ) const
inline

Definition at line 326 of file scanner.h.

Here is the caller graph for this function:

◆ peek_location()

const Location & v8::internal::Scanner::peek_location ( ) const
inline

Definition at line 328 of file scanner.h.

Here is the caller graph for this function:

◆ PeekAhead()

Token::Value v8::internal::Scanner::PeekAhead ( )

Definition at line 193 of file scanner.cc.

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

◆ PeekAheadAhead()

Token::Value v8::internal::Scanner::PeekAheadAhead ( )

Definition at line 209 of file scanner.cc.

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

◆ PushBack()

void v8::internal::Scanner::PushBack ( base::uc32 ch)
inlineprivate

Definition at line 578 of file scanner.h.

Here is the caller graph for this function:

◆ raw_literal_one_byte_string()

base::Vector< const uint8_t > v8::internal::Scanner::raw_literal_one_byte_string ( ) const
inlineprivate

Definition at line 644 of file scanner.h.

Here is the caller graph for this function:

◆ raw_literal_two_byte_string()

base::Vector< const uint16_t > v8::internal::Scanner::raw_literal_two_byte_string ( ) const
inlineprivate

Definition at line 648 of file scanner.h.

Here is the caller graph for this function:

◆ ReportScannerError() [1/2]

void v8::internal::Scanner::ReportScannerError ( const Location & location,
MessageTemplate error )
inlineprivate

Definition at line 520 of file scanner.h.

Here is the caller graph for this function:

◆ ReportScannerError() [2/2]

void v8::internal::Scanner::ReportScannerError ( int pos,
MessageTemplate error )
inlineprivate

Definition at line 526 of file scanner.h.

◆ reset_parser_error_flag()

V8_INLINE void v8::internal::Scanner::reset_parser_error_flag ( )
inline

Definition at line 255 of file scanner.h.

◆ SawMagicCommentCompileHintsAll()

bool v8::internal::Scanner::SawMagicCommentCompileHintsAll ( ) const
inline

Definition at line 437 of file scanner.h.

Here is the caller graph for this function:

◆ SawSourceMappingUrlMagicCommentAtSign()

bool v8::internal::Scanner::SawSourceMappingUrlMagicCommentAtSign ( ) const
inline

Definition at line 433 of file scanner.h.

Here is the caller graph for this function:

◆ Scan() [1/2]

void v8::internal::Scanner::Scan ( )
private

Definition at line 575 of file scanner-inl.h.

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

◆ Scan() [2/2]

void v8::internal::Scanner::Scan ( TokenDesc * next_desc)
private

Definition at line 560 of file scanner-inl.h.

Here is the call graph for this function:

◆ ScanBinaryDigits()

bool v8::internal::Scanner::ScanBinaryDigits ( )
private

Definition at line 801 of file scanner.cc.

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

◆ ScanDecimalAsSmi()

bool v8::internal::Scanner::ScanDecimalAsSmi ( uint64_t * value,
bool allow_numeric_separator )
private

Definition at line 787 of file scanner.cc.

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

◆ ScanDecimalAsSmiWithNumericSeparators()

bool v8::internal::Scanner::ScanDecimalAsSmiWithNumericSeparators ( uint64_t * value)
private

Definition at line 758 of file scanner.cc.

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

◆ ScanDecimalDigits()

bool v8::internal::Scanner::ScanDecimalDigits ( bool allow_numeric_separator)
private

Definition at line 743 of file scanner.cc.

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

◆ ScanDigitsWithNumericSeparators()

bool v8::internal::Scanner::ScanDigitsWithNumericSeparators ( bool(* predicate )(base::uc32 ch),
bool is_check_first_digit )
private

Definition at line 713 of file scanner.cc.

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

◆ ScanEscape()

template<bool capture_raw>
bool v8::internal::Scanner::ScanEscape ( )
private

Definition at line 468 of file scanner.cc.

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

◆ ScanHexDigits()

bool v8::internal::Scanner::ScanHexDigits ( )
private

Definition at line 829 of file scanner.cc.

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

◆ ScanHexNumber()

template<bool capture_raw, bool unicode>
base::uc32 v8::internal::Scanner::ScanHexNumber ( int expected_length)
private

Definition at line 120 of file scanner.cc.

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

◆ ScanHtmlComment()

Token::Value v8::internal::Scanner::ScanHtmlComment ( )
private

Definition at line 415 of file scanner.cc.

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

◆ ScanIdentifierOrKeyword()

V8_INLINE Token::Value v8::internal::Scanner::ScanIdentifierOrKeyword ( )
private

Definition at line 188 of file scanner-inl.h.

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

◆ ScanIdentifierOrKeywordInner()

V8_INLINE Token::Value v8::internal::Scanner::ScanIdentifierOrKeywordInner ( )
private

Definition at line 265 of file scanner-inl.h.

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

◆ ScanIdentifierOrKeywordInnerSlow()

Token::Value v8::internal::Scanner::ScanIdentifierOrKeywordInnerSlow ( bool escaped,
bool can_be_keyword )
private

Definition at line 1001 of file scanner.cc.

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

◆ ScanIdentifierUnicodeEscape()

base::uc32 v8::internal::Scanner::ScanIdentifierUnicodeEscape ( )
private

Definition at line 973 of file scanner.cc.

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

◆ ScanImplicitOctalDigits()

bool v8::internal::Scanner::ScanImplicitOctalDigits ( int start_pos,
Scanner::NumberKind * kind )
private

Definition at line 809 of file scanner.cc.

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

◆ ScanNumber()

Token::Value v8::internal::Scanner::ScanNumber ( bool seen_period)
private

Definition at line 840 of file scanner.cc.

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

◆ ScanOctalDigits()

bool v8::internal::Scanner::ScanOctalDigits ( )
private

Definition at line 805 of file scanner.cc.

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

◆ ScanOctalEscape()

template<bool capture_raw>
base::uc32 v8::internal::Scanner::ScanOctalEscape ( base::uc32 c,
int length )
private

Definition at line 525 of file scanner.cc.

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

◆ ScanPrivateName()

Token::Value v8::internal::Scanner::ScanPrivateName ( )
private

Definition at line 591 of file scanner.cc.

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

◆ ScanRegExpFlags()

std::optional< RegExpFlags > v8::internal::Scanner::ScanRegExpFlags ( )

Definition at line 1092 of file scanner.cc.

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

◆ ScanRegExpPattern()

bool v8::internal::Scanner::ScanRegExpPattern ( )

Definition at line 1048 of file scanner.cc.

Here is the call graph for this function:

◆ ScanSignedInteger()

bool v8::internal::Scanner::ScanSignedInteger ( )
private

Definition at line 833 of file scanner.cc.

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

◆ ScanSingleToken()

V8_INLINE Token::Value v8::internal::Scanner::ScanSingleToken ( )
private

Definition at line 351 of file scanner-inl.h.

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

◆ ScanString()

Token::Value v8::internal::Scanner::ScanString ( )
private

Definition at line 550 of file scanner.cc.

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

◆ ScanTemplateContinuation()

Token::Value v8::internal::Scanner::ScanTemplateContinuation ( )
inline

Definition at line 422 of file scanner.h.

Here is the caller graph for this function:

◆ ScanTemplateSpan()

Token::Value v8::internal::Scanner::ScanTemplateSpan ( )
private

Definition at line 608 of file scanner.cc.

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

◆ ScanUnicodeEscape()

template<bool capture_raw>
base::uc32 v8::internal::Scanner::ScanUnicodeEscape ( )
private

Definition at line 981 of file scanner.cc.

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

◆ ScanUnlimitedLengthHexNumber()

template<bool capture_raw>
base::uc32 v8::internal::Scanner::ScanUnlimitedLengthHexNumber ( base::uc32 max_value,
int beg_pos )
private

Definition at line 142 of file scanner.cc.

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

◆ SeekForward()

void v8::internal::Scanner::SeekForward ( int pos)

Definition at line 448 of file scanner.cc.

Here is the call graph for this function:

◆ SeekNext()

void v8::internal::Scanner::SeekNext ( size_t position)
private

Definition at line 1162 of file scanner.cc.

Here is the call graph for this function:

◆ Select() [1/2]

Token::Value v8::internal::Scanner::Select ( base::uc32 next,
Token::Value then,
Token::Value else_ )
inlineprivate

Definition at line 592 of file scanner.h.

◆ Select() [2/2]

Token::Value v8::internal::Scanner::Select ( Token::Value tok)
inlineprivate

Definition at line 587 of file scanner.h.

Here is the caller graph for this function:

◆ set_parser_error()

V8_INLINE void v8::internal::Scanner::set_parser_error ( )
inline

Definition at line 246 of file scanner.h.

Here is the caller graph for this function:

◆ SkipMagicComment()

Token::Value v8::internal::Scanner::SkipMagicComment ( base::uc32 hash_or_at_sign)
private

Definition at line 245 of file scanner.cc.

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

◆ SkipMultiLineComment()

Token::Value v8::internal::Scanner::SkipMultiLineComment ( )
private

Definition at line 370 of file scanner.cc.

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

◆ SkipSingleHTMLComment()

Token::Value v8::internal::Scanner::SkipSingleHTMLComment ( )
private

Definition at line 226 of file scanner.cc.

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

◆ SkipSingleLineComment()

Token::Value v8::internal::Scanner::SkipSingleLineComment ( )
private

Definition at line 234 of file scanner.cc.

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

◆ SkipWhiteSpace()

V8_INLINE Token::Value v8::internal::Scanner::SkipWhiteSpace ( )
private

Definition at line 327 of file scanner-inl.h.

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

◆ smi_value()

uint32_t v8::internal::Scanner::smi_value ( ) const
inline

Definition at line 389 of file scanner.h.

Here is the caller graph for this function:

◆ source_pos()

int v8::internal::Scanner::source_pos ( )
inlineprivate

Definition at line 720 of file scanner.h.

Here is the caller graph for this function:

◆ SourceMappingUrl()

template<typename IsolateT >
template DirectHandle< String > v8::internal::Scanner::SourceMappingUrl ( IsolateT * isolate) const

Definition at line 701 of file scanner.cc.

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

◆ SourceUrl()

template<typename IsolateT >
template DirectHandle< String > v8::internal::Scanner::SourceUrl ( IsolateT * isolate) const

Definition at line 689 of file scanner.cc.

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

◆ stream()

const Utf16CharacterStream * v8::internal::Scanner::stream ( ) const
inline

Definition at line 445 of file scanner.h.

◆ TryToParseMagicComment()

void v8::internal::Scanner::TryToParseMagicComment ( base::uc32 hash_or_at_sign)
private

Definition at line 279 of file scanner.cc.

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

Member Data Documentation

◆ c0_

base::uc32 v8::internal::Scanner::c0_
private

Definition at line 757 of file scanner.h.

◆ current_

TokenDesc* v8::internal::Scanner::current_
private

Definition at line 747 of file scanner.h.

◆ flags_

UnoptimizedCompileFlags v8::internal::Scanner::flags_
private

Definition at line 745 of file scanner.h.

◆ found_html_comment_

bool v8::internal::Scanner::found_html_comment_
private

Definition at line 762 of file scanner.h.

◆ kCharacterLookaheadBufferSize

const int v8::internal::Scanner::kCharacterLookaheadBufferSize = 1
staticprivate

Definition at line 498 of file scanner.h.

◆ kEndOfInput

base::uc32 v8::internal::Scanner::kEndOfInput = Utf16CharacterStream::kEndOfInput
staticconstexpr

Definition at line 277 of file scanner.h.

◆ kInvalidSequence

base::uc32 v8::internal::Scanner::kInvalidSequence = static_cast<base::uc32>(-1)
staticconstexpr

Definition at line 278 of file scanner.h.

◆ kMaxAscii

const int v8::internal::Scanner::kMaxAscii = 127
staticprivate

Definition at line 499 of file scanner.h.

◆ next_

TokenDesc* v8::internal::Scanner::next_
private

Definition at line 748 of file scanner.h.

◆ next_next_

TokenDesc* v8::internal::Scanner::next_next_
private

Definition at line 749 of file scanner.h.

◆ next_next_next_

TokenDesc* v8::internal::Scanner::next_next_next_
private

Definition at line 750 of file scanner.h.

◆ octal_message_

MessageTemplate v8::internal::Scanner::octal_message_
private

Definition at line 775 of file scanner.h.

◆ octal_pos_

Location v8::internal::Scanner::octal_pos_
private

Definition at line 774 of file scanner.h.

◆ per_function_compile_hint_positions_

std::vector<int> v8::internal::Scanner::per_function_compile_hint_positions_
private

Definition at line 770 of file scanner.h.

◆ per_function_compile_hint_positions_idx_

size_t v8::internal::Scanner::per_function_compile_hint_positions_idx_ = 0
private

Definition at line 771 of file scanner.h.

◆ saw_magic_comment_compile_hints_all_

bool v8::internal::Scanner::saw_magic_comment_compile_hints_all_ = false
private

Definition at line 768 of file scanner.h.

◆ saw_non_comment_

bool v8::internal::Scanner::saw_non_comment_ = false
private

Definition at line 769 of file scanner.h.

◆ saw_source_mapping_url_magic_comment_at_sign_

bool v8::internal::Scanner::saw_source_mapping_url_magic_comment_at_sign_ = false
private

Definition at line 767 of file scanner.h.

◆ scanner_error_

MessageTemplate v8::internal::Scanner::scanner_error_
private

Definition at line 777 of file scanner.h.

◆ scanner_error_location_

Location v8::internal::Scanner::scanner_error_location_
private

Definition at line 778 of file scanner.h.

◆ source_

Utf16CharacterStream* const v8::internal::Scanner::source_
private

Definition at line 754 of file scanner.h.

◆ source_mapping_url_

LiteralBuffer v8::internal::Scanner::source_mapping_url_
private

Definition at line 766 of file scanner.h.

◆ source_url_

LiteralBuffer v8::internal::Scanner::source_url_
private

Definition at line 765 of file scanner.h.

◆ token_storage_

TokenDesc v8::internal::Scanner::token_storage_[4]
private

Definition at line 759 of file scanner.h.


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