コード1 / 期待通り

"use strict";
var obj = new Promise(function (resolve, reject) {
  reject('テスト')
})
obj.catch(function (e) {
})
console.log(obj);

Promise {[[PromiseStatus]]: "rejected", [[PromiseValue]]: "テスト"}


コード2 / 期待通りではない

"use strict";
var obj = new Promise(function (resolve, reject) {
  reject('テスト')
}).catch(function (e) {
})
console.log(obj);

Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}


コード3 / 期待通りではない
・コード2がうまくいかなかったのは実行順番に問題があると思い、全体を()で囲った内容を変数へ格納するよう変更

"use strict";
var obj = (
  new Promise(function (resolve, reject) {
    reject('テスト')
  }).catch(function (e) {
  })
)
console.log(obj);

Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}


質問
・コード3 が コード1 と同じ結果にならないのは何故でしょうか?