<div dir="ltr"><div>Firefox Developers,</div><div><br></div><div>You write a lot of JavaScript. (I know - I was on your team once.) Unfortunately, a lot of the JavaScript going into Firefox is what I call "Gecko flavored JavaScript." This is JavaScript that doesn't conform to any standard (like ES6). Instead, it's JavaScript that takes advantage of non-standard, SpiderMonkey/Gecko-only extensions like Components.utils.import().<br><br></div><div>I think the prevalence of all this "non-standard" JavaScript poses a major problem to the productivity of Firefox developers and hinders the ability to more quickly ship high quality features, which undermines the ability for Mozilla to achieve its Mission.<br><br></div><div>In my capacity as a Developer Productivity Engineer, I'd love to build and deploy tools for you so you can do your job better and more efficiently. Unfortunately, the lack of standard JavaScript in the Firefox code base makes that significantly more difficult than it could be. This is because pretty much all the existing JavaScript tools out there barf when processing Firefox source code because it contains non-standard JavaScript.<br><br>There has been a wave of advancements in JavaScript tools these past few years. Unfortunately, many of them can't be leveraged by Firefox developers. The rest of the world is reaping the rewards of better tooling. But for Firefox development at Mozilla, we're still stuck in the past. Others have increased their development velocity while we have stayed the same. We're losing ground. And the gap is only getting wider. We're already playing around with automatic linting and code rewriting for Python and C++ developers at Mozilla. Unfortunately, those advancements can't easily come to JavaScript until the tools can understand the Firefox code.<br></div><div><br>I think it should be an organizational priority to address the "JavaScript tooling gap" for Firefox development.<br><br></div><div>Here is where I need your help.<br><br></div><div>I'd like to start a dialog within the Firefox team about 1) adopting coding standards that facilitate tool usage 2) adopting a plan to convert existing source code to be "standards compliant" so tools can be deployed with reasonable success.<br><br></div><div>I understand there are valid reasons for diverging from specified language behavior from time to time. However, the tooling gap is widening and the drawbacks from deviating from what tools support are increasing, and this only hurts Firefox and Mozilla more as time goes by. Yes, it might be possible to patch 3rd party tools and teach them about SpiderMonkey extensions. It has been done before. But, I don't think we want to be in the position of maintaining 3rd party tools if it can be avoided. And, we can't expect tools to accept these changes in the first place (this would be like asking Gecko to implement a non-standard, Chrome-only feature - it's definitely not very Mozilla-y if nothing else).<br><br></div><div>So, I ask a question: what today is preventing JavaScript in Firefox from conforming to the specified ECMAScript language and what can we do to minimize that gap going forward so productivity and quality enhancing tools and services may be utilized?<br><br></div><div>Gregory<br></div></div>