---
title: "React 16.9, globalThis, and a Minecraft clone in JavaScript"
publication: "JavaScript Weekly"
issue: 449
published_at: "2019-08-09"
canonical_url: "https://javascriptweekly.com/issues/449"
---

This week's JavaScript news       

#449 — August 9, 2019 

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

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/oztvchnplsjhdhuwcxj3.jpg)](https://reactjs.org/blog/2019/08/08/react-v16.9.0.html)  

[React v16.9 Released and a Roadmap Update](https://reactjs.org/blog/2019/08/08/react-v16.9.0.html) — BTW, if you’re a React developer, be sure to check out our [React-specific newsletter](https://react.statuscode.com/) for goodies like [how React’s development mode works](https://overreacted.io/how-does-the-development-mode-work/) or [tips to avoid React hook gotchas](https://kentcdodds.com/blog/react-hooks-pitfalls). 

Dan Abramov and Brian Vaughn   

[Using Async Generator Functions in JavaScript](http://thecodebarbarian.com/async-generator-functions-in-javascript.html) — Async generator functions are special because you can use both `await` and `yield` in them, but what are the practical uses? 

Valeri Karpov   [![\](https://copm.s3.amazonaws.com/b1e38654.jpg)](https://rollbar.com/error-tracking/javascript/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=javascript_weekly) 

[Instantly Know When JavaScript Errors Occur and How to Fix Them](https://rollbar.com/error-tracking/javascript/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=javascript_weekly) — With JavaScript error tracking from Rollbar you get exception and crash reports in real-time. Track and debug bugs in record time. Start monitoring and fixing errors in minutes - [Try Rollbar for free](https://rollbar.com/error-tracking/javascript/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=javascript_weekly). 

Rollbar sponsor   

[Future-Oriented Programming with Vue.js 3](https://blog.bitsrc.io/vue-js-3-future-oriented-programming-54dee797988b) — One of Vue.js 3’s forthcoming new features is support for a [function-based API](https://github.com/vuejs/rfcs/blob/function-apis/active-rfcs/0000-function-api.md) (more on what that means in [this podcast](https://devmode.fm/episodes/new-awesomeness-coming-in-vuejs-3-0)). Here’s a look at what problems it’ll solve and how it’ll improve logic composition. 

Taras Batenkov   

[Explaining the `globalThis` ES Proposal](https://2ality.com/2019/08/global-this.html) — The good Dr. Axel is back digging into another new proposal, this time explaining how [globalThis](https://github.com/tc39/proposal-global) (currently at stage 3) could normalize the way you access the global `this` object (which might otherwise be `window`, `self`, or `global` depending on your environment). 

Dr. Axel Rauschmayer   

[`Intl.NumberFormat` and Its New Capabilities](https://v8.dev/features/intl-numberformat) — `Intl.NumberFormat` is an established route to locale-aware number formatting, but it is gaining a variety of new abilities (already supported on Chrome 77+) including support for BigInt, units of measurement, and scientific notation. 

Mathias Bynens and Shane F. Carr (V8)      

**Quick bytes:** 

- 🎧 JavaScript developer Kent C Dodds has [launched a podcast](https://kentcdodds.com/chats-with-kent-podcast/seasons/01/episodes/growing-your-skills-and-career-through-teaching-with-ali-spittel) Netflix-style by dropping an entire season in one go! Episodes cover a variety of dev topics and feature plenty of folks you'll know.
- 🗓 The popular JS13kGames JavaScript coding competition [kicks off in 4 days](https://2019.js13kgames.com/) on August 13.
- 🗓 [NgTalks 2019](https://ngtalks.io/) is an Angular event taking place in Ukraine in November.
- GitHub Actions [now supports CI/CD](https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/) (free for public repos). You can also now write actions in JavaScript which run on any platform ([docs here](https://github.com/actions/toolkit/tree/master/docs)).    

💻 Jobs  

[Have You Thought About Being a Web Developer in Robotics?](https://www.veobot.com/jobs/?gh_jid=4341006002) — A unique opportunity to work on a high-powered engineering web application for a computer vision system combining 3D graphics and an intuitive user experience. 

Veo Robotics   

[Job Searching Without the Searching? Try hackajob 🔎](https://hackajob.co/p/discover?utm_source=cooperpress&utm_medium=paid&utm_campaign=jw_aug-9) — Let your skills do the talking. Our AI matches you to roles based on your favourite JavaScript frameworks so you can do what you love. 

hackajob  

📘 Tutorials  

[What’s New in ES2019](https://blog.tildeloop.com/posts/javascript-what%E2%80%99s-new-in-es2019) — We’ve linked to a few ES2019 roundups this year. Here’s another that’s been big on several social sites this week, so it’s clearly a topic of interest. 

Marin Radman   

[Remainder Operator vs. Modulo Operator](https://2ality.com/2019/08/remainder-vs-modulo.html) — Is the `%` in `5 % 2` a _remainder_ operator or a _modulo_ operator? There’s a difference and Dr. Axel outlines what happens in JavaScript. This is the sort of thing that could catch you out if you’re familiar with other languages that treat `%` in a different way.. 

Dr. Axel Rauschmayer   

[Using Time Series for Application Performance Monitoring to Win at the Flight E-Ticket Sales Game](https://www.influxdata.com/blog/using-time-series-for-application-performance-monitoring-to-win-at-the-flight-e-ticket-sales-game/?utm_campaign=apm&utm_medium=newsletter&utm_source=cooperpress) 

InfluxData sponsor   

[How to Reduce Your Vue.js Bundle Size with webpack](https://dev.to/ratracegrad/how-to-reduce-your-vue-js-bundle-size-with-webpack-4gpf) — Vue recommends that your bundles don’t exceed 244KB, but what if they do? `webpack-bundle-analyzer` to the rescue! 

Jennifer Bland   

[Building a Full-Stack Serverless App with Cloudflare Workers](https://css-tricks.com/building-a-full-stack-serverless-application-with-cloudflare-workers/) — _Workers_ is Cloudflare’s edge-located serverless JavaScript platform. This walkthrough demonstrates how to build apps on it and store data on its key-value storage system. 

Kristian Freeman   

[Asynchronous Modules and Components in Angular Ivy](https://blog.angularindepth.com/asynchronous-modules-and-components-in-angular-ivy-1c1d79d45bd3) — Ivy is the code name for Angular’s next-generation compilation and rendering pipeline. 

Artur Androsovych   

[Using `scrollIntoView()` to Show Added Elements to a Container with Overflow](https://christianheilmann.com/2019/08/09/quick-tip-using-scrollintoview-to-show-added-elements-to-a-container-with-overflow/) — A great example of one of those times when you see something in the docs you didn’t realize existed and it makes an existing task much easier. 

Christian Heilmann   

[Interesting Use Cases for JavaScript's Bitwise Operators](https://blog.logrocket.com/interesting-use-cases-for-javascript-bitwise-operators/) — If you need to do some bit-level manipulation of values, JavaScript has the operators you need. 

Glad Chinda   

[The Essential Guide To JavaScript’s Newest Data Type: `BigInt`](https://www.smashingmagazine.com/2019/07/essential-guide-javascript-newest-data-type-bigint/) — For when the `Number` type just isn’t enough.. 

Faraz Kelhini   

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

NodeSource sponsor   

[Exporting Angular Page Content to PDF Using Kendo UI](https://www.telerik.com/blogs/exporting-angular-page-content-to-pdf-using-kendo-ui) 

Christian Nwamba   

[Getting More Out of Vue's Async Components](https://logaretm.com/blog/getting-more-out-of-vue-async-components/) — Some interesting things you can do with async components in Vue.js. 

Abdelrahman Awad  

🔧 Code and Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/v1565363175/qnhbug9cnrcy7ol4tfso.gif)](https://edernclemente.com/plugin/typelighterjs)   

[TypeLighter.js: A Lightweight 'Typewriter' Effect](https://edernclemente.com/plugin/typelighterjs) — An elegant effect delivered in just 1KB of code. Here’s [the GitHub repo](https://github.com/EdernClemente/TypeLighterJS). 

Edern Clemente   

[Resemble.js: Image Analysis and Comparison Library](https://github.com/rsmbl/Resemble.js) — A Canvas-based approach for performing basic color/brightness analysis of images or to test how two images ‘resemble’ each other. Here’s [some live demos](http://rsmbl.github.io/Resemble.js/). 

Resemble   

[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   

[Vuestic Admin 2.0: A Well-Designed Vue.js Admin Template](https://github.com/epicmaxco/vuestic-admin) — A template for an admin system along with over 40 custom UI components. [Here’s a live demo](https://vuestic.epicmax.co/). 

Epicmax   

[JustGage: A Way to Draw and Animate Dashboard-Style 'Gauges'](https://github.com/toorshia/justgage) — An older library that’s just had [its first release in 3 years.](https://github.com/toorshia/justgage/releases/tag/v1.3.1) Uses [Raphaël](https://dmitrybaranovskiy.github.io/raphael/) for the rendering. 

Bojan Djuricic   

[vue-router 3.1: The Official Router for Vue.js](https://github.com/vuejs/vue-router) — `router-link` now [has a scoped slot](https://router.vuejs.org/api/#v-slot-api-3-1-0). 

Vue.js     

⚡️ Quick Releases 

- [React 16.9.0](https://github.com/facebook/react/releases/tag/v16.9.0) — The queen of reactive UI frameworks.
- [Node 12.8.0](https://nodejs.org/en/blog/release/v12.8.0/) — The king of server side JavaScript platforms.
- [npm 6.10.3](https://blog.npmjs.org/post/186818350755/release-6103) — The popular package manager.
- [Commander.js 3.0](https://github.com/tj/commander.js) — Node.js command line interfaces made easy.
- [Phaser 3.19.0](https://github.com/photonstorm/phaser/releases/tag/v3.19.0) — A very long standing 2D Web game framework.
- [RxDB 8.3.0](https://github.com/pubkey/rxdb) — A real-time reactive JavaScript database.
- **webpack** [style-loader 1.0](https://github.com/webpack-contrib/style-loader) — Inject CSS into the DOM.     

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1565278814/dhqbxhm6tmlvr4em9xfx.png)](https://github.com/ian13456/mc.js)  

[MC.js: An Open Source 'Minecraft'-Style Engine](https://github.com/ian13456/mc.js) — It's built with React, GraphQL, Three.js (so it uses WebGL behind the scenes), and Node. 

Ian Huang         

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
