16:03 | <shu> | ljharb: incubator call? |
16:05 | <ljharb> | I’ll be a few late, but I’m coming |
16:25 | <ljharb> | jschoi: "demethodize" is pretty gross imo, ftr :-p |
17:01 | <shu> | it sounds like a surgical procedure |
19:51 | <ljharb> | so, we have x?.(y) , where it doesn't call x unless x is non-nullish; is there no simple way to do x(y) when y is non-nullish? (obv i can do y == null ? y : x(y) but that means i have to repeat the y expression more than once, or store it in a var) |
20:01 | <Ashley Claymore> | sounds like you want optional pipeline 😉 |
20:02 | <Ashley Claymore> | y ?> x(<sigil>) |
20:02 | <bakkot> | optional pipeline :( |
20:02 | <bakkot> | we could just have do-notation, like a real language |
20:03 | <Ashley Claymore> | 🔥 |
20:04 | <shu> | real languages are statement based, only acceptable expressions are immediates and registers and addresses |
20:04 | <shu> | and immediates can't be too big |
20:04 | <shu> | and it'll be an awkward number of bits, like 21 |
20:06 | <Ashley Claymore> | all logic is ternary. true/false/unknown |
20:11 | <jschoi> | sounds like you want optional pipeline 😉 |
20:12 | <bakkot> | nullish is the only reasonable choice for optional pipes |
20:12 | <bakkot> | also I don't want optional pipes |
20:12 | <bakkot> | but it's the only reasonable choice if we have to have them |
20:22 | <jschoi> | all logic is ternary. true/false/unknown Also, we both have null and undefined. We can go further. https://www.computer.org/csdl/proceedings-article/glsv/1991/00143992/12OmNzzxusf Quaternary logic. We have the technology. Do we have the courage? [joke] |
20:30 | <bakkot> | we have gone further |
20:31 | <bakkot> | we have an infinite number of document.all s available to us |
20:31 | <bakkot> | for as many non-null/undef nullish values as you want |
20:46 | <TabAtkins> | There’s going to be a bikeshed around whether to use falsey or nullish for optional pipes. 🤔 |
21:59 | <jschoi> | Yeah, I had thought there would be some disagreement on this, but it looks like everyone (including me) agrees with nullishness. |
22:46 | <TabAtkins> | I don't think it's particularly that everyone agrees on nullishness (tho maybe people do), it's just that it's extremely clear that all the things doing optionality with the same syntax pattern need to act the same. |
23:39 | <Michael Ficarra> | we have an infinite number of document.all , hosts can put [[IsHTMLDDA]] on any objects they choose |
23:40 | <shu> | owo |
23:41 | <bakkot> | "can", but "should" not |
23:41 | <bakkot> | "implementations should not create any with the exception of document.all" |
23:42 | <bakkot> | should've said "must" |
23:42 | <ljharb> | still could |
23:43 | <Michael Ficarra> | ^ |
23:43 | <bakkot> | with consensus, which, I definitely do not care enough about this to spend committee time on it |
23:43 | <Michael Ficarra> | also, now I've noticed that there's an issue with B.3.6.3 https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-typeof |
23:44 | <bakkot> | what's the issue? |
23:44 | <Michael Ficarra> | the left column of that table should separate all language values unambiguously |
23:45 | <Michael Ficarra> | an object with [[IsHTMLDDA]] will always fall into two rows |
23:45 | <Michael Ficarra> | either it has [[Call]] or it doesn't |
23:48 | <Michael Ficarra> | we should just have it insert a step into 13.5.3.1 instead of a row into the table |
23:53 | <Michael Ficarra> | https://github.com/tc39/ecma262/issues/2685 |