Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Jun 10, 2014
  1. @tjfontaine

    Merge remote-tracking branch 'upstream/v0.10'

    tjfontaine authored
Commits on Jun 6, 2014
  1. @tjfontaine

    src: replace usage of String::Utf8Value

    tjfontaine authored
    v8::String::Utf8Value previously could allow invalid surrogates when
    interpreting values.
Commits on Apr 2, 2014
  1. @cscott @trevnorris

    node: add signature to SET_PROTOTYPE_METHOD

    cscott authored trevnorris committed
    This prevents segfaults when a native method is reassigned to a
    different object (which corrupts args.This()).  When unwrapping,
    clients should use args.Holder() instead of args.This().
    Closes #6690.
    Signed-off-by: Trevor Norris <>
Commits on Mar 13, 2014
  1. @indutny

    src: update to v8 3.24 APIs

    indutny authored
Commits on Feb 21, 2014
  1. @indutny
Commits on Feb 5, 2014
  1. @trevnorris

    async_wrap: add provider types/pass to constructor

    trevnorris authored
    These will be used to allow users to filter for which types of calls
    they wish their callbacks to run.
    Signed-off-by: Timothy J Fontaine <>
Commits on Nov 12, 2013
  1. @trevnorris

    base-object: add BaseObject

    trevnorris authored
    BaseObject is a class that just handles the Persistent handle attached
    to the class instance.
    This also removed WeakObject. Reordering the inheritance chain helps
    prevent unneeded calls on instances that don't call MakeCallback.
  2. @bnoordhuis

    src: fix Context::Scope usage

    bnoordhuis authored
    env->context() may or may not create a new Local.  It currently does
    not but don't depend on that behavior, create a HandleScope first.
Commits on Nov 11, 2013
  1. @bnoordhuis

    src: fix Environment::GetCurrent() usage

    bnoordhuis authored
    Create a HandleScope before calling the Environment::GetCurrent() that
    takes a v8::Isolate* as an argument because it creates a handle with
    the call to v8::Isolate::CurrentContext().
Commits on Oct 31, 2013
  1. @trevnorris

    async-wrap: integrate with WeakObject

    trevnorris authored
    Making WeakObject inherit from AsyncWrap allows us to peak into almost
    all the MakeCallback calls in Node internals.
Commits on Oct 29, 2013
  1. @trevnorris

    src: shorten Object{Wrap,Unwrap}

    trevnorris authored
    Going back to the original names of Wrap/Unwrap now that most all the
    class members that duplicate the name and functionality have been
  2. @trevnorris

    src: don't use WeakObject::Unwrap

    trevnorris authored
    Switch out to use UnwrapObject from util.h.
Commits on Oct 16, 2013
  1. @indutny
  2. @indutny
Commits on Sep 25, 2013
  1. @bnoordhuis

    src: remove ObjectWrap dependency from core

    bnoordhuis authored
    Drop the ObjectWrap dependency in favor of an internal WeakObject class.
    Let's us stop worrying about API and ABI compatibility when making
    changes to the way node.js deals with weakly persistent handles
Commits on Sep 6, 2013
  1. @bnoordhuis

    src: add multi-context support

    bnoordhuis authored
    This commit makes it possible to use multiple V8 execution contexts
    within a single event loop.  Put another way, handle and request wrap
    objects now "remember" the context they belong to and switch back to
    that context when the time comes to call into JS land.
    This could have been done in a quick and hacky way by calling
    v8::Object::GetCreationContext() on the wrap object right before
    making a callback but that leaves a fairly wide margin for bugs.
    Instead, we make the context explicit through a new Environment class
    that encapsulates everything (or almost everything) that belongs to
    the context.  Variables that used to be a static or a global are now
    members of the aforementioned class.  An additional benefit is that
    this approach should make it relatively straightforward to add full
    isolate support in due course.
    There is no JavaScript API yet but that will be added in the near
    This work was graciously sponsored by GitHub, Inc.
