| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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/dart_entry.h" | 5 #include "vm/dart_entry.h" |
| 6 | 6 |
| 7 #include "vm/code_generator.h" | 7 #include "vm/code_generator.h" |
| 8 #include "vm/compiler.h" | 8 #include "vm/compiler.h" |
| 9 #include "vm/debugger.h" |
| 9 #include "vm/object_store.h" | 10 #include "vm/object_store.h" |
| 10 #include "vm/resolver.h" | 11 #include "vm/resolver.h" |
| 11 #include "vm/simulator.h" | 12 #include "vm/simulator.h" |
| 12 #include "vm/stub_code.h" | 13 #include "vm/stub_code.h" |
| 13 #include "vm/symbols.h" | 14 #include "vm/symbols.h" |
| 14 | 15 |
| 15 namespace dart { | 16 namespace dart { |
| 16 | 17 |
| 17 // A cache of VM heap allocated arguments descriptors. | 18 // A cache of VM heap allocated arguments descriptors. |
| 18 RawArray* ArgumentsDescriptor::cached_args_descriptors_[kCachedDescriptorCount]; | 19 RawArray* ArgumentsDescriptor::cached_args_descriptors_[kCachedDescriptorCount]; |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 function_name, | 415 function_name, |
| 415 kNumArguments, | 416 kNumArguments, |
| 416 Object::empty_array(), | 417 Object::empty_array(), |
| 417 Resolver::kIsQualified); | 418 Resolver::kIsQualified); |
| 418 isolate->object_store()->set_handle_message_function(function); | 419 isolate->object_store()->set_handle_message_function(function); |
| 419 } | 420 } |
| 420 const Array& args = Array::Handle(isolate, Array::New(kNumArguments)); | 421 const Array& args = Array::Handle(isolate, Array::New(kNumArguments)); |
| 421 args.SetAt(0, receive_port); | 422 args.SetAt(0, receive_port); |
| 422 args.SetAt(1, Integer::Handle(isolate, Integer::New(reply_port_id))); | 423 args.SetAt(1, Integer::Handle(isolate, Integer::New(reply_port_id))); |
| 423 args.SetAt(2, message); | 424 args.SetAt(2, message); |
| 425 if (isolate->debugger()->IsStepping()) { |
| 426 // If the isolate is being debugged and the debugger was stepping |
| 427 // through code, enable single stepping so debugger will stop |
| 428 // at the first location the user is interested in. |
| 429 isolate->debugger()->SetSingleStep(); |
| 430 } |
| 424 const Object& result = | 431 const Object& result = |
| 425 Object::Handle(isolate, DartEntry::InvokeFunction(function, args)); | 432 Object::Handle(isolate, DartEntry::InvokeFunction(function, args)); |
| 426 ASSERT(result.IsNull() || result.IsError()); | 433 ASSERT(result.IsNull() || result.IsError()); |
| 427 return result.raw(); | 434 return result.raw(); |
| 428 } | 435 } |
| 429 | 436 |
| 430 | 437 |
| 431 RawObject* DartLibraryCalls::NewSendPort(intptr_t port_id) { | 438 RawObject* DartLibraryCalls::NewSendPort(intptr_t port_id) { |
| 432 Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); | 439 Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); |
| 433 ASSERT(!isolate_lib.IsNull()); | 440 ASSERT(!isolate_lib.IsNull()); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 String::Handle(Field::GetterName(Symbols::_id())))); | 484 String::Handle(Field::GetterName(Symbols::_id())))); |
| 478 const Function& func = Function::Handle(cls.LookupDynamicFunction(func_name)); | 485 const Function& func = Function::Handle(cls.LookupDynamicFunction(func_name)); |
| 479 ASSERT(!func.IsNull()); | 486 ASSERT(!func.IsNull()); |
| 480 const Array& args = Array::Handle(Array::New(1)); | 487 const Array& args = Array::Handle(Array::New(1)); |
| 481 args.SetAt(0, port); | 488 args.SetAt(0, port); |
| 482 return DartEntry::InvokeFunction(func, args); | 489 return DartEntry::InvokeFunction(func, args); |
| 483 } | 490 } |
| 484 | 491 |
| 485 | 492 |
| 486 } // namespace dart | 493 } // namespace dart |
| OLD | NEW |