@@ -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,41 @@ 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
+ return true ;
95
+ }
96
+ return value->IsTrue ();
92
97
}
93
98
94
99
95
100
int JSStream::ReadStart () {
96
101
HandleScope scope (env ()->isolate ());
97
102
Context::Scope context_scope (env ()->context ());
98
- return MakeCallback (env ()->onreadstart_string (), 0 , nullptr )
99
- .ToLocalChecked ()->Int32Value ();
103
+ TryCatch try_catch (env ()->isolate ());
104
+ Local<Value> value;
105
+ int value_int = UV_EPROTO;
106
+ if (!MakeCallback (env ()->onreadstart_string (), 0 , nullptr ).ToLocal (&value) ||
107
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
108
+ FatalException (env ()->isolate (), try_catch);
109
+ }
110
+ return value_int;
100
111
}
101
112
102
113
103
114
int JSStream::ReadStop () {
104
115
HandleScope scope (env ()->isolate ());
105
116
Context::Scope context_scope (env ()->context ());
106
- return MakeCallback (env ()->onreadstop_string (), 0 , nullptr )
107
- .ToLocalChecked ()->Int32Value ();
117
+ TryCatch try_catch (env ()->isolate ());
118
+ Local<Value> value;
119
+ int value_int = UV_EPROTO;
120
+ if (!MakeCallback (env ()->onreadstop_string (), 0 , nullptr ).ToLocal (&value) ||
121
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
122
+ FatalException (env ()->isolate (), try_catch);
123
+ }
124
+ return value_int;
108
125
}
109
126
110
127
@@ -117,10 +134,17 @@ int JSStream::DoShutdown(ShutdownWrap* req_wrap) {
117
134
};
118
135
119
136
req_wrap->Dispatched ();
120
- MaybeLocal<Value> res =
121
- MakeCallback (env ()->onshutdown_string (), arraysize (argv), argv);
122
137
123
- return res.ToLocalChecked ()->Int32Value ();
138
+ TryCatch try_catch (env ()->isolate ());
139
+ Local<Value> value;
140
+ int value_int = UV_EPROTO;
141
+ if (!MakeCallback (env ()->onshutdown_string (),
142
+ arraysize (argv),
143
+ argv).ToLocal (&value) ||
144
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
145
+ FatalException (env ()->isolate (), try_catch);
146
+ }
147
+ return value_int;
124
148
}
125
149
126
150
@@ -146,10 +170,17 @@ int JSStream::DoWrite(WriteWrap* w,
146
170
};
147
171
148
172
w->Dispatched ();
149
- MaybeLocal<Value> res =
150
- MakeCallback (env ()->onwrite_string (), arraysize (argv), argv);
151
173
152
- return res.ToLocalChecked ()->Int32Value ();
174
+ TryCatch try_catch (env ()->isolate ());
175
+ Local<Value> value;
176
+ int value_int = UV_EPROTO;
177
+ if (!MakeCallback (env ()->onwrite_string (),
178
+ arraysize (argv),
179
+ argv).ToLocal (&value) ||
180
+ !value->Int32Value (env ()->context ()).To (&value_int)) {
181
+ FatalException (env ()->isolate (), try_catch);
182
+ }
183
+ return value_int;
153
184
}
154
185
155
186
0 commit comments