What’s New in ChakraCore P4103 What’s New in ChakraCore Brian Terlson @bterlson github.com/bterlson
Open Source JavaScript Engine
Open Source & Cross Platform JavaScript Engine
Open Source & Cross Platform & Standards Compliant JavaScript Engine
Open Source & Cross Platform & Standards Compliant & High Performance JavaScript Engine
Open Source & Cross Platform & Standards Compliant & High Performance & Embeddable JavaScript Engine
Github.com/Microsoft/ChakraCore Keep on top of updates Download releases File bugs Send Pull Requests (“my-first-pr” label)
JS Next: Full ES2016 & ES2017 Support Object.values & Object.entries Array.prototype.includes [NaN].indexOf(NaN); // => -1 Object.values({x: 1, y: 2}); [NaN].includes(NaN); // => true // => [1, 2] Object.entries({x: 1, y: 2}); Exponentiation Operator // => [ [‘x’, 1], [‘y’, 2] ] let y = x ** 2 + 2 * x + 5; String Padding Async Functions “$2.00”.padStart(8); // => “ $2.00” async function add (p1, p2) { … & more! return await p1 + await p2 }
Performance Wins Function Body Re-deferral Shared Array Buffers & Atomics WebAssembly
Performance Wins Function Body Re-deferral Shared Array Buffers & Atomics WebAssembly
Performance Wins Function Body Re-deferral Shared Array Buffers & Atomics WebAssembly
WebAssembly (WASM) Demo
Node-ChakraCore & N-API N-API: a stable API for native module developers Collaboration among Node, IBM, NodeSource, NearForm, Intel, and others. Upgrade Node without recompiling modules Swap Node for Node-ChakraCore without recompiling
Time Travel Debugging
JavaScript Runtime APIs (JSRT) Enable JavaScript scriptability in any application Simple C APIs – Easy to Start Resource Throttling – Manage Resources Script Serialization – Faster Startup & Throughput Rental Threading – Manage Resources & Performance
Thanks for watching! ChakraCore: https://github.com/Microsoft/chakracore Node-ChakraCore: https://github.com/nodejs/node-chakracore JSRT Overview & Documentation: https://aka.ms/ChakraCoreJSRT WebAssembly (WASM) Demo: http://webassembly.org/demo/ Brian Terlson @bterlson github.com/bterlson