123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
- From: Jeremy Rose <[email protected]>
- Date: Wed, 8 Mar 2023 14:53:17 -0800
- Subject: add gin::Converter support for ArrayBufferView
- This should be upstreamed.
- diff --git a/gin/converter.cc b/gin/converter.cc
- index 4eb8c3d8c8392512eeb235bc18012589549b872b..d0432f6fff09cdcebed55ccf03a6524a445ef346 100644
- --- a/gin/converter.cc
- +++ b/gin/converter.cc
- @@ -18,6 +18,7 @@
- #include "v8/include/v8-value.h"
-
- using v8::ArrayBuffer;
- +using v8::ArrayBufferView;
- using v8::External;
- using v8::Function;
- using v8::Int32;
- @@ -244,6 +245,20 @@ bool Converter<Local<ArrayBuffer>>::FromV8(Isolate* isolate,
- return true;
- }
-
- +Local<Value> Converter<Local<ArrayBufferView>>::ToV8(Isolate* isolate,
- + Local<ArrayBufferView> val) {
- + return val.As<Value>();
- +}
- +
- +bool Converter<Local<ArrayBufferView>>::FromV8(Isolate* isolate,
- + Local<Value> val,
- + Local<ArrayBufferView>* out) {
- + if (!val->IsArrayBufferView())
- + return false;
- + *out = Local<ArrayBufferView>::Cast(val);
- + return true;
- +}
- +
- Local<Value> Converter<Local<External>>::ToV8(Isolate* isolate,
- Local<External> val) {
- return val.As<Value>();
- diff --git a/gin/converter.h b/gin/converter.h
- index eb704fcd56dee861e18e9cd64a857d68dea6f415..d32a8c26403cf32f3333ed85c23292915e6f0681 100644
- --- a/gin/converter.h
- +++ b/gin/converter.h
- @@ -180,6 +180,15 @@ struct GIN_EXPORT Converter<v8::Local<v8::ArrayBuffer> > {
- v8::Local<v8::ArrayBuffer>* out);
- };
-
- +template<>
- +struct GIN_EXPORT Converter<v8::Local<v8::ArrayBufferView> > {
- + static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
- + v8::Local<v8::ArrayBufferView> val);
- + static bool FromV8(v8::Isolate* isolate,
- + v8::Local<v8::Value> val,
- + v8::Local<v8::ArrayBufferView>* out);
- +};
- +
- template<>
- struct GIN_EXPORT Converter<v8::Local<v8::External> > {
- static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|