Index: third_party/WebKit/Source/core/dom/ModuleScript.cpp |
diff --git a/third_party/WebKit/Source/core/dom/ModuleScript.cpp b/third_party/WebKit/Source/core/dom/ModuleScript.cpp |
index f175cd9c670962af74f915049f637d9ce2e2ef89..9c4a331526b6403be00fc2fbd88dc7a51de710bf 100644 |
--- a/third_party/WebKit/Source/core/dom/ModuleScript.cpp |
+++ b/third_party/WebKit/Source/core/dom/ModuleScript.cpp |
@@ -4,15 +4,24 @@ |
#include "core/dom/ModuleScript.h" |
+#include "bindings/core/v8/V8Binding.h" |
+#include "bindings/core/v8/V8ThrowException.h" |
+#include "core/dom/Modulator.h" |
+#include "core/dom/ScriptModuleResolver.h" |
+ |
namespace blink { |
-void ModuleScript::SetInstantiationError(v8::Isolate* isolate, |
- v8::Local<v8::Value> error) { |
+void ModuleScript::SetInstantiationErrorAndClearRecord(ScriptValue error) { |
DCHECK_EQ(instantiation_state_, ModuleInstantiationState::kUninstantiated); |
instantiation_state_ = ModuleInstantiationState::kErrored; |
DCHECK(!error.IsEmpty()); |
- instantiation_error_.Set(isolate, error); |
+ { |
+ ScriptState::Scope scope(error.GetScriptState()); |
+ instantiation_error_.Set(error.GetIsolate(), error.V8Value()); |
+ } |
+ |
+ record_ = ScriptModule(); |
} |
void ModuleScript::SetInstantiationSuccess() { |
@@ -40,8 +49,10 @@ bool ModuleScript::CheckMIMETypeBeforeRunScript(Document* context_document, |
} |
void ModuleScript::RunScript(LocalFrame* frame, const SecurityOrigin*) const { |
- // TODO(hiroshige): Implement this once Modulator::ExecuteModule() is landed. |
- NOTREACHED(); |
+ fprintf(stderr, "ModuleScript: isNull=%d state=%d\n", record_.IsNull(), |
+ InstantiationState()); |
+ |
+ settings_object_->ExecuteModule(this); |
} |
String ModuleScript::InlineSourceTextForCSP() const { |