Include this polyfill snippet above your code, so you can transpile it on the fly online. But for production you should use babel-polyfill

// Production steps of ECMA-262, Edition 6, 22.1.2.1
// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
if (!Array.from) {
  Array.from = (function () {
    var toStr = Object.prototype.toString;
    var isCallable = function (fn) {
      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
    };
    var toInteger = function (value) {
      var number = Number(value);
      if (isNaN(number)) { return 0; }
      if (number === 0 || !isFinite(number)) { return number; }
      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
    };
    var maxSafeInteger = Math.pow(2, 53) - 1;
    var toLength = function (value) {
      var len = toInteger(value);
      return Math.min(Math.max(len, 0), maxSafeInteger);
    };

    // The length property of the from method is 1.
    return function from(arrayLike/*, mapFn, thisArg */) {
      // 1. Let C be the this value.
      var C = this;

      // 2. Let items be ToObject(arrayLike).
      var items = Object(arrayLike);

      // 3. ReturnIfAbrupt(items).
      if (arrayLike == null) {
        throw new TypeError("Array.from requires an array-like object - not null or undefined");
      }

      // 4. If mapfn is undefined, then let mapping be false.
      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
      var T;
      if (typeof mapFn !== 'undefined') {
        // 5. else      
        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
        if (!isCallable(mapFn)) {
          throw new TypeError('Array.from: when provided, the second argument must be a function');
        }

        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
        if (arguments.length > 2) {
          T = arguments[2];
        }
      }

      // 10. Let lenValue be Get(items, "length").
      // 11. Let len be ToLength(lenValue).
      var len = toLength(items.length);

      // 13. If IsConstructor(C) is true, then
      // 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.
      // 14. a. Else, Let A be ArrayCreate(len).
      var A = isCallable(C) ? Object(new C(len)) : new Array(len);

      // 16. Let k be 0.
      var k = 0;
      // 17. Repeat, while k < lenโ€ฆ (also steps a - h)
      var kValue;
      while (k < len) {
        kValue = items[k];
        if (mapFn) {
          A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
        } else {
          A[k] = kValue;
        }
        k += 1;
      }
      // 18. Let putStatus be Put(A, "length", len, true).
      A.length = len;
      // 20. Return A.
      return A;
    };
  }());
}
Answer from NonPolynomial on Stack Overflow
๐ŸŒ
Hexmos
hexmos.com โ€บ freedevtools โ€บ tldr โ€บ common โ€บ babel
Transpile JavaScript - Babel ES6 to ES5 | Online Free DevTools by Hexmos
Transpile JavaScript code with Babel. Convert ES6/ES7 syntax to ES5 for broader browser compatibility. Free online tool, no registration required.
Top answer
1 of 1
4

Include this polyfill snippet above your code, so you can transpile it on the fly online. But for production you should use babel-polyfill

// Production steps of ECMA-262, Edition 6, 22.1.2.1
// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
if (!Array.from) {
  Array.from = (function () {
    var toStr = Object.prototype.toString;
    var isCallable = function (fn) {
      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
    };
    var toInteger = function (value) {
      var number = Number(value);
      if (isNaN(number)) { return 0; }
      if (number === 0 || !isFinite(number)) { return number; }
      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
    };
    var maxSafeInteger = Math.pow(2, 53) - 1;
    var toLength = function (value) {
      var len = toInteger(value);
      return Math.min(Math.max(len, 0), maxSafeInteger);
    };

    // The length property of the from method is 1.
    return function from(arrayLike/*, mapFn, thisArg */) {
      // 1. Let C be the this value.
      var C = this;

      // 2. Let items be ToObject(arrayLike).
      var items = Object(arrayLike);

      // 3. ReturnIfAbrupt(items).
      if (arrayLike == null) {
        throw new TypeError("Array.from requires an array-like object - not null or undefined");
      }

      // 4. If mapfn is undefined, then let mapping be false.
      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
      var T;
      if (typeof mapFn !== 'undefined') {
        // 5. else      
        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
        if (!isCallable(mapFn)) {
          throw new TypeError('Array.from: when provided, the second argument must be a function');
        }

        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
        if (arguments.length > 2) {
          T = arguments[2];
        }
      }

      // 10. Let lenValue be Get(items, "length").
      // 11. Let len be ToLength(lenValue).
      var len = toLength(items.length);

      // 13. If IsConstructor(C) is true, then
      // 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.
      // 14. a. Else, Let A be ArrayCreate(len).
      var A = isCallable(C) ? Object(new C(len)) : new Array(len);

      // 16. Let k be 0.
      var k = 0;
      // 17. Repeat, while k < lenโ€ฆ (also steps a - h)
      var kValue;
      while (k < len) {
        kValue = items[k];
        if (mapFn) {
          A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
        } else {
          A[k] = kValue;
        }
        k += 1;
      }
      // 18. Let putStatus be Put(A, "length", len, true).
      A.length = len;
      // 20. Return A.
      return A;
    };
  }());
}
๐ŸŒ
Medium
medium.com โ€บ @SunnyB โ€บ how-to-convert-es6-into-es5-using-babel-1b533d31a169
How to Convert ES6 into ES5 using Babel | by Sunny Beatteay | Medium
July 31, 2019 - Babel is a transpiler (translates code in one language to another computer language at the same abstraction level) that can turn our ES6 code into ES5. Iโ€™m going to assume you know how to use both node and npm and have them both installed on your machine.
Top answer
1 of 1
6

