namespace WebCore {
-v8::Local<v8::Object> V8ObjectConstructor::newInstance(v8::Handle<v8::Function> function)
+v8::Local<v8::Object> V8ObjectConstructor::newInstance(v8::Isolate* isolate, v8::Handle<v8::Function> function)
{
if (function.IsEmpty())
return v8::Local<v8::Object>();
- ConstructorMode constructorMode;
- return V8ScriptRunner::instantiateObject(function);
+ ConstructorMode constructorMode(isolate);
+ return V8ScriptRunner::instantiateObject(isolate, function);
}
-v8::Local<v8::Object> V8ObjectConstructor::newInstance(v8::Handle<v8::ObjectTemplate> objectTemplate)
-{
- if (objectTemplate.IsEmpty())
- return v8::Local<v8::Object>();
- ConstructorMode constructorMode;
- return V8ScriptRunner::instantiateObject(objectTemplate);
-}
-
-v8::Local<v8::Object> V8ObjectConstructor::newInstance(v8::Handle<v8::Function> function, int argc, v8::Handle<v8::Value> argv[])
+v8::Local<v8::Object> V8ObjectConstructor::newInstance(v8::Isolate* isolate, v8::Handle<v8::Function> function, int argc, v8::Handle<v8::Value> argv[])
{
if (function.IsEmpty())
return v8::Local<v8::Object>();
- ConstructorMode constructorMode;
- return V8ScriptRunner::instantiateObject(function, argc, argv);
+ ConstructorMode constructorMode(isolate);
+ return V8ScriptRunner::instantiateObject(isolate, function, argc, argv);
}
-v8::Local<v8::Object> V8ObjectConstructor::newInstanceInDocument(v8::Handle<v8::Function> function, int argc, v8::Handle<v8::Value> argv[], Document* document)
+v8::Local<v8::Object> V8ObjectConstructor::newInstanceInDocument(v8::Isolate* isolate, v8::Handle<v8::Function> function, int argc, v8::Handle<v8::Value> argv[], Document* document)
{
if (function.IsEmpty())
return v8::Local<v8::Object>();
- return V8ScriptRunner::instantiateObjectInDocument(function, document, argc, argv);
+ return V8ScriptRunner::instantiateObjectInDocument(isolate, function, document, argc, argv);
}
void V8ObjectConstructor::isValidConstructorMode(const v8::FunctionCallbackInfo<v8::Value>& info)
{
- if (ConstructorMode::current() == ConstructorMode::CreateNewObject) {
+ if (ConstructorMode::current(info.GetIsolate()) == ConstructorMode::CreateNewObject) {
throwTypeError("Illegal constructor", info.GetIsolate());
return;
}