blog: v0.11.4 release
blog: v0.11.4 is unstable not stable
src: remove Buffer::Data(Persistent<T>&)

It hits a compiler bug in gcc <= 4.4 similar to the issue that was
recently addressed in commit 157d2bc:

    ../deps/v8/include/v8.h: In function ‘char*
    node::Buffer::Data(v8::Persistent&) [with TypeName = v8::Object]’:
    ../src/node_crypto.cc:1123: instantiated from here
    ../deps/v8/include/v8.h:876: error: ‘class v8::Data’ is not a
    function,
    ../src/node_internals.h:356: error: conflict with ‘template char*
    node::Buffer::Data(v8::Persistent&)’
    ../src/node_internals.h:357: error: in call to ‘Data’

Remove the helper function, it was only used in a couple of places.
Should fix the build on Ubuntu 10.04.

Fixes #5844.
tls: Trivial use_strict fix
smalloc: remove NULL assert check

In fa10b75 the assert to check if data == NULL was remove for
smalloc::Alloc with no callback. It should have also been removed where
a callback is accepted.

No sense in making sure that length == 0 if data == NULL because devs
already have to be responsible for checking that length is the same as
the char* they're passing in.
doc: Streams API Doc Rewrite

The Streams API doc is now broken up into 3 sections:

1. API for Consumers
2. API for Implementors
3. Details and Extras

This addresses one of the biggest points of confusion for new users who
start to consume streams, and get the impression that they have to do
lots of extra work and implement classes and such, just to get some data
out of a file.
doc: style the 'type' fields in API docs
doc: Explain process.nextTick timing

Provide more detailed explanation of the timing of `process.nextTick`
relative to I/O.
url: Fix edge-case when protocol is non-lowercase

When using url.parse(), path and pathname usually return '/' when there
is no path available. However when you have a protocol that contains
non-lowercase letters and the input string does not have a trailing
slash, both path and pathname will be undefined.
Merge remote-tracking branch 'ry/v0.10'

Conflicts:
	doc/api/stream.markdown
	lib/tls.js
doc: events: clarify 'newListener' emitter state

Ditto for the 'removeListener' event.
node: always set function name

For easier debugging it's helpful to always have the function name.
These were not set for methods coming from cc.
smalloc: create separate module

It will be confusing if later on we add Buffer#dispose(), and smalloc is
its own cpp api anyways. So instead create a new require('smalloc') to
expose the previous Buffer.alloc/dispose methods, and expose copyOnto
and kMaxLength as well.

Other changes:
* Added documentation and additional tests.
* smalloc::CopyOnto has changed from using assert() to throwing errors
  on bad argument values because it is not exposed to the user.
* Minor style fixes.
tools: make check-imports.sh work on bsd-likes
src: add IsFunction() assert to MakeCallback

Helps catch bugs early on. Without it, V8 throws the fairly
unhelpful exception "TypeError: undefined is not a function" -
unhelpful because there is no stack trace.
src: fix persistent handle lifecycle issue

Commit 636ca7c adds an optimization that casts strong Persistent<T>
handles directly to Local<T> handles to avoid the overhead of creating
new HandleScope-rooted Local<T> handles all the time.

One gotcha that I missed is that it's no longer legal to reference the
Local<T> after calling Persistent<T>::Dispose(). This commit addresses
that.
buffer: return offset for end of last write
src: ReqWrap now optionally accepts a wrap object
udp_wrap, tcp_wrap: add out arg to AddressToJS

Prep work for removing process._errno. The handle.getsockname() function
will return a status code in the future and set the address and port
properties on the object that's passed in from JS land.
deps: upgrade libuv to 3ee4d3f