It's left unspecified what context (i.e. this value) onFulfilled and onRejected are called in. Should we specify? I say yes.
I think the obvious choice is undefined (which in sloppy mode becomes the global object), i.e. simply call the function as you normally would.
This prevents the antipattern of using this as a zeroth argument from creeping into implementations, which we currently allow and creates noninteroperable code.
Good catch. +1
Specify the `this` value must not be special. Closes #58.