I will assume that since you are not very familiar with es6 you are probably not very familiar with babeljs.io which gives you an option to convert back:

Check this link up.

"use strict";

var data = [{ "rec": "1", "region": "LEFT", "intrface": "Line-1" }, { "rec": "1", "region": "LEFT", "intrface": "Line-2" }, { "rec": "1", "region": "RIGHT", "intrface": "Line-3" }, { "rec": "1", "region": "RIGHT", "intrface": "Line-4" }];

var s = Snap("#svg");
var height = 40;
var canvasWidth = 400;
var lineWidth = 180;
var rightOffset = canvasWidth / 2 - lineWidth;

var leftLines = data.filter(function (line) {
  return !isRightLine(line);
});
var rightLines = data.filter(isRightLine);

leftLines.forEach(drawLine);
rightLines.forEach(drawLine);

var numberOfLines = Math.max(leftLines.length, rightLines.length);
var rectSize = 20;
var rectangles = [];

for (var i = 0; i < numberOfLines; i++) {
  rectangles.push(drawRect(i));
}

function drawLine(data, index) {
  var intrface = data.intrface;

  var isRight = isRightLine(data);
  var x = isRight ? canvasWidth / 2 + rightOffset : 0;
  var y = height * (index + 1);
  var stroke = isRight ? 'red' : 'black';

  var line = s.line(x, y, x + 180, y);
  line.attr({
    stroke: stroke,
    strokeWidth: 1
  });

  var text = s.text(x + 10, y - 5, intrface);

  text.attr({
    fill: stroke,
    cursor: 'pointer'
  });

  text.click(function () {
    console.log('clicked', data);

    //window.location.href = "http://stackoverflow.com/";
  });
}

// you might want to change this - howeverever you will have to change everywhere in the code that calls isRightLine to pass a primitive vs an object.
function isRightLine(_ref) {
  var region = _ref.region;

  return region === 'RIGHT';
}

function drawRect(index) {
  var x = canvasWidth / 2 - rectSize / 2;
  var y = height * (index + 1) - rectSize / 2;
  var rectangle = s.rect(x, y, rectSize, rectSize);

  rectangle.attr({
    fill: 'black'
  });

  console.log('rr', x, y);

  return rectangle;
}
๐ŸŒ
DEV Community
dev.to โ€บ sunnyb โ€บ how-to-convert-es6-into-es5-using-babel-3k31
How to Convert ES6+ into ES5 using Babel - DEV Community
March 11, 2020 - Babel is a transpiler (translates code in one language to another computer language at the same abstraction level) that can turn our ES6 code into ES5. Iโ€™m going to assume you know how to use both node and npm and have them both installed on your machine.
๐ŸŒ
TutorialsPoint
tutorialspoint.com โ€บ babeljs โ€บ babeljs_transpile_es6_features_to_es5.htm
BabelJS - Transpile ES6 features to ES5
We will now see the code conversion in ES5 using babeljs. Let us run the following command to convert the code โˆ’ ... If you see the ES5 code the let keyword is replaced with the var keyword. Also the variable inside the if block is renamed to _a to have the same effect as when declared with the let keyword. In this section, we will learn about the working of const keyword in ES6 and ES5.
Find elsewhere
๐ŸŒ
CodeSandbox
codesandbox.io โ€บ p โ€บ sandbox โ€บ convert-es6-to-es5-with-babel-z0cq1
Convert-ES6-to-ES5-with-babel
CodeSandbox is a cloud development platform that empowers developers to code, collaborate and ship projects of any size from any device in record time.
๐ŸŒ
Ambreenkhan
ambreenkhan.dev โ€บ javascript โ€บ z-convert-es6-to-es5
How to Convert ES6 into ES5 using Babel
The babel command takes two arguments: the path to your ES6 code and a path where you want your ES5 code to be placed. Adding the -d flag to the command instructs Babel to write the transpiled code to a directory. In above example, ES6 code is in src directory and babel writes the transpiled code into 'build' directory. ... Now you'll see your converted JavaScript files in the build directory. ... Babel provides an online tool to try out the conversion.
๐ŸŒ
Freemediatools
freemediatools.com โ€บ babeles6toes5tool
Babel ES6 to ES5 Converter - Online JavaScript Transpiler | Advanced Tool
Convert ES6+ JavaScript to ES5 online with our advanced Babel transpiler. Real-time conversion, syntax highlighting, and code optimization. Perfect for legacy browser compatibility.
Top answer
1 of 3
87

