blob: 83128b11c4db989f37af8b142c45e52026b76962 [file] [log] [blame]
// Copyright 2014 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/bindings/exception_state.h"
namespace blink {
ExceptionState::ExceptionState() : code_(0), had_exception_(false) {
}
ExceptionState::ExceptionState(Context context,
const char* propertyName,
const char* interfaceName) {
}
ExceptionState::ExceptionState(Context context, const char* interfaceName) {
}
ExceptionState::~ExceptionState() {
}
// TODO(iansf): Implement exceptions.
void ExceptionState::ThrowDOMException(const ExceptionCode&,
const String& message) {
had_exception_ = true;
}
void ExceptionState::ThrowTypeError(const String& message) {
had_exception_ = true;
}
void ExceptionState::ThrowRangeError(const String& message) {
had_exception_ = true;
}
bool ExceptionState::ThrowIfNeeded() {
return had_exception_;
}
void ExceptionState::ClearException() {
had_exception_ = false;
}
Dart_Handle ExceptionState::GetDartException(Dart_NativeArguments args,
bool auto_scope) {
// TODO(abarth): Still don't understand autoscope.
DCHECK(auto_scope);
// TODO(eseidel): This should be a real exception object!
if (!message_.isEmpty()) {
CString utf8 = message_.utf8();
return Dart_NewStringFromUTF8(reinterpret_cast<const unsigned char*>(utf8.data()), utf8.length());
}
return Dart_NewStringFromCString("Exception support missing. See exception_state.cc");
}
} // namespace blink