diff --git a/src/CoreCLREmbedding/coreclrfunc.cpp b/src/CoreCLREmbedding/coreclrfunc.cpp index 79035ca..43b35ab 100644 --- a/src/CoreCLREmbedding/coreclrfunc.cpp +++ b/src/CoreCLREmbedding/coreclrfunc.cpp @@ -16,7 +16,11 @@ NAN_METHOD(coreClrFuncProxy) DBG("coreClrFuncProxy"); Nan::EscapableHandleScope scope; v8::Local correlator = v8::Local::Cast(info[2]); +#ifdef V8_EXTERNAL_POINTER_TAG_COUNT + CoreClrFuncWrap* wrap = (CoreClrFuncWrap*)(correlator->Value(v8::kExternalPointerTypeTagDefault)); +#else CoreClrFuncWrap* wrap = (CoreClrFuncWrap*)(correlator->Value()); +#endif CoreClrFunc* clrFunc = wrap->clrFunc; info.GetReturnValue().Set(clrFunc->Call(info[0], info[1])); } diff --git a/src/CoreCLREmbedding/coreclrnodejsfuncinvokecontext.cpp b/src/CoreCLREmbedding/coreclrnodejsfuncinvokecontext.cpp index c0d3032..c49b215 100644 --- a/src/CoreCLREmbedding/coreclrnodejsfuncinvokecontext.cpp +++ b/src/CoreCLREmbedding/coreclrnodejsfuncinvokecontext.cpp @@ -6,7 +6,11 @@ NAN_METHOD(coreClrV8FuncCallback) Nan::HandleScope scope; v8::Local correlator = v8::Local::Cast(info[2]); +#ifdef V8_EXTERNAL_POINTER_TAG_COUNT + CoreClrNodejsFuncInvokeContext* context = (CoreClrNodejsFuncInvokeContext*)(correlator->Value(v8::kExternalPointerTypeTagDefault)); +#else CoreClrNodejsFuncInvokeContext* context = (CoreClrNodejsFuncInvokeContext*)(correlator->Value()); +#endif if (!info[0]->IsUndefined() && !info[0]->IsNull()) { diff --git a/src/dotnet/clrfunc.cpp b/src/dotnet/clrfunc.cpp index a1d0fab..51cdd2c 100644 --- a/src/dotnet/clrfunc.cpp +++ b/src/dotnet/clrfunc.cpp @@ -12,7 +12,11 @@ NAN_METHOD(clrFuncProxy) DBG("clrFuncProxy"); Nan::HandleScope scope; v8::Local correlator = v8::Local::Cast(info[2]); +#ifdef V8_EXTERNAL_POINTER_TAG_COUNT + ClrFuncWrap* wrap = (ClrFuncWrap*)(correlator->Value(v8::kExternalPointerTypeTagDefault)); +#else ClrFuncWrap* wrap = (ClrFuncWrap*)(correlator->Value()); +#endif ClrFunc^ clrFunc = wrap->clrFunc; info.GetReturnValue().Set(clrFunc->Call(info[0], info[1])); } diff --git a/src/dotnet/nodejsfuncinvokecontext.cpp b/src/dotnet/nodejsfuncinvokecontext.cpp index 0b1ae80..108f06b 100644 --- a/src/dotnet/nodejsfuncinvokecontext.cpp +++ b/src/dotnet/nodejsfuncinvokecontext.cpp @@ -21,7 +21,11 @@ NAN_METHOD(v8FuncCallback) DBG("v8FuncCallback"); Nan::HandleScope scope; v8::Local correlator = v8::Local::Cast(info[2]); +#ifdef V8_EXTERNAL_POINTER_TAG_COUNT + NodejsFuncInvokeContextWrap* wrap = (NodejsFuncInvokeContextWrap*)(correlator->Value(v8::kExternalPointerTypeTagDefault)); +#else NodejsFuncInvokeContextWrap* wrap = (NodejsFuncInvokeContextWrap*)(correlator->Value()); +#endif NodejsFuncInvokeContext^ context = wrap->context; wrap->context = nullptr; if (!info[0]->IsUndefined() && !info[0]->IsNull()) diff --git a/src/mono/clrfunc.cpp b/src/mono/clrfunc.cpp index 8f2b4b4..4f620c8 100644 --- a/src/mono/clrfunc.cpp +++ b/src/mono/clrfunc.cpp @@ -21,7 +21,11 @@ NAN_METHOD(clrFuncProxy) DBG("clrFuncProxy"); Nan::HandleScope scope; v8::Local correlator = v8::Local::Cast(info[2]); +#ifdef V8_EXTERNAL_POINTER_TAG_COUNT + ClrFuncWrap* wrap = (ClrFuncWrap*)(correlator->Value(v8::kExternalPointerTypeTagDefault)); +#else ClrFuncWrap* wrap = (ClrFuncWrap*)(correlator->Value()); +#endif ClrFunc* clrFunc = wrap->clrFunc; info.GetReturnValue().Set(clrFunc->Call(info[0], info[1])); } diff --git a/src/mono/nodejsfuncinvokecontext.cpp b/src/mono/nodejsfuncinvokecontext.cpp index 2b5de74..67415ce 100644 --- a/src/mono/nodejsfuncinvokecontext.cpp +++ b/src/mono/nodejsfuncinvokecontext.cpp @@ -5,7 +5,11 @@ NAN_METHOD(v8FuncCallback) DBG("v8FuncCallback"); Nan::HandleScope scope; v8::Local correlator = v8::Local::Cast(info[2]); +#ifdef V8_EXTERNAL_POINTER_TAG_COUNT + NodejsFuncInvokeContext* context = (NodejsFuncInvokeContext*)(correlator->Value(v8::kExternalPointerTypeTagDefault)); +#else NodejsFuncInvokeContext* context = (NodejsFuncInvokeContext*)(correlator->Value()); +#endif if (!info[0]->IsUndefined() && !info[0]->IsNull()) { context->Complete((MonoObject*)exceptionV82stringCLR(info[0]), NULL);