66 (await this.nosql.get('stats:bad_nonce')) || '0', //bad_nonce
67 (await this.nosql.get('stats:ttl_waf')) || '0', //ttl_waf
68 (await this.nosql.get('stats:ttl_solve_time')) || '0', //ttl_solve_time
69 (await this.nosql.get('stats:prob_solved')) || '0', //prob_solved 70 ],
71 })
72 )
65 (await this.nosql.get('stats:ttl_req')) || '0', //ttl_req
66 (await this.nosql.get('stats:bad_nonce')) || '0', //bad_nonce
67 (await this.nosql.get('stats:ttl_waf')) || '0', //ttl_waf
68 (await this.nosql.get('stats:ttl_solve_time')) || '0', //ttl_solve_time 69 (await this.nosql.get('stats:prob_solved')) || '0', //prob_solved
70 ],
71 })
64 (await this.nosql.get('stats:legit_req')) || '0', //legit_req
65 (await this.nosql.get('stats:ttl_req')) || '0', //ttl_req
66 (await this.nosql.get('stats:bad_nonce')) || '0', //bad_nonce
67 (await this.nosql.get('stats:ttl_waf')) || '0', //ttl_waf 68 (await this.nosql.get('stats:ttl_solve_time')) || '0', //ttl_solve_time
69 (await this.nosql.get('stats:prob_solved')) || '0', //prob_solved
70 ],
63 arguments: [
64 (await this.nosql.get('stats:legit_req')) || '0', //legit_req
65 (await this.nosql.get('stats:ttl_req')) || '0', //ttl_req
66 (await this.nosql.get('stats:bad_nonce')) || '0', //bad_nonce 67 (await this.nosql.get('stats:ttl_waf')) || '0', //ttl_waf
68 (await this.nosql.get('stats:ttl_solve_time')) || '0', //ttl_solve_time
69 (await this.nosql.get('stats:prob_solved')) || '0', //prob_solved
62 method: 'phlx_update_stats',
63 arguments: [
64 (await this.nosql.get('stats:legit_req')) || '0', //legit_req
65 (await this.nosql.get('stats:ttl_req')) || '0', //ttl_req 66 (await this.nosql.get('stats:bad_nonce')) || '0', //bad_nonce
67 (await this.nosql.get('stats:ttl_waf')) || '0', //ttl_waf
68 (await this.nosql.get('stats:ttl_solve_time')) || '0', //ttl_solve_time
Expressions that consistently result in either true or false when comparing values, and logical operations like ||, &&, and ?? that consistently either skip or fully evaluate their operands, often indicate mistakes. Logical operations that always yield the same result could lead to unexpected behavior or bugs in the program.
const arrIsEmpty = someArr === [] // Will always evaluate to false
const arrIsEmpty = someArr.length === 0