matthewrobb/six — pull request #55 by nuisanceofcats (2012-10-25 00:30:23+00:00)
Title: Preliminary support for exports.

There are some points that don't work such as re-assignments to exported variables.

```javascript
export var a = 42
a = 43 // exported version will still be 42

export function c() { return 1 }
c = function() { return 2 } // 1 will still be in exported version

export o = {}
o.a 420 // this is fine, changing a type by reference
```

In order to support those instead of

```javascript
var exported = exported = function {}
exported('blah')
```

You'd have to modify the entire source tree for that scope to replace all references to "exported" to "exports.exported". That's the only way you'd be able to make changes to non-reference types visible.

```javascript
// compiled from
// export function exported(a) {}
// exported('blah')
var exported = exported = function(a) {}
exports.exported('blah')
```