// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "sky/engine/tonic/dart_error.h"

#include "base/logging.h"

namespace blink {

namespace DartError {

const char kInvalidArgument[] = "Invalid argument.";

}  // namespace DartError

bool LogIfError(Dart_Handle handle) {
  if (Dart_IsError(handle)) {
    // Only unhandled exceptions have stacktraces.
    if (!Dart_ErrorHasException(handle)) {
      LOG(ERROR) << Dart_GetError(handle);
      return true;
    }

    Dart_Handle stacktrace = Dart_ErrorGetStacktrace(handle);
    const char* stacktrace_cstr = "";
    Dart_StringToCString(Dart_ToString(stacktrace), &stacktrace_cstr);
    LOG(ERROR) << "Unhandled exception:";
    LOG(ERROR) << stacktrace_cstr;
    return true;
  }
  return false;
}

}  // namespace blink

// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "sky/engine/tonic/dart_error.h"

#include "base/logging.h"

namespace blink {
namespace DartError {
const char kInvalidArgument[] = "Invalid argument.";
}  // namespace DartError

bool LogIfError(Dart_Handle handle) {
  if (Dart_IsError(handle)) {
    LOG(ERROR) << Dart_GetError(handle);
    return true;
  }
  return false;
}

}  // namespace blink

Switch to the other stack trace printer
Switch to the other stack trace printer
