| Index: runtime/vm/dart_entry.cc
|
| diff --git a/runtime/vm/dart_entry.cc b/runtime/vm/dart_entry.cc
|
| index 12567e68279d4f57f540520150c740a75095ec80..3346befc81d4294ca7696fbb113ed5d1d8bebffd 100644
|
| --- a/runtime/vm/dart_entry.cc
|
| +++ b/runtime/vm/dart_entry.cc
|
| @@ -71,8 +71,7 @@ class ScopedIsolateStackLimits : public ValueObject {
|
| class SuspendLongJumpScope : public StackResource {
|
| public:
|
| explicit SuspendLongJumpScope(Thread* thread)
|
| - : StackResource(thread),
|
| - saved_long_jump_base_(thread->long_jump_base()) {
|
| + : StackResource(thread), saved_long_jump_base_(thread->long_jump_base()) {
|
| thread->set_long_jump_base(NULL);
|
| }
|
|
|
| @@ -96,13 +95,13 @@ RawObject* DartEntry::InvokeFunction(const Function& function,
|
| Zone* zone = thread->zone();
|
| ASSERT(thread->IsMutatorThread());
|
| if (!function.HasCode()) {
|
| - const Error& error = Error::Handle(
|
| - zone, Compiler::CompileFunction(thread, function));
|
| + const Error& error =
|
| + Error::Handle(zone, Compiler::CompileFunction(thread, function));
|
| if (!error.IsNull()) {
|
| return error.raw();
|
| }
|
| }
|
| - // Now Call the invoke stub which will invoke the dart function.
|
| +// Now Call the invoke stub which will invoke the dart function.
|
| #if !defined(TARGET_ARCH_DBC)
|
| invokestub entrypoint = reinterpret_cast<invokestub>(
|
| StubCode::InvokeDartCode_entry()->EntryPoint());
|
| @@ -114,22 +113,16 @@ RawObject* DartEntry::InvokeFunction(const Function& function,
|
| SuspendLongJumpScope suspend_long_jump_scope(thread);
|
| TransitionToGenerated transition(thread);
|
| #if defined(TARGET_ARCH_DBC)
|
| - return Simulator::Current()->Call(code,
|
| - arguments_descriptor,
|
| - arguments,
|
| + return Simulator::Current()->Call(code, arguments_descriptor, arguments,
|
| thread);
|
| #elif defined(USING_SIMULATOR)
|
| return bit_copy<RawObject*, int64_t>(Simulator::Current()->Call(
|
| - reinterpret_cast<intptr_t>(entrypoint),
|
| - reinterpret_cast<intptr_t>(&code),
|
| + reinterpret_cast<intptr_t>(entrypoint), reinterpret_cast<intptr_t>(&code),
|
| reinterpret_cast<intptr_t>(&arguments_descriptor),
|
| reinterpret_cast<intptr_t>(&arguments),
|
| reinterpret_cast<intptr_t>(thread)));
|
| #else
|
| - return entrypoint(code,
|
| - arguments_descriptor,
|
| - arguments,
|
| - thread);
|
| + return entrypoint(code, arguments_descriptor, arguments, thread);
|
| #endif
|
| }
|
|
|
| @@ -155,8 +148,7 @@ RawObject* DartEntry::InvokeClosure(const Array& arguments,
|
| // Only invoke the function if its arguments are compatible.
|
| const ArgumentsDescriptor args_desc(arguments_descriptor);
|
| if (function.AreValidArgumentCounts(args_desc.Count(),
|
| - args_desc.NamedCount(),
|
| - NULL)) {
|
| + args_desc.NamedCount(), NULL)) {
|
| // The closure or non-closure object (receiver) is passed as implicit
|
| // first argument. It is already included in the arguments array.
|
| return InvokeFunction(function, arguments, arguments_descriptor);
|
| @@ -184,15 +176,14 @@ RawObject* DartEntry::InvokeClosure(const Array& arguments,
|
|
|
| if (c_stack_pos < c_stack_limit) {
|
| const Instance& exception =
|
| - Instance::Handle(zone, isolate->object_store()->stack_overflow());
|
| + Instance::Handle(zone, isolate->object_store()->stack_overflow());
|
| return UnhandledException::New(exception, Stacktrace::Handle(zone));
|
| }
|
|
|
| const Array& getter_arguments = Array::Handle(zone, Array::New(1));
|
| getter_arguments.SetAt(0, instance);
|
| - const Object& getter_result =
|
| - Object::Handle(zone, DartEntry::InvokeFunction(function,
|
| - getter_arguments));
|
| + const Object& getter_result = Object::Handle(
|
| + zone, DartEntry::InvokeFunction(function, getter_arguments));
|
| if (getter_result.IsError()) {
|
| return getter_result.raw();
|
| }
|
| @@ -202,8 +193,8 @@ RawObject* DartEntry::InvokeClosure(const Array& arguments,
|
| // This otherwise unnecessary handle is used to prevent clang from
|
| // doing tail call elimination, which would make the stack overflow
|
| // check above ineffective.
|
| - Object& result = Object::Handle(zone,
|
| - InvokeClosure(arguments, arguments_descriptor));
|
| + Object& result = Object::Handle(
|
| + zone, InvokeClosure(arguments, arguments_descriptor));
|
| return result.raw();
|
| }
|
| cls = cls.SuperClass();
|
| @@ -211,9 +202,7 @@ RawObject* DartEntry::InvokeClosure(const Array& arguments,
|
| }
|
|
|
| // No compatible method or getter so invoke noSuchMethod.
|
| - return InvokeNoSuchMethod(instance,
|
| - Symbols::Call(),
|
| - arguments,
|
| + return InvokeNoSuchMethod(instance, Symbols::Call(), arguments,
|
| arguments_descriptor);
|
| }
|
|
|
| @@ -226,9 +215,8 @@ RawObject* DartEntry::InvokeNoSuchMethod(const Instance& receiver,
|
| // Allocate an Invocation object.
|
| const Library& core_lib = Library::Handle(Library::CoreLibrary());
|
|
|
| - Class& invocation_mirror_class = Class::Handle(
|
| - core_lib.LookupClass(
|
| - String::Handle(core_lib.PrivateName(Symbols::InvocationMirror()))));
|
| + Class& invocation_mirror_class = Class::Handle(core_lib.LookupClass(
|
| + String::Handle(core_lib.PrivateName(Symbols::InvocationMirror()))));
|
| ASSERT(!invocation_mirror_class.IsNull());
|
| const String& function_name =
|
| String::Handle(core_lib.PrivateName(Symbols::AllocateInvocationMirror()));
|
| @@ -241,8 +229,8 @@ RawObject* DartEntry::InvokeNoSuchMethod(const Instance& receiver,
|
| allocation_args.SetAt(1, arguments_descriptor);
|
| allocation_args.SetAt(2, arguments);
|
| allocation_args.SetAt(3, Bool::False()); // Not a super invocation.
|
| - const Object& invocation_mirror = Object::Handle(
|
| - InvokeFunction(allocation_function, allocation_args));
|
| + const Object& invocation_mirror =
|
| + Object::Handle(InvokeFunction(allocation_function, allocation_args));
|
| if (invocation_mirror.IsError()) {
|
| Exceptions::PropagateError(Error::Cast(invocation_mirror));
|
| UNREACHABLE();
|
| @@ -253,9 +241,7 @@ RawObject* DartEntry::InvokeNoSuchMethod(const Instance& receiver,
|
| ArgumentsDescriptor args_desc(
|
| Array::Handle(ArgumentsDescriptor::New(kNumArguments)));
|
| Function& function = Function::Handle(
|
| - Resolver::ResolveDynamic(receiver,
|
| - Symbols::NoSuchMethod(),
|
| - args_desc));
|
| + Resolver::ResolveDynamic(receiver, Symbols::NoSuchMethod(), args_desc));
|
| if (function.IsNull()) {
|
| ASSERT(!FLAG_lazy_dispatchers);
|
| // If noSuchMethod(invocation) is not found, call Object::noSuchMethod.
|
| @@ -263,8 +249,7 @@ RawObject* DartEntry::InvokeNoSuchMethod(const Instance& receiver,
|
| function ^= Resolver::ResolveDynamicForReceiverClass(
|
| Class::Handle(thread->zone(),
|
| thread->isolate()->object_store()->object_class()),
|
| - Symbols::NoSuchMethod(),
|
| - args_desc);
|
| + Symbols::NoSuchMethod(), args_desc);
|
| }
|
| ASSERT(!function.IsNull());
|
| const Array& args = Array::Handle(Array::New(kNumArguments));
|
| @@ -274,9 +259,7 @@ RawObject* DartEntry::InvokeNoSuchMethod(const Instance& receiver,
|
| }
|
|
|
|
|
| -ArgumentsDescriptor::ArgumentsDescriptor(const Array& array)
|
| - : array_(array) {
|
| -}
|
| +ArgumentsDescriptor::ArgumentsDescriptor(const Array& array) : array_(array) {}
|
|
|
|
|
| intptr_t ArgumentsDescriptor::Count() const {
|
| @@ -290,9 +273,8 @@ intptr_t ArgumentsDescriptor::PositionalCount() const {
|
|
|
|
|
| RawString* ArgumentsDescriptor::NameAt(intptr_t index) const {
|
| - const intptr_t offset = kFirstNamedEntryIndex +
|
| - (index * kNamedEntrySize) +
|
| - kNameOffset;
|
| + const intptr_t offset =
|
| + kFirstNamedEntryIndex + (index * kNamedEntrySize) + kNameOffset;
|
| String& result = String::Handle();
|
| result ^= array_.At(offset);
|
| return result.raw();
|
| @@ -300,9 +282,8 @@ RawString* ArgumentsDescriptor::NameAt(intptr_t index) const {
|
|
|
|
|
| intptr_t ArgumentsDescriptor::PositionAt(intptr_t index) const {
|
| - const intptr_t offset = kFirstNamedEntryIndex +
|
| - (index * kNamedEntrySize) +
|
| - kPositionOffset;
|
| + const intptr_t offset =
|
| + kFirstNamedEntryIndex + (index * kNamedEntrySize) + kPositionOffset;
|
| return Smi::Value(Smi::RawCast(array_.At(offset)));
|
| }
|
|
|
| @@ -344,8 +325,8 @@ RawArray* ArgumentsDescriptor::New(intptr_t num_arguments,
|
| Thread* thread = Thread::Current();
|
| Zone* zone = thread->zone();
|
| const intptr_t descriptor_len = LengthFor(num_named_args);
|
| - Array& descriptor = Array::Handle(
|
| - zone, Array::New(descriptor_len, Heap::kOld));
|
| + Array& descriptor =
|
| + Array::Handle(zone, Array::New(descriptor_len, Heap::kOld));
|
|
|
| // Set total number of passed arguments.
|
| descriptor.SetAt(kCountIndex, Smi::Handle(Smi::New(num_arguments)));
|
| @@ -404,8 +385,8 @@ RawArray* ArgumentsDescriptor::NewNonCached(intptr_t num_arguments,
|
| Thread* thread = Thread::Current();
|
| Zone* zone = thread->zone();
|
| const intptr_t descriptor_len = LengthFor(0);
|
| - Array& descriptor = Array::Handle(
|
| - zone, Array::New(descriptor_len, Heap::kOld));
|
| + Array& descriptor =
|
| + Array::Handle(zone, Array::New(descriptor_len, Heap::kOld));
|
| const Smi& arg_count = Smi::Handle(zone, Smi::New(num_arguments));
|
|
|
| // Set total number of passed arguments.
|
| @@ -444,7 +425,7 @@ RawObject* DartLibraryCalls::InstanceCreate(const Library& lib,
|
| const int kNumExtraArgs = 1; // implicit rcvr arg.
|
| const Instance& exception_object = Instance::Handle(Instance::New(cls));
|
| const Array& constructor_arguments =
|
| - Array::Handle(Array::New(arguments.Length() + kNumExtraArgs));
|
| + Array::Handle(Array::New(arguments.Length() + kNumExtraArgs));
|
| constructor_arguments.SetAt(0, exception_object);
|
| Object& obj = Object::Handle();
|
| for (intptr_t i = 0; i < arguments.Length(); i++) {
|
| @@ -452,14 +433,13 @@ RawObject* DartLibraryCalls::InstanceCreate(const Library& lib,
|
| constructor_arguments.SetAt((i + kNumExtraArgs), obj);
|
| }
|
|
|
| - const String& function_name = String::Handle(
|
| - String::Concat(class_name, constructor_name));
|
| + const String& function_name =
|
| + String::Handle(String::Concat(class_name, constructor_name));
|
| const Function& constructor =
|
| Function::Handle(cls.LookupConstructorAllowPrivate(function_name));
|
| ASSERT(!constructor.IsNull());
|
| - const Object& retval =
|
| - Object::Handle(DartEntry::InvokeFunction(constructor,
|
| - constructor_arguments));
|
| + const Object& retval = Object::Handle(
|
| + DartEntry::InvokeFunction(constructor, constructor_arguments));
|
| ASSERT(retval.IsNull() || retval.IsError());
|
| if (retval.IsError()) {
|
| return retval.raw();
|
| @@ -473,14 +453,12 @@ RawObject* DartLibraryCalls::ToString(const Instance& receiver) {
|
| ArgumentsDescriptor args_desc(
|
| Array::Handle(ArgumentsDescriptor::New(kNumArguments)));
|
| const Function& function = Function::Handle(
|
| - Resolver::ResolveDynamic(receiver,
|
| - Symbols::toString(),
|
| - args_desc));
|
| + Resolver::ResolveDynamic(receiver, Symbols::toString(), args_desc));
|
| ASSERT(!function.IsNull());
|
| const Array& args = Array::Handle(Array::New(kNumArguments));
|
| args.SetAt(0, receiver);
|
| - const Object& result = Object::Handle(DartEntry::InvokeFunction(function,
|
| - args));
|
| + const Object& result =
|
| + Object::Handle(DartEntry::InvokeFunction(function, args));
|
| ASSERT(result.IsInstance() || result.IsError());
|
| return result.raw();
|
| }
|
| @@ -491,14 +469,12 @@ RawObject* DartLibraryCalls::HashCode(const Instance& receiver) {
|
| ArgumentsDescriptor args_desc(
|
| Array::Handle(ArgumentsDescriptor::New(kNumArguments)));
|
| const Function& function = Function::Handle(
|
| - Resolver::ResolveDynamic(receiver,
|
| - Symbols::hashCode(),
|
| - args_desc));
|
| + Resolver::ResolveDynamic(receiver, Symbols::hashCode(), args_desc));
|
| ASSERT(!function.IsNull());
|
| const Array& args = Array::Handle(Array::New(kNumArguments));
|
| args.SetAt(0, receiver);
|
| - const Object& result = Object::Handle(DartEntry::InvokeFunction(function,
|
| - args));
|
| + const Object& result =
|
| + Object::Handle(DartEntry::InvokeFunction(function, args));
|
| ASSERT(result.IsInstance() || result.IsError());
|
| return result.raw();
|
| }
|
| @@ -510,16 +486,14 @@ RawObject* DartLibraryCalls::Equals(const Instance& left,
|
| ArgumentsDescriptor args_desc(
|
| Array::Handle(ArgumentsDescriptor::New(kNumArguments)));
|
| const Function& function = Function::Handle(
|
| - Resolver::ResolveDynamic(left,
|
| - Symbols::EqualOperator(),
|
| - args_desc));
|
| + Resolver::ResolveDynamic(left, Symbols::EqualOperator(), args_desc));
|
| ASSERT(!function.IsNull());
|
|
|
| const Array& args = Array::Handle(Array::New(kNumArguments));
|
| args.SetAt(0, left);
|
| args.SetAt(1, right);
|
| - const Object& result = Object::Handle(DartEntry::InvokeFunction(function,
|
| - args));
|
| + const Object& result =
|
| + Object::Handle(DartEntry::InvokeFunction(function, args));
|
| ASSERT(result.IsInstance() || result.IsError());
|
| return result.raw();
|
| }
|
| @@ -527,8 +501,8 @@ RawObject* DartLibraryCalls::Equals(const Instance& left,
|
|
|
| RawObject* DartLibraryCalls::LookupHandler(Dart_Port port_id) {
|
| Thread* thread = Thread::Current();
|
| - Function& function = Function::Handle(thread->zone(),
|
| - thread->isolate()->object_store()->lookup_port_handler());
|
| + Function& function = Function::Handle(
|
| + thread->zone(), thread->isolate()->object_store()->lookup_port_handler());
|
| const int kNumArguments = 1;
|
| if (function.IsNull()) {
|
| Library& isolate_lib = Library::Handle(Library::IsolateLibrary());
|
| @@ -537,11 +511,8 @@ RawObject* DartLibraryCalls::LookupHandler(Dart_Port port_id) {
|
| String::Handle(isolate_lib.PrivateName(Symbols::_RawReceivePortImpl()));
|
| const String& function_name =
|
| String::Handle(isolate_lib.PrivateName(Symbols::_lookupHandler()));
|
| - function = Resolver::ResolveStatic(isolate_lib,
|
| - class_name,
|
| - function_name,
|
| - kNumArguments,
|
| - Object::empty_array());
|
| + function = Resolver::ResolveStatic(isolate_lib, class_name, function_name,
|
| + kNumArguments, Object::empty_array());
|
| ASSERT(!function.IsNull());
|
| thread->isolate()->object_store()->set_lookup_port_handler(function);
|
| }
|
| @@ -558,21 +529,18 @@ RawObject* DartLibraryCalls::HandleMessage(const Object& handler,
|
| Thread* thread = Thread::Current();
|
| Zone* zone = thread->zone();
|
| Isolate* isolate = thread->isolate();
|
| - Function& function = Function::Handle(zone,
|
| - isolate->object_store()->handle_message_function());
|
| + Function& function = Function::Handle(
|
| + zone, isolate->object_store()->handle_message_function());
|
| const int kNumArguments = 2;
|
| if (function.IsNull()) {
|
| Library& isolate_lib = Library::Handle(zone, Library::IsolateLibrary());
|
| ASSERT(!isolate_lib.IsNull());
|
| - const String& class_name = String::Handle(zone,
|
| - isolate_lib.PrivateName(Symbols::_RawReceivePortImpl()));
|
| - const String& function_name = String::Handle(zone,
|
| - isolate_lib.PrivateName(Symbols::_handleMessage()));
|
| - function = Resolver::ResolveStatic(isolate_lib,
|
| - class_name,
|
| - function_name,
|
| - kNumArguments,
|
| - Object::empty_array());
|
| + const String& class_name = String::Handle(
|
| + zone, isolate_lib.PrivateName(Symbols::_RawReceivePortImpl()));
|
| + const String& function_name = String::Handle(
|
| + zone, isolate_lib.PrivateName(Symbols::_handleMessage()));
|
| + function = Resolver::ResolveStatic(isolate_lib, class_name, function_name,
|
| + kNumArguments, Object::empty_array());
|
| ASSERT(!function.IsNull());
|
| isolate->object_store()->set_handle_message_function(function);
|
| }
|
| @@ -585,8 +553,8 @@ RawObject* DartLibraryCalls::HandleMessage(const Object& handler,
|
| // at the first location the user is interested in.
|
| isolate->debugger()->SetSingleStep();
|
| }
|
| - const Object& result = Object::Handle(zone,
|
| - DartEntry::InvokeFunction(function, args));
|
| + const Object& result =
|
| + Object::Handle(zone, DartEntry::InvokeFunction(function, args));
|
| ASSERT(result.IsNull() || result.IsError());
|
| return result.raw();
|
| }
|
| @@ -596,11 +564,11 @@ RawObject* DartLibraryCalls::DrainMicrotaskQueue() {
|
| Zone* zone = Thread::Current()->zone();
|
| Library& isolate_lib = Library::Handle(zone, Library::IsolateLibrary());
|
| ASSERT(!isolate_lib.IsNull());
|
| - Function& function = Function::Handle(zone,
|
| - isolate_lib.LookupFunctionAllowPrivate(
|
| - Symbols::_runPendingImmediateCallback()));
|
| - const Object& result = Object::Handle(zone,
|
| - DartEntry::InvokeFunction(function, Object::empty_array()));
|
| + Function& function =
|
| + Function::Handle(zone, isolate_lib.LookupFunctionAllowPrivate(
|
| + Symbols::_runPendingImmediateCallback()));
|
| + const Object& result = Object::Handle(
|
| + zone, DartEntry::InvokeFunction(function, Object::empty_array()));
|
| ASSERT(result.IsNull() || result.IsError());
|
| return result.raw();
|
| }
|
| @@ -613,16 +581,14 @@ RawObject* DartLibraryCalls::MapSetAt(const Instance& map,
|
| ArgumentsDescriptor args_desc(
|
| Array::Handle(ArgumentsDescriptor::New(kNumArguments)));
|
| const Function& function = Function::Handle(
|
| - Resolver::ResolveDynamic(map,
|
| - Symbols::AssignIndexToken(),
|
| - args_desc));
|
| + Resolver::ResolveDynamic(map, Symbols::AssignIndexToken(), args_desc));
|
| ASSERT(!function.IsNull());
|
| const Array& args = Array::Handle(Array::New(kNumArguments));
|
| args.SetAt(0, map);
|
| args.SetAt(1, key);
|
| args.SetAt(2, value);
|
| - const Object& result = Object::Handle(DartEntry::InvokeFunction(function,
|
| - args));
|
| + const Object& result =
|
| + Object::Handle(DartEntry::InvokeFunction(function, args));
|
| return result.raw();
|
| }
|
|
|
|
|