Index: src/compiler/bytecode-graph-builder.cc |
diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc |
index 3e8007c5e70e7db5ea9afadaca531ac60b6346d8..47a22df239854b4ef2568736d4c8bcaa87a2a32a 100644 |
--- a/src/compiler/bytecode-graph-builder.cc |
+++ b/src/compiler/bytecode-graph-builder.cc |
@@ -643,7 +643,20 @@ void BytecodeGraphBuilder::VisitPopContext( |
void BytecodeGraphBuilder::VisitCreateClosure( |
const interpreter::BytecodeArrayIterator& iterator) { |
- UNIMPLEMENTED(); |
+ Handle<SharedFunctionInfo> shared_info = |
+ Handle<SharedFunctionInfo>::cast(iterator.GetConstantForIndexOperand(0)); |
+ PretenureFlag tenured = |
+ iterator.GetImmediateOperand(1) ? TENURED : NOT_TENURED; |
+ const Operator* op = javascript()->CreateClosure(shared_info, tenured); |
+ Node* closure = NewNode(op); |
+ AddEmptyFrameStateInputs(closure); |
+ environment()->BindAccumulator(closure); |
+} |
+ |
+ |
+void BytecodeGraphBuilder::VisitCreateClosureWide( |
+ const interpreter::BytecodeArrayIterator& iterator) { |
+ VisitCreateClosure(iterator); |
} |