I think I found the bug in stub.js causing this:
stub.js:299
// create asynchronous versions of callsArg* and yields* methods
for (var method in proto) {
if (proto.hasOwnProperty(method) && method.match(/^(callsArg|yields)/) {
proto[method + 'Async'] = (function (syncFnName) {
return function () {
this.callbackAsync = true;
return this[syncFnName].apply(this, arguments);
};
})(method);
}
}
Here, a new method with name 'methodAsync' is added to the prototype every time a good match is found, causing the for loop to loop forever. Wondering, why this happens in ie8 only.
The fix could look like:
...
if (proto.hasOwnProperty(method) && method.match(/^(callsArg|yields)/) && !method.match(/Async/)) {
...
I am going to fill a pull request if you are fine with this.
Please, let me know.
Thanks.
Jan