* @param receiver receiver object returned when a script is evaluated.
* @param vars map to save retrieved instance variables.
* @param key instace varible name
*/
public static void retrieveByKey(RubyObject receiver, BiVariableMap vars, String key) {
InstanceVariables ivars = receiver.getInstanceVariables();
// 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);