Performs a lot of dynamic lookups on the Boolean.prototype, as the ToBoolean operation let’s true pass for obj (which might itself be concerning that this can be a boolean). Instead of the coercion, the code should properly check for valid objects via typeof and strict equality with null comparison.

Example:

Use below

if (typeof obj === "object" && obj !== null) {
    return obj[key] || 0
}

return 0

Instead of

return (obj && obj[key]) || 0