Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 165bf4f2e4c4af45807ddddd2abee5eb4211ced9..54a0903196f372af7d5e6d51ed7a37b35d00b314 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -175,6 +175,14 @@ int CompilationInfo::num_parameters() const { |
} |
+int CompilationInfo::num_parameters_including_this() const { |
+ return num_parameters() + (is_this_defined() ? 1 : 0); |
+} |
+ |
+ |
+bool CompilationInfo::is_this_defined() const { return !IsStub(); } |
+ |
+ |
int CompilationInfo::num_heap_slots() const { |
return has_scope() ? scope()->num_heap_slots() : 0; |
} |
@@ -273,6 +281,14 @@ void CompilationInfo::LogDeoptCallPosition(int pc_offset, int inlining_id) { |
} |
+Handle<Code> CompilationInfo::GenerateCodeStub() { |
+ // Run a "mini pipeline", extracted from compiler.cc. |
+ CHECK(Parser::ParseStatic(parse_info())); |
+ CHECK(Compiler::Analyze(parse_info())); |
+ return compiler::Pipeline(this).GenerateCode(); |
+} |
+ |
+ |
class HOptimizedGraphBuilderWithPositions: public HOptimizedGraphBuilder { |
public: |
explicit HOptimizedGraphBuilderWithPositions(CompilationInfo* info) |