14:32
<jmdyck>
Bakkot: In https://github.com/tc39/ecma262/pull/2013, the Travis build is failing because ecmarkup is complaining about the lines
14:32
<jmdyck>
<pre><code class="javascript">constructor(...args) { super(...args); }</code></pre>
14:32
<jmdyck>
and
14:32
<jmdyck>
<pre><code class="javascript">constructor() {}</code></pre>
14:33
<jmdyck>
But those lines exist in current master. (I've just changed lines around them.)
14:34
<jmdyck>
I've looked at the ecmarkup code, and I can't figure out why it complains for my PR but not for master.
14:35
<devsnek>
jmdyck: i like your proposal
14:35
<devsnek>
pr
14:35
<jmdyck>
tx
14:36
<devsnek>
ok real question time, should we use AggregateError for handling the array of errors from parsing :P
14:38
<jmdyck>
from the Promise.any proposal
14:47
<devsnek>
sort of joking, but it might encourage implementations to actually support reporting multiple early errors
17:42
<alystair>
why aren't 'true' and 'false' strings truthy/falsy?
17:44
<bradleymeck>
alystair: history, can't change now
17:45
<jackworks>
That's a super footgun
17:50
<ljharb>
it'd be super weird that `str + 'e'` might suddenly make it falsy
17:50
<ljharb>
i don't think it's a footgun in the language; i think it's perhaps one in HTML, and server frameworks like express, and CLI arg parsers
18:11
<TabAtkins>
I suspect jackworks is saying that "false" being falsey would be a footgun, not the *lack* of said feature. ^_^
18:11
<TabAtkins>
And yeah, YAML shows pretty clearly the problem with implicitly mixing the string value space with other types
18:17
<ljharb>
ohhh right, in that case sorry jackworks, i agree :-)
18:26
<devsnek>
booleans should have been symbols. in this essay I will anger everyone for no reason
19:40
<alystair>
hehe
19:40
<alystair>
thanks all
21:15
<TabAtkins>
`Symbol.t` and `Symbol.nil`, ship it
21:35
<Sirisian|Work>
littledan, In the operator overloading spec why is there a RightOperatorDefinitions? I haven't thought too hard about this, but JS has no binary operators in the form "a operator b" that can't be written a.operator(b) right?
21:35
<littledan>
sorry, I don't understand the question
21:35
<littledan>
the idea is that you could overload stuff like number * vector, if you define a vector class
21:35
<littledan>
(which is one of the motivating examples in the post)
21:36
<littledan>
can you just use methods instead? sure, if you don't care about that particular ergonomics thing
21:36
<Sirisian|Work>
Wouldn't Number have an operator set and then just have the Vector operator in it's LeftOperatorDefinitions?
21:48
<Sirisian|Work>
Just so I understand things. Every class type (and Number, BigInt, etc) would have an Operator Set with a unique OperatorCounter identifier. So if you define N classes (counting Number, BigInt, etc) in theory you'd have a NxN matrix. (Probably stored in a different data structure in practice). What I'm wondering is based on JS's current types couldn't this just store the lower or upper triangle of the matrix and thus just
21:48
<Sirisian|Work>
LeftOperatorDefinitions.
21:48
<Sirisian|Work>
er JS's current operators*
22:11
<TabAtkins>
Sirisian|Work: An important bit is that the set of operations is not meant to be adjustable after-the-fact, I think. So the Vector author can't modify Number's overrides.
22:41
<Sirisian|Work>
That makes sense if it's to control the not editing aspect. I'll read the spec closer.