Node.js v7- specification

Thursday, 27 October 2016

Node.js v7- specification

Now Node.js release its new version Node.js v7

Now latest version of Node.js introduce: V8 5.4 javascript Engine which brings along with 98% coverage of ES6 language features, improved reliability and performance, and a new experimental URL parser based on the URL Standard defines URLs, domains, IP addresses, the application/x-www-form-urlencoded format, and their API.


V8 5.4 delivers a number of key improvements in memory footprint and startup speed. These primarily help accelerate initial script execution and reduce page load in Chrome.


The general rule for deciding which version of Node.js to use is:

Stay on Node.js v4 or upgrade to Node.js v6 if you need stability and have a complex production environment, e.g. you are a medium or large enterprise.
Upgrade to Node.js v7 if you have the ability to upgrade versions quickly and easily without disrupting your environment and want to play with the latest features as they arrive.


Because this new version of Node.js is shipping with a new version of V8, existing native addons will need to be recompiled or runtime errors will occur when trying to load them. Use npm rebuild or simply remove your node_modules and npm install from scratch.

Buffer

  •  This makes buffer.byteLength() throw if the first argument passed to it is not a Buffer/TypedArray/etc. or string, instead of converting the value to string and calculating the length of that string.
          If other values are being passed, IMHO that could signal a programming error. For example, if           an undefined value is passed in, I would not expect to get 'undefined'.length returned. If            
         undefined is passed in, it probably means I have a bug in my code somewhere where a variable            isn't being set (properly).


  • We want to make Buffer a class so that it can be subclassed. However, instantiating a class requires new. This hard-deprecates calling Buffer without new.

  •  Add a check for size < 0 to assertSize(), as passing a negative value almost certainly indicates a programming error.

        This also lines up the behaviour of .allocUnsafe() with the ones of .alloc() and .    
        allocUnsafeSlow() (which previously threw errors from the Uint8Array constructor).


Child Process
The fork and execFile methods now have stronger argument validation.

Cluster
The worker.suicide method is deprecated and will emit a process warning.

Deps
V8 has been updated to 5.4.500.36 .
NODE_MODULE_VERSION has been updated to 51 .

File System
A process warning is emitted if a callback is not passed to async file system methods.

Intl
Intl.v8BreakIterator constructor has been deprecated and will emit a process warning.

Promises
Unhandled Promise rejections have been deprecated and will emit a process warning.

Punycode
The punycode module has been deprecated.

URL
An Experimental WHATWG URL Parser has been introduced.

Note:

As an odd numbered release, in accordance with our Long Term Support plan, Node.js v7 will be supported only until about June, 2017, with Node.js v8 currently scheduled for release in April, 2017.

No comments:

Post a comment