What about allowing any expression then? x || 4 x/4 x + 4 x + w //maybe allow only "previous" parameter values as scope x + a //SyntaxError: 'a' undefined in parameters scope
On Tue, 13 Oct 2020 at 14:39, Michael Luder-Rosefield < rosyatran...@gmail.com> wrote: > I know I am not the only one who has had several perfectly good use-cases > for default values disallowed, because the value coming in was `null`, not > `undefined`. > > I cannot be the only one who has let bugs slip in because of failing to > consider this case. > > So, if we can find a non-confusing and simple way to alter the spec to > allow for handling this, I imagine it would be considered useful and wanted. > > The obvious candidate is the nullish coalescing operator, which is already > part of the spec. Unfortunately, it is currently invalid to indicate > default values with it. I can't see any reason against changing this. > > ``` > function foo1 (x = 4) { > console.log(x); > } > > // currently causes SyntaxError > function foo2 (x ?? 4) { > console.log(x); > } > > foo1(null); // null > foo1(undefined) // 4 > > foo2(null); // 4 > foo2(undefined) // 4 > > // currently causes SyntaxError > // should give x === null, y === 4 > const { x = 2, y ?? 4 } = { x: null, y: null }; > ``` > -------------------------- > Dammit babies, you've got to be kind. > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss