Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Side by Side Diff: runtime/vm/object_store.cc

Issue 2768103002: Debugger support for step-into async and async* functions. (Closed)
Patch Set: rmacnak review Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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_store.h" 5 #include "vm/object_store.h"
6 6
7 #include "vm/exceptions.h" 7 #include "vm/exceptions.h"
8 #include "vm/dart_entry.h" 8 #include "vm/dart_entry.h"
9 #include "vm/isolate.h" 9 #include "vm/isolate.h"
10 #include "vm/object.h" 10 #include "vm/object.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 preallocated_unhandled_exception_(UnhandledException::null()), 89 preallocated_unhandled_exception_(UnhandledException::null()),
90 preallocated_stack_trace_(StackTrace::null()), 90 preallocated_stack_trace_(StackTrace::null()),
91 lookup_port_handler_(Function::null()), 91 lookup_port_handler_(Function::null()),
92 empty_uint32_array_(TypedData::null()), 92 empty_uint32_array_(TypedData::null()),
93 handle_message_function_(Function::null()), 93 handle_message_function_(Function::null()),
94 simple_instance_of_function_(Function::null()), 94 simple_instance_of_function_(Function::null()),
95 simple_instance_of_true_function_(Function::null()), 95 simple_instance_of_true_function_(Function::null()),
96 simple_instance_of_false_function_(Function::null()), 96 simple_instance_of_false_function_(Function::null()),
97 async_clear_thread_stack_trace_(Function::null()), 97 async_clear_thread_stack_trace_(Function::null()),
98 async_set_thread_stack_trace_(Function::null()), 98 async_set_thread_stack_trace_(Function::null()),
99 async_star_move_next_helper_(Function::null()),
99 library_load_error_table_(Array::null()), 100 library_load_error_table_(Array::null()),
100 unique_dynamic_targets_(Array::null()), 101 unique_dynamic_targets_(Array::null()),
101 token_objects_(GrowableObjectArray::null()), 102 token_objects_(GrowableObjectArray::null()),
102 token_objects_map_(Array::null()), 103 token_objects_map_(Array::null()),
103 megamorphic_cache_table_(GrowableObjectArray::null()), 104 megamorphic_cache_table_(GrowableObjectArray::null()),
104 megamorphic_miss_code_(Code::null()), 105 megamorphic_miss_code_(Code::null()),
105 megamorphic_miss_function_(Function::null()) { 106 megamorphic_miss_function_(Function::null()) {
106 for (RawObject** current = from(); current <= to(); current++) { 107 for (RawObject** current = from(); current <= to(); current++) {
107 ASSERT(*current == Object::null()); 108 ASSERT(*current == Object::null());
108 } 109 }
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 function_name, 1, Object::null_array()); 249 function_name, 1, Object::null_array());
249 set_async_set_thread_stack_trace(function); 250 set_async_set_thread_stack_trace(function);
250 251
251 function_name ^= async_lib.PrivateName(Symbols::ClearAsyncThreadStackTrace()); 252 function_name ^= async_lib.PrivateName(Symbols::ClearAsyncThreadStackTrace());
252 ASSERT(!function_name.IsNull()); 253 ASSERT(!function_name.IsNull());
253 function ^= Resolver::ResolveStatic(async_lib, Object::null_string(), 254 function ^= Resolver::ResolveStatic(async_lib, Object::null_string(),
254 function_name, 0, Object::null_array()); 255 function_name, 0, Object::null_array());
255 ASSERT(!function.IsNull()); 256 ASSERT(!function.IsNull());
256 set_async_clear_thread_stack_trace(function); 257 set_async_clear_thread_stack_trace(function);
257 258
259 function_name ^= async_lib.PrivateName(Symbols::AsyncStarMoveNextHelper());
260 ASSERT(!function_name.IsNull());
261 function ^= Resolver::ResolveStatic(async_lib, Object::null_string(),
262 function_name, 1, Object::null_array());
263 ASSERT(!function.IsNull());
264 set_async_star_move_next_helper(function);
265
258 const Library& internal_lib = Library::Handle(_internal_library()); 266 const Library& internal_lib = Library::Handle(_internal_library());
259 cls = internal_lib.LookupClass(Symbols::Symbol()); 267 cls = internal_lib.LookupClass(Symbols::Symbol());
260 set_symbol_class(cls); 268 set_symbol_class(cls);
261 269
262 const Library& core_lib = Library::Handle(core_library()); 270 const Library& core_lib = Library::Handle(core_library());
263 cls = core_lib.LookupClassAllowPrivate(Symbols::_CompileTimeError()); 271 cls = core_lib.LookupClassAllowPrivate(Symbols::_CompileTimeError());
264 ASSERT(!cls.IsNull()); 272 ASSERT(!cls.IsNull());
265 set_compiletime_error_class(cls); 273 set_compiletime_error_class(cls);
266 274
267 // Cache the core private functions used for fast instance of checks. 275 // Cache the core private functions used for fast instance of checks.
268 simple_instance_of_function_ = 276 simple_instance_of_function_ =
269 PrivateObjectLookup(Symbols::_simpleInstanceOf()); 277 PrivateObjectLookup(Symbols::_simpleInstanceOf());
270 simple_instance_of_true_function_ = 278 simple_instance_of_true_function_ =
271 PrivateObjectLookup(Symbols::_simpleInstanceOfTrue()); 279 PrivateObjectLookup(Symbols::_simpleInstanceOfTrue());
272 simple_instance_of_false_function_ = 280 simple_instance_of_false_function_ =
273 PrivateObjectLookup(Symbols::_simpleInstanceOfFalse()); 281 PrivateObjectLookup(Symbols::_simpleInstanceOfFalse());
274 #endif 282 #endif
275 } 283 }
276 284
277 } // namespace dart 285 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698