summaryrefslogtreecommitdiff
path: root/src/stream_base-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/stream_base-inl.h')
-rw-r--r--src/stream_base-inl.h58
1 files changed, 27 insertions, 31 deletions
diff --git a/src/stream_base-inl.h b/src/stream_base-inl.h
index 25293d2d06..562af2a533 100644
--- a/src/stream_base-inl.h
+++ b/src/stream_base-inl.h
@@ -33,26 +33,26 @@ void StreamBase::AddMethods(Environment* env,
enum PropertyAttribute attributes =
static_cast<PropertyAttribute>(v8::ReadOnly | v8::DontDelete);
- t->InstanceTemplate()->SetAccessor(env->fd_string(),
- GetFD<Base>,
- nullptr,
- env->as_external(),
- v8::DEFAULT,
- attributes);
-
- t->InstanceTemplate()->SetAccessor(env->external_stream_string(),
- GetExternal<Base>,
- nullptr,
- env->as_external(),
- v8::DEFAULT,
- attributes);
-
- t->InstanceTemplate()->SetAccessor(env->bytes_read_string(),
- GetBytesRead<Base>,
- nullptr,
- env->as_external(),
- v8::DEFAULT,
- attributes);
+ t->PrototypeTemplate()->SetAccessor(env->fd_string(),
+ GetFD<Base>,
+ nullptr,
+ env->as_external(),
+ v8::DEFAULT,
+ attributes);
+
+ t->PrototypeTemplate()->SetAccessor(env->external_stream_string(),
+ GetExternal<Base>,
+ nullptr,
+ env->as_external(),
+ v8::DEFAULT,
+ attributes);
+
+ t->PrototypeTemplate()->SetAccessor(env->bytes_read_string(),
+ GetBytesRead<Base>,
+ nullptr,
+ env->as_external(),
+ v8::DEFAULT,
+ attributes);
env->SetProtoMethod(t, "readStart", JSMethod<Base, &StreamBase::ReadStart>);
env->SetProtoMethod(t, "readStop", JSMethod<Base, &StreamBase::ReadStop>);
@@ -81,11 +81,10 @@ void StreamBase::AddMethods(Environment* env,
template <class Base>
void StreamBase::GetFD(Local<String> key,
const PropertyCallbackInfo<Value>& args) {
- Base* handle = Unwrap<Base>(args.Holder());
-
// Mimic implementation of StreamBase::GetFD() and UDPWrap::GetFD().
+ Base* handle;
ASSIGN_OR_RETURN_UNWRAP(&handle,
- args.Holder(),
+ args.This(),
args.GetReturnValue().Set(UV_EINVAL));
StreamBase* wrap = static_cast<StreamBase*>(handle);
@@ -99,11 +98,10 @@ void StreamBase::GetFD(Local<String> key,
template <class Base>
void StreamBase::GetBytesRead(Local<String> key,
const PropertyCallbackInfo<Value>& args) {
- Base* handle = Unwrap<Base>(args.Holder());
-
// The handle instance hasn't been set. So no bytes could have been read.
+ Base* handle;
ASSIGN_OR_RETURN_UNWRAP(&handle,
- args.Holder(),
+ args.This(),
args.GetReturnValue().Set(0));
StreamBase* wrap = static_cast<StreamBase*>(handle);
@@ -115,9 +113,8 @@ void StreamBase::GetBytesRead(Local<String> key,
template <class Base>
void StreamBase::GetExternal(Local<String> key,
const PropertyCallbackInfo<Value>& args) {
- Base* handle = Unwrap<Base>(args.Holder());
-
- ASSIGN_OR_RETURN_UNWRAP(&handle, args.Holder());
+ Base* handle;
+ ASSIGN_OR_RETURN_UNWRAP(&handle, args.This());
StreamBase* wrap = static_cast<StreamBase*>(handle);
Local<External> ext = External::New(args.GetIsolate(), wrap);
@@ -128,8 +125,7 @@ void StreamBase::GetExternal(Local<String> key,
template <class Base,
int (StreamBase::*Method)(const FunctionCallbackInfo<Value>& args)>
void StreamBase::JSMethod(const FunctionCallbackInfo<Value>& args) {
- Base* handle = Unwrap<Base>(args.Holder());
-
+ Base* handle;
ASSIGN_OR_RETURN_UNWRAP(&handle, args.Holder());
StreamBase* wrap = static_cast<StreamBase*>(handle);