Doesn't compile on latest V8
Daniel15 opened this issue · comments
Daniel Lo Nigro commented
I get several compilation errors when I try to build vroomjs. I've tried both with your version and with Mike Russell's slightly newer fork.
Building: libvroomjs (Debug)
Performing main compilation...
Precompiling headers
Compiling source to object files
g++ -MMD "/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp" -g -fPIC -Wall -O0 -DDEBUG -DMONODEVELOP -I"/Users/danlo/src/vroomjs/libvroomjs/obj/Debug/prec/Debug" -c -o "/Users/danlo/src/vroomjs/build/Debug/jsengine.o"
In file included from /Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:3:
In file included from /Users/danlo/src/vroomjs/libvroomjs/vroomjs.h:29:
In file included from /Users/danlo/src/v8/src/v8.h:62:
/Users/danlo/src/v8/src/objects-inl.h:6021:7: error: use of undeclared identifier 'ElementsAreSafeToExamine'
if (ElementsAreSafeToExamine()) {
^
In file included from /Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:3:
/Users/danlo/src/vroomjs/libvroomjs/vroomjs.h:196:38: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'?
jsvalue ArrayFromArguments(const Arguments& args);
^~~~~~~~~
v8::internal::Arguments
/Users/danlo/src/v8/src/v8globals.h:112:7: note: 'v8::internal::Arguments' declared here
class Arguments;
^
In file included from /Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:3:
/Users/danlo/src/vroomjs/libvroomjs/vroomjs.h:225:32: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'?
Handle<Value> Invoke(const Arguments& args);
^~~~~~~~~
v8::internal::Arguments
/Users/danlo/src/v8/src/v8globals.h:112:7: note: 'v8::internal::Arguments' declared here
class Arguments;
^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:12:17: error: calling a protected constructor of class 'v8::HandleScope'
HandleScope scope;
^
/Users/danlo/src/v8/src/../include/v8.h:845:13: note: declared protected here
V8_INLINE HandleScope() {}
^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:15:54: error: member reference type 'Persistent<v8::Object>' is not a pointer; maybe you meant to use '.'?
Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
~~~~^~
.
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:15:56: error: no member named 'GetInternalField' in 'v8::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >'
Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:17:12: error: no member named 'Dispose' in 'v8::Persistent<v8::Value, v8::NonCopyablePersistentTraits<v8::Value> >'
object.Dispose();
~~~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:20:65: error: unknown type name 'AccessorInfo'; did you mean 'v8::internal::AccessorInfo'?
static Handle<Value> managed_prop_get(Local<String> name, const AccessorInfo& info)
^~~~~~~~~~~~
v8::internal::AccessorInfo
/Users/danlo/src/v8/src/objects.h:10115:7: note: 'v8::internal::AccessorInfo' declared here
class AccessorInfo: public Struct {
^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:25:17: error: calling a protected constructor of class 'v8::HandleScope'
HandleScope scope;
^
/Users/danlo/src/v8/src/../include/v8.h:845:13: note: declared protected here
V8_INLINE HandleScope() {}
^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:27:31: error: no member named 'Holder' in 'v8::internal::AccessorInfo'
Local<Object> self = info.Holder();
~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:30:18: error: no member named 'Close' in 'v8::HandleScope'
return scope.Close(ref->GetPropertyValue(name));
~~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:33:85: error: unknown type name 'AccessorInfo'; did you mean 'v8::internal::AccessorInfo'?
static Handle<Value> managed_prop_set(Local<String> name, Local<Value> value, const AccessorInfo& info)
^~~~~~~~~~~~
v8::internal::AccessorInfo
/Users/danlo/src/v8/src/objects.h:10115:7: note: 'v8::internal::AccessorInfo' declared here
class AccessorInfo: public Struct {
^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:38:17: error: calling a protected constructor of class 'v8::HandleScope'
HandleScope scope;
^
/Users/danlo/src/v8/src/../include/v8.h:845:13: note: declared protected here
V8_INLINE HandleScope() {}
^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:40:31: error: no member named 'Holder' in 'v8::internal::AccessorInfo'
Local<Object> self = info.Holder();
~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:43:18: error: no member named 'Close' in 'v8::HandleScope'
return scope.Close(ref->SetPropertyValue(name, value));
~~~~~ ^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:46:41: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'?
static Handle<Value> managed_call(const Arguments& args)
^~~~~~~~~
v8::internal::Arguments
/Users/danlo/src/v8/src/v8globals.h:112:7: note: 'v8::internal::Arguments' declared here
class Arguments;
^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:51:17: error: calling a protected constructor of class 'v8::HandleScope'
HandleScope scope;
^
/Users/danlo/src/v8/src/../include/v8.h:845:13: note: declared protected here
V8_INLINE HandleScope() {}
^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:53:30: error: member access into incomplete type 'const v8::internal::Arguments'
Local<Object> self = args.Holder();
^
/Users/danlo/src/v8/src/../include/v8.h:149:7: note: forward declaration of 'v8::internal::Arguments'
class Arguments;
^
/Users/danlo/src/vroomjs/libvroomjs/jsengine.cpp:56:18: error: no member named 'Close' in 'v8::HandleScope'
return scope.Close(ref->Invoke(args));
~~~~~ ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Build complete -- 19 errors, 10 warnings
---------------------- Done ----------------------
Build: 19 errors, 10 warnings