Add support for V8 ArrayBuffers (issue #244)

This commit is contained in:
Christopher Cifra
2018-04-10 15:37:33 -04:00
committed by Marshall Greenblatt
parent bb28b85bdd
commit 4315f3b724
16 changed files with 775 additions and 8 deletions

View File

@ -9,12 +9,13 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=54a9512b67fa17d33626e83e249fa27037bd92bc$
// $hash=c08a6af7e4295bc574af45eb798e84e546f2e1a0$
//
#include "libcef_dll/ctocpp/v8value_ctocpp.h"
#include "libcef_dll/cpptoc/base_ref_counted_cpptoc.h"
#include "libcef_dll/cpptoc/v8accessor_cpptoc.h"
#include "libcef_dll/cpptoc/v8array_buffer_release_callback_cpptoc.h"
#include "libcef_dll/cpptoc/v8handler_cpptoc.h"
#include "libcef_dll/cpptoc/v8interceptor_cpptoc.h"
#include "libcef_dll/ctocpp/v8context_ctocpp.h"
@ -131,6 +132,30 @@ CefRefPtr<CefV8Value> CefV8Value::CreateArray(int length) {
return CefV8ValueCToCpp::Wrap(_retval);
}
CefRefPtr<CefV8Value> CefV8Value::CreateArrayBuffer(
void* buffer,
size_t length,
CefRefPtr<CefV8ArrayBufferReleaseCallback> release_callback) {
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Verify param: buffer; type: simple_byaddr
DCHECK(buffer);
if (!buffer)
return NULL;
// Verify param: release_callback; type: refptr_diff
DCHECK(release_callback.get());
if (!release_callback.get())
return NULL;
// Execute
cef_v8value_t* _retval = cef_v8value_create_array_buffer(
buffer, length,
CefV8ArrayBufferReleaseCallbackCppToC::Wrap(release_callback));
// Return type: refptr_same
return CefV8ValueCToCpp::Wrap(_retval);
}
CefRefPtr<CefV8Value> CefV8Value::CreateFunction(
const CefString& name,
CefRefPtr<CefV8Handler> handler) {
@ -309,6 +334,20 @@ bool CefV8ValueCToCpp::IsArray() {
return _retval ? true : false;
}
bool CefV8ValueCToCpp::IsArrayBuffer() {
cef_v8value_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, is_array_buffer))
return false;
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Execute
int _retval = _struct->is_array_buffer(_struct);
// Return type: bool
return _retval ? true : false;
}
bool CefV8ValueCToCpp::IsFunction() {
cef_v8value_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, is_function))
@ -784,6 +823,36 @@ int CefV8ValueCToCpp::GetArrayLength() {
return _retval;
}
CefRefPtr<CefV8ArrayBufferReleaseCallback>
CefV8ValueCToCpp::GetArrayBufferReleaseCallback() {
cef_v8value_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_array_buffer_release_callback))
return NULL;
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Execute
cef_v8array_buffer_release_callback_t* _retval =
_struct->get_array_buffer_release_callback(_struct);
// Return type: refptr_diff
return CefV8ArrayBufferReleaseCallbackCppToC::Unwrap(_retval);
}
bool CefV8ValueCToCpp::NeuterArrayBuffer() {
cef_v8value_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, neuter_array_buffer))
return false;
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Execute
int _retval = _struct->neuter_array_buffer(_struct);
// Return type: bool
return _retval ? true : false;
}
CefString CefV8ValueCToCpp::GetFunctionName() {
cef_v8value_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_function_name))