does javascript support optional chaining