v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ast.cc File Reference
#include "ast.h"
#include <cmath>
#include "builtins.h"
#include "code-stubs.h"
#include "contexts.h"
#include "conversions.h"
#include "hashmap.h"
#include "parser.h"
#include "property-details.h"
#include "property.h"
#include "scopes.h"
#include "string-stream.h"
#include "type-info.h"
Include dependency graph for ast.cc:

Go to the source code of this file.

Data Structures

class  V8_FINAL< kOperandKind, kNumCachedOperands >
 

Namespaces

 v8
 
 v8::internal
 

Macros

#define DECL_ACCEPT(type)   void type::Accept(AstVisitor* v) { v->Visit##type(this); }
 
#define MAKE_ACCEPT(Name)
 
#define MAKE_TYPE_CASE(Name)
 
#define MAKE_TYPE_CASE(Name)
 
#define MAKE_CASE(Name)
 
#define REGULAR_NODE(NodeType)
 
#define REGULAR_NODE_WITH_FEEDBACK_SLOTS(NodeType)
 
#define DONT_OPTIMIZE_NODE(NodeType)
 
#define DONT_SELFOPTIMIZE_NODE(NodeType)
 
#define DONT_SELFOPTIMIZE_NODE_WITH_FEEDBACK_SLOTS(NodeType)
 
#define DONT_CACHE_NODE(NodeType)
 

Macro Definition Documentation

#define DECL_ACCEPT (   type)    void type::Accept(AstVisitor* v) { v->Visit##type(this); }

Definition at line 49 of file ast.cc.

#define DONT_CACHE_NODE (   NodeType)
Value:
void AstConstructionVisitor::Visit##NodeType(NodeType* node) { \
increase_node_count(); \
set_dont_optimize_reason(k##NodeType); \
add_flag(kDontInline); \
add_flag(kDontSelfOptimize); \
add_flag(kDontCache); \
}

Definition at line 1078 of file ast.cc.

#define DONT_OPTIMIZE_NODE (   NodeType)
Value:
void AstConstructionVisitor::Visit##NodeType(NodeType* node) { \
increase_node_count(); \
set_dont_optimize_reason(k##NodeType); \
add_flag(kDontInline); \
add_flag(kDontSelfOptimize); \
}

Definition at line 1060 of file ast.cc.

#define DONT_SELFOPTIMIZE_NODE (   NodeType)
Value:
void AstConstructionVisitor::Visit##NodeType(NodeType* node) { \
increase_node_count(); \
add_flag(kDontSelfOptimize); \
}

Definition at line 1067 of file ast.cc.

#define DONT_SELFOPTIMIZE_NODE_WITH_FEEDBACK_SLOTS (   NodeType)
Value:
void AstConstructionVisitor::Visit##NodeType(NodeType* node) { \
increase_node_count(); \
add_slot_node(node); \
add_flag(kDontSelfOptimize); \
}

Definition at line 1072 of file ast.cc.

#define MAKE_ACCEPT (   Name)
Value:
void* RegExp##Name::Accept(RegExpVisitor* visitor, void* data) { \
return visitor->Visit##Name(this, data); \
}

Definition at line 703 of file ast.cc.

#define MAKE_CASE (   Name)
Value:
virtual void* Visit##Name(RegExp##Name*, \
void* data) V8_OVERRIDE;
#define V8_OVERRIDE
Definition: v8config.h:402

Definition at line 838 of file ast.cc.

#define MAKE_TYPE_CASE (   Name)
Value:
RegExp##Name* RegExpTree::As##Name() { \
return NULL; \
} \
bool RegExpTree::Is##Name() { return false; }
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter NULL
bool Is(Object *obj)

Definition at line 718 of file ast.cc.

#define MAKE_TYPE_CASE (   Name)
Value:
RegExp##Name* RegExp##Name::As##Name() { \
return this; \
} \
bool RegExp##Name::Is##Name() { return true; }
bool Is(Object *obj)

Definition at line 718 of file ast.cc.

#define REGULAR_NODE (   NodeType)
Value:
void AstConstructionVisitor::Visit##NodeType(NodeType* node) { \
increase_node_count(); \
}

Definition at line 1051 of file ast.cc.

#define REGULAR_NODE_WITH_FEEDBACK_SLOTS (   NodeType)
Value:
void AstConstructionVisitor::Visit##NodeType(NodeType* node) { \
increase_node_count(); \
add_slot_node(node); \
}

Definition at line 1055 of file ast.cc.