{
v8::Isolate* isolate = m_scriptState->isolate();
ScriptScope scope(m_scriptState);
- m_arguments.append(ScriptValue(v8String(argument, isolate), isolate));
+ m_arguments.append(ScriptValue(v8String(isolate, argument), isolate));
}
void ScriptCallArgumentHandler::appendArgument(const char* argument)
{
v8::Isolate* isolate = m_scriptState->isolate();
ScriptScope scope(m_scriptState);
- m_arguments.append(ScriptValue(v8String(argument, isolate), isolate));
+ m_arguments.append(ScriptValue(v8String(isolate, argument), isolate));
}
void ScriptCallArgumentHandler::appendArgument(long argument)
m_arguments.append(ScriptValue(v8Boolean(argument, isolate), isolate));
}
+void ScriptCallArgumentHandler::appendArgument(const Vector<ScriptValue>& argument)
+{
+ v8::Isolate* isolate = m_scriptState->isolate();
+ ScriptScope scope(m_scriptState);
+ 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());
+ m_arguments.append(ScriptValue(result, isolate));
+}
+
ScriptFunctionCall::ScriptFunctionCall(const ScriptObject& thisObject, const String& name)
: ScriptCallArgumentHandler(thisObject.scriptState())
, m_thisObject(thisObject)
ScriptScope scope(m_scriptState, reportExceptions);
v8::Handle<v8::Object> thisObject = m_thisObject.v8Object();
- v8::Local<v8::Value> value = thisObject->Get(v8String(m_name, m_scriptState->isolate()));
+ v8::Local<v8::Value> value = thisObject->Get(v8String(m_scriptState->isolate(), m_name));
if (!scope.success()) {
hadException = true;
return ScriptValue();
ASSERT(!info[i].IsEmpty());
}
- v8::Local<v8::Value> result = V8ScriptRunner::callFunction(function, getExecutionContext(), thisObject, m_arguments.size(), info.get(), m_scriptState->isolate());
+ v8::Local<v8::Value> result = V8ScriptRunner::callFunction(function, currentExecutionContext(m_scriptState->isolate()), thisObject, m_arguments.size(), info.get(), m_scriptState->isolate());
if (!scope.success()) {
hadException = true;
return ScriptValue();
ScriptScope scope(m_scriptState, reportExceptions);
v8::Handle<v8::Object> thisObject = m_thisObject.v8Object();
- v8::Local<v8::Value> value = thisObject->Get(v8String(m_name, m_scriptState->isolate()));
+ v8::Local<v8::Value> value = thisObject->Get(v8String(m_scriptState->isolate(), m_name));
if (!scope.success()) {
hadException = true;
return ScriptObject();
ScriptValue ScriptCallback::call()
{
- ASSERT(v8::Context::InContext());
+ v8::Isolate* isolate = v8::Isolate::GetCurrent();
+ ASSERT(isolate->InContext());
ASSERT(m_function.v8Value()->IsFunction());
v8::TryCatch exceptionCatcher;
exceptionCatcher.SetVerbose(true);
- v8::Handle<v8::Object> object = v8::Context::GetCurrent()->Global();
+ v8::Handle<v8::Object> object = isolate->GetCurrentContext()->Global();
v8::Handle<v8::Function> function = v8::Handle<v8::Function>::Cast(m_function.v8Value());
OwnPtr<v8::Handle<v8::Value>[]> info = adoptArrayPtr(new v8::Handle<v8::Value>[m_arguments.size()]);