v8::Handle<v8::Value> GPIO::Close(const v8::Arguments& args) { v8::HandleScope scope; GPIO* obj = ObjectWrap::Unwrap<GPIO>(args.This()); int res = obj->close(); if (res < 0) { std::string err_msg = "OPERATION FAILED: Unable to close GPIO " + obj->pin_num + "."; v8::ThrowException(v8::Exception::Error(v8::String::New(err_msg.c_str()))); return scope.Close(v8::Undefined()); } obj->log("GPIO " + obj->pin_num + " closed."); return scope.Close(v8::Integer::New(res)); }