| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_COMPILER_H_ | 5 #ifndef V8_COMPILER_H_ |
| 6 #define V8_COMPILER_H_ | 6 #define V8_COMPILER_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/ast.h" | 9 #include "src/ast.h" |
| 10 #include "src/bailout-reason.h" | 10 #include "src/bailout-reason.h" |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 return isolate_; | 158 return isolate_; |
| 159 } | 159 } |
| 160 Zone* zone() { return zone_; } | 160 Zone* zone() { return zone_; } |
| 161 bool is_osr() const { return !osr_ast_id_.IsNone(); } | 161 bool is_osr() const { return !osr_ast_id_.IsNone(); } |
| 162 Handle<Code> code() const { return code_; } | 162 Handle<Code> code() const { return code_; } |
| 163 CodeStub* code_stub() const { return code_stub_; } | 163 CodeStub* code_stub() const { return code_stub_; } |
| 164 BailoutId osr_ast_id() const { return osr_ast_id_; } | 164 BailoutId osr_ast_id() const { return osr_ast_id_; } |
| 165 Handle<Code> unoptimized_code() const { return unoptimized_code_; } | 165 Handle<Code> unoptimized_code() const { return unoptimized_code_; } |
| 166 int opt_count() const { return opt_count_; } | 166 int opt_count() const { return opt_count_; } |
| 167 int num_parameters() const; | 167 int num_parameters() const; |
| 168 int num_parameters_including_this() const; |
| 169 bool is_this_defined() const; |
| 168 int num_heap_slots() const; | 170 int num_heap_slots() const; |
| 169 Code::Flags flags() const; | 171 Code::Flags flags() const; |
| 170 bool has_scope() const { return scope() != nullptr; } | 172 bool has_scope() const { return scope() != nullptr; } |
| 171 | 173 |
| 172 void set_parameter_count(int parameter_count) { | 174 void set_parameter_count(int parameter_count) { |
| 173 DCHECK(IsStub()); | 175 DCHECK(IsStub()); |
| 174 parameter_count_ = parameter_count; | 176 parameter_count_ = parameter_count; |
| 175 } | 177 } |
| 176 | 178 |
| 177 bool is_tracking_positions() const { return track_positions_; } | 179 bool is_tracking_positions() const { return track_positions_; } |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 DCHECK(height >= 0); | 382 DCHECK(height >= 0); |
| 381 osr_expr_stack_height_ = height; | 383 osr_expr_stack_height_ = height; |
| 382 } | 384 } |
| 383 | 385 |
| 384 #if DEBUG | 386 #if DEBUG |
| 385 void PrintAstForTesting(); | 387 void PrintAstForTesting(); |
| 386 #endif | 388 #endif |
| 387 | 389 |
| 388 bool is_simple_parameter_list(); | 390 bool is_simple_parameter_list(); |
| 389 | 391 |
| 392 Handle<Code> GenerateCodeStub(); |
| 393 |
| 390 protected: | 394 protected: |
| 391 ParseInfo* parse_info_; | 395 ParseInfo* parse_info_; |
| 392 | 396 |
| 393 void DisableFutureOptimization() { | 397 void DisableFutureOptimization() { |
| 394 if (GetFlag(kDisableFutureOptimization) && has_shared_info()) { | 398 if (GetFlag(kDisableFutureOptimization) && has_shared_info()) { |
| 395 shared_info()->DisableOptimization(bailout_reason()); | 399 shared_info()->DisableOptimization(bailout_reason()); |
| 396 } | 400 } |
| 397 } | 401 } |
| 398 | 402 |
| 399 private: | 403 private: |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 675 Zone zone_; | 679 Zone zone_; |
| 676 size_t info_zone_start_allocation_size_; | 680 size_t info_zone_start_allocation_size_; |
| 677 base::ElapsedTimer timer_; | 681 base::ElapsedTimer timer_; |
| 678 | 682 |
| 679 DISALLOW_COPY_AND_ASSIGN(CompilationPhase); | 683 DISALLOW_COPY_AND_ASSIGN(CompilationPhase); |
| 680 }; | 684 }; |
| 681 | 685 |
| 682 } } // namespace v8::internal | 686 } } // namespace v8::internal |
| 683 | 687 |
| 684 #endif // V8_COMPILER_H_ | 688 #endif // V8_COMPILER_H_ |
| OLD | NEW |