This source file includes following definitions.
- newInstance
- newInstance
- newInstanceInDocument
- isValidConstructorMode
#include "config.h"
#include "bindings/v8/V8ObjectConstructor.h"
#include "bindings/v8/V8Binding.h"
#include "bindings/v8/V8ScriptRunner.h"
#include "core/dom/Document.h"
#include "core/frame/LocalFrame.h"
#include "platform/TraceEvent.h"
namespace WebCore {
v8::Local<v8::Object> V8ObjectConstructor::newInstance(v8::Isolate* isolate, v8::Handle<v8::Function> function)
{
if (function.IsEmpty())
return v8::Local<v8::Object>();
ConstructorMode constructorMode(isolate);
return V8ScriptRunner::instantiateObject(isolate, function);
}
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(isolate);
return V8ScriptRunner::instantiateObject(isolate, function, argc, argv);
}
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(isolate, function, document, argc, argv);
}
void V8ObjectConstructor::isValidConstructorMode(const v8::FunctionCallbackInfo<v8::Value>& info)
{
if (ConstructorMode::current(info.GetIsolate()) == ConstructorMode::CreateNewObject) {
throwTypeError("Illegal constructor", info.GetIsolate());
return;
}
v8SetReturnValue(info, info.This());
}
}