Cleanup and perf optimization

V8 and other engines benefit from defining the shape of the object
beforehand, so setting the _result property to null during the
resolver's initialization helps.
Only change the resolver's status once