support non-truthy values in map destructuring

previously, if defaults were passed, these would override the values
from the map.