Chromium Code Reviews| 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(); |