Skip to content

Instantly share code, notes, and snippets.

@voronianski
Last active February 27, 2016 12:31
Show Gist options
  • Save voronianski/0f174a29ca6623afe456 to your computer and use it in GitHub Desktop.
Save voronianski/0f174a29ca6623afe456 to your computer and use it in GitHub Desktop.
esnextbin sketch
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ESNext Bin Sketch</title>
</head>
<body>
<div id="example"></div>
<!-- put markup and other contents here -->
</body>
</html>
// https://babeljs.io/docs/learn-es2015/#generators
const fibonacci = {
[Symbol.iterator]: function*() {
let pre = 0;
let cur = 1;
for (;;) {
const temp = pre;
pre = cur;
cur += temp;
yield cur;
}
}
}
for (let n of fibonacci) {
// truncate the sequence at 1000
if (n > 1000) break;
console.log(n);
}
{
"name": "esnextbin-sketch",
"version": "0.0.0",
"dependencies": {
"babel-runtime": "6.5.0"
}
}
"use strict";
var _getIterator2 = require("babel-runtime/core-js/get-iterator");
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _defineProperty2 = require("babel-runtime/helpers/defineProperty");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _regenerator = require("babel-runtime/regenerator");
var _regenerator2 = _interopRequireDefault(_regenerator);
var _iterator2 = require("babel-runtime/core-js/symbol/iterator");
var _iterator3 = _interopRequireDefault(_iterator2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// https://babeljs.io/docs/learn-es2015/#generators
var fibonacci = (0, _defineProperty3.default)({}, _iterator3.default, _regenerator2.default.mark(function _callee() {
var pre, cur, temp;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
pre = 0;
cur = 1;
case 2:
temp = pre;
pre = cur;
cur += temp;
_context.next = 7;
return cur;
case 7:
_context.next = 2;
break;
case 9:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = (0, _getIterator3.default)(fibonacci), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var n = _step.value;
// truncate the sequence at 1000
if (n > 1000) break;
console.log(n);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment