| // 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 |