Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Mar 13, 2014
  1. @bnoordhuis @indutny

    src, test: fix up ObjectWrap, `make test-addons`

    bnoordhuis authored indutny committed
    V8 was upgraded from 3.22 to 3.24 in commit 1c7bf24.  Upgrade source
    files in test/addons/ and automatically generated tests from
    doc/api/addons.markdown to the new V8 API.
    This coincidentally fixes a bug in src/node_object_wrap.h where it was
    still using the old V8 weak persistent handle interface, which is gone
    in 3.24.
Commits on Sep 6, 2013
  1. @bnoordhuis

    src: fix multi-base class ObjectWrap::Unwrap<T>()

    bnoordhuis authored
    Fix pointer unwrapping when T is a class with more than one base class.
    Before this commit, the wrapped void* pointer was cast directly to T*
    without going through ObjectWrap* first, possibly leading to a class
    instance pointer that points to the wrong vtable.
    This change required some cleanup in various files; some classes
    used private rather than public inheritance, others didn't derive
    from ObjectWrap at all...
    Fixes #6188.
Commits on Jul 6, 2013
  1. @bnoordhuis

    lib, src: upgrade after v8 api change

    bnoordhuis authored
    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.)
Commits on Jun 11, 2013
  1. @bnoordhuis

    src: upgrade after v8 api change

    bnoordhuis authored
    The prototype of v8::Persistent<T>::MakeWeak() has changed. Update the
    code in src/ to follow suit.
Commits on Jun 7, 2013
  1. @bnoordhuis

    src: unexport node_isolate

    bnoordhuis authored
    Commit 0bba590 accidentally (or maybe erroneously) added node_isolate
    to src/node.h and src/node_object_wrap.h.
    Undo that, said variable is not for public consumption. Add-on authors
    should use v8::Isolate::GetCurrent() instead.
    I missed that while reviewing. Mea culpa.
    Fixes #5639.
Commits on Apr 10, 2013
  1. @bnoordhuis

    src: don't SetInternalField() in ObjectWrap dtor

    bnoordhuis authored
    Call SetPointerInInternalField(0, NULL) rather than
    SetInternalField(0, Undefined()).
    Fixes the following spurious NULL pointer dereference in debug builds:
      #0  0x03ad2821 in v8::internal::FixedArrayBase::length ()
      #1  0x03ad1dfc in v8::internal::FixedArray::get ()
      #2  0x03ae05dd in v8::internal::Context::global_object ()
      #3  0x03b6b87d in v8::internal::Context::builtins ()
      #4  0x03ae1871 in v8::internal::Isolate::js_builtins_object ()
      #5  0x03ab4fab in v8::CallV8HeapFunction ()
      #6  0x03ab4d4a in v8::Value::Equals ()
      #7  0x03b4f38b in CheckEqualsHelper ()
      #8  0x03ac0f4b in v8::Object::SetInternalField ()
      #9  0x06a99ddd in node::ObjectWrap::~ObjectWrap ()
      #10 0x06a8b051 in node::Buffer::~Buffer ()
      #11 0x06a8afbb in node::Buffer::~Buffer ()
      #12 0x06a8af5e in node::Buffer::~Buffer ()
      #13 0x06a9e569 in node::ObjectWrap::WeakCallback ()
Commits on Feb 25, 2013
  1. @bnoordhuis
Commits on Mar 9, 2012
  1. @bnoordhuis
Something went wrong with that request. Please try again.