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());