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
Node.js 8
By Vladimir de Turckheim
Node.js 8
- 674