Kinoma now shipping JavaScript 6th Edition (ES6) support

Peter Hoddie

Peter Hoddie

October 15, 2015

JS6 launch cropToday, the Kinoma team has completed the move to JavaScript 6th Edition by delivering a firmware update to Kinoma Create and a new version of Kinoma Studio. Both use Kinoma’s XS6 JavaScript engine, an independent implementation optimized for embedding JavaScript in hardware products and applications. XS6 remains the most thorough implementation based on the Kangax compatibility tests, implementing 96% of the new language features.

Using new language features in KinomaJS apps

Our main motivation in investing to update to JavaScript 6th Edition ahead of the rest of the industry is our belief that the improvements in the language make it better for building products. Developers working in 6th Edition will develop more robust products more quickly. In my Language Matters blog post, I wrote about our enthusiasm for new features that include true modules, more compact syntax, traditional classes, promises, generators, and symbols.

In this first official release of JavaScript 6th Edition support, we have begun to update our KinomaJS application framework to take advantage of some of these new features. In his blog post “Using JavaScript 6th Edition Features in KinomaJS,” our software architect Patrick Soquet introduces how to use these new capabilities of KinomaJS in your applications.

We are just getting started adding support for JavaScript 6th Edition features in KinomaJS. We’d like to hear your ideas for making KinomaJS even easier to use by building on new language features. We’re available to discuss them on the Kinoma Forum’s Coding area.

In the App Store now

Application developer Sébastien Burel of Haruni has been working with the Kinoma team to update the iOS version of his Frigo Magic app to use XS6 and our KinomaJS implementation with JavaScript 6th Edition support. That version of Frigo Magic is in the App store today, quite possibly making it the first app built on JavaScript 6th Edition (no polyfills and no transpiler needed). Congratulations to Sébastian for leading the way in using KinomaJS for mobile app development.

Screen Shot 2015-06-15 at 10.15.47 PM

“Using KinomaJS and XS6 has allowed Haruni to deliver the first ES6 iOS application without a transpiler, giving us an advantage over the competition. The transition was really easy because the language changes are backwards compatible. We took the opportunity to rewrite our code using ES6 features to be even more clear, modular, and reliable. We are using a lot of the new features including class, arrow function, promise, and many syntax. A big ‘Thank You!’ to the Kinoma team for the great work and support.”

– Sébastien Burel of Haruni


XS6 is considerably faster than XS, our JavaScript 5th Edition engine. In our own benchmarks, the overall performance is nearly doubled for key operations. Of course, benchmarks cannot represent all code in the real world. If you notice performance differences in your apps—much better or much worse—please let us know.

Open source

Today we have also updated our open source repository with the latest version of XS6, the same version built into Kinoma Create and Kinoma Studio.



Our primary goal in this release of Kinoma Create and Kinoma Studio has been to provide a stable foundation for working in JavaScript 6th Edition. Bringing up a new implementation of a new version of the language while maintaining compatibility with existing code has taken the summer. We didn’t try to achieve 100% backwards compatibility in situations where backwards compatibility would have introduced overhead and complexity in XS6. We prioritized maintaining the high performance and low memory usage of XS6 for the long term.

Once you upgrade, be prepared to spend a little bit of time verifying that your projects are working as expected. In our experience, there are not many issues, and many of them throw an exception, which makes them straightforward to track down. We’ve updated all of our sample code (over 100 samples now!) in our GitHub repository to be compatible with JavaScript 6th Edition.

In updating our apps and samples to use XS6, the majority of problems fall into two groups. First, because modules in XS6 use strict mode by default, implicit references to global variable generate an exception. Second, XS6 modules no longer share the global variable scope with the application that loads them using require.

Get started

For a couple years now, JavaScript programmers have been buzzing with excitement about the new features coming in JavaScript 6th Edition. It is here today, ready for use in IoT products, your own projects, and mobile apps. We’ve delivered product-ready code, not an experiment. You can start developing today using Kinoma Create or the desktop simulators built into Kinoma Studio. The Kinoma team has worked very hard on Javascript 6th Edition this year to keep developers on the leading edge of adopting and deploying this new technology.