Index: src/log.cc |
diff --git a/src/log.cc b/src/log.cc |
index 76fef5cd280887e4f41f51f2a696f2b7eb56ce63..49e0e7a7ee333e01d66932cefa069b5738e12577 100644 |
--- a/src/log.cc |
+++ b/src/log.cc |
@@ -1201,34 +1201,33 @@ void Logger::LogRuntime(Vector<const char> format, |
JSArray* args) { |
if (!log_->IsEnabled() || !FLAG_log_runtime) return; |
HandleScope scope(isolate_); |
+ Handle<JSArray> args_handle(args); |
Log::MessageBuilder msg(log_); |
for (int i = 0; i < format.length(); i++) { |
char c = format[i]; |
if (c == '%' && i <= format.length() - 2) { |
i++; |
ASSERT('0' <= format[i] && format[i] <= '9'); |
- MaybeObject* maybe = args->GetElement(isolate_, format[i] - '0'); |
- Object* obj; |
- if (!maybe->ToObject(&obj)) { |
- msg.Append("<exception>"); |
- continue; |
- } |
+ Handle<Object> obj = |
+ Object::GetElement(isolate_, args_handle, format[i] - '0'); |
Igor Sheludko
2014/03/17 16:50:44
I'm afraid we can hit ASSERT(AllowHeapAllocation::
Yang
2014/03/18 09:39:38
This will not happen, since all callers to Runtime
|
+ // No exception expected when getting an element from an array literal. |
+ CHECK_NOT_EMPTY_HANDLE(isolate_, obj); |
i++; |
switch (format[i]) { |
case 's': |
- msg.AppendDetailed(String::cast(obj), false); |
+ msg.AppendDetailed(String::cast(*obj), false); |
break; |
case 'S': |
- msg.AppendDetailed(String::cast(obj), true); |
+ msg.AppendDetailed(String::cast(*obj), true); |
break; |
case 'r': |
- Logger::LogRegExpSource(Handle<JSRegExp>(JSRegExp::cast(obj))); |
+ Logger::LogRegExpSource(Handle<JSRegExp>::cast(obj)); |
break; |
case 'x': |
- msg.Append("0x%x", Smi::cast(obj)->value()); |
+ msg.Append("0x%x", Smi::cast(*obj)->value()); |
break; |
case 'i': |
- msg.Append("%i", Smi::cast(obj)->value()); |
+ msg.Append("%i", Smi::cast(*obj)->value()); |
break; |
default: |
UNREACHABLE(); |