Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit 613ff91

Browse files
committed
Fix for v8 in node 12.
Signed-off-by: Hal Gentz <zegentzy@protonmail.com>
1 parent a03caf3 commit 613ff91

File tree

3 files changed

+26
-10
lines changed

3 files changed

+26
-10
lines changed

package-lock.json

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main.cc

+16-6
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,15 @@ class Spellchecker : public Nan::ObjectWrap {
134134
uint32_t start = iter->start, end = iter->end;
135135

136136
Local<Object> misspelled_range = Nan::New<Object>();
137-
misspelled_range->Set(Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start));
138-
misspelled_range->Set(Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end));
139-
result->Set(index, misspelled_range);
137+
{
138+
Isolate* isolate = misspelled_range->GetIsolate();
139+
Local<Context> context = isolate->GetCurrentContext();
140+
misspelled_range->Set(context, Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start)).Check();
141+
misspelled_range->Set(context, Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end)).Check();
142+
}
143+
Isolate* isolate = result->GetIsolate();
144+
Local<Context> context = isolate->GetCurrentContext();
145+
result->Set(context, index, misspelled_range).Check();
140146
}
141147
}
142148

@@ -220,7 +226,9 @@ class Spellchecker : public Nan::ObjectWrap {
220226
Local<Array> result = Nan::New<Array>(dictionaries.size());
221227
for (size_t i = 0; i < dictionaries.size(); ++i) {
222228
const std::string& dict = dictionaries[i];
223-
result->Set(i, Nan::New(dict.data(), dict.size()).ToLocalChecked());
229+
Isolate* isolate = result->GetIsolate();
230+
Local<Context> context = isolate->GetCurrentContext();
231+
result->Set(context, i, Nan::New(dict.data(), dict.size()).ToLocalChecked()).Check();
224232
}
225233

226234
info.GetReturnValue().Set(result);
@@ -246,7 +254,9 @@ class Spellchecker : public Nan::ObjectWrap {
246254
const std::string& word = corrections[i];
247255

248256
Nan::MaybeLocal<String> val = Nan::New<String>(word.data(), word.size());
249-
result->Set(i, val.ToLocalChecked());
257+
Isolate* isolate = result->GetIsolate();
258+
Local<Context> context = isolate->GetCurrentContext();
259+
result->Set(context, i, val.ToLocalChecked()).Check();
250260
}
251261

252262
info.GetReturnValue().Set(result);
@@ -286,7 +296,7 @@ class Spellchecker : public Nan::ObjectWrap {
286296

287297
Isolate* isolate = exports->GetIsolate();
288298
Local<Context> context = isolate->GetCurrentContext();
289-
exports->Set(Nan::New("Spellchecker").ToLocalChecked(), tpl->GetFunction(context).ToLocalChecked());
299+
exports->Set(context, Nan::New("Spellchecker").ToLocalChecked(), tpl->GetFunction(context).ToLocalChecked()).Check();
290300
}
291301
};
292302

src/worker.cc

+9-3
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,15 @@ void CheckSpellingWorker::HandleOKCallback() {
3535
uint32_t start = iter->start, end = iter->end;
3636

3737
Local<Object> misspelled_range = Nan::New<Object>();
38-
misspelled_range->Set(Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start));
39-
misspelled_range->Set(Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end));
40-
result->Set(index, misspelled_range);
38+
{
39+
Isolate* isolate = misspelled_range->GetIsolate();
40+
Local<Context> context = isolate->GetCurrentContext();
41+
misspelled_range->Set(context, Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start)).Check();
42+
misspelled_range->Set(context, Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end)).Check();
43+
}
44+
Isolate* isolate = result->GetIsolate();
45+
Local<Context> context = isolate->GetCurrentContext();
46+
result->Set(context, index, misspelled_range).Check();
4147
}
4248

4349
Local<Value> argv[] = { Nan::Null(), result };

0 commit comments

Comments
 (0)