You don't tell Babel to target ES5, you choose the necessary presets/plugins that do that for you. For example, if you use the es2015 preset, this will compile ES6 code to ES5-compatible code. You don't specify a "target".

The guide below will take you through using Babel to transform ES6 code into code that can run in an environment that supports <= ES5.


0. A note on API changes from Babel 5

In the documentation for Babel 6:

The babel package is no more. Previously, it was the entire compiler and all the transforms plus a bunch of CLI tools, but this lead to unnecessarily large downloads and was a bit confusing. Now weโ€™ve split it up into two separate packages: babel-cli and babel-core.

And:

Babel 6 ships without any default transforms, so when you run Babel on a file it will just print it back out to you without changing anything.

______

1. Install babel-cli

First, as in the docs, you need to install babel-cli:

$ npm install babel-cli

______

2. Define presets in .babelrc

Second, you need to use a .babelrc (docs) local to your files and explicitly define the presets that you want Babel to use. For example, for ES6+ features use the env preset.

...a smart preset that allows you to use the latest JavaScript without needing to micromanage which syntax transforms (and optionally, browser polyfills) are needed by your target environment(s).

Install it:

npm install @babel/preset-env

And then declare it in your .babelrc:

{
  "presets": ["@babel/preset-env"]
}

Note: if you are using Babel 7.x you may prefer to use a "project-wide configuration" (babel.config.js) (docs) which "applies broadly, even allowing plugins and presets to easily apply to files in node_modules or in symlinked packages".

______

3. Run babel

Now running the babel command as in your example should work:

$> babel ./src/myclass.js --out-file ./out/app.js

Alternatively, use a bundler like webpack, rollup, or browserify, with their respective babel plugin.

2 of 3
10

The exact answer using babel with nodejs (and using CLI):

Install babel and preset

npm install babel-cli babel-preset-es2015

Execute with npx

npx babel  ./src/myclass.js --out-file ./out/app.js --presets babel-preset-es2015

Note

When babel-cli is globally installed could be not working. So this is my definitive solution

๐ŸŒ
DotNetCurry
dotnetcurry.com โ€บ javascript โ€บ 1293 โ€บ transpile-es6-modules-es5-using-babel
Transpiling ES6 modules to ES5 using Babel | DotNetCurry
To do so, we need to install the ES2015 preset of Babel and make it available to Babel through its configuration file, .babelrc. Babelโ€™s ES2015 preset contains all of the plugins required to convert every new API and feature of ES6 to its ES5 equivalent. You can see the list of plugins installed ...
๐ŸŒ
ES6 to ES5 Converter
es6-to-es5.vercel.app
ES6 to ES5 Converter | Free Online JavaScript Transpiler & Minifier
Convert ES6/ES2015+ JavaScript code to ES5 instantly. Free online transpiler with minification, deep minify, and browser compatibility features. Includes tutorials and guides on JavaScript transpilation. No signup required!
๐ŸŒ
HTML5 Game Devs
html5gamedevs.com โ€บ html5 game coding โ€บ coding and game design
best way to convert ES6 syntax to ES5 ?
August 18, 2018 - hi, i have start my project with ES6 syntax, but for exporting to cocoon.io in canvas mode it must be ES5 syntax. What's the easier way to do that ? (i have try with babeljs but without success) if not i rewrite all with ES5 syntax but it's not convenient.... Another question why coding in Es6......
๐ŸŒ
Gitlab
jstool.gitlab.io โ€บ es6-to-es5-converter
ES6+ to ES5 converter, JS Syntax Converter - Online Babel.js compiler - Online ES6/ES7/ES8 to ES5 Conversion for Legacy Browser Compatibility
Online Babel.js compiler - Convert JavaScript modern syntax to legacy syntax (ES5) for legacy browser compatibility ... Import folders, batch convert js files, download zip and extract to maintain original file tree and path structure ยท Solve ES6, ES7, ES8 and other new syntax browser error problems
๐ŸŒ
Freemediatools
freemediatools.com โ€บ babeljscompilertool
Free Babel Compiler Online - Free JavaScript ES6+ to ES5 Transpiler | JSX & React Support
Whether you're a beginner learning modern JavaScript, a React developer working with JSX, or an experienced developer supporting legacy browsers, our free online Babel compiler provides instant transpilation without any setup. Convert ES6+, ES2015-ES2024, JSX, React, TypeScript, and Flow code ...