CHANGELOG.md 21 KB

NAN ChangeLog

Version 2.17.0: current Node 18.10.0, Node 0.12: 0.12.18, Node 0.10: 0.10.48, iojs: 3.3.1

2.17.0 Oct 10 2022

2.16.0 May 25 2022

2.15.0 Aug 4 2021

2.14.2 Oct 13 2020

2.14.1 Apr 21 2020

  • Bugfix: use GetBackingStore() instead of GetContents() (#888) 2c023bd447

2.14.0 May 16 2019

  • Feature: Add missing methods to Nan::Maybe (#852) 4e962489fb
  • 2.13.2 Mar 24 2019

    2.13.1 Mar 14 2019

    • Bugfix: check V8 version directly instead of inferring from NMV (#840) 12f9df9f39

    2.13.0 Mar 13 2019

    2.12.1 Dec 18 2018

    • Bugfix: Fix build breakage with Node.js 10.0.0-10.9.0. (#833) 625e90e8fe

    2.12.0 Dec 16 2018

    • Bugfix: Add scope.Escape() to Call() (#817) 2e5ed4fc3a
    • Bugfix: Fix Node.js v10.12.0 deprecation warnings. 509859cc23
    • Feature: Allow SetWeak() for non-object persistent handles. (#824) e6ef6a48e7

    2.11.1 Sep 29 2018

    2.11.0 Aug 25 2018

    • Removal: remove FunctionCallbackInfo::Callee for nodejs >= 10 1a56c0a6ef
    • Bugfix: Fix AsyncProgressWorkerBase::WorkProgress sends invalid data b0c764d1da
    • Feature: Introduce GetCurrentEventLoop b4911b0bb1
    • Feature: Add NAN_MODULE_WORKER_ENABLED macro as a replacement for NAN_MODULE b058fb047d

    2.10.0 Mar 16 2018

    2.9.2 Feb 22 2018

    2.9.1 Feb 22 2018

    • Bugfix: Avoid deprecation warnings in deprecated Nan::Callback::operator() 372b14d912
    • Bugfix: Avoid deprecation warnings in Nan::JSON 3bc294bce0

    2.9.0 Feb 22 2018

    • Deprecation: Deprecate legacy Callback::Call 6dd5fa690a
    • Feature: introduce AsyncResource class 90c0a179c0d8cb5fd26f1a7d2b1d6231eb402d48o
    • Feature: Add context aware Nan::Callback::Call functions 7169e09fb0
    • Feature: Make AsyncWorker context aware 066ba21a6f
    • Feature: add Callback overload to Nan::Call 5328daf66e
    • Bugfix: fix warning: suggest parentheses around && within || b2bb63d68b
    • Bugfix: Fix compilation on io.js 3 d06114dba0

    2.8.0 Nov 15 2017

    • Deprecation: Deprecate Nan::ForceSet in favor of Nan::DefineOwnProperty() 95cbb976d6
    • Feature: Add Nan::AsyncProgressQueueWorker a976636ecc
    • Feature: Add Nan::DefineOwnProperty() 95cbb976d6
    • Bugfix: Fix compiling on io.js 1 & 2 82705a6450
    • Bugfix: Use DefineOwnProperty instead of ForceSet 95cbb976d6

    2.7.0 Aug 30 2017

    • Feature: Add Nan::To<v8::Function>() overload. b93280670c
    • Bugfix: Fix ternary in Nan::MaybeLocal<T>::FromMaybe<S>(). 79a26f7d36

    2.6.2 Apr 12 2017

    • Bugfix: Fix v8::JSON::Parse() deprecation warning. 87f6a3c658

    2.6.1 Apr 6 2017

    • Bugfix: nan_json.h: fix build breakage in Node 6 ac8d47dc3c

    2.6.0 Apr 6 2017

    • Feature: nan: add support for JSON::Parse & Stringify b533226c62

    2.5.1 Jan 23 2017

    • Bugfix: Fix disappearing handle for private value 6a80995694
    • Bugfix: Add missing scopes a93b8bae6b
    • Bugfix: Use string::data instead of string::front in NewOneByteString d5f920371e

    2.5.0 Dec 21 2016

    • Feature: Support Private accessors a86255cb35
    • Bugfix: Abort in delete operators that shouldn't be called 0fe38215ff

    2.4.0 Jul 10 2016

    • Feature: Rewrite Callback to add Callback::Reset c4cf44d61f
    • Feature: AsyncProgressWorker: add template types for .send 1242c9a11a
    • Bugfix: Add constness to old Persistent comparison operators bd43cb9982

    2.3.5 May 31 2016

    • Bugfix: Replace NAN_INLINE with 'inline' keyword. 71819d8725

    2.3.4 May 31 2016

    2.3.3 May 4 2016

    • Bugfix: Refactor SetMethod() to deal with v8::Templates (#566) b9083cf6d5

    2.3.2 Apr 27 2016

    • Bugfix: Fix compilation on outdated versions due to Handle removal f8b7c875d0

    2.3.1 Apr 27 2016

    • Bugfix: Don't use deprecated v8::Template::Set() in SetMethod a90951e9ea

    2.3.0 Apr 27 2016

    • Feature: added Signal() for invoking async callbacks without sending data from AsyncProgressWorker d8adba45f2
    • Bugfix: Don't use deprecated v8::Template::Set() 00dacf0a4b

    2.2.1 Mar 29 2016

    • Bugfix: Use NewFromUnsigned in ReturnValue::Set(uint32_t i) for pre_12 3a18f9bdce
    • Performance: Remove unneeeded nullptr checks b715ef4488
    • 2.2.0 Jan 9 2016

      • Feature: Add Function::Call wrapper 4c157474da
      • Feature: Rename GC*logueCallback to GCCallback for > 4.0 3603435109
      • Bugfix: Fix Global::Pass for old versions 367e82a60f
      • Bugfix: Remove weird MaybeLocal wrapping of what already is a MaybeLocal 23b4590db1

      2.1.0 Oct 8 2015

      • Deprecation: Deprecate NanErrnoException in favor of ErrnoException 0af1ca4cf8
      • Feature: added helper class for accessing contents of typedarrays 17b51294c8
      • Feature: [Maybe types] Add MakeMaybe(...) 48d7b53d97
      • Feature: new: allow utf16 string with length 66ac6e65c8
      • Feature: Introduce SetCallHandler and SetCallAsFunctionHandler 7764a9a115
      • Bugfix: Enable creating Locals from Globals under Node 0.10. 9bf9b8b190
      • Bugfix: Fix issue #462 where PropertyCallbackInfo data is not stored safely. 55f50adedd

      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

        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::Handlev8::Object target, v8::Handlev8::Function func, int argc, v8::Handlev8::Value* argv)
        • Added NanMakeCallback(v8::Handlev8::Object target, v8::Handlev8::String symbol, int argc, v8::Handlev8::Value* argv)
        • Added NanMakeCallback(v8::Handlev8::Object target, const char* method, int argc, v8::Handlev8::Value* argv)
        • Added NanSetTemplate(v8::Handlev8::Template templ, v8::Handlev8::String name , v8::Handlev8::Data value, v8::PropertyAttribute attributes)
        • Added NanSetPrototypeTemplate(v8::Localv8::FunctionTemplate templ, v8::Handlev8::String name, v8::Handlev8::Data value, v8::PropertyAttribute attributes)
        • Added NanSetInstanceTemplate(v8::Localv8::FunctionTemplate templ, const char *name, v8::Handlev8::Data value)
        • Added NanSetInstanceTemplate(v8::Localv8::FunctionTemplate templ, v8::Handlev8::String name, v8::Handlev8::Data 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 NAN_RETURNTYPE, 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 NAN_ARGS_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::Handlev8::ObjectTemplate, v8::Handlev8::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