When a parameter of a function involves an arbitrary expression, it gets is own scope. We were properly observing that when the expression was a default value for a binding, but you can have an expression even without defaults:
function f({ [a]: b }) {}
This PR marks computed properties in object bindings as being expressions.
When a parameter of a function involves an arbitrary expression, it gets is own scope. We were properly observing that when the expression was a default value for a binding, but you can have an expression even without defaults:
This PR marks computed properties in object bindings as being expressions.