NAN ChangeLog

Version 2.2.1: current Node 5.9.1, Node 12: 0.12.12, Node 10: 0.10.43, iojs: 3.3.1

2.2.1 Mar 29 2016

  • Bugfix: Use NewFromUnsigned in ReturnValue::Set(uint32_t i) for pre_12 3a18f9bdce29826e0e4c217854bc476918241a58

  • Performance: Remove unneeeded nullptr checks b715ef44887931c94f0d1605b3b1a4156eebece9

2.2.0 Jan 9 2016

  • Feature: Add Function::Call wrapper 4c157474dacf284d125c324177b45aa5dabc08c6

  • Feature: Rename GC*logueCallback to GCCallback for > 4.0 3603435109f981606d300eb88004ca101283acec

  • Bugfix: Fix Global::Pass for old versions 367e82a60fbaa52716232cc89db1cc3f685d77d9

  • Bugfix: Remove weird MaybeLocal wrapping of what already is a MaybeLocal 23b4590db10c2ba66aee2338aebe9751c4cb190b

2.1.0 Oct 8 2015

  • Deprecation: Deprecate NanErrnoException in favor of ErrnoException 0af1ca4cf8b3f0f65ed31bc63a663ab3319da55c

  • Feature: added helper class for accessing contents of typedarrays 17b51294c801e534479d5463697a73462d0ca555

  • Feature: [Maybe types] Add MakeMaybe(...) 48d7b53d9702b0c7a060e69ea10fea8fb48d814d

  • Feature: new: allow utf16 string with length 66ac6e65c8ab9394ef588adfc59131b3b9d8347b

  • Feature: Introduce SetCallHandler and SetCallAsFunctionHandler 7764a9a115d60ba10dc24d86feb0fbc9b4f75537

  • Bugfix: Enable creating Locals from Globals under Node 0.10. 9bf9b8b190821af889790fdc18ace57257e4f9ff

  • Bugfix: Fix issue #462 where PropertyCallbackInfo data is not stored safely. 55f50adedd543098526c7b9f4fffd607d3f9861f

2.0.9 Sep 8 2015

  • Bugfix: EscapableHandleScope in Nan::NewBuffer for Node 0.8 and 0.10 b1654d7

2.0.8 Aug 28 2015

  • Work around duplicate linking bug in clang 11902da

2.0.7 Aug 26 2015

  • Build: Repackage

2.0.6 Aug 26 2015

  • Bugfix: Properly handle null callback in FunctionTemplate factory 6e99cb1

  • Bugfix: Remove unused static std::map instances 525bddc

  • Bugfix: Make better use of maybe versions of APIs bfba85b

  • Bugfix: Fix shadowing issues with handle in ObjectWrap 0a9072d

2.0.5 Aug 10 2015

  • Bugfix: Reimplement weak callback in ObjectWrap 98d38c1

  • Bugfix: Make sure callback classes are not assignable, copyable or movable 81f9b1d

2.0.4 Aug 6 2015

  • Build: Repackage

2.0.3 Aug 6 2015

  • Bugfix: Don't use clang++ / g++ syntax extension. 231450e

2.0.2 Aug 6 2015

  • Build: Repackage

2.0.1 Aug 6 2015

  • Bugfix: Add workaround for missing REPLACE_INVALID_UTF8 60d6687

  • Bugfix: Reimplement ObjectWrap from scratch to prevent memory leaks 6484601

  • Bugfix: Fix Persistent leak in FunctionCallbackInfo and PropertyCallbackInfo 641ef5f

  • Bugfix: Add missing overload for Nan::NewInstance that takes argc/argv 29450ed

2.0.0 Jul 31 2015

  • Change: Renamed identifiers with leading underscores b5932b4

  • Change: Replaced NanObjectWrapHandle with class NanObjectWrap 464f1e1

  • Change: Replace NanScope and NanEscpableScope macros with classes 47751c4

  • Change: Rename NanNewBufferHandle to NanNewBuffer 6745f99

  • Change: Rename NanBufferUse to NanNewBuffer 3e8b0a5

  • Change: Rename NanNewBuffer to NanCopyBuffer d6af78d

  • Change: Remove Nan prefix from all names 72d1f67

  • Change: Update Buffer API for new upstream changes d5d3291

  • Change: Rename Scope and EscapableScope to HandleScope and EscapableHandleScope 21a7a6a

  • Change: Get rid of Handles e6c0daf

  • Feature: Support io.js 3 with V8 4.4

  • Feature: Introduce NanPersistent 7fed696

  • Feature: Introduce NanGlobal 4408da1

  • Feature: Added NanTryCatch 10f1ca4

  • Feature: Update for V8 v4.3 4b6404a

  • Feature: Introduce NanNewOneByteString c543d32

  • Feature: Introduce namespace Nan 67ed1b1

  • Removal: Remove NanLocker and NanUnlocker dd6e401

  • Removal: Remove string converters, except NanUtf8String, which now follows the node implementation b5d00a9

  • Removal: Remove NanReturn* macros d90a25c

  • Removal: Remove HasInstance e8f84fe

