Please review my implementation of a simple When/Then (pseudo Promise) in javascript
I made The following edits:


Prevent the same when function from calling pass twice(therefore invalidating results)
Sends pass function as 1st argument to avoid var that = this
It stores the first pass arg only for simplicity instead of all arguments in results(easily switched)
Then function can't be called more then one
I removed the need for When and when functions(you could leave the separate functions for clarity if you wanted)
There is now only one method then and prop funcs


https://gist.github.com/1115319

Usage

when(
    function(pass){setTimeout(pass,3000)},
    function(pass){pass('2nd');}
)
.then(function(results){
    console.log(results);
})