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 04bfeb77157ea168de6a382852e7163e0f8d9949..c4d0c2d332f2e09bfa411998abe4c172b135ca23 100644
- --- a/gin/converter.cc
- +++ b/gin/converter.cc
- @@ -20,6 +20,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 828e59f4640e84ae9e4517b9ed9bc13b154fa9f2..c3d97c4e46fe47076299e475be7eec74cbc5783c 100644
- --- a/gin/converter.h
- +++ b/gin/converter.h
- @@ -190,6 +190,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,
|