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 <memory> | 8 #include <memory> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 // The V8 compiler API. | 30 // The V8 compiler API. |
31 // | 31 // |
32 // This is the central hub for dispatching to the various compilers within V8. | 32 // This is the central hub for dispatching to the various compilers within V8. |
33 // Logic for which compiler to choose and how to wire compilation results into | 33 // Logic for which compiler to choose and how to wire compilation results into |
34 // the object heap should be kept inside this class. | 34 // the object heap should be kept inside this class. |
35 // | 35 // |
36 // General strategy: Scripts are translated into anonymous functions w/o | 36 // General strategy: Scripts are translated into anonymous functions w/o |
37 // parameters which then can be executed. If the source code contains other | 37 // parameters which then can be executed. If the source code contains other |
38 // functions, they might be compiled and allocated as part of the compilation | 38 // functions, they might be compiled and allocated as part of the compilation |
39 // of the source code or deferred for lazy compilation at a later point. | 39 // of the source code or deferred for lazy compilation at a later point. |
40 class V8_EXPORT_PRIVATE Compiler : public AllStatic { | 40 class Compiler : public AllStatic { |
41 public: | 41 public: |
42 enum ClearExceptionFlag { KEEP_EXCEPTION, CLEAR_EXCEPTION }; | 42 enum ClearExceptionFlag { KEEP_EXCEPTION, CLEAR_EXCEPTION }; |
43 enum ConcurrencyMode { NOT_CONCURRENT, CONCURRENT }; | 43 enum ConcurrencyMode { NOT_CONCURRENT, CONCURRENT }; |
44 enum CompilationTier { INTERPRETED, BASELINE, OPTIMIZED }; | 44 enum CompilationTier { INTERPRETED, BASELINE, OPTIMIZED }; |
45 | 45 |
46 // =========================================================================== | 46 // =========================================================================== |
47 // The following family of methods ensures a given function is compiled. The | 47 // The following family of methods ensures a given function is compiled. The |
48 // general contract is that failures will be reported by returning {false}, | 48 // general contract is that failures will be reported by returning {false}, |
49 // whereas successful compilation ensures the {is_compiled} predicate on the | 49 // whereas successful compilation ensures the {is_compiled} predicate on the |
50 // given function holds (except for live-edit, which compiles the world). | 50 // given function holds (except for live-edit, which compiles the world). |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 state_ = State::kFailed; | 233 state_ = State::kFailed; |
234 } | 234 } |
235 return status; | 235 return status; |
236 } | 236 } |
237 }; | 237 }; |
238 | 238 |
239 } // namespace internal | 239 } // namespace internal |
240 } // namespace v8 | 240 } // namespace v8 |
241 | 241 |
242 #endif // V8_COMPILER_H_ | 242 #endif // V8_COMPILER_H_ |
OLD | NEW |