Index: src/compiler/raw-machine-assembler.cc |
diff --git a/src/compiler/raw-machine-assembler.cc b/src/compiler/raw-machine-assembler.cc |
index ed5dd9dd1298057c8cb276e8ed67d0a400f382c0..2de412694adad54bd9114fb748b7766557aa7be1 100644 |
--- a/src/compiler/raw-machine-assembler.cc |
+++ b/src/compiler/raw-machine-assembler.cc |
@@ -131,8 +131,32 @@ Node* RawMachineAssembler::CallFunctionStub0(Node* function, Node* receiver, |
} |
-Node* RawMachineAssembler::CallJS0(Node* function, Node* receiver, |
- Node* context, Node* frame_state) { |
+Node* RawMachineAssembler::CallJS(Node* function, Node* receiver, Node* context, |
+ Node** args, int arg_count) { |
+ int node_input_count = arg_count + 5; |
+ Node** buffer = zone()->NewArray<Node*>(node_input_count); |
+ int index = 0; |
+ buffer[index++] = function; |
+ buffer[index++] = receiver; |
+ for (int i = 0; i < arg_count; i++) { |
+ buffer[index++] = args[i]; |
+ } |
+ buffer[index++] = context; |
+ buffer[index++] = graph()->start(); |
+ buffer[index++] = graph()->start(); |
Michael Starzinger
2015/08/19 17:18:56
Please don't add effect and control inputs to the
rmcilroy
2015/08/24 11:49:07
As discussed in https://codereview.chromium.org/12
|
+ |
+ CallDescriptor* descriptor = Linkage::GetJSCallDescriptor( |
Michael Starzinger
2015/08/19 17:18:56
Would it be possible to just use RawMachineAssembl
rmcilroy
2015/08/24 11:49:07
Done (also removed CallJs0 and renamed CallInterpr
|
+ zone(), false, arg_count + 1, CallDescriptor::kNoFlags); |
+ Node* call = |
+ graph()->NewNode(common()->Call(descriptor), node_input_count, buffer); |
+ schedule()->AddNode(CurrentBlock(), call); |
+ return call; |
+} |
+ |
+ |
+Node* RawMachineAssembler::CallJS0WithFrameState(Node* function, Node* receiver, |
+ Node* context, |
+ Node* frame_state) { |
CallDescriptor* descriptor = Linkage::GetJSCallDescriptor( |
zone(), false, 1, CallDescriptor::kNeedsFrameState); |
Node* call = graph()->NewNode(common()->Call(descriptor), function, receiver, |