1.9.0 Jul 31 2015

  • Feature: Added NanFatalException 81d4a2c

  • Feature: Added more error types 4265f06

  • Feature: Added dereference and function call operators to NanCallback c4b2ed0

  • Feature: Added indexed GetFromPersistent and SaveToPersistent edd510c

  • Feature: Added more overloads of SaveToPersistent and GetFromPersistent 8b1cef6

  • Feature: Added NanErrnoException dd87d9e

  • Correctness: Prevent assign, copy, and move for classes that do not support it 1f55c59, 4b808cb, c96d9b2, fba4a29, 3357130

  • Deprecation: Deprecate NanGetPointerSafe and NanSetPointerSafe 81d4a2c

  • Deprecation: Deprecate NanBooleanOptionValue and NanUInt32OptionValue 0ad254b

1.8.4 Apr 26 2015

  • Build: Repackage

1.8.3 Apr 26 2015

  • Bugfix: Include missing header 1af8648

1.8.2 Apr 23 2015

  • Build: Repackage

1.8.1 Apr 23 2015

  • Bugfix: NanObjectWrapHandle should take a pointer 155f1d3

1.8.0 Apr 23 2015

  • Feature: Allow primitives with NanReturnValue 2e4475e

  • Feature: Added comparison operators to NanCallback 55b075e

  • Feature: Backport thread local storage 15bb7fa

  • Removal: Remove support for signatures with arguments 8a2069d

  • Correcteness: Replaced NanObjectWrapHandle macro with function 0bc6d59

1.7.0 Feb 28 2015

  • Feature: Made NanCallback::Call accept optional target 8d54da7

  • Feature: Support atom-shell 0.21 0b7f1bb

1.6.2 Feb 6 2015

  • Bugfix: NanEncode: fix argument type for node::Encode on io.js 2be8639

1.6.1 Jan 23 2015

  • Build: version bump

1.5.3 Jan 23 2015

  • Build: repackage

1.6.0 Jan 23 2015

  • Deprecated NanNewContextHandle in favor of NanNew<Context> 49259af

  • Support utility functions moved in newer v8 versions (Node 0.11.15, io.js 1.0) a0aa179

  • Added NanEncode, NanDecodeBytes and NanDecodeWrite 75e6fb9

1.5.2 Jan 23 2015

  • Bugfix: Fix non-inline definition build error with clang++ 21d96a1, 60fadd4

  • Bugfix: Readded missing String constructors 18d828f

  • Bugfix: Add overload handling NanNew(..) 5ef813b

  • Bugfix: Fix uv_work_cb versioning 997e4ae

  • Bugfix: Add function factory and test 4eca89c

  • Bugfix: Add object template factory and test cdcb951

  • Correctness: Lifted an io.js related typedef c9490be

  • Correctness: Make explicit downcasts of String lengths 00074e6

  • Windows: Limit the scope of disabled warning C4530 83d7deb

1.5.1 Jan 15 2015

  • Build: version bump

1.4.3 Jan 15 2015

  • Build: version bump

1.4.2 Jan 15 2015

  • Feature: Support io.js 0dbc5e8

1.5.0 Jan 14 2015

  • Feature: Support io.js b003843

  • Correctness: Improved NanNew internals 9cd4f6a

  • Feature: Implement progress to NanAsyncWorker 8d6a160

1.4.1 Nov 8 2014

  • Bugfix: Handle DEBUG definition correctly

  • Bugfix: Accept int as Boolean

1.4.0 Nov 1 2014

  • Feature: Added NAN_GC_CALLBACK 6a5c245

  • Performance: Removed unnecessary local handle creation 18a7243, 41fe2f8

  • Correctness: Added constness to references in NanHasInstance 02c61cd

  • Warnings: Fixed spurious warnings from -Wundef and -Wshadow, 541b122, 99d8cb6

  • Windoze: Shut Visual Studio up when compiling 8d558c1

  • License: Switch to plain MIT from custom hacked MIT license 11de983

  • Build: Added test target to Makefile e232e46

  • Performance: Removed superfluous scope in NanAsyncWorker f4b7821

  • Sugar/Feature: Added NanReturnThis() and NanReturnHolder() shorthands 237a5ff, d697208

  • Feature: Added suitable overload of NanNew for v8::Integer::NewFromUnsigned b27b450

