diff --git a/generators/javascript/math.ts b/generators/javascript/math.ts index e8ab2852f..172d81ff2 100644 --- a/generators/javascript/math.ts +++ b/generators/javascript/math.ts @@ -414,12 +414,20 @@ export function math_random_int( 'mathRandomInt', ` function ${generator.FUNCTION_NAME_PLACEHOLDER_}(a, b) { + a = Number(a); + b = Number(b); if (a > b) { // Swap a and b to ensure a is smaller. var c = a; a = b; b = c; } + a = Math.ceil(a); + b = Math.floor(b); + if (a > b) { + // No integers between the inputs (e.g. 2.4 & 2.6). + return NaN; + } return Math.floor(Math.random() * (b - a + 1) + a); } `, diff --git a/tests/generators/golden/generated.js b/tests/generators/golden/generated.js index f8ac5651a..85c46ef50 100644 --- a/tests/generators/golden/generated.js +++ b/tests/generators/golden/generated.js @@ -560,12 +560,20 @@ function test_constraint() { } function mathRandomInt(a, b) { + a = Number(a); + b = Number(b); if (a > b) { // Swap a and b to ensure a is smaller. var c = a; a = b; b = c; } + a = Math.ceil(a); + b = Math.floor(b); + if (a > b) { + // No integers between the inputs (e.g. 2.4 & 2.6). + return NaN; + } return Math.floor(Math.random() * (b - a + 1) + a); } diff --git a/tests/generators/index.html b/tests/generators/index.html index cb30c0966..c1a73a8ba 100644 --- a/tests/generators/index.html +++ b/tests/generators/index.html @@ -403,7 +403,7 @@ h1 {