@@ -14,9 +14,9 @@ using v8::FunctionCallbackInfo;
14
14
using v8::FunctionTemplate;
15
15
using v8::HandleScope;
16
16
using v8::Local;
17
- using v8::MaybeLocal;
18
17
using v8::Object;
19
18
using v8::String;
19
+ using v8::TryCatch;
20
20
using v8::Value;
21
21
22
22
@@ -87,24 +87,40 @@ bool JSStream::IsAlive() {
87
87
bool JSStream::IsClosing () {
88
88
HandleScope scope (env ()->isolate ());
89
89
Context::Scope context_scope (env ()->context ());
90
- return MakeCallback (env ()->isclosing_string (), 0 , nullptr )
91
- .ToLocalChecked ()->IsTrue ();
90
+ TryCatch try_catch (env ()->isolate ());
91
+ Local<Value> value;
92
+ if (!MakeCallback (env ()->isclosing_string (), 0 , nullptr ).ToLocal (&value)) {
93
+ FatalException (env ()->isolate (), try_catch);
94
+ }
95
+ return value->IsTrue ();
92
96
}
93
97
94
98
95
99
int JSStream::ReadStart () {
96
100
HandleScope scope (env ()->isolate ());
97
101
Context::Scope context_scope (env ()->context ());
98
- return MakeCallback (env ()->onreadstart_string (), 0 , nullptr )
99
- .ToLocalChecked ()->Int32Value ();
102
+ TryCatch try_catch (env ()->isolate ());
103
+ Local<Value> value;
104
+ int value_int = 0 ;
105
+ if (!MakeCallback (env ()->onreadstart_string (), 0 , nullptr ).ToLocal (&value) ||
106
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
107
+ FatalException (env ()->isolate (), try_catch);
108
+ }
109
+ return value_int;
100
110
}
101
111
102
112
103
113
int JSStream::ReadStop () {
104
114
HandleScope scope (env ()->isolate ());
105
115
Context::Scope context_scope (env ()->context ());
106
- return MakeCallback (env ()->onreadstop_string (), 0 , nullptr )
107
- .ToLocalChecked ()->Int32Value ();
116
+ TryCatch try_catch (env ()->isolate ());
117
+ Local<Value> value;
118
+ int value_int = 0 ;
119
+ if (!MakeCallback (env ()->onreadstop_string (), 0 , nullptr ).ToLocal (&value) ||
120
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
121
+ FatalException (env ()->isolate (), try_catch);
122
+ }
123
+ return value_int;
108
124
}
109
125
110
126
@@ -117,10 +133,17 @@ int JSStream::DoShutdown(ShutdownWrap* req_wrap) {
117
133
};
118
134
119
135
req_wrap->Dispatched ();
120
- MaybeLocal<Value> res =
121
- MakeCallback (env ()->onshutdown_string (), arraysize (argv), argv);
122
136
123
- return res.ToLocalChecked ()->Int32Value ();
137
+ TryCatch try_catch (env ()->isolate ());
138
+ Local<Value> value;
139
+ int value_int = 0 ;
140
+ if (!MakeCallback (env ()->onshutdown_string (),
141
+ arraysize (argv),
142
+ argv).ToLocal (&value) ||
143
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
144
+ FatalException (env ()->isolate (), try_catch);
145
+ }
146
+ return value_int;
124
147
}
125
148
126
149
@@ -146,10 +169,17 @@ int JSStream::DoWrite(WriteWrap* w,
146
169
};
147
170
148
171
w->Dispatched ();
149
- MaybeLocal<Value> res =
150
- MakeCallback (env ()->onwrite_string (), arraysize (argv), argv);
151
172
152
- return res.ToLocalChecked ()->Int32Value ();
173
+ TryCatch try_catch (env ()->isolate ());
174
+ Local<Value> value;
175
+ int value_int = 0 ;
176
+ if (!MakeCallback (env ()->onwrite_string (),
177
+ arraysize (argv),
178
+ argv).ToLocal (&value) ||
179
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
180
+ FatalException (env ()->isolate (), try_catch);
181
+ }
182
+ return value_int;
153
183
}
154
184
155
185
0 commit comments