- From: Ian Kilpatrick <ikilpatrick@google.com>
- Date: Fri, 30 Sep 2016 08:32:32 -0700
- To: Joe Berkovitz <joe@noteflight.com>
- Cc: Hongchan Choi <hongchan@google.com>, Audio Working Group <public-audio@w3.org>
- Message-ID: <CAJL3UpT9qFOP9--uW84X7c50=YBfQ2N5O6VbzY_br6KKNRHKeg@mail.gmail.com>
So there are two things here: 1) import() calls aren't ordered, for example: worklet.import('script1.js'); worklet.import('script2.js'); valid execution orders are: [1,2] and [2,1]. If you want a specific ordering at this level you'll need to promise chain, i.e. await worklet.import('script1.js'); await worklet.import('script2.js'); 2) Once things are loaded from the network, and you create a new WorkletGlobalScope, the order is defined. Taking the above example, if the order was [script2, script1]; and a new WorkeltGlobalScope was created, the scripts will get executed in the same order. Scripts are loaded as modules, so most dependencies will be loaded with the import syntax. E.g. import { thing } from 'dep.js'; Again the order in which es6-imports are executed is defined by that ordered response map. So when you create a new WorkletGlobalScope, the scripts will be executed in the same order. Thanks, Ian On Thu, Sep 29, 2016 at 2:50 PM, Joe Berkovitz <joe@noteflight.com> wrote: > I was unclear on the ordering, but the Worklet spec does mention that if > you import two scripts, the order of loading is indeterminate. > > This fetch vs. parse sequencing thing is the main point I was hoping Ian > could clear up for us. > > . . . . . ...Joe > > Joe Berkovitz > President > Noteflight LLC > > +1 978 314 6271 <(978)%20314-6271> > > 49R Day Street > Somerville MA 02144 > USA > > "Bring music to life" > www.noteflight.com > > On Thu, Sep 29, 2016 at 4:45 PM, Hongchan Choi <hongchan@google.com> > wrote: > >> Since this is already specced in the worklet spec, I don't think we need >> to redefine our own storage for this purpose. We can simply use this notion >> and add a link to the worklet spec. >> >> Also it seems like this follows the order of 'fetching', not parsing. Is >> this what we want? Can we import multiple files concurrently? >> >> On Thu, Sep 29, 2016 at 7:32 AM Joe Berkovitz <joe@noteflight.com> wrote: >> >>> Hi Ian, >>> >>> A question came up yesterday in conversation, about the order in which >>> imported scripts are applied to a WorkletGlobalScope. I realized that we'd >>> never discussed this in the WG, and that it would be desirable to apply >>> scripts to every global scope in a consistent order. My guess was that this >>> order should be the order in which Promises returned from various >>> importScript() calls are resolved, and that a given Worklet would need to >>> maintain some kind of internal list that captured the scripts' parse >>> results this order. >>> >>> On perusing the Worklet spec more carefully, I found this: >>> >>> https://drafts.css-houdini.org/worklets/#module-responses-map >>> >>> Is the "module responses map" the very thing I was thinking about? >>> >>> Thanks for your help! >>> >>> Best, >>> >>> . . . . . ...Joe >>> >>> >
Received on Friday, 30 September 2016 15:33:03 UTC