06:38
<sirisian>
I know this is a very very old topic. Whatever happened to const parameters? function f(const a){}. I might need that as an assumption to one of my ideas, but was it not possible? It seems straightforward, but I feel like I'm missing some technical issue perhaps that stopped it from being put in when const was.
06:39
<Jack Works>
I sometimes like it, but it really isn't easy to encourage people to use it.
15:46
<jmdyck>
It's been 2 weeks since the TC39 meeting, time for Notes to be published?
18:49
<nicolo-ribaudo>

Question about Annex B.3.4 (https://tc39.es/ecma262/#sec-variablestatements-in-catch-blocks):

Why does the text before the note only modify var, while the text after the note also modifies function?

19:15
<littledan>
sorry can you use a content warning for such questions?
19:16
<nicolo-ribaudo>
I was seriously considering doing it 😬
19:19
<shu>
i don't understand the question
19:23
<shu>
oh i think maybe i understand the question
19:24
<nicolo-ribaudo>
Is that section only changing the semantics for function declarations in eval, or also outside of eval?
19:26
<shu>
i think in practice it's for both
19:26
<shu>
wouldn't function declarations outside of direct evals already be covered by LexicallyDeclaredNames?
19:27
<shu>
but function declarations inside direct evals need special handling because top-level function declarations in direct evals only introduce var bindings in the outside scope in B.3.2 semantics anyway... or something like that?
19:30
<nicolo-ribaudo>
Oh because 11.b of functions in eval ("If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for body, then") never produces an early error, so it's different from non-eval functions...
19:30
<nicolo-ribaudo>
Thank you!
19:32
<bakkot>
the fact that b.3.2 (formerly b.3.3) semantics are specified with "as if" has caused no end of pain
19:32
<shu>
i still have a big bone to pick with specifying any semantics as counterfactuals
19:32
<shu>
terribly confusing
19:32
<bakkot>
in both chrome and FF (but not JSC) try {} catch (e) { function e(){} } is in fact an error
19:32
<bakkot>
and I am genuinely unclear on whether that's correct per spec
19:33
<shu>
i think the spirit of it is correct
19:33
<shu>
anyways i hope for safari to 1) grow its market share a lot and 2) never implement annex B FiB semantics correctly
19:34
<shu>
in a few years we rip it out
19:34
<bakkot>
I guess it's correct because of the "also occurs in the LexicallyDeclaredNames of Block." rule actually, yeah
19:34
<bakkot>
it's an error not because of the synthetic b.3.2 var binding but because of the normal lexically scoped binding
19:34
<shu>
yes
19:35
<shu>
we should ask if ESMeta folks model the Annex B counterfactuals
19:35
<shu>
first, develop a possible-worlds interpretation of the universe according to ecma262
19:37
<bakkot>
if anyone who has not yet burned out their entire brain thinking about this stuff would like to do so, https://github.com/tc39/ecma262/issues/2019 and https://github.com/tc39/ecma262/issues/913 are still open I think
19:39
<shu>
i recommend that if you are not already an annex B FiB abyss gazer, please do not start
19:39
<shu>
go play video games or anything really
19:39
<nicolo-ribaudo>
Go play outside
20:50
<jmdyck>
shu: ISTR that esmeta ignores Annex B. (Can't find an explicit statement to that effect though.)