File websocket-no-v8-FunctionTemplate-GetFunction.patch of Package signal-desktop

From 6c3ac5a1a8dfddeea0c5d15ec89aa4ed5eb738b0 Mon Sep 17 00:00:00 2001
From: Arturo Rinaldi <artynet@users.noreply.github.com>
Date: Tue, 3 Dec 2019 22:17:25 +0100
Subject: [PATCH] adding compatibility with V8 release greater than v7.6 (node
 and electron engines) (#376)

* adding compatibility with V8 release greater than v7.6
* using the Maybe types to solve the deprecation warning
---
 src/bufferutil.cc | 20 ++++++++++----------
 src/validation.cc |  4 ++--
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/bufferutil.cc b/src/bufferutil.cc
index a53c246d..888ac576 100644
--- a/node_modules/websocket/src/bufferutil.cc
+++ b/node_modules/websocket/src/bufferutil.cc
@@ -31,7 +31,7 @@ class BufferUtil : public ObjectWrap
     Nan::SetMethod(t, "unmask", BufferUtil::Unmask);
     Nan::SetMethod(t, "mask", BufferUtil::Mask);
     Nan::SetMethod(t, "merge", BufferUtil::Merge);
-    Nan::Set(target, Nan::New<String>("BufferUtil").ToLocalChecked(), t->GetFunction());
+    Nan::Set(target, Nan::New<String>("BufferUtil").ToLocalChecked(), Nan::GetFunction(t).ToLocalChecked());
   }
 
 protected:
@@ -47,14 +47,14 @@ class BufferUtil : public ObjectWrap
   static NAN_METHOD(Merge)
   {
     Nan::HandleScope scope;
-    Local<Object> bufferObj = info[0]->ToObject();
+    Local<Object> bufferObj = Nan::To<v8::Object>(info[0]).ToLocalChecked();
     char* buffer = Buffer::Data(bufferObj);
     Local<Array> array = Local<Array>::Cast(info[1]);
     unsigned int arrayLength = array->Length();
     size_t offset = 0;
     unsigned int i;
     for (i = 0; i < arrayLength; ++i) {
-      Local<Object> src = array->Get(i)->ToObject();
+      Local<Object> src = Nan::To<v8::Object>(Nan::Get(array, Nan::New(i)).ToLocalChecked()).ToLocalChecked();
       size_t length = Buffer::Length(src);
       memcpy(buffer + offset, Buffer::Data(src), length);
       offset += length;
@@ -65,9 +65,9 @@ class BufferUtil : public ObjectWrap
   static NAN_METHOD(Unmask)
   {
     Nan::HandleScope scope;
-    Local<Object> buffer_obj = info[0]->ToObject();
+    Local<Object> buffer_obj = Nan::To<v8::Object>(info[0]).ToLocalChecked();
     size_t length = Buffer::Length(buffer_obj);
-    Local<Object> mask_obj = info[1]->ToObject();
+    Local<Object> mask_obj = Nan::To<v8::Object>(info[1]).ToLocalChecked();
     unsigned int *mask = (unsigned int*)Buffer::Data(mask_obj);
     unsigned int* from = (unsigned int*)Buffer::Data(buffer_obj);
     size_t len32 = length / 4;
@@ -86,12 +86,12 @@ class BufferUtil : public ObjectWrap
   static NAN_METHOD(Mask)
   {
     Nan::HandleScope scope;
-    Local<Object> buffer_obj = info[0]->ToObject();
-    Local<Object> mask_obj = info[1]->ToObject();
+    Local<Object> buffer_obj = Nan::To<v8::Object>(info[0]).ToLocalChecked();
+    Local<Object> mask_obj = Nan::To<v8::Object>(info[1]).ToLocalChecked();
     unsigned int *mask = (unsigned int*)Buffer::Data(mask_obj);
-    Local<Object> output_obj = info[2]->ToObject();
-    unsigned int dataOffset = info[3]->Int32Value();
-    unsigned int length = info[4]->Int32Value();
+    Local<Object> output_obj = Nan::To<v8::Object>(info[2]).ToLocalChecked();
+    unsigned int dataOffset = Nan::To<v8::Int32>(info[3]).ToLocalChecked()->Value();
+    unsigned int length = Nan::To<v8::Int32>(info[4]).ToLocalChecked()->Value();
     unsigned int* to = (unsigned int*)(Buffer::Data(output_obj) + dataOffset);
     unsigned int* from = (unsigned int*)Buffer::Data(buffer_obj);
     unsigned int len32 = length / 4;
diff --git a/src/validation.cc b/src/validation.cc
index 3db4f65f..be13c2e1 100644
--- a/node_modules/websocket/src/validation.cc
+++ b/node_modules/websocket/src/validation.cc
@@ -111,7 +111,7 @@ class Validation : public ObjectWrap
     Local<FunctionTemplate> t = Nan::New<FunctionTemplate>(New);
     t->InstanceTemplate()->SetInternalFieldCount(1);
     Nan::SetMethod(t, "isValidUTF8", Validation::IsValidUTF8);
-    Nan::Set(target, Nan::New<String>("Validation").ToLocalChecked(), t->GetFunction());
+    Nan::Set(target, Nan::New<String>("Validation").ToLocalChecked(), Nan::GetFunction(t).ToLocalChecked());
   }
 
 protected:
@@ -130,7 +130,7 @@ class Validation : public ObjectWrap
     if (!Buffer::HasInstance(info[0])) {
       return Nan::ThrowTypeError("First argument needs to be a buffer");
     }
-    Local<Object> buffer_obj = info[0]->ToObject();
+    Local<Object> buffer_obj = Nan::To<v8::Object>(info[0]).ToLocalChecked();
     char *buffer_data = Buffer::Data(buffer_obj);
     size_t buffer_length = Buffer::Length(buffer_obj);
     info.GetReturnValue().Set(is_valid_utf8(buffer_length, buffer_data) == 1 ? Nan::True() : Nan::False());
openSUSE Build Service is sponsored by