03:30
<ljharb>
rickbutton: is the records and Tuple monthly call still happening in 15.5 hours?
03:34
<devsnek>
rough if true
08:54
<robpalme>
can anyone contact Frank Tang - we want to see if Intl.Enum can be brought forwards to today
09:01
<wsdferdksl>
It's a good day when the notes document starts with "Yes, sir. Take it off."
09:01
<wsdferdksl>
(brought to you by autotranscribe)
09:04
<leobalter>
robpalme: the best person to contact Frank would be sffc, IMO
09:06
<michaelficarra>
typically, I would avoid normative changes with strictly editorial motivation, but I think this ends up with a nicer semantics
09:08
<michaelficarra>
oh I guess it was originally motivated by non-editorial reasons, which makes sense
09:09
<michaelficarra>
ystartsev: I also don't understand how iterator helpers are impacted
09:10
<ljharb>
littledan: it kind of sounds like your active mic is on your phone in your pocket
09:11
<ystartsev>
michaelficarra: the comment I got from the people involved was "this simplification looks good, we had to jump through similar hoops when implementing iterator helpers"
09:11
<littledan>
This is a very positive simplification
09:11
<littledan>
I want to note that we did discuss this path in the past
09:11
<littledan>
It created extra load for implentations and no one had a particular use for it
09:11
<ystartsev>
michaelficarra: i wasn't directly involve in the implementation but i can get further details
09:11
<littledan>
We decided to leave it in because engines thought it might be more intuitive for developers
09:12
<michaelficarra>
ystartsev: it's not a big deal, but I am curious
09:12
<littledan>
I don't think this is a very strong intuition though. I like the change.
09:22
<devsnek>
is this supposed to say who voted for what
09:22
<devsnek>
ystartsev: ^
09:22
<ystartsev>
devsnek: as in, the list of names?
09:22
<devsnek>
yea
09:22
<ystartsev>
yes, that was requested in the reflector
09:22
<devsnek>
cool
09:23
<ljharb>
is daniel R on irc?
09:23
<ystartsev>
this appears to be contentious though, it would be good to have a direct conversation about it. i have no strong opinion
09:23
<devsnek>
i don't mind that much either
09:23
<devsnek>
just surprised me
09:24
<ljharb>
i'd be interested to hear an argument for anonymity on a non-binding temperature check; i like the names being shown tho
09:24
<ystartsev>
the argument is that people may not feel safe voting as they really feel, due to social pressure and their name being present
09:25
<ystartsev>
"voting" used here in a loose sense, "expressing their emotions through hieroglyphs"
09:25
<ljharb>
ah
09:25
<haxjs>
Again, I strongly feel we should roll back the stage ,because the plan of early stage said that if there is web comp issue, it will be withdrawn.
09:27
<akirose>
ljharb: he says "idk how to use IRC"
09:29
<ljharb>
akirose: happy to walk him through it during our local tuesday if he's interested :-p
09:31
<michaelficarra>
haxjs: I agree, that's a fair point
09:32
<ljharb>
why is it important that that was the original plan, if it's not the plan now?
09:32
<ljharb>
haxjs: do you mean you think this isn't useful at all if it can't help ObservableArray compat?
09:32
<haxjs>
if we don't rollback the stage, it means the communtiy do not have the chance to invole about the name or other things.
09:33
<ljharb>
what other things?
09:33
<ystartsev>
damn, that would have been such an improvement
09:33
<haxjs>
for example, new syntax or new method.
09:34
<ljharb>
shu: isn't "indifferent" the same as "abstain"?
09:34
<haxjs>
I feel new syntax could be a better choice in current situation.
09:34
<ljharb>
haxjs: as shu already commented, new syntax for this isn't something a number of us feel are warranted
09:34
<ystartsev>
haxjs: the benefit here would have been the unification of the html datastructures
09:34
<michaelficarra>
ljharb: lack of support is similar to opposition in this committee
09:34
<ystartsev>
its a huge pain point for devs
09:34
<ljharb>
michaelficarra: fair enough
09:35
<devsnek>
itemAt makes me wince
09:35
<ystartsev>
adding new syntax to html won't help, because historical code still exists
09:35
<ystartsev>
so it doesn't achieve the goal of unification
09:35
<ystartsev>
real shame
09:35
<haxjs>
if we want to solve dev pain point, pls roll back the stage so devs can say their ideas.
09:36
<ystartsev>
haxjs: the outcome here is that this specific goal is impossible
09:36
<ystartsev>
we can certainly roll back the stage, but its irrelevant with regards to unification
09:37
<haxjs>
We at least should give a chance that community could revisit the proposal in current situation. Becuase normally naming issue is solved in stage 2 not stage 3.
09:37
<ystartsev>
haxjs: sure, but that is a different topic
09:38
<haxjs>
What's different? Are we discussing naming issue now?
09:38
<ystartsev>
no...
09:44
<ljharb>
ystartsev: not sure if you already got the feature req but it'd be really cool if presenters could self-request a temp check and provide a question, so that chairs both can "approve" it, and then also the question is displayed near the emojis
09:44
<ystartsev>
ljharb: ill add it -- looks like we need labels for temp checks and multiple temp checks
09:44
<ljharb>
+1
09:44
<leobalter>
I'm strongly positive about .at in Arrays and TypedArrays, but really indifferent about it in Strings
09:46
<michaelficarra>
we're running dangerously close to turning this temperature check into a voting system
09:46
<leobalter>
shu for the records, my indifference means I'm totally neutral about this feature in Strings
09:47
<devsnek>
+1 michaelficarra
09:48
<ljharb>
we should probably make heart and thumbs up be mutually exclusive, at least
09:49
<akirose>
idk i mean rn shu is soliciting how the room feels about a thing, not whether or not we are permitting forward momentum
09:49
<ystartsev>
my internet is bad
09:50
<akirose>
it's like exit polling, totally unproblematic
09:50
<akirose>
erm
09:50
<ryzokuken>
TC39 now has "no confidence" votes :D
09:51
<leobalter>
for the records: I'm opposed to explore syntax before the proposed built-in API for this feature
09:53
<littledan>
I explicitly endorse staying at Stage 3 with these changes we discussed
09:53
<ljharb>
+1
09:54
<michaelficarra>
was the syntax proposal actually serious?
09:54
<ljharb>
sounds like yes
09:54
<michaelficarra>
I am floored
09:55
<devsnek>
same
09:56
<littledan>
I am not really sure if this syntax suggestion is in good faith. It seems like solving for "what will block this proposal from affirming Stage 3" rather than a serious proposal.
09:57
<littledan>
it's clear, given everyone's comments, that it will not get consensus in committee
09:58
<littledan>
I feel like we're getting off-topic from the proposal topic and instead considering changing what Stage 3 means. I do not agree to this change.
10:01
<haxjs>
The situation is significantly changed and the break the original motivation and the requirements in stage 1. So I don't understand how the proposal have the quality of stage 3 should have.
10:02
<michaelficarra>
brad4d: please mute
10:02
<michaelficarra>
I think we could use an extra hand with the notes
10:03
<rricard>
sorry had to take a quick break
10:04
<ljharb>
haxjs: the motivation from the committee when it achieved stage 1 included its ergonomics/usefulness separate from ObservableArray: https://github.com/tc39/notes/blob/840c700dc7fa7b9f6d0a3c208bd66b333e304717/meetings/2020-06/june-4.md#item-for-stage-1
10:05
<ljharb>
haxjs: so despite the only motivation prior to being presented being ObservableArray compat, since stage 1 it's had more motivations than that
10:05
<haxjs>
What i mean is, if the motivation is only ergonomics, it's possible to not advance to stage 1 in that time, or may have other solution in stage 2.
10:06
<littledan>
I don't really understand the motivation for the `debugger.` proposal. It feels like overkill.
10:06
<haxjs>
ljharb: this is why i think it should be at least rollback to stage 2.
10:07
<ljharb>
haxjs: i'm not sure i'd ever put ergonomics after "only"
10:07
<ljharb>
haxjs: what other solution tho? as has been discussed, syntax for this is a nonstarter for some on the committee
10:07
<ljharb>
haxjs: (at least until after a method exists)
10:09
<littledan>
in our process, we require consensus to change stages, not to maintain them
10:09
<haxjs>
I don't others, but if it did not have the benefit of unifying dom .item(), i will not agree it's worth to add new method for that. And yes, if there is a method ,then syntax may be not have enough benefit.
10:09
<haxjs>
littledan: this is the process issue we need to figure out
10:10
<ljharb>
haxjs: can you elaborate on why you don't think it's worth adding a new method without the unification goal?
10:10
<littledan>
haxjs: Sure, if you have a process change you want to propose, feel free to ask the committee for consensus. I'm describing how we work today.
10:11
<littledan>
+1 to Waldemar's comment about how it's good to specify intent
10:11
<haxjs>
littledan: sorry i can't because my english level can't discuss such complex thing.
10:13
<haxjs>
ljharb: just feel not worth enough. especially the possible syntax solution could have better ergonomics . So if the only motivation is ergonomics, we should first consider syntax solution.
10:14
<ljharb>
haxjs: why would you find syntax more ergonomic than a method? is that just in this case, or in general?
10:15
<haxjs>
in this case i think it's better because it match `a[idx]`, and the syntax could also apply to slice notation proposal.
10:16
<ljharb>
slice notation is viable because a slice method exists
10:17
<drousso_>
shu i had similar "concerns"/unease
10:18
<leobalter>
haxjs: I sympathize with the fact ESL makes it harder. The same happens to me. Although, it's hard for me to understand your objection about adding the method as not worth being added. When you say "just feel not worth enough" it seems to me also as not convincing to reject it, as the room is generally positive about the feature.
10:19
<leobalter>
haxjs: as ljharb has mentioned, the syntax version is a nonstarter. It is too much of a cost compared to a built in api
10:22
<haxjs>
syntax has the cost, but also have some benefit which method can't have:
10:22
<haxjs>
1. never have compatibility issue (we don't know whether `at` really web compatible)
10:22
<haxjs>
2. better ergonomic than method , especially in this case , it's not a "brand new syntax" but a new syntax which based on the well-known `a[idx]`
10:22
<haxjs>
3. apply to other proposals like slice notation
10:24
<ljharb>
it would only make sense on indexables tho, not on map/set/etc, so to me syntax is much worse ergonomics for this
10:24
<ljharb>
i'm also skeptical that any syntax solution would be helpful for slice notation
10:24
<michaelficarra>
Bakkot: for the notes, console. what?
10:24
<haxjs>
ljharb: `a[idx]` also not apply to map/set
10:24
<michaelficarra>
tab?
10:24
<Bakkot>
tap
10:24
<michaelficarra>
actually, just please edit the notes
10:24
<ljharb>
haxjs: right, that's normal object semantics. index `-1` isn't.
10:24
<littledan>
note, console is a standard! You can contribute to it! https://github.com/whatwg/console
10:24
<michaelficarra>
that section was hard to follow
10:24
<Bakkot>
console.tap = v => (console.log(v), v)
10:25
<ljharb>
haxjs: iow, "at" semantics are *not* the same at all as bracket semantics, it's a subset of them
10:25
<haxjs>
my proposed syntax like C# 8: `a[^1]` means `a[a.length - 1]`. And it also solve the slice notation issue, `a[0:^i]` means `a.slice(0, a.length - i)` , this solve the problem of `i` be `0`.
10:27
<ljharb>
ystartsev: you have background noise i think?
10:27
<ystartsev>
shoot
10:27
<ljharb>
hard to tell in teams tho, could have been someone else
10:28
<ystartsev>
i just looked and the noise levels look low
10:28
<littledan>
I generally share ystartsev and shu 's concerns
10:32
<devsnek>
its very hard to sell things that aren't revolutionary to the committee
10:32
<Bakkot>
when they're syntax, that's probably true, yeah
10:33
<Bakkot>
high bar for syntax
10:33
<devsnek>
high bar for new global
10:34
<Bakkot>
that too, yeah
10:40
<michaelficarra>
shu: please review your notes there
10:40
<shu>
am i the transcription loser
10:41
<Bakkot>
lotta transcription losers
10:41
<Bakkot>
wish this API worked just a little better...
10:41
<Bakkot>
I might ask next time if I can record the audio privately just so that I can fix up the notes
10:42
<Bakkot>
(also I've been doing the live note fixes up till now but I'm starting to fade, so I stepped back at the start of thiis presentation; sorry other note takers)
10:43
<rricard>
it's fne
10:45
<ystartsev>
do we have enough note takers?
10:45
<rricard>
i think so
10:51
<michaelficarra>
Bakkot: it's actually really good for some people
10:51
<ystartsev>
did the note taker die?
10:51
<michaelficarra>
ystartsev: yes
10:51
<Bakkot>
restarting
10:52
<rricard>
thanks
10:52
<Bakkot>
apologies, that was me breaking it rather than a bug
10:52
<rricard>
it held quite good until now so kudos
10:54
<Bakkot>
i should tweak it so it doesn't put up partial words, I think
10:54
<Bakkot>
might try to do that over lunchbreak
10:55
<rricard>
do you know if it could generate newlines for every voice change?
10:55
<rricard>
asking for a lot probably
10:56
<rricard>
if the api exposes any kind of indicator on that
11:00
<michaelficarra>
the auto transcription really doesn't like shu
11:00
<shu>
is it because i talk in halting bursts
11:01
<michaelficarra>
Bakkot: double words are better than missing words for editing IMO
11:01
<michaelficarra>
shu: I don't think so
11:01
<devsnek>
it knows you are from google and it is scared
11:01
<ljharb>
ummm super weird, google docs just suggested that i "assign" one of the comments in the notes to my brother-in-law
11:02
<devsnek>
clippy by any other name would be as useless
11:04
<Bakkot>
michaelficarra yeah, that's my thinking too
11:05
<michaelficarra>
Bakkot: please kill transcription
11:05
<Bakkot>
dne
11:05
<devsnek>
should someone be checking off items on the github agenda
11:06
<rbuckton>
I'm here, just wasn't looking at irc
11:06
<littledan>
I do want to note that we already have established consensus on the weaker invariant where the assertion is not part of the cache key
11:06
<devsnek>
i kind of want an early error for `import 'x'; import 'x' assert { y }`
11:06
<Bakkot>
ooof, really wish the realms proposal could be moved up 30 minutes; I want to go to that one but I would also love to go to bed half an hour earlier
11:07
<ljharb>
devsnek: `Promise.all([import('x'), import('x', { assert: 'y' })])` might work as a feature test :-p
11:08
<devsnek>
did you mean to ping mark
11:08
<haxjs>
import('x', {}) is syntax error?
11:09
<devsnek>
with the proposal it is not
11:09
<haxjs>
yeah, i mean if it's syntax error, it can't be used for feature test for old engines
11:09
<devsnek>
i think ljharb meant feature testing a specific assertion, not that assertions exist
11:10
<haxjs>
oh i c.
11:10
<shu>
Bakkot: presumably it'd be really nice to retrain the transcription model on the set of our voices
11:10
<shu>
the set of speakers is relatively stable from meeting to meeting
11:10
<Bakkot>
yeah, don't think they offer that though
11:11
<Bakkot>
and I don't think you get to download the model to train yourself
11:11
<littledan>
I recommend against using dynamic import as a feature test; you're writing stuff into the module map that stays alive as long as the surrounding realm does
11:11
<ljharb>
devsnek: mark's not on irc so i settled for pinging you
11:11
<devsnek>
hah
11:11
<ljharb>
littledan: if it's a module i want anyways tho, or if it's a super teeny blob URL?
11:12
<littledan>
yeah, so that keeps the blob in the module map
11:12
<ljharb>
sure
11:12
<littledan>
you can do what you want, but I won't be really happy about these idioms getting popular
11:12
<devsnek>
`import(module {}, {})`
11:12
<ljharb>
it's pretty unlikely that will be any app's biggest memory leak :-p
11:12
<devsnek>
i wouldn't be surprised if json modules are a top leak
11:12
<devsnek>
after they are supported
11:13
<robpalme>
*** The next item will be Grouped Accessors by Ron Buckton *** (rescheduled to avoid a big gap in the session)
11:59
<robpalme>
We are starting in one minute!
12:02
<rricard>
won't be able to take notes for much long
12:02
<rricard>
if someone could take it from me
12:05
<Bakkot>
will pick it back up
12:05
<Bakkot>
I tweaked it some
12:05
<Bakkot>
not sure if it's better
12:05
<rricard>
yep seeing it
12:05
<akirose>
ty ty
12:05
<littledan>
is it an error if you have multiple getters with the same name? that's news to me, and I can't reproduce it
12:05
<rricard>
it is different
12:05
<littledan>
I thought they just acted like subsequent Object.defineProperty calls
12:06
<michaelficarra>
littledan: same
12:06
<littledan>
I think this proposal is pretty orthogonal with how error-happy we want to be. It would make sense with the sloppy semantics just as much.
12:07
<robpalme>
our major in-house class system has a grouped accessor definition that atomically defines getter/setters via a single top-level named property. Ron's proposal does it in a more elegant way by making it first-class.
12:12
<michaelficarra>
Bakkot: transcription died
12:12
<michaelficarra>
it's back
12:19
<devsnek>
i'm concerned that using accessors in a decorator has to be leaked to the consumer of the decorator
12:24
<michaelficarra>
IMO, Ron has identified a developer problem, albeit minor. I don't think the particular solution presented is viable for stage 2. But I do weakly support stage 1, assuming Ron would be okay with a different solution (which I doubt).
12:25
<devsnek>
same
12:32
<leobalter>
I like the group accessors, I don't like the idea of `x { #get, #set }`, field seems to be public but it's all private
12:32
<rbuckton>
I may be wrong about multiple accessors of the same name, but my goal was to error on mixed syntax. That's something I can revisit prior to stage 2, assuming we consider this feature.
12:33
<leobalter>
that assumes we could have `x { get, #get, set, #set }`
12:35
<devsnek>
littledan: maybe i'm misunderstanding, i thought you were saying that some decorators will want to change a property into an accessor, and that doing that has performance implications, and so the user of the decorator should have to explicitly allow that
12:35
<littledan>
devsnek: We have to make a global decision about how all decorators desugar, to meet TS's goal that we don't use cross-file knowledge in transpiling decorators
12:36
<littledan>
I mean, that goal combined with V8's goal that decorators desugar in a statically analyzable way, so they are fast to interpret, etc
12:36
<devsnek>
littledan: `class X { @y z }` -> `class X {} accessorLogic(X, y, 'z');`
12:37
<littledan>
we have to decide at parse-time whether we're making a [[Define]] field or an accessor
12:37
<devsnek>
why
12:37
<littledan>
(to meet V8's architecture goals)
12:37
<devsnek>
ah
12:37
<haxjs>
why v8 arch goals beat developer expectation?
12:38
<devsnek>
i don't understand v8's requirement there, it seems like this would be equiv to modifying X.prototype
12:38
<devsnek>
before using X
12:38
<littledan>
we're combining all the goals together in the proposal, not choosing one over the other
12:38
<devsnek>
which is a common pattern that engines already support
12:39
<haxjs>
Note most recent programming languages all move to auto property and hiding field semantic.
12:40
<littledan>
one reason we didn't select always-autoaccessor semantics for fields was the performance cost Shu described. Another reason is that it wouldn't work with Object spread {...obj}
12:40
<devsnek>
if we didn't have class fields we wouldn't have to worry about decorating them 😅
12:41
<devsnek>
i guess technically we don't have class fields yet
12:42
<haxjs>
yes class fields have too many issues.
12:43
<haxjs>
I really against class fields because it invent too many issues than solving real problems.
12:44
<haxjs>
`{...object}` issue is a separate issue, anytime u refactor code to accessors, it will break. So no news in engineering view at all.
12:46
<devsnek>
there is no emoji for how i'm feeling
12:48
<shu>
i had technical difficulties at the beginning of this presentation
12:48
<ystartsev>
sorry for the z-index fail yall
12:48
<shu>
what was the professed motivation for this proposal? was it mainly for decorator interaction or mainly for syntax ergonomics?
12:48
<rbuckton>
both
12:48
<shu>
ok, thanks
12:49
<rbuckton>
I bring it up now because of decorators, but I've been thinking about it for awhile in general.
12:49
<haxjs>
I like this proposal generally
12:50
<haxjs>
I also hope we can have willset / didset like Swift.
12:51
<haxjs>
The proposal have some small issues but IMO, most issues are coming from other proposals (like fields), not the issue of itself.
12:54
<haxjs>
And I totally agree that decorator magically make field become accessor is a bad idea.
12:56
<drousso_>
^ +1
13:06
<chicoxyzzy>
grouping for objects looks a bit syntactically noisy to me `const foo = { bar { get() {...}, set(...) {...}: { internalField: { ... } } } }` where `{ internalField: { ... } } }` is an initial value of `foo.bar`
13:07
<chicoxyzzy>
for classes looks fine
13:07
<haxjs>
object normally do not use getter/setter frequently
13:07
<haxjs>
I believe it's most for classes.
13:08
<chicoxyzzy>
syntax for objects was presented on slides
13:08
<haxjs>
yes ,for complement, it should support object
13:08
<haxjs>
but I'm ok if it not
13:09
<littledan>
I'd like the question that we ask for consensus on to include a statement about the relationship with decorators, not just Stage 1, since that's ambiguous
13:10
<rbuckton>
I presented with object for comparison. I also feel that it makes more sense in classes than in object literals, but did not feel that was a reason to not consider it.
13:10
<caridy>
I'm confused with the discussion. This proposal is for the developer to have the controls while writing the code, while decorators are just giving up that control to another program. I see them as orthogonal.
13:10
<littledan>
I don't necessarily object to Stage 1 for this prposal
13:10
<rbuckton>
I don't believe this being stage 1 should block decorators, but I do think this being stage 1 gives decorators an option to consider as an alternative to auto-converting fields.
13:11
<haxjs>
I agree decorator and this proposal could be orthogonal. That means decorator should not have auto accessor semantic.
13:11
<littledan>
I remain concerned about the upgrade path issue
13:11
<littledan>
that I think people will be unhappy to have to write extra tokens in their existing decorator usage (but, the more tokens, the worse)
13:12
<haxjs>
decorator magically auto accessor change the semantic dramatically and will cause problem in many cases.
13:12
<littledan>
I proposed `trap` as an orthogonal feature for this months ago, and got pushback from decorator users about this issue
13:12
<littledan>
and I want to respect that, even as I see it as a possible alternative
13:13
<rbuckton>
Current stage-1 field decorators don't *automatically* work with the updated decorators proposal, because they would work differently. Stage-1 field decorators that convert something to an accessor do it using `Object.defineProperty`. They would have to explicitly write code to handle both Stage-1 style invocations as well as the updated proposal's decorator invocations.
13:14
<littledan>
right, the upgrade path I mean is around decorator users, not decorator authors
13:14
<littledan>
and there are minor grammar changes as well
13:15
<rbuckton>
Those decorators, as part of their upgrade path, could instead throw with a clear explanation as to what needs to be changed. Static type systems like TypeScript could use the type information of the decorator to provide a design-time error as to whether the decorated target is valid (which we already do for Stage-1 decorators).
13:15
<littledan>
but the need to write `trap` or `{get; set;}` would be a significant additional barrier
13:15
<littledan>
some decorators authors are a bit nervous about type interactions with decorators, given how TS doesn't model much right now. It'd be good to discuss what more we can do with standard decorators
13:15
<haxjs>
This is good because developer now understand it will become accessors and know that there will be different semantic.
13:16
<shu>
i see a popup in the Teams UI that says "transcription has started"
13:16
<littledan>
well, "including a decorator" is also an explicit signal
13:16
<shu>
we're also testing Teams's transcription?
13:16
<shu>
(and how do i see that?)
13:17
<rbuckton>
Without a syntactic opt-in of some kind, decorators change a field in ways a user may not expect. This can impact performance and runtime evaluation due to subclassing. I am still concerned about these issues.
13:17
<haxjs>
No, "including decorator" is just means I want decorate something, not changing semantic dramatically. Decorate something normally not breaking change.
13:18
<littledan>
I feel like, if Stage 1 means, "the committee agrees with this concern", that's something we should say explicitly
13:18
<littledan>
and record as a conclusion, so we can build on it in the decorators champion group
13:18
<rbuckton>
To me, this is similar to the discussion around decorating function declarations from several years back. If function decorators forced `let`-like semantics for a function declaration and prevented hoisting, decorating a function could break code and require refactoring.
13:20
<rbuckton>
Our solution was to just defer function decorators until after class decorators
13:20
<haxjs>
Agree! Maybe we should introduce non-hoisting function declaration like `const f() {}` so we can have function decorators.
13:24
<rbuckton>
shu: https://usercontent.irccloud-cdn.com/file/lts3X43J/image.png
13:24
<shu>
rbuckton: i don't see that
13:25
<shu>
i only have Device settings, Meeting details, and Enter full screen
13:25
<rbuckton>
It may not be available for guests :(
13:29
<littledan>
(I guess for function decorators, I just think we should go ahead with let-style semantics, since there's really no other way to do it. I don't feel like const function declarations would be worth it.)
13:31
<chicoxyzzy>
+1
13:32
<littledan>
so overall I don't really agree with the claim that, it's absolutely necessary that the "identity decorator" do nothing. I think it would be a *nice* property, but makes sense to weigh against other things
13:36
<haxjs>
Of coz everything are tradeoff. But I really feel decorator should not change semantic like that. Especailly in some cases u only want to deocator to add some metadata, and never expect any semantic change.
13:53
<Bakkot>
yeah, shu +1, no one is going to expect `atob` to be missing in the new realm
13:53
<haxjs>
So let's add `atob` to JS ?? :P
14:04
<littledan>
people in TC39 have made security claims about all sorts of features, such as Promises, private fields, etc. Maybe a rebrand would be a way to discard "baggage" but I don't think it makes sense to hold off on a feature because of confusing claims
14:05
<caridy>
I'm ok with a rebrand to Context
14:05
<caridy>
if that will help to clear up the confusion
14:07
<haxjs>
What rebrand mean?
14:07
<leobalter>
haxjs: rename
14:07
<leobalter>
instead of Realm we would call it Context
14:07
<leobalter>
and I'm +1 for this renaming if it's useful
14:08
<ystartsev>
forgot to mention: as shu said, this is super lightweight on the js engine side, we already can do this -- most of the real work would be gecko
14:08
<robpalme>
I think Context is the lowest value word in all of computer science. perhaps second only to Data
14:09
<haxjs>
Not sure why `Context` is better than `Realm` ...
14:09
<ystartsev>
can we plz rename compartments?
14:09
<ystartsev>
I like "realm" because it sounds like we are in a fantasy novel and i think thats hilarious
14:09
<ystartsev>
;)
14:09
<haxjs>
Yeah, it's hard for me to remember the spelling of `compartment` :)
14:09
<ystartsev>
joking aside, the name is hard for new comers
14:10
<robpalme>
if someone says "let's talk about Realms" in a computer conversation I immediately know they are talking about JS stuff
14:10
<leobalter>
I have thoughts about Compartments but I'd love to address them after we go through the Realms API (or Context API)
14:10
<ystartsev>
i love the fact that we can talk about "the primordials of a realm" and it _not_ be scifi/fantasy
14:10
<robpalme>
Compartments is good too because no one else uses that work
14:10
<ystartsev>
except for US
14:10
<ystartsev>
firefox uses compartments 😭
14:11
<robpalme>
oh
14:11
<leobalter>
The only thing I love about the name Realms is the fact we can have Frozen Realms and this sounds like Warcraft
14:11
<ystartsev>
https://searchfox.org/mozilla-central/source/js/src/NamespaceImports.h#142
14:11
<robpalme>
also, Realms reminds me of the cartoon Dungeons & Dragons, which is possibly the greatest cartoon of all time
14:12
<leobalter>
robpalme: well I watched it on pt-br so I missed any references, it took me a long time to know the time is originally Dungeons & Dragons.
14:12
<leobalter>
The RPG goes without translation in Brazil, at least
14:13
<ystartsev>
"zone" in spidermonkey is also good -- reminds of the book roadside picnic
14:13
<leobalter>
switching to tdz
16:42
<devsnek>
please we cannot call this contexts node already has this and it's called contexts and the overlap will be painful
16:48
<bradleymeck>
Nations, Borders, Worlds, Universes, so many options
16:53
<devsnek>
Globals
17:09
<bradleymeck>
Globe
17:09
<bradleymeck>
that contains globals at least in English implications?
19:02
<ljharb>
there's no conclusion listed on "realms" for day 2's notes - what was the result?
19:14
<Bakkot>
it was just a status update, proposal champions are still talking to HTML / browser vendors (beyond just the JS engine people)
19:14
<Bakkot>
people were positive about it in the temperature check though
19:25
<ljharb>
ah ok, thanks
19:25
<ljharb>
the title is "for stage 3"
19:25
<ljharb>
(is why i asked, i mean)
19:32
<rkirsling>
so wait, `at` is back for Strings now too?
19:34
<bradleymeck>
always has been
19:35
<ljharb>
🔫 👨‍🚀
19:37
<rkirsling>
lol.
19:38
<rkirsling>
guess I'll revert my revert then
19:39
<ljharb>
we need to be careful tho, core-js apparently shipped the old stage 1 code-point-based String.prototype.at polyfill
19:39
<ljharb>
so depending on how it installs it, there might be web compat issues
19:41
<rkirsling>
right, I just noticed that thread
19:41
<jridgewell>
Why are they shipping `at`? It was renamed to `codePointAt`, right?
19:41
<ljharb>
jridgewell: no, that's different
19:41
<ljharb>
jridgewell: there's a stage 1 proposal by mathias for String.prototype.at that returns code points
19:42
<ljharb>
jridgewell: it's basically dead at this point, and nobody should have ever shipped a polyfill for it at that early a stage, but since core-js did, we have to pay attention to it
19:42
<ljharb>
jridgewell: codePointAt returns a number, not a string code point
19:43
<ljharb>
jridgewell: like `'💩'.at(0)` would return `'💩'`
19:43
<jridgewell>
Ugh
19:46
<ljharb>
the existence of the old proposal is fine, but i'm ugh on enabling stage < 3 polyfills by default, yes :-(
22:14
<Bakkot>
"< 3 polyfills" - horse_js
22:14
<Bakkot>
(not actually)
22:15
<rkirsling>
lol
22:15
<rkirsling>
wait so the main thing I want to know is
22:16
<rkirsling>
was commitment expressed by V8 or SM to ship String.prototype.at and see what breaks?
22:22
<mathiasbynens>
historically, no
22:22
<mathiasbynens>
String.prototype.at was a ES2015 proposal
22:23
<rkirsling>
wait what
22:23
<ljharb>
rkirsling: the "item" proposal's string method tho, i think yes
22:23
<rkirsling>
yeah I mean the new one
22:23
<mathiasbynens>
ah gotcha
22:23
<rkirsling>
I didn't realize the name had come up before
22:23
<ljharb>
rkirsling: mathias' old proposal is stage 0
22:23
<rkirsling>
that seems...complicated, but not necessarily in a way that affects web compat?
22:23
<rkirsling>
ahh cool
22:23
<ljharb>
it should probably be moved to "inactive" actually
22:24
<ljharb>
rkirsling: the issue is that core-js has a polyfill for the old String `at` proposal. depending on the way it's installed, it may, or may not, cause web compat issues
22:24
<rkirsling>
right
23:55
<rkirsling>
let's start with this instead :) https://github.com/tc39/test262/pull/2905