diff options
Diffstat (limited to 'Source/JavaScriptCore/inspector/InjectedScriptModule.cpp')
-rw-r--r-- | Source/JavaScriptCore/inspector/InjectedScriptModule.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Source/JavaScriptCore/inspector/InjectedScriptModule.cpp b/Source/JavaScriptCore/inspector/InjectedScriptModule.cpp index 52bdb46b9..f2b29d255 100644 --- a/Source/JavaScriptCore/inspector/InjectedScriptModule.cpp +++ b/Source/JavaScriptCore/inspector/InjectedScriptModule.cpp @@ -32,6 +32,8 @@ #include "config.h" #include "InjectedScriptModule.h" +#if ENABLE(INSPECTOR) + #include "InjectedScript.h" #include "InjectedScriptManager.h" #include "ScriptFunctionCall.h" @@ -54,14 +56,13 @@ void InjectedScriptModule::ensureInjected(InjectedScriptManager* injectedScriptM ensureInjected(injectedScriptManager, injectedScript); } -void InjectedScriptModule::ensureInjected(InjectedScriptManager* injectedScriptManager, const InjectedScript& injectedScript) +void InjectedScriptModule::ensureInjected(InjectedScriptManager* injectedScriptManager, InjectedScript injectedScript) { ASSERT(!injectedScript.hasNoValue()); if (injectedScript.hasNoValue()) return; // FIXME: Make the InjectedScript a module itself. - JSC::JSLockHolder locker(injectedScript.scriptState()); Deprecated::ScriptFunctionCall function(injectedScript.injectedScriptObject(), ASCIILiteral("module"), injectedScriptManager->inspectorEnvironment().functionCallHandler()); function.appendArgument(name()); bool hadException = false; @@ -73,11 +74,18 @@ void InjectedScriptModule::ensureInjected(InjectedScriptManager* injectedScriptM function.appendArgument(source()); function.appendArgument(host(injectedScriptManager, injectedScript.scriptState())); resultValue = injectedScript.callFunctionWithEvalEnabled(function, hadException); - if (hadException) { + if (hadException || (returnsObject() && (resultValue.hasNoValue() || !resultValue.isObject()))) { ASSERT_NOT_REACHED(); return; } } + + if (returnsObject()) { + Deprecated::ScriptObject moduleObject(injectedScript.scriptState(), resultValue); + initialize(moduleObject, &injectedScriptManager->inspectorEnvironment()); + } } } // namespace Inspector + +#endif // ENABLE(INSPECTOR) |