import.meta and TC39 process as a whole
Matthew Robb
matthewwrobb at gmail.com
Sat Aug 5 16:14:00 UTC 2017
Yes super is a keyword and had been reserved for a long time. I don't
necessarily disagree with your premise about introducing new keywords that
aren't reserved but the current tc39 policy on this is to not due to the
high likelihood that it breaks current user code.
This conversation could go very different if that policy were amended and
if you think you have a way to do this that doesn't break existing user
code I would suggest submitting that as a proposal.
On Aug 5, 2017 12:08 PM, "Dmitrii Dimandt" <dmitrii at dmitriid.com> wrote:
> That’s not what I was really aiming at :)
>
> The original concern was “to get ‘module’ : 1. It's a context-sensitive
> keyword, and code that's using it needs to
> be updated when migrated to a module. “
>
> I was just pointing out that ‘import’ is already a context-sensitive
> keyword (as are a bunch of others, like super. Is super a keyword BTW?)
>
>
>
>
> On Sat, 05 Aug 2017 at 18:03 Matthew Robb <Matthew Robb
> <Matthew+Robb+%3Cmatthewwrobb at gmail.com%3E>> wrote:
>
>> Ah but you can do:
>>
>> export function meta(key) {
>> return import.meta[key]:
>> }
>>
>> On Aug 5, 2017 11:59 AM, "Dmitrii Dimandt" <dmitrii at dmitriid.com> wrote:
>>
>>> Import is already made to be a context-sensitive keyword
>>>
>>> I don’t think you can have a
>>>
>>> function x() {
>>> import {x} from ‘module’;
>>> }
>>>
>>>
>>>
>>> On Sat, 05 Aug 2017 at 13:07 "T.J. Crowder" <">"T.J. Crowder" > wrote:
>>>
>>>> On Sat, Aug 5, 2017 at 11:58 AM, Naveen Chawla
>>>> <naveen.chwl at gmail.com> wrote:
>>>> >
>>>> > How is `document` and `window` handled when someone does
>>>> > `const document =` ?
>>>>
>>>> At global scope in a script body, in a browser context, it's an error,
>>>> as you presumably know, because `document` is already declared.
>>>>
>>>> > It would seem perfectly fine to allow `module` to be masked by
>>>> > other variables, and if someone wants to use the module-global
>>>> > `module`, they can just rename in order to get access.
>>>>
>>>> Yes. That's what I said.
>>>>
>>>> The issue with it being an identifier isn't shadowing. It's that then
>>>> it's a binding with a value, and that value can be passed around,
>>>> which I suspect isn't okay.
>>>>
>>>> For clarity: To get `module`, either:
>>>>
>>>> 1. It's a context-sensitive keyword, and code that's using it needs to
>>>> be updated when migrated to a module.
>>>>
>>>> 2. It's an identifier, which means its value can be passed around.
>>>>
>>>> All I've said, again, is: I *suspect* that having it be an identifier
>>>> is a non-starter. But perhaps you can get support for a
>>>> context-sensitive keyword, if people feel it's worth the complexity
>>>> for mildly-improved semantics.
>>>>
>>>> -- T.J. Crowder
>>>>
>>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170805/cfcfa302/attachment-0001.html>
More information about the es-discuss
mailing list