John Barton (2014-07-30T16:21:15.000Z)
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>
domenic at domenicdenicola.com (2014-08-04T23:48:42.488Z)
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.