If the function passed to the Promise() constructor throws an exception (e.g. if the mozSettings API is not defined) does the promise automatically get rejected, or does it remain pending?  Do you need to add a catch statement here?