OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/parser.h" | 5 #include "vm/parser.h" |
6 | 6 |
7 #include "vm/bigint_operations.h" | 7 #include "vm/bigint_operations.h" |
8 #include "vm/class_finalizer.h" | 8 #include "vm/class_finalizer.h" |
9 #include "vm/compiler.h" | 9 #include "vm/compiler.h" |
10 #include "vm/compiler_stats.h" | 10 #include "vm/compiler_stats.h" |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 first_stack_local_index_ = kFirstLocalSlotIndex; | 153 first_stack_local_index_ = kFirstLocalSlotIndex; |
154 copied_parameter_count_ = 0; | 154 copied_parameter_count_ = 0; |
155 } else { | 155 } else { |
156 // Parameter i will be at fp[kFirstLocalSlotIndex - i] and local variable | 156 // Parameter i will be at fp[kFirstLocalSlotIndex - i] and local variable |
157 // j will be at fp[kFirstLocalSlotIndex - parameter_count - j]. | 157 // j will be at fp[kFirstLocalSlotIndex - parameter_count - j]. |
158 first_parameter_index_ = kFirstLocalSlotIndex; | 158 first_parameter_index_ = kFirstLocalSlotIndex; |
159 first_stack_local_index_ = first_parameter_index_ - parameter_count; | 159 first_stack_local_index_ = first_parameter_index_ - parameter_count; |
160 copied_parameter_count_ = parameter_count; | 160 copied_parameter_count_ = parameter_count; |
161 if (is_native_instance_closure) { | 161 if (is_native_instance_closure) { |
162 copied_parameter_count_ += 1; | 162 copied_parameter_count_ += 1; |
| 163 first_parameter_index_ -= 1; |
| 164 first_stack_local_index_ -= 1; |
163 } | 165 } |
164 } | 166 } |
165 | 167 |
166 // Allocate parameters and local variables, either in the local frame or | 168 // Allocate parameters and local variables, either in the local frame or |
167 // in the context(s). | 169 // in the context(s). |
168 LocalScope* context_owner = NULL; // No context needed yet. | 170 LocalScope* context_owner = NULL; // No context needed yet. |
169 int next_free_frame_index = | 171 int next_free_frame_index = |
170 scope->AllocateVariables(first_parameter_index_, | 172 scope->AllocateVariables(first_parameter_index_, |
171 parameter_count, | 173 parameter_count, |
172 first_stack_local_index_, | 174 first_stack_local_index_, |
(...skipping 8403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8576 void Parser::SkipQualIdent() { | 8578 void Parser::SkipQualIdent() { |
8577 ASSERT(IsIdentifier()); | 8579 ASSERT(IsIdentifier()); |
8578 ConsumeToken(); | 8580 ConsumeToken(); |
8579 if (CurrentToken() == Token::kPERIOD) { | 8581 if (CurrentToken() == Token::kPERIOD) { |
8580 ConsumeToken(); // Consume the kPERIOD token. | 8582 ConsumeToken(); // Consume the kPERIOD token. |
8581 ExpectIdentifier("identifier expected after '.'"); | 8583 ExpectIdentifier("identifier expected after '.'"); |
8582 } | 8584 } |
8583 } | 8585 } |
8584 | 8586 |
8585 } // namespace dart | 8587 } // namespace dart |
OLD | NEW |