final void onInputValue(EventContext context, VirtualFrame frame, EventBinding<?> inputBinding, EventContext inputContext, int inputIndex, Object inputValue) {
if (next != null) {
next.onInputValue(context, frame, inputBinding, inputContext, inputIndex, inputValue);
}
try {
if (binding == inputBinding) {
innerOnInputValue(context, frame, binding, inputContext, inputIndex, inputValue);
}
} catch (Throwable t) {
if (!isSeenException()) {
CompilerDirectives.transferToInterpreterAndInvalidate();
setSeenException();
}
if (binding.isLanguageBinding()) {
throw t;
} else {
CompilerDirectives.transferToInterpreter();
exceptionEventForClientInstrument(binding, "onInputValue", t);
}
}
}