deps: update v8 to 4.3.61.21
[platform/upstream/nodejs.git] / deps / v8 / src / compiler / js-inlining.h
1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef V8_COMPILER_JS_INLINING_H_
6 #define V8_COMPILER_JS_INLINING_H_
7
8 #include "src/compiler/js-graph.h"
9 #include "src/compiler/graph-reducer.h"
10
11 namespace v8 {
12 namespace internal {
13 namespace compiler {
14
15 class JSCallFunctionAccessor;
16
17 class JSInliner FINAL : public Reducer {
18  public:
19   enum Mode { kBuiltinsInlining, kGeneralInlining };
20
21   JSInliner(Mode mode, Zone* local_zone, CompilationInfo* info,
22             JSGraph* jsgraph)
23       : mode_(mode), local_zone_(local_zone), info_(info), jsgraph_(jsgraph) {}
24
25   Reduction Reduce(Node* node) FINAL;
26
27  private:
28   Mode const mode_;
29   Zone* local_zone_;
30   CompilationInfo* info_;
31   JSGraph* jsgraph_;
32
33   Node* CreateArgumentsAdaptorFrameState(JSCallFunctionAccessor* call,
34                                          Handle<JSFunction> jsfunction,
35                                          Zone* temp_zone);
36   void AddClosureToFrameState(Node* frame_state, Handle<JSFunction> jsfunction);
37 };
38
39 }  // namespace compiler
40 }  // namespace internal
41 }  // namespace v8
42
43 #endif  // V8_COMPILER_JS_INLINING_H_