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/ast-graph-builder.h" | 5 #include "src/compiler/ast-graph-builder.h" |
6 | 6 |
7 #include "src/ast/compile-time-value.h" | 7 #include "src/ast/compile-time-value.h" |
8 #include "src/ast/scopes.h" | 8 #include "src/ast/scopes.h" |
9 #include "src/compilation-info.h" | 9 #include "src/compilation-info.h" |
10 #include "src/compiler.h" | 10 #include "src/compiler.h" |
(...skipping 2300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2311 case Call::WITH_CALL: { | 2311 case Call::WITH_CALL: { |
2312 Variable* variable = callee->AsVariableProxy()->var(); | 2312 Variable* variable = callee->AsVariableProxy()->var(); |
2313 Node* name = jsgraph()->Constant(variable->name()); | 2313 Node* name = jsgraph()->Constant(variable->name()); |
2314 const Operator* op = | 2314 const Operator* op = |
2315 javascript()->CallRuntime(Runtime::kLoadLookupSlotForCall); | 2315 javascript()->CallRuntime(Runtime::kLoadLookupSlotForCall); |
2316 Node* pair = NewNode(op, name); | 2316 Node* pair = NewNode(op, name); |
2317 callee_value = NewNode(common()->Projection(0), pair); | 2317 callee_value = NewNode(common()->Projection(0), pair); |
2318 receiver_value = NewNode(common()->Projection(1), pair); | 2318 receiver_value = NewNode(common()->Projection(1), pair); |
2319 PrepareFrameState(pair, expr->LookupId(), | 2319 PrepareFrameState(pair, expr->LookupId(), |
2320 OutputFrameStateCombine::Push(2)); | 2320 OutputFrameStateCombine::Push(2)); |
| 2321 break; |
2321 } | 2322 } |
2322 case Call::NAMED_PROPERTY_CALL: { | 2323 case Call::NAMED_PROPERTY_CALL: { |
2323 Property* property = callee->AsProperty(); | 2324 Property* property = callee->AsProperty(); |
2324 VectorSlotPair feedback = | 2325 VectorSlotPair feedback = |
2325 CreateVectorSlotPair(property->PropertyFeedbackSlot()); | 2326 CreateVectorSlotPair(property->PropertyFeedbackSlot()); |
2326 VisitForValue(property->obj()); | 2327 VisitForValue(property->obj()); |
2327 Handle<Name> name = property->key()->AsLiteral()->AsPropertyName(); | 2328 Handle<Name> name = property->key()->AsLiteral()->AsPropertyName(); |
2328 Node* object = environment()->Top(); | 2329 Node* object = environment()->Top(); |
2329 callee_value = BuildNamedLoad(object, name, feedback); | 2330 callee_value = BuildNamedLoad(object, name, feedback); |
2330 PrepareFrameState(callee_value, property->LoadId(), | 2331 PrepareFrameState(callee_value, property->LoadId(), |
(...skipping 2035 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4366 TypeHintAnalysis* type_hint_analysis, SourcePositionTable* source_positions, | 4367 TypeHintAnalysis* type_hint_analysis, SourcePositionTable* source_positions, |
4367 int inlining_id) | 4368 int inlining_id) |
4368 : AstGraphBuilder(local_zone, info, jsgraph, invocation_frequency, | 4369 : AstGraphBuilder(local_zone, info, jsgraph, invocation_frequency, |
4369 loop_assignment, type_hint_analysis), | 4370 loop_assignment, type_hint_analysis), |
4370 source_positions_(source_positions), | 4371 source_positions_(source_positions), |
4371 start_position_(info->shared_info()->start_position(), inlining_id) {} | 4372 start_position_(info->shared_info()->start_position(), inlining_id) {} |
4372 | 4373 |
4373 } // namespace compiler | 4374 } // namespace compiler |
4374 } // namespace internal | 4375 } // namespace internal |
4375 } // namespace v8 | 4376 } // namespace v8 |
OLD | NEW |