Previously random_int(2.4, 2.6) would return 2. This is wrong. NaN is better; it's the same as random_int("hello", []).
Python, Lua, PHP all have their own native functions for random int, so we just use their native behaviours. Dart is another matter (separate PR).
I think making this block more accurate is worth the code given that a LOT of kids use "random integer" for stuff.
Also re-flow the Math test blocks, they were overlapping.
And the Dart interpreter link has changed URLs.
* Reduce usage of obsolete .keyCode property.
* Rename private properties/methods which violate eslint rules.
* Use arrays of bound events rather than individual properties.
* Improve typing info.
* Also fix O(n^2) recursive performance issue in theme's getComponentStyle function.
* And replace String(...) with '${...}' (smaller, faster).
* .toString() is considered harmful.
* Fix dart text generator logic
* Fix Javascript text generator logic.
* Fix Lua text generator logic
* Fix php text generator logic
* Fix python text generator logic
* Fix error in substring logic
* Fix unit test block generators
* Update from ORDER_COMMA to ORDER_NONE
* Update golden files
Number() is a bit less forgiving than parseFloat() and is more likely to generate NaN rather than some random number. An audit of each case shows nowhere that parseFloat()’s features are needed.