function closure()
{
var i = 0;
return {
update: function(new_i) { i = new_i; },
get_value: function() { return i; }
}
}
var c = closure();
print(c.get_value());
c.update(10);
print(c.get_value());
CWZ1bmN0aW9uIGNsb3N1cmUoKQogICAgewogICAgICAgIHZhciBpID0gMDsKICAgICAgICByZXR1cm4gewogICAgICAgIAl1cGRhdGU6IGZ1bmN0aW9uKG5ld19pKSB7IGkgPSBuZXdfaTsgfSwKICAgICAgICAgICAgZ2V0X3ZhbHVlOiBmdW5jdGlvbigpIHsgcmV0dXJuIGk7IH0KICAgICAgICB9CiAgICB9CiAKICAgIHZhciBjID0gY2xvc3VyZSgpOwogICAgcHJpbnQoYy5nZXRfdmFsdWUoKSk7CiAgICBjLnVwZGF0ZSgxMCk7CiAgICBwcmludChjLmdldF92YWx1ZSgpKTs=