| OLD | NEW | 
|---|
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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 #include "src/compiler/js-create-lowering.h" | 5 #include "src/compiler/js-create-lowering.h" | 
| 6 | 6 | 
| 7 #include "src/allocation-site-scopes.h" | 7 #include "src/allocation-site-scopes.h" | 
| 8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" | 
| 9 #include "src/compilation-dependencies.h" | 9 #include "src/compilation-dependencies.h" | 
| 10 #include "src/compiler/access-builder.h" | 10 #include "src/compiler/access-builder.h" | 
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 304         node->InsertInput(graph()->zone(), 0, stub_code); | 304         node->InsertInput(graph()->zone(), 0, stub_code); | 
| 305         node->RemoveInput(3);  // Remove the frame state. | 305         node->RemoveInput(3);  // Remove the frame state. | 
| 306         NodeProperties::ChangeOp(node, new_op); | 306         NodeProperties::ChangeOp(node, new_op); | 
| 307         return Changed(node); | 307         return Changed(node); | 
| 308       } | 308       } | 
| 309       case CreateArgumentsType::kUnmappedArguments: { | 309       case CreateArgumentsType::kUnmappedArguments: { | 
| 310         Callable callable = CodeFactory::FastNewStrictArguments(isolate()); | 310         Callable callable = CodeFactory::FastNewStrictArguments(isolate()); | 
| 311         Operator::Properties properties = node->op()->properties(); | 311         Operator::Properties properties = node->op()->properties(); | 
| 312         CallDescriptor* desc = Linkage::GetStubCallDescriptor( | 312         CallDescriptor* desc = Linkage::GetStubCallDescriptor( | 
| 313             isolate(), graph()->zone(), callable.descriptor(), 0, | 313             isolate(), graph()->zone(), callable.descriptor(), 0, | 
| 314             CallDescriptor::kNoFlags, properties); | 314             CallDescriptor::kNeedsFrameState, properties); | 
| 315         const Operator* new_op = common()->Call(desc); | 315         const Operator* new_op = common()->Call(desc); | 
| 316         Node* stub_code = jsgraph()->HeapConstant(callable.code()); | 316         Node* stub_code = jsgraph()->HeapConstant(callable.code()); | 
| 317         node->InsertInput(graph()->zone(), 0, stub_code); | 317         node->InsertInput(graph()->zone(), 0, stub_code); | 
| 318         node->RemoveInput(3);  // Remove the frame state. |  | 
| 319         NodeProperties::ChangeOp(node, new_op); | 318         NodeProperties::ChangeOp(node, new_op); | 
| 320         return Changed(node); | 319         return Changed(node); | 
| 321       } | 320       } | 
| 322       case CreateArgumentsType::kRestParameter: { | 321       case CreateArgumentsType::kRestParameter: { | 
| 323         Callable callable = CodeFactory::FastNewRestParameter(isolate()); | 322         Callable callable = CodeFactory::FastNewRestParameter(isolate()); | 
| 324         Operator::Properties properties = node->op()->properties(); | 323         Operator::Properties properties = node->op()->properties(); | 
| 325         CallDescriptor* desc = Linkage::GetStubCallDescriptor( | 324         CallDescriptor* desc = Linkage::GetStubCallDescriptor( | 
| 326             isolate(), graph()->zone(), callable.descriptor(), 0, | 325             isolate(), graph()->zone(), callable.descriptor(), 0, | 
| 327             CallDescriptor::kNoFlags, properties); | 326             CallDescriptor::kNeedsFrameState, properties); | 
| 328         const Operator* new_op = common()->Call(desc); | 327         const Operator* new_op = common()->Call(desc); | 
| 329         Node* stub_code = jsgraph()->HeapConstant(callable.code()); | 328         Node* stub_code = jsgraph()->HeapConstant(callable.code()); | 
| 330         node->InsertInput(graph()->zone(), 0, stub_code); | 329         node->InsertInput(graph()->zone(), 0, stub_code); | 
| 331         node->RemoveInput(3);  // Remove the frame state. |  | 
| 332         NodeProperties::ChangeOp(node, new_op); | 330         NodeProperties::ChangeOp(node, new_op); | 
| 333         return Changed(node); | 331         return Changed(node); | 
| 334       } | 332       } | 
| 335     } | 333     } | 
| 336     UNREACHABLE(); | 334     UNREACHABLE(); | 
| 337   } else if (outer_state->opcode() == IrOpcode::kFrameState) { | 335   } else if (outer_state->opcode() == IrOpcode::kFrameState) { | 
| 338     // Use inline allocation for all mapped arguments objects within inlined | 336     // Use inline allocation for all mapped arguments objects within inlined | 
| 339     // (i.e. non-outermost) frames, independent of the object size. | 337     // (i.e. non-outermost) frames, independent of the object size. | 
| 340     if (type == CreateArgumentsType::kMappedArguments) { | 338     if (type == CreateArgumentsType::kMappedArguments) { | 
| 341       Handle<SharedFunctionInfo> shared; | 339       Handle<SharedFunctionInfo> shared; | 
| (...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1127   return jsgraph()->simplified(); | 1125   return jsgraph()->simplified(); | 
| 1128 } | 1126 } | 
| 1129 | 1127 | 
| 1130 MachineOperatorBuilder* JSCreateLowering::machine() const { | 1128 MachineOperatorBuilder* JSCreateLowering::machine() const { | 
| 1131   return jsgraph()->machine(); | 1129   return jsgraph()->machine(); | 
| 1132 } | 1130 } | 
| 1133 | 1131 | 
| 1134 }  // namespace compiler | 1132 }  // namespace compiler | 
| 1135 }  // namespace internal | 1133 }  // namespace internal | 
| 1136 }  // namespace v8 | 1134 }  // namespace v8 | 
| OLD | NEW | 
|---|