From df3f232448852b58fb8e4793cf5e8eaa64d5f78e Mon Sep 17 00:00:00 2001 From: Hunter Wilhelm <71348224+hunterwilhelm@users.noreply.github.com> Date: Fri, 19 Dec 2025 09:28:27 -0700 Subject: [PATCH] Fixes FIX-207: enables Decimal.sum(...[]) to return 0 instead throwing an error --- decimal.js | 3 ++- decimal.mjs | 3 ++- test/modules/sum.js | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/decimal.js b/decimal.js index f7ecafb..eaee534 100644 --- a/decimal.js +++ b/decimal.js @@ -4861,7 +4861,8 @@ function sum() { var i = 0, args = arguments, - x = new this(args[i]); + firstArg = args[i], + x = new this(firstArg === undefined ? 0 : firstArg); external = false; for (; x.s && ++i < args.length;) x = x.plus(args[i]); diff --git a/decimal.mjs b/decimal.mjs index 18dc640..dd1cb76 100644 --- a/decimal.mjs +++ b/decimal.mjs @@ -4856,7 +4856,8 @@ function sub(x, y) { function sum() { var i = 0, args = arguments, - x = new this(args[i]); + firstArg = args[i], + x = new this(firstArg === undefined ? 0 : firstArg); external = false; for (; x.s && ++i < args.length;) x = x.plus(args[i]); diff --git a/test/modules/sum.js b/test/modules/sum.js index 6dda6f0..e14c0ff 100644 --- a/test/modules/sum.js +++ b/test/modules/sum.js @@ -16,7 +16,8 @@ T('sum', function () { t(11, -11); t(1, '2', new Decimal(3), new Decimal('4'), -10); t(new Decimal(-10), '9', new Decimal(0.01), 0.99); - + t(); + expected = new Decimal(10); t('10');