javascript-interview-series JS Polyfill Filter Map forEach reduce promise.all promise.any promise.race deep clone