Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36
Chrome 136
Mac OS X 10.15.7
Desktop
one year ago
Test name Executions per second
instanceof Promise (promise) 274353824.0 Ops/sec
instanceof Promise (empty object) 241844304.0 Ops/sec
instanceof Promise (null) 261321632.0 Ops/sec
then check (promise) 272032704.0 Ops/sec
then check (empty object) 248983088.0 Ops/sec
then check (null) 257841136.0 Ops/sec
constructor comparison (promise) 274690304.0 Ops/sec
constructor comparison (empty object) 268097376.0 Ops/sec
constructor comparison (null) 290545728.0 Ops/sec
type obj?.then === function (promise) 264084512.0 Ops/sec
type obj?.then === function (empty object) 251857760.0 Ops/sec
type obj?.then === function (null) 264524080.0 Ops/sec
then in (promise) 277024768.0 Ops/sec
then in (empty object) 231402128.0 Ops/sec
then in (null) 269355904.0 Ops/sec
Script Preparation code:
Tests:
  • instanceof Promise (promise)

  • instanceof Promise (empty object)

  • instanceof Promise (null)

  • then check (promise)

  • then check (empty object)

  • then check (null)

  • constructor comparison (promise)

  • constructor comparison (empty object)

  • constructor comparison (null)

  • type obj?.then === function (promise)

  • type obj?.then === function (empty object)

  • type obj?.then === function (null)

  • then in (promise)

  • then in (empty object)

  • then in (null)

  • instanceof Promise (undefined)

  • then check (undefined)

  • constructor comparison (undefined)

  • type obj?.then === function (undefined)

  • then in (undefined)