From d4496332f935671613a1ad80dfe62a2ff4a53ae7 Mon Sep 17 00:00:00 2001 From: Ivan Daniluk Date: Thu, 12 Oct 2017 12:15:07 +0300 Subject: [PATCH] Check for callback in makeAsyncHandler (#395) This PR fixes regression from 3540972 and adds check for callback validity before putting it into event loop for sendAsync calls. --- geth/jail/handlers.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/geth/jail/handlers.go b/geth/jail/handlers.go index 73bbbf74f..7a0df7129 100644 --- a/geth/jail/handlers.go +++ b/geth/jail/handlers.go @@ -75,10 +75,12 @@ func makeAsyncSendHandler(jail *Jail, cellInt common.JailCell) func(call otto.Fu go func() { response := jail.Send(call) - // run callback asyncronously with args (error, response) callback := call.Argument(1) - err := otto.NullValue() - cell.CallAsync(callback, err, response) + if callback.Class() == "Function" { + // run callback asyncronously with args (error, response) + err := otto.NullValue() + cell.CallAsync(callback, err, response) + } }() return otto.UndefinedValue() }