@@ -894,11 +894,11 @@ NAN_METHOD(Java::newByte) {
894894 return Nan::ThrowError (Nan::TypeError (" Argument 1 must be a number" ));
895895 }
896896
897- v8::Local<v8::Number> val = info[0 ]-> ToNumber ();
897+ jbyte val = Nan::To< int32_t >( info[0 ]). FromJust ();
898898
899899 jclass clazz = env->FindClass (" java/lang/Byte" );
900900 jmethodID constructor = env->GetMethodID (clazz, " <init>" , " (B)V" );
901- jobject newObj = env->NewObject (clazz, constructor, (jbyte) val-> Value () );
901+ jobject newObj = env->NewObject (clazz, constructor, val);
902902
903903 info.GetReturnValue ().Set (JavaObject::New (self, newObj));
904904 return ;
@@ -924,11 +924,11 @@ NAN_METHOD(Java::newShort) {
924924 return Nan::ThrowError (Nan::TypeError (" Argument 1 must be a number" ));
925925 }
926926
927- v8::Local<v8::Number> val = info[0 ]-> ToNumber ();
927+ jshort val = Nan::To< int32_t >( info[0 ]). FromJust ();
928928
929929 jclass clazz = env->FindClass (" java/lang/Short" );
930930 jmethodID constructor = env->GetMethodID (clazz, " <init>" , " (S)V" );
931- jobject newObj = env->NewObject (clazz, constructor, (jshort) val-> Value () );
931+ jobject newObj = env->NewObject (clazz, constructor, val);
932932
933933 info.GetReturnValue ().Set (JavaObject::New (self, newObj));
934934}
@@ -953,11 +953,11 @@ NAN_METHOD(Java::newLong) {
953953 return Nan::ThrowError (Nan::TypeError (" Argument 1 must be a number" ));
954954 }
955955
956- v8::Local<v8::Number> val = info[0 ]-> ToNumber ();
956+ jlong val = Nan::To< int64_t >( info[0 ]). FromJust ();
957957
958958 jclass clazz = env->FindClass (" java/lang/Long" );
959959 jmethodID constructor = env->GetMethodID (clazz, " <init>" , " (J)V" );
960- jobject newObj = env->NewObject (clazz, constructor, (jlong) val-> Value () );
960+ jobject newObj = env->NewObject (clazz, constructor, val);
961961
962962 info.GetReturnValue ().Set (JavaObject::New (self, newObj));
963963}
@@ -980,8 +980,7 @@ NAN_METHOD(Java::newChar) {
980980 // argument - value
981981 jchar charVal;
982982 if (info[0 ]->IsNumber ()) {
983- v8::Local<v8::Number> val = info[0 ]->ToNumber ();
984- charVal = (jchar)val->Value ();
983+ charVal = (jchar)Nan::To<int32_t >(info[0 ]).FromJust ();
985984 } else if (info[0 ]->IsString ()) {
986985 v8::Local<v8::String> val = info[0 ]->ToString ();
987986 if (val->Length () != 1 ) {
@@ -1016,11 +1015,11 @@ NAN_METHOD(Java::newFloat) {
10161015 } else if (!info[0 ]->IsNumber ()) {
10171016 return Nan::ThrowError (Nan::TypeError (" Argument 1 must be a number" ));
10181017 }
1019- v8::Local<v8::Number> val = info[0 ]-> ToNumber ();
1018+ jfloat val = (jfloat)Nan::To< double >( info[0 ]). FromJust ();
10201019
10211020 jclass clazz = env->FindClass (" java/lang/Float" );
10221021 jmethodID constructor = env->GetMethodID (clazz, " <init>" , " (F)V" );
1023- jobject newObj = env->NewObject (clazz, constructor, (jfloat) val-> Value () );
1022+ jobject newObj = env->NewObject (clazz, constructor, val);
10241023
10251024 info.GetReturnValue ().Set (JavaObject::New (self, newObj));
10261025}
@@ -1041,11 +1040,12 @@ NAN_METHOD(Java::newDouble) {
10411040 } else if (!info[0 ]->IsNumber ()) {
10421041 return Nan::ThrowError (Nan::TypeError (" Argument 1 must be a number" ));
10431042 }
1044- v8::Local<v8::Number> val = info[0 ]->ToNumber ();
1043+
1044+ jdouble val = (jdouble)Nan::To<double >(info[0 ]).FromJust ();
10451045
10461046 jclass clazz = env->FindClass (" java/lang/Double" );
10471047 jmethodID constructor = env->GetMethodID (clazz, " <init>" , " (D)V" );
1048- jobject newObj = env->NewObject (clazz, constructor, (jdouble) val-> Value () );
1048+ jobject newObj = env->NewObject (clazz, constructor, val);
10491049
10501050 info.GetReturnValue ().Set (JavaObject::New (self, newObj));
10511051}
@@ -1260,18 +1260,14 @@ void EIO_AfterCallJs(uv_work_t* req) {
12601260 argv[i] = v8Args->Get (i);
12611261 }
12621262
1263- v8::TryCatch tryCatch;
1263+ Nan::TryCatch tryCatch;
1264+ tryCatch.SetCaptureMessage (true );
12641265 v8Result = fn->Call (dynamicProxyDataFunctions, argc, argv);
12651266 delete[] argv;
12661267 if (tryCatch.HasCaught ()) {
12671268 dynamicProxyData->throwableClass = " node/NodeJsException" ;
1268- v8::String::Utf8Value stackTrace (tryCatch.StackTrace ());
1269- if (stackTrace.length () > 0 ) {
1270- dynamicProxyData->throwableMessage = std::string (*stackTrace);
1271- } else {
1272- v8::String::Utf8Value exception (tryCatch.Exception ());
1273- dynamicProxyData->throwableMessage = std::string (*exception);
1274- }
1269+ v8::String::Utf8Value message (tryCatch.Message ()->Get ());
1270+ dynamicProxyData->throwableMessage = std::string (*message);
12751271 tryCatch.Reset ();
12761272 dynamicProxyData->done = DYNAMIC_PROXY_JS_ERROR;
12771273 return ;
0 commit comments