Skip to content

Instantly share code, notes, and snippets.

@kriskowal
Created January 28, 2012 00:28
Show Gist options
  • Save kriskowal/1691779 to your computer and use it in GitHub Desktop.
Save kriskowal/1691779 to your computer and use it in GitHub Desktop.
function foo() {
bar({|x|
return 10;
});
}
function bar(block) {
block();
block(); // we should never get here. how?
}
foo();
10 foo(); // stack: []
2 bar({|x| return 10}) // stack: [foo]
7 block() // stack: [foo, bar]
3 return 10 // stack: [foo, bar, block]
@kriskowal
Copy link
Author

@dherman I think that finally will have to suffice. It would be an information/capability leak for an intermediate stack frame to be able to observe the return value in a parent lexical scope. MarkM would kill me for suggesting it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment