sproutcore/sproutcore-statechart — Issue #9: broken build
Author: burrows
Created: 2011-10-24 21:39:34+00:00
State: open

I'm seeing a couple of issues when trying to build the sproutcore-statechart framework.

The first is that the self-executing anonymous functions that get wrapped around each file's contents do not have a trailing semicolon. When you have two of these back to back, its interpreted as chained function calls and triggers an exception.

```javascript
(function() {})()
(function() {})()
// => TypeError: function () {}() is not a function
```
This issue can be fixed by removing the following lines of code from the `Rakefile`:

```ruby
module SproutCore
module Compiler
class Entry
def body
"\n(function(exports) {\n#{@raw_body}\n})({})\n"
end
end
end
end
```

The second and larger issue is that the files are getting built out of order. `SC.EmptyState` is getting defined before `SC.State`, which is a problem because `SC.EmptyState` extends `SC.State`. The dependencies in `lib/system.js` are not listed in the correct order, but fixing the order does not seem to affect the build.