Что означают квадратные скобки вокруг имени свойства в литерале объекта?

Я писал в JS некоторое время и не использовал эту форму:

  dist: {
    files: {
      [bpr + 'lib/Monster.min.js']: ['<%= concat.dist.dest %>']
    }
  }
}

[]:[]

он работает, я просто не использовал его или не видел раньше.

Ответ 1

Совсем недавно с ES6. Они называются "именами вычисленных свойств"

Из MDN:

Начиная с ECMAScript 2015, синтаксис инициализатора объекта также поддерживает вычисленные имена свойств. Это позволяет вам выразить выражение в скобках [], который будет вычислен как имя свойства.