On 1. 3. 2019 18:35, Michał Wadas wrote:
I don't think so, because:

  * Using promises to import module is not always desirable
  * This mechanism doesn't impact ability to statically analyze modules
    if ifs are excluded - it can only increase resolution time.

Yeah, if 'if's are excluded. That version with those ifs was what was concerning. That actually needs runtime to do the work. I suppose until it doesn't need the runtime, it's all ok.


On Fri, Mar 1, 2019 at 1:56 PM Herby Vojčík <he...@mailbox.sk <mailto:he...@mailbox.sk>> wrote:

    On 1. 3. 2019 12:04, Michał Wadas wrote:
     > Syntax:
     >
     > try import fs from 'fs'
     >     else import fs from 'fs-polyfill'
     >     else import fs from 'another-fs-polyfill'
     >     else do nothing; // Not sure about syntax
     >
     >
     > try import {watchDirectory} from 'fs'
     >     else import {watchDirectory} from 'fs-polyfill'
     >     else if(process.os === 'ExoticSystem') import
    {watchDirectory} from
     > 'another-fs-polyfill'
     >     else throw Error('Your OS doesn\'t support watching
    directories');

    I am not an expert, but afaict ES module system was created to be
    statically analysable and this bring uncertainity.

    For that probably dynamic import() is there; and your usage should
    await
    for a promise that tries to load one then the other etc.

    Herby

     > Usages:
     >
     >   * Optional dependencies
     >   * Polyfills
     >
     > Problems:
     >
     >   * This can prevent loading modules before execution if presence of
     >     modules can't be proved statically
     >   * else-if requires execution before loading module - can be dropped
     >
     >
     > I don't have enough time and knowledge about modules to write actual
     > proposal.


_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to