High-performance ES2015 and beyond

Automotive
Over the last couple of months the V8 team focused on bringing the performance of newly added ES2015 and other even more recent JavaScript features on par with their transpiled ES5 counterparts.

Motivation

Before we go into the details of the various improvements, we should first consider why performance of ES2015+ features matter despite the widespread usage of Babel in modern web development:
  1. First of all there are new ES2015 features that are only polyfilled on demand, for example the Object.assign builtin. When Babel transpiles object spread properties (which are heavily used by many React and Redux applications), it relies on Object.assign instead of an ES5 equivalent if the VM supports it.
  2. Polyfilling ES2015 features typically increases code size, which contributes significantly to the current web performance crisis, especially on mobile devices common in emerging markets. So the cost of just delivering, parsing and compiling the code can be fairly high, even before you get to the actual execution cost.
  3. And last but not least, the client side JavaScript is only one of the environments that relies on the V8 engine. There’s also Node.js for server side applications and tools, where developers don’t need to transpile to ES5 code, but can directly use the features supported by the relevant V8 version in the target Node.js release.
Let’s consider the following code snippet from the Redux documentation:


function todoApp(state = initialState, action) {
switch (action.type) {
case SET_VISIBILITY_FILTER:
return { ...state, visibilityFilter: action.filter }
default:
return state
}
}

There are two things in that code that demand transpilation: the default parameter for state and the spreading of state into the object literal. Babel generates the following ES5 code:


"use strict";

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

function todoApp() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments[1];

switch (action.type) {
case SET_VISIBILITY_FILTER:
return _extends({}, state, { visibilityFilter: action.filter });
default:
return state;
}
}

Now imagine that Object.assign is orders of magnitude slower than the polyfilled _extends generated by Babel. In that case upgrading from a browser that doesn’t support Object.assign to an ES2015 capable version of the browser would be a serious performance regression and probably hinder adoption of ES2015 in the wild.

This example also highlights another important drawback of transpilation: The generated code that is shipped to the user is usually considerably bigger than the ES2015+ code that the developer initially wrote. In the example above, the original code is 203 characters (176 bytes gzipped) whereas the generated code is 588 characters (367 bytes gzipped). That’s already a factor of two increase in size. Let’s look at another example from the Async Iterators for JavaScript proposal:


async function* readLines(path) {
let file = await fileOpen(path);

try {
while (!file.EOF) {
yield await file.readLine();
}
} finally {
await file.close();
}
}

Babel translates these 187 characters (150 bytes gzipped) into a whopping 2987 characters (971 bytes gzipped) of ES5 code, not even counting the regenerator runtime that is required as an additional dependency:


"use strict";

var _asyncGenerator = function () { function AwaitValue(value) { this.value = value; } function AsyncGenerator(gen) { var front, back; function send(key, arg) { return new Promise(function (resolve, reject) { var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null }; if (back) { back = back.next = request; } else { front = back = request; resume(key, arg); } }); } function resume(key, arg) { try { var result = gen[key](arg); var value = result.value; if (value instanceof AwaitValue) { Promise.resolve(value.value).then(function (arg) { resume("next", arg); }, function (arg) { resume("throw", arg); }); } else { settle(result.done ? "return" : "normal", result.value); } } catch (err) { settle("throw", err); } } function settle(type, value) { switch (type) { case "return": front.resolve({ value: value, done: true }); break; case "throw": front.reject(value); break; default: front.resolve({ value: value, done: false }); break; } front = front.next; if (front) { resume(front.key, front.arg); } else { back = null; } } this._invoke = send; if (typeof gen.return !== "function") { this.return = undefined; } } if (typeof Symbol === "function" && Symbol.asyncIterator) { AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; }; } AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); }; AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); }; AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); }; return { wrap: function wrap(fn) { return function () { return new AsyncGenerator(fn.apply(this, arguments)); }; }, await: function await(value) { return new AwaitValue(value); } }; }();

