@Override
public IRubyObject when(WhenNode whenNode, IRubyObject value, ThreadContext context, Ruby runtime, IRubyObject self, Block aBlock) {
RubyArray expressions = RuntimeHelpers.splatValue(expressionNodes.interpret(runtime, context, self, aBlock));
for (int j = 0,k = expressions.getLength(); j < k; j++) {
IRubyObject test = expressions.eltInternal(j);
if ((value != null && eqq.call(context, self, test, value).isTrue())
|| (value == null && test.isTrue())) {
return whenNode.interpret(runtime, context, self, aBlock);
}