+ (still fail) workaround for the buster issue 334 in test, shows that the loop is not due to the function coming from outside
* (still fail): fixed infinite recursion bug, but need to introduce another "not-implemented". However, the failure is now that h isn't called at all.
* (fail) improve test to give better failure message
* (pass) aha, we need to assume that g is cooperative, too (ie calls the function arg that it is being given)
* (pass) refactored tests, workaround stuff put into this.spyX, in setUp
+ (fail) improved test: spyX(..) sets displayName on the returned spy s.t. we get a reasonable failure message from .callOrder(..)
Note the one changed assert.callOrder for illustration
* (fail) refactored tests, spyX does the try/catch now; reintroduced the last bug in job.js for illustrating this
* (fail) refactored tests: overwrite assert.calledOnce to put spy.displayName and callChain into failure message; re-fixed old bug job.js
* (pass) refactored tests to always use our spyX(..)
+ (fail) again, add test for one more level
* (fail) ok, we've got to assume that one more function is cooperative - but now our messing with stack traces comes back on us... We need to be a bit more selective with that.