we should just cache `undefined` if that is the value and use something ala `UNDEFINED` as a marker to mean "key missing". cached undefined and key missing should be two different things.