ensureHelper is used only by this function, I think it will look much better as a closure to this function (plus no need to pass obj, prop, args and capability/resolve around.