Skip to content

Commit 268f6d1

Browse files
committed
Fix V8 deprecation compilation and other warnings
1 parent f4889fb commit 268f6d1

11 files changed

+192
-107
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ This release is currently under development.
8181
- Improved the statement error white list to avoid unnecessarily
8282
dropping statements from the statement cache (ODPI-C change).
8383

84+
- Made internal changes to fix V8 deprecation compilation warnings
85+
with Node.js 10.12, and fixed other static analysis warnings.
86+
8487
## node-oracledb v3.0.1 (15 Nov 2018)
8588

8689
- Improve validation for SODA `createDocument()` arguments.

src/njsCommon.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* Copyright (c) 2015, 2018, Oracle and/or its affiliates.
1+
/* Copyright (c) 2015, 2019, Oracle and/or its affiliates.
22
All rights reserved. */
33

44
/******************************************************************************
@@ -213,9 +213,11 @@ void njsBaton::CheckJSException(Nan::TryCatch *tryCatch)
213213
{
214214
if (tryCatch->HasCaught()) {
215215
Local<String> message = tryCatch->Message()->Get();
216-
Nan::Utf8String v8str(message->ToString());
217-
error = std::string(*v8str, static_cast<size_t>(v8str.length()));
218-
tryCatch->Reset();
216+
Nan::Utf8String v8str(message);
217+
if (v8str.length () > 0) {
218+
error = std::string(*v8str, static_cast<size_t>(v8str.length()));
219+
tryCatch->Reset();
220+
}
219221
}
220222
}
221223

@@ -377,7 +379,7 @@ void njsBaton::AsyncAfterWorkCallback(uv_work_t *req, int status)
377379
callbackArgs[0] = v8::Exception::Error(Nan::New<v8::String>(
378380
baton->error).ToLocalChecked());
379381
if (baton->dpiError) {
380-
errorObj = callbackArgs[0]->ToObject();
382+
errorObj = callbackArgs[0].As<Object>();
381383
Nan::Set(errorObj,
382384
Nan::New<v8::String>("errorNum").ToLocalChecked(),
383385
Nan::New<v8::Number>(baton->errorInfo.code));
@@ -590,8 +592,8 @@ bool njsBaton::GetBoolFromJSON(Local<Object> obj, const char *key, int index,
590592

591593
/* Undefined implies value not provided or equivalent */
592594
if (!jsValue->IsUndefined()) {
593-
if(jsValue->IsBoolean()) {
594-
*value = jsValue->ToBoolean()->Value();
595+
if (jsValue->IsBoolean()) {
596+
*value = jsValue.As<Boolean>()->Value();
595597
} else {
596598
error = njsMessages::Get(errInvalidPropertyValueInParam, key,
597599
index + 1);
@@ -821,7 +823,7 @@ bool njsCommon::GetObjectArg(Nan::NAN_METHOD_ARGS_TYPE args,
821823
Nan::ThrowError(errMsg.c_str());
822824
return false;
823825
}
824-
value = scope.Escape(args[index]->ToObject());
826+
value = scope.Escape(args[index].As<Object>());
825827
return true;
826828
}
827829

@@ -840,7 +842,7 @@ bool njsCommon::GetStringArg(Nan::NAN_METHOD_ARGS_TYPE args,
840842
Nan::ThrowError(errMsg.c_str());
841843
return false;
842844
}
843-
Nan::Utf8String utf8str(args[index]->ToString());
845+
Nan::Utf8String utf8str(args[index].As<String>());
844846
value = std::string(*utf8str, static_cast<size_t>(utf8str.length()));
845847
return true;
846848
}
@@ -877,7 +879,7 @@ bool njsCommon::SetPropBool(Local<Value> value, bool *valuePtr,
877879
Nan::ThrowError(errMsg.c_str());
878880
return false;
879881
}
880-
*valuePtr = value->ToBoolean()->Value();
882+
*valuePtr = value.As<v8::Boolean>()->Value();
881883
return true;
882884
}
883885

@@ -935,7 +937,7 @@ bool njsCommon::SetPropString(Local<Value> value, std::string *valuePtr,
935937
Nan::ThrowError(errMsg.c_str());
936938
return false;
937939
}
938-
Nan::Utf8String utfstr(value->ToString());
940+
Nan::Utf8String utfstr(value.As<String>());
939941
*valuePtr = std::string(*utfstr, static_cast<size_t>(utfstr.length()));
940942
return true;
941943
}

0 commit comments

Comments
 (0)