Add object-map optimization, add weak-map implementation