Как проверить правильность типа при вызове ObjectWrap::Unwrap в дополнении Nodejs?

У меня есть 2 класса C++, открытые как классы javascript, VanillaOption и NoomraEngine, оба наследующие от ObjectWrap.

В следующем методе в NoomraEngine я должен получить ранее "обернутый" VanillaOption:

Handle<Value> 
NoomraEngine::Price(const Arguments& args) {
    HandleScope scope;
    Local<Object> object = args[0]->ToObject(); //  VanillaOption expected in args[0] 

    VanillaOption* equityOption = ObjectWrap::Unwrap<VanillaOption>(object);

    Local<Number> x = Number::New(this->price(equityOption));
    return scope.Close(x);
}

Все работает хорошо, за исключением того, что если я передаю в метод неправильный тип, нода падает в ObjectWrap::Unwrap.

Мой вопрос в том, как я могу убедиться, что я получил правильный тип в args[0] ?

8
задан Mutix 8 March 2012 в 15:22
поделиться