Improve async instantiation (#2566)
This commit is contained in:
committed by
Nikolay Igotti
parent
a90ca27264
commit
21852ec2a3
@@ -193,13 +193,11 @@ function invokeModule(inst, args) {
|
|||||||
return exit_status;
|
return exit_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Instantiate module in Browser in a sequence of promises.
|
// Instantiate module in Browser.
|
||||||
function instantiateAndRun(arraybuffer, args) {
|
function instantiateAndRun(arraybuffer, args) {
|
||||||
WebAssembly.compile(arraybuffer)
|
linkJavaScriptLibraries();
|
||||||
.then(module => {
|
WebAssembly.instantiate(arraybuffer, konan_dependencies)
|
||||||
linkJavaScriptLibraries();
|
.then(resultObject => invokeModule(resultObject.instance, args));
|
||||||
return WebAssembly.instantiate(module, konan_dependencies);
|
|
||||||
}).then(instance => invokeModule(instance, args));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Instantiate module in d8 synchronously.
|
// Instantiate module in d8 synchronously.
|
||||||
@@ -211,11 +209,11 @@ function instantiateAndRunSync(arraybuffer, args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Instantiate module in Browser as a promise of streaming instantiation.
|
// Instantiate module in Browser using streaming instantiation.
|
||||||
function instantiateAndRunStreaming(filename) {
|
function instantiateAndRunStreaming(filename) {
|
||||||
linkJavaScriptLibraries();
|
linkJavaScriptLibraries();
|
||||||
WebAssembly.instantiateStreaming(fetch(filename), konan_dependencies)
|
WebAssembly.instantiateStreaming(fetch(filename), konan_dependencies)
|
||||||
.then(resultObject => invokeModule(resultObject.instance, [filename]));
|
.then(resultObject => invokeModule(resultObject.instance, [filename]));
|
||||||
}
|
}
|
||||||
|
|
||||||
konan.moduleEntry = function (args) {
|
konan.moduleEntry = function (args) {
|
||||||
|
|||||||
Reference in New Issue
Block a user