OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 4675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4686 | 4686 |
4687 return kUseCell; | 4687 return kUseCell; |
4688 } | 4688 } |
4689 | 4689 |
4690 | 4690 |
4691 HValue* HOptimizedGraphBuilder::BuildContextChainWalk(Variable* var) { | 4691 HValue* HOptimizedGraphBuilder::BuildContextChainWalk(Variable* var) { |
4692 ASSERT(var->IsContextSlot()); | 4692 ASSERT(var->IsContextSlot()); |
4693 HValue* context = environment()->context(); | 4693 HValue* context = environment()->context(); |
4694 int length = current_info()->scope()->ContextChainLength(var->scope()); | 4694 int length = current_info()->scope()->ContextChainLength(var->scope()); |
4695 while (length-- > 0) { | 4695 while (length-- > 0) { |
4696 context = Add<HOuterContext>(context); | 4696 context = AddLoadNamedField( |
| 4697 context, HObjectAccess::ForContextSlot(Context::PREVIOUS_INDEX)); |
4697 } | 4698 } |
4698 return context; | 4699 return context; |
4699 } | 4700 } |
4700 | 4701 |
4701 | 4702 |
4702 void HOptimizedGraphBuilder::VisitVariableProxy(VariableProxy* expr) { | 4703 void HOptimizedGraphBuilder::VisitVariableProxy(VariableProxy* expr) { |
4703 if (expr->is_this()) { | 4704 if (expr->is_this()) { |
4704 current_info()->set_this_has_uses(true); | 4705 current_info()->set_this_has_uses(true); |
4705 } | 4706 } |
4706 | 4707 |
(...skipping 6376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11083 if (ShouldProduceTraceOutput()) { | 11084 if (ShouldProduceTraceOutput()) { |
11084 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 11085 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
11085 } | 11086 } |
11086 | 11087 |
11087 #ifdef DEBUG | 11088 #ifdef DEBUG |
11088 graph_->Verify(false); // No full verify. | 11089 graph_->Verify(false); // No full verify. |
11089 #endif | 11090 #endif |
11090 } | 11091 } |
11091 | 11092 |
11092 } } // namespace v8::internal | 11093 } } // namespace v8::internal |
OLD | NEW |