- 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