%insert(runtime) %{ /** * Creates a class template for a class without extra initialization function. */ v8::Persistent SWIGV8_CreateClassTemplate(const char* symbol) { v8::Local class_templ = v8::FunctionTemplate::New(); class_templ->SetClassName(v8::String::NewSymbol(symbol)); v8::Handle inst_templ = class_templ->InstanceTemplate(); inst_templ->SetInternalFieldCount(1); return v8::Persistent::New(class_templ); } /** * Creates a class template for a class with specified initialization function. */ v8::Persistent SWIGV8_CreateClassTemplate(const char* symbol, v8::InvocationCallback _func) { v8::Local class_templ = v8::FunctionTemplate::New(_func); class_templ->SetClassName(v8::String::NewSymbol(symbol)); v8::Handle inst_templ = class_templ->InstanceTemplate(); inst_templ->SetInternalFieldCount(1); return v8::Persistent::New(class_templ); } v8::Handle SWIGV8_CreateNamespace(const char* name, v8::Handle parentContext) { Handle namespace = ObjectTemplate::New(); } /** * Sets the pimpl data of a V8 class. */ v8::Handle SWIGV8_SetInstance(const v8::Arguments& args, void* data) { v8::HandleScope scope; v8::Handle self = args.Holder(); self->SetInternalField(0, v8::External::New(data)); return self; } /** * Registers a class method with given name for a given class template. */ void SWIGV8_AddClassMethod(v8::Handle class_templ, const char* symbol, v8::InvocationCallback _func) { v8::Handle proto_templ = class_templ->PrototypeTemplate(); proto_templ->Set(v8::String::NewSymbol(symbol), v8::FunctionTemplate::New(_func)); } /** * Registers a class method with given name for a given class template. */ void SWIGV8_AddGlobalMethod(v8::Handle obj_templ, const char* symbol, v8::InvocationCallback _func) { obj_templ->Set(String::NewSymbol(symbol), v8::FunctionTemplate::New(_func)->GetFunction()); } /** * Registers a class property with given name for a given class template. */ void SWIGV8_AddClassVariable(v8::Handle class_templ, const char* symbol, v8::AccessorGetter getter, v8::AccessorSetter setter) { v8::Handle proto_templ = class_templ->InstanceTemplate(); proto_templ->SetAccessor(v8::String::NewSymbol(symbol), getter, setter); } /** * Registers a class method with given name for a given class template. */ void SWIGV8_AddGlobalVariable(v8::Handle obj_templ, const char* symbol, v8::AccessorGetter getter, v8::AccessorSetter setter) { obj_templ->SetAccessor(String::NewSymbol(symbol), getter, setter); } %} // v8_helper_functions