1.3.0 Aug 2 2014

  • Added NanNew(std::string)

  • Added NanNew(std::string&)

  • Added NanAsciiString helper class

  • Added NanUtf8String helper class

  • Added NanUcs2String helper class

  • Deprecated NanRawString()

  • Deprecated NanCString()

  • Added NanGetIsolateData(v8::Isolate *isolate)

  • Added NanMakeCallback(v8::Handle target, v8::Handle func, int argc, v8::Handle* argv)

  • Added NanMakeCallback(v8::Handle target, v8::Handle symbol, int argc, v8::Handle* argv)

  • Added NanMakeCallback(v8::Handle target, const char method, int argc, v8::Handle argv)

  • Added NanSetTemplate(v8::Handle templ, v8::Handle name , v8::Handle value, v8::PropertyAttribute attributes)

  • Added NanSetPrototypeTemplate(v8::Local templ, v8::Handle name, v8::Handle value, v8::PropertyAttribute attributes)

  • Added NanSetInstanceTemplate(v8::Local templ, const char *name, v8::Handle value)

  • Added NanSetInstanceTemplate(v8::Local templ, v8::Handle name, v8::Handle value, v8::PropertyAttribute attributes)

1.2.0 Jun 5 2014

  • Add NanSetPrototypeTemplate

  • Changed NAN_WEAK_CALLBACK internals, switched _NanWeakCallbackData to class,

    introduced _NanWeakCallbackDispatcher

  • Removed -Wno-unused-local-typedefs from test builds

  • Made test builds Windows compatible ('Sleep()')

1.1.2 May 28 2014

  • Release to fix more stuff-ups in 1.1.1

1.1.1 May 28 2014

  • Release to fix version mismatch in nan.h and lack of changelog entry for 1.1.0

1.1.0 May 25 2014

  • Remove nan_isolate, use v8::Isolate::GetCurrent() internally instead

  • Additional explicit overloads for NanNew(): (char,int), (uint8_t[,int]),

    (uint16_t[,int), double, int, unsigned int, bool, v8::String::ExternalStringResource,

    v8::String::ExternalAsciiStringResource*

  • Deprecate NanSymbol()

  • Added SetErrorMessage() and ErrorMessage() to NanAsyncWorker

1.0.0 May 4 2014

  • Heavy API changes for V8 3.25 / Node 0.11.13

  • Use cpplint.py

  • Removed NanInitPersistent

  • Removed NanPersistentToLocal

  • Removed NanFromV8String

  • Removed NanMakeWeak

  • Removed NanNewLocal

  • Removed NAN_WEAK_CALLBACK_OBJECT

  • Removed NAN_WEAK_CALLBACK_DATA

  • Introduce NanNew, replaces NanNewLocal, NanPersistentToLocal, adds many overloaded typed versions

  • Introduce NanUndefined, NanNull, NanTrue and NanFalse

  • Introduce NanEscapableScope and NanEscapeScope

  • Introduce NanMakeWeakPersistent (requires a special callback to work on both old and new node)

  • Introduce NanMakeCallback for node::MakeCallback

  • Introduce NanSetTemplate

  • Introduce NanGetCurrentContext

  • Introduce NanCompileScript and NanRunScript

  • Introduce NanAdjustExternalMemory

  • Introduce NanAddGCEpilogueCallback, NanAddGCPrologueCallback, NanRemoveGCEpilogueCallback, NanRemoveGCPrologueCallback

  • Introduce NanGetHeapStatistics

  • Rename NanAsyncWorker#SavePersistent() to SaveToPersistent()

0.8.0 Jan 9 2014

  • NanDispose -> NanDisposePersistent, deprecate NanDispose

  • Extract NANRETURN_TYPE, pull up NAN()

0.7.1 Jan 9 2014

  • Fixes to work against debug builds of Node

  • Safer NanPersistentToLocal (avoid reinterpret_cast)

  • Speed up common NanRawString case by only extracting flattened string when necessary

0.7.0 Dec 17 2013

  • New no-arg form of NanCallback() constructor.

  • NanCallback#Call takes Handle rather than Local

  • Removed deprecated NanCallback#Run method, use NanCallback#Call instead

  • Split off NANARGS_TYPE from _NAN_ARGS

  • Restore (unofficial) Node 0.6 compatibility at NanCallback#Call()

  • Introduce NanRawString() for char (or appropriate void) from v8::String

    (replacement for NanFromV8String)

  • Introduce NanCString() for null-terminated char* from v8::String

0.6.0 Nov 21 2013

  • Introduce NanNewLocal(v8::Handle value) for use in place of

    v8::Local::New(...) since v8 started requiring isolate in Node 0.11.9

0.5.2 Nov 16 2013

  • Convert SavePersistent and GetFromPersistent in NanAsyncWorker from protected and public

0.5.1 Nov 12 2013

  • Use node::MakeCallback() instead of direct v8::Function::Call()

0.5.0 Nov 11 2013

  • Added @TooTallNate as collaborator

  • New, much simpler, "include_dirs" for binding.gyp

  • Added full range of NANINDEX macros to match NANPROPERTY macros

0.4.4 Nov 2 2013

  • Isolate argument from v8::Persistent::MakeWeak removed for 0.11.8+

0.4.3 Nov 2 2013

  • Include node_object_wrap.h, removed from node.h for Node 0.11.8.

0.4.2 Nov 2 2013

  • Handle deprecation of v8::Persistent::Dispose(v8::Isolate* isolate)) for

    Node 0.11.8 release.

