node-v8-clone
node-v8-clone copied to clipboard
Does not compile with Node 4.x
Not a surprise, must be related to a lot of internal api changes for newer V8. Unfortunately I have no experience with Node internals, so barely can do myself.
> npm install
> [email protected] install /Users/meredian/Dropbox/GitHub/jsonsem/node_modules/node-v8-clone
> node-gyp rebuild
CXX(target) Release/obj.target/clone/src/clone.o
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:335:68: error: too many arguments to function call, expected at most 2,
have 4
return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:4675:3: note: 'New' declared here
static Local<Signature> New(
^
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:417:3: error: redefinition of 'NanNew'
NanNew<v8::StringObject, v8::Handle<v8::String> >(
^
../node_modules/nan/nan.h:410:3: note: previous definition is here
NanNew<v8::StringObject, v8::Local<v8::String> >(
^
../node_modules/nan/nan.h:435:36: error: redefinition of 'NanNew'
NAN_INLINE v8::Local<v8::RegExp> NanNew(
^
../node_modules/nan/nan.h:429:36: note: previous definition is here
NAN_INLINE v8::Local<v8::RegExp> NanNew(
^
../node_modules/nan/nan.h:447:36: error: redefinition of 'NanNew'
NAN_INLINE v8::Local<v8::RegExp> NanNew(
^
../node_modules/nan/nan.h:441:36: note: previous definition is here
NAN_INLINE v8::Local<v8::RegExp> NanNew(
^
../node_modules/nan/nan.h:616:19: error: no type named 'ExternalAsciiStringResource' in 'v8::String';
did you mean 'ExternalStringResource'?
v8::String::ExternalAsciiStringResource *resource) {
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
ExternalStringResource
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:2210:19: note: 'ExternalStringResource' declared
here
class V8_EXPORT ExternalStringResource
^
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:615:36: error: redefinition of 'NanNew'
NAN_INLINE v8::Local<v8::String> NanNew(
^
../node_modules/nan/nan.h:610:36: note: previous definition is here
NAN_INLINE v8::Local<v8::String> NanNew(
^
../node_modules/nan/nan.h:630:27: error: redefinition of '_NanEscapeScopeHelper'
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:625:27: note: previous definition is here
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Handle<T> val) {
^
../node_modules/nan/nan.h:646:12: error: no matching function for call to '_NanEscapeScopeHelper'
return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
[with T = v8::Primitive]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:651:12: error: no matching function for call to '_NanEscapeScopeHelper'
return NanEscapeScope(NanNew(v8::Null(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
[with T = v8::Primitive]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:656:12: error: no matching function for call to '_NanEscapeScopeHelper'
return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
[with T = v8::Boolean]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:661:12: error: no matching function for call to '_NanEscapeScopeHelper'
return NanEscapeScope(NanNew(v8::False(v8::Isolate::GetCurrent())));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
[with T = v8::Boolean]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:878:13: error: no member named 'smalloc' in namespace 'node'
, node::smalloc::FreeCallback callback
~~~~~~^
../node_modules/nan/nan.h:889:12: error: no matching function for call to 'New'
return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
^~~~~~~~~~~~~~~~~
/Users/meredian/.node-gyp/4.0.0/include/node/node_buffer.h:31:40: note: candidate function not
viable: no known conversion from 'uint32_t' (aka 'unsigned int') to 'enum encoding' for 3rd
argument
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
^
/Users/meredian/.node-gyp/4.0.0/include/node/node_buffer.h:43:40: note: candidate function not
viable: 2nd argument ('const char *') would lose const qualifier
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
^
/Users/meredian/.node-gyp/4.0.0/include/node/node_buffer.h:28:40: note: candidate function not
viable: requires 2 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
^
/Users/meredian/.node-gyp/4.0.0/include/node/node_buffer.h:36:40: note: candidate function not
viable: requires 5 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
^
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:893:12: error: no viable conversion from 'v8::MaybeLocal<v8::Object>' to
'v8::Local<v8::Object>'
return node::Buffer::New(v8::Isolate::GetCurrent(), size);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:210:7: note: candidate constructor
(the implicit copy constructor) not viable: no known conversion from
'v8::MaybeLocal<v8::Object>' to 'const v8::Local<v8::Object> &' for 1st argument
class Local {
^
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:210:7: note: candidate constructor
(the implicit move constructor) not viable: no known conversion from
'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object> &&' for 1st argument
class Local {
^
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:214:13: note: candidate template ignored: could not
match 'Local' against 'MaybeLocal'
V8_INLINE Local(Local<S> that)
^
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:326:13: note: candidate template ignored: could not
match 'S *' against 'v8::MaybeLocal<v8::Object>'
V8_INLINE Local(S* that)
^
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:900:26: error: no member named 'Use' in namespace 'node::Buffer'
return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
~~~~~~~~~~~~~~^
../node_modules/nan/nan.h:1680:12: error: no matching function for call to '_NanEscapeScopeHelper'
return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
[with T = v8::Function]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:1767:12: error: no matching function for call to '_NanEscapeScopeHelper'
return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
[with T = v8::Object]
NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
^
../node_modules/nan/nan.h:1973:12: error: no member named 'IsExternalAscii' in 'v8::String'; did you
mean 'IsExternal'?
if (str->IsExternalAscii()) {
^~~~~~~~~~~~~~~
IsExternal
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:2174:8: note: 'IsExternal' declared here
bool IsExternal() const;
^
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:1974:23: error: no type named 'ExternalAsciiStringResource' in
'v8::String'; did you mean 'ExternalStringResource'?
const v8::String::ExternalAsciiStringResource* ext;
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
ExternalStringResource
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:2210:19: note: 'ExternalStringResource' declared
here
class V8_EXPORT ExternalStringResource
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
I am too facing the same issue when using this package with Node v4.1
The same issue with node 4.2
+1
the same issue i have with Node v4.2.1
Same with 5.0
+1 , Node v6