| Index: sky/engine/core/app/AbstractModule.cpp
|
| diff --git a/sky/engine/core/app/AbstractModule.cpp b/sky/engine/core/app/AbstractModule.cpp
|
| index 5595d37ba8d799cedacda1df4672aad475dd46b3..3bffdf2f6601112c3d61002f0e3c882adad4ae11 100644
|
| --- a/sky/engine/core/app/AbstractModule.cpp
|
| +++ b/sky/engine/core/app/AbstractModule.cpp
|
| @@ -5,6 +5,8 @@
|
| #include "config.h"
|
| #include "core/app/AbstractModule.h"
|
|
|
| +#include "core/app/Module.h"
|
| +
|
| namespace blink {
|
|
|
| AbstractModule::AbstractModule(ExecutionContext* context,
|
| @@ -24,4 +26,22 @@ ExecutionContext* AbstractModule::executionContext() const {
|
| return ContextLifecycleObserver::executionContext();
|
| }
|
|
|
| +ScriptPromise AbstractModule::import(ScriptState* script_state,
|
| + const String& url_string) {
|
| + KURL url = document()->completeURL(url_string);
|
| + RefPtr<ScriptPromiseResolver> resolver =
|
| + ScriptPromiseResolver::create(script_state);
|
| + OwnPtr<ModuleLoader> loader =
|
| + adoptPtr(new ModuleLoader(this, GetApplication(), url));
|
| + loaders_.set(loader.release(), resolver);
|
| + return resolver->promise();
|
| +}
|
| +
|
| +void AbstractModule::OnModuleLoadComplete(ModuleLoader* loader,
|
| + Module* module) {
|
| + RefPtr<ScriptPromiseResolver> resolver = loaders_.take(loader);
|
| + ScriptState::Scope scope(resolver->scriptState());
|
| + resolver->resolve(module->exports().v8Value());
|
| +}
|
| +
|
| } // namespace blink
|
|
|