Оператор группировки не уничтожает ссылки на свойства, которые провоцируют вызов метода .
Это явно указано в spec :
ПРИМЕЧАНИЕ. Этот алгоритм не применяет GetValue к результату оценки
blockquote>Expression
. Основной мотивацией для этого является то, что операторы, такие какdelete
иtypeof
, могут быть применены к заключенным в скобки выражениям.В ваших строках 4 и 5 это не скобка, а операторы (
?:
и||
), которые де-ссылаются на свойство и дают «несвязанную» функцию.