From 8bb88fb65b6a1e43aa75862b662362fce9d5eeea Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Wed, 19 Feb 2020 17:21:32 +0300 Subject: [PATCH] Fixed Number.prototype.toPrecision(). This closes #290 issue on Github. --- src/njs_dtoa.c | 2 +- src/test/njs_unit_test.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/njs_dtoa.c b/src/njs_dtoa.c index 4c001eb2..7d8e9e44 100644 --- a/src/njs_dtoa.c +++ b/src/njs_dtoa.c @@ -532,7 +532,7 @@ njs_dtoa_prec_format(char *start, size_t prec, size_t len, int point) if (point < (int) prec) { start[point] = '.'; - njs_memset(&start[point + 1], '0', prec - len); + njs_memset(&start[point + 1], '0', prec - point); } } else if (point < (int) prec) { diff --git a/src/test/njs_unit_test.c b/src/test/njs_unit_test.c index d278fae0..c8f65abe 100644 --- a/src/test/njs_unit_test.c +++ b/src/test/njs_unit_test.c @@ -609,6 +609,10 @@ static njs_unit_test_t njs_test[] = { njs_str("(-(2**10000)).toPrecision()"), njs_str("-Infinity") }, + { njs_str("var v = parseFloat('9'.repeat(98));" + "[98,100].map(p=>v.toPrecision(p).length)"), + njs_str("98,101") }, + { njs_str("(-0).toPrecision(2)"), njs_str("0.0") }, -- 2.47.3