mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Introduce CefV8Exception for returning detailed exception information from CefV8Value::ExecuteFunction*() and add the ability to re-throw exceptions. (issue #317).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@371 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
117
libcef_dll/cpptoc/v8exception_cpptoc.cc
Normal file
117
libcef_dll/cpptoc/v8exception_cpptoc.cc
Normal file
@ -0,0 +1,117 @@
|
||||
// Copyright (c) 2011 The Chromium Embedded Framework Authors. All rights
|
||||
// reserved. Use of this source code is governed by a BSD-style license that
|
||||
// can be found in the LICENSE file.
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
//
|
||||
// A portion of this file was generated by the CEF translator tool. When
|
||||
// making changes by hand only do so within the body of existing function
|
||||
// implementations. See the translator.README.txt file in the tools directory
|
||||
// for more information.
|
||||
//
|
||||
|
||||
#include "libcef_dll/cpptoc/v8exception_cpptoc.h"
|
||||
|
||||
|
||||
// MEMBER FUNCTIONS - Body may be edited by hand.
|
||||
|
||||
cef_string_userfree_t CEF_CALLBACK v8exception_get_message(
|
||||
struct _cef_v8exception_t* self)
|
||||
{
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return NULL;
|
||||
|
||||
CefString str = CefV8ExceptionCppToC::Get(self)->GetMessage();
|
||||
return str.DetachToUserFree();
|
||||
}
|
||||
|
||||
cef_string_userfree_t CEF_CALLBACK v8exception_get_source_line(
|
||||
struct _cef_v8exception_t* self)
|
||||
{
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return NULL;
|
||||
|
||||
CefString str = CefV8ExceptionCppToC::Get(self)->GetSourceLine();
|
||||
return str.DetachToUserFree();
|
||||
}
|
||||
|
||||
cef_string_userfree_t CEF_CALLBACK v8exception_get_script_resource_name(
|
||||
struct _cef_v8exception_t* self)
|
||||
{
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return NULL;
|
||||
|
||||
CefString str = CefV8ExceptionCppToC::Get(self)->GetScriptResourceName();
|
||||
return str.DetachToUserFree();
|
||||
}
|
||||
|
||||
int CEF_CALLBACK v8exception_get_line_number(struct _cef_v8exception_t* self)
|
||||
{
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return 0;
|
||||
|
||||
return CefV8ExceptionCppToC::Get(self)->GetLineNumber();
|
||||
}
|
||||
|
||||
int CEF_CALLBACK v8exception_get_start_position(struct _cef_v8exception_t* self)
|
||||
{
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return 0;
|
||||
|
||||
return CefV8ExceptionCppToC::Get(self)->GetStartPosition();
|
||||
}
|
||||
|
||||
int CEF_CALLBACK v8exception_get_end_position(struct _cef_v8exception_t* self)
|
||||
{
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return 0;
|
||||
|
||||
return CefV8ExceptionCppToC::Get(self)->GetEndPosition();
|
||||
}
|
||||
|
||||
int CEF_CALLBACK v8exception_get_start_column(struct _cef_v8exception_t* self)
|
||||
{
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return 0;
|
||||
|
||||
return CefV8ExceptionCppToC::Get(self)->GetStartColumn();
|
||||
}
|
||||
|
||||
int CEF_CALLBACK v8exception_get_end_column(struct _cef_v8exception_t* self)
|
||||
{
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return 0;
|
||||
|
||||
return CefV8ExceptionCppToC::Get(self)->GetEndColumn();
|
||||
}
|
||||
|
||||
|
||||
// CONSTRUCTOR - Do not edit by hand.
|
||||
|
||||
CefV8ExceptionCppToC::CefV8ExceptionCppToC(CefV8Exception* cls)
|
||||
: CefCppToC<CefV8ExceptionCppToC, CefV8Exception, cef_v8exception_t>(cls)
|
||||
{
|
||||
struct_.struct_.get_message = v8exception_get_message;
|
||||
struct_.struct_.get_source_line = v8exception_get_source_line;
|
||||
struct_.struct_.get_script_resource_name =
|
||||
v8exception_get_script_resource_name;
|
||||
struct_.struct_.get_line_number = v8exception_get_line_number;
|
||||
struct_.struct_.get_start_position = v8exception_get_start_position;
|
||||
struct_.struct_.get_end_position = v8exception_get_end_position;
|
||||
struct_.struct_.get_start_column = v8exception_get_start_column;
|
||||
struct_.struct_.get_end_column = v8exception_get_end_column;
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
template<> long CefCppToC<CefV8ExceptionCppToC, CefV8Exception,
|
||||
cef_v8exception_t>::DebugObjCt = 0;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user