Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails to build on Node 12.0.0 #409

Closed
nex3 opened this issue Apr 23, 2019 · 5 comments
Closed

Fails to build on Node 12.0.0 #409

nex3 opened this issue Apr 23, 2019 · 5 comments

Comments

@nex3
Copy link

nex3 commented Apr 23, 2019

Just running npm install -g fibers on Node 12.0.0 is enough to trigger the issue.

Build errors
make: Entering directory '/home/nweiz/.nvm/versions/node/v12.0.0/lib/node_modules/fibers/build'
  CXX(target) Release/obj.target/fibers/src/fibers.o
../src/fibers.cc:68:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<String> NewLatin1String(Isolate* isolate, const char* string) {
  ^~~~~~
  rand_r
../src/fibers.cc:72:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<String> NewLatin1Symbol(Isolate* isolate, const char* string) {
  ^~~~~~
  rand_r
../src/fibers.cc:94:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Object> NewInstance(Isolate* isolate, Local<Function> fn, int argc, Local<Value> argv[]) {
  ^~~~~~
  rand_r
../src/fibers.cc:104:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Number> ToNumber(Local<Value> value) {
  ^~~~~~
  rand_r
../src/fibers.cc:114:50: error: ‘Handle’ has not been declared
  Local<Value> GetStackTrace(TryCatch* try_catch, Handle<Context> context) {
                                                  ^~~~~~
../src/fibers.cc:114:56: error: expected ‘,’ or ‘...’ before ‘<’ token
  Local<Value> GetStackTrace(TryCatch* try_catch, Handle<Context> context) {
                                                        ^
../src/fibers.cc: In function ‘v8::Local<v8::Value> uni::GetStackTrace(uni::TryCatch*, int)’:
../src/fibers.cc:115:32: error: ‘context’ was not declared in this scope
   return try_catch->StackTrace(context).ToLocalChecked();
                                ^~~~~~~
../src/fibers.cc:115:32: note: suggested alternative: ‘ucontext’
   return try_catch->StackTrace(context).ToLocalChecked();
                                ^~~~~~~
                                ucontext
../src/fibers.cc: At global scope:
../src/fibers.cc:127:39: error: ‘Handle’ has not been declared
  void fixStackLimit(Isolate* isolate, Handle<Context> context) {
                                       ^~~~~~
../src/fibers.cc:127:45: error: expected ‘,’ or ‘...’ before ‘<’ token
  void fixStackLimit(Isolate* isolate, Handle<Context> context) {
                                             ^
../src/fibers.cc: In function ‘void uni::fixStackLimit(v8::Isolate*, int)’:
../src/fibers.cc:128:19: error: ‘context’ was not declared in this scope
   Script::Compile(context, uni::NewLatin1String(isolate, "void 0;")).ToLocalChecked();
                   ^~~~~~~
../src/fibers.cc:128:19: note: suggested alternative: ‘ucontext’
   Script::Compile(context, uni::NewLatin1String(isolate, "void 0;")).ToLocalChecked();
                   ^~~~~~~
                   ucontext
../src/fibers.cc:128:33: error: ‘NewLatin1String’ is not a member of ‘uni’
   Script::Compile(context, uni::NewLatin1String(isolate, "void 0;")).ToLocalChecked();
                                 ^~~~~~~~~~~~~~~
../src/fibers.cc: At global scope:
../src/fibers.cc:149:58: error: ‘Handle’ has not been declared
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
                                                          ^~~~~~
../src/fibers.cc:149:64: error: expected ‘,’ or ‘...’ before ‘<’ token
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
                                                                ^
../src/fibers.cc: In function ‘void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)’:
../src/fibers.cc:150:29: error: ‘handle’ was not declared in this scope
   persistent.Reset(isolate, handle);
                             ^~~~~~
../src/fibers.cc:150:29: note: suggested alternative: ‘rand_r’
   persistent.Reset(isolate, handle);
                             ^~~~~~
                             rand_r
../src/fibers.cc: At global scope:
../src/fibers.cc:162:26: error: variable or field ‘SetInternalPointer’ declared void
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                          ^~~~~~
../src/fibers.cc:162:26: error: ‘Handle’ was not declared in this scope
../src/fibers.cc:162:26: note: suggested alternative: ‘rand_r’
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                          ^~~~~~
                          rand_r
../src/fibers.cc:162:34: error: expected primary-expression before ‘>’ token
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                  ^
../src/fibers.cc:162:36: error: ‘handle’ was not declared in this scope
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                    ^~~~~~
../src/fibers.cc:162:36: note: suggested alternative: ‘rand_r’
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                    ^~~~~~
                                    rand_r
../src/fibers.cc:162:44: error: expected primary-expression before ‘int’
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                            ^~~
../src/fibers.cc:162:55: error: expected primary-expression before ‘void’
  void SetInternalPointer(Handle<T> handle, int index, void* val) {
                                                       ^~~~
../src/fibers.cc:166:27: error: ‘Handle’ was not declared in this scope
  void* GetInternalPointer(Handle<T> handle, int index) {
                           ^~~~~~
../src/fibers.cc:166:27: note: suggested alternative: ‘rand_r’
  void* GetInternalPointer(Handle<T> handle, int index) {
                           ^~~~~~
                           rand_r
../src/fibers.cc:166:35: error: expected primary-expression before ‘>’ token
  void* GetInternalPointer(Handle<T> handle, int index) {
                                   ^
../src/fibers.cc:166:37: error: ‘handle’ was not declared in this scope
  void* GetInternalPointer(Handle<T> handle, int index) {
                                     ^~~~~~
../src/fibers.cc:166:37: note: suggested alternative: ‘rand_r’
  void* GetInternalPointer(Handle<T> handle, int index) {
                                     ^~~~~~
                                     rand_r
../src/fibers.cc:166:45: error: expected primary-expression before ‘int’
  void* GetInternalPointer(Handle<T> handle, int index) {
                                             ^~~
../src/fibers.cc:166:54: error: expression list treated as compound expression in initializer [-fpermissive]
  void* GetInternalPointer(Handle<T> handle, int index) {
                                                      ^
../src/fibers.cc:166:56: error: expected ‘;’ before ‘{’ token
  void* GetInternalPointer(Handle<T> handle, int index) {
                                                        ^
../src/fibers.cc:171:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<T> Deref(Isolate* isolate, Persistent<T>& handle) {
  ^~~~~~
  rand_r
../src/fibers.cc:176:14: error: variable or field ‘Return’ declared void
  void Return(Handle<T> handle, const Arguments& args) {
              ^~~~~~
../src/fibers.cc:176:14: error: ‘Handle’ was not declared in this scope
../src/fibers.cc:176:14: note: suggested alternative: ‘rand_r’
  void Return(Handle<T> handle, const Arguments& args) {
              ^~~~~~
              rand_r
../src/fibers.cc:176:22: error: expected primary-expression before ‘>’ token
  void Return(Handle<T> handle, const Arguments& args) {
                      ^
../src/fibers.cc:176:24: error: ‘handle’ was not declared in this scope
  void Return(Handle<T> handle, const Arguments& args) {
                        ^~~~~~
../src/fibers.cc:176:24: note: suggested alternative: ‘rand_r’
  void Return(Handle<T> handle, const Arguments& args) {
                        ^~~~~~
                        rand_r
../src/fibers.cc:176:32: error: expected primary-expression before ‘const’
  void Return(Handle<T> handle, const Arguments& args) {
                                ^~~~~
../src/fibers.cc:180:14: error: variable or field ‘Return’ declared void
  void Return(Handle<T> handle, GetterCallbackInfo info) {
              ^~~~~~
../src/fibers.cc:180:14: error: ‘Handle’ was not declared in this scope
../src/fibers.cc:180:14: note: suggested alternative: ‘rand_r’
  void Return(Handle<T> handle, GetterCallbackInfo info) {
              ^~~~~~
              rand_r
../src/fibers.cc:180:22: error: expected primary-expression before ‘>’ token
  void Return(Handle<T> handle, GetterCallbackInfo info) {
                      ^
../src/fibers.cc:180:24: error: ‘handle’ was not declared in this scope
  void Return(Handle<T> handle, GetterCallbackInfo info) {
                        ^~~~~~
../src/fibers.cc:180:24: note: suggested alternative: ‘rand_r’
  void Return(Handle<T> handle, GetterCallbackInfo info) {
                        ^~~~~~
                        rand_r
../src/fibers.cc:180:51: error: expected primary-expression before ‘info’
  void Return(Handle<T> handle, GetterCallbackInfo info) {
                                                   ^~~~
../src/fibers.cc:188:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Value> ThrowException(Isolate* isolate, Handle<Value> exception) {
  ^~~~~~
  rand_r
../src/fibers.cc:192:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Context> GetCurrentContext(Isolate* isolate) {
  ^~~~~~
  rand_r
../src/fibers.cc:196:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Primitive> Undefined(Isolate* isolate) {
  ^~~~~~
  rand_r
../src/fibers.cc:200:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Boolean> NewBoolean(Isolate* isolate, bool value) {
  ^~~~~~
  rand_r
../src/fibers.cc:204:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Number> NewNumber(Isolate* isolate, double value) {
  ^~~~~~
  rand_r
../src/fibers.cc:208:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<FunctionTemplate> NewFunctionTemplate(
  ^~~~~~
  rand_r
../src/fibers.cc:218:2: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
  Handle<Signature> NewSignature(
  ^~~~~~
  rand_r
../src/fibers.cc:408:17: error: expected ‘;’ at end of member declaration
   static Fiber& Unwrap(Handle<Object> handle) {
                 ^~~~~~
../src/fibers.cc:408:30: error: expected ‘)’ before ‘<’ token
   static Fiber& Unwrap(Handle<Object> handle) {
                              ^
../src/fibers.cc:414:15: error: expected ‘)’ before ‘<’ token
   Fiber(Handle<Object> handle, Handle<Function> cb, Handle<Context> v8_context) :
               ^
../src/fibers.cc:680:3: error: ‘Handle’ does not name a type; did you mean ‘rand_r’?
   Handle<Value> ReturnYielded() {
   ^~~~~~
   rand_r
../src/fibers.cc:842:20: error: ‘Handle’ has not been declared
   static void Init(Handle<Object> target) {
                    ^~~~~~
../src/fibers.cc:842:26: error: expected ‘,’ or ‘...’ before ‘<’ token
   static void Init(Handle<Object> target) {
                          ^
In file included from ../src/fibers.cc:3:0:
../src/fibers.cc: In static member function ‘static void Fiber::WeakCallback(void*)’:
../src/fibers.cc:458:23: error: ‘class v8::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
    assert(that.handle.IsNearDeath());
                       ^
../src/fibers.cc: In static member function ‘static void Fiber::DestroyOrphans()’:
../src/fibers.cc:495:22: error: ‘Deref’ is not a member of ‘uni’
      auto stack(uni::Deref(that.isolate, fatal_stack));
                      ^~~~~
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::New(const Arguments&)’:
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:517:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects 1 argument");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:517:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects 1 argument");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:517:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects 1 argument");
     ^~~~~
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:519:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects a function");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:519:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects a function");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:519:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "Fiber expects a function");
     ^~~~~
../src/fibers.cc:521:5: error: ‘Handle’ was not declared in this scope
     Handle<Value> argv[1] = { args[0] };
     ^~~~~~
../src/fibers.cc:521:5: note: suggested alternative: ‘handle’
     Handle<Value> argv[1] = { args[0] };
     ^~~~~~
     handle
../src/fibers.cc:521:17: error: expected primary-expression before ‘>’ token
     Handle<Value> argv[1] = { args[0] };
                 ^
../src/fibers.cc:521:19: error: ‘argv’ was not declared in this scope
     Handle<Value> argv[1] = { args[0] };
                   ^~~~
../src/fibers.cc:521:19: note: suggested alternative: ‘args’
     Handle<Value> argv[1] = { args[0] };
                   ^~~~
                   args
../src/fibers.cc:522:29: error: ‘NewInstance’ is not a member of ‘uni’
     return uni::Return(uni::NewInstance(Isolate::GetCurrent(), uni::Deref(Isolate::GetCurrent(), tmpl)->GetFunction(), 1, argv), args);
                             ^~~~~~~~~~~
../src/fibers.cc:522:69: error: ‘Deref’ is not a member of ‘uni’
     return uni::Return(uni::NewInstance(Isolate::GetCurrent(), uni::Deref(Isolate::GetCurrent(), tmpl)->GetFunction(), 1, argv), args);
                                                                     ^~~~~
../src/fibers.cc:522:134: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::NewInstance(Isolate::GetCurrent(), uni::Deref(Isolate::GetCurrent(), tmpl)->GetFunction(), 1, argv), args);
                                                                                                                                      ^
../src/fibers.cc:525:4: error: ‘Handle’ was not declared in this scope
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
    ^~~~~~
../src/fibers.cc:525:4: note: suggested alternative: ‘handle’
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
    ^~~~~~
    handle
../src/fibers.cc:525:19: error: expected primary-expression before ‘>’ token
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
                   ^
../src/fibers.cc:525:21: error: ‘fn’ was not declared in this scope
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
                     ^~
../src/fibers.cc:525:41: error: expected primary-expression before ‘>’ token
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
                                         ^
../src/fibers.cc:525:44: error: ‘::Cast’ has not been declared
    Handle<Function> fn = Handle<Function>::Cast(args[0]);
                                            ^~~~
../src/fibers.cc:526:36: error: ‘GetCurrentContext’ is not a member of ‘uni’
    new Fiber(args.This(), fn, uni::GetCurrentContext(Isolate::GetCurrent()));
                                    ^~~~~~~~~~~~~~~~~
../src/fibers.cc:527:40: error: no matching function for call to ‘Return(v8::Local<v8::Object>, const Arguments&)’
    return uni::Return(args.This(), args);
                                        ^
../src/fibers.cc:184:7: note: candidate: template<class T> void uni::Return(v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, uni::GetterCallbackInfo)
  void Return(Persistent<T>& handle, GetterCallbackInfo info) {
       ^~~~~~
../src/fibers.cc:184:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:527:40: note:   ‘v8::Local<v8::Object>’ is not derived from ‘v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >’
    return uni::Return(args.This(), args);
                                        ^
../src/fibers.cc:527:40: error: return-statement with a value, in function returning 'void' [-fpermissive]
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::Run(const Arguments&)’:
../src/fibers.cc:535:38: error: no match for call to ‘(Fiber) (v8::Local<v8::Object>)’
    Fiber& that = Unwrap(args.Holder());
                                      ^
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:541:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is already running");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:541:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is already running");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:541:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is already running");
     ^~~~~
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:543:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "run() excepts 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:543:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "run() excepts 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:543:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "run() excepts 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:554:6: note: in expansion of macro ‘THROW’
      THROW(Exception::RangeError, "Out of memory");
      ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:554:6: note: in expansion of macro ‘THROW’
      THROW(Exception::RangeError, "Out of memory");
      ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:554:6: note: in expansion of macro ‘THROW’
      THROW(Exception::RangeError, "Out of memory");
      ^~~~~
../src/fibers.cc:564:52: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Local<v8::Value>)’
      uni::Reset(that.isolate, that.yielded, args[0]);
                                                    ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:564:51: note:   cannot convert ‘(& args)->v8::FunctionCallbackInfo<v8::Value>::operator[](0)’ (type ‘v8::Local<v8::Value>’) to type ‘int’
      uni::Reset(that.isolate, that.yielded, args[0]);
                                             ~~~~~~^
../src/fibers.cc:566:57: error: ‘Undefined’ is not a member of ‘uni’
      uni::Reset<Value>(that.isolate, that.yielded, uni::Undefined(that.isolate));
                                                         ^~~~~~~~~
../src/fibers.cc:566:57: note: suggested alternatives:
In file included from /home/nweiz/.node-gyp/12.0.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
 Local<Primitive> Undefined(Isolate* isolate) {
                  ^~~~~~~~~
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
../src/fibers.cc:570:28: error: ‘class Fiber’ has no member named ‘ReturnYielded’
    return uni::Return(that.ReturnYielded(), args);
                            ^~~~~~~~~~~~~
../src/fibers.cc:570:49: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(that.ReturnYielded(), args);
                                                 ^
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::ThrowInto(const Arguments&)’:
../src/fibers.cc:577:38: error: no match for call to ‘(Fiber) (v8::Local<v8::Object>)’
    Fiber& that = Unwrap(args.Holder());
                                      ^
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:580:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:580:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:580:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:582:56: error: ‘Undefined’ is not a member of ‘uni’
     uni::Reset<Value>(that.isolate, that.yielded, uni::Undefined(that.isolate));
                                                        ^~~~~~~~~
../src/fibers.cc:582:56: note: suggested alternatives:
In file included from /home/nweiz/.node-gyp/12.0.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
 Local<Primitive> Undefined(Isolate* isolate) {
                  ^~~~~~~~~
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
../src/fibers.cc:584:51: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Local<v8::Value>)’
     uni::Reset(that.isolate, that.yielded, args[0]);
                                                   ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:584:50: note:   cannot convert ‘(& args)->v8::FunctionCallbackInfo<v8::Value>::operator[](0)’ (type ‘v8::Local<v8::Value>’) to type ‘int’
     uni::Reset(that.isolate, that.yielded, args[0]);
                                            ~~~~~~^
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:586:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "throwInto() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:586:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "throwInto() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:586:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "throwInto() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:590:28: error: ‘class Fiber’ has no member named ‘ReturnYielded’
    return uni::Return(that.ReturnYielded(), args);
                            ^~~~~~~~~~~~~
../src/fibers.cc:590:49: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(that.ReturnYielded(), args);
                                                 ^
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::Reset(const Arguments&)’:
../src/fibers.cc:598:38: error: no match for call to ‘(Fiber) (v8::Local<v8::Object>)’
    Fiber& that = Unwrap(args.Holder());
                                      ^
../src/fibers.cc:601:29: error: ‘Undefined’ is not a member of ‘uni’
     return uni::Return(uni::Undefined(that.isolate), args);
                             ^~~~~~~~~
../src/fibers.cc:601:29: note: suggested alternatives:
In file included from /home/nweiz/.node-gyp/12.0.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
 Local<Primitive> Undefined(Isolate* isolate) {
                  ^~~~~~~~~
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
../src/fibers.cc:601:58: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::Undefined(that.isolate), args);
                                                          ^
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:603:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:603:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:603:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "This Fiber is not yielding");
     ^~~~~
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:605:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "reset() expects no arguments");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:605:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "reset() expects no arguments");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:605:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "reset() expects no arguments");
     ^~~~~
../src/fibers.cc:613:4: error: ‘Handle’ was not declared in this scope
    Handle<Value> val = uni::Deref(that.isolate, that.yielded);
    ^~~~~~
../src/fibers.cc:613:4: note: suggested alternative: ‘handle’
    Handle<Value> val = uni::Deref(that.isolate, that.yielded);
    ^~~~~~
    handle
../src/fibers.cc:613:16: error: expected primary-expression before ‘>’ token
    Handle<Value> val = uni::Deref(that.isolate, that.yielded);
                ^
../src/fibers.cc:613:18: error: ‘val’ was not declared in this scope
    Handle<Value> val = uni::Deref(that.isolate, that.yielded);
                  ^~~
../src/fibers.cc:613:29: error: ‘Deref’ is not a member of ‘uni’
    Handle<Value> val = uni::Deref(that.isolate, that.yielded);
                             ^~~~~
../src/fibers.cc:616:29: error: ‘ThrowException’ is not a member of ‘uni’
     return uni::Return(uni::ThrowException(that.isolate, val), args);
                             ^~~~~~~~~~~~~~
../src/fibers.cc:616:68: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::ThrowException(that.isolate, val), args);
                                                                    ^
../src/fibers.cc:618:33: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(val, args);
                                 ^
../src/fibers.cc: In member function ‘void Fiber::UnwindStack()’:
../src/fibers.cc:635:4: error: ‘Handle’ was not declared in this scope
    Handle<Value> zombie_exception = Exception::Error(uni::NewLatin1String(isolate, "This Fiber is a zombie"));
    ^~~~~~
../src/fibers.cc:635:4: note: suggested alternative: ‘handle’
    Handle<Value> zombie_exception = Exception::Error(uni::NewLatin1String(isolate, "This Fiber is a zombie"));
    ^~~~~~
    handle
../src/fibers.cc:635:16: error: expected primary-expression before ‘>’ token
    Handle<Value> zombie_exception = Exception::Error(uni::NewLatin1String(isolate, "This Fiber is a zombie"));
                ^
../src/fibers.cc:635:59: error: ‘NewLatin1String’ is not a member of ‘uni’
    Handle<Value> zombie_exception = Exception::Error(uni::NewLatin1String(isolate, "This Fiber is a zombie"));
                                                           ^~~~~~~~~~~~~~~
../src/fibers.cc:636:64: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Persistent<v8::Value>&)’
    uni::Reset(isolate, this->zombie_exception, zombie_exception);
                                                                ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:636:48: note:   cannot convert ‘((Fiber*)this)->Fiber::zombie_exception’ (type ‘v8::Persistent<v8::Value>’) to type ‘int’
    uni::Reset(isolate, this->zombie_exception, zombie_exception);
                                                ^~~~~~~~~~~~~~~~
../src/fibers.cc:637:49: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Persistent<v8::Value>&)’
    uni::Reset(isolate, yielded, zombie_exception);
                                                 ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:637:33: note:   cannot convert ‘((Fiber*)this)->Fiber::zombie_exception’ (type ‘v8::Persistent<v8::Value>’) to type ‘int’
    uni::Reset(isolate, yielded, zombie_exception);
                                 ^~~~~~~~~~~~~~~~
../src/fibers.cc:650:46: error: ‘Undefined’ is not a member of ‘uni’
     uni::Reset<Value>(isolate, yielded, uni::Undefined(isolate));
                                              ^~~~~~~~~
../src/fibers.cc:650:46: note: suggested alternatives:
In file included from /home/nweiz/.node-gyp/12.0.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
 Local<Primitive> Undefined(Isolate* isolate) {
                  ^~~~~~~~~
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:10838:18: note:   ‘v8::Undefined’
../src/fibers.cc: In static member function ‘static void Fiber::RunFiber(void**)’:
../src/fibers.cc:712:5: error: ‘Handle’ was not declared in this scope
     Handle<Context> v8_context = uni::Deref(that.isolate, that.v8_context);
     ^~~~~~
../src/fibers.cc:712:5: note: suggested alternative: ‘handle’
     Handle<Context> v8_context = uni::Deref(that.isolate, that.v8_context);
     ^~~~~~
     handle
../src/fibers.cc:712:19: error: expected primary-expression before ‘>’ token
     Handle<Context> v8_context = uni::Deref(that.isolate, that.v8_context);
                   ^
../src/fibers.cc:712:21: error: invalid use of member ‘Fiber::v8_context’ in static member function
     Handle<Context> v8_context = uni::Deref(that.isolate, that.v8_context);
                     ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:712:39: error: ‘Deref’ is not a member of ‘uni’
     Handle<Context> v8_context = uni::Deref(that.isolate, that.v8_context);
                                       ^~~~~
../src/fibers.cc:713:5: error: invalid use of member ‘Fiber::v8_context’ in static member function
     v8_context->Enter();
     ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:715:38: error: invalid use of member ‘Fiber::v8_context’ in static member function
     uni::fixStackLimit(that.isolate, v8_context);
                                      ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:717:17: error: expected primary-expression before ‘>’ token
     Handle<Value> yielded;
                 ^
../src/fibers.cc:717:19: error: invalid use of member ‘Fiber::yielded’ in static member function
     Handle<Value> yielded;
                   ^~~~~~~
../src/fibers.cc:399:21: note: declared here
   Persistent<Value> yielded;
                     ^~~~~~~
../src/fibers.cc:719:18: error: expected primary-expression before ‘>’ token
      Handle<Value> argv[1] = { (*args)[0] };
                  ^
../src/fibers.cc:719:20: error: ‘argv’ was not declared in this scope
      Handle<Value> argv[1] = { (*args)[0] };
                    ^~~~
../src/fibers.cc:719:20: note: suggested alternative: ‘args’
      Handle<Value> argv[1] = { (*args)[0] };
                    ^~~~
                    args
../src/fibers.cc:720:6: error: invalid use of member ‘Fiber::yielded’ in static member function
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 1, argv);
      ^~~~~~~
../src/fibers.cc:399:21: note: declared here
   Persistent<Value> yielded;
                     ^~~~~~~
../src/fibers.cc:720:21: error: ‘Deref’ is not a member of ‘uni’
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 1, argv);
                     ^~~~~
../src/fibers.cc:720:56: error: invalid use of member ‘Fiber::v8_context’ in static member function
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 1, argv);
                                                        ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:722:6: error: invalid use of member ‘Fiber::yielded’ in static member function
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 0, NULL);
      ^~~~~~~
../src/fibers.cc:399:21: note: declared here
   Persistent<Value> yielded;
                     ^~~~~~~
../src/fibers.cc:722:21: error: ‘Deref’ is not a member of ‘uni’
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 0, NULL);
                     ^~~~~
../src/fibers.cc:722:56: error: invalid use of member ‘Fiber::v8_context’ in static member function
      yielded = uni::Deref(that.isolate, that.cb)->Call(v8_context->Global(), 0, NULL);
                                                        ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:726:66: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Local<v8::Value>)’
      uni::Reset(that.isolate, that.yielded, try_catch.Exception());
                                                                  ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:726:64: note:   cannot convert ‘try_catch.uni::TryCatch::<anonymous>.v8::TryCatch::Exception()’ (type ‘v8::Local<v8::Value>’) to type ‘int’
      uni::Reset(that.isolate, that.yielded, try_catch.Exception());
                                             ~~~~~~~~~~~~~~~~~~~^~
../src/fibers.cc:728:50: error: ‘Deref’ is not a member of ‘uni’
      if (that.zombie && !that.resetting && !uni::Deref(that.isolate, that.yielded)->StrictEquals(uni::Deref(that.isolate, that.zombie_exception))) {
                                                  ^~~~~
../src/fibers.cc:728:103: error: ‘Deref’ is not a member of ‘uni’
      if (that.zombie && !that.resetting && !uni::Deref(that.isolate, that.yielded)->StrictEquals(uni::Deref(that.isolate, that.zombie_exception))) {
                                                                                                       ^~~~~
../src/fibers.cc:730:76: error: invalid use of member ‘Fiber::v8_context’ in static member function
       uni::Reset(that.isolate, fatal_stack, uni::GetStackTrace(&try_catch, v8_context));
                                                                            ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc:733:45: error: invalid use of member ‘Fiber::yielded’ in static member function
      uni::Reset(that.isolate, that.yielded, yielded);
                                             ^~~~~~~
../src/fibers.cc:399:21: note: declared here
   Persistent<Value> yielded;
                     ^~~~~~~
../src/fibers.cc:748:5: error: invalid use of member ‘Fiber::v8_context’ in static member function
     v8_context->Exit();
     ^~~~~~~~~~
../src/fibers.cc:397:23: note: declared here
   Persistent<Context> v8_context;
                       ^~~~~~~~~~
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::Yield_(const Arguments&)’:
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:763:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "yield() called with no fiber running");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:763:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "yield() called with no fiber running");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:763:5: note: in expansion of macro ‘THROW’
     THROW(Exception::Error, "yield() called with no fiber running");
     ^~~~~
../src/fibers.cc:769:29: error: ‘ThrowException’ is not a member of ‘uni’
     return uni::Return(uni::ThrowException(that.isolate, uni::Deref(that.isolate, that.zombie_exception)), args);
                             ^~~~~~~~~~~~~~
../src/fibers.cc:769:63: error: ‘Deref’ is not a member of ‘uni’
     return uni::Return(uni::ThrowException(that.isolate, uni::Deref(that.isolate, that.zombie_exception)), args);
                                                               ^~~~~
../src/fibers.cc:769:112: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::ThrowException(that.isolate, uni::Deref(that.isolate, that.zombie_exception)), args);
                                                                                                                ^
../src/fibers.cc:771:74: error: no matching function for call to ‘Reset<v8::Value>(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Local<v8::Primitive>)’
     uni::Reset<Value>(that.isolate, that.yielded, Undefined(that.isolate));
                                                                          ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:771:60: note:   cannot convert ‘v8::Undefined(that.Fiber::isolate)’ (type ‘v8::Local<v8::Primitive>’) to type ‘int’
     uni::Reset<Value>(that.isolate, that.yielded, Undefined(that.isolate));
                                                   ~~~~~~~~~^~~~~~~~~~~~~~
../src/fibers.cc:773:51: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::Value>&, v8::Local<v8::Value>)’
     uni::Reset(that.isolate, that.yielded, args[0]);
                                                   ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:773:50: note:   cannot convert ‘(& args)->v8::FunctionCallbackInfo<v8::Value>::operator[](0)’ (type ‘v8::Local<v8::Value>’) to type ‘int’
     uni::Reset(that.isolate, that.yielded, args[0]);
                                            ~~~~~~^
../src/fibers.cc:10:45: error: ‘ThrowException’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                             ^
../src/fibers.cc:775:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "yield() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:90: error: ‘NewLatin1String’ is not a member of ‘uni’
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                          ^
../src/fibers.cc:775:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "yield() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:10:139: error: return-statement with a value, in function returning 'void' [-fpermissive]
 #define THROW(x, m) return uni::Return(uni::ThrowException(Isolate::GetCurrent(), x(uni::NewLatin1String(Isolate::GetCurrent(), m))), args)
                                                                                                                                           ^
../src/fibers.cc:775:5: note: in expansion of macro ‘THROW’
     THROW(Exception::TypeError, "yield() expects 1 or no arguments");
     ^~~~~
../src/fibers.cc:798:28: error: ‘class Fiber’ has no member named ‘ReturnYielded’
    return uni::Return(that.ReturnYielded(), args);
                            ^~~~~~~~~~~~~
../src/fibers.cc:798:49: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(that.ReturnYielded(), args);
                                                 ^
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::GetStarted(v8::Local<v8::String>, const GetterCallbackInfo&)’:
../src/fibers.cc:806:29: error: ‘Undefined’ is not a member of ‘uni’
     return uni::Return(uni::Undefined(Isolate::GetCurrent()), info);
                             ^~~~~~~~~
../src/fibers.cc:806:29: note: suggested alternatives:
In file included from /home/nweiz/.node-gyp/12.0.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:301:27: note:   ‘v8::Undefined’
   friend Local<Primitive> Undefined(Isolate* isolate);
                           ^~~~~~~~~
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:301:27: note:   ‘v8::Undefined’
../src/fibers.cc:806:67: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::Undefined(Isolate::GetCurrent()), info);
                                                                   ^
../src/fibers.cc:808:36: error: no match for call to ‘(Fiber) (v8::Local<v8::Object>)’
    Fiber& that = Unwrap(info.This());
                                    ^
../src/fibers.cc:809:28: error: ‘NewBoolean’ is not a member of ‘uni’
    return uni::Return(uni::NewBoolean(that.isolate, that.started), info);
                            ^~~~~~~~~~
../src/fibers.cc:809:72: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(uni::NewBoolean(that.isolate, that.started), info);
                                                                        ^
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::GetCurrent(v8::Local<v8::String>, const GetterCallbackInfo&)’:
../src/fibers.cc:816:29: error: ‘Undefined’ is not a member of ‘uni’
     return uni::Return(uni::Undefined(Isolate::GetCurrent()), info);
                             ^~~~~~~~~
../src/fibers.cc:816:29: note: suggested alternatives:
In file included from /home/nweiz/.node-gyp/12.0.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:301:27: note:   ‘v8::Undefined’
   friend Local<Primitive> Undefined(Isolate* isolate);
                           ^~~~~~~~~
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:301:27: note:   ‘v8::Undefined’
../src/fibers.cc:816:67: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return uni::Return(uni::Undefined(Isolate::GetCurrent()), info);
                                                                   ^
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::GetPoolSize(v8::Local<v8::String>, const GetterCallbackInfo&)’:
../src/fibers.cc:824:28: error: ‘NewNumber’ is not a member of ‘uni’
    return uni::Return(uni::NewNumber(Isolate::GetCurrent(), Coroutine::pool_size), info);
                            ^~~~~~~~~
../src/fibers.cc:824:88: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(uni::NewNumber(Isolate::GetCurrent(), Coroutine::pool_size), info);
                                                                                        ^
../src/fibers.cc: In static member function ‘static void Fiber::SetPoolSize(v8::Local<v8::String>, v8::Local<v8::Value>, const SetterCallbackInfo&)’:
../src/fibers.cc:828:32: error: ‘ToNumber’ is not a member of ‘uni’
    Coroutine::pool_size = uni::ToNumber(value)->Value();
                                ^~~~~~~~
../src/fibers.cc: In static member function ‘static uni::FunctionType Fiber::GetFibersCreated(v8::Local<v8::String>, const GetterCallbackInfo&)’:
../src/fibers.cc:835:28: error: ‘NewNumber’ is not a member of ‘uni’
    return uni::Return(uni::NewNumber(Isolate::GetCurrent(), Coroutine::coroutines_created()), info);
                            ^~~~~~~~~
../src/fibers.cc:835:99: error: return-statement with a value, in function returning 'void' [-fpermissive]
    return uni::Return(uni::NewNumber(Isolate::GetCurrent(), Coroutine::coroutines_created()), info);
                                                                                                   ^
../src/fibers.cc: In static member function ‘static void Fiber::Init(int)’:
../src/fibers.cc:853:4: error: ‘Handle’ was not declared in this scope
    Handle<FunctionTemplate> tmpl = uni::NewFunctionTemplate(isolate, New);
    ^~~~~~
../src/fibers.cc:853:4: note: suggested alternative: ‘handle’
    Handle<FunctionTemplate> tmpl = uni::NewFunctionTemplate(isolate, New);
    ^~~~~~
    handle
../src/fibers.cc:853:27: error: expected primary-expression before ‘>’ token
    Handle<FunctionTemplate> tmpl = uni::NewFunctionTemplate(isolate, New);
                           ^
../src/fibers.cc:853:41: error: ‘NewFunctionTemplate’ is not a member of ‘uni’
    Handle<FunctionTemplate> tmpl = uni::NewFunctionTemplate(isolate, New);
                                         ^~~~~~~~~~~~~~~~~~~
../src/fibers.cc:853:41: note: suggested alternative: ‘FunctionType’
    Handle<FunctionTemplate> tmpl = uni::NewFunctionTemplate(isolate, New);
                                         ^~~~~~~~~~~~~~~~~~~
                                         FunctionType
../src/fibers.cc:854:41: error: no matching function for call to ‘Reset(v8::Isolate*&, v8::Persistent<v8::FunctionTemplate>&, v8::Persistent<v8::FunctionTemplate>&)’
    uni::Reset(isolate, Fiber::tmpl, tmpl);
                                         ^
../src/fibers.cc:149:7: note: candidate: template<class T> void uni::Reset(v8::Isolate*, v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, int)
  void Reset(Isolate* isolate, Persistent<T>& persistent, Handle<T> handle) {
       ^~~~~
../src/fibers.cc:149:7: note:   template argument deduction/substitution failed:
../src/fibers.cc:854:41: note:   cannot convert ‘Fiber::tmpl’ (type ‘v8::Persistent<v8::FunctionTemplate>’) to type ‘int’
    uni::Reset(isolate, Fiber::tmpl, tmpl);
                                         ^
../src/fibers.cc:855:8: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::FunctionTemplate>’
    tmpl->SetClassName(uni::NewLatin1Symbol(isolate, "Fiber"));
        ^~
../src/fibers.cc:855:28: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    tmpl->SetClassName(uni::NewLatin1Symbol(isolate, "Fiber"));
                            ^~~~~~~~~~~~~~~
../src/fibers.cc:859:20: error: expected primary-expression before ‘>’ token
    Handle<Signature> sig = uni::NewSignature(isolate, tmpl);
                    ^
../src/fibers.cc:859:22: error: ‘sig’ was not declared in this scope
    Handle<Signature> sig = uni::NewSignature(isolate, tmpl);
                      ^~~
../src/fibers.cc:859:22: note: suggested alternative: ‘sig_t’
    Handle<Signature> sig = uni::NewSignature(isolate, tmpl);
                      ^~~
                      sig_t
../src/fibers.cc:859:33: error: ‘NewSignature’ is not a member of ‘uni’
    Handle<Signature> sig = uni::NewSignature(isolate, tmpl);
                                 ^~~~~~~~~~~~
../src/fibers.cc:860:8: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::FunctionTemplate>’
    tmpl->InstanceTemplate()->SetInternalFieldCount(1);
        ^~
../src/fibers.cc:863:25: error: expected primary-expression before ‘>’ token
    Handle<ObjectTemplate> proto = tmpl->PrototypeTemplate();
                         ^
../src/fibers.cc:863:27: error: ‘proto’ was not declared in this scope
    Handle<ObjectTemplate> proto = tmpl->PrototypeTemplate();
                           ^~~~~
../src/fibers.cc:863:39: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::FunctionTemplate>’
    Handle<ObjectTemplate> proto = tmpl->PrototypeTemplate();
                                       ^~
../src/fibers.cc:864:20: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    proto->Set(uni::NewLatin1Symbol(isolate, "reset"),
                    ^~~~~~~~~~~~~~~
../src/fibers.cc:865:10: error: ‘NewFunctionTemplate’ is not a member of ‘uni’
     uni::NewFunctionTemplate(isolate, Reset, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
../src/fibers.cc:865:10: note: suggested alternative: ‘FunctionType’
     uni::NewFunctionTemplate(isolate, Reset, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
          FunctionType
../src/fibers.cc:865:58: error: expected primary-expression before ‘>’ token
     uni::NewFunctionTemplate(isolate, Reset, Handle<Value>(), sig));
                                                          ^
../src/fibers.cc:865:60: error: expected primary-expression before ‘)’ token
     uni::NewFunctionTemplate(isolate, Reset, Handle<Value>(), sig));
                                                            ^
../src/fibers.cc:866:20: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    proto->Set(uni::NewLatin1Symbol(isolate, "run"),
                    ^~~~~~~~~~~~~~~
../src/fibers.cc:867:10: error: ‘NewFunctionTemplate’ is not a member of ‘uni’
     uni::NewFunctionTemplate(isolate, Run, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
../src/fibers.cc:867:10: note: suggested alternative: ‘FunctionType’
     uni::NewFunctionTemplate(isolate, Run, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
          FunctionType
../src/fibers.cc:867:56: error: expected primary-expression before ‘>’ token
     uni::NewFunctionTemplate(isolate, Run, Handle<Value>(), sig));
                                                        ^
../src/fibers.cc:867:58: error: expected primary-expression before ‘)’ token
     uni::NewFunctionTemplate(isolate, Run, Handle<Value>(), sig));
                                                          ^
../src/fibers.cc:868:20: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    proto->Set(uni::NewLatin1Symbol(isolate, "throwInto"),
                    ^~~~~~~~~~~~~~~
../src/fibers.cc:869:10: error: ‘NewFunctionTemplate’ is not a member of ‘uni’
     uni::NewFunctionTemplate(isolate, ThrowInto, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
../src/fibers.cc:869:10: note: suggested alternative: ‘FunctionType’
     uni::NewFunctionTemplate(isolate, ThrowInto, Handle<Value>(), sig));
          ^~~~~~~~~~~~~~~~~~~
          FunctionType
../src/fibers.cc:869:62: error: expected primary-expression before ‘>’ token
     uni::NewFunctionTemplate(isolate, ThrowInto, Handle<Value>(), sig));
                                                              ^
../src/fibers.cc:869:64: error: expected primary-expression before ‘)’ token
     uni::NewFunctionTemplate(isolate, ThrowInto, Handle<Value>(), sig));
                                                                ^
../src/fibers.cc:870:28: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    proto->SetAccessor(uni::NewLatin1Symbol(isolate, "started"), GetStarted);
                            ^~~~~~~~~~~~~~~
../src/fibers.cc:873:19: error: expected primary-expression before ‘>’ token
    Handle<Function> yield = uni::NewFunctionTemplate(isolate, Yield_)->GetFunction();
                   ^
../src/fibers.cc:873:21: error: ‘yield’ was not declared in this scope
    Handle<Function> yield = uni::NewFunctionTemplate(isolate, Yield_)->GetFunction();
                     ^~~~~
../src/fibers.cc:873:21: note: suggested alternative: ‘Yield_’
    Handle<Function> yield = uni::NewFunctionTemplate(isolate, Yield_)->GetFunction();
                     ^~~~~
                     Yield_
../src/fibers.cc:873:34: error: ‘NewFunctionTemplate’ is not a member of ‘uni’
    Handle<Function> yield = uni::NewFunctionTemplate(isolate, Yield_)->GetFunction();
                                  ^~~~~~~~~~~~~~~~~~~
../src/fibers.cc:873:34: note: suggested alternative: ‘FunctionType’
    Handle<Function> yield = uni::NewFunctionTemplate(isolate, Yield_)->GetFunction();
                                  ^~~~~~~~~~~~~~~~~~~
                                  FunctionType
../src/fibers.cc:874:17: error: expected primary-expression before ‘>’ token
    Handle<String> sym_yield = uni::NewLatin1Symbol(isolate, "yield");
                 ^
../src/fibers.cc:874:19: error: ‘sym_yield’ was not declared in this scope
    Handle<String> sym_yield = uni::NewLatin1Symbol(isolate, "yield");
                   ^~~~~~~~~
../src/fibers.cc:874:19: note: suggested alternative: ‘sched_yield’
    Handle<String> sym_yield = uni::NewLatin1Symbol(isolate, "yield");
                   ^~~~~~~~~
                   sched_yield
../src/fibers.cc:874:36: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    Handle<String> sym_yield = uni::NewLatin1Symbol(isolate, "yield");
                                    ^~~~~~~~~~~~~~~
../src/fibers.cc:875:4: error: ‘target’ was not declared in this scope
    target->Set(sym_yield, yield);
    ^~~~~~
../src/fibers.cc:875:4: note: suggested alternative: ‘started’
    target->Set(sym_yield, yield);
    ^~~~~~
    started
../src/fibers.cc:878:19: error: expected primary-expression before ‘>’ token
    Handle<Function> fn = tmpl->GetFunction();
                   ^
../src/fibers.cc:878:21: error: ‘fn’ was not declared in this scope
    Handle<Function> fn = tmpl->GetFunction();
                     ^~
../src/fibers.cc:878:30: error: base operand of ‘->’ has non-pointer type ‘v8::Persistent<v8::FunctionTemplate>’
    Handle<Function> fn = tmpl->GetFunction();
                              ^~
../src/fibers.cc:880:39: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    uni::SetAccessor(isolate, fn, uni::NewLatin1Symbol(isolate, "current"), GetCurrent);
                                       ^~~~~~~~~~~~~~~
../src/fibers.cc:881:39: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    uni::SetAccessor(isolate, fn, uni::NewLatin1Symbol(isolate, "poolSize"), GetPoolSize, SetPoolSize);
                                       ^~~~~~~~~~~~~~~
../src/fibers.cc:882:39: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    uni::SetAccessor(isolate, fn, uni::NewLatin1Symbol(isolate, "fibersCreated"), GetFibersCreated);
                                       ^~~~~~~~~~~~~~~
../src/fibers.cc:885:21: error: ‘NewLatin1Symbol’ is not a member of ‘uni’
    target->Set(uni::NewLatin1Symbol(isolate, "Fiber"), fn);
                     ^~~~~~~~~~~~~~~
../src/fibers.cc: At global scope:
../src/fibers.cc:901:11: error: variable or field ‘init’ declared void
 void init(Handle<Object> target) {
           ^~~~~~
../src/fibers.cc:901:11: error: ‘Handle’ was not declared in this scope
../src/fibers.cc:901:11: note: suggested alternative: ‘rand_r’
 void init(Handle<Object> target) {
           ^~~~~~
           rand_r
../src/fibers.cc:901:24: error: expected primary-expression before ‘>’ token
 void init(Handle<Object> target) {
                        ^
../src/fibers.cc:901:26: error: ‘target’ was not declared in this scope
 void init(Handle<Object> target) {
                          ^~~~~~
../src/fibers.cc:901:26: note: suggested alternative: ‘tzset’
 void init(Handle<Object> target) {
                          ^~~~~~
                          tzset
In file included from ../src/coroutine.h:1:0,
                 from ../src/fibers.cc:1:
../src/fibers.cc:916:21: error: ‘init’ was not declared in this scope
 NODE_MODULE(fibers, init)
                     ^
/home/nweiz/.node-gyp/12.0.0/include/node/node.h:556:36: note: in definition of macro ‘NODE_MODULE_X’
       (node::addon_register_func) (regfunc),                          \
                                    ^~~~~~~
../src/fibers.cc:916:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(fibers, init)
 ^~~~~~~~~~~
../src/fibers.cc:916:21: note: suggested alternative: ‘int’
 NODE_MODULE(fibers, init)
                     ^
/home/nweiz/.node-gyp/12.0.0/include/node/node.h:556:36: note: in definition of macro ‘NODE_MODULE_X’
       (node::addon_register_func) (regfunc),                          \
                                    ^~~~~~~
../src/fibers.cc:916:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(fibers, init)
 ^~~~~~~~~~~
../src/fibers.cc: In instantiation of ‘void uni::Return(v8::Persistent<T, v8::NonCopyablePersistentTraits<T> >&, uni::GetterCallbackInfo) [with T = v8::Object; uni::GetterCallbackI
nfo = v8::PropertyCallbackInfo<v8::Value>]’:
../src/fibers.cc:814:45:   required from here
../src/fibers.cc:185:3: warning: ‘void v8::ReturnValue<T>::Set(const v8::Persistent<S>&) [with S = v8::Object; T = v8::Value]’ is deprecated: Use Global<> instead [-Wdeprecated-dec
larations]
   info.GetReturnValue().Set(handle);
   ^~~~
In file included from /home/nweiz/.node-gyp/12.0.0/include/node/node.h:63:0,
                 from ../src/coroutine.h:1,
                 from ../src/fibers.cc:1:
/home/nweiz/.node-gyp/12.0.0/include/node/v8.h:9990:6: note: declared here
 void ReturnValue<T>::Set(const Persistent<S>& handle) {
      ^~~~~~~~~~~~~~
fibers.target.mk:116: recipe for target 'Release/obj.target/fibers/src/fibers.o' failed
make: *** [Release/obj.target/fibers/src/fibers.o] Error 1
make: Leaving directory '/home/nweiz/.nvm/versions/node/v12.0.0/lib/node_modules/fibers/build'
nex3 added a commit to sass/dart-sass that referenced this issue Apr 23, 2019
@laverdet
Copy link
Owner

Thanks for the report. fibers@4 on npm now supports nodejs v12.

@nex3
Copy link
Author

nex3 commented Apr 29, 2019

Thanks!

nex3 added a commit to sass/dart-sass that referenced this issue Apr 30, 2019
nex3 added a commit to sass/dart-sass that referenced this issue Apr 30, 2019
nex3 added a commit to sass/dart-sass that referenced this issue Apr 30, 2019
renfeng added a commit to renfeng/wdio-mocha-framework that referenced this issue Jun 5, 2019
fiber@4, a dependency of wdio-sync, is required. See laverdet/node-fibers#409
@peterjaric
Copy link

I'm getting the same problem in v13.1.0 on Windows. After downgrading to v12.14.1 everything is fine again. I tried Fibers v4.0.0 and v4.0.2. Want me to open an issue for that, @laverdet?

@kennyrafael
Copy link

Looks like the same problem is happening on Node 14. =/

@TheJavaGuy
Copy link

Same problem with node v14.16.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants