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

Unified Diff: runtime/vm/dart_entry.cc

Issue 9314053: Revert Dart_PropagateError until I can track down the problems in (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/dart_entry.h ('k') | runtime/vm/dart_entry_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/dart_entry.cc
===================================================================
--- runtime/vm/dart_entry.cc (revision 3821)
+++ runtime/vm/dart_entry.cc (working copy)
@@ -6,13 +6,14 @@
#include "vm/code_generator.h"
#include "vm/compiler.h"
+#include "vm/longjump.h"
#include "vm/object_store.h"
#include "vm/resolver.h"
#include "vm/stub_code.h"
namespace dart {
-RawObject* DartEntry::InvokeDynamic(
+RawInstance* DartEntry::InvokeDynamic(
const Instance& receiver,
const Function& function,
const GrowableArray<const Object*>& arguments,
@@ -21,10 +22,7 @@
// will result in a compilation of the function if it is not already
// compiled.
if (!function.HasCode()) {
- const Error& error = Error::Handle(Compiler::CompileFunction(function));
- if (!error.IsNull()) {
- return error.raw();
- }
+ Compiler::CompileFunction(function);
}
const Code& code = Code::Handle(function.code());
ASSERT(!code.IsNull());
@@ -55,7 +53,7 @@
}
-RawObject* DartEntry::InvokeStatic(
+RawInstance* DartEntry::InvokeStatic(
const Function& function,
const GrowableArray<const Object*>& arguments,
const Array& optional_arguments_names) {
@@ -64,10 +62,7 @@
// compiled.
ASSERT(!function.IsNull());
if (!function.HasCode()) {
- const Error& error = Error::Handle(Compiler::CompileFunction(function));
- if (!error.IsNull()) {
- return error.raw();
- }
+ Compiler::CompileFunction(function);
}
const Code& code = Code::Handle(function.code());
ASSERT(!code.IsNull());
@@ -89,7 +84,7 @@
}
-RawObject* DartEntry::InvokeClosure(
+RawInstance* DartEntry::InvokeClosure(
const Closure& closure,
const GrowableArray<const Object*>& arguments,
const Array& optional_arguments_names) {
@@ -101,10 +96,7 @@
const Context& context = Context::Handle(closure.context());
ASSERT(!function.IsNull());
if (!function.HasCode()) {
- const Error& error = Error::Handle(Compiler::CompileFunction(function));
- if (!error.IsNull()) {
- return error.raw();
- }
+ Compiler::CompileFunction(function);
}
const Code& code = Code::Handle(function.code());
ASSERT(!code.IsNull());
@@ -124,7 +116,7 @@
}
-RawObject* DartLibraryCalls::ExceptionCreate(
+RawInstance* DartLibraryCalls::ExceptionCreate(
const String& class_name,
const GrowableArray<const Object*>& arguments) {
const Library& core_lib = Library::Handle(Library::CoreLibrary());
@@ -143,18 +135,12 @@
Function::Handle(cls.LookupConstructor(constructor_name));
ASSERT(!constructor.IsNull());
const Array& kNoArgumentNames = Array::Handle();
- const Object& retval = Object::Handle(
- DartEntry::InvokeStatic(constructor, constructor_arguments,
- kNoArgumentNames));
- ASSERT(retval.IsNull() || retval.IsError());
- if (retval.IsError()) {
- return retval.raw();
- }
+ DartEntry::InvokeStatic(constructor, constructor_arguments, kNoArgumentNames);
return exception_object.raw();
}
-RawObject* DartLibraryCalls::ToString(const Instance& receiver) {
+RawInstance* DartLibraryCalls::ToString(const Instance& receiver) {
const String& function_name =
String::Handle(String::NewSymbol("toString"));
GrowableArray<const Object*> arguments;
@@ -167,18 +153,19 @@
kNumArguments,
kNumNamedArguments));
ASSERT(!function.IsNull());
- const Object& result = Object::Handle(
+ const Instance& result = Instance::Handle(
DartEntry::InvokeDynamic(receiver,
function,
arguments,
kNoArgumentNames));
- ASSERT(result.IsInstance() || result.IsError());
+ // Object's 'toString' threw an exception, let the caller handle it.
+ ASSERT(result.IsString() || result.IsUnhandledException());
return result.raw();
}
-RawObject* DartLibraryCalls::Equals(const Instance& left,
- const Instance& right) {
+RawInstance* DartLibraryCalls::Equals(const Instance& left,
+ const Instance& right) {
const String& function_name =
String::Handle(String::NewSymbol("=="));
GrowableArray<const Object*> arguments;
@@ -192,9 +179,10 @@
kNumArguments,
kNumNamedArguments));
ASSERT(!function.IsNull());
- const Object& result = Object::Handle(
+ const Instance& result = Instance::Handle(
DartEntry::InvokeDynamic(left, function, arguments, kNoArgumentNames));
- ASSERT(result.IsInstance() || result.IsError());
+ // Object's '==' threw an exception, let the caller handle it.
+ ASSERT(result.IsBool() || result.IsUnhandledException());
return result.raw();
}
@@ -221,7 +209,7 @@
arguments.Add(&message);
const Object& result = Object::Handle(
DartEntry::InvokeStatic(function, arguments, kNoArgumentNames));
- ASSERT(result.IsNull() || result.IsError());
+ ASSERT(result.IsNull() || result.IsUnhandledException());
return result.raw();
}
« no previous file with comments | « runtime/vm/dart_entry.h ('k') | runtime/vm/dart_entry_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698