Index: src/compiler/js-call-reducer.h |
diff --git a/src/compiler/js-call-reducer.h b/src/compiler/js-call-reducer.h |
index 31326084cc6b478c6263db5d2843b566d2f422c2..44328308d420d448dbc86300e4be87931fdc09de 100644 |
--- a/src/compiler/js-call-reducer.h |
+++ b/src/compiler/js-call-reducer.h |
@@ -6,6 +6,7 @@ |
#define V8_COMPILER_JS_CALL_REDUCER_H_ |
#include "src/base/flags.h" |
+#include "src/builtins/builtins.h" |
#include "src/compiler/graph-reducer.h" |
namespace v8 { |
@@ -21,16 +22,18 @@ namespace compiler { |
class CommonOperatorBuilder; |
class JSGraph; |
class JSOperatorBuilder; |
+class MachineOperatorBuilder; |
class SimplifiedOperatorBuilder; |
// Performs strength reduction on {JSConstruct} and {JSCall} nodes, |
// which might allow inlining or other optimizations to be performed afterwards. |
class JSCallReducer final : public AdvancedReducer { |
public: |
- JSCallReducer(Editor* editor, JSGraph* jsgraph, |
+ JSCallReducer(Editor* editor, JSGraph* jsgraph, Zone* local_zone, |
Handle<Context> native_context, |
CompilationDependencies* dependencies) |
: AdvancedReducer(editor), |
+ local_zone_(local_zone), |
jsgraph_(jsgraph), |
native_context_(native_context), |
dependencies_(dependencies) {} |
@@ -50,12 +53,21 @@ class JSCallReducer final : public AdvancedReducer { |
Reduction ReduceObjectGetPrototypeOf(Node* node); |
Reduction ReduceObjectPrototypeGetProto(Node* node); |
Reduction ReduceReflectGetPrototypeOf(Node* node); |
+ Reduction ReduceArrayForEach(Handle<SharedFunctionInfo> shared, Node* node); |
Reduction ReduceSpreadCall(Node* node, int arity); |
Reduction ReduceJSConstruct(Node* node); |
Reduction ReduceJSConstructWithSpread(Node* node); |
Reduction ReduceJSCall(Node* node); |
Reduction ReduceJSCallWithSpread(Node* node); |
+ enum CheckpointMode { CREATE_CHECKPOINT, DONT_CREATE_CHECKPOINT }; |
+ |
+ std::pair<Node*, Node*> CreateJavaScriptBuiltinContinuationFrameState( |
+ Handle<SharedFunctionInfo> shared, Builtins::Name name, Node* target, |
+ Node* context, Node** parameters, int parameter_count, Node* effect, |
+ Node* control, Node* outer_frame_state, CheckpointMode mode); |
+ |
+ Zone* const local_zone_; |
Graph* graph() const; |
JSGraph* jsgraph() const { return jsgraph_; } |
Isolate* isolate() const; |