00:09:10  <ljharb>i think we'd want to be able to configure ways to do things, such that it'd be appropriate for "new" ways to fail, and be blocked
00:13:10  <jmdyck>I'm not sure even that will be feasible, but I'll work towards getting the code up.
00:16:25  * aki_joined
00:17:12  * akirosequit (Ping timeout: 272 seconds)
00:17:13  * aki_changed nick to akirose
01:20:04  * AtumTquit (Quit: AtumT)
01:29:31  * cloudshuquit (Quit: Connection closed for inactivity)
02:09:17  <rkirsling>jmdyck: a fun thorn in automability here is the phrase "`super` property accesses", ha.
02:11:25  <rkirsling>I'm ultimately checking all of this manually anyway, just struck me as amusing
02:15:13  <jmdyck>Hm. Odd to call it a 'property'.
02:17:21  <rkirsling>might've removed too much context, but that's the thing -- it's an access of `super.something`
02:20:25  <rkirsling>this one is slightly tricky though:
02:20:25  <rkirsling>> The value of the `Number.parseFloat` data property is the same built-in function object that is the value of the `parseFloat` property of the global object
02:21:14  <rkirsling>"`Number`'s `"parseFloat"` data property" would be one thing, but without updating the prose I think one is forced to leave it be
02:22:32  * aki_joined
02:23:23  * akirosequit (Ping timeout: 245 seconds)
02:23:23  * aki_changed nick to akirose
02:41:59  <jmdyck>So I guess "`super` property" (and |SuperProperty|) isn't supposed to denote "a property named 'super'" (as a phrase of that form would normally denote), but rather "a property that is accessed via the 'super' keyword".
02:46:46  <rkirsling>mhm.
02:49:40  * Aquaziquit (Quit: Connection closed for inactivity)
04:29:11  * aki_joined
04:30:30  * akirosequit (Ping timeout: 252 seconds)
04:30:30  * aki_changed nick to akirose
04:40:10  * jwaldenquit (Quit: back tomorrow)
04:48:48  * Sirisianjoined
04:49:46  * jmdyckquit (Remote host closed the connection)
06:35:29  * aki_joined
06:36:06  * akirosequit (Ping timeout: 252 seconds)
06:36:06  * aki_changed nick to akirose
07:11:17  * akoserwajoined
08:41:06  * aki_joined
08:42:03  * akirosequit (Ping timeout: 252 seconds)
08:42:03  * aki_changed nick to akirose
09:14:47  * Aquazijoined
10:31:04  * akoserwa_joined
10:33:23  * akoserwaquit (Ping timeout: 245 seconds)
10:46:00  * AtumTjoined
10:48:21  * aki_joined
10:48:46  * akirosequit (Ping timeout: 246 seconds)
10:48:46  * aki_changed nick to akirose
11:21:58  * akoserwa__joined
11:24:39  * akoserwa_quit (Ping timeout: 252 seconds)
12:19:29  * jmdyckjoined
12:23:46  * caitpquit (Remote host closed the connection)
12:41:33  * caitpjoined
12:55:34  * aki_joined
12:55:36  * akirosequit (Ping timeout: 252 seconds)
12:55:44  * aki_changed nick to akirose
13:57:47  * akoserwa__quit (Quit: Leaving)
14:47:58  * cloudshujoined
15:02:57  * aki_joined
15:03:12  * akirosequit (Ping timeout: 252 seconds)
15:03:13  * aki_changed nick to akirose
17:10:34  * akirosequit (Ping timeout: 240 seconds)
17:10:35  * aki_joined
17:10:59  * aki_changed nick to akirose
18:06:47  * Aquaziquit (Quit: Connection closed for inactivity)
18:31:55  * superamadeusjoined
18:33:28  <superamadeus>Hello all. I read the contribution guide in reference to pitching features to ECMAScript. To my understanding, this is an okay place to discuss it. Is that right?
18:36:12  <devsnek>superamadeus: yes
18:36:34  <devsnek>there's also esdiscuss.org
18:44:10  <bradleymeck>id highly recommend searching esdiscuss first
18:44:16  <bradleymeck>and/or the TC39 github
18:46:07  <superamadeus>Alrighty. I'll do that. If I do want to share the proposal here, is there any formalities I should follow? Or is a simple gist an alright way to show what I mean?
18:47:28  <ljharb>i'd vet the idea before writing much out :-)
18:49:11  <superamadeus>Well, it looks like it's been talked about a few times on esdiscuss anyway.
18:49:31  <ljharb>then reading that, and replying to one of those threads, is probably a good start
18:49:33  <ljharb>what's the idea?
18:51:12  <superamadeus>Namespaced imports. e.g. `import { race, fromEvent } as RxJs from "rxjs"`.
18:52:03  <devsnek>what does that do
18:52:49  <devsnek>like `import { name } from 'x'` is already a thing
18:53:13  <devsnek>do you want the whole namespace as an object?
18:53:19  <devsnek>like `import * as rxjs from 'rxjs'`
18:53:48  <TabAtkins>Yeah, this is "normal import, but with only some of the keys", so you still get the namespace object.
18:53:54  <superamadeus>It would allow you to selectively import tree-shakeable names from a module while not importing the names directly into the scope.
18:55:07  <superamadeus>`import { x, y } as foo from "foo"` would essentially be `import { x, y } from "foo"; const foo = { x, y };`
18:56:20  <devsnek>they can be tree-shaken anyway
18:58:30  <superamadeus>`import * as foo from "foo";` can selectively tree shake based on what properties you use?
18:59:15  <devsnek>assuming your tooling supports it
18:59:19  <devsnek>its logically possible
18:59:29  <devsnek>i don't think js itself needs to solve this
19:02:28  <ljharb>superamadeus: why wouldn't you want the names directly in the scope
19:06:59  * basicdaysjoined
19:13:46  <superamadeus>+ljharb: Organization, providing context for names, and to avoid naming collisions.
19:14:04  <superamadeus>devsnek: fair enough
19:16:03  <ljharb>but it’s a module - it should be small enough that you don’t need organization, and you can avoid collisions by renaming on import
19:17:52  * akirosequit (Ping timeout: 244 seconds)
19:18:24  * akirosejoined
19:23:42  <superamadeus>+ljharb: Just something I've personally run into being annoying to deal with.
19:27:38  <devsnek>`import { x as tX } from 't'`
19:29:58  <superamadeus>Yeah, but say I have `import { map, scan, tap } from "rxks"` and "map" is colliding. I end up with `import { observableMap, scan, tap } from "rxjs"`. Which makes it seem like the observable functions should have an "observable" prefix. Or, if I see the snippet `this.doSomething(map(a => a + 1))`, I can't really tell that it's related to observables and not just for regular collections.
19:30:59  <superamadeus>It's very much just syntactic sugar just because I personally like how it looks. I also thought it solved a problem with tree shaking but if that doesn't even happen then it has less of a purpose.
19:48:26  <ljharb>sure, that's the flaw in those libs exporting generic names in the first place
19:48:39  <ljharb>"map" is going to collide conceptually with a ton of things
20:02:12  <Bakkot>superamadeus: it probably solves a problem with tree-shaking for tools which are not sufficiently clever, or when you're using the object in a nontrivial way (trivial = only accessing specific named properties, not passing it around)
20:02:42  <Bakkot>but in normal usage, with good tools, it shouldn't be necessary at all
20:05:05  <ljharb>(tree shaking isn't even necessary at all if your modules export one thing, and you explicitly import only exactly what you need :-p )
20:08:30  <Bakkot>e.g. rollup does the right thing: https://bit.ly/2CtpKkI
20:13:13  <ljharb>Bakkot: last i checked, rollup will still delete code even when it's not 100% certain you're not reflecting on the namespace object :-/
20:13:32  <Bakkot>ljharb: yeah, I noticed that it still does the thing even if you have `this` in one of the functions you're using.
20:13:32  <Bakkot>sigh.
20:14:02  <Bakkot>whatever; it's doable in principle, and the language shouldn't change to make life easier for tools which are not correct
20:14:04  <ljharb>i tried really hard to argue that it should either "not treeshake" in those scenarios, or it should throw
20:14:12  <ljharb>but the maintainer didn't seem to care that it violated the spec
20:14:32  * jwaldenjoined
20:15:30  <Bakkot>:(
20:15:41  <Bakkot>compilers which are incorrect make me very sad
20:15:43  <Bakkot>ah well, ah well
20:16:17  <devsnek>let's make a 100% correct one
20:17:45  <Bakkot>https://github.com/shapesecurity/bandolier
20:21:27  <ljharb>maven tho
20:21:41  <devsnek>java tho
20:53:12  * superamadeusquit (Quit: Page closed)
21:21:30  * vikash-afkquit (Remote host closed the connection)
21:26:18  * akirosequit (Ping timeout: 245 seconds)
21:26:25  * aki_joined
21:26:49  * aki_changed nick to akirose
21:30:49  * not-an-aardvarkjoined
23:32:59  * aki_joined
23:33:47  * akirosequit (Ping timeout: 240 seconds)
23:33:47  * aki_changed nick to akirose
23:41:10  * cloudshuquit (Quit: Connection closed for inactivity)