feat: add Number.toFixed

This commit is contained in:
TopchetoEU 2024-04-03 15:09:01 +03:00
parent a8775d212f
commit 71b40240c0
Signed by: topchetoeu
GPG Key ID: 6531B8583E5F6ED4

View File

@ -1,5 +1,7 @@
package me.topchetoeu.jscript.lib; package me.topchetoeu.jscript.lib;
import java.text.NumberFormat;
import me.topchetoeu.jscript.runtime.values.ObjectValue; import me.topchetoeu.jscript.runtime.values.ObjectValue;
import me.topchetoeu.jscript.runtime.values.Values; import me.topchetoeu.jscript.runtime.values.Values;
import me.topchetoeu.jscript.utils.interop.Arguments; import me.topchetoeu.jscript.utils.interop.Arguments;
@ -85,6 +87,14 @@ public class NumberLib {
@Expose public static String __toString(Arguments args) { @Expose public static String __toString(Arguments args) {
return Values.toString(args.ctx, args.self); return Values.toString(args.ctx, args.self);
} }
@Expose public static String __toFixed(Arguments args) {
var digits = args.getInt(0, 0);
var nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(digits);
return nf.format(args.getDouble(-1));
}
@Expose public static double __valueOf(Arguments args) { @Expose public static double __valueOf(Arguments args) {
if (Values.isWrapper(args.self, NumberLib.class)) return Values.wrapper(args.self, NumberLib.class).value; if (Values.isWrapper(args.self, NumberLib.class)) return Values.wrapper(args.self, NumberLib.class).value;
else return Values.toNumber(args.ctx, args.self); else return Values.toNumber(args.ctx, args.self);