Commits on Aug 9, 2013
  1. @bnoordhuis

    src: use v8::String::NewFrom*() functions

    bnoordhuis authored
    * Change calls to String::New() and String::NewSymbol() to their
      respective one-byte, two-byte and UTF-8 counterparts.
    * Add a FIXED_ONE_BYTE_STRING macro that takes a string literal and
      turns it into a v8::Local<v8::String>.
    * Add helper functions that make v8::String::NewFromOneByte() easier to
      work with. Said function expects a `const uint8_t*` but almost every
      call site deals with `const char*` or `const unsigned char*`. Helps
      us avoid doing reinterpret_casts all over the place.
    * Code that handles file system paths keeps using UTF-8 for backwards
      compatibility reasons. At least now the use of UTF-8 is explicit.
    * Remove v8::String::NewSymbol() entirely. Almost all call sites were
      effectively minor de-optimizations. If you create a string only once,
      there is no point in making it a symbol. If you are create the same
      string repeatedly, it should probably be cached in a persistent
Commits on Jul 31, 2013
  1. @indutny

    src: lint c++ code

    indutny authored
Commits on Jul 20, 2013
  1. @bnoordhuis

    src, lib: update after internal api change

    bnoordhuis authored
    Libuv now returns errors directly.  Make everything in src/ and lib/
    follow suit.
    The changes to lib/ are not strictly necessary but they remove the need
    for the abominations that are process._errno and node::SetErrno().
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 Apr 19, 2013
  1. @trevnorris @bnoordhuis

    src: replace Holder() with This()

    trevnorris authored bnoordhuis committed
    Switch to always use args.This() to retrieve object instance.
Commits on Mar 23, 2013
  1. @tjfontaine @bnoordhuis

    fs: uv_[fl]stat now reports subsecond resolution

    tjfontaine authored bnoordhuis committed
    While libuv supports reporting subsecond stat resolution across
    platforms, to actually get that resolution your platform and filesystem
    must support it (not HFS, ext[23], fat), otherwise the nsecs are 0
Commits on Mar 20, 2013
  1. @trevnorris @bnoordhuis

    src: pass Isolate to all applicable api

    trevnorris authored bnoordhuis committed
    Update the api to pass node_isolate to all supported methods.
    Much thanks to Ben Noordhuis and his work in 51f6e6a.
  2. @trevnorris @bnoordhuis

    bindings: update api

    trevnorris authored bnoordhuis committed
    All compile time warnings about using deprecated APIs have been
    suppressed by updating node's API. Though there are still many function
    calls that can accept Isolate, and still need to be updated.
    node_isolate had to be added as an extern variable in node.h and
    Also a couple small fixes for Error handling.
    Before v8 3.16.6 the error stack message was lazily written when it was
    needed, which allowed you to change the message after instantiation.
    Then the stack would be written with the new message the first time it
    was accessed. Though that has changed. Now it creates the stack message
    on instantiation. So setting a different message afterwards won't be
    This is not a complete fix for the problem. Getting error without any
    message isn't very useful.
Commits on Feb 25, 2013
  1. @bnoordhuis
Commits on Jan 7, 2013
  1. @bnoordhuis
  2. @bnoordhuis
Commits on Aug 20, 2012
  1. @bnoordhuis

    fs: fix use after free in stat watcher

    bnoordhuis authored
    The uv_fs_poll_t handle was stopped but not closed, leaving libuv's internal
    handle queue in a corrupted state.
Commits on Jun 21, 2012
  1. @bnoordhuis
  2. @bnoordhuis
Commits on Apr 17, 2012
  1. @isaacs
Commits on Mar 30, 2012
  1. @bnoordhuis
Commits on Mar 23, 2012
  1. @bnoordhuis

    Avoiding unnecessary ToString() calls

    ssuda authored bnoordhuis committed
    String::Utf8Value and String::AsciiValue constructors take Handle<Value>
    So no need to convert to Handle<String>
Commits on Mar 9, 2012
  1. @bnoordhuis
Commits on Jul 19, 2011
  1. @ry
Something went wrong with that request. Please try again.