| 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/object.h" | 5 #include "vm/object.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
| 10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" |
| (...skipping 6252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6263 context_scope = LocalScope::CreateImplicitClosureScope(*this); | 6263 context_scope = LocalScope::CreateImplicitClosureScope(*this); |
| 6264 } | 6264 } |
| 6265 closure_function.set_context_scope(context_scope); | 6265 closure_function.set_context_scope(context_scope); |
| 6266 | 6266 |
| 6267 // Set closure function's result type to this result type. | 6267 // Set closure function's result type to this result type. |
| 6268 closure_function.set_result_type(AbstractType::Handle(result_type())); | 6268 closure_function.set_result_type(AbstractType::Handle(result_type())); |
| 6269 | 6269 |
| 6270 // Set closure function's end token to this end token. | 6270 // Set closure function's end token to this end token. |
| 6271 closure_function.set_end_token_pos(end_token_pos()); | 6271 closure_function.set_end_token_pos(end_token_pos()); |
| 6272 | 6272 |
| 6273 // The closurized method stub just calls into the original method and should |
| 6274 // therefore be skipped by the debugger and in stack traces. |
| 6275 closure_function.set_is_debuggable(false); |
| 6276 closure_function.set_is_visible(false); |
| 6277 |
| 6273 // Set closure function's formal parameters to this formal parameters, | 6278 // Set closure function's formal parameters to this formal parameters, |
| 6274 // removing the receiver if this is an instance method and adding the closure | 6279 // removing the receiver if this is an instance method and adding the closure |
| 6275 // object as first parameter. | 6280 // object as first parameter. |
| 6276 const int kClosure = 1; | 6281 const int kClosure = 1; |
| 6277 const int has_receiver = is_static() ? 0 : 1; | 6282 const int has_receiver = is_static() ? 0 : 1; |
| 6278 const int num_fixed_params = kClosure - has_receiver + num_fixed_parameters(); | 6283 const int num_fixed_params = kClosure - has_receiver + num_fixed_parameters(); |
| 6279 const int num_opt_params = NumOptionalParameters(); | 6284 const int num_opt_params = NumOptionalParameters(); |
| 6280 const bool has_opt_pos_params = HasOptionalPositionalParameters(); | 6285 const bool has_opt_pos_params = HasOptionalPositionalParameters(); |
| 6281 const int num_params = num_fixed_params + num_opt_params; | 6286 const int num_params = num_fixed_params + num_opt_params; |
| 6282 closure_function.set_num_fixed_parameters(num_fixed_params); | 6287 closure_function.set_num_fixed_parameters(num_fixed_params); |
| (...skipping 14442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 20725 return tag_label.ToCString(); | 20730 return tag_label.ToCString(); |
| 20726 } | 20731 } |
| 20727 | 20732 |
| 20728 | 20733 |
| 20729 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { | 20734 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 20730 Instance::PrintJSONImpl(stream, ref); | 20735 Instance::PrintJSONImpl(stream, ref); |
| 20731 } | 20736 } |
| 20732 | 20737 |
| 20733 | 20738 |
| 20734 } // namespace dart | 20739 } // namespace dart |
| OLD | NEW |