diff --git a/src/vm/wren_core.c b/src/vm/wren_core.c index 5f1a2007..0d195567 100644 --- a/src/vm/wren_core.c +++ b/src/vm/wren_core.c @@ -644,6 +644,11 @@ DEF_PRIMITIVE(num_atan2) RETURN_NUM(atan2(AS_NUM(args[0]), AS_NUM(args[1]))); } +DEF_PRIMITIVE(num_pow) +{ + RETURN_NUM(pow(AS_NUM(args[0]), AS_NUM(args[1]))); +} + DEF_PRIMITIVE(num_fraction) { double dummy; @@ -1272,6 +1277,7 @@ void wrenInitializeCore(WrenVM* vm) PRIMITIVE(vm->numClass, "..(_)", num_dotDot); PRIMITIVE(vm->numClass, "...(_)", num_dotDotDot); PRIMITIVE(vm->numClass, "atan(_)", num_atan2); + PRIMITIVE(vm->numClass, "pow(_)", num_pow); PRIMITIVE(vm->numClass, "fraction", num_fraction); PRIMITIVE(vm->numClass, "isInfinity", num_isInfinity); PRIMITIVE(vm->numClass, "isInteger", num_isInteger); diff --git a/test/core/number/pow.wren b/test/core/number/pow.wren new file mode 100644 index 00000000..f9d3c269 --- /dev/null +++ b/test/core/number/pow.wren @@ -0,0 +1,4 @@ +System.print(2.pow(4)) // expect: 16 +System.print(2.pow(10)) // expect: 1024 + +System.print(1.pow(0)) // expect: 1