abetomo
null+****@clear*****
Thu Sep 21 15:51:02 JST 2017
abetomo 2017-09-21 15:51:02 +0900 (Thu, 21 Sep 2017) New Revision: b341d600a5190872e9cb1b3c3c0ce979a8fd75dd https://github.com/nroonga/nroonga/commit/b341d600a5190872e9cb1b3c3c0ce979a8fd75dd Merged 5a6fc95: Merge pull request #28 from abetomo/fix_to_parse_json_with_addon Message: Fix to parse json with addon Modified files: src/nroonga.cc Modified: src/nroonga.cc (+30 -2) =================================================================== --- src/nroonga.cc 2017-09-21 14:19:18 +0900 (1575a65) +++ src/nroonga.cc 2017-09-21 15:51:02 +0900 (763f552) @@ -117,7 +117,21 @@ void Database::CommandAfter(uv_work_t* req) { argv[1] = Nan::Null(); } else { argv[0] = Nan::Null(); - argv[1] = Nan::New(baton->result, baton->result_length).ToLocalChecked(); + + v8::Local<v8::String> string = Nan::New( + baton->result, baton->result_length).ToLocalChecked(); + Nan::TryCatch tc; + Nan::JSON NanJSON; + Nan::MaybeLocal<v8::Value> parse_value = NanJSON.Parse(string); + if (tc.HasCaught()) { + argv[1] = string; + } else { + if (parse_value.IsEmpty()) { + argv[1] = string; + } else { + argv[1] = parse_value.ToLocalChecked(); + } + } } Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New<v8::Function>(baton->callback), @@ -198,7 +212,21 @@ void Database::CommandSyncString( return; } - info.GetReturnValue().Set(Nan::New(result, result_length).ToLocalChecked()); + + v8::Local<v8::String> string = Nan::New(result, + result_length).ToLocalChecked(); + Nan::TryCatch tc; + Nan::JSON NanJSON; + Nan::MaybeLocal<v8::Value> parse_value = NanJSON.Parse(string); + if (tc.HasCaught()) { + info.GetReturnValue().Set(string); + return; + } + if (parse_value.IsEmpty()) { + info.GetReturnValue().Set(string); + return; + } + info.GetReturnValue().Set(parse_value.ToLocalChecked()); } void InitNroonga(v8::Local<v8::Object> exports) { -------------- next part -------------- HTML����������������������������... URL: https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20170921/de2c5a3e/attachment-0001.htm