Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(410)

Unified Diff: Source/bindings/core/v8/ScriptFunctionCall.cpp

Issue 404953003: DevTools: Async call stacks for window.postMessage() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/bindings/core/v8/ScriptFunctionCall.cpp
diff --git a/Source/bindings/core/v8/ScriptFunctionCall.cpp b/Source/bindings/core/v8/ScriptFunctionCall.cpp
index 4f4af8f0f0f174e5af1483b8de97f91eab205e2e..02742942d6fc1e0b27fa466852c53344e199eec9 100644
--- a/Source/bindings/core/v8/ScriptFunctionCall.cpp
+++ b/Source/bindings/core/v8/ScriptFunctionCall.cpp
@@ -45,7 +45,7 @@ namespace blink {
void ScriptCallArgumentHandler::appendArgument(const ScriptValue& argument)
{
if (argument.scriptState() != m_scriptState) {
- ASSERT_NOT_REACHED();
+ appendArgument();
yurys 2014/07/21 12:45:32 Looks like it should be done in a separate patch.
aandrey 2014/07/22 11:08:43 Done. Extracted to http://crrev.com/412443002
return;
}
m_arguments.append(argument);
@@ -111,11 +111,21 @@ void ScriptCallArgumentHandler::appendArgument(const Vector<ScriptValue>& argume
v8::Isolate* isolate = m_scriptState->isolate();
ScriptState::Scope scope(m_scriptState.get());
v8::Handle<v8::Array> result = v8::Array::New(isolate, argument.size());
- for (size_t i = 0; i < argument.size(); ++i)
- result->Set(v8::Integer::New(isolate, i), argument[i].v8Value());
+ for (size_t i = 0; i < argument.size(); ++i) {
+ if (argument[i].scriptState() != m_scriptState)
+ result->Set(v8::Integer::New(isolate, i), v8::Undefined(isolate));
+ else
+ result->Set(v8::Integer::New(isolate, i), argument[i].v8Value());
+ }
m_arguments.append(ScriptValue(m_scriptState.get(), result));
}
+void ScriptCallArgumentHandler::appendArgument()
+{
+ v8::Isolate* isolate = m_scriptState->isolate();
+ m_arguments.append(ScriptValue(m_scriptState.get(), v8::Undefined(isolate)));
+}
+
ScriptFunctionCall::ScriptFunctionCall(const ScriptValue& thisObject, const String& name)
: ScriptCallArgumentHandler(thisObject.scriptState())
, m_thisObject(thisObject)

Powered by Google App Engine
This is Rietveld 408576698