---
title: "#333: A New JS Optimization Tool, Headless Chrome and the 'Elements of JavaScript Style'"
publication: "JavaScript Weekly"
issue: 333
published_at: "2017-05-05"
canonical_url: "https://javascriptweekly.com/issues/333"
---

#333: A New JS Optimization Tool, Headless Chrome and the 'Elements of JavaScript Style'

This week's JavaScript news — [Read this e-mail on the Web](http://javascriptweekly.com/issues/333)

JavaScript WeeklyIssue 333 — May 5, 2017[Prepack: An Optimization Tool to Produce More Efficient JavaScript](https://prepack.io/)Prepack optimizes JavaScript code by eliminating operations that can be done at compile-time. Imagine `gcc` with the optimization level turned up. Uses Babel under the hood. Facebook 
[Getting Started with Headless Chrome](https://developers.google.com/web/updates/2017/04/headless-chrome)‘Headless’ Chrome is basically Chrome running without any UI or visible controls, so is ideal for being remotely controlled from JavaScript for testing or taking screenshots, etc. Eric Bidelman 
[Elements of JavaScript Style](https://medium.com/javascript-scene/elements-of-javascript-style-caa8821cb99f)Inspired by William Strunk Jr’s _“The Elements of Style”_, Eric Elliot adapts its principles for improving the written word to guidelines for improving your code. Eric Elliot 
[![Sencha, Inc.\](https://copm.s3.amazonaws.com/4a363bb0.png)](http://pages.sencha.com/build-data-intensive-web-and-mobile-apps-1.html?utm_source=javascriptweekly&utm_medium=email)[Create data-intensive, feature-rich web and mobile apps with Sencha Ext JS](http://pages.sencha.com/build-data-intensive-web-and-mobile-apps-1.html)Learn how to design, develop and test data-intensive web apps that run on desktops, tablets, and smartphones. Sencha, Inc.Sponsor
[A Look at ES6 Module Support in Browsers](https://jakearchibald.com/2017/es-modules-in-browsers/)Native module support is now in Safari 10.1, as well as behind config settings in Chrome 60, Firefox 54 & Edge 15. Jake explains what this means for front-end development. Jake Archibald 
[pkg: Package a Node Project into an Executable](https://github.com/zeit/pkg)Want to run a Node-powered app on a system where Node isn’t installed? pkg makes it easier to distribute your apps by packaging Node and your app all in one. [node-compiler](https://github.com/pmq20/node-compiler) is a similar project. Zeit 
[Async Functions: Making Promises Friendly](https://developers.google.com/web/fundamentals/getting-started/primers/async-functions)Write promise-based code as if it were synchronous but without blocking the main thread. Not new but well worth revisiting, I found. Jake Archibald 


Jobs

- [craigslist seeks JavaScript Developers (San Francisco, CA)](https://www.craigslist.org/about/craigslist_is_hiring?utm_source=javascriptweekly&utm_medium=email)Web devs with JavaScript, CSS, and HTML experience wanted to design and ship new features, and see them loved (or hated) by millions. craigslist
- [Frontend Consultant](http://careers.backbase.com/job/senior-front-end-consultant/?utm_source=javascriptweekly&utm_medium=email)Up for the challenge of making banking fun and exciting, whilst learning and working with our global clients? Join our Amsterdam office. Backbase
- [JavaScript Engineer (Node.JS)](https://boards.greenhouse.io/envato/jobs/520822?gh_src=ht74r11#.WQb7-FPytTY)Exciting opportunity to join Envato on their journey to evolve the tech stack of one of the biggest e-commerce sites in the world. Envato

In Brief

[JSHeroes 2017 (Romania, June 8-9) Early Bird Tickets Available](http://jsheroes.io/) news

[Jenn Schiffer at SIGNAL for A Tale of Glitch, Twilio, and the Power of Friendship](https://ti.to/signal/signal-2017-sf/discount/jsweekly20) news 
Every SIGNAL talk is designed to help you hone your craft. After learning with your peers & wielding new Twilio tools, celebrate at the $bash after party.
TwilioSponsor

[A Look at Uses for a 'flatMap' Function](http://2ality.com/2017/04/flatmap.html) tutorial
Dr. Axel Rauschmayer

[Getting Started with Three.js for Building a 3D Scene](https://blog.jscrambler.com/getting-started-with-three-js) tutorial
Jscrambler

[Conditionally Adding Entries Inside Array and Object Literals](http://2ality.com/2017/04/conditional-literal-entries.html) tutorial
Dr. Axel Rauschmayer

[Arrow Functions for Beginners](https://hackernoon.com/javascript-arrow-functions-for-beginners-926947fc0cdc) tutorial
Brandon Morelli

[Patterns for Object Inheritance in ES6](https://www.sitepoint.com/patterns-object-inheritance-javascript-es2015/) tutorial 
Code reuse possibilities with ES6 classes, including implementing multiple inheritance..
Tim Severien

[A 20 Minute Introduction to Flow, the Static Type Checker](https://pusher.com/sessions/meetup/js-monthly-london/flow) video
Benjamin Reid

[8 Bite-Sized Videos on Async JavaScript with async/await](https://egghead.io/courses/asynchronous-javascript-with-async-await) video
Marius Schulz

[It's the Future](https://circleci.com/blog/its-the-future/?utm_source=cooperpress&utm_medium=newsletter&utm_content=javascript-weekly) opinion 
"So I just need to split my simple CRUD app into 12 microservices, each with their own APIs..."
CircleCISponsor

[Why I’m Moving on to Web Components and Not Looking Back](https://hackernoon.com/why-im-moving-on-to-web-components-and-not-looking-back-aa8028c99c83) opinion
Hacker Noon

[Is Prepack Like Svelte?](https://gist.github.com/Rich-Harris/d9de6692eaae94f8aa7ca87a0dc980f2) opinion 
[Svelte](https://svelte.technology/) is essentially a build-time/compiled UI framework.
Rich Harris

[prepack-webpack-plugin: A Webpack Plugin for Prepack](https://github.com/gajus/prepack-webpack-plugin) tools
Gajus Kuizinas

[A Curated List of 85 'Awesome' WebAssembly Links and Resources](https://github.com/mbasso/awesome-wasm) tools
Matteo Basso

[Spector.js: A Framework For Troubleshooting WebGL Projects](http://spector.babylonjs.com/) tools

[Deploy a MongoDB replica set on AWS in minutes with MongoDB Atlas](https://www.mongodb.com/cloud/atlas/lp/try-2?jmp=cpress&utm_campaign=WW_CP_newsletter_sponsorship_FY17Q2&utm_content=brief&utm_medium=display&utm_source=javascriptweekly0505) tools
MONGODBSponsor

[jQuery Prove: A jQuery Plugin for Client-Side Validation of Forms](https://github.com/provejs/provejs-jquery) code
Dan Hollenbeck

[vue-infinite-loading: An Infinite Scroll Plugin for Vue.js](https://github.com/PeachScript/vue-infinite-loading) code

[Forall.js: Expressive Static Types and Invariant Checks](https://github.com/MaiaVictor/forall) code 
Works in a run-time/macro-esque way.
Victor Hernandes Silva Maia

[Typefont: An Algorithm for Recognizing the Font Used on a Text](https://github.com/Sirvasile/Typefont) code
Vasile Pește

[A 'Masonry' Image Layout Component for React Native](https://github.com/brh55/react-native-masonry) code 
Don't forget [our React newsletter](https://react.statuscode.com/issues/34) for more like this.
Brandon Him

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

Like this? You may also enjoy: [FrontEnd Focus](http://frontendfocus.co/) : [Node Weekly](http://nodeweekly.com/) : [React Status](http://react.statuscode.com/)

[Stop getting JavaScript Weekly](*|UNSUB|*) : [Change email address](*|UPDATE_PROFILE|*) : [Read this issue on the Web](http://javascriptweekly.com/issues/333)

© Cooperpress Ltd. Fairfield Enterprise Centre, Lincoln Way, Louth, LN11 0LS, UK
