// 初期化用 void TJSInstance::init(Isolate *isolate, Local<ObjectTemplate> &globalTemplate) { HandleScope handle_scope(isolate); // ネイティブインスタンス登録用クラスID記録 classId = TJSRegisterNativeClass(L"JavascriptClass"); // メソッドを登録 globalTemplate->Set(String::NewFromUtf8(isolate, "createTJSClass"), FunctionTemplate::New(isolate, createTJSClass)); }
// 初期化用 void TJSObject::init(HSQUIRRELVM vm) { // squirrel インスタンスを TJS側で保持するためのIDを取得 classId = TJSRegisterNativeClass(L"SquirrelClass"); // TJSObjectクラスを定義 SQTemplate<TJSObject, sqobject::Object> cls(vm); // メソッド登録 sq_pushroottable(vm); sq_pushstring(vm, _SC("createTJSClass"), -1); sq_newclosure(vm, createTJSClass, 0); sq_createslot(vm, -3); sq_pushstring(vm, _SC("tjsNull"), -1); sq_pushuserpointer(vm, NULL); sq_createslot(vm, -3); sq_pop(vm, 1); }