var readLines = function () {
var _ref = _asyncGenerator.wrap(regeneratorRuntime.mark(function _callee(path) {
var file;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return _asyncGenerator.await(fileOpen(path));

case 2:
file = _context.sent;
_context.prev = 3;

case 4:
if (file.EOF) {
_context.next = 11;
break;
}

_context.next = 7;
return _asyncGenerator.await(file.readLine());

case 7:
_context.next = 9;
return _context.sent;

case 9:
_context.next = 4;
break;

case 11:
_context.prev = 11;
_context.next = 14;
return _asyncGenerator.await(file.close());

case 14:
return _context.finish(11);

case 15:
case "end":
return _context.stop();
}
}
}, _callee, this, [[3,, 11, 15]]);
}));

return function readLines(_x) {
return _ref.apply(this, arguments);
};
}();

This is a 650% increase in size (the generic _asyncGenerator function might be shareable depending on how you bundle your code, so you can amortize some of that cost across multiple uses of async iterators). We don’t think it’s viable to ship only code transpiled to ES5 long-term, as the increase in size will not only affect download time/cost, but will also add additional overhead to parsing and compilation. If we really want to drastically improve page load and snappiness of modern web applications, especially on mobile devices, we have to encourage developers to not only use ES2015+ when writing code, but also to ship that instead of transpiling to ES5. Only deliver fully transpiled bundles to legacy browsers that don’t support ES2015. For VM implementors, this vision means we need to support ES2015+ features natively and provide reasonable performance.

Measurement methodology

As described above, absolute performance of ES2015+ features is not really an issue at this point. Instead the highest priority currently is to ensure that performance of ES2015+ features is on par with their naive ES5 and even more importantly, with the version generated by Babel. Conveniently there was already a project called six-speed by Kevin Decker, that accomplishes more or less exactly what we needed: a performance comparison of ES2015 features vs. naive ES5 vs. code generated by transpilers.

Six-Speed benchmark


So we decided to take that as the basis for our initial ES2015+ performance work. We forked it and added a couple of benchmarks. We focused on the most serious regressions first, i.e. line items where slowdown from naive ES5 to recommended ES2015+ version was above 2x, because our fundamental assumption is that the naive ES5 version will be at least as fast as the somewhat spec-compliant version that Babel generates.

A modern architecture for a modern language

In the past V8’s had difficulties optimizing the kind of language features that are found in ES2015+. For example, it never became feasible to add exception handling (i.e. try/catch/finally) support to Crankshaft, V8’s classic optimizing compiler. This meant V8’s ability to optimize an ES6 feature like for...of, which essentially has an implicit finally clause, was limited. Crankshaft’s limitations and the overall complexity of adding new language features to full-codegen, V8’s baseline compiler, made it inherently difficult to ensure new ES features were added and optimized in V8 as quickly as they were standardized.

Fortunately, Ignition and TurboFan (V8’s new interpreter and compiler pipeline), were designed to support the entire JavaScript language from the beginning, including advanced control flow, exception handling, and most recently for...of and destructuring from ES2015. The tight integration of the architecture of Ignition and TurboFan make it possible to quickly add new features and to optimize them fast and incrementally.

Many of the improvements we achieved for modern language features were only feasible with the new Ignition/Turbofan pipeline. Ignition and TurboFan proved especially critical to optimizing generators and async functions. Generators had long been supported by V8, but were not optimizable due to control flow limitations in Crankshaft. Async functions are essentially sugar on top of generators, so they fall into the same category. The new compiler pipeline leverages Ignition to make sense of the AST and generate bytecodes which de-sugar complex generator control flow into simpler local-control flow bytecodes. TurboFan can more easily optimize the resulting bytecodes since it doesn’t need to know anything specific about generator control flow, just how to save and restore a function’s state on yields.

How JavaScript generators are represented in Ignition and TurboFan

State of the union

Our short-term goal was to reach less than 2x slowdown on average as soon as possible. We started by looking at the worst test first, and from Chrome M54 to Chrome M58 (Canary) we managed to reduce the number of tests with slowdown above 2x from 16 to 8, and at the same time reduce the worst slowdown from 19x in M54 to just 6x in M58 (Canary). We also significantly reduced the average and median slowdown during that period:


You can see a clear trend towards parity of ES2015+ and ES5. On average we improved performance relative to ES5 by over 47%. Here are some highlights that we addressed since M54.


Most notably we improved performance of new language constructs that are based on iteration, like the spread operator, destructuring and for...of loops. For example, using array destructuring


