var pow = (...numbers) => {
var bigints = numbers.slice(1).map(math.to_bigint);
var x = bigints[bigints.length - 1];
var p;
for (var i = bigints.length - 2; i >= 0; i--) {
if (bigints[i] == 0n && bigints[1] < 0n) {
x = 0n;
continue;
}
p = (math.positive(bigints[i]) ** math.positive(x)) * (math.sign(bigints[i]) ** math.positive(x));
x = x < 0n ? 1n / p : p;
}
if (math.is_bigint(numbers[0]) && numbers[0] == 0n && x < 0n)