From 706c2bfd41088fdca783f2fc1f152453f91fc784 Mon Sep 17 00:00:00 2001 From: gregdyke Date: Tue, 31 May 2022 17:22:34 +0100 Subject: [PATCH] fix: provide initial values to reduce functions in generated js (#6178) --- generators/javascript/math.js | 4 ++-- tests/generators/golden/generated.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/generators/javascript/math.js b/generators/javascript/math.js index 0e90615e5..39d768843 100644 --- a/generators/javascript/math.js +++ b/generators/javascript/math.js @@ -222,7 +222,7 @@ JavaScript['math_on_list'] = function(block) { case 'SUM': list = JavaScript.valueToCode(block, 'LIST', JavaScript.ORDER_MEMBER) || '[]'; - code = list + '.reduce(function(x, y) {return x + y;})'; + code = list + '.reduce(function(x, y) {return x + y;}, 0)'; break; case 'MIN': list = JavaScript.valueToCode(block, 'LIST', @@ -238,7 +238,7 @@ JavaScript['math_on_list'] = function(block) { // mathMean([null,null,1,3]) === 2.0. const functionName = JavaScript.provideFunction_('mathMean', ` function ${JavaScript.FUNCTION_NAME_PLACEHOLDER_}(myList) { - return myList.reduce(function(x, y) {return x + y;}) / myList.length; + return myList.reduce(function(x, y) {return x + y;}, 0) / myList.length; } `); list = JavaScript.valueToCode(block, 'LIST', diff --git a/tests/generators/golden/generated.js b/tests/generators/golden/generated.js index 48a4e20ac..2778376c2 100644 --- a/tests/generators/golden/generated.js +++ b/tests/generators/golden/generated.js @@ -476,7 +476,7 @@ function test_change() { } function mathMean(myList) { - return myList.reduce(function(x, y) {return x + y;}) / myList.length; + return myList.reduce(function(x, y) {return x + y;}, 0) / myList.length; } function mathMedian(myList) { @@ -538,7 +538,7 @@ function mathRandomList(list) { // Tests the "list operation" blocks. function test_operations_on_list() { - assertEquals([3, 4, 5].reduce(function(x, y) {return x + y;}), 12, 'sum'); + assertEquals([3, 4, 5].reduce(function(x, y) {return x + y;}, 0), 12, 'sum'); assertEquals(Math.min.apply(null, [3, 4, 5]), 3, 'min'); assertEquals(Math.max.apply(null, [3, 4, 5]), 5, 'max'); assertEquals(mathMean([3, 4, 5]), 4, 'average');