Node.js 8

Outline

  • History
  • Components versions
  • Language
  • API

Vladimir de Turckheim

Lead Node.js engineer @ Sqreen​ (ex. Steamulo, Secway)

History

Delayed version

  • Supposed to be shipped with old V8
    • Implies perf issues
    • Implies security issues
  • API compatibility

Shipping it in April would have mean 3 years of complicated maintenance

Components versions

Node V8 OpenSSL HTTP parser npm LibUV
7.10 5.5.372.43 1.0.2k 2.7.0 4.2.0 1.11.0
8.0.0 5.8.283.41 1.0.2k 2.7.0 5.0.0 1.11.0
8.1.2 5.8.283.41 1.0.2l 1.7.0 5.0.3 1.12.0
9.0.0 (night) 5.9.211.32 1.0.2l 2.7.0 5.0.3 1.12.0

Language

padStart padEnd

'aaa'.padStart(5)
'  aaa'

'aaa'.padEnd(5)
'aaa  '

Checkmate npm

trailing commas in function syntax

function(){
    return typeof function f( a, b, ){} === 'function';
}


function(){
    return Math.min(1,2,3,) === 1;
}

behind flag

object rest/spread properties

function(){
    var {a, ...rest} = {a: 1, b: 2, c: 3};
    return a === 1 && rest.a === undefined && rest.b === 2 && rest.c === 3;
}

function(){
    var spread = {b: 2, c: 3};
    var O = {a: 1, ...spread};
    return O !== spread && (O.a + O.b + O.c) === 6;
}

API

N-API (expe)

util.promisify

AsyncHooks (expe)

0-filling buffers

That's it

Made with Slides.com