summarylogtreecommitdiffstats
path: root/patch-node-spellchecker.patch
blob: 101a894ab7def96c5774220a23e8060b9aa0783b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
commit 613ff91dd2d9a5ee0e86be8a3682beecc4e94887
Author: Hal Gentz <zegentzy@protonmail.com>
Date:   Thu Oct 24 06:17:40 2019 -0600

    Fix for v8 in node 12.
    
    Signed-off-by: Hal Gentz <zegentzy@protonmail.com>
---
 src/main.cc   | 22 ++++++++++++++++------
 src/worker.cc | 12 +++++++++---
 2 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/src/main.cc b/src/main.cc
index 0318ac5..b834148 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -134,9 +134,15 @@ class Spellchecker : public Nan::ObjectWrap {
       uint32_t start = iter->start, end = iter->end;
 
       Local<Object> misspelled_range = Nan::New<Object>();
-      misspelled_range->Set(Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start));
-      misspelled_range->Set(Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end));
-      result->Set(index, misspelled_range);
+      {
+        Isolate* isolate = misspelled_range->GetIsolate();
+        Local<Context> context = isolate->GetCurrentContext();
+        misspelled_range->Set(context, Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start)).Check();
+        misspelled_range->Set(context, Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end)).Check();
+      }
+      Isolate* isolate = result->GetIsolate();
+      Local<Context> context = isolate->GetCurrentContext();
+      result->Set(context, index, misspelled_range).Check();
     }
   }
 
@@ -220,7 +226,9 @@ class Spellchecker : public Nan::ObjectWrap {
     Local<Array> result = Nan::New<Array>(dictionaries.size());
     for (size_t i = 0; i < dictionaries.size(); ++i) {
       const std::string& dict = dictionaries[i];
-      result->Set(i, Nan::New(dict.data(), dict.size()).ToLocalChecked());
+      Isolate* isolate = result->GetIsolate();
+      Local<Context> context = isolate->GetCurrentContext();
+      result->Set(context, i, Nan::New(dict.data(), dict.size()).ToLocalChecked()).Check();
     }
 
     info.GetReturnValue().Set(result);
@@ -246,7 +254,9 @@ class Spellchecker : public Nan::ObjectWrap {
       const std::string& word = corrections[i];
 
       Nan::MaybeLocal<String> val = Nan::New<String>(word.data(), word.size());
-      result->Set(i, val.ToLocalChecked());
+      Isolate* isolate = result->GetIsolate();
+      Local<Context> context = isolate->GetCurrentContext();
+      result->Set(context, i, val.ToLocalChecked()).Check();
     }
 
     info.GetReturnValue().Set(result);
@@ -286,7 +296,7 @@ class Spellchecker : public Nan::ObjectWrap {
 
     Isolate* isolate = exports->GetIsolate();
     Local<Context> context = isolate->GetCurrentContext();
-    exports->Set(Nan::New("Spellchecker").ToLocalChecked(), tpl->GetFunction(context).ToLocalChecked());
+    exports->Set(context, Nan::New("Spellchecker").ToLocalChecked(), tpl->GetFunction(context).ToLocalChecked()).Check();
   }
 };
 
diff --git a/src/worker.cc b/src/worker.cc
index fbae5ec..0314e91 100644
--- a/src/worker.cc
+++ b/src/worker.cc
@@ -35,9 +35,15 @@ void CheckSpellingWorker::HandleOKCallback() {
     uint32_t start = iter->start, end = iter->end;
 
     Local<Object> misspelled_range = Nan::New<Object>();
-    misspelled_range->Set(Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start));
-    misspelled_range->Set(Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end));
-    result->Set(index, misspelled_range);
+    {
+      Isolate* isolate = misspelled_range->GetIsolate();
+      Local<Context> context = isolate->GetCurrentContext();
+      misspelled_range->Set(context, Nan::New("start").ToLocalChecked(), Nan::New<Integer>(start)).Check();
+      misspelled_range->Set(context, Nan::New("end").ToLocalChecked(), Nan::New<Integer>(end)).Check();
+    }
+    Isolate* isolate = result->GetIsolate();
+    Local<Context> context = isolate->GetCurrentContext();
+    result->Set(context, index, misspelled_range).Check();
   }
 
   Local<Value> argv[] = { Nan::Null(), result };