You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Odd title but this is a very specific issue, it seems. I've only seen this happen in Internet Explorer 9.
If you emit four or more variables with the last parameter being a function. When the function is passed through, "asyncAngularify", it also causes the third parameter (index 2) to change in to the resulting function.
I believe this is a crazy issue to do with IE9s interpretation of the function. The function is defined as:
emit: function (eventName, data, callback)
Yet these parameters are never used, however, it does do:
var callback = arguments[lastIndex];
The key part here being that callback has been declared twice. Once, as parameter 3 of the arguments array (function definition) and now once as the final parameter of the arguments. So when:
callback = asyncAngularify(socket, callback);
happens, I believe it overwrites both arguments[2] and arguments[length - 1]
The fix for me so far is just to remove the variables in the function definition. Other methods would be to rename the parameters so there are no conflicting ones.
The text was updated successfully, but these errors were encountered:
Odd title but this is a very specific issue, it seems. I've only seen this happen in Internet Explorer 9.
If you emit four or more variables with the last parameter being a function. When the function is passed through, "asyncAngularify", it also causes the third parameter (index 2) to change in to the resulting function.
E.g.
angularSocket.emit("MyEvent", dataA, dataB, dataC, someCallback);
Will get passed to socket as:
emit("MyEvent", dataA, wrappedCallback, dataC, wrappedCallback);
I believe this is a crazy issue to do with IE9s interpretation of the function. The function is defined as:
emit: function (eventName, data, callback)
Yet these parameters are never used, however, it does do:
var callback = arguments[lastIndex];
The key part here being that callback has been declared twice. Once, as parameter 3 of the arguments array (function definition) and now once as the final parameter of the arguments. So when:
callback = asyncAngularify(socket, callback);
happens, I believe it overwrites both
arguments[2]
andarguments[length - 1]
The fix for me so far is just to remove the variables in the function definition. Other methods would be to rename the parameters so there are no conflicting ones.
The text was updated successfully, but these errors were encountered: