не парься и считай через экспоненту

Код:
xPow = function (x,y)
{
var yy=y;
if (Math.abs(y)<1) yy=1/yy
sign = Math.pow(x/Math.abs(x),odd(y))
if (odd(yy)==2 && sign<0) return void(2);
return sign*Math.exp(y*Math.log(Math.abs(x)));
}
odd = function (x)
{
if (x/Math.floor(x/2)==2) return 2;
return 1;
}
t = getTimer();
trace(xPow(16,11)+" "+(getTimer()-t));