---
title: "Firefox's faster JS interpreter, and npm's ban on terminal text ads"
publication: "JavaScript Weekly"
issue: 452
published_at: "2019-08-30"
canonical_url: "https://javascriptweekly.com/issues/452"
---

This week's JavaScript news       

#452 — August 30, 2019 

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

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1567180463/axgycbybyfadkvqe94wv.jpg)](https://t.co/ESSX9e8ATO)  

[How JavaScript Grew Up and Became a 'Real' Language](https://t.co/ESSX9e8ATO) — If you were in the JavaScript space in the early 2000s, skip this one.. but I still remember the first time I saw Google Maps in 2005, then saw Microsoft’s documentation for `XMLHttpRequest` (which shipped in IE 5 in 1999!), and a Pandora’s box was rapidly opened as developers finally saw potential in making Web pages interactive in a truly two-way fashion. JavaScript’s _second wind_ had begun! 

Matthew MacDonald   

[Announcing TypeScript 3.6](https://devblogs.microsoft.com/typescript/announcing-typescript-3-6/) — The latest version of the increasingly popular, optionally _typed_ superset of JavaScript introduces stricter checking for iterators and generator functions, improved UX around Promises, a [new playground](http://www.typescriptlang.org/play/), and more besides. 

Daniel Rosenwasser (Microsoft)   [![\](https://copm.s3.amazonaws.com/0a2332d1.jpg)](https://screencasts.delicious-insights.com/writing-modern-async-javascript?utm_source=JSWeekly&utm_medium=email&utm_campaign=async-js-jsweekly-1908) 

[Dive Deep into Promises and Async/Await to Write Better Code](https://screencasts.delicious-insights.com/writing-modern-async-javascript?utm_source=JSWeekly&utm_medium=email&utm_campaign=async-js-jsweekly-1908) — The all-in-one course that covers both fundamentals and the latest upgrades. Say goodbye to hackish code and puzzled debugging: with this 3-hr video course split into bite-size segments, you’ll get rock-solid knowledge and in-depth understanding. 

Delicious Screencasts sponsor   

[npm Inc. Moves to Ban Ads on the Terminal](https://www.zdnet.com/article/npm-bans-terminal-ads/) — After a mixed reaction to a recent experiment in open source funding [by showing text ads upon the installation of npm packages](https://feross.org/funding-experiment-recap/), npm Inc. is updating their policies to explicitly ban packages that display ads at runtime or installation. 

Catalin Cimpanu   

[Should You Be Using Web Workers? (Probably Not.)](https://t.co/tjRrj50Tgt) — An interesting contrast to Surma’s [recently popular article promoting Web Workers](https://dassur.ma/things/when-workers/) and their ability to execute JavaScript off of the main thread. But David thinks they’re over-hyped: _“I have seen exactly zero other instances where Web Workers would have improved the user experience.”_ 

David Gilbertson    

**🐦 What do you think?** Join the discussion on whether or not to more proactively use Web Workers [in our latest Twitter thread.](https://twitter.com/JavaScriptDaily/status/1167469299075833857)    

[The Baseline Interpreter: A Faster JS Interpreter in Firefox 70](https://hacks.mozilla.org/2019/08/the-baseline-interpreter-a-faster-js-interpreter-in-firefox-70/) — JIT (Just-In-Time) compilation was once all the rage for speeding up JavaScript but a faster _interpreter_ can result in significant performance improvements on modern workloads and here’s how it works. 

Jan de Mooij   

[A Practical Guide to ES6 Symbols](http://thecodebarbarian.com/a-practical-guide-to-symbols-in-javascript.html) — ES6 introduced symbols as a new primitive type to act as unique identifiers. Here’s a look at their uses. 

Valeri Karpov   

[Dojo 6 Released: A Progressive Framework for Webapps](https://dojo.io/blog/version-6-dojo) — Mikeal Rogers once said [React is the new Dojo](https://medium.com/@mikeal/react-is-the-new-dojo-18bd9059378f), but Dojo, a popular ‘batteries included’ framework, is still innovating with v6 being the most ambitious release since last year’s v2. 

Open JS Foundation  

💻 Jobs  

[High Growth Startup, Sweet Product, Big Challenges - We Want You](https://freetrade.io/careers) — Work on a beautiful app and help us to expand into Europe. We are hiring for pragmatic engineers who want to make a real impact. 🚀 

FREETRADE   

[Senior Software Engineer - Frontend (100% Remote)](https://jobs.lever.co/close.io/10a1e32b-1a59-48dc-b8f4-e6f0dfae4e20?lever-origin=applied&lever-source%5B%5D=cooperpress) — Do you have a solid understanding of web technologies and want to design, implement, and launch major user features? Apply now. 

Close   

[Take a <`br`> From Job Hunting](https://hackajob.co/p/discover?utm_source=cooperpress&utm_medium=paid&utm_campaign=jw_aug-30) — Upload your past projects or try out our custom challenges - our AI will match you with amazing companies who apply to you, salary upfront. No recruiters. 

hackajob  

📘 Tutorials  

▶[Building a Minesweeper Game in Under an Hour with Angular](https://www.youtube.com/watch?v=D0C_oYlgzYU) — It took him 48 minutes, but luckily the video is only 11 minutes and he narrates what he did 😄 (This is a cool way to do a live coding video.) 

Stephen Fluin   

[Introduction the Optional Chaining Operator `?.`](https://v8.dev/features/optional-chaining) — The [proposal](https://github.com/tc39/proposal-optional-chaining) is still at stage 3, but when the official V8 blog is posting about it, it’s as good as official. Here’s how it works. 

Maya Lekova   

[On Demand: Getting Started with NodeSource and AWS Lambda](https://pages.nodesource.com/getting-started-with-nodesource-and-AWS-lambda-0814-nw.html) 

NodeSource sponsor   

[The Story of a V8 Performance Cliff in React](https://v8.dev/blog/react-cliff) — A look at how V8 chooses optimal in-memory representations for various JavaScript values, and how that impacts the shape machinery (all of which helps explain a recent V8 performance cliff in React core). 

Benedikt Meurer and Mathias Bynens   

[Working with Attributes on DOM Elements](https://css-tricks.com/working-with-attributes-on-dom-elements/) — The DOM is just a little weird about some things, and the way you deal with attributes is no exception.. 

Chris Coyier   

[Documentation Made Easy with VuePress](https://www.smashingmagazine.com/2019/08/vuepress-documentation/) — [VuePress](https://vuepress.vuejs.org/) is a static site generator that is particularly well suited for generating documentation sites. 

Ben Hong   

[Creating 'Live' Avatars with face-api.js](https://blog.pragli.com/live-avatars-with-faceapi-js/) — Less a tutorial and more a neat idea you might like to recreate. This company has ‘live avatars’ on its site using face position tracking with [face-api.js](https://github.com/justadudewhohacks/face-api.js). 

Doug Safreno   

[A Beginner's Guide to Using Regular Expressions in JavaScript](https://medium.com/@mwarfa/regex-tutorial-beginners-guide-to-regular-expressions-using-javascript-1593babb4bf8) — Love or hate them, regular expressions are hugely powerful when it comes to matching against the content of strings. 

Muhsin Warfa   

[Going Beyond `npm` with Yarn and `pnpm`](https://blog.nicco.io/2019/08/27/going-beyond-npm-meet-yarn-pnpm/) — A quick look at two alternatives to `npm` if you haven’t ventured off the beaten path. 

Niccolo Borgioli   

[Creating an Object Validator in the Test-Driven Development Way](https://nick.scialli.me/creating-an-object-validator-the-tdd-way/) 

Nick Scialli  

🔧 Code and Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/hxjani6cptjmrjwp82ij.jpg)](https://github.com/be5invis/Iosevka)   

[Iosevka: A Condensed, 'Slender' Typeface for Code](https://github.com/be5invis/Iosevka) — As well as being useful _for_ code, it’s easily customizable via code and _defined_ via code itself ([example code](https://github.com/be5invis/Iosevka/blob/master/glyphs/common-shapes.ptl)). 

Belleve Invis   

[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   

[Fiddle: The Easiest Way to Get Started with Electron](https://github.com/electron/fiddle) — If you’ve wanted to play with Electron for building a JavaScript-powered desktop app but didn’t have the time, Fiddle makes it into more of a quick-start ‘playground’ experience. 

Electron   

[radialMenu: A Highly Customizable Radial Menu](https://github.com/victorqribeiro/radialMenu) — Works on both desktop and mobile. You can [see a demo here](https://victorribeiro.com/radialMenu/). 

Victor Ribeiro   

[ApexCharts: A JavaScript Chart (and More) Library](https://github.com/apexcharts/apexcharts.js) — A year ago, its creator explained [_why_ we needed yet another chart library](https://medium.com/@juned.chhipa/bridging-the-gap-between-low-level-and-high-level-charting-libraries-a8f6c1819ba5) and to his credit it continues to improve frequently. It does sparklines, gauges, candlesticks, heatmaps, and more, too. 

Juned Chhipa   

[Trumbowyg: A Lightweight WYSIWYG Editor](https://github.com/Alex-D/Trumbowyg) — It’s a jQuery plugin (..ssh!) Only 8KB when gzipped though and [there’s a live demo.](https://alex-d.github.io/Trumbowyg/) 

Alexandre Demode   

[Browser Automation Experience Made Reliable and Less Flaky](https://taiko.gauge.org/?utm_campaign=js_weekly&utm_medium=email&utm_source=js_weekly&utm_content=taiko_home&utm_term=) 

ThoughtWorks - Taiko sponsor   

[Feathers 4: A Framework for Real-Time Apps and REST APIs](https://blog.feathersjs.com/introducing-feathers-4-a-framework-for-real-time-apps-and-rest-apis-afff3819055b) — Brings together Node, React Native and the browser in a framework based around services and workflows rather than routes and controllers. 

David Luecke   

[Karma: A Multi-Browser Test Runner for JavaScript](https://github.com/karma-runner/karma) — A popular way to test your code in multiple, real browsers at once. 

Karma      

⚡️ Quick Releases 

- [Quasar 1.1](https://quasar.dev/) — Rapidly build Vue.js-powered interfaces.
- [SystemJS 6.0](https://github.com/systemjs/systemjs/releases/tag/6.0.0) — Dynamic ES module loader.
- [Mapbox GL JS 1.3](https://github.com/mapbox/mapbox-gl-js) — Powerful map rendering the browser.
- [react-datepicker 2.9.0](https://github.com/Hacker0x01/react-datepicker) — Date-picker component for React.
- [jquery.terminal 2.8](https://github.com/jcubic/jquery.terminal) — Create terminal-like experiences on the Web.
- [VeeValidate 3.0](https://www.baianat.com/labs/code/veevalidate-3-0) — Template-based validation for Vue.js.           

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
