// 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 "tonic/dart_error.h"

#include "base/logging.h"

namespace tonic {

namespace DartError {

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

}  // namespace DartError

bool LogIfError(Dart_Handle handle) {
  if (Dart_IsError(handle)) {
    LOG(ERROR) << Dart_GetError(handle);

    // Only unhandled exceptions have stacktraces.
    if (!Dart_ErrorHasException(handle))
      return true;

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

}  // namespace tonic
