Exponenciação JavaScript decisão de design do operador unário

Então, eu estava brincando com o novo operador de exponenciação e descobri que você não pode colocar um operador unário imediatamente antes do número base.

let result = -2 ** 2; // syntax error
let result = -(2 ** 2); // -4
let x = 3;
let result = --x ** 2; // 4

Dedocumentação em MDN:

Em JavaScript, é impossível escrever uma expressão de exponenciação ambígua, ou seja, você não pode colocar um operador unário (+/-/~/!/delete/void/typeof) imediatamente antes do número base.

Na maioria das linguagens como PHP e Python e outras que possuem um operador de exponenciação (normalmente^ ou**), o operador de exponenciação é definido como tendo uma precedência mais alta do que os operadores unários, como os unários+ e unário-, mas existem algumas exceções. Por exemplo, no Bash, o** operador é definido para ter uma precedência mais baixa que os operadores unários.

Entendo que isso foi cometido um erro de design. Eu não entendo essa decisão de design. Quem realmente ficará surpreso que-x ** 2 é negativo? Isso segue não apenas outras linguagens de programação convencionais, mas uma notação matemática usada há centenas de anos e ensinada a todos os estudantes de álgebra do ensino médio.

Em Javascript'1'+ 2 é'12' e'1'-2 é-1 mas-1**2 gera um erro porque poderia ser ambíguo? Ajude-me a entender essa decisão de design.

questionAnswers(1)

yourAnswerToTheQuestion