function fn() {
var [c] = data;
return c;
}

is now as fast as the naive ES5 version


function fn() {
var c = data[0];
return c;
}

and a lot faster (and shorter) than the Babel generated code:


"use strict";

var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();

function fn() {
var _data = data,
_data2 = _slicedToArray(_data, 1),
c = _data2[0];

return c;
}

You can check out the High-Speed ES2015 talk we gave at the last Munich NodeJS User Group meetup for additional details:



We are committed to continue improving the performance of ES2015+ features. In case you are interested in the nitty-gritty details please have a look at V8's ES2015 and beyond performance plan.

Posted by Benedikt Meurer @bmeurer, EcmaScript Performance Engineer
Automotive
8:35:00 AM

Automotive technology

Automotive

Labels

#Ryker2026 #YamahaLMW Driving Review 18-inch car tires 1904 Columbus 1940 Ford 1964 Worlds Fair 1969 Camaro 1969 Camaro ZL1 1969 Dodge Coronet Super Bee 2014 2016 Sales 2017 The Bad 8 2017 The Good 12 2026 MaxHaul electric tricycle 2026Ryker 3 wheeler 4 G 407 407 ex2 427 AC Cobra 440 six pack 442 4x 4x4 55 Chevy 57 Chevy 5G 5G vehicles 5th wheel AAR abandoned AbandonedTruck abs abuse by law enforcement AC Cobra Acadian ACC accessories accident accident prevention Acoustic processing Active Noise Cancellation Active noise control (ANC) Acura Acura Reviews adaptive cruise control adaptive headlights ADAS ADAS Level 4 Adobe AIR ads Advanced Driver Assistance Systems Advanced Vehicles Advantages and disadvantages of diesel engines adventurers advertising AEB aerodynamic design aerodynamics AI AI Assistance AI Driving AI driving assistant AI in Cars AI Logistics AI Navigation AI Systems in Cars AI technology AI tools AI traffic prediction AI vehicles AI Weaknesses Air Pollution airbags Aircraft engines Airflow Optimization airlines airplane Airstream Alfa Alfa Romeo Alfa-Romeo All Cars Rankings All SUV Rankings All Vehicle Rankings Alpina Alpine aluminum car parts AMBR winner ambulance AMC America's greatest photographers American Car American LaFrance amphib AMX AMX-3 Analysis data ANC in Car Andorra Andrew Poliak Android Andy Gryc anti lock braking system App World Apps AR Dashboard AR HUD AR Technology Arab-Supercar area controller Ariel-Nomad ARM-based devices art Art Arfons Art Deco Artificial Intelligence Artificial Neural Networks artist assembly Asset management system Aston Martin Aston-Martin atv auction Audi Audi Reviews audio Augmented reality Augmented Reality in Cars Austin Austin Healey Australia Austria Auto Accident Attorney auto car donate auto car donation Auto Donate Auto Donation California Auto hobby books Auto Sales By Brand auto show Auto Story in Pictures Wednesday auto taxi Autocar automatic emergency braking automobile automobile donation AUTOMOBILE INSURANCE automobile parts Automobile production automobile safety system automobule donate automotive Automotive AR Automotive Communications automotive connectivity automotive control software Automotive Cybersecurity automotive design Automotive Engineering automotive evolution Automotive Industry automotive innovation Automotive Innovations automotive lighting automotive manufacturing automotive safety Automotive Sensors Automotive Software automotive software architecture Automotive Startups automotive technology automotive testing Automotive transition Autonomous Car Autonomous cars Autonomous Delivery Vehicles Autonomous Driving Autonomous Driving Assistance System Autonomous Driving Levels Autonomous Mobility Autonomous Navigation autonomous parking autonomous taxis Autonomous Trucks Autonomous Vehicle autonomous vehicle safety Autonomous Vehicles Awards awesome B 29 B 52 BAIC Baja racing Baker banners barn find barn finds barnfind barnfinds Barracuda Barris barum BatBerry Batman Batteries battery Battery Electric Vehicle Battery management system Battery Manufacturing Battery Performance Battery Safety battery technology Battery Thermal Management beautiful engine Beautiful paint before and after Belgium Bello's belly tanker Bentley Best Electric SUVs Best Sellers Best Selling American Cars Best Selling Cars Best Selling Luxury Best Selling SUVs Best Selling Trucks Best Selling Vehicles BEV vs. FCEV bicycle bicycles Big 3 Swap Meet Big Block V8 big wheel bike messengers bike rack biofuel biography BlackBerry BlackBerry Radar BlackBerry-QNX Blind Spot Detection blink code blink code checkup blink code error blink code troubleshooting Blog blogs BMW BMW Audi Mercedes Benz Daimler jeep GM toyota Chrysler VW volkswagon nissan infiniti ford unique rare Bntley boardtrack Boats boattail Bonneville book review bookmobile Boss 302 Boss 429 brake Brake pads Brake system Brake technology brakes braking system Brand Marketshare brass era breedlove Brewster Brian Salisbury Bricklin bridge British Britten brochure Bugatti Buick build building Bulgaria burnout bus Bus conversion Buses buying selling cash tips money advice BYD c C-type Jag CAD tools Cadillac Cadillac Reviews Camaro Camera CamperBuild CamperKitchen Can Am can be fixed Canada Canada 2016 Sales Canada All Cars Rankings Canada All SUV Rankings Canada All Vehicle Rankings Canada Auto Sales Canada Auto Sales By Brand Canada Best Sellers Canada Compact Car Sales Canada December 2016 Canada Entry Luxury Car Sales Canada February 2017 Canada January 2017 Canada Large Car Sales Canada Large Luxury Car Sales Canada Large Luxury SUV Sales Canada Large SUV Sales Canada March 2017 Canada Midsize Car Sales Canada Midsize Luxury Car Sales Canada Midsize Luxury SUV Sales Canada Midsize SUV Sales Canada Minivan Sales Canada November 2016 Canada October 2016 Canada Premium Sporty Car Sales Canada September 2016 Canada Small Luxury SUV Sales Canada Small SUV Sales Canada Sporty Car Sales Canada Truck Sales Canada Van Sales Canada Worst Sellers CanAm CanAm Ryker CanAmRyker2026 CanAmSpyder Car Car battery efficiency car brakes car care car chase scene car clubs car collections car collectors car cybersecurity Car Design Car Donate car donate california car donation Car Donations California car electronics car engineering car lighting technology Car or the Future car restoration Car Safety Car Security car sensors Car suspension system car technology car wash Carbon Emission carbon emissions carbon fiber cars Carbon Reduction carbs carrozzeria cart caterpillar tracked vehicle CCS celebrities celebrity Certicom CES CESA 2012 CESA 3.0 CFD Simulation Chademo Challenger Challenges of Autonomous Driving Chaparral Charger Charging Infrastructure Charging Innovation Charging Station Technology Charity Charity auction charity car donation Charity Car Donation Program Charity Car With Your Credit Card cheating Check engine problems Check periodically Checker Chery Chevelle Chevrolet Chevrolet Camaro Chevrolet Reviews Chevy 2 China Chinese EVs chopper Christian Sobottka Christie Christmas Chrysler Citroen Citroën Classic Sports Car classics Clean Energy clean mobility cleaning clip Cloud computing Cloud connectivity CO2 Cobra Cobra Daytona Coupe Cobra Mustang Cobra Torino COE Cogent collection collector College Collision Avoidance Colombia commercial common rail direct injection Compact Car Sales companies comparison compliment components components of anti-lock braking system concept Concept car concept cars Concept team Connected Car connected cars Connected Vehicles construction Consumer Electronics Show consumers Contest convertible Coolest Vehicles Corner Case Corner Case Problem Coronet Corvair corvette Corvettes Costa Rica coupe coventry cragar crash Crash safety crde crdi Croatia Crosley crossover Cruise 4 Kids crumple zones crypto cryptography CTS Cuda Cunningham Curtiss Aerocar Custom customer satisfaction CustomTrailer cutaway display cycle car Cyclone Cyprus Czech Republic dacia Daihatsu Dan Gurney dart Datsun Daytona DC Fast Charge ddis DDS dealers Dealership Dean Martin December 2016 Deep Learning Degree Delivery Robots delivery truck Delorean Delphi Demon Denmark Derek Kuhn design Destructive Interference deuce devices Dick Landy dicor Diesel engine system Diesel engine use Diesel Engines Diesel engines are superior to gasoline engines. Diesel furnaces and boilers Diesel information Diesel power generators Digital Car Safety Digital instrument clusters Digital Interface digital spark ignition Diner with car theme direction injection Disappointing Cars Disney display diy DIY home renovation DIYCamper Dodge domain controller Don't want to have a headache with car problems Donate Donate A Car Tax Deduction Donate Automobile To Charity Donate Car To Charity Tax Deduction Donate Vehicles To Charity donation donation auto car donation vehicles to charity Doug Newcomb Drag racing Drag Reduction drag strip Dragonsnake dragsters DREAM drifting Driven driver assistance Driver Assistance Systems Driver distraction Driver Monitoring Driver Safety Driverless Cars driverless vehicles driving assistance Driving Experience Driving Levels Driving Safety drunk driver DS dtsi dual carbs dual engined dualie Ducati dump truck DumpTruckRestoration dvla E-scooter E-type Jag ECC eco-friendly cars eco-friendly vehicles economy ECU Ecuador electric electric car Electric Car Technology Electric cars Electric Motor Electric Motorcycles Electric Motors Electric SUV 2025 electric tricycle electric tricycle for travel electric tricycle review Electric Trucks electric vehicle efficiency Electric Vehicle Engineering electric vehicle market Electric Vehicle System Electric Vehicle Tech Electric vehicle technology Electric Vehicle Trends Electric Vehicles Electric3Wheeler electrical systems electromagnetic brake Elliptic Curve Cryptography EMF Emil Dautovic Emission reduction in diesel engines Endurance racing Energy Efficiency Energy recovery Energy Storage engine engine accessories Engine noise analysis Engine sound enhancement Engine Technology engineering technology engines Entry Luxury Car Sales Environmental Impact enzo Erskine Essex estate Estonia etc EUCAR Europe EV EV 2025 EV Acceleration EV battery EV Battery Cooling EV Business Case EV Car EV cars EV Charging EV Charging Stations EV Charging System EV Comparison EV efficiency EV industry EV innovation EV Motorbikes EV Powertrains EV Production EV range improvement EV Reviews EV Safety EV Technology EV trends EV Trucks EV vs Hydrogen Evel Knievel event Exotic Vehicles experience experiment extreme sports video F1 Factor-Aurelio factory automation Factory lightweight Factory race car Fairlane Falcon Fast boot Fast Charging Fast Charging Technology Fast-Charging FCA FCEV February 2017 Ferrari Fiat Fiat Botafogo finance Finland fips fire engine fire fighting fire trucks Firebird Firestone firetrucks Fisker flamejob fleet management fleet optimization Ford ford escort Ford Reviews Fordson tractor Forecasts FOTA found around the neighborhood FourWheeler France Franklin Free Car Donation Freescale french fuel fuel cell technology fuel efficiency fuel injection fuel injection system Fuel Tanker fuel-cell Fuels that can be used in diesel engines full hybrid fun Funny car Future Cars future mobility Future of Mobility future of transport Future of Transportation future transportation Future Vehicles FutureRyker FuturisticRide Futurliner gadgets Galpin Ford game garage garner gas mileage gas stations Gasser Gauges GCBC Awards GCBC Most Popular Geely Gene Winfield General Motors German Germany give your car to charity GM GM MyLink GNX Go cart good news Goodwood Goodyear gourmet food vans GPS systems GPS tracking GPU Graham Gran Prix Grand National Roadster Show 2017 Grand Sport Corvette Graph Great Wall Motors Greece green Green car Green Cars green energy green mobility Green Technology Green transportation Gremlin GT GT 350 GT 40 GT 500 gt40 GTO GTX Gulf race car Gullwing Guy Martin Hands-free systems Harley Harley Davidson hauler Hawaii helicopter hemi hemmings Hennessey Henry J hero Hertz HFCV hire Hispano-Suiza historical history History of Engines HMIs Holden Hollywood Holman Moody Home Charging Home made homemade Honda Honda Reviews Honda Sales Hong Kong Hood ornaments hood scoops Horizon 2020 horse carriage horse wagon host blog info about auto Hot rods Hot Wheels Housekeeping How does it work How Electric Motors Work How to deal with a broken car How To Donate How To Donate A Car For Tax Deduction How To Donate Car To Charity how to donation car to charity HRM HTML5 Hudson Hummer humor humour Humvee Hungary Hupmobile Hurst Hurst SC Rambler hybrid Hybrid cars hybrid technology hydrogen Hydrogen Cars Hydrogen Fuel Cell hydrogen fuel cell cars hydrogen vehicles hypervisor Hyundai Hyundai Reviews Ian Roussel Iceland ID4 Car ignition IIoT immitation impact analysis Impala in-car infotainment india Indian Indianapolis industrial AI Industry Disruption industry news infiniti Infiniti Reviews Info infographic information informative Infotainment Infotainment Systems Infrastructure Injury Lawyer Innotrans innova innovation innovative instrument panel insurance intake Intel intelligent driving Intelligent Traffic Management intelligent transportation intelligent transportation systems Interactive Touchscreen interior International Harvester Internet of Things Internet radio invitation IoT IoT in vehicles IoT Vehicles Ireland iris iris details iris engine details iris technical Isetta Iskenderian Isky Isle of Man ISO 26262 Israel issues Isuzu Italian Italy ITS ITU IVI Jaguar January 2017 Japan Japanese Javelin Jay Leno Jean-François Tarabbia Jeep Jeep Wrangler JLR John D'Agostino John Deere John Wall Justin Moon jv Kaivan Karimi Kandi kawasaki Ken Block Kerry Johnson Kia kids Kim Cairns Kissel Kombi Kroy Zeviar Kurtis KYB Shock Absorber KYB shock absorbers La Carrera Panamerica lace paint Lamborghini Lamborghini Revuelto Lancia Land Cruiser Land Rover Land Rover Sales land speed record holder Land-Rover lane departure warning Large Car Sales Large Luxury Car Sales Large Luxury SUV Sales Large SUV Sales Larry Wood LaSalle laser headlights Latvia launch law enforcement lawnmower laws Le Mans LED headlights Legendary Hot Rod legends Leno Level 3 Lexus license plates Lidar Life in DIY components Life Insurance Lightweight Materials Limitations of Driverless Cars limited Lincoln Lincoln MKZ Linda Campbell Linda Vaughn links lists Lithium-ion Lithium-ion batteries Lithium-Ion Technology Lithuania live LKA Loans Locomobile logging train logging trucks Logistics Technology Lola London to Brighton Long Range Looking for EV's Los Angeles Lotus lowrider LSR Luxembourg luxury LuxuryCars Lyft Lynn Gayowski Mach 1 Machine Learning machine learning for traffic machine shop Mack Mad Max magazine magazines magic iris magnesium components mags Maintenance of diesel engines Malaysia March 2017 Mario Andretti Mark Donohue marketing Marketshare Maserati Matt Watson Maverick MaxHaul 750W motor MaxHaul Trike 750 Mazda Mazda Reviews MB McLaren mechanic Megan Alink meme Memorable Cars Memory Lane Men Micro Mercedes Mercedes Benz Mercedes-Benz Mercer Cobra Mercury Metallica Metro Mexico Miata MicroCamper microkernal Midsize Car Sales Midsize Luxury Car Sales Midsize Luxury SUV Sales Midsize SUV Sales mild hybrid Military Miller race car mini mini bike Mini Electric Car miniature Minivan Sales MirrorLink mission-critical Mitsubishi Miura ML MMI Mobile connectivity Mobile school bus home Mobile World Congress Mobility Innovation mod top Model Model A Model of 18-inch car tire model T modern cars Modern Vehicles modifications Momo Monaco Monster Truck Moon Moon eyes Mopar Mopar parts Morgan Morocco morons mot Motor Components Motor shows motor wheel Motorcycle Motorcycle Tips Motorcycles motorhomes motors Mouse movie movies mpv Multicore Munsters Muntz Muscle Car muscle cars musclecars museum music video Mustang NAIAS Nancy Young Nascar Nash Navigation naza neglec neglected Netherlands NetZero new tv show New York New Zealand NewCanAmRyker news Next-Gen Dashboard ni Nissan Nissan Reviews Noise Cancellation System Nomad Norway nos nose art Nova November 2016 Nurburgring Object Management group Obstacle Detection October 2016 off roading offenhauser OffGridLiving Oldsmobile OMG Online College OnStar Opel Open source Open standards OpenGL ES option orders original owner OrkiesWorkshop Ormond Beach land speed racing OTA updates OutKitchen pace car Packard Pagani Paige pamphlet panel paint Paris to Peking race parking Parking Assistance parking solutions Partial Automation parts Patryk Fournier Paul Leroux Paul Newman Paul Sykes Pebble Beach pedal car perodua personal Peter McCarthy petrol petroliana Peugeot Phoenix Injury photographer photography pics pictures Pierce Arrow Pike's Peak Pinin Farina pinstriping Pit row Pits Pixar PKI plank road PlayBook plug-in hybrid Plymouth Point Grey Camera Poland Polaris Slingshot pole wheel police Polysynch Pontiac Porsche Porsche 917 Porsche Carrera Portugal POSIX powerful electric tricycle Powerful Vehicles pre 1930's gas station predictive maintenance Preliminary analysis Premium Sporty Car Sales President of the USA Preview prices prius project prooject Pros and Cons Proton prototype PSA Peugeot Citroen Pu public key cryptography Pullman QNX QNX CAR QNX Garage QNX OS Qualcomm quiz quote race cars racing racing. LSR Radar radar system radio Raid Data rail railcars railroad ralliart Rally rallying Ram range rover Ranking the Cars of the Decade rant Rapid Transit System advertsing rare Real time Innovations real-time data recall recommended shop record setter Red Bull Sports Reducers Reference vehicle Regenerative braking regenerative energy Reliability Rémi Bastien RemoteLink Renault Renesas Renewable Energy Renntransporter rentals REO repair repair tools. From old to new. reports resarch research restoration restoration shop review Richard Bishop Ridler Award Winner rims river bank cars road and highway Road Runner road safety roadster Robot OS Robot wars Robotaxi Technology Roewe Roger Penske Rolls Royce Romain Saha Romania ROS Roth RTI RTI Connext rumble seat Russia RustToRiches Ruxton RV Ryker FourWheeler RykerEvolution RykerUpdate SAE Levels SAELevel Safety safety engineering Safety systems safety-certified sales Sales By Model Sales Stats samba sampan Saoutchik Satellite satnav Scaglietti scallops Scat Pack SCCA racecar School bus School bus conversion sci-fi Scooter Scooter Enthusiast 2025 SCORE Baja trucks Scott Pennock Scout sculpture Security sedan segway Selective Catalytic Reduction (SCR) Self Parking System self-driving Self-Driving Car Technology self-driving cars self-driving technology self-driving vehicles self-parking cars semi sensor extension cable sensor fusion September 2016 service service repair automotive vehicle car buying selling mission statement blog free broker Shared Mobility shay drive locomotive Shelby shifter Shock Absorber shop Show cars sidecars signs Simulation simulation software skateboarding Skoda slicks slingshot dragster Slovakia Slovenia Small Luxury SUV Sales Small SUV Sales Smart Smart Car Smart Cars Smart Charging smart cities Smart City Smart City Technology smart driving smart factory Smart Grid smart infotainment smart lighting Smart Logistics Smart Mobility smart parking Smart Scooter Smart Tires Smart Traffic Systems smart transportation Smart Vehicle Technology Smart Vehicles Smartphones snow machines snowmobile Soapbox software in automotive industry Software Update Benefits Solid Electrolyte Solid-State Batteries Solid-State Battery Solid-State Battery Technology South Africa South Korea Sox and Martin Spain spare tire spark ignition spark plug spark plugs Sparking Controversy Spatial auditory displays special edition Mustangs Speech interfaces speed limit Speed Record speedfest speedster sports car sports cars Sporty Car Sales spy shots spyker Sri Lanka SS SS/AH Stagecoach Stanley Startups Station Wagon steam locomotive steam powered steam shovel steampunk steering wheel Steve McQueen Stig Stirling Moss Stolen streamliner street cars Street Van studebaker stunt stunts Stutz Stutz Blackhawk Subaru Sunbeam Super Bee Super Stock Superbird Supercar supercars supercharger Supply Chain Innovation survey Survival alone Sustainability Sustainable driving Sustainable Logistics sustainable mobility sustainable transport sustainable transportation suv SUV Buyer Guide Suzuki Sweden Swift Switzerland System development Life Cycle Tablets Tach takeover tank tata tata magic iris tata vehicles tax Tax Deduction For Car Donation taxi taxi cab TCS tdi teardrop TeardropCamper TeardropTrailer technical technology Telematics Telematics Detroit Telematics Update tempo Tempo Matador Terlingua Racing Team Terry Staycer Tesla test testdrive Texas Instruments The Bad 8 vs. The Good 12 The engine is having problems. The engine makes an unusual noise. The Race Of Gentlemen Thermal Control System Thomas Bloor thoughts three wheeler Three-Wheeled Scooter ThreeToFourWheels ThreeWheeler Thunderbird ticket Tiger Tim Neil Tina Jeffrey Tiny house addition Tiny house on wheels Tiny house overview TinyLiving tips Tire Sensors tires tool tool kit toolbox tools Top EV SUVs Top Gear top ten list Torino tour bus tourbus towtruck Toyota Toyota Entune Toyota Reviews TPMS tractor traffic flow traffic reduction traffic safety traffic technology trailer TrailerLife TrailerStorage train train wreck trains Trans Am transmission Transportation and Industry transportation innovation Transportation Technology Transporter Traval Tricity 2025 TricityTech tricycle specs trike Triumph trivia trolley Troy Trepanier truck Truck Sales trucking trucks Tucker turbocharger turbojet turbonique Turkey tv tv cars twin spark type 1 type 2 tyres UAE Uber UK UK Auto Sales UK Best Sellers uk market Ukraine ultrasonic sensors Unimog unique University of Waterloo Unser unusual unveil upgrade urban mobility urban planning urban transportation US US 2016 Sales US All Cars Rankings US All SUV Rankings US All Vehicle Rankings US Auto Sales US Auto Sales By Brand US Best Sellers US Compact Car Sales US December 2016 US Entry Luxury Car Sales US February 2017 US January 2017 US Large Car Sales US Large Luxury Car Sales US Large Luxury SUV Sales US Large SUV Sales US March 2017 US Midsize Car Sales US Midsize Luxury Car Sales US Midsize Luxury SUV Sales US Midsize SUV Sales US Minivan Sales US Navy US November 2016 US October 2016 US September 2016 US Small Luxury SUV Sales US Small SUV Sales US Sporty Car Sales US Truck Sales US US Auto Sales US Van Sales US Worst Sellers USA used cars V2G V2I V2P V2V Technology V2X V2X communication van Van Sales vanconversionuk vauxhall VeDeCoM Vehicle Aerodynamics vehicle analytics Vehicle Connectivity Vehicle Cyber Protection Vehicle Data Vehicle Design vehicle diagnostics Vehicle Donation California Vehicle Engineering vehicle innovations Vehicle inspection Vehicle Life Vehicle Maintenance vehicle safety Vehicle Sensors vehicle technology Vehicle-to-Everything Vehicle-to-Grid Vehicle-to-Infrastructure Vehicle-to-Pedestrian Vehicle-to-Vehicle Communication Vehicles Velodyne Vespa Video vintage vintage racing Virtual mechanic Virtualization VOIP Guide Volkswagen Volkswagen Reviews Volkswagen Sales Volvo Von Dutch vote VW VW bug W3C wagon train wall of death washer washer fluid Watson's Webinars website what is donation what is it wheel speed sensor wheelchair White williams Willys windshield washer wing Wireless Charging Wireless framework women woodlight headlights Woodworking Woody work truck working working principle of anti-lock braking system workshop World Worst Sellers wreck Wrongful Death WW1 WW2 XK SS Yamaha Scooters Yamaha Tricity 400 Yamaha Trike Yamaha2026 YamahaTricera Yoram Berholtz Yoshiki Chubachi You have to take care of your car like this. Z 11 Z-28 Z28 zamboni Zero Emission zero-emission vehicles ZL1 Zotye