| OLD | NEW | 
|---|
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 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 | 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-inlining.h" | 5 #include "src/compiler/js-inlining.h" | 
| 6 | 6 | 
| 7 #include "src/ast/ast.h" | 7 #include "src/ast/ast.h" | 
| 8 #include "src/ast/ast-numbering.h" | 8 #include "src/ast/ast-numbering.h" | 
| 9 #include "src/ast/scopes.h" | 9 #include "src/ast/scopes.h" | 
| 10 #include "src/compiler.h" | 10 #include "src/compiler.h" | 
| (...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 512   // type feedback in the compiler. | 512   // type feedback in the compiler. | 
| 513   Node* context = jsgraph_->Constant(handle(function->context())); | 513   Node* context = jsgraph_->Constant(handle(function->context())); | 
| 514 | 514 | 
| 515   // Insert a JSConvertReceiver node for sloppy callees. Note that the context | 515   // Insert a JSConvertReceiver node for sloppy callees. Note that the context | 
| 516   // passed into this node has to be the callees context (loaded above). Note | 516   // passed into this node has to be the callees context (loaded above). Note | 
| 517   // that the frame state passed to the JSConvertReceiver must be the frame | 517   // that the frame state passed to the JSConvertReceiver must be the frame | 
| 518   // state _before_ the call; it is not necessary to fiddle with the receiver | 518   // state _before_ the call; it is not necessary to fiddle with the receiver | 
| 519   // in that frame state tho, as the conversion of the receiver can be repeated | 519   // in that frame state tho, as the conversion of the receiver can be repeated | 
| 520   // any number of times, it's not observable. | 520   // any number of times, it's not observable. | 
| 521   if (node->opcode() == IrOpcode::kJSCallFunction && | 521   if (node->opcode() == IrOpcode::kJSCallFunction && | 
| 522       is_sloppy(info.language_mode()) && !shared_info->native()) { | 522       is_sloppy(parse_info.language_mode()) && !shared_info->native()) { | 
| 523     const CallFunctionParameters& p = CallFunctionParametersOf(node->op()); | 523     const CallFunctionParameters& p = CallFunctionParametersOf(node->op()); | 
| 524     Node* effect = NodeProperties::GetEffectInput(node); | 524     Node* effect = NodeProperties::GetEffectInput(node); | 
| 525     Node* convert = jsgraph_->graph()->NewNode( | 525     Node* convert = jsgraph_->graph()->NewNode( | 
| 526         jsgraph_->javascript()->ConvertReceiver(p.convert_mode()), | 526         jsgraph_->javascript()->ConvertReceiver(p.convert_mode()), | 
| 527         call.receiver(), context, call.frame_state_before(), effect, start); | 527         call.receiver(), context, call.frame_state_before(), effect, start); | 
| 528     NodeProperties::ReplaceValueInput(node, convert, 1); | 528     NodeProperties::ReplaceValueInput(node, convert, 1); | 
| 529     NodeProperties::ReplaceEffectInput(node, convert); | 529     NodeProperties::ReplaceEffectInput(node, convert); | 
| 530   } | 530   } | 
| 531 | 531 | 
| 532   // If we are inlining a JS call at tail position then we have to pop current | 532   // If we are inlining a JS call at tail position then we have to pop current | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
| 554         node, frame_state, call.formal_arguments(), | 554         node, frame_state, call.formal_arguments(), | 
| 555         FrameStateType::kArgumentsAdaptor, shared_info); | 555         FrameStateType::kArgumentsAdaptor, shared_info); | 
| 556   } | 556   } | 
| 557 | 557 | 
| 558   return InlineCall(node, new_target, context, frame_state, start, end); | 558   return InlineCall(node, new_target, context, frame_state, start, end); | 
| 559 } | 559 } | 
| 560 | 560 | 
| 561 }  // namespace compiler | 561 }  // namespace compiler | 
| 562 }  // namespace internal | 562 }  // namespace internal | 
| 563 }  // namespace v8 | 563 }  // namespace v8 | 
| OLD | NEW | 
|---|