@@ -221,8 +221,10 @@ void TLSWrap::SSLInfoCallback(const SSL* ssl_, int where, int ret) {
221
221
Local<Object> object = c->object ();
222
222
223
223
if (where & SSL_CB_HANDSHAKE_START) {
224
- Local<Value> callback = object->Get (env->onhandshakestart_string ());
225
- if (callback->IsFunction ()) {
224
+ Local<Value> callback;
225
+
226
+ if (object->Get (env->context (), env->onhandshakestart_string ())
227
+ .ToLocal (&callback) && callback->IsFunction ()) {
226
228
Local<Value> argv[] = { env->GetNow () };
227
229
c->MakeCallback (callback.As <Function>(), arraysize (argv), argv);
228
230
}
@@ -232,9 +234,12 @@ void TLSWrap::SSLInfoCallback(const SSL* ssl_, int where, int ret) {
232
234
// sending HelloRequest in OpenSSL-1.1.1.
233
235
// We need to check whether this is in a renegotiation state or not.
234
236
if (where & SSL_CB_HANDSHAKE_DONE && !SSL_renegotiate_pending (ssl)) {
237
+ Local<Value> callback;
238
+
235
239
c->established_ = true ;
236
- Local<Value> callback = object->Get (env->onhandshakedone_string ());
237
- if (callback->IsFunction ()) {
240
+
241
+ if (object->Get (env->context (), env->onhandshakedone_string ())
242
+ .ToLocal (&callback) && callback->IsFunction ()) {
238
243
c->MakeCallback (callback.As <Function>(), 0 , nullptr );
239
244
}
240
245
}
@@ -845,7 +850,10 @@ int TLSWrap::SelectSNIContextCallback(SSL* s, int* ad, void* arg) {
845
850
846
851
// Call the SNI callback and use its return value as context
847
852
Local<Object> object = p->object ();
848
- Local<Value> ctx = object->Get (env->sni_context_string ());
853
+ Local<Value> ctx;
854
+
855
+ if (!object->Get (env->context (), env->sni_context_string ()).ToLocal (&ctx))
856
+ return SSL_TLSEXT_ERR_NOACK;
849
857
850
858
// Not an object, probably undefined or null
851
859
if (!ctx->IsObject ())
0 commit comments