if (y < 0) { if (x == 1) { return iNew.Integer(1); } else if (x == -1) { y = -y; } else { return iNew.Integer(0); } }
vValue Power(vDescriptor v) {    long x = this.value;    long y = ((vInteger)v).value;    if (x == 0 && y <= 0) {	iRuntime.error(204);    }    long p = 1L;    for (long i = 0; i < y; i++) {	p *= x;		//#%#%# totally ignoring overflow.    }    return iNew.Integer(p);} 