0.4.1 Sep 16 2013

  • Added explicit #include <uv.h> as it was removed from node.h for v0.11.8

0.4.0 Sep 2 2013

  • Added NAN_INLINE and NAN_DEPRECATED and made use of them

  • Added NanError, NanTypeError and NanRangeError

  • Cleaned up code

0.3.2 Aug 30 2013

  • Fix missing scope declaration in GetFromPersistent() and SaveToPersistent

    in NanAsyncWorker

0.3.1 Aug 20 2013

  • fix "not all control paths return a value" compile warning on some platforms

0.3.0 Aug 19 2013

  • Made NAN work with NPM

  • Lots of fixes to NanFromV8String, pulling in features from new Node core

  • Changed node::encoding to Nan::Encoding in NanFromV8String to unify the API

  • Added optional error number argument for NanThrowError()

  • Added NanInitPersistent()

  • Added NanReturnNull() and NanReturnEmptyString()

  • Added NanLocker and NanUnlocker

  • Added missing scopes

  • Made sure to clear disposed Persistent handles

  • Changed NanAsyncWorker to allocate error messages on the heap

  • Changed NanThrowError(Local) to NanThrowError(Handle)

  • Fixed leak in NanAsyncWorker when errmsg is used

0.2.2 Aug 5 2013

  • Fixed usage of undefined variable with node::BASE64 in NanFromV8String()

0.2.1 Aug 5 2013

  • Fixed 0.8 breakage, node::BUFFER encoding type not available in 0.8 for

    NanFromV8String()

0.2.0 Aug 5 2013

  • Added NAN_PROPERTY_GETTER, NAN_PROPERTY_SETTER, NAN_PROPERTY_ENUMERATOR,

    NAN_PROPERTY_DELETER, NAN_PROPERTY_QUERY

  • Extracted _NAN_METHOD_ARGS, _NAN_GETTER_ARGS, _NAN_SETTER_ARGS,

    _NAN_PROPERTY_GETTER_ARGS, _NAN_PROPERTY_SETTER_ARGS,

    _NAN_PROPERTY_ENUMERATOR_ARGS, _NAN_PROPERTY_DELETER_ARGS,

    _NAN_PROPERTY_QUERY_ARGS

  • Added NanGetInternalFieldPointer, NanSetInternalFieldPointer

  • Added NAN_WEAK_CALLBACK, NAN_WEAK_CALLBACK_OBJECT,

    NAN_WEAK_CALLBACK_DATA, NanMakeWeak

  • Renamed THROW_ERROR to _NAN_THROW_ERROR

  • Added NanNewBufferHandle(char, size_t, node::smalloc::FreeCallback, void)

  • Added NanBufferUse(char*, uint32_t)

  • Added NanNewContextHandle(v8::ExtensionConfiguration*,

    v8::Handle<v8::ObjectTemplate>, v8::Handle<v8::Value>)
  • Fixed broken NanCallback#GetFunction()

  • Added optional encoding and size arguments to NanFromV8String()

  • Added NanGetPointerSafe() and NanSetPointerSafe()

  • Added initial test suite (to be expanded)

  • Allow NanUInt32OptionValue to convert any Number object

0.1.0 Jul 21 2013

  • Added NAN_GETTER, NAN_SETTER

  • Added NanThrowError with single Local argument

  • Added NanNewBufferHandle with single uint32_t argument

  • Added NanHasInstance(Persistent<FunctionTemplate>&, Handle<Value>)

  • Added Local<Function> NanCallback#GetFunction()

  • Added NanCallback#Call(int, Local<Value>[])

  • Deprecated NanCallback#Run(int, Local<Value>[]) in favour of Call

Last updated