Loader locate/fetch/translate/instantiate API

John Barton johnjbarton at google.com
Wed Jul 30 09:21:15 PDT 2014


The spec seems inconsistent about the metadata property. The define()
function of Loader accepts options.metadata:
---
26.3.3.2Reflect.Loader.prototype.define ( name, source [ , options ] )

...

8. Let metadata be GetOption(options, "metadata").
9. ReturnIfAbrupt(metadata).
10. If metadata is undefined then let metadata be
ObjectCreate(%ObjectPrototype%).
---
But the import() function does not:
Reflect.Loader.prototype.import ( name [ , options ]
...
4. Let p be the result of calling LoadModule(loaderRecord, name, options).
...
15.2.4.1LoadModule(loader, name, options) Abstract Operation
...
8 Let metadata be ObjectCreate(%ObjectPrototype%).


That means I can pass .metadata to define() but not import(). I think the
metadata should be passed on both.

jjb


On Wed, Jul 30, 2014 at 7:20 AM, Juan Ignacio Dopazo <jdopazo at yahoo-inc.com>
wrote:

> I don't have an answer, but the "metadata" property of the loadRecord
> object was designed to be the place where you put your own custom metadata
> so that it's persisted across hooks. And it works in es6-module-loader:
> http://jsbin.com/kutey/2/edit?js,output.
>
> Juan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140730/04cb05c5/attachment-0001.html>


More information about the es-discuss mailing list