---
title: "V8 Lite, accurate timing in JavaScript, and generating a million digits of Pi"
publication: "JavaScript Weekly"
issue: 454
published_at: "2019-09-13"
canonical_url: "https://javascriptweekly.com/issues/454"
---

This week's JavaScript news       

#454 — September 13, 2019 

[Read on the Web](https://javascriptweekly.com/issues/454)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1568384206/o0ffcaju8gygginaycog.jpg)](https://v8.dev/blog/v8-lite)   

[V8's Work on a _Lighter_ V8](https://v8.dev/blog/v8-lite) — _V8 Lite_ has been a project aimed at reducing V8’s memory usage. Initially it was going to be a separate _mode_ of V8 but many improvements have been able to come over to regular V8 too. Here’s a look at some of the key optimizations and the actual benefits to real workloads. 

Mythri Alle, Dan Elphick, and Ross McIlroy (V8)   

[Moving Your JavaScript Development to the Terminal on Windows](https://www.smashingmagazine.com/2019/09/moving-javascript-development-bash-windows/) — If you’ve recently taken a look at Windows after becoming comfortable with macOS or Linux, this is for you. It’s a very detailed look at creating a powerful and elegant terminal-based development experience on Windows 10 using WSL and more. 

Burke Holland   [![\](https://copm.s3.amazonaws.com/34cb443b.png)](https://percy.io/?sponsorednewsletter&utm_source=javascript_weekly&utm_medium=sponsored_newsletter&utm_campaign=190913) 

[All-In-One Visual Testing and Review Platform](https://percy.io/?sponsorednewsletter&utm_source=javascript_weekly&utm_medium=sponsored_newsletter&utm_campaign=190913) — Replace time-consuming manual QA to catch visual UI bugs automatically. With Percy, you can test your UI across browsers and responsive widths on every pull request for continuous visual coverage. 

Percy sponsor   

[Metronomes in JavaScript](https://meowni.ca/posts/metronomes/) — An interesting experiment in comparing the efficacy of async functions, Web Workers, and using the Web Audio API’s clock for scheduling things precisely. 

Monica Dinculescu   

[Lists of New ECMAScript Features by Version](https://github.com/daumann/ECMAScript-new-features-list) — This is pretty neat. Short and sweet lists of new ES features (with basic examples) that were introduced in ES2015 (a.k.a. ES6), ES2016, ES2017 and so on. 

Dietmar Aumann   

[Immer 4.0: A Way to Work with Immutable State in JS](https://immerjs.github.io/immer/docs/introduction) — A popular package for working with immutable state in a convenient way. You apply changes to a _draft_ state object and the mutations are applied to a state resulting in a new one. 

immer  

💻 Jobs  

[Full Stack Engineer](https://we.are.expensify.com/) — Expensify seeks a self-driven individual passionate about making code effective, with an understanding of algorithms and design patterns. 

Expensify   

[Find a JavaScript job through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-javascriptweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77584) — Make a free profile, name your salary, and connect with hiring managers from top employers. 

Vettery  

📘 Articles & Tutorials  

[Let's Generate a Million Digits of Pi in 9 Lines of JavaScript](http://ajennings.net/blog/a-million-digits-of-pi-in-9-lines-of-javascript.html) — [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) support makes this possible. 

Andrew Jennings   

[A Re-Introduction to Destructuring Assignment](https://www.smashingmagazine.com/2019/09/reintroduction-destructuring-assignment/) — [_Destructuring assignment_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment), introduced in ES6, provides an interesting way to dig into arrays and other objects to withdraw values more directly. 

Laurie Barth   

[A Much Faster Way to Debug Code Than with Breakpoints or console.log](https://wallabyjs.com/?utm_source=javascriptweekly&utm_medium=sponsored_newsletter&utm_campaign=javascriptweekly&utm_content=javascriptweekly) — Wallaby catches errors in your tests and code and displays them right in your editor as you type, making your development feedback loop more productive. 

Wallaby.js sponsor   

[Using `void` in JavaScript and TypeScript](https://fettblog.eu/void-in-javascript-and-typescript/) — `void` means rather different things in JS and TypeScript and does some things I hadn’t expected too. 

Stefan Baumgartner   

[The 5 Big Features of TypeScript 3.7 and How to Use Them](https://httptoolkit.tech/blog/5-big-features-of-typescript-3.7/) — It’s due in early November. 

Tim Perry   

▶[A 6 Hour React Native 'Crash Course' for Beginners](https://www.youtube.com/watch?v=qSRrxpdMpVc) — It’s slow going at first, but that’s because it’s truly aimed at beginners. It’s amazing how much is included here, though, and it’s well recorded too. 

Maximilian Schwarzmüller   

[It’s Not Wrong That `"`🤦🏼‍♂️`".length == 7`](https://hsivonen.fi/string-length/) — The underlying ‘length’ of an emoji character is a complicated thing.. not just in JavaScript but in other languages too. 

Henri Sivonen   

[X3D: Declarative 3D for the Modern Web](https://blog.scottlogic.com/2019/08/27/declarative-3d-for-the-modern-web.html) — A look at X3D and how it offers a simple declarative approach for including 3D visualizations into web pages. 

Adrian Sureshkumar   

[How Taiko Compares to Other Browser Automation Tools](https://gauge.org/2019/08/21/how-taiko-compares-to-other-browser-automation-tools/?utm_source=how_taiko_blog&utm=medium=js_weekly&utm_campaign=taiko_js_ads&utm_term=&utm_content=) 

ThoughtWorks - Taiko sponsor   

[Angular Dependency Injection Tips](https://codeburst.io/angular-dependency-injection-tips-ddb24b8244be) 

Armen Vardanyan   

▶[11 Talks from JSFoo VueDay 2019](https://www.youtube.com/playlist?list=PL279M8GbNsetq9zfE2yXEuKcUhZR0mnz3#jsfoovueday) — Talks from a Vue conference that took place in India two weeks ago. 

YouTube  

🔧 Code & Tools  

[nanoSQL 2: A Universal 'Database Layer' for Client, Server and Mobile](https://nanosql.io/) — Basically an abstraction for any JavaScript developers who want a database in their app. It can use numerous actual databases behind the scenes, including localStorage, IndexedDB, RocksDB, Redis, DynamoDB, ScyllaDB and SQLite. It claims to be like “Lego™ for databases”. 

Scott Lott   

[React Suite 4.0: A Suite of 'Sensible' UI Components](https://rsuitejs.com/en/) — A set of components that’s been under active development for a couple of years now. Supports React 16+, uses TypeScript, and they work on all major browsers. [Components](https://rsuitejs.com/en/components/overview) include things like buttons, modals, drawers, navigation bars, form input fields, tables, calendars, and more. [GitHub repo.](https://github.com/rsuite/rsuite) 

HYPERS   

[Spacekit: A Library for Creating 3D Visualizations of Space](https://github.com/typpo/spacekit) — Here’s [an example.](https://typpo.github.io/spacekit/examples/jupiter/index.html) 

Ian Webster   

[Headroom.js: Hides Your Page Header Until Needed](http://wicky.nillia.ms/headroom.js/) — A pure JS widget for hiding elements until needed (for example, show your page header when scrolling _up_). 

Nick Williams   

[Automated Code Reviews for JavaScript](https://lp.codacy.com/code-reviews?utm_source=CooperPress&utm_medium=cpm&utm_campaign=CooperPress-JSSL) — Set standards on coverage, duplication, complexity, and style issues and see real-time feedback in your Git workflow. 

Codacy sponsor   

[Storytime: Tell Stories About Pieces of Code](https://storytime.dev/) — This is hard to explain without a demo, so check out this [explain demonstrating how React Fiber works.](https://storytime.dev/preview/5d5174964e66de48e9a5c176) 

Storytime   

[Emoji Button: A Vanilla JavaScript Emoji Picker](https://github.com/joeattardi/emoji-button) — Turns a button element into an emoji picker (similar to that some operating systems provide). 

Joe Attardi   

[Filesize.js: A Library to Create Human Readable File Size Strings](https://github.com/avoidwork/filesize.js) — For example: `filesize(265318)` returns 259.1 KB. 

Jason Mulligan     

⚡️ Quick Releases 

- [Babel 7.6.0 (and 7.6.1)](https://github.com/babel/babel/releases/tag/v7.6.0) — Popular JavaScript transpiler.
- [mustache.js 3.1](https://github.com/janl/mustache.js) — Logic-less JavaScript templating.
- [Bootstrap-Vue 2.0](https://bootstrap-vue.js.org/) — Plugins and components bringing Bootstrap to Vue.js.    

🐦 An interesting Twitter thread... 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1568385130/f0qwttauy1w3ulgbdkk3.png)](https://twitter.com/getify/status/1171820070538022914)   

Kyle Simpson, the author of [YDKJS](https://github.com/getify/You-Dont-Know-JS), has been thinking about some pain points when using asynchronous functions, particularly in relation to being able to _cancel_ their execution when circumstances change. [The whole thread](https://twitter.com/getify/status/1171820070538022914) is an interesting read, complete with people making suggestions of their workarounds. 

We'd be pretty keen to link to any articles or opinion pieces covering this topic if you have any spare time this weekend ;-)         

Curated by [Cooperpress](https://cooperpress.com/) and [Peter Cooper](https://twitter.com/peterc). 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or[stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
