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

Commit 2c0d135

Browse files
authored
Merge pull request #3 from goddessfreya/fixees_gentz
Fixees gentz
2 parents fbb8bba + 96b6292 commit 2c0d135

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed

src/main.cc

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,22 @@ class Spellchecker : public Nan::ObjectWrap {
134134
uint32_t start = iter->start, end = iter->end;
135135

136136
Local<Object> misspelled_range = Nan::New<Object>();
137+
138+
#ifdef V8_USE_MAYBE
139+
{
140+
Isolate* isolate = misspelled_range->GetIsolate();
141+
Local<Context> context = isolate->GetCurrentContext();
142+
misspelled_range->Set(context, Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start)).Check();
143+
misspelled_range->Set(context, Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end)).Check();
144+
}
145+
Isolate* isolate = result->GetIsolate();
146+
Local<Context> context = isolate->GetCurrentContext();
147+
result->Set(context, index, misspelled_range).Check();
148+
#else
137149
misspelled_range->Set(Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start));
138150
misspelled_range->Set(Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end));
139151
result->Set(index, misspelled_range);
152+
#endif
140153
}
141154
}
142155

@@ -220,7 +233,13 @@ class Spellchecker : public Nan::ObjectWrap {
220233
Local<Array> result = Nan::New<Array>(dictionaries.size());
221234
for (size_t i = 0; i < dictionaries.size(); ++i) {
222235
const std::string& dict = dictionaries[i];
236+
#ifdef V8_USE_MAYBE
237+
Isolate* isolate = result->GetIsolate();
238+
Local<Context> context = isolate->GetCurrentContext();
239+
result->Set(context, i, Nan::New(dict.data(), dict.size()).ToLocalChecked()).Check();
240+
#else
223241
result->Set(i, Nan::New(dict.data(), dict.size()).ToLocalChecked());
242+
#endif
224243
}
225244

226245
info.GetReturnValue().Set(result);
@@ -246,7 +265,13 @@ class Spellchecker : public Nan::ObjectWrap {
246265
const std::string& word = corrections[i];
247266

248267
Nan::MaybeLocal<String> val = Nan::New<String>(word.data(), word.size());
268+
#ifdef V8_USE_MAYBE
269+
Isolate* isolate = result->GetIsolate();
270+
Local<Context> context = isolate->GetCurrentContext();
271+
result->Set(context, i, val.ToLocalChecked()).Check();
272+
#else
249273
result->Set(i, val.ToLocalChecked());
274+
#endif
250275
}
251276

252277
info.GetReturnValue().Set(result);
@@ -286,7 +311,11 @@ class Spellchecker : public Nan::ObjectWrap {
286311

287312
Isolate* isolate = exports->GetIsolate();
288313
Local<Context> context = isolate->GetCurrentContext();
314+
#ifdef V8_USE_MAYBE
315+
exports->Set(context, Nan::New("Spellchecker").ToLocalChecked(), tpl->GetFunction(context).ToLocalChecked()).Check();
316+
#else
289317
exports->Set(Nan::New("Spellchecker").ToLocalChecked(), tpl->GetFunction(context).ToLocalChecked());
318+
#endif
290319
}
291320
};
292321

src/spellchecker.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
#include <memory>
77
#include <stdint.h>
88

9+
#if V8_MAJOR_VERSION > 6 && V8_MINOR_VERSION > 2
10+
#define V8_USE_MAYBE
11+
#endif
12+
913
namespace spellchecker {
1014

1115
const int USE_SYSTEM_DEFAULTS = 0;

src/worker.cc

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,21 @@ void CheckSpellingWorker::HandleOKCallback() {
3535
uint32_t start = iter->start, end = iter->end;
3636

3737
Local<Object> misspelled_range = Nan::New<Object>();
38+
#ifdef V8_USE_MAYBE
39+
{
40+
Isolate* isolate = misspelled_range->GetIsolate();
41+
Local<Context> context = isolate->GetCurrentContext();
42+
misspelled_range->Set(context, Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start)).Check();
43+
misspelled_range->Set(context, Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end)).Check();
44+
}
45+
Isolate* isolate = result->GetIsolate();
46+
Local<Context> context = isolate->GetCurrentContext();
47+
result->Set(context, index, misspelled_range).Check();
48+
#else
3849
misspelled_range->Set(Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start));
3950
misspelled_range->Set(Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end));
40-
result->Set(index, misspelled_range);
51+
result->Set(index, misspelled_range);
52+
#endif
4153
}
4254

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

0 commit comments

Comments
 (0)