> Dependency resolution logic is platform-specific

@jordan, platform-specific logic is not a real problem?  the behavior of 
import-statement between babel (sync), native-browser (async), native-nodejs 
(sync???) are all subtly different.  and yes, it's effectively a with-statement.

its not toxicity.  its reminding tc39 of their mistakes, so they don’t repeat 
something again as stupid and harmful to industry/web-development in the future.

kai zhu
[email protected]



> On 23 Aug 2018, at 1:22 PM, Jordan Harband <[email protected]> wrote:
> 
> Kai, that makes no sense whatsoever, and isn't contributing productively to 
> this thread. Dependency resolution logic is platform-specific - in browsers, 
> it's "URLs", which I assume you understand, and in node using babel, it's 
> "the same as require", which I'd assume any node user would understand. 
> There's no relationship to "with" statements and no actual difficulty 
> "debugging" them that I'm aware of after using them for years.
> 
> Please stay on topic, and keep to yourself comments that are nothing more 
> than random toxicity about the JS language.
> 
> On Wed, Aug 22, 2018 at 5:12 AM, kai zhu <[email protected] 
> <mailto:[email protected]>> wrote:
> es6 import-statements are effectively with-statements …
> 
> actually, they're *async* with-statements, with no callback-handling and 
> non-obvious dependency-resolution logic, for those of us trying to debug them 
> when things go wrong.
> 
> 
> On Aug 22, 2018 15:58, "Claude Pache" <[email protected] 
> <mailto:[email protected]>> wrote:
> 
> 
> > Le 21 août 2018 à 21:20, Herbert Vojčík <[email protected] 
> > <mailto:[email protected]>> a écrit :
> > 
> > Hi!
> > 
> > It would be nice to know if do expressions have some a chance, otherwise 
> > some other syntax for let-in would be really helpful, especially now that 
> > we have arrow functions.
> > 
> > I would propose to use different variant of let (maybe also const):
> > 
> > OP 1:
> > 
> >  let in a = b(), if (a) a.c();
> > 
> > OP 2:
> > 
> >  let in a = b(), if (a) c(a);
> > 
> > Instead of
> >  const big = raw => {
> >    let cooked = cook(raw);
> >    return consumer => {
> >      // do things with consumer and cooked
> >    };
> >  };
> > 
> >  const big = raw =>
> >    let in cooked = cook(raw), consume => {
> >      // do things with consumer and cooked
> >    };
> > 
> > In short,
> > 
> >  let in binding = expr, stmt|expr
> > 
> > It may work for `const in` as well.
> > 
> > Herby
> > 
> > P.S.: Alternative syntax is "let a=3, b=4, ..., in foo(a,b,c,d)" but this 
> > can only tell late if it is plain let-up-to-end-of-scope or 
> > local-scope-let, so not sure if that may be a problem; OTOH you can chain 
> > more of them and resembles classical let-in better.
> 
> Please, don’t take it too seriously: but have you thought about resuscitating 
> the (in)famous `with` statement?
> 
> ```js
> const big = raw => 
>     do with ({cooked: cook(raw)})
>         consumer => {
>             // do things with consumer and cooked
>         };;
> ```
> 
> And no the two ”;”s are not a typo: I need to end both the `with` statement 
> and the `const` declaration.
> 
> But more seriously... those sorts of “clever” syntaxes (`let-in` or `do-with` 
> or whatever), apart from complicating the language, are in danger of raising 
> as much issues than they’re resolving; the double-semicolon oddity is one of 
> them.
> 
> —Claude
> 
> _______________________________________________
> es-discuss mailing list
> [email protected] <mailto:[email protected]>
> https://mail.mozilla.org/listinfo/es-discuss 
> <https://mail.mozilla.org/listinfo/es-discuss>
> 
> _______________________________________________
> es-discuss mailing list
> [email protected] <mailto:[email protected]>
> https://mail.mozilla.org/listinfo/es-discuss 
> <https://mail.mozilla.org/listinfo/es-discuss>
> 
> 

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to