Actually, what the program shows is that the Chi-square is rather robust, even in extreme cases. See the Fisher helpfile for further comments. The algorithm works with four loops, one for each degree of freedom. Three loops are 'dumb' and one, the last, loop is 'smart'. Precision is a problem with JavaScript and this procedure is particularly vulnerable.
Speed can also be a problem.
For each additional row speed will decrease with an additional factor determined by the size of the additional margin.