@@ -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
@@ -98,24 +98,41 @@ bool JSStream::IsAlive() {
98
98
bool JSStream::IsClosing () {
99
99
HandleScope scope (env ()->isolate ());
100
100
Context::Scope context_scope (env ()->context ());
101
- return MakeCallback (env ()->isclosing_string (), 0 , nullptr )
102
- .ToLocalChecked ()->IsTrue ();
101
+ TryCatch try_catch (env ()->isolate ());
102
+ Local<Value> value;
103
+ if (!MakeCallback (env ()->isclosing_string (), 0 , nullptr ).ToLocal (&value)) {
104
+ FatalException (env ()->isolate (), try_catch);
105
+ return true ;
106
+ }
107
+ return value->IsTrue ();
103
108
}
104
109
105
110
106
111
int JSStream::ReadStart () {
107
112
HandleScope scope (env ()->isolate ());
108
113
Context::Scope context_scope (env ()->context ());
109
- return MakeCallback (env ()->onreadstart_string (), 0 , nullptr )
110
- .ToLocalChecked ()->Int32Value ();
114
+ TryCatch try_catch (env ()->isolate ());
115
+ Local<Value> value;
116
+ int value_int = UV_EPROTO;
117
+ if (!MakeCallback (env ()->onreadstart_string (), 0 , nullptr ).ToLocal (&value) ||
118
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
119
+ FatalException (env ()->isolate (), try_catch);
120
+ }
121
+ return value_int;
111
122
}
112
123
113
124
114
125
int JSStream::ReadStop () {
115
126
HandleScope scope (env ()->isolate ());
116
127
Context::Scope context_scope (env ()->context ());
117
- return MakeCallback (env ()->onreadstop_string (), 0 , nullptr )
118
- .ToLocalChecked ()->Int32Value ();
128
+ TryCatch try_catch (env ()->isolate ());
129
+ Local<Value> value;
130
+ int value_int = UV_EPROTO;
131
+ if (!MakeCallback (env ()->onreadstop_string (), 0 , nullptr ).ToLocal (&value) ||
132
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
133
+ FatalException (env ()->isolate (), try_catch);
134
+ }
135
+ return value_int;
119
136
}
120
137
121
138
@@ -128,10 +145,17 @@ int JSStream::DoShutdown(ShutdownWrap* req_wrap) {
128
145
};
129
146
130
147
req_wrap->Dispatched ();
131
- MaybeLocal<Value> res =
132
- MakeCallback (env ()->onshutdown_string (), arraysize (argv), argv);
133
148
134
- return res.ToLocalChecked ()->Int32Value ();
149
+ TryCatch try_catch (env ()->isolate ());
150
+ Local<Value> value;
151
+ int value_int = UV_EPROTO;
152
+ if (!MakeCallback (env ()->onshutdown_string (),
153
+ arraysize (argv),
154
+ argv).ToLocal (&value) ||
155
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
156
+ FatalException (env ()->isolate (), try_catch);
157
+ }
158
+ return value_int;
135
159
}
136
160
137
161
@@ -157,10 +181,17 @@ int JSStream::DoWrite(WriteWrap* w,
157
181
};
158
182
159
183
w->Dispatched ();
160
- MaybeLocal<Value> res =
161
- MakeCallback (env ()->onwrite_string (), arraysize (argv), argv);
162
184
163
- return res.ToLocalChecked ()->Int32Value ();
185
+ TryCatch try_catch (env ()->isolate ());
186
+ Local<Value> value;
187
+ int value_int = UV_EPROTO;
188
+ if (!MakeCallback (env ()->onwrite_string (),
189
+ arraysize (argv),
190
+ argv).ToLocal (&value) ||
191
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
192
+ FatalException (env ()->isolate (), try_catch);
193
+ }
194
+ return value_int;
164
195
}
165
196
166
197
0 commit comments