Skip to content

Commit

Permalink
Monads now properly support return statement (fixes #9).
Browse files Browse the repository at this point in the history
Added support for array spreads (via https://github.com/square/es6-spread).
Added support for rest params (via https://github.com/thomasboyt/es6-rest-params).
  • Loading branch information
tehsenaus committed Jul 16, 2014
1 parent de97fbd commit 3297029
Show file tree
Hide file tree
Showing 76 changed files with 18,611 additions and 31 deletions.
6 changes: 5 additions & 1 deletion README.md
Expand Up @@ -114,12 +114,16 @@ for (let i in [...]) {

## Changes

### 0.4.0
### 0.4.0-dev
Changed iterators & generators to reflect latest ES6 spec (no more StopIteration).
Added benchmarks (just for generators, initially).
Optimised generators for tail call emulation use case - performance is comparable to trampoline.
Monads now implemented via generators - reusing control flow logic, and to allow use of native
generators implementation where available (this will be a command line flag later on).
Monads now properly support return statement (fixes #9).
Added support for array spreads (via https://github.com/square/es6-spread).
Added support for rest params (via https://github.com/thomasboyt/es6-rest-params).


### 0.3.5
Allow monad binds in for loops.
Expand Down
3 changes: 3 additions & 0 deletions benchmark/generator_native.js
Expand Up @@ -10,6 +10,9 @@ var suite = new (require('benchmark').Suite);
suite.add('trampoline', require('./src/generator.latte').tests['trampoline']);
suite.add('native generator', require('./src/generator.latte').tests['generator']);
suite.add('latte generator', require('./out/generator').tests['generator']);
try {
suite.add('regenerator generator', require('./out/generator-regenerator').tests['generator'])
} catch (e) {};

suite.on('cycle', function(event) {
console.log(String(event.target));
Expand Down
4 changes: 3 additions & 1 deletion examples/generator.latte
@@ -1,8 +1,10 @@
function *gen(p) {
var i = 0;
while(true) {
yield i;
yield i++;
if ( i >= 2 ) return false;
}
return true;
}

var g = gen();
Expand Down
7 changes: 7 additions & 0 deletions examples/spread.latte
@@ -0,0 +1,7 @@
function f(x, y, z) {
console.log('x =', x);
console.log('y =', y);
console.log('z =', z);
}
var args = [1, 2];
f(0, ...args);
20 changes: 20 additions & 0 deletions node_modules/es6-rest-params/.jshintrc

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions node_modules/es6-rest-params/.npmignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

36 changes: 36 additions & 0 deletions node_modules/es6-rest-params/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

36 changes: 36 additions & 0 deletions node_modules/es6-rest-params/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

63 changes: 63 additions & 0 deletions node_modules/es6-rest-params/src/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions node_modules/es6-rest-params/test/fixtures/arrow-fn.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions node_modules/es6-rest-params/test/fixtures/declaration.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions node_modules/es6-rest-params/test/fixtures/rest.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

41 changes: 41 additions & 0 deletions node_modules/es6-rest-params/test/spec.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions node_modules/es6-spread/.npmignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions node_modules/es6-spread/CHANGELOG.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions node_modules/es6-spread/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

86 changes: 86 additions & 0 deletions node_modules/es6-spread/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 3297029

Please sign in to comment.