| Index: src/compiler/ast-graph-builder.h
|
| diff --git a/src/compiler/ast-graph-builder.h b/src/compiler/ast-graph-builder.h
|
| index e6cb52f839754dea48930a6fd4eebf49d335df7e..46dcf4216d614e4b857172f7e78c38b20df2720f 100644
|
| --- a/src/compiler/ast-graph-builder.h
|
| +++ b/src/compiler/ast-graph-builder.h
|
| @@ -6,6 +6,7 @@
|
| #define V8_COMPILER_AST_GRAPH_BUILDER_H_
|
|
|
| #include "src/ast/ast.h"
|
| +#include "src/compiler/compiler-source-position-table.h"
|
| #include "src/compiler/js-graph.h"
|
| #include "src/compiler/liveness-analyzer.h"
|
| #include "src/compiler/state-values-utils.h"
|
| @@ -617,6 +618,35 @@ class AstGraphBuilder::Environment : public ZoneObject {
|
| void PrepareForOsrEntry();
|
| };
|
|
|
| +class AstGraphBuilderWithPositions final : public AstGraphBuilder {
|
| + public:
|
| + AstGraphBuilderWithPositions(Zone* local_zone, CompilationInfo* info,
|
| + JSGraph* jsgraph, float invocation_frequency,
|
| + LoopAssignmentAnalysis* loop_assignment,
|
| + TypeHintAnalysis* type_hint_analysis,
|
| + SourcePositionTable* source_positions,
|
| + int inlining_id = SourcePosition::kNotInlined);
|
| +
|
| + bool CreateGraph(bool stack_check = true) {
|
| + SourcePositionTable::Scope pos_scope(source_positions_, start_position_);
|
| + return AstGraphBuilder::CreateGraph(stack_check);
|
| + }
|
| +
|
| +#define DEF_VISIT(type) \
|
| + void Visit##type(type* node) override { \
|
| + SourcePositionTable::Scope pos( \
|
| + source_positions_, \
|
| + SourcePosition(node->position(), start_position_.InliningId())); \
|
| + AstGraphBuilder::Visit##type(node); \
|
| + }
|
| + AST_NODE_LIST(DEF_VISIT)
|
| +#undef DEF_VISIT
|
| +
|
| + private:
|
| + SourcePositionTable* const source_positions_;
|
| + SourcePosition const start_position_;
|
| +};
|
| +
|
| } // namespace compiler
|
| } // namespace internal
|
| } // namespace v8
|
|
|