2010-11-27 5 views
1

Je suis en train d'écrire une classe wrapper autour du moteur V8 de sorte que finalement je serai capable de faire quelque chose comme çaProblème d'utilisation accesseurs dans V8

script->createClass("Test"); 
script->getClass("Test")->addFunction("funct1",testfunct1); 
script->getClass("Test")->addVariable("x",setter,getter); 

Jusqu'à présent, je peux créer des classes et ajouter des fonctions pour les et cela fonctionne parfaitement, cependant j'ai rencontré un problème avec l'ajout de variables.

Mon modèle de classe est stockée en tant que telle

Persistent<Object> classInstance; 

et je tente d'ajouter un accesseur comme ceci:

this->classInstance->SetAccessor(String::New(variableName),setter,getter); 

ce code Compiler me donne l'erreur v8 :: Object ne avoir une fonction SetAccessor (bien que j'ai vu la documentation de doxygen qui dit le contraire). Donc, ma question est: Comment puis-je résoudre ce problème? Est-il possible de convertir un objet en ObjectTemplate?

+0

Pouvez-vous nous montrer l'erreur exacte que vous voyez? Et la version V8 que vous utilisez? Je vois une méthode 'SetAccessor' sur' Object' dans la version que j'ai ici, qui est 2.5.7. –

+0

Quel genre de knuckle-head nomme son produit après un numéro de version? Oh, attendez... –

Répondre

4

SetAccessor sur Object est disponible à partir de V8 2.2.12, qui a été publié en mai 2010. (Avant cela, il était en effet uniquement disponible sur ObjectTemplate.) Vous devriez probablement mettre à jour votre copie de V8.

Questions connexes