mirror of https://github.com/electron/electron
61 lines
2.1 KiB
Diff
61 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jeremy Rose <japthorp@slack-corp.com>
|
|
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 62209cadaec7314d2d4ec3e63e1bc88394afa4a9..b035bfe1fd16fb6ca8be33bf446ff8578d7cc2a0 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;
|
|
@@ -246,6 +247,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,
|