diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2013-07-03 04:23:44 +0200 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2013-07-06 17:44:44 +0200 |
commit | 110a9cd8db515c4d1a9ac5cd8837291da7c6c5ea (patch) | |
tree | 71e5a14a98131d89d670f842eb36bfcccab00b7b /src/pipe_wrap.h | |
parent | 9b3de60d3537df657e75887436a5b1df5ed80c2d (diff) | |
download | android-node-v8-110a9cd8db515c4d1a9ac5cd8837291da7c6c5ea.tar.gz android-node-v8-110a9cd8db515c4d1a9ac5cd8837291da7c6c5ea.tar.bz2 android-node-v8-110a9cd8db515c4d1a9ac5cd8837291da7c6c5ea.zip |
lib, src: upgrade after v8 api change
This is a big commit that touches just about every file in the src/
directory. The V8 API has changed in significant ways. The most
important changes are:
* Binding functions take a const v8::FunctionCallbackInfo<T>& argument
rather than a const v8::Arguments& argument.
* Binding functions return void rather than v8::Handle<v8::Value>. The
return value is returned with the args.GetReturnValue().Set() family
of functions.
* v8::Persistent<T> no longer derives from v8::Handle<T> and no longer
allows you to directly dereference the object that the persistent
handle points to. This means that the common pattern of caching
oft-used JS values in a persistent handle no longer quite works,
you first need to reconstruct a v8::Local<T> from the persistent
handle with the Local<T>::New(isolate, persistent) factory method.
A handful of (internal) convenience classes and functions have been
added to make dealing with the new API a little easier.
The most visible one is node::Cached<T>, which wraps a v8::Persistent<T>
with some template sugar. It can hold arbitrary types but so far it's
exclusively used for v8::Strings (which was by far the most commonly
cached handle type.)
Diffstat (limited to 'src/pipe_wrap.h')
-rw-r--r-- | src/pipe_wrap.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/pipe_wrap.h b/src/pipe_wrap.h index f1e12eb753..ec6be31733 100644 --- a/src/pipe_wrap.h +++ b/src/pipe_wrap.h @@ -36,14 +36,15 @@ class PipeWrap : public StreamWrap { private: PipeWrap(v8::Handle<v8::Object> object, bool ipc); - static v8::Handle<v8::Value> New(const v8::Arguments& args); - static v8::Handle<v8::Value> Bind(const v8::Arguments& args); - static v8::Handle<v8::Value> Listen(const v8::Arguments& args); - static v8::Handle<v8::Value> Connect(const v8::Arguments& args); - static v8::Handle<v8::Value> Open(const v8::Arguments& args); + static void New(const v8::FunctionCallbackInfo<v8::Value>& args); + static void Bind(const v8::FunctionCallbackInfo<v8::Value>& args); + static void Listen(const v8::FunctionCallbackInfo<v8::Value>& args); + static void Connect(const v8::FunctionCallbackInfo<v8::Value>& args); + static void Open(const v8::FunctionCallbackInfo<v8::Value>& args); #ifdef _WIN32 - static v8::Handle<v8::Value> SetPendingInstances(const v8::Arguments& args); + static void SetPendingInstances( + const v8::FunctionCallbackInfo<v8::Value>& args); #endif static void OnConnection(uv_stream_t* handle, int status); |