Skip to content

Instantly share code, notes, and snippets.

@deepak
Last active August 29, 2015 14:14
Show Gist options
  • Save deepak/a0bec9a53b21e1d28b27 to your computer and use it in GitHub Desktop.
Save deepak/a0bec9a53b21e1d28b27 to your computer and use it in GitHub Desktop.
iterator
// output
10
// generated code
"use strict";
var numbers = regeneratorRuntime.mark(function callee$0$0(start, end) {
var i;
return regeneratorRuntime.wrap(function callee$0$0$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
i = start;
case 1:
if (!(i <= end)) {
context$1$0.next = 7;
break;
}
context$1$0.next = 4;
return i;
case 4:
i++;
context$1$0.next = 1;
break;
case 7:
case "end":
return context$1$0.stop();
}
}, callee$0$0, this);
});
var sum = 0;
var iterator = numbers(1, 4);
for (var _iterator = iterator[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {
var i = _step.value;
sum += i;
}
console.log(sum);
// traceur
10
// generated code
$traceurRuntime.ModuleStore.getAnonymousModule(function() {
"use strict";
var numbers = $traceurRuntime.initGeneratorFunction(function $__2(start, end) {
var i;
return $traceurRuntime.createGeneratorInstance(function($ctx) {
while (true)
switch ($ctx.state) {
case 0:
i = start;
$ctx.state = 7;
break;
case 7:
$ctx.state = (i <= end) ? 1 : -2;
break;
case 4:
i++;
$ctx.state = 7;
break;
case 1:
$ctx.state = 2;
return i;
case 2:
$ctx.maybeThrow();
$ctx.state = 4;
break;
default:
return $ctx.end();
}
}, $__2, this);
});
var sum = 0;
var iterator = numbers(1, 4);
for (var $__0 = iterator[$traceurRuntime.toProperty(Symbol.iterator)](),
$__1 = void 0; !($__1 = $__0.next()).done; ) {
var i = $__1.value;
{
sum += i;
}
}
console.log(sum);
return {};
});
//# sourceURL=traceured.js
let numbers = function*(start,end) {
for(let i=start; i <= end; i++) {
yield i;
}
}
let sum = 0;
let iterator = numbers(1,4);
for (let i of iterator) {
sum += i;
}
console.log(sum);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment