// if the specified key doesn't exist, this method is called before the
// evaluation. Don't update value in this case.
if (!ivars.getInstanceVariableNameList().contains(key)) return;
// the specified key is found, so let's update
IRubyObject value = ivars.fastGetInstanceVariable(key);
BiVariable var = vars.getVariable(receiver, key);
if (var != null) {
var.setRubyObject(value);
} else {
var = new InstanceVariable(receiver, key, value);