Last active
August 29, 2015 14:14
-
-
Save deepak/a0bec9a53b21e1d28b27 to your computer and use it in GitHub Desktop.
iterator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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