Skip to content

Commit 485d675

Browse files
authored
Merge pull request #1696 from tiggerite/master
Implement support for Node 12
2 parents 3155eaf + e82db05 commit 485d675

30 files changed

+206
-210
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ env:
2020
- TARGET_ARCH="ia32"
2121

2222
node_js:
23+
- "12"
2324
- "10"
2425
- "8"
2526

appveyor.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ environment:
2626
GYP_MSVS_VERSION: 2015
2727
matrix:
2828
# Node.js
29+
- nodejs_version: "12"
2930
- nodejs_version: "10"
3031
- nodejs_version: "8"
3132

generate/templates/manual/clone/clone.cc

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ NAN_METHOD(GitClone::Clone) {
3333
// start convert_from_v8 block
3434
const char *from_url = NULL;
3535

36-
String::Utf8Value url(info[0]->ToString());
36+
Nan::Utf8String url(Nan::To<v8::String>(info[0]).ToLocalChecked());
3737
// malloc with one extra byte so we can add the terminating null character
3838
// C-strings expect:
3939
from_url = (const char *)malloc(url.length() + 1);
@@ -50,7 +50,7 @@ NAN_METHOD(GitClone::Clone) {
5050
// start convert_from_v8 block
5151
const char *from_local_path = NULL;
5252

53-
String::Utf8Value local_path(info[1]->ToString());
53+
Nan::Utf8String local_path(Nan::To<v8::String>(info[1]).ToLocalChecked());
5454
// malloc with one extra byte so we can add the terminating null character
5555
// C-strings expect:
5656
from_local_path = (const char *)malloc(local_path.length() + 1);
@@ -67,7 +67,7 @@ NAN_METHOD(GitClone::Clone) {
6767
// start convert_from_v8 block
6868
const git_clone_options *from_options = NULL;
6969
if (info[2]->IsObject()) {
70-
from_options = Nan::ObjectWrap::Unwrap<GitCloneOptions>(info[2]->ToObject())
70+
from_options = Nan::ObjectWrap::Unwrap<GitCloneOptions>(Nan::To<v8::Object>(info[2]).ToLocalChecked())
7171
->GetValue();
7272
} else {
7373
from_options = 0;
@@ -80,11 +80,11 @@ NAN_METHOD(GitClone::Clone) {
8080
CloneWorker *worker = new CloneWorker(baton, callback);
8181

8282
if (!info[0]->IsUndefined() && !info[0]->IsNull())
83-
worker->SaveToPersistent("url", info[0]->ToObject());
83+
worker->SaveToPersistent("url", Nan::To<v8::Object>(info[0]).ToLocalChecked());
8484
if (!info[1]->IsUndefined() && !info[1]->IsNull())
85-
worker->SaveToPersistent("local_path", info[1]->ToObject());
85+
worker->SaveToPersistent("local_path", Nan::To<v8::Object>(info[1]).ToLocalChecked());
8686
if (!info[2]->IsUndefined() && !info[2]->IsNull())
87-
worker->SaveToPersistent("options", info[2]->ToObject());
87+
worker->SaveToPersistent("options", Nan::To<v8::Object>(info[2]).ToLocalChecked());
8888

8989
AsyncLibgit2QueueWorker(worker);
9090
return;
@@ -140,12 +140,12 @@ void GitClone::CloneWorker::HandleOKCallback() {
140140
if (baton->error) {
141141
v8::Local<v8::Object> err;
142142
if (baton->error->message) {
143-
err = Nan::Error(baton->error->message)->ToObject();
143+
err = Nan::To<v8::Object>(Nan::Error(baton->error->message)).ToLocalChecked();
144144
} else {
145-
err = Nan::Error("Method clone has thrown an error.")->ToObject();
145+
err = Nan::To<v8::Object>(Nan::Error("Method clone has thrown an error.")).ToLocalChecked();
146146
}
147-
err->Set(Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
148-
err->Set(Nan::New("errorFunction").ToLocalChecked(),
147+
Nan::Set(err, Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
148+
Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(),
149149
Nan::New("Clone.clone").ToLocalChecked());
150150
v8::Local<v8::Value> argv[1] = {err};
151151
callback->Call(1, argv, async_resource);
@@ -168,24 +168,24 @@ void GitClone::CloneWorker::HandleOKCallback() {
168168
continue;
169169
}
170170

171-
v8::Local<v8::Object> nodeObj = node->ToObject();
171+
v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
172172
v8::Local<v8::Value> checkValue = GetPrivate(
173173
nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
174174

175175
if (!checkValue.IsEmpty() && !checkValue->IsNull() &&
176176
!checkValue->IsUndefined()) {
177-
v8::Local<v8::Value> argv[1] = {checkValue->ToObject()};
177+
v8::Local<v8::Value> argv[1] = {Nan::To<v8::Object>(checkValue).ToLocalChecked()};
178178
callback->Call(1, argv, async_resource);
179179
callbackFired = true;
180180
break;
181181
}
182182

183-
v8::Local<v8::Array> properties = nodeObj->GetPropertyNames();
183+
v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
184184
for (unsigned int propIndex = 0; propIndex < properties->Length();
185185
++propIndex) {
186186
v8::Local<v8::String> propName =
187-
properties->Get(propIndex)->ToString();
188-
v8::Local<v8::Value> nodeToQueue = nodeObj->Get(propName);
187+
Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
188+
v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
189189
if (!nodeToQueue->IsUndefined()) {
190190
workerArguments.push(nodeToQueue);
191191
}
@@ -194,10 +194,10 @@ void GitClone::CloneWorker::HandleOKCallback() {
194194

195195
if (!callbackFired) {
196196
v8::Local<v8::Object> err =
197-
Nan::Error("Method clone has thrown an error.")->ToObject();
198-
err->Set(Nan::New("errno").ToLocalChecked(),
197+
Nan::To<v8::Object>(Nan::Error("Method clone has thrown an error.")).ToLocalChecked();
198+
Nan::Set(err, Nan::New("errno").ToLocalChecked(),
199199
Nan::New(baton->error_code));
200-
err->Set(Nan::New("errorFunction").ToLocalChecked(),
200+
Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(),
201201
Nan::New("Clone.clone").ToLocalChecked());
202202
v8::Local<v8::Value> argv[1] = {err};
203203
callback->Call(1, argv, async_resource);

generate/templates/manual/commit/extract_signature.cc

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ NAN_METHOD(GitCommit::ExtractSignature)
2828
baton->error = NULL;
2929
baton->signature = GIT_BUF_INIT_CONST(NULL, 0);
3030
baton->signed_data = GIT_BUF_INIT_CONST(NULL, 0);
31-
baton->repo = Nan::ObjectWrap::Unwrap<GitRepository>(info[0]->ToObject())->GetValue();
31+
baton->repo = Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).ToLocalChecked())->GetValue();
3232

3333
// baton->commit_id
3434
if (info[1]->IsString()) {
35-
String::Utf8Value oidString(info[1]->ToString());
35+
Nan::Utf8String oidString(Nan::To<v8::String>(info[1]).ToLocalChecked());
3636
baton->commit_id = (git_oid *)malloc(sizeof(git_oid));
3737
if (git_oid_fromstr(baton->commit_id, (const char *)strdup(*oidString)) != GIT_OK) {
3838
free(baton->commit_id);
@@ -44,12 +44,12 @@ NAN_METHOD(GitCommit::ExtractSignature)
4444
}
4545
}
4646
} else {
47-
baton->commit_id = Nan::ObjectWrap::Unwrap<GitOid>(info[1]->ToObject())->GetValue();
47+
baton->commit_id = Nan::ObjectWrap::Unwrap<GitOid>(Nan::To<v8::Object>(info[1]).ToLocalChecked())->GetValue();
4848
}
4949

5050
// baton->field
5151
if (info[2]->IsString()) {
52-
String::Utf8Value field(info[2]->ToString());
52+
Nan::Utf8String field(Nan::To<v8::String>(info[2]).ToLocalChecked());
5353
baton->field = (char *)malloc(field.length() + 1);
5454
memcpy((void *)baton->field, *field, field.length());
5555
baton->field[field.length()] = 0;
@@ -65,8 +65,8 @@ NAN_METHOD(GitCommit::ExtractSignature)
6565
}
6666

6767
ExtractSignatureWorker *worker = new ExtractSignatureWorker(baton, callback);
68-
worker->SaveToPersistent("repo", info[0]->ToObject());
69-
worker->SaveToPersistent("commit_id", info[1]->ToObject());
68+
worker->SaveToPersistent("repo", Nan::To<v8::Object>(info[0]).ToLocalChecked());
69+
worker->SaveToPersistent("commit_id", Nan::To<v8::Object>(info[1]).ToLocalChecked());
7070
Nan::AsyncQueueWorker(worker);
7171
return;
7272
}
@@ -132,9 +132,9 @@ void GitCommit::ExtractSignatureWorker::HandleOKCallback()
132132
}
133133
else if (baton->error_code < 0)
134134
{
135-
Local<v8::Object> err = Nan::Error("Extract Signature has thrown an error.")->ToObject();
136-
err->Set(Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
137-
err->Set(Nan::New("errorFunction").ToLocalChecked(), Nan::New("Commit.extractSignature").ToLocalChecked());
135+
Local<v8::Object> err = Nan::To<v8::Object>(Nan::Error("Extract Signature has thrown an error.")).ToLocalChecked();
136+
Nan::Set(err, Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
137+
Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(), Nan::New("Commit.extractSignature").ToLocalChecked());
138138
Local<v8::Value> argv[1] = {
139139
err
140140
};

generate/templates/manual/filter_list/load.cc

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ NAN_METHOD(GitFilterList::Load) {
4747
// start convert_from_v8 block
4848
git_repository *from_repo = NULL;
4949
from_repo =
50-
Nan::ObjectWrap::Unwrap<GitRepository>(info[0]->ToObject())->GetValue();
50+
Nan::ObjectWrap::Unwrap<GitRepository>(Nan::To<v8::Object>(info[0]).ToLocalChecked())->GetValue();
5151
// end convert_from_v8 block
5252
baton->repo = from_repo;
5353
// start convert_from_v8 block
5454
git_blob *from_blob = NULL;
5555
if (info[1]->IsObject()) {
5656
from_blob =
57-
Nan::ObjectWrap::Unwrap<GitBlob>(info[1]->ToObject())->GetValue();
57+
Nan::ObjectWrap::Unwrap<GitBlob>(Nan::To<v8::Object>(info[1]).ToLocalChecked())->GetValue();
5858
} else {
5959
from_blob = 0;
6060
}
@@ -63,7 +63,7 @@ NAN_METHOD(GitFilterList::Load) {
6363
// start convert_from_v8 block
6464
const char *from_path = NULL;
6565

66-
String::Utf8Value path(info[2]->ToString());
66+
Nan::Utf8String path(Nan::To<v8::String>(info[2]).ToLocalChecked());
6767
// malloc with one extra byte so we can add the terminating null character
6868
// C-strings expect:
6969
from_path = (const char *)malloc(path.length() + 1);
@@ -93,15 +93,15 @@ NAN_METHOD(GitFilterList::Load) {
9393
LoadWorker *worker = new LoadWorker(baton, callback);
9494

9595
if (!info[0]->IsUndefined() && !info[0]->IsNull())
96-
worker->SaveToPersistent("repo", info[0]->ToObject());
96+
worker->SaveToPersistent("repo", Nan::To<v8::Object>(info[0]).ToLocalChecked());
9797
if (!info[1]->IsUndefined() && !info[1]->IsNull())
98-
worker->SaveToPersistent("blob", info[1]->ToObject());
98+
worker->SaveToPersistent("blob", Nan::To<v8::Object>(info[1]).ToLocalChecked());
9999
if (!info[2]->IsUndefined() && !info[2]->IsNull())
100-
worker->SaveToPersistent("path", info[2]->ToObject());
100+
worker->SaveToPersistent("path", Nan::To<v8::Object>(info[2]).ToLocalChecked());
101101
if (!info[3]->IsUndefined() && !info[3]->IsNull())
102-
worker->SaveToPersistent("mode", info[3]->ToObject());
102+
worker->SaveToPersistent("mode", Nan::To<v8::Object>(info[3]).ToLocalChecked());
103103
if (!info[4]->IsUndefined() && !info[4]->IsNull())
104-
worker->SaveToPersistent("flags", info[4]->ToObject());
104+
worker->SaveToPersistent("flags", Nan::To<v8::Object>(info[4]).ToLocalChecked());
105105

106106
AsyncLibgit2QueueWorker(worker);
107107
return;
@@ -134,17 +134,17 @@ void GitFilterList::LoadWorker::HandleOKCallback() {
134134
// GitFilterList baton->filters
135135
v8::Local<v8::Array> owners = Nan::New<Array>(0);
136136
v8::Local<v8::Object> filterRegistry = Nan::New(GitFilterRegistry::persistentHandle);
137-
v8::Local<v8::Array> propertyNames = filterRegistry->GetPropertyNames();
137+
v8::Local<v8::Array> propertyNames = Nan::GetPropertyNames(filterRegistry).ToLocalChecked();
138138

139139
Nan::Set(
140140
owners,
141141
Nan::New<Number>(0),
142-
this->GetFromPersistent("repo")->ToObject()
142+
Nan::To<v8::Object>(this->GetFromPersistent("repo")).ToLocalChecked()
143143
);
144144

145145
for (uint32_t index = 0; index < propertyNames->Length(); ++index) {
146-
v8::Local<v8::String> propertyName = propertyNames->Get(index)->ToString();
147-
String::Utf8Value propertyNameAsUtf8Value(propertyName);
146+
v8::Local<v8::String> propertyName = Nan::To<v8::String>(Nan::Get(propertyNames, index).ToLocalChecked()).ToLocalChecked();
147+
Nan::Utf8String propertyNameAsUtf8Value(propertyName);
148148
const char *propertyNameAsCString = *propertyNameAsUtf8Value;
149149

150150
bool isNotMethodOnRegistry = strcmp("register", propertyNameAsCString)
@@ -153,12 +153,12 @@ void GitFilterList::LoadWorker::HandleOKCallback() {
153153
Nan::Set(
154154
owners,
155155
Nan::New<Number>(owners->Length()),
156-
filterRegistry->Get(propertyName)
156+
Nan::Get(filterRegistry, propertyName).ToLocalChecked()
157157
);
158158
}
159159
}
160160

161-
to = GitFilterList::New(baton->filters, true, owners->ToObject());
161+
to = GitFilterList::New(baton->filters, true, Nan::To<v8::Object>(owners).ToLocalChecked());
162162
} else {
163163
to = Nan::Null();
164164
}
@@ -172,12 +172,12 @@ void GitFilterList::LoadWorker::HandleOKCallback() {
172172
if (baton->error) {
173173
v8::Local<v8::Object> err;
174174
if (baton->error->message) {
175-
err = Nan::Error(baton->error->message)->ToObject();
175+
err = Nan::To<v8::Object>(Nan::Error(baton->error->message)).ToLocalChecked();
176176
} else {
177-
err = Nan::Error("Method load has thrown an error.")->ToObject();
177+
err = Nan::To<v8::Object>(Nan::Error("Method load has thrown an error.")).ToLocalChecked();
178178
}
179-
err->Set(Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
180-
err->Set(Nan::New("errorFunction").ToLocalChecked(),
179+
Nan::Set(err, Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
180+
Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(),
181181
Nan::New("FilterList.load").ToLocalChecked());
182182
v8::Local<v8::Value> argv[1] = {err};
183183
callback->Call(1, argv, async_resource);
@@ -202,24 +202,24 @@ void GitFilterList::LoadWorker::HandleOKCallback() {
202202
continue;
203203
}
204204

205-
v8::Local<v8::Object> nodeObj = node->ToObject();
205+
v8::Local<v8::Object> nodeObj = Nan::To<v8::Object>(node).ToLocalChecked();
206206
v8::Local<v8::Value> checkValue = GetPrivate(
207207
nodeObj, Nan::New("NodeGitPromiseError").ToLocalChecked());
208208

209209
if (!checkValue.IsEmpty() && !checkValue->IsNull() &&
210210
!checkValue->IsUndefined()) {
211-
v8::Local<v8::Value> argv[1] = {checkValue->ToObject()};
211+
v8::Local<v8::Value> argv[1] = {Nan::To<v8::Object>(checkValue).ToLocalChecked()};
212212
callback->Call(1, argv, async_resource);
213213
callbackFired = true;
214214
break;
215215
}
216216

217-
v8::Local<v8::Array> properties = nodeObj->GetPropertyNames();
217+
v8::Local<v8::Array> properties = Nan::GetPropertyNames(nodeObj).ToLocalChecked();
218218
for (unsigned int propIndex = 0; propIndex < properties->Length();
219219
++propIndex) {
220220
v8::Local<v8::String> propName =
221-
properties->Get(propIndex)->ToString();
222-
v8::Local<v8::Value> nodeToQueue = nodeObj->Get(propName);
221+
Nan::To<v8::String>(Nan::Get(properties, propIndex).ToLocalChecked()).ToLocalChecked();
222+
v8::Local<v8::Value> nodeToQueue = Nan::Get(nodeObj, propName).ToLocalChecked();
223223
if (!nodeToQueue->IsUndefined()) {
224224
workerArguments.push(nodeToQueue);
225225
}
@@ -228,10 +228,10 @@ void GitFilterList::LoadWorker::HandleOKCallback() {
228228

229229
if (!callbackFired) {
230230
v8::Local<v8::Object> err =
231-
Nan::Error("Method load has thrown an error.")->ToObject();
232-
err->Set(Nan::New("errno").ToLocalChecked(),
231+
Nan::To<v8::Object>(Nan::Error("Method load has thrown an error.")).ToLocalChecked();
232+
Nan::Set(err, Nan::New("errno").ToLocalChecked(),
233233
Nan::New(baton->error_code));
234-
err->Set(Nan::New("errorFunction").ToLocalChecked(),
234+
Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(),
235235
Nan::New("FilterList.load").ToLocalChecked());
236236
v8::Local<v8::Value> argv[1] = {err};
237237
callback->Call(1, argv, async_resource);

generate/templates/manual/filter_source/repo.cc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ void GitFilterSource::RepoWorker::HandleOKCallback() {
6060
if (baton->error) {
6161
v8::Local<v8::Object> err;
6262
if (baton->error->message) {
63-
err = Nan::Error(baton->error->message)->ToObject();
63+
err = Nan::To<v8::Object>(Nan::Error(baton->error->message)).ToLocalChecked();
6464
} else {
65-
err = Nan::Error("Method repo has thrown an error.")->ToObject();
65+
err = Nan::To<v8::Object>(Nan::Error("Method repo has thrown an error.")).ToLocalChecked();
6666
}
67-
err->Set(Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
68-
err->Set(Nan::New("errorFunction").ToLocalChecked(),
67+
Nan::Set(err, Nan::New("errno").ToLocalChecked(), Nan::New(baton->error_code));
68+
Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(),
6969
Nan::New("FilterSource.repo").ToLocalChecked());
7070
v8::Local<v8::Value> argv[1] = {err};
7171
callback->Call(1, argv, async_resource);
@@ -74,10 +74,10 @@ void GitFilterSource::RepoWorker::HandleOKCallback() {
7474
free((void *)baton->error);
7575
} else if (baton->error_code < 0) {
7676
v8::Local<v8::Object> err =
77-
Nan::Error("Method repo has thrown an error.")->ToObject();
78-
err->Set(Nan::New("errno").ToLocalChecked(),
77+
Nan::To<v8::Object>(Nan::Error("Method repo has thrown an error.")).ToLocalChecked();
78+
Nan::Set(err, Nan::New("errno").ToLocalChecked(),
7979
Nan::New(baton->error_code));
80-
err->Set(Nan::New("errorFunction").ToLocalChecked(),
80+
Nan::Set(err, Nan::New("errorFunction").ToLocalChecked(),
8181
Nan::New("FilterSource.repo").ToLocalChecked());
8282
v8::Local<v8::Value> argv[1] = {err};
8383
callback->Call(1, argv, async_resource);

generate/templates/manual/include/str_array_converter.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ class StrArrayConverter {
1414
static git_strarray *Convert (v8::Local<v8::Value> val);
1515

1616
private:
17-
static git_strarray *ConvertArray(Array *val);
18-
static git_strarray *ConvertString(v8::Local<String> val);
17+
static git_strarray *ConvertArray(v8::Local<v8::Array> val);
18+
static git_strarray *ConvertString(v8::Local<v8::String> val);
1919
static git_strarray *AllocStrArray(const size_t count);
2020
static git_strarray *ConstructStrArray(int argc, char** argv);
2121
};

0 commit comments

Comments
 (0)