Skip to content
This repository has been archived by the owner on Sep 2, 2023. It is now read-only.

Figure out Synthetic Modules and loaders #526

Open
bmeck opened this issue Jun 3, 2020 · 4 comments
Open

Figure out Synthetic Modules and loaders #526

bmeck opened this issue Jun 3, 2020 · 4 comments
Labels
brainstorming Safe place to discuss ideas and provide constructive feedback discussion

Comments

@bmeck
Copy link
Member

bmeck commented Jun 3, 2020

Right now we always generate modules via a static/serializable blob. With the removal of dynamicInstantiate we need to figure out what we want to do with v8::Module::CreateSyntheticModule. In theory this would be easier for workflows like testdouble if we do expose a way to set the exports of a module directly, however a lot of decisions about where the list of export names etc. are determined is unclear.

@bmeck bmeck added discussion brainstorming Safe place to discuss ideas and provide constructive feedback labels Jun 3, 2020
@giltayar
Copy link

giltayar commented Jun 3, 2020

If I understand correctly, a synthetic module would need to not only define the set of named/default exports, but also give a set of operations to execute (in testdouble's scenario, those steps would set the variables the export values). And we can do that either via giving JS code, or by giving the JS source code.

The second option is basically what is being done in testdouble today, except that today it's giving the whole module's code.

The first option is impossible, because it's JS code in the loader worker, and so inaccessible from the main threads.

In any case, at least for testdouble's purposes, it's not a painpoint, and not something that I feel was sorely needed.

Just my 2 cents.

@bmeck
Copy link
Member Author

bmeck commented Jun 3, 2020

That's good feedback, thanks :)

@GeoffreyBooth
Copy link
Member

And we can do that either via giving JS code, or by giving the JS source code.

I'm sorry, what's the difference between these two?

@giltayar
Copy link

giltayar commented Jun 4, 2020

Js code: passing a function. Js source code: passing a string.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
brainstorming Safe place to discuss ideas and provide constructive feedback discussion
Projects
None yet
Development

No branches or pull requests

3 participants