> 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

