Я помогаю с PR для узла-дерева-ситтера . Я впервые играю с привязками nodejs C ++.
Я сталкиваюсь с ситуацией, когда вызов Nan::NanInstance()
всегда возвращает пустой объект, даже если вызывается функция конструктора.
Вот что у меня есть https://github.com/bdurrani/node-tree-sitter/blob/08c1c3e4a36ed2a44b615292bf7c9894f8b2838c/src/tree.cc#L64
Tree :: NewInstance () получает указатель дерева. Вызов Nan :: NewInstance () работает. Я могу подтвердить, что Tree :: New () вызван и аргументы к нему были переданы правильно, сравнивая значения указателя.
Но по какой-то причине возвращаемое значение из Nan::NewInstance()
возвращает пустой объект.
В качестве теста я посмотрел примеры узла-аддона и изменил образец, чтобы он следовал шаблону в Tree-Sitter https://github.com/bdurrani/node-addon-examples/blob/f423f0390bd547230f56207bab3db279ea707289/6_object_wrap/nan/one.cc#L16
One::NewInstance()
получает указатель на некоторый класс C ++Вызывается его конструктор, и на этот раз возвращаемое значение из Nan::NewInstance()
возвращает не пустой объект. Код практически идентичен.
Раньше я мало играл с привязками узлов. Любая идея, как бы я отлаживал с помощью NewInstance()
, возвращает пустой объект. Я не вижу никаких ошибок или чего-либо происходящего.
Вы можете увидеть мои изменения в ветке здесь: https://github.com/bdurrani/node-tree-sitter/tree/node-12-test/src
У кого-нибудь есть предложения? Я просто пытаюсь понять, как отладить проблему, подобную этой. Кажется, что-то происходит со времени, когда Tree::New()
возвращается, и я каким-то образом получаю пустой объект.