Chromium Code Reviews| Index: src/compilation-info.cc |
| diff --git a/src/compilation-info.cc b/src/compilation-info.cc |
| index a8bf0eeb402a9f9de60e5576a808ff1c24d56912..e94b24557ab390693e47f7220ec137da61d9ff60 100644 |
| --- a/src/compilation-info.cc |
| +++ b/src/compilation-info.cc |
| @@ -9,6 +9,7 @@ |
| #include "src/ast/scopes.h" |
| #include "src/isolate.h" |
| #include "src/parsing/parse-info.h" |
| +#include "src/source-position.h" |
| namespace v8 { |
| namespace internal { |
| @@ -214,10 +215,25 @@ void CompilationInfo::SetOptimizing() { |
| code_flags_ = Code::KindField::update(code_flags_, Code::OPTIMIZED_FUNCTION); |
| } |
| -void CompilationInfo::AddInlinedFunction( |
| - Handle<SharedFunctionInfo> inlined_function) { |
| +int CompilationInfo::AddInlinedFunction( |
| + Handle<SharedFunctionInfo> inlined_function, SourcePosition pos) { |
| + int id = static_cast<int>(inlined_functions_.size()); |
| inlined_functions_.push_back(InlinedFunctionHolder( |
| - inlined_function, handle(inlined_function->code()))); |
| + inlined_function, handle(inlined_function->code()), pos)); |
| + return id; |
| +} |
| + |
| +Handle<PodArray<InliningPosition>> CompilationInfo::CreateInliningPositions() { |
|
Michael Starzinger
2016/11/03 12:41:44
The {CompilationInfo} class should be a pure data
|
| + if (inlined_functions_.size() == 0) |
| + return Handle<PodArray<InliningPosition>>::cast( |
| + isolate()->factory()->empty_byte_array()); |
| + Handle<PodArray<InliningPosition>> info = |
| + isolate()->factory()->NewPodArray<InliningPosition>( |
| + static_cast<int>(inlined_functions_.size()), TENURED); |
| + for (int i = 0; i < inlined_functions_.size(); ++i) { |
| + info->set(i, inlined_functions_[i].position); |
| + } |
| + return info; |
| } |
| Code::Kind CompilationInfo::output_code_kind() const { |