|
|
|
@ -499,25 +499,23 @@ tag::~tag() { |
|
|
|
|
delete ops; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Local<Value> GetTagNodeValue(void *tag) { |
|
|
|
|
EscapableHandleScope scope; |
|
|
|
|
void CompleteTag(void *tag, const char *error_message) { |
|
|
|
|
HandleScope scope; |
|
|
|
|
struct tag *tag_struct = reinterpret_cast<struct tag *>(tag); |
|
|
|
|
Local<Object> tag_obj = Nan::New<Object>(); |
|
|
|
|
for (vector<unique_ptr<Op> >::iterator it = tag_struct->ops->begin(); |
|
|
|
|
it != tag_struct->ops->end(); ++it) { |
|
|
|
|
Op *op_ptr = it->get(); |
|
|
|
|
Nan::Set(tag_obj, op_ptr->GetOpType(), op_ptr->GetNodeValue()); |
|
|
|
|
Callback *callback = tag_struct->callback; |
|
|
|
|
if (error_message == NULL) { |
|
|
|
|
Local<Object> tag_obj = Nan::New<Object>(); |
|
|
|
|
for (vector<unique_ptr<Op> >::iterator it = tag_struct->ops->begin(); |
|
|
|
|
it != tag_struct->ops->end(); ++it) { |
|
|
|
|
Op *op_ptr = it->get(); |
|
|
|
|
Nan::Set(tag_obj, op_ptr->GetOpType(), op_ptr->GetNodeValue()); |
|
|
|
|
} |
|
|
|
|
Local<Value> argv[] = {Nan::Null(), tag_obj}; |
|
|
|
|
callback->Call(2, argv); |
|
|
|
|
} else { |
|
|
|
|
Local<Value> argv[] = {Nan::Error(error_message)}; |
|
|
|
|
callback->Call(1, argv); |
|
|
|
|
} |
|
|
|
|
return scope.Escape(tag_obj); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Callback *GetTagCallback(void *tag) { |
|
|
|
|
struct tag *tag_struct = reinterpret_cast<struct tag *>(tag); |
|
|
|
|
return tag_struct->callback; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void CompleteTag(void *tag) { |
|
|
|
|
struct tag *tag_struct = reinterpret_cast<struct tag *>(tag); |
|
|
|
|
bool is_final_op = false; |
|
|
|
|
if (tag_struct->call == NULL) { |
|
|
|
|
return; |
|
|
|
|