-
Notifications
You must be signed in to change notification settings - Fork 221
List of JavaScript Kata to Update
arguments.callee
should not be used even if it succeeds (which happens in user solution), because it doesn't work in strict mode and the test fixture runs in strict mode.
arguments.callee.caller
can be replaced by using named functions f
and then access f.caller
. Getters cannot have a function name, so Object.defineProperty
should be used instead. Note that the use of Function.caller
is still extremely discouraged since it is deprecated, and it doesn't work in strict mode either.
Native BigInt
s are available in Node 10.x. JS versions of all BigInt katas (arithmetic operations to numbers represented as strings) should be removed once Node 8.x is deprecated in the future.
Though they should've been removed already anyway since bignumber.js
is installed in the environment, which means require
would have to be disabled. Which does nothing anyway because people can just copy the entire minified source code from the bignumber.js
repo into their solution, and things go out of hand very quickly with this.
Let's start by deprecating Node 6.x.
The following kata does not have 8.x/10.x supported. Some of these can be retired if it's not possible (or not worth the effort) to fix.
-
Algebraic Data TypesShould be retired because Church numbers have already been done too many times. Moreover, the restrictions in the kata (no use of arithmetic operators) isn't working. -
Anakin's Colorful Protocol Droids
- Relies on specific version of Babel that no longer exists
- Preloaded defines
Droid
constructor function, solution defines its methods
-
Fast Stats on an ArrayShould be retired because it is made obsolete by ES6's addition ofProxy
-
Green Glass Roof- Puzzles #6
SyntaxError: Unexpected token (
-
Helper Functions and Recursion - Factorials, Permutations and CombinationsShould be retired because it's a duplicate of 3 existing katas (this, this and this), and the recursion check can never be realized in JS -
Implement Debounce
- Overrides
require
- Overrides
-
Shorten Me: Array Declaration I (Console)Should be retired because the requirement itself is coupled to the specific Node version (it's the property key list of Node 6.x'sconsole
implementation), there is no point maintaining compatibility for this kata -
Token passing - Hack this code #2Should be retired because it does not conform to beta kata standard: the task is unspecified, with kata author insisting that, paraphrased, "it is the puzzle of the kata". -
Type Aware - Advanced Test Fixture #1Should be retired because the test suite is reinventing the testing framework in an extremely hacky, fragile and hostile way.