I don't understand why you have to fix "ThreadUI" here.

In the real code, The "onerror" callback will actually be called in a way like:
```javascript
  var request = MessageManager.retrieveMMS.returnValues[0];
  var event = { target: request };
  xxx.onerror.call(request, event);
```
* `this` is the request
* `event.target` is the request too

So you should do exactly the same if you want to be close to the real stuff.

However I'm fine with just calling onerror in this specific case because we don't use the default `this` (as we bind) and we don't use the event parameter because we use the request variable from the outer scope. Just don't set `ThreadUI` as the context :)