bitovi/steal — pull request #162 by arjunballa (2013-08-23 00:07:00+00:00)
Title: Build failing test for Complex shim ignore list with packages

### Note
To run the testcase copy "js" script and "/steal/test/complexshimignorelist/com.my.common/resources/stealconfig.js" to parent folder of steal.

### ISUUE-1 Build is failing, when packages are loaded directly(instead of individual files) and stolen packages are added to shim ignore list

* build command "./js /Users/aballa/my/projects/steal/test/complexshimignorelist/com.my.app1/scripts/build.js" fails with below error
* see /steal/test/complexshimignorelist/com.my.common/resources/stealconfig.js

Note:
* Able to access directly from browser using http://localhost/steal/test/complexshimignorelist/com.my.app1/resources/index.html
* See attachment - In browser package is loaded directly instead of individual files
* /steal/test/complexshimignorelist/buildgenerated/common - is dir generated by running build command "./js /Users/aballa/my/projects/steal/test/complexshimignorelist/com.my.common/scripts/build.js"
* /steal/test/complexshimignorelist/com.my.common/resources/my/packages - is manually copied from /steal/test/complexshimignorelist/buildgenerated/common/packages

```

aballa-macbook-pro:projects aballa$ ./js /Users/aballa/my/projects/steal/test/complexshimignorelist/com.my.app1/scripts/build.js
Building to theme/
opening steal/test/complexshimignorelist/com.my.app1/resources/index.html
adding dependencies
+ stealconfig.js
+ theme/my/init.js
+ common/my/common.js
+ common/my/common-1.js
+ common/my/common-2.js
+ common/my/common-1.css
+ common/my/common-2.css
+ common//packages/common.css
java.lang.StackOverflowError
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:2576)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2487)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:164)

```
### ISUUE-2 When "steal.paths" are in stealconfig.js file package css doesn't have merged css
* /steal/test/complexshimignorelist/buildgenerated/common/packages/common.css doesn't have merged css
* build command "./js /Users/aballa/my/projects/steal/test/complexshimignorelist/com.my.common/scripts/build.js" is successful
* see /steal/test/complexshimignorelist/com.my.common/resources/stealconfig.js

Note: Able to access directly from browser using http://localhost/steal/test/complexshimignorelist/com.my.common/resources/index.html

#### OUTPUT
```
aballa-macbook-pro:projects aballa$ ./js /Users/aballa/my/projects/steal/test/complexshimignorelist/com.my.common/scripts/build.js
Building to common/
opening steal/test/complexshimignorelist/com.my.common/resources/index.html
adding dependencies
+ stealconfig.js
+ common/my/make_package.js

stealing common/my/common.js
+ common/my/common.js
+ common/my/common-1.js
+ common/my/common-2.js
+ common/my/common-1.css
+ common/my/common-2.css

Building packages
Package: common//packages/common js/css
+ common/my/common-1.js
+ common/my/common-2.js
+ common/my/common-1.css
+ common/my/common-2.css
+ common/my/common.js

Building common/production.js

```

### ISUUE-3
![screen shot 2013-08-22 at 2 50 22 pm](https://f.cloud.github.com/assets/613351/1013420/ead73f5e-0b87-11e3-8a93-e2d8d7ad6746.png)
When "steal.paths" are in index.html file application build is failing
* build command "./js /Users/aballa/my/projects/steal/test/complexshimignorelist/com.my.common/scripts/build.js" fails with below error
Note: Able to access directly from browser using http://localhost/steal/test/complexshimignorelist/com.my.common/resources/index.html

#### OUTPUT
```
aballa-macbook-pro:projects aballa$ ./js /Users/aballa/my/projects/steal/test/complexshimignorelist/com.my.common/scripts/build.js
Building to common/
opening steal/test/complexshimignorelist/com.my.common/resources/index.html
adding dependencies
+ stealconfig.js
+ common/my/make_package.js

stealing common/my/common.js
+ common/my/common.js
+ common/my/common-1.js
+ common/my/common-2.js
+ common/my/common-1.css
+ common/my/common-2.css
!!!!!!!!!!! ERROR !!!!!!!!!!!

-message = Cannot read property "files" from undefined
-fileName =
-name = TypeError
-lineNumber = 0

```

### Requirement
* Each module should have its own package (e.g. com.my.common will have common.js package)
* Module (e.g. com.my.app1) which is dependent on other common modules (e.g. com.my.common) will steal the package (common.js package) instead of including common.js in its production.js. By doing so we can deliver common modules independently without having to build and deliver all module which are dependent on common modules when ever common modules change.